diff options
Diffstat (limited to 'nvim/lua/config/treesitter.lua')
| -rw-r--r-- | nvim/lua/config/treesitter.lua | 43 |
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. | ||
| 31 | local 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. | ||
| 48 | function M.register_extra_filetypes() | ||
| 49 | for filetype, parser in pairs(extra_filetypes) do | ||
| 50 | vim.treesitter.language.register(parser, filetype) | ||
| 51 | end | ||
| 52 | end | ||
| 53 | |||
| 54 | -- Filetypes, fuer die Treesitter-Features aktiviert werden. | ||
| 55 | function 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 | ||
| 67 | end | ||
| 68 | |||
| 30 | return M | 69 | return M |
