diff --git a/.config/nvim/lua/lazyvim/plugins/lsp/keymaps.lua b/.config/nvim/lua/lazyvim/plugins/lsp/keymaps.lua index 1eb59f3..388b743 100644 --- a/.config/nvim/lua/lazyvim/plugins/lsp/keymaps.lua +++ b/.config/nvim/lua/lazyvim/plugins/lsp/keymaps.lua @@ -1,73 +1,73 @@ local M = {} function M.on_attach(client, buffer) - local self = M.new(client, buffer) + local self = M.new(client, buffer) - self:map("ld", vim.diagnostic.open_float, { desc = "Line Diagnostics" }) - self:map("lI", "LspInfo", { desc = "Lsp Info" }) - self:map("ls", "Telescope diagnostics", { desc = "Telescope Diagnostics" }) - self:map("gd", "Telescope lsp_definitions", { desc = "Goto Definition" }) - self:map("gr", "Telescope lsp_references", { desc = "References" }) - self:map("gD", "Telescope lsp_declarations", { desc = "Goto Declaration" }) - self:map("gI", "Telescope lsp_implementations", { desc = "Goto Implementation" }) - self:map("gt", "Telescope lsp_type_definitions", { desc = "Goto Type Definition" }) - self:map("K", vim.lsp.buf.hover, { desc = "Hover" }) - self:map("gK", vim.lsp.buf.signature_help, { desc = "Signature Help", has = "signatureHelp" }) - self:map("[d", M.diagnostic_goto(true), { desc = "Next Diagnostic" }) - self:map("]d", M.diagnostic_goto(false), { desc = "Prev Diagnostic" }) - self:map("]e", M.diagnostic_goto(true, "ERROR"), { desc = "Next Error" }) - self:map("[e", M.diagnostic_goto(false, "ERROR"), { desc = "Prev Error" }) - self:map("]w", M.diagnostic_goto(true, "WARNING"), { desc = "Next Warning" }) - self:map("[w", M.diagnostic_goto(false, "WARNING"), { desc = "Prev Warning" }) - self:map("la", vim.lsp.buf.code_action, { desc = "Code Action", mode = { "n", "v" }, has = "codeAction" }) + self:map("ld", vim.diagnostic.open_float, { desc = "Line Diagnostics" }) + self:map("lI", "LspInfo", { desc = "Lsp Info" }) + self:map("ls", "Telescope diagnostics", { desc = "Telescope Diagnostics" }) + self:map("gd", "Telescope lsp_definitions", { desc = "Goto Definition" }) + self:map("gr", "Telescope lsp_references", { desc = "References" }) + self:map("gD", "Telescope lsp_declarations", { desc = "Goto Declaration" }) + self:map("gI", "Telescope lsp_implementations", { desc = "Goto Implementation" }) + self:map("gt", "Telescope lsp_type_definitions", { desc = "Goto Type Definition" }) + self:map("K", vim.lsp.buf.hover, { desc = "Hover" }) + self:map("gK", vim.lsp.buf.signature_help, { desc = "Signature Help", has = "signatureHelp" }) + self:map("[d", M.diagnostic_goto(true), { desc = "Next Diagnostic" }) + self:map("]d", M.diagnostic_goto(false), { desc = "Prev Diagnostic" }) + self:map("]e", M.diagnostic_goto(true, "ERROR"), { desc = "Next Error" }) + self:map("[e", M.diagnostic_goto(false, "ERROR"), { desc = "Prev Error" }) + self:map("]w", M.diagnostic_goto(true, "WARNING"), { desc = "Next Warning" }) + self:map("[w", M.diagnostic_goto(false, "WARNING"), { desc = "Prev Warning" }) + self:map("la", vim.lsp.buf.code_action, { desc = "Code Action", mode = { "n", "v" }, has = "codeAction" }) - local format = require("lazyvim.plugins.lsp.format").format - self:map("lf", format, { desc = "Format Document", has = "documentFormatting" }) - self:map("lF", format, { desc = "Format Range", mode = "v", has = "documentRangeFormatting" }) - self:map("lr", M.rename, { expr = true, desc = "Rename", has = "rename" }) + local format = require("lazyvim.plugins.lsp.format").format + self:map("lf", format, { desc = "Format Document", has = "documentFormatting" }) + self:map("lF", format, { desc = "Format Range", mode = "v", has = "documentRangeFormatting" }) + self:map("lr", M.rename, { expr = true, desc = "Rename", has = "rename" }) - if client.name == "tsserver" and pcall(require, "typescript") then - self:map("lo", "TypescriptOrganizeImports", { desc = "Organize Imports" }) - self:map("lR", "TypescriptRenameFile", { desc = "Rename File" }) - end + if client.name == "tsserver" and pcall(require, "typescript") then + self:map("lo", "TypescriptOrganizeImports", { desc = "Organize Imports" }) + self:map("lR", "TypescriptRenameFile", { desc = "Rename File" }) + end end function M.new(client, buffer) - return setmetatable({ client = client, buffer = buffer }, { __index = M }) + return setmetatable({ client = client, buffer = buffer }, { __index = M }) end function M:has(cap) - return self.client.server_capabilities[cap .. "Provider"] + return self.client.server_capabilities[cap .. "Provider"] end function M:map(lhs, rhs, opts) - opts = opts or {} - if opts.has and not self:has(opts.has) then - return - end - vim.keymap.set( - opts.mode or "n", - lhs, - type(rhs) == "string" and ("%s"):format(rhs) or rhs, - ---@diagnostic disable-next-line: no-unknown - { silent = true, buffer = self.buffer, expr = opts.expr, desc = opts.desc } - ) + opts = opts or {} + if opts.has and not self:has(opts.has) then + return + end + vim.keymap.set( + opts.mode or "n", + lhs, + type(rhs) == "string" and ("%s"):format(rhs) or rhs, + ---@diagnostic disable-next-line: no-unknown + { silent = true, buffer = self.buffer, expr = opts.expr, desc = opts.desc } + ) end function M.rename() - if pcall(require, "inc_rename") then - return ":IncRename " .. vim.fn.expand("") - else - vim.lsp.buf.rename() - end + if pcall(require, "inc_rename") then + return ":IncRename " .. vim.fn.expand("") + else + vim.lsp.buf.rename() + end end function M.diagnostic_goto(next, severity) - local go = next and vim.diagnostic.goto_next or vim.diagnostic.goto_prev - severity = severity and vim.diagnostic.severity[severity] or nil - return function() - go({ severity = severity }) - end + local go = next and vim.diagnostic.goto_next or vim.diagnostic.goto_prev + severity = severity and vim.diagnostic.severity[severity] or nil + return function() + go({ severity = severity }) + end end return M