aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nvim/lua/config/autocmds.lua17
-rw-r--r--nvim/lua/config/filetypes.lua9
-rw-r--r--nvim/lua/config/treesitter.lua21
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
2local treesitter_languages = require("config.treesitter").languages
3local extra_filetypes = require("config.filetypes").extra
4
5local function enable_treesitter_features() 2local 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()"
11end 8end
12 9
13-- Fuehrt zwei Listen zu einer neuen zusammen, ohne die Eingaben zu veraendern.
14local 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
23end
24
25vim.api.nvim_create_autocmd("FileType", { 10vim.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
4local 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).
9M.extra = { "jsonc" }
10
11vim.filetype.add({ 4vim.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.
22vim.treesitter.language.register("json", "jsonc") 15vim.treesitter.language.register("json", "jsonc")
23
24return 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).
32M.extra_filetypes = {
33 "jsonc",
34}
35
36-- Filetypes, fuer die Treesitter-Features aktiviert werden.
37function 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
49end
50
30return M 51return M