nit(nvim): refactor lsp keymaps
This commit is contained in:
parent
ffa2a6b892
commit
4acc3621cb
|
@ -14,14 +14,14 @@
|
||||||
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "dfdd771b792fbb4bad8e057d72558255695aa1a7" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "dfdd771b792fbb4bad8e057d72558255695aa1a7" },
|
||||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "6148b51db945b55b3b725da39eaea6441e59dff8" },
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "6148b51db945b55b3b725da39eaea6441e59dff8" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "0942198fb9a998b6ccee36fb8dd7495eb8ba659c" },
|
"mason.nvim": { "branch": "main", "commit": "ee6a7f179ebf8aa9da9d53b1cf1b57d292ea0182" },
|
||||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "9b5b4c874b13e372500f07c37187ba06c0c1ac0a" },
|
"neo-tree.nvim": { "branch": "v3.x", "commit": "9b5b4c874b13e372500f07c37187ba06c0c1ac0a" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "aa1b4c1e05983ff7debd2b4b2788651db099de2f" },
|
"nui.nvim": { "branch": "main", "commit": "aa1b4c1e05983ff7debd2b4b2788651db099de2f" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
||||||
"nvim-dap": { "branch": "master", "commit": "31e1ece773e10448dcb616d5144290946a6264b7" },
|
"nvim-dap": { "branch": "master", "commit": "31e1ece773e10448dcb616d5144290946a6264b7" },
|
||||||
"nvim-dap-ui": { "branch": "master", "commit": "85b16ac2309d85c88577cd8ee1733ce52be8227e" },
|
"nvim-dap-ui": { "branch": "master", "commit": "85b16ac2309d85c88577cd8ee1733ce52be8227e" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "a27356f1ef9c11e1f459cc96a3fcac5c265e72d6" },
|
"nvim-lspconfig": { "branch": "master", "commit": "a27356f1ef9c11e1f459cc96a3fcac5c265e72d6" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "17b943e7c5cc2b2db3ac7b5720fbd42e75a00d8d" },
|
"nvim-treesitter": { "branch": "master", "commit": "30604fd7dde5abcba7ca8f5761894dfa61febe51" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "bc11ee2498de2310de5776477dd9dce65d03b464" },
|
"nvim-web-devicons": { "branch": "master", "commit": "bc11ee2498de2310de5776477dd9dce65d03b464" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "0dbe561ae023f02c2fb772b879e905055b939ce3" },
|
"plenary.nvim": { "branch": "master", "commit": "0dbe561ae023f02c2fb772b879e905055b939ce3" },
|
||||||
"rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" },
|
"rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" },
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
local map = require("utility").curried_keymap
|
local map = require("utility").keymap
|
||||||
local n, t = map 'n', map 't'
|
local n, t, nv = map 'n', map 't', map {'n', 'v'}
|
||||||
|
|
||||||
|
|
||||||
n "<leader>mn" ":Explore ~/.config/nvim/<cr>" "Meta: open Neovim config"
|
n "<leader>mn" ":Explore ~/.config/nvim/<cr>" "Meta: open Neovim config"
|
||||||
|
@ -27,3 +27,36 @@ n "[d" (vim.diagnostic.goto_prev) "Previous diagnostic message"
|
||||||
n "]d" (vim.diagnostic.goto_next) "Next diagnostic message"
|
n "]d" (vim.diagnostic.goto_next) "Next diagnostic message"
|
||||||
n "<leader>dl" (vim.diagnostic.setloclist) "Diagnostic: list messages"
|
n "<leader>dl" (vim.diagnostic.setloclist) "Diagnostic: list messages"
|
||||||
|
|
||||||
|
-- LSP
|
||||||
|
vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
|
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
|
||||||
|
desc = "LSP actions",
|
||||||
|
callback = function(ev)
|
||||||
|
-- Enable completion triggered by <c-x><c-o>
|
||||||
|
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
|
||||||
|
|
||||||
|
local function workspaces_list()
|
||||||
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||||
|
end
|
||||||
|
|
||||||
|
local function format()
|
||||||
|
vim.lsp.buf.format({async = true})
|
||||||
|
end
|
||||||
|
|
||||||
|
local buffer = ev.buf
|
||||||
|
n "K" (vim.lsp.buf.hover) {"Show hover help", buffer}
|
||||||
|
n "gD" (vim.lsp.buf.declaration) {"Go to declaration", buffer}
|
||||||
|
n "gd" (vim.lsp.buf.definition) {"Go to definition", buffer}
|
||||||
|
n "gi" (vim.lsp.buf.implementation) {"Go to implementation", buffer}
|
||||||
|
n "gr" (vim.lsp.buf.references) {"Show references", buffer}
|
||||||
|
n "<leader>D" (vim.lsp.buf.type_definition) {"Go to type definition", buffer}
|
||||||
|
n "<C-k>" (vim.lsp.buf.signature_help) {"Signature help", buffer}
|
||||||
|
n "<leader>wa" (vim.lsp.buf.add_workspace_folder) {"Add workspace folder", buffer}
|
||||||
|
n "<leader>wr" (vim.lsp.buf.remove_workspace_folder) {"Remove workspace folder", buffer}
|
||||||
|
n "<leader>wl" (workspaces_list) {"List workspace folders", buffer}
|
||||||
|
n "<leader>lr" (vim.lsp.buf.rename) {"Rename identifier", buffer}
|
||||||
|
nv "<leader>la" (vim.lsp.buf.code_action) {"Show code actions", buffer}
|
||||||
|
n "<leader>lf" (format) {"Format file", buffer}
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ return {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
telescope.load_extension("fzf")
|
telescope.load_extension("fzf")
|
||||||
local nmap = U.curried_keymap 'n'
|
local nmap = U.keymap 'n'
|
||||||
nmap "<leader>ff" (builtin.find_files) "Telescope: find files"
|
nmap "<leader>ff" (builtin.find_files) "Telescope: find files"
|
||||||
nmap "<leader>fb" (builtin.buffers) "Telescope: find buffers"
|
nmap "<leader>fb" (builtin.buffers) "Telescope: find buffers"
|
||||||
nmap "<leader>fg" (builtin.live_grep) "Telescope: grep content"
|
nmap "<leader>fg" (builtin.live_grep) "Telescope: grep content"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
local nmap = require("utility").curried_keymap('n')
|
local nmap = require("utility").keymap('n')
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,37 +2,6 @@ local M = {}
|
||||||
|
|
||||||
|
|
||||||
function M.config()
|
function M.config()
|
||||||
-- Use LspAttach autocommand to only map the following keys
|
|
||||||
-- after the language server attaches to the current buffer
|
|
||||||
vim.api.nvim_create_autocmd('LspAttach', {
|
|
||||||
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
|
|
||||||
desc = "LSP actions",
|
|
||||||
callback = function(ev)
|
|
||||||
-- Enable completion triggered by <c-x><c-o>
|
|
||||||
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
|
|
||||||
|
|
||||||
-- Buffer local mappings.
|
|
||||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
|
||||||
local opts = { buffer = ev.buf }
|
|
||||||
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
|
|
||||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
|
|
||||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
|
||||||
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
|
|
||||||
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
|
|
||||||
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
|
|
||||||
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
|
|
||||||
vim.keymap.set('n', '<space>wl', function()
|
|
||||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
|
||||||
end, opts)
|
|
||||||
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
|
|
||||||
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
|
|
||||||
vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
|
|
||||||
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
|
|
||||||
vim.keymap.set('n', '<space>f', function()
|
|
||||||
vim.lsp.buf.format { async = true }
|
|
||||||
end, opts)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
local nmap = require("utility").curried_keymap('n')
|
local nmap = require("utility").keymap('n')
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
|
|
||||||
function M.config()
|
function M.config()
|
||||||
local tools = require "rust-tools"
|
local tools = require "rust-tools"
|
||||||
local mason = require "mason-registry"
|
local mason = require "mason-registry"
|
||||||
|
|
|
@ -21,7 +21,7 @@ end
|
||||||
|
|
||||||
---Wrapper around `vim.keymap.set`
|
---Wrapper around `vim.keymap.set`
|
||||||
---@param modes string|string[]
|
---@param modes string|string[]
|
||||||
function M.curried_keymap(modes)
|
function M.keymap(modes)
|
||||||
---@param lhs string
|
---@param lhs string
|
||||||
return function(lhs)
|
return function(lhs)
|
||||||
---@param rhs string|function
|
---@param rhs string|function
|
||||||
|
|
Loading…
Reference in a new issue