-- local telescope_mapper = require "pi.telescope.mappings" return function(client, bufnr) -- keymaps for lsp vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = 0, desc = "LSP Help information of symbol under the cursor" }) vim.keymap.set("n", "vrn", vim.lsp.buf.rename, { buffer = 0, desc = "LSP Rename symbol under cursor" }) vim.keymap.set("i", "", vim.lsp.buf.signature_help, { buffer = 0, desc = "LSP Signature help" }) vim.keymap.set("n", "vo", ":LspRestart", { noremap = true, desc = "LSP Restart Server" }) vim.keymap.set({ "n", "v" }, "vca", vim.lsp.buf.code_action, { buffer = 0, desc = "LSP Code actions" }) vim.keymap.set("n", "vf", function() return vim.lsp.buf.format { async = true } end, { buffer = 0, desc = "LSP format file" }) -- Add inlay hint toggle vim.keymap.set("n", "vh", function() local current = vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }) vim.lsp.inlay_hint.enable(not current, { bufnr = bufnr }) vim.notify("Inlay hints " .. (current and "disabled" or "enabled")) end, { buffer = 0, desc = "LSP Toggle inlay hints" }) vim.keymap.set("n", "gr", function() Snacks.picker.lsp_references() end, { buffer = bufnr, desc = "LSP References of symbol on cursor" }) vim.keymap.set("n", "pv", function() Snacks.picker.lsp_workspace_symbols() end, { buffer = bufnr, desc = "LSP find symbol on the project" }) vim.keymap.set("n", "pd", function() Snacks.picker.lsp_symbols() end, { buffer = bufnr, desc = "LSP document symbols" }) vim.keymap.set("n", "gd", function() Snacks.picker.lsp_definitions() end, { buffer = bufnr, desc = "LSP go to definition" }) vim.bo.omnifunc = "v:lua.vim.lsp.omnifunc" -- Enable inlay hints if supported (Neovim 0.11+ compatible) -- Use pcall to handle any potential errors with inlay hints if client.server_capabilities.inlayHintProvider then pcall(function() vim.lsp.inlay_hint.enable(true, { bufnr = bufnr }) end) end -- El resaltado de referencias bajo el cursor lo provee snacks.words (snacks.lua), -- y la navegación ]r/[r se define en config.keymaps. end