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,2 +0,0 @@
-- Use treesitter for Python indenting since regex indenting is broken
vim.opt.indentexpr = 'nvim_treesitter#indent()'

View File

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

View File

@@ -1,107 +1,108 @@
return { return {
'nvim-treesitter/nvim-treesitter', {
branch = 'master', 'romus204/tree-sitter-manager.nvim',
dependencies = { lazy = false,
'nvim-treesitter/nvim-treesitter-textobjects', config = function()
{ 'nvim-treesitter/nvim-treesitter-context', opts = {} }, require('tree-sitter-manager').setup({
-- TODO: Fork this and add CMake support -- Enable core highlighting for every installed parser.
-- TODO: Add shell support (sh/bash/zsh if/for/while/etc) highlight = true,
'RRethy/nvim-treesitter-endwise', ensure_installed = {
'danymat/neogen', 'asm',
}, 'bash',
build = ':TSUpdate', 'c',
config = function() 'cmake',
require('nvim-treesitter').setup() 'cpp',
require('nvim-treesitter.configs').setup({ 'css',
sync_install = false, 'csv',
highlight = { enable = true }, 'cuda',
indent = { enable = false }, 'diff',
'disassembly',
-- List of languages that must be available 'dockerfile',
ensure_installed = { 'dot',
'asm', 'doxygen',
'bash', 'git_config',
'c', 'git_rebase',
'cmake', 'gitattributes',
'cpp', 'gitignore',
'css', 'glsl',
'csv', 'go',
'cuda', 'gpg',
'diff', 'hlsl',
'disassembly', 'html',
'dockerfile', 'ini',
'dot', 'javascript',
'doxygen', 'jq',
'git_config', 'json',
'git_rebase', 'julia',
'gitattributes', 'llvm',
'gitignore', 'lua',
'glsl', 'make',
'go', 'markdown',
'gpg', 'markdown_inline',
'hlsl', 'meson',
'html', 'mlir',
'ini', 'ninja',
'javascript', 'objc',
'jq', 'objdump',
'json', 'printf',
'julia', 'proto',
'llvm', 'python',
'lua', 'query',
'make', 'regex',
'markdown', 'requirements',
'markdown_inline', 'rst',
'meson', 'ssh_config',
'ninja', 'strace',
'objc', 'tablegen',
'objdump', 'tmux',
'printf', 'toml',
'proto', 'vim',
'python', 'vimdoc',
'query', 'xml',
'regex', 'yaml',
'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',
},
}, },
}, })
}) end,
},
require('neogen').setup({ snippet_engine = 'luasnip' }) {
vim.keymap.set('n', '<leader>d', require('neogen').generate, 'nvim-treesitter/nvim-treesitter-textobjects',
{ desc = 'Generate documentation' }) branch = 'main',
end 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',
} }

View File

@@ -59,7 +59,7 @@ vim.keymap.set('n', '<leader>gw', function()
end, { desc = 'Format whole file with gw' }) end, { desc = 'Format whole file with gw' })
vim.keymap.set('n', '<leader>fm', function() vim.keymap.set('n', '<leader>fm', function()
if vim.o.foldexpr == 'nvim_treesitter#foldexpr()' then if vim.o.foldexpr == 'v:lua.vim.treesitter.foldexpr()' then
vim.opt.foldexpr = 'nvim_treesitter#foldexpr()' vim.opt.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
end end
end) end)

View File

@@ -89,7 +89,7 @@ vim.opt.joinspaces = false
-- Set fold level to something high -- Set fold level to something high
vim.opt.foldlevel = 20 vim.opt.foldlevel = 20
vim.opt.foldmethod = 'expr' vim.opt.foldmethod = 'expr'
vim.opt.foldexpr = 'nvim_treesitter#foldexpr()' vim.opt.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.opt.foldtext = '' vim.opt.foldtext = ''
vim.opt.fillchars = { fold = ' ' } vim.opt.fillchars = { fold = ' ' }

View File

@@ -1,17 +1,3 @@
-- Customise LSP UI
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(
vim.lsp.handlers.hover, {
border = 'rounded',
title = 'Hover',
}
)
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
vim.lsp.handlers.signature_help, {
border = 'rounded',
title = 'Signature Help',
}
)
-- Customise diagnostic UI -- Customise diagnostic UI
vim.diagnostic.config({ vim.diagnostic.config({
float = { float = {