90 lines
1.8 KiB
Lua
90 lines
1.8 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",
|
|
branch = "main", -- ← nécessaire aussi pour textobjects
|
|
},
|
|
lazy = false,
|
|
branch = "main",
|
|
build = ":TSUpdate",
|
|
|
|
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',
|
|
'xml',
|
|
'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',
|
|
'xml',
|
|
'yaml',
|
|
},
|
|
callback = function()
|
|
-- syntax highlighting, provided by Neovim
|
|
pcall(vim.treesitter.start) -- ← pcall: évite l'erreur si pas de parser
|
|
-- folds, provided by Neovim
|
|
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
|
|
vim.wo.foldmethod = 'expr'
|
|
-- indentation, provided by nvim-treesitter (expérimental)
|
|
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
|
|
end,
|
|
})
|
|
end
|
|
}
|
|
|