neovim/lua/plugins/treesitter.lua

86 lines
1.6 KiB
Lua

-- Diagnostic keymaps
vim.keymap.set(
'n',
'<leader>e',
vim.diagnostic.open_float,
{ desc = "[Diagnostic] Open floating diagnostic message" }
)
vim.keymap.set(
'n',
'<leader>q',
vim.diagnostic.setloclist,
{ desc = "[Diagnostic] Open diagnostics list" }
)
-- Install and configure treesitter
return {
"nvim-treesitter/nvim-treesitter",
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
},
lazy = false,
build = ":TSUpdate",
-- Configure treesitter
config = function ()
local treesitter = require('nvim-treesitter')
treesitter.setup()
treesitter.install({
'bash',
'css',
'dot',
'gitignore',
'html',
'javascript',
'json',
'julia',
'latex',
'lua',
'mermaid',
'python',
'query',
'r',
'typescript',
'vim',
'vimdoc',
'yaml',
})
vim.api.nvim_create_autocmd('FileType', {
pattern = {
'bash',
'css',
'dot',
'gitignore',
'html',
'javascript',
'json',
'julia',
'latex',
'lua',
'mermaid',
'python',
'query',
'r',
'typescript',
'vim',
'vimdoc',
'yaml',
},
callback = function()
-- syntax highlighting, provided by Neovim
vim.treesitter.start()
-- folds, provided by Neovim
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo.foldmethod = 'expr'
-- indentation, provided by nvim-treesitter
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
end,
})
end
}