Nvim: convert keymaps to vim.keymap.set and/or which-key.register
This commit is contained in:
parent
131e4608e7
commit
4d94052d70
5 changed files with 58 additions and 71 deletions
|
@ -1,5 +1,4 @@
|
||||||
require 'autocmd'
|
require 'autocmd'
|
||||||
require 'keybinds'
|
require 'keybinds'
|
||||||
require 'settings'
|
require 'settings'
|
||||||
require 'common'
|
|
||||||
require 'plugins/init'
|
require 'plugins/init'
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
function MapKey(mode, keybind, command, opts)
|
|
||||||
local options = {noremap = true}
|
|
||||||
if opts then options = vim.tbl_extend('force', options, opts) end
|
|
||||||
vim.api.nvim_set_keymap(mode, keybind, command, options)
|
|
||||||
end
|
|
|
@ -1,26 +1,26 @@
|
||||||
require 'common'
|
local map = vim.keymap.set
|
||||||
|
|
||||||
-- Open/close tree browser
|
-- Open/close tree browser
|
||||||
MapKey('n', '<C-T>', '<cmd>NvimTreeToggle<CR>')
|
map('n', '<C-T>', '<cmd>NvimTreeToggle<CR>')
|
||||||
|
|
||||||
-- Telescope
|
-- Telescope
|
||||||
MapKey('n', '<C-f>', '<cmd>Telescope find_files find_command=fd,-Ht,f<CR>')
|
map('n', '<C-f>', '<cmd>Telescope find_files find_command=fd,-Ht,f<CR>')
|
||||||
MapKey('n', '<C-g>', '<cmd>Telescope live_grep<CR>')
|
map('n', '<C-g>', '<cmd>Telescope live_grep<CR>')
|
||||||
|
|
||||||
-- Completion
|
-- Completion
|
||||||
-- Navigate completions with tab and shift tab
|
-- Navigate completions with tab and shift tab
|
||||||
MapKey('i', '<S-Tab>', 'pumvisible() ? "\\<C-p>" : "\\<Tab>"', {expr = true})
|
map('i', '<S-Tab>', 'pumvisible() ? "\\<C-p>" : "\\<Tab>"', {expr = true})
|
||||||
MapKey('i', '<Tab>', 'pumvisible() ? "\\<C-n>" : "\\<Tab>"', {expr = true})
|
map('i', '<Tab>', 'pumvisible() ? "\\<C-n>" : "\\<Tab>"', {expr = true})
|
||||||
|
|
||||||
-- Navigate between buffers
|
-- Navigate between buffers
|
||||||
MapKey('n', '<C-N>', ':bn<CR>', {silent = true})
|
map('n', '<C-N>', ':bn<CR>', {silent = true})
|
||||||
MapKey('n', '<C-B>', ':bp<CR>', {silent = true})
|
map('n', '<C-B>', ':bp<CR>', {silent = true})
|
||||||
|
|
||||||
-- Navigate between splits
|
-- Navigate between splits
|
||||||
MapKey('n', '<C-H>', '<C-W><C-H>')
|
map('n', '<C-H>', '<C-W><C-H>')
|
||||||
MapKey('n', '<C-J>', '<C-W><C-J>')
|
map('n', '<C-J>', '<C-W><C-J>')
|
||||||
MapKey('n', '<C-K>', '<C-W><C-K>')
|
map('n', '<C-K>', '<C-W><C-K>')
|
||||||
MapKey('n', '<C-L>', '<C-W><C-L>')
|
map('n', '<C-L>', '<C-W><C-L>')
|
||||||
|
|
||||||
-- Run Neoformat
|
-- Run Neoformat
|
||||||
MapKey('n', '<M-f>', '<cmd>Neoformat<CR>')
|
map('n', '<M-f>', '<cmd>Neoformat<CR>')
|
||||||
|
|
|
@ -1,5 +1,2 @@
|
||||||
-- Settings for pager mode
|
-- Settings for pager mode
|
||||||
require 'common'
|
vim.keymap.set('n', 'q', vim.cmd.q)
|
||||||
|
|
||||||
MapKey('n', 'q', '<cmd>q<CR>')
|
|
||||||
-- vim.cmd('set nomodifiable')
|
|
||||||
|
|
|
@ -12,9 +12,7 @@ Servers = {
|
||||||
Lua = {
|
Lua = {
|
||||||
runtime = {
|
runtime = {
|
||||||
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
|
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
|
||||||
version = 'LuaJIT',
|
version = 'LuaJIT'
|
||||||
-- Setup your lua path
|
|
||||||
path = vim.split(package.path, ';')
|
|
||||||
},
|
},
|
||||||
diagnostics = {
|
diagnostics = {
|
||||||
-- Get the language server to recognize the `vim` global
|
-- Get the language server to recognize the `vim` global
|
||||||
|
@ -32,67 +30,65 @@ Servers = {
|
||||||
|
|
||||||
M = {}
|
M = {}
|
||||||
|
|
||||||
function M.map_keys(server, bufnr)
|
function M.map_keys()
|
||||||
local function map_key(...)
|
-- Register keybindings via which-key
|
||||||
-- Map to buffer if buffer number is supplied,
|
-- to get documentation in which-key
|
||||||
-- globally otherwise
|
local wk = require('which-key')
|
||||||
if bufnr == nil then
|
wk.register({
|
||||||
vim.api.nvim_set_keymap(...)
|
g = {
|
||||||
else
|
name = "Go to",
|
||||||
vim.api.nvim_buf_set_keymap(bufnr, ...)
|
d = {vim.lsp.buf.definition, "Definition"},
|
||||||
end
|
D = {vim.lsp.buf.declaration, "Declaration"},
|
||||||
end
|
i = {vim.lsp.buf.implementation, "Implementation"},
|
||||||
|
r = {vim.lsp.buf.references, "References"}
|
||||||
|
},
|
||||||
|
['<leader>'] = {
|
||||||
|
name = "Leader",
|
||||||
|
w = {
|
||||||
|
name = "Workspace",
|
||||||
|
a = {vim.lsp.buf.add_workspace_folder, "Add folder"},
|
||||||
|
r = {vim.lsp.buf.remove_workspace_folder, "Remove folder"},
|
||||||
|
l = {
|
||||||
|
function()
|
||||||
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||||
|
end, "List folders"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
D = {vim.lsp.buf.type_definition, "Type definition"},
|
||||||
|
rn = {vim.lsp.buf.rename, "Rename symbol"},
|
||||||
|
ca = {vim.lsp.buf.code_action, "Code action"},
|
||||||
|
e = {vim.diagnostic.open_float, "Open diagnostics"},
|
||||||
|
f = {vim.lsp.buf.format, "Format"}
|
||||||
|
},
|
||||||
|
K = {vim.lsp.buf.hover, "Hover"},
|
||||||
|
['['] = {d = {vim.diagnostic.goto_prev, "Previous diagnostic"}},
|
||||||
|
[']'] = {d = {vim.diagnostic.goto_next, "Next diagnostic"}}
|
||||||
|
|
||||||
local keymapOpts = {noremap = true, silent = true}
|
})
|
||||||
map_key('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', keymapOpts)
|
|
||||||
map_key('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', keymapOpts)
|
|
||||||
map_key('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', keymapOpts)
|
|
||||||
map_key('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', keymapOpts)
|
|
||||||
map_key('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>',
|
|
||||||
keymapOpts)
|
|
||||||
map_key('n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>',
|
|
||||||
keymapOpts)
|
|
||||||
map_key('n', '<leader>wr',
|
|
||||||
'<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', keymapOpts)
|
|
||||||
map_key('n', '<leader>wl',
|
|
||||||
'<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>',
|
|
||||||
keymapOpts)
|
|
||||||
map_key('n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>',
|
|
||||||
keymapOpts)
|
|
||||||
map_key('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', keymapOpts)
|
|
||||||
map_key('n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>',
|
|
||||||
keymapOpts)
|
|
||||||
map_key('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', keymapOpts)
|
|
||||||
map_key('n', '<leader>e',
|
|
||||||
'<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>',
|
|
||||||
keymapOpts)
|
|
||||||
map_key('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', keymapOpts)
|
|
||||||
map_key('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', keymapOpts)
|
|
||||||
map_key('n', '<leader>q', '<cmd>lua vim.diagnostic.set_loclist()<CR>',
|
|
||||||
keymapOpts)
|
|
||||||
map_key('n', '<leader>f', '<cmd>lua vim.lsp.buf.format()<CR>', keymapOpts)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function M.setup()
|
function M.setup()
|
||||||
|
|
||||||
local function on_attach(server, bufnr)
|
local function on_attach()
|
||||||
-- Setup lsp signature plugin
|
-- Setup lsp signature plugin
|
||||||
require('lsp_signature').setup {}
|
require('lsp_signature').setup {}
|
||||||
|
|
||||||
-- Setup keybinds
|
-- Setup keybinds
|
||||||
M.map_keys(server, bufnr)
|
M.map_keys()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Update capabilities
|
||||||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
|
||||||
|
|
||||||
-- Setup every defined server
|
-- Setup every defined server
|
||||||
for server, settings in pairs(Servers) do
|
for server, settings in pairs(Servers) do
|
||||||
require('lspconfig')[server].setup {
|
require('lspconfig')[server].setup {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
settings = settings,
|
settings = settings,
|
||||||
-- Updates capabilities to cmp.nvim and
|
-- Inform lsp server about client
|
||||||
-- informs the server about the client capabilities
|
-- capabilities
|
||||||
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp
|
capabilities = capabilities
|
||||||
.protocol
|
|
||||||
.make_client_capabilities())
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue