diff options
Diffstat (limited to 'common/nvim/lua/plugins/treesitter.lua')
| -rwxr-xr-x | common/nvim/lua/plugins/treesitter.lua | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/common/nvim/lua/plugins/treesitter.lua b/common/nvim/lua/plugins/treesitter.lua new file mode 100755 index 0000000..9df99b8 --- /dev/null +++ b/common/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,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 |
