Mercurial > dotfiles
annotate dot_config/nvim/init.lua @ 315:7220aa431ce0
Remove the ALE plugin, switching to LSP + efm
author | Zeger Van de Vannet <zegervdv@me.com> |
---|---|
date | Thu, 17 Dec 2020 14:57:05 +0100 |
parents | a1ed17cc354b |
children | 7d73e664f702 |
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 = { | |
312
f94a7c50a28d
Provide LSP completion in a separate source
Zeger Van de Vannet <zegervdv@me.com>
parents:
311
diff
changeset
|
63 {complete_items = {'lsp'}}, |
305
10078cb76622
Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents:
301
diff
changeset
|
64 {complete_items = {'lsp', 'snippet', 'ts', 'buffer'}}, |
280 | 65 {complete_items = {'path'}, triggered_only = {'/'}}, |
285 | 66 {complete_items = {'ts'}}, |
280 | 67 }, |
68 string = { | |
69 {complete_items = {'path'}, triggered_only = {'/'}}, | |
70 }, | |
71 comment = {}, | |
72 } | |
73 } | |
74 | |
75 local on_attach = function(client) | |
76 require'completion'.on_attach({ | |
77 sorting = 'alphabet', | |
78 matching_strategy_list = {'exact', 'fuzzy'}, | |
79 chain_complete_list = chain_complete_list, | |
80 }) | |
81 -- 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
|
82 local mapper = function(mode, key, result, noremap) |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
83 if noremap == nil then |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
84 noremap = true |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
85 end |
8cefee2cbe37
Add mappings to trigger completion and switch sources
zegervdv <zegervdv@me.com>
parents:
310
diff
changeset
|
86 vim.fn.nvim_buf_set_keymap(0, mode, key, result, {noremap=noremap, silent=true}) |
280 | 87 end |
88 | |
301
f1590ff676ab
Remove diagnostics plugin and upgrade config to built-in diagnostics
zegervdv <zegervdv@me.com>
parents:
298
diff
changeset
|
89 vim.api.nvim_command('autocmd CursorHold <buffer> lua vim.lsp.diagnostic.show_line_diagnostics()') |
280 | 90 mapper('n', 'gd', '<cmd>lua vim.lsp.buf.declaration()<CR>') |
91 mapper('n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<CR>') | |
92 mapper('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>') | |
93 mapper('n', 'gD', '<cmd>lua vim.lsp.buf.implementation()<CR>') | |
94 mapper('n', '1gD', '<cmd>lua vim.lsp.buf.type_definition()<CR>') | |
95 mapper('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>') | |
96 mapper('n', 'g0', '<cmd>lua vim.lsp.buf.document_symbol()<CR>') | |
97 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
|
98 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
|
99 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
|
100 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
|
101 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
|
102 mapper("i", "<c-k>", "<Plug>(completion_prev_source)", false) |
280 | 103 end |
104 | |
313
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
105 vim.lsp.handlers["textDocument/formatting"] = function(err, _, result, _, bufnr) |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
106 if err ~= nil or result == nil then |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
107 return |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
108 end |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
109 if not vim.api.nvim_buf_get_option(bufnr, "modified") then |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
110 local view = vim.fn.winsaveview() |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
111 vim.lsp.util.apply_text_edits(result, bufnr) |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
112 vim.fn.winrestview(view) |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
113 -- Fix to reload Treesitter |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
114 vim.api.nvim_command("edit") |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
115 end |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
116 end |
a1ed17cc354b
Add a post-formatting handler to reload the buffer
Zeger Van de Vannet <zegervdv@me.com>
parents:
312
diff
changeset
|
117 |
280 | 118 lsp.pyls.setup{ |
119 cmd = {"pyls"}, | |
120 on_attach = on_attach; | |
121 } | |
298
a7901c1366de
Add veridian language server
Zeger Van de Vannet <zegervdv@me.com>
parents:
295
diff
changeset
|
122 |
308
33b9f4c5ae6a
Add check to see if veridian is installed before loading it as lsp
zegervdv <zegervdv@me.com>
parents:
307
diff
changeset
|
123 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
|
124 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
|
125 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
|
126 } |
33b9f4c5ae6a
Add check to see if veridian is installed before loading it as lsp
zegervdv <zegervdv@me.com>
parents:
307
diff
changeset
|
127 end |
310
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
128 |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
129 if (vim.fn.executable('efm-langserver') == 1) then |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
130 lsp.efm.setup{ |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
131 on_attach = on_attach; |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
132 root_dir = lsputil.root_pattern('.git', '.hg'); |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
133 } |
386f7d66c031
Add efm-langserver for formatting and linting
zegervdv <zegervdv@me.com>
parents:
308
diff
changeset
|
134 end |