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