diff options
-rw-r--r-- | nvim/.config/nvim/lua/plugins/ferris.lua | 4 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua | 72 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua | 31 |
3 files changed, 55 insertions, 52 deletions
diff --git a/nvim/.config/nvim/lua/plugins/ferris.lua b/nvim/.config/nvim/lua/plugins/ferris.lua index d4ee82d..bd18adc 100644 --- a/nvim/.config/nvim/lua/plugins/ferris.lua +++ b/nvim/.config/nvim/lua/plugins/ferris.lua @@ -1,7 +1,9 @@ ---@type LazyPluginSpec local M = { "vxpm/ferris.nvim", - config = true, + opts = { + url_handler = vim.ui.open, + }, } function M:init() diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua b/nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua index b6d1465..0be149a 100644 --- a/nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua +++ b/nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua @@ -1,73 +1,67 @@ -local on_list = function(options) - vim.fn.setqflist({}, " ", options) - vim.api.nvim_command("cfirst") -end +local ms = vim.lsp.protocol.Methods local M = { - ["textDocument/documentHighlight"] = function(bufnr) + [ms.textDocument_documentHighlight] = function(bufnr) vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { buffer = bufnr, callback = vim.lsp.buf.document_highlight, - desc = "lsp document highlight", + desc = "document highlight", }) vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { buffer = bufnr, callback = vim.lsp.buf.clear_references, - desc = "lsp clear references", + desc = "clear references", }) end, - ["textDocument/signatureHelp"] = function(bufnr) + [ms.textDocument_signatureHelp] = function(bufnr) vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, { buffer = bufnr, desc = "signature help", }) end, - ["textDocument/declaration"] = function(bufnr) - vim.keymap.set("n", "gD", function() - vim.lsp.buf.declaration({ on_list = on_list }) - end, { buffer = bufnr, desc = "declaration" }) - end, - ["textDocument/definition"] = function(bufnr) - vim.keymap.set("n", "gd", function() - vim.lsp.buf.definition({ on_list = on_list }) - end, { buffer = bufnr, desc = "definition" }) + [ms.textDocument_declaration] = function(bufnr) + vim.keymap.set("n", "gd", vim.lsp.buf.declaration, { + buffer = bufnr, + desc = "declaration", + }) end, - ["textDocument/typeDefinition"] = function(bufnr) - vim.keymap.set("n", "go", function() - vim.lsp.buf.type_definition({ on_list = on_list }) - end, { buffer = bufnr, desc = "type definition" }) + [ms.textDocument_definition] = function(bufnr) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, { + buffer = bufnr, + desc = "definition", + }) end, - ["textDocument/implementation"] = function(bufnr) - vim.keymap.set("n", "gi", function() - vim.lsp.buf.implementation({ on_list = on_list }) - end, { buffer = bufnr, desc = "implementation" }) + [ms.textDocument_typeDefinition] = function(bufnr) + vim.keymap.set("n", "go", vim.lsp.buf.type_definition, { + buffer = bufnr, + desc = "type definition", + }) end, - ["textDocument/inlayHint"] = function(bufnr) - vim.lsp.inlay_hint.enable(bufnr, true) + [ms.textDocument_implementation] = function(bufnr) + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, { + buffer = bufnr, + desc = "implementation", + }) end, - ["textDocument/references"] = function(bufnr) - vim.keymap.set("n", "gr", function() - vim.lsp.buf.references(nil, { on_list = on_list }) - end, { buffer = bufnr, desc = "references" }) + [ms.textDocument_inlayHint] = vim.lsp.inlay_hint.enable, + [ms.textDocument_references] = function(bufnr) + vim.keymap.set("n", "gr", vim.lsp.buf.references, { + buffer = bufnr, + desc = "references", + }) end, - ["textDocument/rename"] = function(bufnr) + [ms.textDocument_rename] = function(bufnr) vim.keymap.set("n", "<leader>lr", vim.lsp.buf.rename, { buffer = bufnr, desc = "rename", }) end, - ["textDocument/codeAction"] = function(bufnr) + [ms.textDocument_codeAction] = function(bufnr) vim.keymap.set("n", "<leader>la", vim.lsp.buf.code_action, { buffer = bufnr, desc = "code action", }) end, - ["experimental/externalDocs"] = function(bufnr) - vim.keymap.set("n", "gx", vim.lsp.buf.external_docs, { - buffer = bufnr, - desc = "external_docs", - }) - end, } return M diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua b/nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua index 0e5b7d6..d119f46 100644 --- a/nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua +++ b/nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua @@ -1,22 +1,29 @@ local ms = vim.lsp.protocol.Methods +local on_list = function(what) + vim.fn.setqflist({}, " ", what) + vim.cmd.cfirst() +end + local M = { - [ms.textDocument_hover] = vim.lsp.with(vim.lsp.handlers.hover, { + [ms.textDocument_hover] = vim.lsp.with(vim.lsp.handlers[ms.textDocument_hover], { border = "single", }), - [ms.textDocument_signatureHelp] = vim.lsp.with(vim.lsp.handlers.signature_help, { + [ms.textDocument_signatureHelp] = vim.lsp.with(vim.lsp.handlers[ms.textDocument_signatureHelp], { border = "single", }), - ["experimental/externalDocs"] = function(_, url) - if url then - vim.ui.open(url) - end - end, + [ms.textDocument_definition] = vim.lsp.with(vim.lsp.handlers[ms.textDocument_definition], { + on_list = on_list, + }), + [ms.textDocument_references] = vim.lsp.with(vim.lsp.handlers[ms.textDocument_references], { + on_list = on_list, + }), + [ms.textDocument_typeDefinition] = vim.lsp.with(vim.lsp.handlers[ms.textDocument_typeDefinition], { + on_list = on_list, + }), + [ms.textDocument_implementation] = vim.lsp.with(vim.lsp.handlers[ms.textDocument_implementation], { + on_list = on_list, + }), } -function vim.lsp.buf.external_docs() - local params = vim.lsp.util.make_position_params() - return vim.lsp.buf_request(0, "experimental/externalDocs", params, M["experimental/externalDocs"]) -end - return M |