Страничка на GitHub: github.com/nvim-treesitter/nvim-treesitter
Устанавливаем nvim-treesitter:
-- ~/.config/nvim/lua/plugins/treesitter.lua
return {
'nvim-treesitter/nvim-treesitter',
lazy = false,
build = ':TSUpdate',
config = function()
require'nvim-treesitter'.install { "javascript", "typescript", "html", "css", "lua" }
end
}
и подключаем treesitter в init.lua:
-- ~/.config/nvim/init.lua
-- Setup lazy.nvim
require("lazy").setup({
spec = {
{ import = "plugins.treesitter" },
-- { ... }
},
-- install = { colorscheme = { "habamax" } }
})
Далее запустим :Lazy внутри nvim и установим Treesitter.
Проверка:
:checkhealth nvim-treesitter
" Можно также проверить и treesitter:
:checkhealth treesitter
Если в системе не установлен tree-sitter-cli, то nvim-treesitter будет ругаться на это – покажет как ошибку. Хотя он работает и без tree-sitter-cli.
Установить tree-sitter-cli:
# через npm:
npm install -g tree-sitter-cli
# Или с помощью pacman:
sudo pacman -S tree-sitter
В моём случае cli из репозитория Arch был старой версии, nvim-treesitter требовал версию поновее. Поэтому лучше ставить через npm.
Чтобы tree-sitter-cli, установленный с помощью npm, не конфликтовал с системным, лучше его ставить в $HOME. Можно сделать так:
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
# В ~/.bashrc добавим:
export PATH="$HOME/.npm-global/bin:$PATH"
# И после этого установим cli:
npm install -g tree-sitter-cli
После этого нужно перезайти в shell или выполнить: source ~/.bashrc
Покажет, какие capture-группы Tree-sitter срабатывают под курсором (через :inspect для Tree-sitter):
:lua =vim.treesitter.get_captures_at_cursor()