summaryrefslogtreecommitdiffstats
path: root/dotfiles/vim-dev.lua
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2022-04-29 17:46:59 +0200
committerMinijackson <minijackson@riseup.net>2022-04-29 17:46:59 +0200
commitd29e1cee64ccfaed28c94ad05e5471eea3e0bd71 (patch)
treed0cc2d1c1945899ba861192938facfc98c10539f /dotfiles/vim-dev.lua
parentb4e79ef41191dae5aa59c8426b6d89e7fbd49026 (diff)
downloadnixos-config-reborn-d29e1cee64ccfaed28c94ad05e5471eea3e0bd71.tar.gz
nixos-config-reborn-d29e1cee64ccfaed28c94ad05e5471eea3e0bd71.zip
vim-dev: use new vim.keymap API
Diffstat (limited to 'dotfiles/vim-dev.lua')
-rw-r--r--dotfiles/vim-dev.lua57
1 files 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 @@
1local lspconfig = require("lspconfig") 1local lspconfig = require("lspconfig")
2 2
3local function on_attach(client, bufnr) 3local function on_attach(client, bufnr)
4 local function buf_set_keymap(...) 4 local opts = { noremap = true, silent = true, buffer = bufnr }
5 vim.api.nvim_buf_set_keymap(bufnr, ...)
6 end
7 5
8 local opts = { noremap = true, silent = true } 6 local telescope_builtin = require("telescope.builtin")
9 7
10 buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts) 8 local cursor_theme = require("telescope.themes").get_cursor()
11 buf_set_keymap('n', 'gd', '<Cmd>Telescope lsp_definitions<CR>', opts)
12 buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
13 9
14 buf_set_keymap('n', 'gr', '<cmd>Telescope lsp_references<CR>', opts) 10 local function cursor(callback)
11 return function() callback(cursor_theme) end
12 end
15 13
16 -- TODO: replace these with vim.keymap.set once neovim 0.7 is out 14 local function desc(tbl1, description)
17 local cursor_style = [[require("telescope.themes").get_dropdown()]] 15 return vim.tbl_extend("force", tbl1, { desc = description })
16 end
18 17
19 local function telescope_builtin(builtin, style) 18 vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, desc(opts, "LSP declaration"))
20 if not style then 19 vim.keymap.set('n', 'gd', telescope_builtin.lsp_definitions, desc(opts, "LSP Definitions"))
21 style = "" 20 vim.keymap.set('n', 'K', vim.lsp.buf.hover, desc(opts, "LSP Hover"))
22 end
23 21
24 return '<cmd>lua require("telescope.builtin").' .. builtin .. '(' .. cursor_style ..')<CR>' 22 vim.keymap.set('n', 'gr', telescope_builtin.lsp_references, desc(opts, "LSP References"))
25 end
26 23
27 buf_set_keymap('n', '<leader>sa', telescope_builtin('lsp_code_actions', cursor_style), opts) 24 vim.keymap.set('n', '<leader>sa', cursor(telescope_builtin.lsp_code_actions), desc(opts, "LSP Code Actions"))
28 buf_set_keymap('n', '<leader>se', '<cmd>lua vim.diagnostic.open_float()<CR>', opts) 25 vim.keymap.set('n', '<leader>se', vim.diagnostic.open_float, desc(opts, "Local Diagnostics"))
29 buf_set_keymap('n', '<leader>sE', '<cmd>Telescope diagnostics<CR>', opts) 26 vim.keymap.set('n', '<leader>sE', telescope_builtin.diagnostics, desc(opts, "Global Diagnostics"))
30 buf_set_keymap('n', '<leader>sl', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts) 27 vim.keymap.set('n', '<leader>sl', vim.diagnostic.setloclist, desc(opts, "Diagnostics set LocList"))
31 buf_set_keymap('n', '<leader>sq', '<cmd>lua vim.diagnostic.setqflist()<CR>', opts) 28 vim.keymap.set('n', '<leader>sq', vim.diagnostic.setqflist, desc(opts, "Diagnostics set QFList"))
32 buf_set_keymap('n', '<leader>sr', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) 29 vim.keymap.set('n', '<leader>sr', vim.lsp.buf.rename, desc(opts, "LSP Rename"))
33 buf_set_keymap('n', '<leader>ss', '<cmd>Telescope lsp_document_symbols<CR>', opts) 30 vim.keymap.set('n', '<leader>ss', telescope_builtin.lsp_document_symbols, desc(opts, "LSP Document Symbols"))
34 buf_set_keymap('n', '<leader>sS', '<cmd>Telescope lsp_workspace_symbols<CR>', opts) 31 vim.keymap.set('n', '<leader>sS', telescope_builtin.lsp_workspace_symbols, desc(opts, "LSP Workspace Symbols"))
35 32
36 buf_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts) 33 vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, desc(opts, "Goto Next Diagnostic"))
37 buf_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts) 34 vim.keymap.set('n', ']d', vim.diagnostic.goto_next, desc(opts, "Goto Prev Diagnostic"))
38 35
39 -- Capability specific 36 -- Capability specific
40 37
41 -- print(vim.inspect(client.resolved_capabilities))
42
43 if client.resolved_capabilities.document_formatting then 38 if client.resolved_capabilities.document_formatting then
44 buf_set_keymap("n", "<leader>sf", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts) 39 vim.keymap.set("n", "<leader>sf", vim.lsp.buf.formatting, desc(opts, "Format buffer"))
45 end 40 end
46 if client.resolved_capabilities.document_range_formatting then 41 if client.resolved_capabilities.document_range_formatting then
47 buf_set_keymap("v", "<leader>sf", "<cmd>lua vim.lsp.buf.range_formatting()<CR>", opts) 42 vim.keymap.set("v", "<leader>sf", vim.lsp.buf.range_formatting, desc(opts, "Format Range"))
48 end 43 end
49 44
50 -- Rust specific 45 -- Rust specific
51 buf_set_keymap("n", "<leader>sh", "<cmd>RustToggleInlayHints<CR>", opts) 46 vim.keymap.set("n", "<leader>sh", "<cmd>RustToggleInlayHints<CR>", opts)
52 47
53 require("lsp_signature").on_attach({ 48 require("lsp_signature").on_attach({
54 hint_prefix = "param: " 49 hint_prefix = "param: "