Mercurial > dotfiles
annotate dot_config/nvim/init.lua @ 311:8cefee2cbe37
Add mappings to trigger completion and switch sources
author | zegervdv <zegervdv@me.com> |
---|---|
date | Wed, 25 Nov 2020 09:05:37 +0100 |
parents | 386f7d66c031 |
children | f94a7c50a28d |
rev | line source |
---|---|
306 | 1 local lsp = require'lspconfig' |
310
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
2 local lsputil = require'lspconfig.util' |
280 | 3 |
4 require "nvim-treesitter.highlight" | |
5 | |
6 require'nvim-treesitter.configs'.setup { | |
7 highlight = { | |
8 enable = true, | |
9 }, | |
10 incremental_selection = { | |
11 enable = true, | |
12 keymaps = { | |
13 init_selection = "gnn", | |
14 node_incremental = "grn", | |
15 scope_incremental = "grc", | |
16 node_decremental = "grm", | |
17 } | |
18 }, | |
19 refactor = { | |
287
7168baf3c352
treesitter: highlight definitions/uses of the variable under the cursor
zegervdv <zegervdv@me.com>
parents:
285
diff
changeset
|
20 highlight_definitions = { enable = true }, |
280 | 21 smart_rename = { |
22 enable = true, | |
23 keymaps = { | |
24 smart_rename = "grr", | |
25 }, | |
26 }, | |
27 navigation = { | |
28 enable = true, | |
29 keymaps = { | |
30 goto_definition = "gnd", | |
31 list_definitions = "gnD", | |
32 }, | |
33 }, | |
34 }, | |
305
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
35 textobjects = { |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
36 move = { |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
37 enable = true, |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
38 goto_next_start = { |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
39 ["]]"] = "@block.outer", |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
40 }, |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
41 goto_previous_start = { |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
42 ["[["] = "@block.outer", |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
43 }, |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
44 goto_next_end = { |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
45 ["]["] = "@block.outer", |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
46 }, |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
47 goto_previous_end = { |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
48 ["[]"] = "@block.outer", |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
49 }, |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
50 }, |
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
51 }, |
282 | 52 playground = { |
53 enable = true, | |
54 disable = {}, | |
55 updatetime = 25, | |
56 persist_queries = false | |
57 } | |
280 | 58 } |
59 | |
60 local chain_complete_list = { | |
61 default = { | |
62 default = { | |
305
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
63 {complete_items = {'lsp', 'snippet', 'ts', 'buffer'}}, |
280 | 64 {complete_items = {'path'}, triggered_only = {'/'}}, |
285 | 65 {complete_items = {'ts'}}, |
280 | 66 }, |
67 string = { | |
68 {complete_items = {'path'}, triggered_only = {'/'}}, | |
69 }, | |
70 comment = {}, | |
71 } | |
72 } | |
73 | |
74 local on_attach = function(client) | |
75 require'completion'.on_attach({ | |
76 sorting = 'alphabet', | |
77 matching_strategy_list = {'exact', 'fuzzy'}, | |
78 chain_complete_list = chain_complete_list, | |
79 }) | |
80 -- This came from https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/lsp_config.lua | |
311
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
81 local mapper = function(mode, key, result, noremap) |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
82 if noremap == nil then |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
83 noremap = true |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
84 end |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
85 vim.fn.nvim_buf_set_keymap(0, mode, key, result, {noremap=noremap, silent=true}) |
280 | 86 end |
87 | |
301
f1590ff676ab
Remove diagnostics plugin and upgrade config to built-in diagnostics
zegervdv <zegervdv@me.com>
parents:
298
diff
changeset
|
88 vim.api.nvim_command('autocmd CursorHold <buffer> lua vim.lsp.diagnostic.show_line_diagnostics()') |
280 | 89 mapper('n', 'gd', '<cmd>lua vim.lsp.buf.declaration()<CR>') |
90 mapper('n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<CR>') | |
91 mapper('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>') | |
92 mapper('n', 'gD', '<cmd>lua vim.lsp.buf.implementation()<CR>') | |
93 mapper('n', '1gD', '<cmd>lua vim.lsp.buf.type_definition()<CR>') | |
94 mapper('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>') | |
95 mapper('n', 'g0', '<cmd>lua vim.lsp.buf.document_symbol()<CR>') | |
96 mapper('i', '<c-l>', '<cmd>lua vim.lsp.buf.signature_help()<CR>') | |
301
f1590ff676ab
Remove diagnostics plugin and upgrade config to built-in diagnostics
zegervdv <zegervdv@me.com>
parents:
298
diff
changeset
|
97 mapper('n', '<leader>f', '<cmd>lua vim.lsp.buf.code_action()<CR>') |
307
b1578effa848
Add <c-p> as map to reformat using lsp
zegervdv <zegervdv@me.com>
parents:
306
diff
changeset
|
98 mapper('n', '<c-p>', '<cmd>lua vim.lsp.buf.formatting()<CR>') |
311
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
99 mapper("i", "<c-n>", "<Plug>(completion_trigger)", false) |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
100 mapper("i", "<c-j>", "<Plug>(completion_next_source)", false) |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
101 mapper("i", "<c-k>", "<Plug>(completion_prev_source)", false) |
280 | 102 end |
103 | |
104 lsp.pyls.setup{ | |
105 cmd = {"pyls"}, | |
106 on_attach = on_attach; | |
107 } | |
298
a7901c1366de
Add veridian language server
Zeger Van de Vannet <zegervdv@me.com>
parents:
295
diff
changeset
|
108 |
308
33b9f4c5ae6a
Add check to see if veridian is installed before loading it as lsp
zegervdv <zegervdv@me.com>
parents:
307
diff
changeset
|
109 if (vim.fn.executable('veridian') == 1) then |
33b9f4c5ae6a
Add check to see if veridian is installed before loading it as lsp
zegervdv <zegervdv@me.com>
parents:
307
diff
changeset
|
110 lsp.veridian.setup{ |
33b9f4c5ae6a
Add check to see if veridian is installed before loading it as lsp
zegervdv <zegervdv@me.com>
parents:
307
diff
changeset
|
111 on_attach = on_attach; |
33b9f4c5ae6a
Add check to see if veridian is installed before loading it as lsp
zegervdv <zegervdv@me.com>
parents:
307
diff
changeset
|
112 } |
33b9f4c5ae6a
Add check to see if veridian is installed before loading it as lsp
zegervdv <zegervdv@me.com>
parents:
307
diff
changeset
|
113 end |
310
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
114 |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
115 if (vim.fn.executable('efm-langserver') == 1) then |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
116 lsp.efm.setup{ |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
117 on_attach = on_attach; |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
118 root_dir = lsputil.root_pattern('.git', '.hg'); |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
119 } |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
120 end |