diff options
Diffstat (limited to 'nvim/lua')
| -rw-r--r-- | nvim/lua/config/autocmds.lua | 17 | ||||
| -rw-r--r-- | nvim/lua/config/filetypes.lua | 9 | ||||
| -rw-r--r-- | nvim/lua/config/treesitter.lua | 21 |
3 files changed, 22 insertions, 25 deletions
diff --git a/nvim/lua/config/autocmds.lua b/nvim/lua/config/autocmds.lua index 0835670..88a8c6c 100644 --- a/nvim/lua/config/autocmds.lua +++ b/nvim/lua/config/autocmds.lua | |||
| @@ -1,7 +1,4 @@ | |||
| 1 | -- https://github.com/nvim-treesitter/nvim-treesitter/blob/main/doc/nvim-treesitter.txt | 1 | -- https://github.com/nvim-treesitter/nvim-treesitter/blob/main/doc/nvim-treesitter.txt |
| 2 | local treesitter_languages = require("config.treesitter").languages | ||
| 3 | local extra_filetypes = require("config.filetypes").extra | ||
| 4 | |||
| 5 | local function enable_treesitter_features() | 2 | local function enable_treesitter_features() |
| 6 | if not pcall(vim.treesitter.start) then return end | 3 | if not pcall(vim.treesitter.start) then return end |
| 7 | 4 | ||
| @@ -10,20 +7,8 @@ local function enable_treesitter_features() | |||
| 10 | vim.bo.indentexpr = "v:lua.require('nvim-treesitter').indentexpr()" | 7 | vim.bo.indentexpr = "v:lua.require('nvim-treesitter').indentexpr()" |
| 11 | end | 8 | end |
| 12 | 9 | ||
| 13 | -- Fuehrt zwei Listen zu einer neuen zusammen, ohne die Eingaben zu veraendern. | ||
| 14 | local function merge(list, extra) | ||
| 15 | local merged = {} | ||
| 16 | for _, item in ipairs(list) do | ||
| 17 | table.insert(merged, item) | ||
| 18 | end | ||
| 19 | for _, item in ipairs(extra) do | ||
| 20 | table.insert(merged, item) | ||
| 21 | end | ||
| 22 | return merged | ||
| 23 | end | ||
| 24 | |||
| 25 | vim.api.nvim_create_autocmd("FileType", { | 10 | vim.api.nvim_create_autocmd("FileType", { |
| 26 | pattern = merge(treesitter_languages, extra_filetypes), | 11 | pattern = require("config.treesitter").filetypes(), |
| 27 | callback = enable_treesitter_features, | 12 | callback = enable_treesitter_features, |
| 28 | }) | 13 | }) |
| 29 | 14 | ||
diff --git a/nvim/lua/config/filetypes.lua b/nvim/lua/config/filetypes.lua index b3dec26..556a07b 100644 --- a/nvim/lua/config/filetypes.lua +++ b/nvim/lua/config/filetypes.lua | |||
| @@ -1,13 +1,6 @@ | |||
| 1 | -- Custom Filetype-Erkennung fuer Dateien, die von der eingebauten Erkennung | 1 | -- Custom Filetype-Erkennung fuer Dateien, die von der eingebauten Erkennung |
| 2 | -- abweichen sollen. | 2 | -- abweichen sollen. |
| 3 | 3 | ||
| 4 | local M = {} | ||
| 5 | |||
| 6 | -- Filetypes, die hier zusaetzlich zur eingebauten Erkennung entstehen und | ||
| 7 | -- an anderer Stelle mitberuecksichtigt werden muessen (siehe config.autocmds, | ||
| 8 | -- Treesitter-Aktivierung). | ||
| 9 | M.extra = { "jsonc" } | ||
| 10 | |||
| 11 | vim.filetype.add({ | 4 | vim.filetype.add({ |
| 12 | extension = { | 5 | extension = { |
| 13 | j2 = "jinja", | 6 | j2 = "jinja", |
| @@ -20,5 +13,3 @@ vim.filetype.add({ | |||
| 20 | -- nvim-treesitter stellt keinen eigenen jsonc-Parser bereit. Der json-Parser | 13 | -- nvim-treesitter stellt keinen eigenen jsonc-Parser bereit. Der json-Parser |
| 21 | -- versteht // und /* */ Kommentare, deshalb wird er fuer jsonc mitbenutzt. | 14 | -- versteht // und /* */ Kommentare, deshalb wird er fuer jsonc mitbenutzt. |
| 22 | vim.treesitter.language.register("json", "jsonc") | 15 | vim.treesitter.language.register("json", "jsonc") |
| 23 | |||
| 24 | return M | ||
diff --git a/nvim/lua/config/treesitter.lua b/nvim/lua/config/treesitter.lua index e52d637..f7ec87e 100644 --- a/nvim/lua/config/treesitter.lua +++ b/nvim/lua/config/treesitter.lua | |||
| @@ -27,4 +27,25 @@ M.languages = { | |||
| 27 | "zsh", | 27 | "zsh", |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | -- Filetypes ohne gleichnamigen Parser, die Treesitter trotzdem nutzen sollen | ||
| 31 | -- (siehe config.filetypes: jsonc laeuft ueber den json-Parser). | ||
| 32 | M.extra_filetypes = { | ||
| 33 | "jsonc", | ||
| 34 | } | ||
| 35 | |||
| 36 | -- Filetypes, fuer die Treesitter-Features aktiviert werden. | ||
| 37 | function M.filetypes() | ||
| 38 | local filetypes = {} | ||
| 39 | |||
| 40 | for _, language in ipairs(M.languages) do | ||
| 41 | table.insert(filetypes, language) | ||
| 42 | end | ||
| 43 | |||
| 44 | for _, filetype in ipairs(M.extra_filetypes) do | ||
| 45 | table.insert(filetypes, filetype) | ||
| 46 | end | ||
| 47 | |||
| 48 | return filetypes | ||
| 49 | end | ||
| 50 | |||
| 30 | return M | 51 | return M |
