Mercurial > dotfiles
annotate dot_config/nvim/config.lua @ 379:2a8195e14cad
Add lua-format config for efm
author | zegervdv <zegervdv@me.com> |
---|---|
date | Sat, 10 Apr 2021 11:14:49 +0200 |
parents | 2150c55c89b7 |
children | 3b7ebcd563e1 |
rev | line source |
---|---|
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
1 -- |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
2 -- Neovim dotfiles |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
3 -- |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
4 -- |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
5 |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
6 local execute = vim.api.nvim_command |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
7 local fn = vim.fn |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
8 |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
9 -- Bootstrap package manager |
325
ce396166d009
Move packer setup in a function, load on demand
zegervdv <zegervdv@me.com>
parents:
324
diff
changeset
|
10 local install_path = fn.stdpath('data')..'/site/pack/packer/opt/packer.nvim' |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
11 |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
12 if fn.empty(fn.glob(install_path)) > 0 then |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
13 execute('!git clone https://github.com/wbthomason/packer.nvim '..install_path) |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
14 end |
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
15 |
325
ce396166d009
Move packer setup in a function, load on demand
zegervdv <zegervdv@me.com>
parents:
324
diff
changeset
|
16 -- Packer configuration is compiled and only needs to be loaded on changes |
372 | 17 vim.cmd "packadd packer.nvim" |
325
ce396166d009
Move packer setup in a function, load on demand
zegervdv <zegervdv@me.com>
parents:
324
diff
changeset
|
18 |
372 | 19 require('packer').startup(function() |
20 use {'wbthomason/packer.nvim', opt = true} | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
21 |
372 | 22 -- General plugins |
23 use {'tpope/vim-sensible'} | |
24 use {'tpope/vim-repeat'} | |
25 use {'tpope/vim-rsi'} | |
26 use {'sgur/vim-editorconfig'} | |
27 use {'ShikChen/osc52.vim'} | |
28 use {'einfachtoll/didyoumean'} | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
29 |
372 | 30 use {'tpope/vim-obsession'} |
31 use { | |
32 'tpope/vim-eunuch', | |
33 cmd = { | |
34 'Remove', | |
35 'Unlink', | |
36 'Move', | |
37 'Rename', | |
38 'Mkdir', | |
39 'Chmod', | |
40 'Find', | |
41 'Locate', | |
42 'SudoEdit', | |
43 'SudoWrite' | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
44 } |
372 | 45 } |
325
ce396166d009
Move packer setup in a function, load on demand
zegervdv <zegervdv@me.com>
parents:
324
diff
changeset
|
46 |
372 | 47 use {'psliwka/vim-smoothie'} |
48 | |
49 -- Spelling/autocorrection | |
50 use {'tpope/vim-abolish'} | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
51 |
372 | 52 -- Git/VCS |
53 use {'vim-scripts/gitignore'} | |
54 use {'sjl/splice.vim', opt = true, cmd = {'SpliceInit'}} | |
55 use {'tpope/vim-git'} | |
56 | |
57 -- Comments | |
378
2150c55c89b7
Replace commentary with kommentary
Zeger Van de Vannet <zegervdv@me.com>
parents:
376
diff
changeset
|
58 use {'b3nj5m1n/kommentary'} |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
59 |
372 | 60 -- Undoing |
61 use {'sjl/gundo.vim', cmd = {'GundoToggle'}} | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
62 |
372 | 63 -- Parentheses etc |
64 use {'tpope/vim-surround'} | |
65 use {'raimondi/delimitMate'} | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
66 |
372 | 67 -- Moving around within lines |
68 use {'wellle/targets.vim', event = 'InsertEnter *'} | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
69 |
372 | 70 -- Peek at lines |
71 use { | |
72 'nacro90/numb.nvim', | |
375
35eaf63f525b
Fix loading of numb config
Zeger Van de Vannet <zegervdv@me.com>
parents:
373
diff
changeset
|
73 config = function () require'numb'.setup() end, |
372 | 74 } |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
75 |
372 | 76 -- Searching |
77 use {'mhinz/vim-grepper', cmd = {'Grepper'}} | |
325
ce396166d009
Move packer setup in a function, load on demand
zegervdv <zegervdv@me.com>
parents:
324
diff
changeset
|
78 |
372 | 79 -- Keymaps TODO: to be removed when #13823 is merged |
80 use { | |
81 'tjdevries/astronauta.nvim', | |
82 config = function() require'astronauta.keymap' end, | |
83 } | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
84 |
372 | 85 -- Indent lines |
86 use { | |
87 'lukas-reineke/indent-blankline.nvim', | |
88 branch = 'lua', | |
89 config = function () | |
90 vim.g.indent_blankline_buftype_exclude = {'terminal', 'help', 'nofile'} | |
91 vim.g.indent_blankline_show_first_indent_level = false | |
92 end, | |
93 } | |
371
1dfda47d5d9e
Add more lua based plugins: lush, navigator, numb
zegervdv <zegervdv@me.com>
parents:
370
diff
changeset
|
94 |
372 | 95 -- Increment/decrement |
96 use { | |
97 'zegervdv/nrpattern.nvim', | |
98 requires = 'tpope/vim-repeat', | |
99 config = function () | |
100 local nrpattern = require"nrpattern" | |
101 local defaults = require"nrpattern.default" | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
102 |
372 | 103 defaults[{"input", "output"}] = { |
104 priority = 12, | |
105 filetypes = {"verilog", "systemverilog"}, | |
106 } | |
107 defaults[{"'1", "'0"}] = { | |
108 priority = 9, | |
109 filetypes = {"verilog", "systemverilog"}, | |
110 } | |
111 | |
112 nrpattern.setup(defaults) | |
113 end, | |
114 } | |
362 | 115 |
372 | 116 -- Tmux |
117 function test_tmux() | |
118 return os.getenv('TMUX') ~= nil | |
119 end | |
120 use {'tmux-plugins/vim-tmux-focus-events', cond = test_tmux} | |
121 use { | |
122 'numtostr/navigator.nvim', | |
123 config = function() | |
124 require('Navigator').setup { auto_save = 'current', disable_on_zoom = true } | |
362 | 125 |
372 | 126 local nnoremap = vim.keymap.nnoremap |
127 nnoremap { '<c-h>', require'Navigator'.left, silent = true } | |
128 nnoremap { '<c-j>', require'Navigator'.down, silent = true } | |
129 nnoremap { '<c-k>', require'Navigator'.up, silent = true } | |
130 nnoremap { '<c-l>', require'Navigator'.right, silent = true } | |
131 end, | |
132 } | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
133 |
372 | 134 -- Completion/snippets/LSP |
135 use {'neovim/nvim-lspconfig'} | |
136 use { | |
137 'hrsh7th/nvim-compe', | |
138 config = function () | |
139 require'compe'.setup { | |
140 enabled = true; | |
141 autocomplete = true; | |
142 debug = false; | |
143 min_length = 1; | |
144 preselect = 'enable'; | |
145 throttle_time = 80; | |
146 source_timeout = 1000; | |
147 incomplete_delay = 400; | |
148 max_abbr_width = 100; | |
149 max_kind_width = 100; | |
150 max_menu_width = 100; | |
151 documentation = true; | |
346
d717168f424f
Switch to nvim-compe for completion
zegervdv <zegervdv@me.com>
parents:
345
diff
changeset
|
152 |
372 | 153 source = { |
154 path = true; | |
155 buffer = true; | |
156 nvim_lsp = true; | |
157 nvim_lua = true; | |
158 spell = true; | |
159 ultisnips = true; | |
160 -- TODO add vsnip for LSP snippets | |
161 }; | |
162 } | |
346
d717168f424f
Switch to nvim-compe for completion
zegervdv <zegervdv@me.com>
parents:
345
diff
changeset
|
163 |
372 | 164 vim.cmd [[ inoremap <silent><expr> <C-y> compe#complete() ]] |
165 vim.cmd [[ inoremap <silent><expr> <CR> compe#confirm({ 'keys': "\<Plug>delimitMateCR", 'mode': '' }) ]] | |
166 vim.cmd [[ inoremap <silent><expr> <C-e> compe#close('<C-e>') ]] | |
167 end | |
168 } | |
169 use { | |
170 { | |
171 'nvim-treesitter/nvim-treesitter', | |
172 config = function () | |
173 require "nvim-treesitter.highlight" | |
370
5ffb0fd7b98d
Move treesitter config into packer_compiled
zegervdv <zegervdv@me.com>
parents:
368
diff
changeset
|
174 |
372 | 175 require'nvim-treesitter.configs'.setup { |
176 highlight = { | |
177 enable = false, | |
178 }, | |
179 incremental_selection = { | |
180 enable = true, | |
181 keymaps = { | |
182 init_selection = "gnn", | |
183 node_incremental = "grn", | |
184 scope_incremental = "grc", | |
185 node_decremental = "grm", | |
186 } | |
187 }, | |
188 refactor = { | |
189 highlight_definitions = { enable = true }, | |
190 smart_rename = { | |
370
5ffb0fd7b98d
Move treesitter config into packer_compiled
zegervdv <zegervdv@me.com>
parents:
368
diff
changeset
|
191 enable = true, |
5ffb0fd7b98d
Move treesitter config into packer_compiled
zegervdv <zegervdv@me.com>
parents:
368
diff
changeset
|
192 keymaps = { |
372 | 193 smart_rename = "gsr", |
194 }, | |
370
5ffb0fd7b98d
Move treesitter config into packer_compiled
zegervdv <zegervdv@me.com>
parents:
368
diff
changeset
|
195 }, |
372 | 196 navigation = { |
197 enable = true, | |
198 keymaps = { | |
199 goto_definition = "gnd", | |
200 list_definitions = "gnD", | |
370
5ffb0fd7b98d
Move treesitter config into packer_compiled
zegervdv <zegervdv@me.com>
parents:
368
diff
changeset
|
201 }, |
5ffb0fd7b98d
Move treesitter config into packer_compiled
zegervdv <zegervdv@me.com>
parents:
368
diff
changeset
|
202 }, |
372 | 203 }, |
204 textobjects = { | |
205 move = { | |
206 enable = true, | |
207 goto_next_start = { | |
208 ["]]"] = "@block.outer", | |
209 }, | |
210 goto_previous_start = { | |
211 ["[["] = "@block.outer", | |
212 }, | |
213 goto_next_end = { | |
214 ["]["] = "@block.outer", | |
215 }, | |
216 goto_previous_end = { | |
217 ["[]"] = "@block.outer", | |
370
5ffb0fd7b98d
Move treesitter config into packer_compiled
zegervdv <zegervdv@me.com>
parents:
368
diff
changeset
|
218 }, |
5ffb0fd7b98d
Move treesitter config into packer_compiled
zegervdv <zegervdv@me.com>
parents:
368
diff
changeset
|
219 }, |
361 | 220 }, |
372 | 221 playground = { |
222 enable = true, | |
223 disable = {}, | |
224 updatetime = 25, | |
225 persist_queries = false | |
361 | 226 } |
227 } | |
372 | 228 end |
229 }, | |
230 'nvim-treesitter/nvim-treesitter-refactor', | |
231 'nvim-treesitter/nvim-treesitter-textobjects', | |
232 {'nvim-treesitter/playground', opt = true}, | |
233 } | |
234 use {'SirVer/ultisnips'} | |
235 use { | |
236 'glepnir/lspsaga.nvim', | |
237 config = function() | |
238 require 'lspsaga'.init_lsp_saga {} | |
373 | 239 end, |
372 | 240 } |
241 use { | |
242 'nvim-telescope/telescope.nvim', | |
243 requires = { | |
244 'nvim-lua/popup.nvim', | |
373 | 245 'nvim-lua/plenary.nvim', |
246 }, | |
372 | 247 } |
361 | 248 |
372 | 249 -- Vanity |
250 use { | |
251 'yamatsum/nvim-web-nonicons', | |
252 requires = 'kyazdani42/nvim-web-devicons', | |
373 | 253 config = function() require'nvim-nonicons' end, |
372 | 254 } |
361 | 255 |
372 | 256 use { |
257 'glepnir/galaxyline.nvim', | |
258 branch = 'main', | |
259 -- your statusline | |
260 config = function() | |
261 local gl = require'galaxyline' | |
262 local colors = require('galaxyline.theme').default | |
263 local condition = require('galaxyline.condition') | |
264 local gls = gl.section | |
265 | |
266 colors.bg = '#2C323C' | |
361 | 267 |
372 | 268 gls.left[1] = { |
269 RainbowRed = { | |
270 provider = function() return '▊ ' end, | |
271 highlight = {colors.blue,colors.bg} | |
272 }, | |
273 } | |
274 | |
275 gls.left[2] = { | |
276 FileIcon = { | |
277 provider = 'FileIcon', | |
278 condition = condition.buffer_not_empty, | |
279 highlight = {require('galaxyline.provider_fileinfo').get_file_icon_color, colors.bg}, | |
280 }, | |
281 } | |
361 | 282 |
372 | 283 gls.left[3] = { |
284 FileName = { | |
285 provider = 'FileName', | |
286 condition = condition.buffer_not_empty, | |
287 highlight = {colors.magenta,colors.bg,'bold'} | |
288 } | |
289 } | |
290 | |
291 | |
292 gls.left[4] = { | |
293 DiagnosticError = { | |
294 provider = 'DiagnosticError', | |
295 icon = ' ', | |
296 highlight = {colors.red,colors.bg} | |
361 | 297 } |
372 | 298 } |
361 | 299 |
372 | 300 gls.right[1] = { |
301 ShowLspClient = { | |
302 provider = 'GetLspClient', | |
303 condition = function () | |
304 local tbl = {['dashboard'] = true,['']=true} | |
305 if tbl[vim.bo.filetype] then | |
306 return false | |
307 end | |
308 return true | |
309 end, | |
310 icon = require'nvim-nonicons'.get('server') .. ' LSP:', | |
311 highlight = {colors.green,colors.bg,'bold'} | |
361 | 312 } |
372 | 313 } |
361 | 314 |
372 | 315 gls.right[2] = { |
316 LineInfo = { | |
317 provider = 'LineColumn', | |
318 separator = ' ', | |
319 separator_highlight = {'NONE',colors.bg}, | |
320 highlight = {colors.fg,colors.bg}, | |
321 }, | |
322 } | |
361 | 323 |
372 | 324 gls.right[3] = { |
325 PerCent = { | |
326 provider = 'LinePercent', | |
327 separator = ' ', | |
328 separator_highlight = {'NONE',colors.bg}, | |
329 highlight = {colors.fg,colors.bg,'bold'}, | |
330 } | |
331 } | |
332 gls.right[8] = { | |
333 RainbowBlue = { | |
334 provider = function() return ' ▊' end, | |
335 highlight = {colors.blue,colors.bg} | |
336 }, | |
337 } | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
338 |
372 | 339 gls.short_line_left[1] = { |
340 BufferType = { | |
341 provider = 'FileTypeName', | |
342 separator = ' ', | |
343 separator_highlight = {'NONE',colors.bg}, | |
344 highlight = {colors.blue,colors.bg,'bold'} | |
345 } | |
346 } | |
347 | |
348 gls.short_line_left[2] = { | |
349 SFileName = { | |
350 provider = 'SFileName', | |
351 condition = condition.buffer_not_empty, | |
352 highlight = {colors.fg,colors.bg,'bold'} | |
353 } | |
354 } | |
325
ce396166d009
Move packer setup in a function, load on demand
zegervdv <zegervdv@me.com>
parents:
324
diff
changeset
|
355 |
372 | 356 gls.short_line_right[1] = { |
357 BufferIcon = { | |
358 provider= 'BufferIcon', | |
359 highlight = {colors.fg,colors.bg} | |
362 | 360 } |
372 | 361 } |
362 end, | |
363 } | |
364 | |
365 -- File navigation | |
366 use {'justinmk/vim-dirvish'} | |
338
890fe7d01f19
Use toggleterm as more robust terminal integration
zegervdv <zegervdv@me.com>
parents:
337
diff
changeset
|
367 |
372 | 368 -- Colorscheme |
369 use { | |
370 'zegervdv/one-lush', | |
371 requires = 'rktjmp/lush.nvim', | |
372 config = function() | |
373 local lush = require('lush') | |
374 local spec = require('lush_theme.one-lush') | |
375 lush(spec) | |
376 end, | |
377 } | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
378 |
372 | 379 -- Terminal |
380 use { | |
381 'akinsho/nvim-toggleterm.lua', | |
382 config = function() | |
383 require'toggleterm'.setup { | |
384 size = 20, | |
385 open_mapping = [[<F12>]], | |
386 shade_filetypes = {}, | |
387 shade_terminals = true, | |
388 persist_size = true, | |
389 direction = 'horizontal', | |
390 } | |
391 end, | |
392 } | |
336
7a8b66395d69
Add floating terminal to be toggled via c-z
zegervdv <zegervdv@me.com>
parents:
335
diff
changeset
|
393 |
372 | 394 -- Filetypes |
395 use {'Glench/Vim-Jinja2-Syntax'} | |
396 | |
397 end) | |
398 | |
399 -- LSP config | |
324
64a0c6cec54c
Use packer for plugin management in lua
zegervdv <zegervdv@me.com>
parents:
323
diff
changeset
|
400 |
319
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
401 local lsp = require'lspconfig' |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
402 local lsputil = require'lspconfig.util' |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
403 |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
404 local on_attach = function(client) |
372 | 405 local nnoremap = vim.keymap.nnoremap |
406 local inoremap = vim.keymap.inoremap | |
407 nnoremap { '<CR>', require"lspsaga.diagnostic".show_line_diagnostics, silent = true } | |
408 nnoremap { 'gd', vim.lsp.buf.declaration, silent = true } | |
409 nnoremap { '<c-]>', vim.lsp.buf.definition, silent = true } | |
376
fc3dad056d38
Fix typo in hover mapping
Zeger Van de Vannet <zegervdv@me.com>
parents:
375
diff
changeset
|
410 nnoremap { 'K', require'lspsaga.hover'.render_hover_doc, silent = true } |
372 | 411 nnoremap { 'gD', vim.lsp.buf.implementation, silent = true } |
412 nnoremap { '1gD', vim.lsp.buf.type_definition, silent = true } | |
413 nnoremap { 'gr', vim.lsp.buf.references, silent = true } | |
414 nnoremap { 'tgr', require'telescope.builtin'.lsp_references, silent = true } | |
415 nnoremap { 'g0', vim.lsp.buf.document_symbol, silent = true } | |
416 nnoremap { '<c-p>', vim.lsp.buf.formatting, silent = true } | |
417 nnoremap { 'gp', require'lspsaga.provider'.preview_definition, silent = true } | |
418 | |
419 inoremap { '<c-l>', vim.lsp.buf.signature_help, silent = true} | |
319
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
420 end |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
421 |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
422 |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
423 vim.lsp.handlers["textDocument/formatting"] = function(err, _, result, _, bufnr) |
364
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
424 if err ~= nil or result == nil then |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
425 return |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
426 end |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
427 if not vim.api.nvim_buf_get_option(bufnr, "modified") then |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
428 local view = vim.fn.winsaveview() |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
429 vim.lsp.util.apply_text_edits(result, bufnr) |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
430 -- Fix to reload Treesitter |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
431 -- vim.api.nvim_command("edit") |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
432 vim.fn.winrestview(view) |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
433 end |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
434 end |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
435 |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
436 vim.lsp.handlers["textDocument/publishDiagnostics"] = function(...) |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
437 vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
438 underline = true, |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
439 update_in_insert = false |
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
440 })(...) |
319
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
441 end |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
442 |
333
a3a0de56b0eb
Switch to pyright LSP for python
zegervdv <zegervdv@me.com>
parents:
332
diff
changeset
|
443 lsp.pyright.setup{ |
364
f300ef1bc475
Do not run LSP diagnostics while in insert mode
Zeger Van de Vannet <zegervdv@me.com>
parents:
363
diff
changeset
|
444 on_attach = on_attach; |
319
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
445 } |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
446 |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
447 if (vim.fn.executable('efm-langserver') == 1) then |
323
3b25f3aa7014
Use efm folders to store efm configuration per language
zegervdv <zegervdv@me.com>
parents:
322
diff
changeset
|
448 require 'efm/python' |
379 | 449 require 'efm/lua' |
322
deb606f02fc4
Test if flake8, black are available before adding
zegervdv <zegervdv@me.com>
parents:
321
diff
changeset
|
450 |
323
3b25f3aa7014
Use efm folders to store efm configuration per language
zegervdv <zegervdv@me.com>
parents:
322
diff
changeset
|
451 -- May not be installed, use pcall to handle errors |
368
72e8dd5a4ab5
Clean up LSP peek functions
Zeger Van de Vannet <zegervdv@me.com>
parents:
367
diff
changeset
|
452 -- pcall(require, 'efm/systemverilog') |
327 | 453 pcall(require, 'efm/flp') |
323
3b25f3aa7014
Use efm folders to store efm configuration per language
zegervdv <zegervdv@me.com>
parents:
322
diff
changeset
|
454 |
3b25f3aa7014
Use efm folders to store efm configuration per language
zegervdv <zegervdv@me.com>
parents:
322
diff
changeset
|
455 local language_cfg = require'efm/languages' |
322
deb606f02fc4
Test if flake8, black are available before adding
zegervdv <zegervdv@me.com>
parents:
321
diff
changeset
|
456 |
367
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
457 local filetypes = {} |
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
458 for lang, _ in pairs(language_cfg) do |
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
459 table.insert(filetypes, lang) |
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
460 end |
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
461 |
319
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
462 lsp.efm.setup{ |
367
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
463 on_attach = on_attach, |
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
464 filetypes = filetypes, |
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
465 init_options = {documentFormatting = true}, |
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
466 root_dir = lsputil.root_pattern('.git', '.hg'), |
321
aa0a095f8759
Set up python formatting and linting through efm
zegervdv <zegervdv@me.com>
parents:
319
diff
changeset
|
467 settings = { |
aa0a095f8759
Set up python formatting and linting through efm
zegervdv <zegervdv@me.com>
parents:
319
diff
changeset
|
468 rootMarkers = {".git/", ".hg/"}, |
323
3b25f3aa7014
Use efm folders to store efm configuration per language
zegervdv <zegervdv@me.com>
parents:
322
diff
changeset
|
469 languages = language_cfg |
367
f0a89299e854
Enable EFM only on selected filetypes
zegervdv <zegervdv@me.com>
parents:
366
diff
changeset
|
470 }, |
319
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
471 } |
b93f12d23fbd
Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents:
diff
changeset
|
472 end |
332
5b166328c2fd
Use localconfig lua file to load device specific configuration
Zeger Van de Vannet <zegervdv@me.com>
parents:
331
diff
changeset
|
473 |
5b166328c2fd
Use localconfig lua file to load device specific configuration
Zeger Van de Vannet <zegervdv@me.com>
parents:
331
diff
changeset
|
474 -- Try importing local config |
5b166328c2fd
Use localconfig lua file to load device specific configuration
Zeger Van de Vannet <zegervdv@me.com>
parents:
331
diff
changeset
|
475 local ok, localconfig = pcall(require, 'localconfig') |
5b166328c2fd
Use localconfig lua file to load device specific configuration
Zeger Van de Vannet <zegervdv@me.com>
parents:
331
diff
changeset
|
476 if ok then |
5b166328c2fd
Use localconfig lua file to load device specific configuration
Zeger Van de Vannet <zegervdv@me.com>
parents:
331
diff
changeset
|
477 localconfig.setup {on_attach=on_attach} |
5b166328c2fd
Use localconfig lua file to load device specific configuration
Zeger Van de Vannet <zegervdv@me.com>
parents:
331
diff
changeset
|
478 end |