diff options
author | Minijackson <minijackson@riseup.net> | 2022-04-29 17:46:59 +0200 |
---|---|---|
committer | Minijackson <minijackson@riseup.net> | 2022-04-29 17:46:59 +0200 |
commit | d29e1cee64ccfaed28c94ad05e5471eea3e0bd71 (patch) | |
tree | d0cc2d1c1945899ba861192938facfc98c10539f | |
parent | b4e79ef41191dae5aa59c8426b6d89e7fbd49026 (diff) | |
download | nixos-config-reborn-d29e1cee64ccfaed28c94ad05e5471eea3e0bd71.tar.gz nixos-config-reborn-d29e1cee64ccfaed28c94ad05e5471eea3e0bd71.zip |
vim-dev: use new vim.keymap API
-rw-r--r-- | dotfiles/vim-dev.lua | 57 |
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 @@ | |||
1 | local lspconfig = require("lspconfig") | 1 | local lspconfig = require("lspconfig") |
2 | 2 | ||
3 | local function on_attach(client, bufnr) | 3 | local 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: " |