-- Diagnostic keymaps vim.keymap.set( 'n', 'e', vim.diagnostic.open_float, { desc = "[Diagnostic] Open floating diagnostic message" } ) vim.keymap.set( 'n', '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 }