Mercurial > dotfiles
annotate .chezmoitemplates/init.lua @ 706:679c3a5464d7
feat: add packer lock file
author | zegervdv <zegervdv@me.com> |
---|---|
date | Sun, 23 Oct 2022 11:30:22 +0200 |
parents | f8d8c64f579c |
children | 45c34cfecc3e |
rev | line source |
---|---|
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1 -- |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
2 -- Neovim dotfiles |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
3 -- |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
4 -- |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
5 local execute = vim.api.nvim_command |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
6 local fn = vim.fn |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
7 |
582 | 8 local home = os.getenv 'HOME' |
600
24b0dd06381b
Enable collapsed statements for stylua
Zeger Van de Vannet <zegervdv@me.com>
parents:
599
diff
changeset
|
9 if home == nil then home = os.getenv 'USERPROFILE' end |
579 | 10 |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
11 -- Bootstrap package manager |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
12 local install_path = fn.stdpath 'data' .. '/site/pack/packer/opt/packer.nvim' |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
13 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
14 if fn.empty(fn.glob(install_path)) > 0 then |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
15 execute('!git clone https://github.com/wbthomason/packer.nvim ' .. install_path) |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
16 end |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
17 |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
18 -- Packer configuration is compiled and only needs to be loaded on changes |
613 | 19 vim.cmd.packadd 'packer.nvim' |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
20 |
649
cc06db32b946
Source local plugins if available
zegervdv <zegervdv@me.com>
parents:
648
diff
changeset
|
21 local local_plugin = function(name) |
cc06db32b946
Source local plugins if available
zegervdv <zegervdv@me.com>
parents:
648
diff
changeset
|
22 local path = home .. '/Projects/' .. name |
cc06db32b946
Source local plugins if available
zegervdv <zegervdv@me.com>
parents:
648
diff
changeset
|
23 if vim.fn.isdirectory(path) > 0 then |
cc06db32b946
Source local plugins if available
zegervdv <zegervdv@me.com>
parents:
648
diff
changeset
|
24 return path |
cc06db32b946
Source local plugins if available
zegervdv <zegervdv@me.com>
parents:
648
diff
changeset
|
25 else |
cc06db32b946
Source local plugins if available
zegervdv <zegervdv@me.com>
parents:
648
diff
changeset
|
26 return 'zegervdv/' .. name |
cc06db32b946
Source local plugins if available
zegervdv <zegervdv@me.com>
parents:
648
diff
changeset
|
27 end |
cc06db32b946
Source local plugins if available
zegervdv <zegervdv@me.com>
parents:
648
diff
changeset
|
28 end |
cc06db32b946
Source local plugins if available
zegervdv <zegervdv@me.com>
parents:
648
diff
changeset
|
29 |
706 | 30 require('packer').startup { |
31 function() | |
32 use { 'wbthomason/packer.nvim', opt = true } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
33 |
706 | 34 -- General plugins |
35 use { 'tpope/vim-sensible' } | |
36 use { 'tpope/vim-repeat' } | |
37 use { 'tpope/vim-rsi' } | |
38 use { 'sgur/vim-editorconfig' } | |
39 use { | |
40 'ojroques/nvim-osc52', | |
41 config = function() | |
42 require('osc52').setup { trim = true } | |
43 local copy = function(lines, _) require('osc52').copy(table.concat(lines, '\n')) end | |
44 local paste = function() return { vim.fn.split(vim.fn.getreg '', '\n'), vim.fn.getregtype '' } end | |
45 vim.g.clipboard = { | |
46 name = 'osc52', | |
47 copy = { ['+'] = copy, ['*'] = copy }, | |
48 paste = { ['+'] = paste, ['*'] = paste }, | |
49 } | |
50 end, | |
51 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
52 |
706 | 53 use { |
54 'tpope/vim-eunuch', | |
55 cmd = { | |
56 'Delete', | |
57 'Unlink', | |
58 'Move', | |
59 'Rename', | |
60 'Mkdir', | |
61 'Chmod', | |
62 'Cfind', | |
63 'Clocate', | |
64 'Lfind', | |
65 'Llocate', | |
66 'SudoEdit', | |
67 'SudoWrite', | |
68 'Wall', | |
69 }, | |
70 } | |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
71 |
706 | 72 -- Smooth scrolling |
73 use { | |
74 'karb94/neoscroll.nvim', | |
75 config = function() require('neoscroll').setup {} end, | |
76 } | |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
77 |
706 | 78 -- Faster lua package loading (until 15436 is merged) |
79 use { | |
80 'lewis6991/impatient.nvim', | |
81 module = { 'impatient' }, | |
82 setup = function() require 'impatient' end, | |
83 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
84 |
706 | 85 -- Library with lua functions |
86 use { 'nvim-lua/plenary.nvim' } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
87 |
706 | 88 -- Spelling/autocorrection |
89 use { 'tpope/vim-abolish' } | |
482 | 90 |
706 | 91 -- Git/VCS |
92 use { 'vim-scripts/gitignore' } | |
93 use { | |
94 'zegervdv/settle.nvim', | |
95 opt = true, | |
96 cmd = { 'SettleInit' }, | |
97 config = function() | |
98 require('settle').setup { | |
99 wrap = true, | |
100 symbol = '▊', | |
101 pre_hook = function() | |
102 -- disable dirvish | |
103 vim.api.nvim_del_keymap('n', '-') | |
104 end, | |
105 } | |
106 end, | |
107 } | |
108 use { 'tpope/vim-git', ft = { 'gitcommit', 'gitrebase' } } | |
109 use { | |
110 local_plugin 'diffview.nvim', | |
111 config = function() require('diffview').setup { use_icons = false } end, | |
112 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
113 |
706 | 114 -- Comments |
115 use { | |
116 'numToStr/Comment.nvim', | |
117 config = function() | |
118 local ft = require 'Comment.ft' | |
119 ft.systemverilog = { '//%s', '/*%s*/' } | |
120 ft.verilog = { '//%s', '/*%s*/' } | |
497
852acbe7ae8e
Use Comment.nvim for more control when commenting
zegervdv <zegervdv@me.com>
parents:
496
diff
changeset
|
121 |
706 | 122 require('Comment').setup { |
123 padding = true, | |
124 sticky = true, | |
125 ignore = '^(%s*)$', | |
126 mappings = { | |
127 basic = true, | |
128 extra = true, | |
129 }, | |
130 } | |
131 end, | |
132 keys = { | |
133 { 'n', 'gc' }, | |
134 { 'n', 'gb' }, | |
135 { 'v', 'gc' }, | |
136 { 'v', 'gb' }, | |
137 }, | |
138 } | |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
139 |
706 | 140 -- Parentheses etc |
141 use { 'kylechui/nvim-surround', config = function() require('nvim-surround').setup() end } | |
142 use { | |
143 'windwp/nvim-autopairs', | |
144 config = function() | |
145 local npairs = require 'nvim-autopairs' | |
146 local Rule = require 'nvim-autopairs.rule' | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
147 |
706 | 148 local cmp = require 'nvim-autopairs.completion.cmp' |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
149 |
706 | 150 require('cmp').event:on('confirm_done', cmp.on_confirm_done()) |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
151 |
706 | 152 npairs.setup { |
153 ignored_next_char = string.gsub([[ [%w%%%'%[%.] ]], '%s+', ''), | |
154 enable_afterquote = false, | |
155 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
156 |
706 | 157 npairs.add_rules { |
158 Rule(' ', ' '):with_pair(function(opts) | |
159 local pair = opts.line:sub(opts.col - 1, opts.col) | |
160 return vim.tbl_contains({ '()', '[]', '{}' }, pair) | |
161 end), | |
162 Rule('( ', ' )') | |
163 :with_pair(function() return false end) | |
164 :with_move(function(opts) return opts.prev_char:match '.%)' ~= nil end) | |
165 :use_key ')', | |
166 Rule('{ ', ' }') | |
167 :with_pair(function() return false end) | |
168 :with_move(function(opts) return opts.prev_char:match '.%}' ~= nil end) | |
169 :use_key '}', | |
170 Rule('[ ', ' ]') | |
171 :with_pair(function() return false end) | |
172 :with_move(function(opts) return opts.prev_char:match '.%]' ~= nil end) | |
173 :use_key ']', | |
174 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
175 |
706 | 176 npairs.get_rule('`'):with_pair(function() return vim.bo.filetype ~= 'systemverilog' end) |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
177 |
706 | 178 npairs.get_rule("'")[1]:with_pair(function() return vim.bo.filetype ~= 'systemverilog' end) |
179 end, | |
180 after = { 'nvim-cmp' }, | |
181 } | |
182 | |
183 -- Moving around within lines | |
184 use { 'wellle/targets.vim', event = 'InsertEnter *' } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
185 |
706 | 186 -- Searching |
187 use { | |
188 'mhinz/vim-grepper', | |
189 cmd = { 'Grepper', 'Ag' }, | |
190 keys = { { 'n', 'gs' }, { 'x', 'gs' } }, | |
191 config = function() | |
192 vim.g.grepper = { | |
193 tools = { 'ag', 'hg' }, | |
194 highlight = 1, | |
195 ag = { | |
196 grepprg = 'rg --vimgrep', | |
197 }, | |
198 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
199 |
706 | 200 vim.keymap.set({ 'x', 'n' }, 'gs', '<plug>(GrepperOperator)') |
201 vim.api.nvim_create_user_command( | |
202 'Ag', | |
203 'Grepper -noprompt -tool ag -grepprg rg --vimgrep <args>', | |
204 { complete = 'file', nargs = '*' } | |
205 ) | |
206 end, | |
207 } | |
208 | |
209 -- Opening files | |
210 use { 'wsdjeg/vim-fetch' } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
211 |
706 | 212 -- session management |
213 use { | |
214 'folke/persistence.nvim', | |
215 event = 'BufReadPre', | |
216 module = 'persistence', | |
217 config = function() require('persistence').setup() end, | |
218 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
219 |
706 | 220 -- Indent lines |
221 use { | |
222 'lukas-reineke/indent-blankline.nvim', | |
223 config = function() | |
224 vim.g.indent_blankline_buftype_exclude = { 'terminal', 'help', 'nofile' } | |
225 vim.g.indent_blankline_show_first_indent_level = false | |
226 vim.g.indent_blankline_char = '│' | |
227 end, | |
228 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
229 |
706 | 230 -- Increment/decrement |
231 use { | |
232 'zegervdv/nrpattern.nvim', | |
233 branch = 'lua', | |
234 requires = 'tpope/vim-repeat', | |
235 config = function() | |
236 local nrpattern = require 'nrpattern' | |
237 local defaults = require 'nrpattern.default' | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
238 |
706 | 239 defaults[{ 'input', 'output' }] = { priority = 12, filetypes = { 'verilog', 'systemverilog' } } |
240 defaults[{ "'1", "'0" }] = { priority = 9, filetypes = { 'verilog', 'systemverilog' } } | |
241 | |
242 nrpattern.setup(defaults) | |
243 end, | |
244 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
245 |
706 | 246 -- Tmux |
247 use { | |
248 'numtostr/navigator.nvim', | |
249 config = function() | |
250 require('Navigator').setup { auto_save = 'current', disable_on_zoom = true } | |
632
ca2687d578d2
Add which-key for lesser used keymaps
zegervdv <zegervdv@me.com>
parents:
631
diff
changeset
|
251 |
706 | 252 local nmap = function(lhs, rhs, opts) return vim.keymap.set('n', lhs, rhs, opts) end |
253 nmap('<c-h>', require('Navigator').left, { silent = true }) | |
254 nmap('<c-j>', require('Navigator').down, { silent = true }) | |
255 nmap('<c-k>', require('Navigator').up, { silent = true }) | |
256 nmap('<c-l>', require('Navigator').right, { silent = true }) | |
257 end, | |
258 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
259 |
706 | 260 -- Keymap help |
261 use { | |
262 'folke/which-key.nvim', | |
263 config = function() | |
264 require('which-key').setup { | |
265 triggers = { '<leader>', 'g', '<c-w>', '"', '`' }, | |
266 } | |
267 end, | |
268 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
269 |
706 | 270 -- Completion/snippets/LSP |
271 use { 'neovim/nvim-lspconfig' } | |
272 use { | |
273 'hrsh7th/nvim-cmp', | |
274 requires = { | |
275 'hrsh7th/cmp-buffer', | |
276 'hrsh7th/cmp-nvim-lsp', | |
277 'saadparwaiz1/cmp_luasnip', | |
278 'hrsh7th/cmp-path', | |
279 'hrsh7th/cmp-cmdline', | |
280 'hrsh7th/cmp-nvim-lsp-signature-help', | |
281 }, | |
282 config = function() | |
283 local cmp = require 'cmp' | |
284 local luasnip = require 'luasnip' | |
285 | |
286 local has_words_before = function() | |
287 local line, col = unpack(vim.api.nvim_win_get_cursor(0)) | |
288 return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil | |
289 end | |
518
784b931c51b7
Enable cmp completion for cmdline
zegervdv <zegervdv@me.com>
parents:
517
diff
changeset
|
290 |
706 | 291 cmp.setup { |
292 snippet = { | |
293 expand = function(args) luasnip.lsp_expand(args.body) end, | |
294 }, | |
295 mapping = { | |
296 ['<C-p>'] = { i = cmp.mapping.select_prev_item() }, | |
297 ['<C-n>'] = { i = cmp.mapping.select_next_item() }, | |
298 ['<C-d>'] = { i = cmp.mapping.scroll_docs(-4) }, | |
299 ['<C-y>'] = { i = cmp.mapping.complete() }, | |
300 ['<C-e>'] = { i = cmp.mapping.close() }, | |
301 ['<CR>'] = { i = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Replace } }, | |
302 ['<C-k>'] = { i = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Replace } }, | |
303 }, | |
304 sources = { | |
305 { name = 'nvim_lsp' }, | |
306 { name = 'nvim_lsp_signature_help' }, | |
307 { name = 'buffer', keyword_length = 5 }, | |
308 { name = 'luasnip' }, | |
309 { name = 'path' }, | |
310 }, | |
311 experimental = { | |
312 native_menu = false, | |
313 ghost_text = true, | |
314 }, | |
315 } | |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
316 |
706 | 317 cmp.setup.cmdline(':', { |
318 mapping = cmp.mapping.preset.cmdline { | |
319 ['<C-p>'] = { c = cmp.mapping.select_prev_item() }, | |
320 ['<C-n>'] = { c = cmp.mapping.select_next_item() }, | |
321 ['<C-y>'] = { c = cmp.mapping.complete() }, | |
496
8524c1a304a6
Enable tree-sitter highlights for systemverilog
zegervdv <zegervdv@me.com>
parents:
495
diff
changeset
|
322 }, |
706 | 323 sources = cmp.config.sources({ |
324 { name = 'path' }, | |
325 }, { | |
326 { name = 'cmdline', keyword_length = 4 }, | |
327 }), | |
328 }) | |
329 end, | |
330 after = 'luasnip', | |
331 } | |
332 use { | |
333 { | |
334 'nvim-treesitter/nvim-treesitter', | |
335 run = ':TSUpdate', | |
336 config = function() | |
337 require 'nvim-treesitter.highlight' | |
338 | |
339 require('nvim-treesitter.configs').setup { | |
340 ensure_installed = { | |
341 'python', | |
342 'lua', | |
343 'verilog', | |
344 'json', | |
345 'yaml', | |
346 'bash', | |
347 'dockerfile', | |
348 'c', | |
349 'cpp', | |
350 'regex', | |
351 'markdown', | |
352 'rst', | |
353 'beancount', | |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
354 }, |
706 | 355 indent = { |
356 enable = false, | |
357 }, | |
358 highlight = { | |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
359 enable = true, |
706 | 360 disable = { 'systemverilog', 'verilog' }, |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
361 }, |
706 | 362 incremental_selection = { |
500
c6624d04906a
Add treesitter based textobjects
zegervdv <zegervdv@me.com>
parents:
499
diff
changeset
|
363 enable = true, |
c6624d04906a
Add treesitter based textobjects
zegervdv <zegervdv@me.com>
parents:
499
diff
changeset
|
364 keymaps = { |
706 | 365 init_selection = 'gnn', |
366 node_incremental = 'grn', | |
367 scope_incremental = 'grc', | |
368 node_decremental = 'grm', | |
500
c6624d04906a
Add treesitter based textobjects
zegervdv <zegervdv@me.com>
parents:
499
diff
changeset
|
369 }, |
c6624d04906a
Add treesitter based textobjects
zegervdv <zegervdv@me.com>
parents:
499
diff
changeset
|
370 }, |
706 | 371 refactor = { |
372 highlight_definitions = { enable = true }, | |
373 smart_rename = { enable = true, keymaps = { smart_rename = 'gsr' } }, | |
374 navigation = { | |
375 enable = true, | |
376 keymaps = { goto_definition = 'gnd', list_definitions = 'gnD' }, | |
377 }, | |
378 }, | |
379 textobjects = { | |
380 move = { | |
381 enable = true, | |
382 goto_next_start = { [']]'] = '@block.outer' }, | |
383 goto_previous_start = { ['[['] = '@block.outer' }, | |
384 goto_next_end = { [']['] = '@block.outer' }, | |
385 goto_previous_end = { ['[]'] = '@block.outer' }, | |
386 }, | |
387 select = { | |
388 enable = true, | |
389 lookahead = true, | |
390 keymaps = { | |
391 ['af'] = '@function.outer', | |
392 ['if'] = '@function.inner', | |
393 }, | |
394 }, | |
395 }, | |
396 playground = { enable = true, disable = {}, updatetime = 25, persist_queries = false }, | |
397 } | |
398 end, | |
399 }, | |
400 'nvim-treesitter/nvim-treesitter-refactor', | |
401 'nvim-treesitter/nvim-treesitter-textobjects', | |
402 { 'nvim-treesitter/playground', opt = true }, | |
403 } | |
404 use { 'L3MON4D3/luasnip' } | |
405 use { | |
406 'rmagatti/goto-preview', | |
407 config = function() require('goto-preview').setup {} end, | |
408 } | |
409 use { | |
410 'jose-elias-alvarez/null-ls.nvim', | |
411 requires = 'nvim-lua/plenary.nvim', | |
412 } | |
413 use { 'folke/neodev.nvim' } | |
414 use { | |
415 'smjonas/inc-rename.nvim', | |
416 config = function() | |
417 require('inc_rename').setup { | |
418 post_hook = function(result) | |
419 local changed = {} | |
420 for uri, changes in pairs(result.changes or result.documentChanges) do | |
421 local bufnr = vim.uri_to_bufnr(uri) | |
422 for _, edits in ipairs(changes) do | |
423 table.insert(changed, { | |
424 bufnr = bufnr, | |
425 lnum = edits.range.start.line + 1, | |
426 col = edits.range.start.character + 1, | |
427 text = vim.api.nvim_buf_get_lines(bufnr, edits.range.start.line, edits.range.start.line + 1, false)[1], | |
428 }) | |
429 end | |
430 end | |
431 vim.fn.setqflist(changed, 'r') | |
432 end, | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
433 } |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
434 end, |
706 | 435 } |
436 use { | |
437 'j-hui/fidget.nvim', | |
438 config = function() | |
439 require('fidget').setup { | |
440 text = { | |
441 spinner = 'dots', | |
442 }, | |
443 window = { | |
444 relative = 'editor', | |
445 blend = 0, | |
446 }, | |
447 } | |
448 end, | |
449 } | |
450 use { | |
451 'https://git.sr.ht/~whynothugo/lsp_lines.nvim', | |
452 disable = true, | |
453 config = function() | |
454 require('lsp_lines').setup() | |
455 vim.diagnostic.config { virtual_lines = false, virtual_text = false } | |
456 vim.keymap.set( | |
457 'n', | |
458 'g?', | |
459 function() require('lsp_lines').toggle() end, | |
460 { desc = 'Toggle LSP diagnostic lines' } | |
461 ) | |
462 end, | |
463 } | |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
464 |
706 | 465 use { |
466 'nvim-telescope/telescope-ui-select.nvim', | |
467 requires = { 'nvim-telescope/telescope.nvim' }, | |
468 config = function() | |
469 require('telescope').setup { | |
470 defaults = { | |
620 | 471 border = {}, |
472 borderchars = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, | |
473 winblend = 0, | |
474 }, | |
706 | 475 extensions = { |
476 ['ui-select'] = require('telescope.themes').get_dropdown { | |
477 border = {}, | |
478 borderchars = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, | |
479 winblend = 0, | |
480 }, | |
481 }, | |
482 } | |
483 require('telescope').load_extension 'ui-select' | |
484 end, | |
485 } | |
620 | 486 |
706 | 487 use { 'vimjas/vim-python-pep8-indent', ft = { 'python' } } |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
488 |
706 | 489 use { |
490 'rebelot/heirline.nvim', | |
491 after = 'espresso-tutti-colori.nvim', | |
492 config = function() | |
493 local utils = require 'heirline.utils' | |
494 local conditions = require 'heirline.conditions' | |
495 | |
496 local colors = require('tutti-colori.colors').setup() | |
497 colors.diag_warn = utils.get_highlight('DiagnosticSignWarn').fg | |
498 colors.diag_error = utils.get_highlight('DiagnosticSignError').fg | |
605
2828b29de182
switch to heirline as status line
zegervdv <zegervdv@me.com>
parents:
604
diff
changeset
|
499 |
706 | 500 require('heirline').load_colors(colors) |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
501 |
706 | 502 local align = { provider = '%=' } |
503 local space = { provider = ' ' } | |
504 local lbound = { provider = '▊ ', hl = { fg = 'blue', bg = 'bg' } } | |
505 local rbound = { provider = ' ▊', hl = { fg = 'blue', bg = 'bg' } } | |
506 | |
507 local FileNameBlock = { | |
508 init = function(self) self.filename = vim.api.nvim_buf_get_name(0) end, | |
509 } | |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
510 |
706 | 511 local FileName = { |
512 provider = function(self) | |
513 local filename = vim.fn.fnamemodify(self.filename, ':.') | |
514 if filename == '' then return '[No Name]' end | |
605
2828b29de182
switch to heirline as status line
zegervdv <zegervdv@me.com>
parents:
604
diff
changeset
|
515 |
706 | 516 if not conditions.width_percent_below(#filename, 0.25) then filename = vim.fn.pathshorten(filename) end |
517 | |
518 return filename | |
519 end, | |
520 hl = { fg = 'blue' }, | |
521 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
522 |
706 | 523 local FileFlags = { |
524 { | |
525 provider = function() | |
526 if vim.bo.modified then return ' [+]' end | |
527 end, | |
528 hl = { fg = 'green' }, | |
529 }, | |
530 { | |
531 provider = function() | |
532 if not vim.bo.modifiable or vim.bo.readonly then return ' RO' end | |
533 end, | |
534 hl = { fg = 'orange' }, | |
535 }, | |
536 } | |
609 | 537 |
706 | 538 FileNameBlock = utils.insert(FileNameBlock, FileName, unpack(FileFlags), { provider = '%<' }) |
539 | |
540 local Ruler = { provider = '%l : %c %P' } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
541 |
706 | 542 local Lsp = { |
543 condition = conditions.lsp_attached, | |
544 update = { 'LspAttach', 'LspDetach' }, | |
605
2828b29de182
switch to heirline as status line
zegervdv <zegervdv@me.com>
parents:
604
diff
changeset
|
545 provider = function() |
706 | 546 local names = {} |
547 for _, server in pairs(vim.lsp.get_active_clients { bufnr = 0 }) do | |
548 table.insert(names, server.name) | |
549 end | |
550 return table.concat(names, ', ') | |
487
0252f9494d64
Remove deferred loading of packer plugins
Zeger Van de Vannet <zegervdv@me.com>
parents:
486
diff
changeset
|
551 end, |
605
2828b29de182
switch to heirline as status line
zegervdv <zegervdv@me.com>
parents:
604
diff
changeset
|
552 hl = { fg = 'green' }, |
706 | 553 } |
605
2828b29de182
switch to heirline as status line
zegervdv <zegervdv@me.com>
parents:
604
diff
changeset
|
554 |
706 | 555 local Diagnostics = { |
556 condition = conditions.has_diagnostics, | |
557 init = function(self) | |
558 self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR }) | |
559 self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN }) | |
560 end, | |
561 update = { 'DiagnosticChanged', 'BufEnter' }, | |
562 { | |
563 provider = function(self) return self.errors > 0 and self.errors .. ' ' end, | |
564 hl = { fg = 'diag_error' }, | |
565 }, | |
566 { | |
567 provider = function(self) return self.warnings > 0 and self.warnings .. ' ' end, | |
568 }, | |
569 hl = { fg = 'diag_warn' }, | |
570 on_click = { | |
571 callback = function() | |
572 local diagnostics = vim.diagnostic.get(0, { severity = { min = vim.diagnostic.severity.WARN } }) | |
573 vim.fn.setqflist(vim.diagnostic.toqflist(diagnostics)) | |
574 vim.cmd.copen { mods = { split = 'botright' } } | |
575 end, | |
576 name = 'heirline_diagnostics', | |
577 }, | |
578 } | |
605
2828b29de182
switch to heirline as status line
zegervdv <zegervdv@me.com>
parents:
604
diff
changeset
|
579 |
706 | 580 local statusline_default = { lbound, FileNameBlock, align, Diagnostics, Lsp, space, Ruler, rbound } |
581 local statusline_inactive = { | |
582 condition = function() return not conditions.is_active() end, | |
583 lbound, | |
584 FileNameBlock, | |
585 align, | |
586 rbound, | |
587 } | |
588 local statusline = { | |
589 fallthrough = false, | |
590 hl = { bg = 'bg' }, | |
591 statusline_inactive, | |
592 statusline_default, | |
593 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
594 |
706 | 595 require('heirline').setup(statusline) |
596 end, | |
597 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
598 |
706 | 599 -- File navigation |
600 use { | |
601 'elihunter173/dirbuf.nvim', | |
602 opt = true, | |
603 config = function() | |
604 require('dirbuf').setup { | |
605 hash_padding = 2, | |
606 show_hidden = true, | |
607 } | |
608 end, | |
609 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
610 |
706 | 611 -- Colorscheme |
612 use { | |
613 'navarasu/onedark.nvim', | |
614 disable = true, | |
615 config = function() | |
616 require('onedark').setup { | |
617 style = 'dark', | |
618 code_style = { | |
619 comments = 'italic', | |
620 }, | |
621 ending_tildes = true, | |
622 diagnostics = { | |
623 darker = false, | |
624 undercurl = false, | |
625 background = false, | |
626 }, | |
627 } | |
628 require('onedark').load() | |
629 local extras = { | |
630 TelescopeNormal = { link = 'Pmenu' }, | |
631 TelescopeBorder = { link = 'Pmenu' }, | |
632 TelescopePromptBorder = { link = 'Pmenu' }, | |
633 TelescopePreviewBorder = { link = 'Pmenu' }, | |
634 TelescopeResultsBorder = { link = 'Pmenu' }, | |
635 TelescopeTitle = { link = 'identifier' }, | |
636 } | |
637 for name, opt in pairs(extras) do | |
638 vim.api.nvim_set_hl(0, name, opt) | |
639 end | |
640 end, | |
641 } | |
642 use { | |
643 local_plugin 'espresso-tutti-colori.nvim', | |
644 config = function() | |
645 require('tutti-colori').setup() | |
646 require('tutti-colori').load() | |
647 end, | |
648 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
649 |
706 | 650 -- Terminal |
651 use { | |
652 'akinsho/nvim-toggleterm.lua', | |
653 config = function() | |
654 require('toggleterm').setup { | |
655 size = 15, | |
656 open_mapping = [[<F12>]], | |
657 shade_filetypes = { 'none' }, | |
658 shade_terminals = true, | |
659 persist_size = true, | |
660 direction = 'horizontal', | |
661 } | |
662 end, | |
663 keys = { [[<F12>]] }, | |
664 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
665 |
706 | 666 -- Integration with external tools |
667 use { | |
668 'glacambre/firenvim', | |
669 run = function() vim.fn['firenvim#install'](0) end, | |
670 config = function() | |
671 vim.g.firenvim_config = { | |
672 localSettings = { | |
673 ['.*'] = { | |
674 takeover = 'never', | |
675 }, | |
582 | 676 }, |
706 | 677 } |
678 end, | |
679 } | |
680 end, | |
681 config = { snapshot_path = vim.fn.stdpath 'config' }, | |
682 } | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
683 |
613 | 684 vim.cmd.packadd 'dirbuf.nvim' |
519
d919c1590230
Move dirvish loading to init.lua
zegervdv <zegervdv@me.com>
parents:
518
diff
changeset
|
685 |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
686 -- Configuration |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
687 local opt = vim.opt |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
688 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
689 opt.backspace = { 'indent', 'eol', 'start' } -- Backspace everything |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
690 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
691 opt.autoread = true -- Read changed files |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
692 opt.hidden = true -- Allow to move away from modified files |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
693 opt.autowriteall = true -- Write changes when losing focus |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
694 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
695 -- Visuals |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
696 opt.number = true |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
697 opt.relativenumber = true |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
698 opt.scrolloff = 4 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
699 opt.showcmd = true -- Show incomplete commands while typing |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
700 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
701 opt.termguicolors = true |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
702 opt.background = 'dark' |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
703 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
704 opt.showmatch = true -- Highligh matching braces |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
705 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
706 opt.wrap = true -- Wrap lines |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
707 opt.wrapmargin = 2 -- Stay 2 chars from side |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
708 opt.textwidth = 79 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
709 opt.colorcolumn = '81' -- Show indication of 81 chars |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
710 opt.linebreak = true -- Smarter wrapping |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
711 opt.breakindent = true -- Indent wrapped lines to same level |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
712 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
713 opt.fixendofline = true -- Add EOL when missing |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
714 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
715 opt.expandtab = true -- Add spaces when pressing tab |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
716 opt.tabstop = 2 -- Tab is 2 spaces |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
717 opt.shiftwidth = 2 -- Shift per 2 spaces |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
718 opt.shiftround = true -- Round shifts to allign (1 space + tab = 2 spaces) |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
719 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
720 -- Searching and substitute |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
721 opt.magic = true -- Enable regexes |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
722 opt.hlsearch = true -- Highlight all matches |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
723 opt.incsearch = true -- Show matches while typing |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
724 opt.ignorecase = true |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
725 opt.smartcase = true -- When search pattern contains cases, be case sensitive |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
726 opt.gdefault = true -- Use global flag for substitute: replace all matches on line |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
727 opt.inccommand = 'nosplit' -- Show live replacements directly in text |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
728 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
729 opt.autoindent = true |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
730 opt.cindent = true -- C-syntax based indenting |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
731 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
732 opt.updatetime = 300 -- Faster triggering of CursorHold events |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
733 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
734 opt.errorbells = false -- Don't you beep to me |
541 | 735 opt.title = false -- Don't set the shell title |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
736 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
737 opt.history = 1000 -- Remember last commands |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
738 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
739 opt.wildmenu = true -- Command completion |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
740 opt.wildmode = 'longest:full,full' |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
741 opt.shortmess:append 'c' -- Hide ins-completion messages |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
742 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
743 opt.ttyfast = true -- fast terminal |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
744 opt.lazyredraw = true |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
745 opt.ttimeoutlen = -1 -- Minimum timeout |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
746 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
747 opt.diffopt:append 'iwhite' -- Ignore whitespace in diffs |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
748 opt.diffopt:append 'internal' -- Internal diff engine |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
749 opt.diffopt:append 'algorithm:patience' -- Use patience algorithm |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
750 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
751 opt.tags = { '.git/tags', 'tags' } |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
752 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
753 opt.path:append '**' -- Recursively search current directory |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
754 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
755 opt.formatoptions = { |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
756 c = true, -- Wrap comments |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
757 r = true, -- Continue comments |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
758 o = true, -- Insert comment with o/O |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
759 q = true, -- Format comments with gq |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
760 n = true, -- Indent numbered lists |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
761 [2] = true, -- Indent from 2nd line of paragraph |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
762 [1] = true, -- Don't break before one letter words |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
763 } |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
764 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
765 opt.signcolumn = 'yes' -- Always show signcolumn |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
766 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
767 opt.cursorline = true |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
768 |
543
15d6c097f1c9
set nostartofline to keep cursor in same column when scrolling
zegervdv <zegervdv@me.com>
parents:
541
diff
changeset
|
769 opt.startofline = false -- When moving try to keep cursor in column |
15d6c097f1c9
set nostartofline to keep cursor in same column when scrolling
zegervdv <zegervdv@me.com>
parents:
541
diff
changeset
|
770 |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
771 -- Show certain characters |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
772 opt.list = true |
485
4ad3b5ada36b
Add listchar for tab (fixes ^I in text)
zegervdv <zegervdv@me.com>
parents:
484
diff
changeset
|
773 opt.listchars = { trail = '·', extends = '>', precedes = '<', nbsp = '+', tab = '▸ ' } |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
774 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
775 opt.sessionoptions:remove 'options' -- Remove options from saved sessions (reload from config) |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
776 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
777 opt.completeopt = { 'menu', 'menuone', 'noselect' } |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
778 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
779 opt.splitright = true -- Open new splits to right |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
780 opt.virtualedit = 'block' -- Enable block editting |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
781 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
782 opt.conceallevel = 0 -- Disable conceal |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
783 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
784 opt.pastetoggle = '<F2>' -- Enable paste mode |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
785 |
648
c5ed13440614
Set and optionally create backup and undo dirs
zegervdv <zegervdv@me.com>
parents:
646
diff
changeset
|
786 local optdir = function(path) |
c5ed13440614
Set and optionally create backup and undo dirs
zegervdv <zegervdv@me.com>
parents:
646
diff
changeset
|
787 local Path = require 'plenary.path' |
c5ed13440614
Set and optionally create backup and undo dirs
zegervdv <zegervdv@me.com>
parents:
646
diff
changeset
|
788 local full_path = Path:new(vim.fn.stdpath 'cache' .. '/' .. path) |
c5ed13440614
Set and optionally create backup and undo dirs
zegervdv <zegervdv@me.com>
parents:
646
diff
changeset
|
789 if not full_path:exists() then full_path:mkdir { parents = true } end |
c5ed13440614
Set and optionally create backup and undo dirs
zegervdv <zegervdv@me.com>
parents:
646
diff
changeset
|
790 return full_path .. '//' |
c5ed13440614
Set and optionally create backup and undo dirs
zegervdv <zegervdv@me.com>
parents:
646
diff
changeset
|
791 end |
c5ed13440614
Set and optionally create backup and undo dirs
zegervdv <zegervdv@me.com>
parents:
646
diff
changeset
|
792 |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
793 opt.undofile = true -- Persistently remember undos |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
794 opt.undolevels = 1000 |
648
c5ed13440614
Set and optionally create backup and undo dirs
zegervdv <zegervdv@me.com>
parents:
646
diff
changeset
|
795 opt.undodir = optdir 'undo' |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
796 opt.swapfile = false -- Disable swap files |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
797 opt.backup = true -- Keep backups |
648
c5ed13440614
Set and optionally create backup and undo dirs
zegervdv <zegervdv@me.com>
parents:
646
diff
changeset
|
798 opt.backupdir = optdir 'backup' |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
799 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
800 -- Files to ignore from completion |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
801 opt.wildignore:append { |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
802 '*/tmp/*', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
803 '*.so', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
804 '*.swp', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
805 '*.zip', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
806 '*.o', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
807 '*.bin', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
808 '*.elf', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
809 '*.hex', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
810 '*.eps', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
811 '.git/*', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
812 '*.dup', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
813 '.hg/**', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
814 '*.orig', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
815 '*.*~', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
816 } |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
817 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
818 opt.mouse = { |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
819 n = true, -- Normal mode |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
820 i = true, -- Insert mode |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
821 c = true, -- Commandline mode |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
822 } |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
823 |
616 | 824 opt.fillchars:append { |
606 | 825 diff = '╱', |
826 } | |
827 | |
633
9f040a50eac8
add view to jumpoptions to preserve view when mark was set
zegervdv <zegervdv@me.com>
parents:
632
diff
changeset
|
828 opt.jumpoptions:append { 'view' } |
9f040a50eac8
add view to jumpoptions to preserve view when mark was set
zegervdv <zegervdv@me.com>
parents:
632
diff
changeset
|
829 |
463 | 830 opt.foldmethod = 'expr' |
831 opt.foldexpr = 'nvim_treesitter#foldexpr()' | |
832 opt.foldnestmax = 3 | |
833 opt.foldminlines = 1 | |
834 opt.foldtext = | |
835 [[substitute(getline(v:foldstart),'\\t',repeat('\ ',&tabstop),'g').'...'.trim(getline(v:foldend)) . ' (' . (v:foldend - v:foldstart + 1) . ' lines)']] | |
836 opt.foldenable = false | |
837 | |
616 | 838 function _G.qftf(info) |
839 local items | |
840 local ret = {} | |
841 if info.quickfix == 1 then | |
842 items = fn.getqflist({ id = info.id, items = 0 }).items | |
843 else | |
844 items = fn.getloclist(info.winid, { id = info.id, items = 0 }).items | |
845 end | |
846 local limit = 31 | |
847 local fnameFmt1, fnameFmt2 = '%-' .. limit .. 's', '…%.' .. (limit - 1) .. 's' | |
848 local validFmt = '%s │%5d:%-3d│%s %s' | |
849 for i = info.start_idx, info.end_idx do | |
850 local e = items[i] | |
851 local fname = '' | |
852 local str | |
853 if e.valid == 1 then | |
854 if e.bufnr > 0 then | |
855 fname = fn.bufname(e.bufnr) | |
856 if fname == '' then | |
857 fname = '[No Name]' | |
858 else | |
859 fname = fname:gsub('^' .. vim.env.HOME, '~') | |
860 end | |
861 -- char in fname may occur more than 1 width, ignore this issue in order to keep performance | |
862 if #fname <= limit then | |
863 fname = fnameFmt1:format(fname) | |
864 else | |
865 fname = fnameFmt2:format(fname:sub(1 - limit)) | |
866 end | |
867 end | |
868 local lnum = e.lnum > 99999 and -1 or e.lnum | |
869 local col = e.col > 999 and -1 or e.col | |
870 local qtype = e.type == '' and '' or ' ' .. e.type:sub(1, 1):upper() | |
871 str = validFmt:format(fname, lnum, col, qtype, e.text) | |
872 else | |
873 str = e.text | |
874 end | |
875 table.insert(ret, str) | |
876 end | |
877 return ret | |
878 end | |
879 | |
880 vim.o.qftf = '{info -> v:lua._G.qftf(info)}' | |
881 | |
520
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
882 -- Clean up terminal codes from strings |
600
24b0dd06381b
Enable collapsed statements for stylua
Zeger Van de Vannet <zegervdv@me.com>
parents:
599
diff
changeset
|
883 local t = function(str) return vim.api.nvim_replace_termcodes(str, true, true, true) end |
520
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
884 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
885 -- General keymaps |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
886 local map = vim.keymap.set |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
887 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
888 -- Set leader to space |
639
b6c64ebecc3e
fix: set leader via mapleader option
zegervdv <zegervdv@me.com>
parents:
638
diff
changeset
|
889 vim.g.mapleader = ' ' |
520
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
890 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
891 -- Move while in insert mode |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
892 map('i', '<C-f>', '<right>') |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
893 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
894 -- Keep search matches centered |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
895 map('n', 'n', 'nzzzv') |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
896 map('n', 'N', 'Nzzzv') |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
897 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
898 -- Very magic search patterns |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
899 map({ 'n', 'v' }, '/', '/\\v') |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
900 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
901 -- Move through long lines as breaks |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
902 map('n', 'j', '(v:count ? "j" : "gj")', { expr = true }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
903 map('n', 'k', '(v:count ? "k" : "gk")', { expr = true }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
904 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
905 -- Command line search for commands |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
906 map('c', '<c-n>', '<down>') |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
907 map('c', '<c-p>', '<up>') |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
908 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
909 -- Clear highlighs |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
910 map('n', '<leader>l', '<cmd>noh<CR>', { silent = true }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
911 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
912 -- Reselect last selection |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
913 map('n', 'gV', '`[v`]') |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
914 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
915 -- Use backspace as normal in visual mode |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
916 map('v', '<BS>', 'x', { remap = true }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
917 |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
918 -- Keep selection when indenting |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
919 local keep_visual_selection = function(cmd) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
920 return function() |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
921 vim.opt.smartindent = false |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
922 if vim.fn.mode() == 'V' then |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
923 return cmd .. t ':set smartindent<CR>gv' |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
924 else |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
925 return cmd .. t ':set smartindent<CR>' |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
926 end |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
927 end |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
928 end |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
929 map('v', '>', keep_visual_selection '>', { expr = true, silent = true, desc = 'Indent right while keeping selection' }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
930 map('v', '<', keep_visual_selection '<', { expr = true, silent = true, desc = 'Indent left while keeping selection' }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
931 |
574
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
932 -- Do not move on * |
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
933 map('n', '*', function() |
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
934 local view = vim.fn.winsaveview() |
613 | 935 vim.cmd.normal { '*', bang = true } |
574
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
936 vim.fn.winrestview(view) |
599
1def7efdc619
Add trouble.nvim for diagnostics overview
Zeger Van de Vannet <zegervdv@me.com>
parents:
594
diff
changeset
|
937 end, { |
1def7efdc619
Add trouble.nvim for diagnostics overview
Zeger Van de Vannet <zegervdv@me.com>
parents:
594
diff
changeset
|
938 silent = true, |
1def7efdc619
Add trouble.nvim for diagnostics overview
Zeger Van de Vannet <zegervdv@me.com>
parents:
594
diff
changeset
|
939 desc = 'Search word under cursor without moving to first results', |
1def7efdc619
Add trouble.nvim for diagnostics overview
Zeger Van de Vannet <zegervdv@me.com>
parents:
594
diff
changeset
|
940 }) |
574
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
941 |
627 | 942 map('x', 'p', [[ p:if v:register == '"'<Bar>let @@=@0<Bar>endif<CR> ]], { silent = true }) |
943 | |
574
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
944 map('n', '<UP>', ':cprev<CR>', { desc = 'Go to previous error/match' }) |
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
945 map('n', '<DOWN>', ':cnext<CR>', { desc = 'Go to next error/match' }) |
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
946 map('n', '<LEFT>', ':cpf<CR>', { desc = 'Go to previous error/match in previous file' }) |
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
947 map('n', '<RIGHT>', ':cnf<CR>', { desc = 'Go to next error/match in next file' }) |
8b04d5ffd210
Clean up unused functions and mappings
zegervdv <zegervdv@me.com>
parents:
570
diff
changeset
|
948 |
627 | 949 map('t', '<C-h>', '<C-\\><C-n><C-w>h') |
950 map('t', '<C-j>', '<C-\\><C-n><C-w>j') | |
951 map('t', '<C-k>', '<C-\\><C-n><C-w>k') | |
952 map('t', '<C-l>', '<C-\\><C-n><C-w>l') | |
953 | |
954 map('c', '<CR>', function() | |
955 local cmdline = vim.fn.getcmdline() | |
956 if cmdline == 'ls' or cmdline == 'buffers' or cmdline == 'files' then return '<CR>:b' end | |
957 return '<CR>' | |
958 end, { expr = true }) | |
959 | |
960 -- Special highlighting | |
961 vim.cmd.match { 'ErrorMsg', [[ '^\(<\|=\|>\)\{7\}\([^=].\+\)\?$' ]] } | |
962 | |
489 | 963 local au = require 'au' |
964 | |
965 -- Highlight yanked text | |
600
24b0dd06381b
Enable collapsed statements for stylua
Zeger Van de Vannet <zegervdv@me.com>
parents:
599
diff
changeset
|
966 au.TextYankPost = function() vim.highlight.on_yank { timeout = 120 } end |
489 | 967 |
968 -- Automatic cursorline | |
969 au.group('cline', { | |
970 { | |
971 'WinEnter', | |
972 '*', | |
620 | 973 function() |
974 if vim.bo.buftype ~= 'nofile' then vim.opt_local.cursorline = true end | |
975 end, | |
489 | 976 }, |
977 { | |
978 'WinLeave', | |
979 '*', | |
600
24b0dd06381b
Enable collapsed statements for stylua
Zeger Van de Vannet <zegervdv@me.com>
parents:
599
diff
changeset
|
980 function() vim.opt_local.cursorline = false end, |
489 | 981 }, |
982 }) | |
983 | |
984 -- Save files on focus lost | |
985 au.FocusLost = function() | |
613 | 986 if not vim.o.readonly and vim.api.nvim_buf_get_name(0) ~= '' then vim.cmd.wa() end |
489 | 987 end |
988 | |
989 -- Equalize splits after resizing | |
990 au.VimResized = [[ exe "normal! \<c-w>=" ]] | |
991 | |
992 -- Reload diffs after editing | |
993 au.BufWritePost = function() | |
613 | 994 if vim.o.diff then vim.cmd.diffupdate() end |
489 | 995 end |
996 | |
691 | 997 -- Open file at last position |
998 au.BufReadPost = function() | |
999 if vim.bo.filetype ~= 'gitcommit' and vim.fn.line '\'"' > 0 and vim.fn.line '\'"' <= vim.fn.line '$' then | |
1000 vim.cmd.normal { 'g`"', bang = true } | |
1001 end | |
1002 end | |
1003 | |
1004 -- Remove netrw buffers | |
1005 au.FileType = { 'netrw', 'setlocal bufhidden=delete' } | |
1006 | |
696
22efd3b888f8
feat: enable spellchecking for select filetypes
zegervdv <zegervdv@me.com>
parents:
691
diff
changeset
|
1007 -- Enable spelling |
22efd3b888f8
feat: enable spellchecking for select filetypes
zegervdv <zegervdv@me.com>
parents:
691
diff
changeset
|
1008 au.FileType = { { 'python', 'systemverilog', 'verilog', 'txt', 'lua' }, function() vim.opt_local.spell = true end } |
22efd3b888f8
feat: enable spellchecking for select filetypes
zegervdv <zegervdv@me.com>
parents:
691
diff
changeset
|
1009 |
627 | 1010 -- Terminal |
1011 au.group('enter_term', { | |
1012 { 'TermOpen', '*', 'startinsert!' }, | |
1013 { | |
1014 'BufEnter', | |
1015 '*', | |
1016 function() | |
1017 if vim.bo.buftype == 'terminal' then vim.cmd.startinsert { bang = true } end | |
1018 end, | |
1019 }, | |
1020 { | |
1021 'BufLeave', | |
1022 '*', | |
1023 function() | |
1024 if vim.bo.buftype == 'terminal' then vim.cmd.stopinsert { bang = true } end | |
1025 end, | |
1026 }, | |
1027 }) | |
1028 | |
691 | 1029 -- Color number categories in reports and logs |
1030 au({ 'BufNewFile', 'BufRead', 'BufEnter' }, { | |
1031 '*.rpt,*.log', | |
1032 function() | |
1033 vim.cmd.syntax { 'match', 'String', [["\v<\d{1,3}>"]] } | |
1034 vim.cmd.syntax { 'match', 'Statement', [["\v<\d{4,6}>"]] } | |
1035 vim.cmd.syntax { 'match', 'Function', [["\v<\d{7,9}>"]] } | |
1036 | |
1037 vim.cmd.syntax { 'match', 'Number', [["\v<0+>"]] } | |
1038 | |
1039 vim.cmd.syntax { 'match', 'Error', [["\v\c^error:"]] } | |
1040 | |
1041 vim.wo.wrap = false | |
1042 end, | |
1043 }) | |
1044 | |
688
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1045 -- Apply changes in chezmoi managed files |
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1046 au.group('chezmoi', { |
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1047 { 'BufWritePost', os.getenv 'HOME' .. '/.local/share/chezmoi/*', 'silent !chezmoi apply --source-path %' }, |
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1048 { |
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1049 'BufWritePost', |
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1050 os.getenv 'HOME' .. '/.local/share/chezmoi/.chezmoitemplates/init.lua', |
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1051 'silent !chezmoi apply --source-path $HOME/.local/share/chezmoi/dot_config/nvim/init.lua.tmpl', |
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1052 }, |
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1053 }) |
6e98364a5a28
chore: convert chezmoi autocmds to lua
zegervdv <zegervdv@me.com>
parents:
665
diff
changeset
|
1054 |
558 | 1055 -- Snippets |
1056 local ls = require 'luasnip' | |
1057 -- Expand snippet or jump to next placeholder | |
1058 vim.keymap.set({ 'i', 's' }, '<c-k>', function() | |
600
24b0dd06381b
Enable collapsed statements for stylua
Zeger Van de Vannet <zegervdv@me.com>
parents:
599
diff
changeset
|
1059 if ls.expand_or_jumpable() then ls.expand_or_jump() end |
561
6f07ecae3810
Create Ag command in config step
Zeger Van de Vannet <zegervdv@me.com>
parents:
560
diff
changeset
|
1060 end, { |
6f07ecae3810
Create Ag command in config step
Zeger Van de Vannet <zegervdv@me.com>
parents:
560
diff
changeset
|
1061 silent = true, |
6f07ecae3810
Create Ag command in config step
Zeger Van de Vannet <zegervdv@me.com>
parents:
560
diff
changeset
|
1062 }) |
558 | 1063 |
1064 -- Go back to previous placeholder | |
1065 vim.keymap.set({ 'i', 's' }, '<c-j>', function() | |
600
24b0dd06381b
Enable collapsed statements for stylua
Zeger Van de Vannet <zegervdv@me.com>
parents:
599
diff
changeset
|
1066 if ls.jumpable(-1) then ls.jump(-1) end |
561
6f07ecae3810
Create Ag command in config step
Zeger Van de Vannet <zegervdv@me.com>
parents:
560
diff
changeset
|
1067 end, { |
6f07ecae3810
Create Ag command in config step
Zeger Van de Vannet <zegervdv@me.com>
parents:
560
diff
changeset
|
1068 silent = true, |
6f07ecae3810
Create Ag command in config step
Zeger Van de Vannet <zegervdv@me.com>
parents:
560
diff
changeset
|
1069 }) |
558 | 1070 |
1071 -- Toggle options in snippets | |
1072 vim.keymap.set('i', '<c-l>', function() | |
600
24b0dd06381b
Enable collapsed statements for stylua
Zeger Van de Vannet <zegervdv@me.com>
parents:
599
diff
changeset
|
1073 if ls.choice_active() then ls.change_choice() end |
558 | 1074 end) |
1075 | |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1076 -- LSP config |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1077 local lsp = require 'lspconfig' |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1078 local null_ls = require 'null-ls' |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1079 |
690
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1080 local lsp_formatting = function(bufnr) |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1081 vim.lsp.buf.format { |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1082 filter = function(client) |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1083 local force_null_ls = { 'lua', 'beancount' } |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1084 if vim.tbl_contains(force_null_ls, vim.bo.filetype) then return client.name == 'null-ls' end |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1085 return true |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1086 end, |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1087 bufnr = bufnr, |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1088 } |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1089 end |
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1090 |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1091 local on_attach = function(client) |
600
24b0dd06381b
Enable collapsed statements for stylua
Zeger Van de Vannet <zegervdv@me.com>
parents:
599
diff
changeset
|
1092 local nmap = function(lhs, rhs, opts) return vim.keymap.set('n', lhs, rhs, opts) end |
462
676d7ef5fecb
Use tagfunc to query LSP for definitions
zegervdv <zegervdv@me.com>
parents:
460
diff
changeset
|
1093 |
555
3b9c7a3a068a
always enable lsp keymaps on attach
zegervdv <zegervdv@me.com>
parents:
543
diff
changeset
|
1094 nmap('gp', require('goto-preview').goto_preview_definition, { silent = true, buffer = 0 }) |
3b9c7a3a068a
always enable lsp keymaps on attach
zegervdv <zegervdv@me.com>
parents:
543
diff
changeset
|
1095 nmap('gP', require('goto-preview').close_all_win, { silent = true, buffer = 0 }) |
462
676d7ef5fecb
Use tagfunc to query LSP for definitions
zegervdv <zegervdv@me.com>
parents:
460
diff
changeset
|
1096 |
520
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
1097 nmap('gd', vim.lsp.buf.declaration, { silent = true, buffer = 0 }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
1098 nmap('K', vim.lsp.buf.hover, { silent = true, buffer = 0 }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
1099 nmap('gD', vim.lsp.buf.implementation, { silent = true, buffer = 0 }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
1100 nmap('1gD', vim.lsp.buf.type_definition, { silent = true, buffer = 0 }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
1101 nmap('gr', vim.lsp.buf.references, { silent = true, buffer = 0 }) |
f845e2eba7e3
Use new keymap lua function to set keymaps
zegervdv <zegervdv@me.com>
parents:
519
diff
changeset
|
1102 nmap('g0', vim.lsp.buf.document_symbol, { silent = true, buffer = 0 }) |
621 | 1103 nmap('ga', vim.lsp.buf.code_action, { silent = true, buffer = 0 }) |
513 | 1104 |
690
424764c7f51a
feat: disable autoformatting, force null-ls formatting in some cases
zegervdv <zegervdv@me.com>
parents:
688
diff
changeset
|
1105 if client.supports_method 'textDocument/formatting' then nmap('<c-p>', function() lsp_formatting(0) end) end |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1106 |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1107 vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' }) |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1108 vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' }) |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1109 end |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1110 |
704
c78a2c1388e9
fix: update cmp-nvim-lsp capabilities config
zegervdv <zegervdv@me.com>
parents:
703
diff
changeset
|
1111 local capabilities = require('cmp_nvim_lsp').default_capabilities() |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1112 capabilities.textDocument.completion.completionItem.snippetSupport = true |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1113 capabilities.textDocument.completion.completionItem.resolveSupport = { |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1114 properties = { |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1115 'documentation', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1116 'detail', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1117 'additionalTextEdits', |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1118 }, |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1119 } |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1120 |
532
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1121 local root_dir = require('lspconfig.util').root_pattern('.git', '.hg') |
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1122 |
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1123 lsp.pyright.setup { on_attach = on_attach, capabilities = capabilities, root_dir = root_dir } |
646 | 1124 lsp.bashls.setup { on_attach = on_attach, capabilities = capabilities } |
532
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1125 |
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1126 lsp.esbonio.setup { |
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1127 on_attach = on_attach, |
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1128 capabilities = capabilities, |
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1129 root_dir = root_dir, |
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1130 -- Assume esbonio is installed with --user |
579 | 1131 cmd = { home .. '/.local/bin/esbonio' }, |
532
e932c2076dba
Add esbonio language server for sphinx docs
Zeger Van de Vannet <zegervdv@me.com>
parents:
529
diff
changeset
|
1132 } |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1133 |
581 | 1134 lsp.clangd.setup { |
1135 on_attach = on_attach, | |
1136 capabilities = capabilities, | |
1137 root_dir = root_dir, | |
1138 } | |
1139 | |
638 | 1140 local bean_file = os.getenv 'BEAN_FILE' |
1141 if bean_file then | |
1142 lsp.beancount.setup { | |
1143 on_attach = on_attach, | |
1144 capabilities = capabilities, | |
1145 root_dir = root_dir, | |
1146 init_options = { | |
1147 journal_file = bean_file, | |
1148 }, | |
1149 } | |
1150 local helpers = require 'null-ls.helpers' | |
1151 local bean_format = { | |
1152 name = 'bean-format', | |
1153 filetypes = { 'beancount' }, | |
1154 method = null_ls.methods.FORMATTING, | |
1155 generator = helpers.formatter_factory { | |
1156 command = 'bean-format', | |
1157 args = { '-w', '80' }, | |
1158 to_stdin = true, | |
1159 }, | |
1160 } | |
1161 null_ls.register { bean_format } | |
1162 end | |
1163 | |
512
fc7a15e47e72
update null-ls config to remove lspconfig dependency
zegervdv <zegervdv@me.com>
parents:
511
diff
changeset
|
1164 null_ls.setup { |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1165 sources = { |
607
9a7fe4a97873
wrap lines at 100 chars with black
Zeger Van de Vannet <zegervdv@me.com>
parents:
606
diff
changeset
|
1166 null_ls.builtins.formatting.black.with { extra_args = { '--line-length', '100' } }, |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1167 null_ls.builtins.formatting.stylua, |
623
5cceedc51955
Add cbfmt and markdown/rst tree sitters
zegervdv <zegervdv@me.com>
parents:
622
diff
changeset
|
1168 null_ls.builtins.formatting.cbfmt, |
502 | 1169 null_ls.builtins.diagnostics.shellcheck, |
509
80b42722bfa8
Add prettier formatting to null-ls
zegervdv <zegervdv@me.com>
parents:
503
diff
changeset
|
1170 null_ls.builtins.formatting.prettier, |
622 | 1171 null_ls.builtins.code_actions.gitrebase, |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1172 }, |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1173 on_attach = on_attach, |
512
fc7a15e47e72
update null-ls config to remove lspconfig dependency
zegervdv <zegervdv@me.com>
parents:
511
diff
changeset
|
1174 root_dir = require('null-ls.utils').root_pattern('.hg', '.git', 'stylua.toml'), |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1175 } |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1176 |
703
50c025a59b95
fix: update lua-dev to neodev config
zegervdv <zegervdv@me.com>
parents:
702
diff
changeset
|
1177 require('neodev').setup {} |
50c025a59b95
fix: update lua-dev to neodev config
zegervdv <zegervdv@me.com>
parents:
702
diff
changeset
|
1178 lsp.sumneko_lua.setup { |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1179 lspconfig = { |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1180 cmd = { 'lua-language-server' }, |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1181 on_attach = on_attach, |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1182 capabilities = capabilities, |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1183 settings = { |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1184 Lua = { |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1185 diagnostics = { |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1186 globals = { 'use' }, |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1187 }, |
703
50c025a59b95
fix: update lua-dev to neodev config
zegervdv <zegervdv@me.com>
parents:
702
diff
changeset
|
1188 completion = { |
50c025a59b95
fix: update lua-dev to neodev config
zegervdv <zegervdv@me.com>
parents:
702
diff
changeset
|
1189 callSnippet = 'Replace', |
50c025a59b95
fix: update lua-dev to neodev config
zegervdv <zegervdv@me.com>
parents:
702
diff
changeset
|
1190 }, |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1191 }, |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1192 }, |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1193 }, |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1194 } |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1195 |
582 | 1196 local fd_quickfix = function(args) |
1197 local grepprg = vim.opt.grepprg | |
1198 local grepformat = vim.opt.grepformat | |
1199 | |
1200 vim.opt.grepprg = 'fd' | |
1201 vim.opt.grepformat = '%f' | |
613 | 1202 vim.cmd.execute('"silent! grep! ' .. args.args .. '"') |
1203 vim.cmd.copen() | |
582 | 1204 |
1205 vim.opt.grepprg = grepprg | |
1206 vim.opt.grepformat = grepformat | |
1207 end | |
589 | 1208 vim.api.nvim_create_user_command('Cfd', fd_quickfix, { nargs = '+', complete = 'file' }) |
582 | 1209 |
466
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1210 vim.diagnostic.config { |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1211 underline = true, |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1212 update_in_insert = false, |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1213 virtual_text = { severity = { min = vim.diagnostic.severity.WARN }, source = 'always' }, |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1214 severity_sort = true, |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1215 } |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1216 |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1217 vim.fn.sign_define('DiagnosticSignError', { texthl = 'DiagnosticSignError', linehl = '', numhl = '', text = '▎' }) |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1218 vim.fn.sign_define('DiagnosticSignWarn', { |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1219 texthl = 'DiagnosticSignWarn', |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1220 linehl = '', |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1221 numhl = '', |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1222 text = '▎', |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1223 }) |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1224 vim.fn.sign_define('DiagnosticSignInfo', { |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1225 texthl = 'DiagnosticSignInfo', |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1226 linehl = '', |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1227 numhl = '', |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1228 text = '▎', |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1229 }) |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1230 vim.fn.sign_define('DiagnosticSignHint', { texthl = 'DiagnosticSignHint', linehl = '', numhl = '', text = '▎' }) |
899cded39cd3
Update Diagnostic highlighting after api changes
Zeger Van de Vannet <zegervdv@me.com>
parents:
465
diff
changeset
|
1231 |
451
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1232 -- Try importing local config |
d99353d71702
Use common template for windows nvim config
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1233 local ok, localconfig = pcall(require, 'localconfig') |
600
24b0dd06381b
Enable collapsed statements for stylua
Zeger Van de Vannet <zegervdv@me.com>
parents:
599
diff
changeset
|
1234 if ok then localconfig.setup { on_attach = on_attach, capabilities = capabilities } end |