Upgrade to v0.12.x, remove nvim-treesitter

Switch to tree-sitter-manager.nvim for managing tree-sitter parsers and
queries. Also fixes upgrade issues.
This commit is contained in:
2026-06-08 15:06:39 +01:00
parent 6bd0a69c7d
commit 9aac668a49
6 changed files with 107 additions and 128 deletions

View File

@@ -1,6 +0,0 @@
return {
'davidmh/mdx.nvim',
dependencies = {
'nvim-treesitter/nvim-treesitter',
},
}

View File

@@ -1,107 +1,108 @@
return {
'nvim-treesitter/nvim-treesitter',
branch = 'master',
dependencies = {
'nvim-treesitter/nvim-treesitter-textobjects',
{ 'nvim-treesitter/nvim-treesitter-context', opts = {} },
-- TODO: Fork this and add CMake support
-- TODO: Add shell support (sh/bash/zsh if/for/while/etc)
'RRethy/nvim-treesitter-endwise',
'danymat/neogen',
},
build = ':TSUpdate',
config = function()
require('nvim-treesitter').setup()
require('nvim-treesitter.configs').setup({
sync_install = false,
highlight = { enable = true },
indent = { enable = false },
-- List of languages that must be available
ensure_installed = {
'asm',
'bash',
'c',
'cmake',
'cpp',
'css',
'csv',
'cuda',
'diff',
'disassembly',
'dockerfile',
'dot',
'doxygen',
'git_config',
'git_rebase',
'gitattributes',
'gitignore',
'glsl',
'go',
'gpg',
'hlsl',
'html',
'ini',
'javascript',
'jq',
'json',
'julia',
'llvm',
'lua',
'make',
'markdown',
'markdown_inline',
'meson',
'ninja',
'objc',
'objdump',
'printf',
'proto',
'python',
'query',
'regex',
'requirements',
'rst',
'ssh_config',
'strace',
'tablegen',
'tmux',
'toml',
'vim',
'vimdoc',
'xml',
'yaml',
},
-- After opening statements insert end statements
endwise = { enable = true },
-- Text objects using Tree-sitter groups
textobjects = {
select = {
enable = true,
lookahead = true,
-- include_surrounding_whitespace = true,
keymaps = {
-- Class text objects
['ac'] = '@class.outer',
['ic'] = '@class.inner',
-- Function text objects
['af'] = '@function.outer',
['if'] = '@function.inner',
-- Parameter/argument text objects
['a,'] = '@parameter.outer',
['i,'] = '@parameter.inner',
-- Comment text objects
['a/'] = '@comment.outer',
['i/'] = '@comment.inner',
},
{
'romus204/tree-sitter-manager.nvim',
lazy = false,
config = function()
require('tree-sitter-manager').setup({
-- Enable core highlighting for every installed parser.
highlight = true,
ensure_installed = {
'asm',
'bash',
'c',
'cmake',
'cpp',
'css',
'csv',
'cuda',
'diff',
'disassembly',
'dockerfile',
'dot',
'doxygen',
'git_config',
'git_rebase',
'gitattributes',
'gitignore',
'glsl',
'go',
'gpg',
'hlsl',
'html',
'ini',
'javascript',
'jq',
'json',
'julia',
'llvm',
'lua',
'make',
'markdown',
'markdown_inline',
'meson',
'mlir',
'ninja',
'objc',
'objdump',
'printf',
'proto',
'python',
'query',
'regex',
'requirements',
'rst',
'ssh_config',
'strace',
'tablegen',
'tmux',
'toml',
'vim',
'vimdoc',
'xml',
'yaml',
},
},
})
})
end,
},
require('neogen').setup({ snippet_engine = 'luasnip' })
vim.keymap.set('n', '<leader>d', require('neogen').generate,
{ desc = 'Generate documentation' })
end
{
'nvim-treesitter/nvim-treesitter-textobjects',
branch = 'main',
config = function()
require('nvim-treesitter-textobjects').setup({
select = {
lookahead = true,
},
})
local select = require('nvim-treesitter-textobjects.select')
local function map(lhs, query)
vim.keymap.set({ 'x', 'o' }, lhs, function()
select.select_textobject(query, 'textobjects')
end, { desc = 'Select ' .. query })
end
map('ac', '@class.outer') -- Class text objects
map('ic', '@class.inner')
map('af', '@function.outer') -- Function text objects
map('if', '@function.inner')
map('a,', '@parameter.outer') -- Parameter/argument text objects
map('i,', '@parameter.inner')
map('a/', '@comment.outer') -- Comment text objects
map('i/', '@comment.inner')
end,
},
{ 'nvim-treesitter/nvim-treesitter-context', opts = {} },
{
'danymat/neogen',
config = function()
require('neogen').setup({ snippet_engine = 'luasnip' })
vim.keymap.set('n', '<leader>d', require('neogen').generate,
{ desc = 'Generate documentation' })
end,
},
'davidmh/mdx.nvim',
}