Adjusted lsp based keymaps
This commit is contained in:
parent
9d72215ac6
commit
3291fb8111
|
@ -1,5 +1,3 @@
|
||||||
local window = require("symbols.window")
|
|
||||||
|
|
||||||
-- Highlight on yank
|
-- Highlight on yank
|
||||||
vim.api.nvim_create_autocmd("TextYankPost", {
|
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||||
callback = function()
|
callback = function()
|
||||||
|
@ -27,63 +25,58 @@ vim.api.nvim_create_autocmd({ "InsertEnter", "WinLeave" }, {
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
local group = vim.api.nvim_create_augroup("lsp-attach", { clear = true })
|
||||||
-- Setup lsp keybindings
|
-- Setup lsp keybindings
|
||||||
vim.api.nvim_create_autocmd("LspAttach", {
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
group = group,
|
||||||
callback = function(event)
|
callback = function(event)
|
||||||
-- Symbols
|
local map = function(keys, func, desc, mode)
|
||||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Goto definition" })
|
mode = mode or "n"
|
||||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "Goto declaration" })
|
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = desc })
|
||||||
vim.keymap.set("n", "<leader>D", vim.lsp.buf.type_definition, { desc = "Type definition" })
|
end
|
||||||
|
|
||||||
if pcall(require, "telescope") then
|
-- Symbols
|
||||||
vim.keymap.set("n", "gr", require("telescope.builtin").lsp_references, { desc = "Goto references" })
|
map("grD", vim.lsp.buf.declaration, "Goto declaration")
|
||||||
vim.keymap.set(
|
|
||||||
"n",
|
local has_telescope, telescope = pcall(require, "telescope.builtin")
|
||||||
"gI",
|
if has_telescope then
|
||||||
require("telescope.builtin").lsp_implementations,
|
map("grd", telescope.lsp_definitions, "Goto definition")
|
||||||
{ desc = "Goto implementation" }
|
|
||||||
)
|
map("grt", telescope.lsp_type_definitions, "Type definition")
|
||||||
vim.keymap.set(
|
|
||||||
"n",
|
map("grr", telescope.lsp_references, "Goto references")
|
||||||
"<leader>ds",
|
map("gri", telescope.lsp_implementations, "Goto implementation")
|
||||||
require("telescope.builtin").lsp_document_symbols,
|
map("gO", telescope.lsp_document_symbols, "Document symbols")
|
||||||
{ desc = "Document symbols" }
|
map("gW", telescope.lsp_dynamic_workspace_symbols, "Workspace symbols")
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
"n",
|
|
||||||
"<leader>ws",
|
|
||||||
require("telescope.builtin").lsp_dynamic_workspace_symbols,
|
|
||||||
{ desc = "Workspace symbols" }
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Diagnostics
|
-- Diagnostics
|
||||||
vim.keymap.set("n", "[d", function()
|
map("[d", function()
|
||||||
vim.diagnostic.jump({ count = -1 })
|
vim.diagnostic.jump({ count = -1 })
|
||||||
end, { desc = "Go to previous diagnostic message" })
|
end, "Go to previous diagnostic message")
|
||||||
vim.keymap.set("n", "]d", function()
|
map("]d", function()
|
||||||
vim.diagnostic.jump({ count = 1 })
|
vim.diagnostic.jump({ count = 1 })
|
||||||
end, { desc = "Go to next diagnostic message" })
|
end, "Go to next diagnostic message")
|
||||||
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Open floating diagnostic message" })
|
map("<leader>e", vim.diagnostic.open_float, "Open floating diagnostic message")
|
||||||
|
|
||||||
-- Helpers
|
-- Helpers
|
||||||
vim.keymap.set("n", "<leader>rn", function()
|
vim.keymap.set("n", "grn", function()
|
||||||
return ":IncRename " .. vim.fn.expand("<cword>")
|
return ":IncRename " .. vim.fn.expand("<cword>")
|
||||||
end, { buffer = event.buf, expr = true, desc = "Rename" })
|
end, { buffer = event.buf, expr = true, desc = "Rename" })
|
||||||
vim.keymap.set(
|
map("gra", vim.lsp.buf.code_action, "Code actions", { "n", "x" })
|
||||||
"n",
|
|
||||||
"<leader>ca",
|
|
||||||
vim.lsp.buf.code_action,
|
|
||||||
{ buffer = event.buf, desc = "Code actions", remap = true }
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Documentation
|
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||||
-- vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, { desc = "Signature Documentation" })
|
if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
|
||||||
|
map("<leader>th", function()
|
||||||
|
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
|
||||||
|
end, "Toggle inlay hints")
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Setup cursor hover symbol highlight
|
-- Setup cursor hover symbol highlight
|
||||||
vim.api.nvim_create_autocmd("LspAttach", {
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
group = group,
|
||||||
callback = function(event)
|
callback = function(event)
|
||||||
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||||
if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then
|
if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then
|
||||||
|
@ -113,6 +106,7 @@ vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
|
||||||
-- Disable lsp based syntax highlighting
|
-- Disable lsp based syntax highlighting
|
||||||
vim.api.nvim_create_autocmd("LspAttach", {
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
group = group,
|
||||||
callback = function(event)
|
callback = function(event)
|
||||||
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||||
if client and client.server_capabilities.semanticTokensProvider then
|
if client and client.server_capabilities.semanticTokensProvider then
|
||||||
|
|
|
@ -51,6 +51,7 @@ return {
|
||||||
{ "<leader>d", group = "Document" },
|
{ "<leader>d", group = "Document" },
|
||||||
{ "<leader>g", group = "Git" },
|
{ "<leader>g", group = "Git" },
|
||||||
{ "<leader>s", group = "Search" },
|
{ "<leader>s", group = "Search" },
|
||||||
|
{ "gr", group = "LSP" },
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user