-- 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", }, 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 }