treesitter: update to the main branch (1.0)

This commit is contained in:
2025-10-13 17:41:50 +03:00
parent ba7948b5c2
commit 3cd2838ebf
3 changed files with 131 additions and 86 deletions

View File

@@ -3,57 +3,85 @@ local augroup = vim.api.nvim_create_augroup
local CrentistGroup = augroup('Crentist', {})
local OnSaveGroup = augroup('CrentistOnSave', {})
local CrentistTreeSitter = augroup('CrentistTreeSitter', {})
local builtin = require('telescope.builtin')
autocmd('LspAttach', {
group = CrentistGroup,
callback = function(e)
local opts = { buffer = e.buf }
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
vim.keymap.set("n", "<leader>vrr", function() builtin.lsp_references() end, opts)
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts)
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts)
vim.keymap.set("n", "<M-F>", function() vim.lsp.buf.format() end, opts)
end
group = CrentistGroup,
callback = function(e)
local opts = { buffer = e.buf }
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
vim.keymap.set("n", "<leader>vrr", function() builtin.lsp_references() end, opts)
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
vim.keymap.set("n", "[d", function() vim.diagnostic.jump({ count = 1 }) end, opts)
vim.keymap.set("n", "]d", function() vim.diagnostic.jump({ count = -1 }) end, opts)
vim.keymap.set("n", "<M-F>", function() vim.lsp.buf.format() end, opts)
end
})
-- Add new line to the end of the file
autocmd({ 'BufWritePre' }, {
group = OnSaveGroup,
pattern = '*',
callback = function()
local n_lines = vim.api.nvim_buf_line_count(0)
local last_nonblank = vim.fn.prevnonblank(n_lines)
if last_nonblank <= n_lines then
vim.api.nvim_buf_set_lines(0,
last_nonblank, n_lines, true, { '' })
end
end,
group = OnSaveGroup,
pattern = '*',
callback = function()
local n_lines = vim.api.nvim_buf_line_count(0)
local last_nonblank = vim.fn.prevnonblank(n_lines)
if last_nonblank <= n_lines then
vim.api.nvim_buf_set_lines(0,
last_nonblank, n_lines, true, { '' })
end
end,
})
-- Remove trailing spaces
autocmd({ 'BufWritePre' }, {
group = OnSaveGroup,
pattern = { "*" },
callback = function()
local save_cursor = vim.fn.winsaveview()
pcall(function() vim.cmd [[%s/\s\+$//e]] end)
vim.fn.winrestview(save_cursor)
end,
group = OnSaveGroup,
pattern = { "*" },
callback = function()
local save_cursor = vim.fn.winsaveview()
pcall(function() vim.cmd [[%s/\s\+$//e]] end)
vim.fn.winrestview(save_cursor)
end,
})
autocmd({'FileType'}, {
group = CrentistGroup,
pattern = { 'json' },
callback = function (e)
vim.keymap.set("n", "<M-F>", function() vim.cmd('silent %!jq .') end, {buffer = e.buf})
end
autocmd({ 'FileType' }, {
group = CrentistGroup,
pattern = { 'json' },
callback = function(e)
vim.keymap.set("n", "<M-F>", function() vim.cmd('silent %!jq .') end, { buffer = e.buf })
end
})
autocmd({ 'FileType' }, {
group = CrentistTreeSitter,
pattern = {
'sh',
'javascript',
'typescript',
'python',
'go',
'terraform*',
'yaml',
'helm',
'tmux',
'lua',
'vim',
'vimdoc',
'latex',
'json',
'yaml*',
'git*',
'make',
'markdown*',
},
callback = function(e)
vim.treesitter.start(e.buf)
end
})

View File

@@ -1,32 +1,50 @@
return {
'nvim-treesitter/nvim-treesitter',
branch='master',
branch = 'main',
lazy = false,
build = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup({
-- A list of parser names, or "all" (the five listed parsers should always be installed)
ensure_installed = { "bash", "javascript", "typescript", "python", "go", "terraform", "hcl", "helm", "jq", "yaml", "tmux", "lua", "vim", "vimdoc" },
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- Automatically install missing parsers when entering buffer
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
auto_install = true,
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
highlight = {
enable = true,
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-- Using this option may slow down your editor, and you may see some duplicate highlights.
-- Instead of true it can also be a list of languages
additional_vim_regex_highlighting = false,
},
})
local ts = require("nvim-treesitter")
local installed_parsers = {
"bash",
"javascript",
"typescript",
"python",
"go",
"terraform",
"hcl",
"helm",
"jq",
"yaml",
"tmux",
"lua",
"vim",
"vimdoc",
"latex",
"json",
"yaml",
"git_config",
"git_rebase",
"gitattributes",
"gitcommit",
"gitignore",
"make",
"markdown_inline",
"nginx",
"properties",
"ini",
"ssh_config",
"ssh_client_config",
"editorconfig",
"passwd",
"regex",
"sql",
"sqlite",
"toml",
"xml",
}
ts.setup()
ts.install(installed_parsers)
end
}