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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
local M = {}
function M.setup()
local ok, treesitter = pcall(require, "nvim-treesitter.configs")
if not ok or not treesitter then
return false
end
-- Add custom parser directory to runtime path
vim.opt.runtimepath:append("$HOME/.local/share/treesitter")
-- Configure treesitter
treesitter.setup({
-- Install parsers in custom directory
parser_install_dir = "$HOME/.local/share/treesitter",
-- Enable syntax highlighting
highlight = {
enable = true,
-- Disable additional regex-based highlighting to improve performance
additional_vim_regex_highlighting = false,
},
-- Enable indentation
indent = {
enable = true,
},
-- Additional modules to enable
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
-- Ensure parsers are installed automatically
ensure_installed = {
"bash", "c", "cpp", "css", "dockerfile", "go", "html",
"javascript", "json", "lua", "markdown", "python", "rust",
"toml", "typescript", "vim", "yaml"
},
-- Auto-install parsers
auto_install = true,
})
return true
end
return M
|