-- LSP keymaps local opts = { noremap = true, silent = true } vim.g.mapleader = " " -- Go to definition vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) -- Go to declaration vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) -- Find references vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) -- Go to implementation vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts) -- Hover documentation vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) -- Signature help vim.keymap.set("n", "", vim.lsp.buf.signature_help, opts) -- Rename symbol vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) -- Code actions vim.keymap.set("n", "ca", vim.lsp.buf.code_action, opts) -- Show floating error vim.keymap.set("n", "E", vim.diagnostic.open_float, opts) -- Window navigation with Ctrl + hjkl vim.keymap.set('n', '', 'h', opts) vim.keymap.set('n', '', 'j', opts) vim.keymap.set('n', '', 'k', opts) vim.keymap.set('n', '', 'l', opts)