aboutsummaryrefslogtreecommitdiff
path: root/nvim/lua/config/treesitter.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua/config/treesitter.lua')
-rw-r--r--nvim/lua/config/treesitter.lua43
1 files changed, 41 insertions, 2 deletions
diff --git a/nvim/lua/config/treesitter.lua b/nvim/lua/config/treesitter.lua
index e52d637..8e4e4ba 100644
--- a/nvim/lua/config/treesitter.lua
+++ b/nvim/lua/config/treesitter.lua
@@ -10,11 +10,11 @@ M.languages = {
10 -- "jinja", 10 -- "jinja",
11 -- "jinja_inline", 11 -- "jinja_inline",
12 "jq", 12 "jq",
13 "json", -- deckt auch den Dateityp jsonc ab (siehe lua/config/filetypes.lua) 13 "json", -- deckt auch den Dateityp jsonc ab (siehe extra_filetypes)
14 "lua", 14 "lua",
15 "make", 15 "make",
16 "markdown", 16 "markdown",
17 "markdown_inline", 17 "markdown_inline", -- kein eigener Dateityp, nur fuer Injections in Markdown
18 "po", 18 "po",
19 "powershell", 19 "powershell",
20 "prisma", 20 "prisma",
@@ -27,4 +27,43 @@ M.languages = {
27 "zsh", 27 "zsh",
28} 28}
29 29
30-- Filetypes ohne gleichnamigen Parser, samt Parser, den sie nutzen sollen.
31local extra_filetypes = {
32 -- nvim-treesitter stellt keinen jsonc-Parser bereit; der json-Parser
33 -- versteht // und /* */ Kommentare.
34 jsonc = "json",
35
36 -- Dateityp und Parser heissen unterschiedlich; ohne diese Zuordnung findet
37 -- vim.treesitter.start() keinen Parser und die FileType-Autocmd feuert nicht.
38 sh = "bash",
39 ps1 = "powershell",
40
41 -- Zusammengesetzter Dateityp aus config.filetypes: den Parser loest Neovim
42 -- selbst am Punkt auf, der Eintrag sorgt aber fuer das Autocmd-Pattern --
43 -- Patterns splitten nicht, "yaml" wuerde fuer "yaml.ansible" nicht feuern.
44 ["yaml.ansible"] = "yaml",
45}
46
47-- Macht die Parser der Filetypes ohne gleichnamigen Parser bekannt.
48function M.register_extra_filetypes()
49 for filetype, parser in pairs(extra_filetypes) do
50 vim.treesitter.language.register(parser, filetype)
51 end
52end
53
54-- Filetypes, fuer die Treesitter-Features aktiviert werden.
55function M.filetypes()
56 local filetypes = {}
57
58 for _, language in ipairs(M.languages) do
59 table.insert(filetypes, language)
60 end
61
62 for filetype in pairs(extra_filetypes) do
63 table.insert(filetypes, filetype)
64 end
65
66 return filetypes
67end
68
30return M 69return M