aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim
diff options
context:
space:
mode:
Diffstat (limited to 'nvim')
-rw-r--r--nvim/.config/nvim/lua/plugins/ferris.lua4
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp/capabilities.lua72
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua31
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