dotfiles-ansible/roles/config/files/nvim/filetype.lua

57 lines
1.7 KiB
Lua

vim.filetype.add {
filename = {
vifmrc = 'vim',
['.ansible-lint'] = 'yaml',
['.yamllint'] = 'yaml',
['ansible.cfg'] = 'ini',
['BUCK'] = 'bzl',
['flake.lock'] = 'json',
['go.mod'] = 'gomod',
['go.sum'] = 'gosum',
['mopidy.conf'] = 'cfg',
['mpDris2.conf'] = 'cfg',
['mpd.conf'] = 'conf',
['terraform.tfstate'] = 'json',
},
extension = {
http = 'http',
hurl = 'hurl',
k = 'kcl',
mmd = 'mermaid',
ncl = 'nickel',
river = 'hcl',
tmpl = 'gohtmltmpl',
typ = 'typst',
vifm = 'vim',
},
pattern = {
['${HOME}/.kube/config'] = 'yaml',
-- Ansible
['.*/tasks/.*%.ya?ml'] = 'yaml.ansible',
['.*/roles/.*%.ya?ml'] = 'yaml.ansible',
['.*/handlers/.*%.ya?ml'] = 'yaml.ansible',
['.*/playbooks/.*%.ya?ml'] = 'yaml.ansible',
['playbook.ya?ml'] = 'yaml.ansible',
-- Waybar's config
['${XDG_CONFIG_HOME}/waybar/config'] = 'jsonc',
-- please.build
['%.?plzconfig'] = 'gitconfig',
['%.plzconfig_[%w_]+'] = 'gitconfig',
['%.plzconfig.[%w_%-]+'] = 'gitconfig',
-- Fallback on shebang
['.*'] = {
priority = -math.huge,
function(_, bufnr)
local content = vim.filetype.getlines(bufnr, 1)
-- Ansible (again)
if
vim.filetype.matchregex(content, [[^#!.*/bin/ansible-playbook]])
or vim.filetype.matchregex(content, [[^#!.*/bin/env\s\+ansible-playbook]])
then
return 'yaml.ansible'
end
end,
},
},
}