From d29e1cee64ccfaed28c94ad05e5471eea3e0bd71 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Fri, 29 Apr 2022 17:46:59 +0200 Subject: vim-dev: use new vim.keymap API --- dotfiles/vim-dev.lua | 57 ++++++++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/dotfiles/vim-dev.lua b/dotfiles/vim-dev.lua index ab04bf8..d59fbb6 100644 --- a/dotfiles/vim-dev.lua +++ b/dotfiles/vim-dev.lua @@ -1,54 +1,49 @@ local lspconfig = require("lspconfig") local function on_attach(client, bufnr) - local function buf_set_keymap(...) - vim.api.nvim_buf_set_keymap(bufnr, ...) - end + local opts = { noremap = true, silent = true, buffer = bufnr } - local opts = { noremap = true, silent = true } + local telescope_builtin = require("telescope.builtin") - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) - buf_set_keymap('n', 'gd', 'Telescope lsp_definitions', opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) + local cursor_theme = require("telescope.themes").get_cursor() - buf_set_keymap('n', 'gr', 'Telescope lsp_references', opts) + local function cursor(callback) + return function() callback(cursor_theme) end + end - -- TODO: replace these with vim.keymap.set once neovim 0.7 is out - local cursor_style = [[require("telescope.themes").get_dropdown()]] + local function desc(tbl1, description) + return vim.tbl_extend("force", tbl1, { desc = description }) + end - local function telescope_builtin(builtin, style) - if not style then - style = "" - end + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, desc(opts, "LSP declaration")) + vim.keymap.set('n', 'gd', telescope_builtin.lsp_definitions, desc(opts, "LSP Definitions")) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, desc(opts, "LSP Hover")) - return 'lua require("telescope.builtin").' .. builtin .. '(' .. cursor_style ..')' - end + vim.keymap.set('n', 'gr', telescope_builtin.lsp_references, desc(opts, "LSP References")) - buf_set_keymap('n', 'sa', telescope_builtin('lsp_code_actions', cursor_style), opts) - buf_set_keymap('n', 'se', 'lua vim.diagnostic.open_float()', opts) - buf_set_keymap('n', 'sE', 'Telescope diagnostics', opts) - buf_set_keymap('n', 'sl', 'lua vim.diagnostic.setloclist()', opts) - buf_set_keymap('n', 'sq', 'lua vim.diagnostic.setqflist()', opts) - buf_set_keymap('n', 'sr', 'lua vim.lsp.buf.rename()', opts) - buf_set_keymap('n', 'ss', 'Telescope lsp_document_symbols', opts) - buf_set_keymap('n', 'sS', 'Telescope lsp_workspace_symbols', opts) + vim.keymap.set('n', 'sa', cursor(telescope_builtin.lsp_code_actions), desc(opts, "LSP Code Actions")) + vim.keymap.set('n', 'se', vim.diagnostic.open_float, desc(opts, "Local Diagnostics")) + vim.keymap.set('n', 'sE', telescope_builtin.diagnostics, desc(opts, "Global Diagnostics")) + vim.keymap.set('n', 'sl', vim.diagnostic.setloclist, desc(opts, "Diagnostics set LocList")) + vim.keymap.set('n', 'sq', vim.diagnostic.setqflist, desc(opts, "Diagnostics set QFList")) + vim.keymap.set('n', 'sr', vim.lsp.buf.rename, desc(opts, "LSP Rename")) + vim.keymap.set('n', 'ss', telescope_builtin.lsp_document_symbols, desc(opts, "LSP Document Symbols")) + vim.keymap.set('n', 'sS', telescope_builtin.lsp_workspace_symbols, desc(opts, "LSP Workspace Symbols")) - buf_set_keymap('n', '[d', 'lua vim.diagnostic.goto_prev()', opts) - buf_set_keymap('n', ']d', 'lua vim.diagnostic.goto_next()', opts) + vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, desc(opts, "Goto Next Diagnostic")) + vim.keymap.set('n', ']d', vim.diagnostic.goto_next, desc(opts, "Goto Prev Diagnostic")) -- Capability specific - -- print(vim.inspect(client.resolved_capabilities)) - if client.resolved_capabilities.document_formatting then - buf_set_keymap("n", "sf", "lua vim.lsp.buf.formatting()", opts) + vim.keymap.set("n", "sf", vim.lsp.buf.formatting, desc(opts, "Format buffer")) end if client.resolved_capabilities.document_range_formatting then - buf_set_keymap("v", "sf", "lua vim.lsp.buf.range_formatting()", opts) + vim.keymap.set("v", "sf", vim.lsp.buf.range_formatting, desc(opts, "Format Range")) end -- Rust specific - buf_set_keymap("n", "sh", "RustToggleInlayHints", opts) + vim.keymap.set("n", "sh", "RustToggleInlayHints", opts) require("lsp_signature").on_attach({ hint_prefix = "param: " -- cgit v1.2.3