aboutsummaryrefslogtreecommitdiff
path: root/nvim/lua/config/filetypes.lua
blob: 86a779d903832877b8cc6c5202bc515bff5753fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
-- Custom Filetype-Erkennung fuer Dateien, die sich nicht allein anhand ihrer
-- Endung unterscheiden lassen (z.B. Ansible-YAML vs. normales YAML).
--
-- "yaml.ansible" wird ausserdem in config.treesitter (Autocmd-Pattern) und in
-- plugins/lsp.lua (ansiblels.filetypes) verwendet.

-- Ansible-Dateien haben die Endung .yml/.yaml wie normales YAML und sind nur am
-- Dateinamen bzw. am Pfad erkennbar.
--
-- Achtung: vim.filetype.add klammert Patterns selbst in "^...$". Ein eigenes "$"
-- am Ende steht dadurch mitten im Pattern und gilt als literales Zeichen -- das
-- Pattern greift dann nie. Die implizite Verankerung sorgt gleichzeitig dafuer,
-- dass Jinja-Templates (z.B. tasks/main.yml.j2) weiter als jinja gelten.
vim.filetype.add({
  filename = {
    ["playbook.yml"] = "yaml.ansible",
    ["playbook.yaml"] = "yaml.ansible",
    ["site.yml"] = "yaml.ansible",
    ["site.yaml"] = "yaml.ansible",
    ["requirements.yml"] = "yaml.ansible",
    ["requirements.yaml"] = "yaml.ansible",
  },
  pattern = {
    [".*/roles/.*/tasks/.*%.ya?ml"] = "yaml.ansible",
    [".*/roles/.*/handlers/.*%.ya?ml"] = "yaml.ansible",
    [".*/tasks/.*%.ya?ml"] = "yaml.ansible",
    [".*/handlers/.*%.ya?ml"] = "yaml.ansible",
    [".*/group_vars/.*%.ya?ml"] = "yaml.ansible",
    [".*/host_vars/.*%.ya?ml"] = "yaml.ansible",
    [".*/playbooks/.*%.ya?ml"] = "yaml.ansible",
  },
  extension = {
    j2 = "jinja",
  },
})