144 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Lua
		
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Lua
		
	
	
| -- Diagnostic keymaps
 | |
| 
 | |
| vim.keymap.set(
 | |
|   'n',
 | |
|   '[d',
 | |
|   vim.diagnostic.goto_prev,
 | |
|   { desc = "[Diagnostic] Go to previous diagnostic message" }
 | |
| )
 | |
| 
 | |
| vim.keymap.set(
 | |
|   'n',
 | |
|   ']d',
 | |
|   vim.diagnostic.goto_next,
 | |
|   { desc = "[Diagnostic] Go to next diagnostic message" }
 | |
| )
 | |
| 
 | |
| 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",
 | |
| 	},
 | |
| 	build = ":TSUpdate",
 | |
| 
 | |
| 	-- Configure treesitter
 | |
| 	config = function()
 | |
|     ---@diagnostic disable-next-line: missing-fields
 | |
| 		local config = require("nvim-treesitter.configs")
 | |
| 
 | |
| 		config.setup({
 | |
| 			-- Enable color syntax
 | |
| 			highlight = {
 | |
| 				enable = true,
 | |
|         disable = {
 | |
|           "markdown"
 | |
|         },
 | |
| 			},
 | |
| 			-- Enable better indentation management
 | |
| 			indent = { enable = true },
 | |
| 
 | |
| 			-- Installed and configured languages 
 | |
| 			ensure_installed = {
 | |
| 				"bash",
 | |
| 				"css",
 | |
| 				"dot",
 | |
| 				"gitignore",
 | |
| 				"html",
 | |
| 				"javascript",
 | |
| 				"json",
 | |
|         "julia",
 | |
| 				"latex",
 | |
| 				"lua",
 | |
|         "markdown",
 | |
|         "markdown_inline",
 | |
|         "mermaid",
 | |
|         "norg",
 | |
| 				"python",
 | |
| 				"query",
 | |
|         "r",
 | |
|         "typescript",
 | |
| 				"vim",
 | |
| 				"vimdoc",
 | |
| 				"yaml",
 | |
| 			},
 | |
| 
 | |
| 			-- Do not install parses synchronously
 | |
| 			sync_install = false,
 | |
| 
 | |
|       -- Do not install automatically missing parsers
 | |
|       auto_install = false,
 | |
| 
 | |
| 			-- <Ctrl-space> select the current bloc
 | |
| 			incremental_selection = {
 | |
| 				enable = true,
 | |
| 				keymaps = {
 | |
| 					init_selection = "<C-space>",
 | |
| 					node_incremental = "<C-space>",
 | |
| 					scope_incremental = false,
 | |
| 					node_decremental = "<bs>",
 | |
| 				},
 | |
| 			},
 | |
| 			textobjects = {
 | |
| 				select = {
 | |
| 					enable = true,
 | |
| 					lookahead = true, -- Automatically jump forward to textobj
 | |
| 					keymaps = {
 | |
| 						-- You can use the capture groups defined in textobjects.scm
 | |
| 						['aa'] = '@parameter.outer',
 | |
| 						['ia'] = '@parameter.inner',
 | |
| 						['af'] = '@function.outer',
 | |
| 						['if'] = '@function.inner',
 | |
| 						['ac'] = '@class.outer',
 | |
| 						['ic'] = '@class.inner',
 | |
| 					},
 | |
| 				},
 | |
| 				move = {
 | |
| 					enable = true,
 | |
| 					set_jumps = true, -- whether to set jumps in the jumplist
 | |
| 					goto_next_start = {
 | |
| 						[']m'] = '@function.outer',
 | |
| 						[']]'] = '@class.outer',
 | |
| 					},
 | |
| 					goto_next_end = {
 | |
| 						[']M'] = '@function.outer',
 | |
| 						[']['] = '@class.outer',
 | |
| 					},
 | |
| 					goto_previous_start = {
 | |
| 						['[m'] = '@function.outer',
 | |
| 						['[['] = '@class.outer',
 | |
| 					},
 | |
| 					goto_previous_end = {
 | |
| 						['[M'] = '@function.outer',
 | |
| 						['[]'] = '@class.outer',
 | |
| 					},
 | |
| 				},
 | |
| 				swap = {
 | |
| 					enable = true,
 | |
| 					swap_next = {
 | |
| 						['<leader>a'] = '@parameter.inner',
 | |
| 					},
 | |
| 					swap_previous = {
 | |
| 						['<leader>A'] = '@parameter.inner',
 | |
| 					},
 | |
| 				},
 | |
| 			},
 | |
| 		})
 | |
| 	end,
 | |
| }
 |