865 Commits
lua ... master

Author SHA1 Message Date
ab21a47e90 dont use mason lspconfig 2025-07-09 22:26:47 +02:00
a1f6780715 search within visual selection 2025-07-09 22:06:32 +02:00
342d6ceb71 avante and cc for render markdown 2025-06-04 05:55:22 +00:00
8c7abef745 enabled some snack animations 2025-06-03 23:00:41 +02:00
ce4d61699a theme fixes 2025-06-03 22:57:40 +02:00
9b4a1f350b change theme 2025-06-03 21:14:53 +02:00
3f05e24237 update kanagawa theme 2025-06-03 20:38:14 +02:00
04ebc12b2e deleted trouble 2025-05-23 22:42:45 +02:00
a8afb47638 changed goose keymaps 2025-05-23 22:42:21 +02:00
4191a22ba4 disable avante 2025-05-23 22:24:27 +02:00
8fd8136ef4 added goose 2025-05-23 22:23:50 +02:00
45c6579704 changed gemini model 2025-05-21 21:55:38 +02:00
2c3a45e455 mason tuning 2025-05-12 23:59:03 +02:00
389645576a more lazy loading 2025-05-12 23:55:47 +02:00
5dd002497d nvim lint only for cpp files 2025-05-12 23:50:05 +02:00
3d032689fa don't check lsp server with mason 2025-05-12 23:49:56 +02:00
9d9e645544 avante options for render markdown 2025-05-12 23:43:47 +02:00
7b67983b69 lazy load flash 2025-05-12 23:43:37 +02:00
a71d0c02f6 lazy load avante 2025-05-12 23:43:13 +02:00
49978655ae update plugins 2025-05-11 22:51:12 +02:00
412a16b28a don't enable lsp servers twice 2025-05-11 22:51:04 +02:00
oli
5c01002344 Update lua/plugins/lsp.lua 2025-05-08 22:34:31 +02:00
6b5f89632c added dial 2025-04-29 23:02:55 +02:00
0264be4c7c don't enable words in insert mode 2025-04-24 22:23:06 +02:00
e570d1d51b fixed lazygit style again 2025-04-22 23:05:59 +02:00
6860da39b0 blink still has bugs 2025-04-22 22:46:37 +02:00
232f4df97a switch to blink again 2025-04-21 20:57:44 +02:00
946c9a8a85 removed additional braces 2025-04-20 23:36:28 +02:00
df0db24702 moved lsp server config to after dir 2025-04-20 23:34:31 +02:00
23dd1811ee change api for new filetypes 2025-04-20 23:00:32 +02:00
9914c9bd88 added toml formatter and lsp 2025-04-17 23:39:18 +02:00
46272b5e46 update plugins 2025-04-17 22:31:08 +02:00
f882a43f0b added session to gitignore 2025-04-17 22:31:01 +02:00
58ad88736c added readme 2025-04-17 22:29:59 +02:00
5b6177042d added pre-commit hook 2025-04-17 22:27:32 +02:00
4692812dd9 satisfy pre commit hook 2025-04-17 22:27:26 +02:00
68a8642302 new formatting 2025-04-17 22:26:30 +02:00
8b99910bb4 new lua style 2025-04-17 21:58:34 +02:00
92ec6976c5 cleanup lsp 2025-04-17 21:47:34 +02:00
39d973b28b removed some unused dependencies 2025-04-16 23:36:07 +02:00
2e1386a781 switched to new lsp config 2025-04-16 23:32:31 +02:00
db93b002c1 fixed some colors for snacks picker 2025-04-16 09:27:17 +00:00
af38ccadc5 removed some border 2025-04-12 22:12:57 +02:00
b690aa49e6 dont use version by default 2025-04-12 21:52:08 +02:00
13eddb6b56 some bamboo tuning 2025-04-12 21:42:27 +02:00
0830d8cd5c added history bonus to snacks picker 2025-04-11 22:06:59 +02:00
1c828c6e89 use prettier to format yaml 2025-04-10 08:56:37 +00:00
f8ebdf8963 cmp, get text from all buffers 2025-04-10 08:55:03 +00:00
2b21ea5e4e format lua files 2025-04-09 22:22:12 +02:00
584ad307d6 use snacks indent 2025-04-09 22:17:37 +02:00
f6c84d7d5b new dashboard 2025-04-08 22:42:00 +02:00
ee5de708e0 set spelllang to en 2025-04-06 21:51:14 +02:00
473a877089 set master branch for neogit 2025-04-06 21:46:34 +02:00
1b892ce287 deleted catppuccin theme 2025-04-06 21:43:13 +02:00
88c1f1b9ed added aider (disabled) 2025-04-06 21:42:29 +02:00
abc79b2970 added fixjson 2025-04-04 13:48:57 +00:00
8966af7289 added conform 2025-04-04 13:36:50 +00:00
e1ade38e04 configure prettier for yaml 2025-04-04 12:04:47 +00:00
fec3bf1ed5 limit the number of entries in the completion menu 2025-04-04 07:12:08 +00:00
cdfc208d3a finalized cmp menu colors 2025-04-03 23:30:31 +02:00
353553c167 cmp menu formated 2025-04-03 23:15:18 +02:00
a1ce67e857 cmp format 2025-04-03 22:57:23 +02:00
0d24406fa9 removed some unused funtions in lspconfig 2025-04-03 22:38:43 +02:00
18a85dd239 border for cmp and float windows 2025-04-03 22:38:30 +02:00
0699d2a3a8 disable blink 2025-04-01 23:20:31 +02:00
8dedf49447 more cmp changes 2025-04-01 23:20:23 +02:00
cf05586a00 added copilot to cmp 2025-04-01 20:27:10 +00:00
e835520de0 added cmp back 2025-04-01 09:08:27 +00:00
942111542b more delay for doc in blink 2025-03-31 22:43:57 +02:00
088f951461 execute keymaps for dap 2025-03-31 22:07:10 +02:00
12d2dd05b5 cleanup dap 2025-03-31 21:51:51 +02:00
07487ff91a snacks picker for dap 2025-03-31 21:25:50 +02:00
6f56fa264c neogit adjust 2025-03-31 21:04:50 +02:00
08ec2a4579 removed fzf lua 2025-03-29 00:20:01 +01:00
1393c83f4f lspconfig removed pretty hover 2025-03-29 00:13:38 +01:00
4e5b974350 markdown changes 2025-03-29 00:13:08 +01:00
0ccaeed2e5 format codecompanion 2025-03-28 23:43:47 +01:00
345147cc91 remove pretty hover 2025-03-28 23:25:10 +01:00
0f83d58058 codium only on my home pc 2025-03-28 23:23:24 +01:00
aff6baa61e diagnostic config 2025-03-28 23:23:24 +01:00
405cf6e7ac Fixed tab color in lualine 2025-03-28 07:47:06 +00:00
ed4a7f86b5 removed unused import 2025-03-26 21:21:26 +01:00
2f6ba7cd62 removed debug output 2025-03-26 21:21:16 +01:00
2eb6baa626 disabled git status pane 2025-03-26 21:09:44 +01:00
9498c776b9 new gemini model 2025-03-26 21:07:26 +01:00
a1b2f4da15 format options file 2025-03-26 21:07:19 +01:00
028ca26b08 deprecated function 2025-03-26 21:06:48 +01:00
9c904b2f84 show floating boarder 2025-03-26 21:06:15 +01:00
497429a1c3 colors lualine 2025-03-25 21:31:13 +01:00
725721af8b update to blink v1.0.0 2025-03-25 20:56:10 +01:00
9b58d16e6e removed cmp from dap 2025-03-18 21:31:04 +01:00
e97c34d65d dap completion with blink 2025-03-18 21:29:32 +01:00
54e224ee75 avante adjust for markview 2025-03-18 20:24:03 +01:00
4604fde5d1 updated plugins 2025-03-09 23:49:55 +01:00
aca5a2c858 added avante 2025-03-09 23:49:38 +01:00
7b1d7ef35e disable dot repeat in blink 2025-03-03 07:07:52 +00:00
89c5cdb7f5 icons and highlights for cmdline 2025-03-02 23:01:58 +01:00
8020b6efc9 history score offset 2025-03-02 23:01:42 +01:00
55423e5964 blink: show from all buffers in this win 2025-03-02 23:01:31 +01:00
b8db9122eb lspkind icons 2025-03-02 22:36:14 +01:00
cc2d3b770a added cmdline history 2025-03-02 22:36:14 +01:00
3a079ee728 enable git function from snacks picker again with leader-n 2025-02-28 08:34:03 +00:00
3be7150ca7 fixed cmdline in blink 2025-02-28 08:33:34 +00:00
c63bf6b008 enable dot repeat again 2025-02-26 23:14:58 +01:00
58a98904ac fixed blink cmdline auto insert 2025-02-26 23:14:42 +01:00
0c8520dd91 adjust to new blink 2025-02-26 23:11:45 +01:00
fcc007ff75 flash S in visual line mode and toggle with v 2025-02-26 22:51:05 +01:00
8bad13c702 more blink tuning 2025-02-17 10:50:00 +00:00
c52ee91856 fixed some blink visuals 2025-02-17 10:42:27 +00:00
d992b11610 updated plugins 2025-02-17 10:26:19 +00:00
c8c795e65b some gitsings keymaps 2025-02-17 10:25:53 +00:00
8d553071dd copilot for python 2025-02-17 10:24:19 +00:00
36afa8eb81 new copilot completion 2025-02-17 10:23:33 +00:00
59ae868284 fixed for blink breaking changes 2025-02-17 10:23:21 +00:00
d5e60bf5ef tune snack pickers format 2025-02-10 12:37:45 +00:00
c14f537921 added c-t to snacks picker 2025-02-10 10:30:36 +00:00
abc1a1367c enabled some snacks keys 2025-02-08 22:31:06 +01:00
5ec3e6623d switch to snacks picker 2025-02-08 21:30:14 +01:00
fff9f428f9 added grug-far 2025-02-03 21:37:41 +01:00
6a96a1f273 update plugins 2025-02-02 21:06:02 +01:00
3b88285fc1 fixed blink breaking changes 2025-02-02 21:05:50 +01:00
eac29c96f3 fixed lua style file 2025-02-02 16:20:35 +01:00
ff9d07518c update plugins 2025-01-25 13:02:38 +01:00
0e3f5dd9d2 removed cmp from lazydev 2025-01-25 13:02:29 +01:00
a2a67558c0 added markview 2025-01-25 13:01:58 +01:00
0c777ffad4 fixed blink cfg 2025-01-25 13:01:47 +01:00
a2ff3fa50f added icon for copilot in blink 2025-01-07 09:32:52 +00:00
ed7efcc18e tuning of blink 2025-01-05 13:15:15 +01:00
7b81bf1dd1 better highlight for pmenu 2025-01-05 13:01:22 +01:00
af6a028aa5 some blink adjustments 2024-12-21 01:19:17 +01:00
72154419eb format blink file 2024-12-21 00:55:44 +01:00
c94599346a switch to blink 2024-12-21 00:30:11 +01:00
dc4e43aec4 removed tabs 2024-12-17 13:55:24 +01:00
eb27bfb343 format lspconfig 2024-12-17 13:53:44 +01:00
787ec2764f added comment blink lsp capas 2024-12-17 13:53:34 +01:00
24bb5db0ff added blink, but still disabled 2024-12-17 13:40:59 +01:00
2a72ba7b33 fixed floating window color 2024-12-17 13:37:20 +01:00
18a711ec56 disable stylua because it is supported by lsp 2024-12-17 13:13:04 +01:00
bf5afab3ab fixed cmp call from copilot 2024-12-13 08:04:08 +01:00
d13360cad6 added codecompanion 2024-12-12 14:37:23 +01:00
45f3998474 use newest version from dap plugins 2024-12-02 23:41:16 +01:00
18c0f0063a reworked the dashboard 2024-11-20 13:09:02 +00:00
1c0e7f6d14 disable notifier from snacks 2024-11-20 13:08:50 +00:00
7726b043d1 new keybindings for snack words 2024-11-19 19:29:01 +00:00
c6a6997667 snacks to dev version 2024-11-19 19:28:46 +00:00
71b603512c remove terminal from dashboard 2024-11-19 19:28:29 +00:00
bdee2b0401 configured dashboard 2024-11-19 08:12:05 +00:00
f45d6ebb13 added mini sessions 2024-11-19 08:11:53 +00:00
ea7760b0ff map return and shift return to jump lsp definitions 2024-11-19 08:02:17 +00:00
000a7051f1 added snacks 2024-11-19 07:22:31 +00:00
faf9573534 use main branch for efmls configs 2024-11-19 06:57:20 +00:00
3836f866d6 show hidden files in oil 2024-11-15 07:53:59 +00:00
1783d82fe2 use the ruff lsp server instead of efm 2024-11-12 12:48:31 +00:00
30005980ea updated plugins 2024-10-18 22:12:24 +02:00
5ed8c43e8e hover for dap 2024-10-18 22:12:18 +02:00
470eee2e4e update dap event 2024-10-18 21:50:28 +02:00
a06663a682 update on clang tidu 2024-10-18 21:35:50 +02:00
117c865017 added iron 2024-10-18 21:35:39 +02:00
2cc3afb6ee added dap repl highlights 2024-10-18 21:35:22 +02:00
ed34613fe5 fixed copilot 2024-09-23 09:07:56 +02:00
0e0308a42d added copilot 2024-07-25 08:48:11 +02:00
a404864548 replaced markview with markdown 2024-07-17 06:43:41 +00:00
8de05c209e markview settings 2024-07-15 09:54:18 +02:00
dd3e41ab6b small cmp fix 2024-07-15 00:00:17 +02:00
9dcaa0def9 update plugins 2024-07-14 22:27:07 +02:00
9becf1cfcb updated treesitter and rainbox 2024-07-14 22:04:17 +02:00
041d681f7a some oil options 2024-07-12 20:48:52 +02:00
de5b9c3cf7 update plugins 2024-07-11 23:51:02 +02:00
affffaeabe dont autostart markdown preview 2024-07-11 23:46:55 +02:00
a69d5ccd89 trouble: only focus symbols 2024-07-11 23:46:47 +02:00
dd52da19ff added markview 2024-07-11 23:37:30 +02:00
010acd113f highlight with return 2024-07-11 06:02:40 +00:00
2cfa266df3 yanky, dont sync with system 2024-07-10 23:40:42 +02:00
0ce702e204 added codium again to cmp 2024-07-09 00:35:04 +02:00
2554ed57cb format cmp file 2024-07-09 00:15:33 +02:00
8b58c302c1 fix lspkind 2024-07-09 00:15:11 +02:00
ae40f9c438 disabled some warnings in the cmp file 2024-07-08 23:51:02 +02:00
8c586aa58d added codium 2024-07-08 23:50:45 +02:00
5ae060e30e install ruff 2024-06-26 23:19:45 +02:00
f305c8be6c update lock file 2024-06-26 23:16:27 +02:00
cb8be9c3d2 added yanky 2024-06-26 23:15:42 +02:00
39c648bbbe workaround for json decode 2024-06-26 23:12:22 +02:00
5101091fe7 added todo comments 2024-06-26 22:56:30 +02:00
eee5d5bbf5 removed hostname from lualine 2024-06-26 11:21:14 +00:00
4b5207e43d changed to ruff for python 2024-06-26 11:21:01 +00:00
426501b814 added mini ai 2024-06-26 11:20:49 +00:00
e308de510a added cmd history to cmp again 2024-06-20 23:10:07 +02:00
7fe27982d5 format cmp file 2024-06-20 22:58:21 +02:00
6ec12aabbb set prio 7 for lsp cmp 2024-06-20 22:58:07 +02:00
5caf3af08e tuning cmp cmdline and search 2024-06-20 22:57:20 +02:00
f639158d37 removed sorting 2024-06-20 22:52:02 +02:00
09e126899a added path to cmp again 2024-06-20 22:51:53 +02:00
5866008436 removed neorg from cmp 2024-06-20 22:51:42 +02:00
a01e7f84ad some bamboo configs 2024-06-20 22:44:41 +02:00
56865bb023 removed some depracted calls 2024-06-20 22:44:31 +02:00
e20757dfff updated plugins 2024-06-20 22:31:42 +02:00
6dc6e2a2d3 fixed mason branch 2024-06-20 22:31:38 +02:00
5fdc9e902d removed debug message 2024-06-19 06:21:40 +00:00
561f56d6a2 format lspconfig 2024-06-17 00:24:24 +02:00
1b180e0567 added navic 2024-06-17 00:24:00 +02:00
5e902d667b some lualine fixes 2024-06-16 23:53:33 +02:00
92001c6537 fixed keymaps for surround 2024-06-16 23:04:49 +02:00
c7fc189175 removed unused stuff in treesitter 2024-06-16 22:49:05 +02:00
3c3e174dad revert keymaps for flash 2024-06-16 22:48:52 +02:00
3860fb3d73 added mini surround 2024-06-16 22:48:08 +02:00
7cc886c641 format options 2024-06-15 00:47:38 +02:00
d1ae784c93 format lsp config 2024-06-15 00:47:07 +02:00
24994a4dba added new server lua file 2024-06-15 00:42:53 +02:00
0a23e9529e refactor lspconfig 2024-06-15 00:19:22 +02:00
48e0a8f399 moved mason to its own file 2024-06-14 23:52:06 +02:00
51812867b2 removed nullls 2024-06-14 23:44:34 +02:00
afae40cd40 removed aerial 2024-06-14 23:39:09 +02:00
d864aef15a added black config 2024-06-14 23:38:56 +02:00
ac1318acd2 added trouble 2024-06-14 23:08:46 +02:00
d4037f677e fixed deprecated warning 2024-06-14 23:08:38 +02:00
45e25283f1 removed non lsp server from automatic install 2024-06-13 23:58:58 +02:00
02fe760d39 format build lua file 2024-06-13 23:47:01 +02:00
c5d0d9b6ad removed cmakelang 2024-06-13 23:46:35 +02:00
1c9eea9dca format lspconfig 2024-06-13 23:44:57 +02:00
97e4abc26b format lspconfig 2024-06-13 23:42:57 +02:00
7548554a89 added some efm linter 2024-06-13 23:42:50 +02:00
02182b7711 fixed lazygit 2024-06-07 00:24:45 +02:00
ae5b5fd06b format with stylua 2024-06-06 23:56:11 +02:00
d57eca961d added efm 2024-06-06 23:34:22 +02:00
82ccaa9c53 cleaned up markdown 2024-06-06 22:50:55 +02:00
ca3279c762 fixed lazygit terminal 2024-06-06 22:50:36 +02:00
0977f89286 replaced peek with markdown preview 2024-06-06 22:21:34 +02:00
f5ae4bd731 added lazydev 2024-06-06 21:53:42 +02:00
f9365da441 removed additional keymap in toggleterm 2024-05-22 09:27:45 +02:00
01b44d37be added a clang-tidy file 2024-05-22 09:03:02 +02:00
3fe8d4f86d use toggleterm for lazygit 2024-05-22 09:02:47 +02:00
b8e9373c79 switch to friendly snippets again 2024-05-22 08:29:39 +02:00
42c45af705 set clipboard for ssh sessions 2024-05-21 10:00:27 +00:00
638293d7a8 space + i for toggle inlay hints 2024-05-20 21:48:49 +02:00
68562ea1be some markdown enhancements 2024-05-18 20:19:57 +02:00
87858ea0de Set conceallevel to 3 for norg 2024-05-16 09:42:51 +02:00
3d3f4e72e2 Removed firenvim options 2024-05-16 09:41:46 +02:00
89eef9e104 Fixed conceallevel 2024-05-16 09:41:18 +02:00
0d5b0ca292 deleted firenvim 2024-05-14 23:57:07 +02:00
e6879ea135 moved themes to themes dir 2024-05-14 23:56:59 +02:00
3b17c39a61 also removed from lock file 2024-05-14 23:36:37 +02:00
1137f6c0ab fixed spelling 2024-05-14 23:31:18 +02:00
220fe9ce0f deleted some unused plugins 2024-05-14 23:31:12 +02:00
c4581bfc84 updated plugins 2024-05-13 20:52:22 +02:00
3e8eb94237 fixed rainbow url 2024-05-13 20:52:17 +02:00
6eff3343b5 fixed fzf bindings 2024-05-13 20:34:50 +02:00
3442de38f5 some bamboo tuning 2024-05-13 20:28:15 +02:00
951b772f57 split in fzflua is ctrl-x 2024-05-09 21:47:45 +02:00
8e2604d30a added lsp comment highlight to bamboo 2024-05-07 09:14:27 +02:00
b8b8b02098 removed highlights from lsp 2024-05-04 13:56:06 +02:00
1d1f123a1b updated fzf 2024-05-04 13:55:54 +02:00
d139425947 Fixed LspReferenceText fg colors 2024-04-28 23:53:33 +02:00
bbd5ddce17 Added markdown_oxide 2024-04-28 23:15:55 +02:00
97eba08fc8 Set typeCheckingMode to standard for basedpyright 2024-04-28 23:15:32 +02:00
b17849a136 updated plugins 2024-04-26 21:05:54 +02:00
c298be4bfd delete arrow plugin 2024-04-26 21:04:52 +02:00
01d5a598bb fixed esc in lazygit 2024-04-26 20:56:31 +02:00
ce098ba0b0 fixed reference write highlight 2024-04-26 09:35:47 +00:00
4131ef418b Fixed LspReferenceText highlight for bamboo 2024-04-26 11:30:27 +02:00
57eb3586d9 fixed dap config 2024-04-26 09:15:57 +00:00
4dc7351d8b Removed some telescope dependencies 2024-04-26 11:11:42 +02:00
79ddb6faca Format 2024-04-26 10:57:00 +02:00
42de9ba4d8 Added oldfiles in cwd keybinding 2024-04-26 10:56:41 +02:00
cc87de752b Changed fzf profile 2024-04-26 10:56:22 +02:00
5c5b29a5df Fixed aerial using telescope 2024-04-25 09:08:52 +02:00
eedf6b26bf Make oil not lazy load 2024-04-25 09:08:08 +02:00
a4818de18e Make cmp load also in cmdline 2024-04-25 09:05:43 +02:00
9c14a43efb replaced telescope projects with workspaces 2024-04-24 14:29:31 +02:00
9d9689df95 updated lock file for fzf 2024-04-23 23:51:31 +02:00
1bd3db5a20 Replaced telescope with lua-fzf 2024-04-23 23:50:53 +02:00
e4604d3a08 removed some unused plugins 2024-04-23 23:37:02 +02:00
0a37abcc6b enhance output of clang-tidy 2024-04-11 10:34:00 +02:00
efd30083a8 added clang-tidy task to overseer 2024-04-11 10:14:24 +02:00
1b764b9f0e Use new font in windows 2024-04-10 22:01:24 +02:00
657a638309 added marksman lsp 2024-04-10 21:50:09 +02:00
2b8d4bfff7 enable build for peek again 2024-04-10 21:28:45 +02:00
e0d85e7cbd New font for linux 2024-04-10 20:33:23 +02:00
d248b8866f added nvim-lint with clang-tidy 2024-04-10 20:16:46 +02:00
eaada06d1a Update plugins and fix neorg 2024-03-27 21:32:03 +01:00
9441307921 Update lsp and mason 2024-03-22 12:20:16 +00:00
aaac8b374c Use basedpyright instead of pyright 2024-03-22 13:17:51 +01:00
25ba85d778 Change diagnostic to lualine 2024-03-22 10:18:26 +00:00
e5fa429a75 use clang for treesitter 2024-03-20 11:28:33 +01:00
f541e3d193 only install treesitter if needed 2024-03-20 11:28:20 +01:00
2e0c412f67 Make diag float not focusable 2024-03-20 11:26:52 +01:00
a6c3075787 Disable additional_vim_regex_highlighting 2024-03-18 21:26:51 +01:00
dffa118b80 Install treesitter async 2024-03-18 21:23:43 +01:00
19512716ec Replaced nvim-colorizer with nvim-highlight-colors 2024-03-03 20:24:18 +01:00
2f1c347a24 flash shortcut descriptions 2024-02-26 23:38:46 +01:00
31858bea16 some lualine adoptions 2024-02-26 23:38:20 +01:00
90cd7ee928 added arrow plugin 2024-02-26 22:43:51 +01:00
819fc00188 Disable shortcut for close buffer with <C-W> 2024-02-25 14:34:29 +01:00
a1f501a27d Some neogit configuration 2024-02-25 14:33:40 +01:00
6d1bfd3e83 added heirline-components and heirline but disabled for the moment 2024-02-23 14:01:20 +01:00
6bbf6325e0 replace friendly-snippets with luasnip_snippets 2024-02-19 12:43:29 +01:00
ee05d192bc cleanup 2024-02-18 14:14:38 +01:00
4582fd0c9a fixed diagnostic float window 2024-02-18 14:08:29 +01:00
768807cbfe jump to last know cursor position 2024-02-18 14:07:41 +01:00
f25db8737d more refactoring of lspconfig 2024-02-17 13:42:12 +01:00
db11ddc6c5 refactor lspconfig 2024-02-17 13:15:35 +01:00
f76909ecf4 Call on_attach from lsp_config in rust 2024-02-14 13:07:49 +01:00
e829e4b1be set colors for highlight in bamboo 2024-02-14 13:07:19 +01:00
cbeffa9b6d config function for rustaceanvim 2024-02-13 23:55:34 +01:00
563f74965d Changed font to Hack Nerd font 2024-02-13 23:48:14 +01:00
75b5dc1963 Keymap for exiting terminal 2024-02-13 23:46:42 +01:00
d37abaf353 added rust plugin to lock file 2024-02-07 23:38:21 +01:00
38d34d0e86 fixed more in bamboo 2024-02-07 23:38:08 +01:00
1e8eaf3840 add rustaceanvim 2024-02-07 23:37:57 +01:00
8a801d4b73 fixed red color in bamboo custom colors 2024-02-07 13:38:33 +01:00
ce4a7ef05e fixed some colors in bamboo for lsp 2024-02-07 09:06:14 +01:00
f26ec9e154 plugin updates 2024-01-28 13:59:41 +01:00
3ae7846485 set gitsigns to main branch 2024-01-28 13:58:51 +01:00
4a21b07bf6 bamboo changes 2023-12-01 21:56:42 +01:00
cbe9c23df0 plugin update 2023-12-01 21:56:31 +01:00
9af61291c3 fixed zk 2023-12-01 20:58:13 +01:00
943f29a165 neorg tweaks 2023-11-30 20:13:36 +01:00
34b7cd6167 added bamboo color scheme 2023-11-30 20:13:29 +01:00
4cdf787491 set conceallevel for markdown 2023-11-10 22:14:00 +01:00
3c2781930f added git hash for catppuccin 2023-10-15 13:47:05 +02:00
eae5c634d9 change font size to 10 2023-10-15 13:46:36 +02:00
41d9095aae sorting in buffer telescope window 2023-10-15 13:46:23 +02:00
3f24c9a0f8 fixed lualine theme 2023-10-15 13:46:16 +02:00
b790381843 change flavor to moccha 2023-10-15 13:46:08 +02:00
89086b70d0 more colorscheme tuning 2023-10-15 13:31:30 +02:00
90173c2e25 format options file 2023-10-15 13:10:49 +02:00
33e27206de use lazy true for colorschemes 2023-10-15 13:08:46 +02:00
a251c74619 format treesitter config 2023-10-15 13:07:22 +02:00
e3d31b3978 lazy load devdocs 2023-10-15 13:07:14 +02:00
2ebe9240fa lazy load cmp 2023-10-15 13:07:00 +02:00
4fb7e309b2 lazy load neorg 2023-10-15 12:52:38 +02:00
404ce56cb5 format telescope config 2023-10-04 20:24:08 +02:00
81f8b66de4 fixed wrapping with telescope 2023-10-04 20:24:01 +02:00
713a7072b1 some neorg fixes 2023-09-28 14:27:00 +02:00
02e55b113b static is italic in kanagawa 2023-09-28 13:56:22 +02:00
5dd9bd87ec updated plugins 2023-09-28 13:44:34 +02:00
5fff121742 use mason way to get exe in dap config 2023-09-21 12:48:04 +02:00
4e0c89a4c8 fixed two warnings in dap config 2023-09-21 12:47:55 +02:00
66d9f8d837 added kanagawa theme 2023-09-20 14:15:45 +02:00
544c4814a8 fixed clangd lsp 2023-09-20 11:12:16 +02:00
0338d00fb5 some neorg updates 2023-09-20 11:07:08 +02:00
b33b0eecea added neorg 2023-09-20 10:29:15 +02:00
8894b967f8 fixed treesitter 2023-09-20 10:29:10 +02:00
e354f90577 update plugins 2023-09-20 10:29:00 +02:00
ea5a1aee44 updated plugins 2023-09-02 11:33:54 +02:00
bc8ef09a51 Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2023-08-29 13:35:55 +02:00
dd7fe850d8 added some fonts 2023-08-29 13:35:48 +02:00
284000e988 added devdocs plugin 2023-08-29 13:34:26 +02:00
356a87f4b4 changed wsl font 2023-08-18 09:03:33 +02:00
3e818ddef9 changed virtual lines 2023-08-18 09:03:24 +02:00
f631f2ad86 replaced ts rainbow 2023-07-25 10:51:57 +02:00
62411eb1cc fixed indent blankline 2023-07-25 10:51:45 +02:00
cfc6aaa447 added github theme 2023-07-24 16:54:36 +02:00
beecfef93e remove lsp signature 2023-07-20 23:01:38 +02:00
2244cd7066 less prio for buffer 2023-07-20 23:00:31 +02:00
3b16b57c21 removed lsp signature 2023-07-20 22:07:13 +02:00
0792b8274b added some clangd options 2023-07-20 21:44:01 +02:00
ae5247f81c updated lock 2023-07-10 22:29:09 +02:00
0691b19e47 don't show diagnostic popup 2023-07-10 12:03:06 +02:00
6b1d57e28a format flash file 2023-07-10 12:03:06 +02:00
8a8ea01a2f don't override leader key with flash 2023-07-10 12:03:06 +02:00
22d518adcd don't install groovyls 2023-07-10 12:03:06 +02:00
5c81abeb5e Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2023-07-10 11:04:58 +02:00
f0b4587db4 disable some conflicting keybindings in diffview 2023-07-10 11:04:33 +02:00
4a11883ee4 commented code 2023-07-09 20:50:19 +02:00
5964e8428a addad diagflow 2023-07-09 20:50:19 +02:00
1eaaeeeaad show current buffer 2023-07-07 08:39:43 +02:00
47279796fc added locality in cmp compare 2023-07-06 00:14:22 +02:00
ed4ad9305e added firevim 2023-07-05 21:24:35 +02:00
d5b129b373 only set home during telescope config 2023-07-04 10:56:33 +02:00
8003a2df42 workaround for telescope old files bug 2023-07-04 10:52:43 +02:00
48621f8887 no lazy loading of cmp 2023-07-04 10:35:17 +02:00
9aea25954f reworked lspconfig 2023-07-04 10:35:03 +02:00
62e90c9279 updated cmp to newest version instead of release 2023-07-03 08:51:31 +02:00
9a5f079e85 update lock file 2023-06-30 20:42:36 +02:00
ada6d55021 by default use the releases 2023-06-30 20:42:28 +02:00
c09e59d3e5 remove project.nvim 2023-06-30 20:42:08 +02:00
de16bd101c disable gruxbox 2023-06-30 20:41:54 +02:00
3ea31df293 removed leap 2023-06-30 14:00:56 +02:00
fe7f9a7860 use releases for some plugins 2023-06-30 14:00:50 +02:00
3bcd87638d fixed deprecated warning in treesitter 2023-06-30 11:48:17 +02:00
f15e1d7cf4 set numbers and wrap in telescope preview window 2023-06-26 11:38:39 +02:00
a119d0a39a disable flash in search 2023-06-26 11:13:32 +02:00
872e2b4c80 added pretty hover 2023-06-26 11:13:23 +02:00
e488888320 signature help in insert and visual mode 2023-06-26 11:13:06 +02:00
41bcb301c8 disable tab for cmp again 2023-06-23 14:27:32 +02:00
36a6d599eb added flash 2023-06-23 14:27:20 +02:00
c966acfbe8 added neogit 2023-06-22 14:20:11 +02:00
341c5f402b more keys for diffview 2023-06-22 14:19:09 +02:00
1df0872c44 enable arrow keys again 2023-06-21 11:47:43 +02:00
048aef0a7f added telescope project 2023-06-19 15:51:33 +02:00
9060e1dbb3 fix format for lua lsp 2023-06-19 11:33:00 +02:00
b6b7b5826e disable arrow keys 2023-06-19 10:19:18 +02:00
fded32158b move with hjkl in insert mode 2023-06-19 10:19:06 +02:00
89ba490991 keymaps to change windows and tabs with hjkl 2023-06-19 10:18:43 +02:00
eefa3b6087 added c-p and c-n for cmp 2023-06-19 10:18:08 +02:00
9150964742 fixed cmp tab 2023-06-17 22:20:08 +02:00
cf54f4bd90 dont preselect in cmp 2023-06-17 21:07:27 +02:00
32be5a0ce6 also use hack in WSL 2023-06-15 07:33:26 +02:00
c5f3e71fc3 disable debug in neotest 2023-06-14 13:41:39 +02:00
493b712291 more colors 2023-06-14 13:41:29 +02:00
6d26280753 more color adjustments 2023-06-14 12:36:57 +02:00
d7f21fb86f disable message when change detected in lazy 2023-06-14 12:23:53 +02:00
91e8fc21f2 disable zk installation 2023-06-14 12:02:35 +02:00
f303013a15 adjusted lazy options 2023-06-14 12:02:26 +02:00
088286f87b more color tuning 2023-06-14 12:02:12 +02:00
1c359f02fe some telescope color config 2023-06-12 22:36:47 +02:00
cc6dd28886 lighter float window background 2023-06-12 21:44:27 +02:00
e72c2f9c6b don't show ignore files by default in telescope 2023-06-12 21:29:34 +02:00
242ae277fd added rust lsp 2023-06-12 21:29:17 +02:00
d362ccd264 auto install some lsp servers 2023-06-03 12:40:22 +02:00
3be2ddf908 do a mason update for build 2023-06-03 12:23:24 +02:00
1a3a965f41 added zk and markdown 2023-06-02 21:08:58 +02:00
cdb768ec25 visual action keymap 2023-06-02 21:08:26 +02:00
086ba55c4a added peek plugin 2023-06-02 21:07:24 +02:00
4978435b1f split the lsp config 2023-06-02 19:59:02 +02:00
0f3ae65892 fixed fzf build 2023-06-01 00:59:56 +02:00
cd49c9dfe3 updated plugins 2023-06-01 00:59:21 +02:00
a3925adf46 removed old packer files 2023-06-01 00:59:15 +02:00
7f6817c852 try to fix neodev 2023-06-01 00:59:08 +02:00
3c7148431f more color tuning 2023-05-31 11:21:55 +02:00
d34858bbc3 tune colors for cpp in astrodark 2023-05-31 00:11:33 +02:00
832a09e031 set background to dark 2023-05-30 23:26:17 +02:00
a10d5bccf4 use astratheme 2023-05-30 23:26:06 +02:00
bb792a23c8 update ts rainbow to fork 2023-05-30 23:17:49 +02:00
87f96d8209 revert back to old diagnostic float window 2023-05-30 11:30:32 +02:00
83f61683bf force treesitter to use clang 2023-05-26 12:10:49 +02:00
6b50294119 format 2023-05-26 00:06:44 +02:00
07e8a7b526 fixed treesitter highlights 2023-05-26 00:06:39 +02:00
29df2f32b2 dim inactive 2023-05-26 00:06:28 +02:00
82b12e599c added catpuccin 2023-05-26 00:00:52 +02:00
b1c2599b9e Revert "monokai telescope"
This reverts commit bf17d5d108.
2023-05-25 22:55:31 +02:00
bf17d5d108 monokai telescope 2023-05-24 21:41:24 +02:00
80e3c762f5 added monokai 2023-05-24 21:13:25 +02:00
44376422e0 use backspace in oil 2023-05-23 16:33:04 +02:00
851238e0b9 beautify some telescope windows 2023-05-23 16:32:41 +02:00
a5b0466f17 update lock file 2023-05-23 15:48:39 +02:00
eb87655ced added oil 2023-05-23 15:48:17 +02:00
99008719e2 try nvim-rooter 2023-05-23 15:48:10 +02:00
f77d8674be always use the same icon repo 2023-05-23 15:47:55 +02:00
3dfbd9b8b6 optimize buffer sorting 2023-05-23 15:47:29 +02:00
62ffea7b57 don't use neo-tree when opening folders 2023-05-23 10:05:36 +02:00
148a870385 some borders 2023-05-21 09:41:01 +02:00
9207bbe62a use telescope go to definition\ 2023-05-20 18:24:49 +02:00
d1900be2af disbale autocommand for cursorline 2023-05-16 22:15:58 +02:00
c72644682d switched to new nerd font 3 2023-05-16 22:15:46 +02:00
4665a3b753 description for lazygit keys 2023-05-16 20:50:26 +02:00
5819910aee updated plugins 2023-05-13 10:38:34 +02:00
df73cb06c6 added surround plugin 2023-05-13 10:38:24 +02:00
fcd0795561 set lazy-lock to unix 2023-04-28 22:57:45 +02:00
6879b11ffa updated plugins 2023-04-27 22:48:46 +02:00
2ed815894f lsp_lines only on current line 2023-04-27 22:48:37 +02:00
476c83e7a8 fixed gruvbox colors 2023-04-27 22:45:57 +02:00
90494dfad6 added nvim_colorizer 2023-04-27 22:05:58 +02:00
6b020335df enable lsp_lines 2023-04-27 22:05:49 +02:00
5f17610dbf load lsp_lines with LspAttach 2023-04-27 22:05:18 +02:00
5542c5b564 Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2023-04-27 19:08:06 +02:00
bbdfe3d6e8 added material colortheme 2023-04-27 19:07:42 +02:00
903112b0bb disable diagnostic float window 2023-04-26 20:34:34 +02:00
a11811019c added lsp_lines 2023-04-26 20:34:33 +02:00
8b373ff24f some small color updates 2023-04-17 15:19:41 +02:00
03e2166f57 put neovim in the title (for keepass) 2023-04-17 15:18:55 +02:00
8bd2e43052 use conaninfo.txt for root search 2023-04-11 08:21:19 +02:00
e725e4deee fixed diagnostics numbers in lualine 2023-04-07 14:03:39 +02:00
f5f903620f update plugins 2023-04-07 13:27:52 +02:00
7c8bf66b37 use more lazu opt fields 2023-04-07 13:27:44 +02:00
e8f5e62439 dont search root with neocmake 2023-04-05 12:10:39 +02:00
a94b098588 format lspconfig 2023-04-02 23:37:19 +02:00
4ee5f69566 added navbuddy 2023-04-02 23:37:08 +02:00
a0086b4380 cleaned up cmp.lua 2023-04-02 22:57:29 +02:00
0139368180 enabel scrollwheel scaling 2023-04-02 20:41:32 +02:00
63ff84fae1 scaling keymaps for neovide 2023-04-02 16:16:09 +02:00
1e15ac6637 don't use compile_commands.json for root search 2023-03-31 09:13:44 +02:00
170aa9c79f clangd: query for the cross compiler 2023-03-31 09:13:26 +02:00
56357acccf changed titlestring to cwd 2023-03-30 15:33:57 +02:00
506583b78a removed depracted lazy call 2023-03-24 17:31:18 +01:00
04c9200050 added cppdbg for linux dap adapter 2023-03-24 16:08:42 +01:00
9e8d143b24 no italic strings 2023-03-23 22:27:22 +01:00
849cb2a2c7 updated plugins 2023-03-23 22:26:17 +01:00
3324cb1fff fixed gruvbox config 2023-03-23 22:25:26 +01:00
ebefdb64ff trigger cmdline history with c-x 2023-03-19 22:51:35 +01:00
3e49aa40a5 fixed cmp CR behaviour at end of line 2023-03-19 21:55:02 +01:00
6e3a2f931c code format cmp.lua 2023-03-19 21:41:38 +01:00
4240bd1bde change cmp sorting again 2023-03-19 21:41:21 +01:00
8f6caa96e5 try to fix lauline theme 2023-03-19 21:29:04 +01:00
97c469b1ef set some lsp highlights 2023-03-19 15:43:26 +01:00
70a06005fe use gruvbox again 2023-03-19 15:19:19 +01:00
dcf6d687b8 fixed keymap for git log 2023-03-03 10:56:51 +01:00
eca6376d79 added advanced-git-search 2023-03-03 10:45:35 +01:00
33e497133c implement venv picker 2023-02-26 22:09:38 +01:00
bc278c2a62 added menufacture 2023-02-20 21:27:24 +01:00
99690477af use pythonvenv in neotest 2023-02-15 11:49:32 +01:00
5b4001d7e8 format dap.lua 2023-02-15 11:49:32 +01:00
02aa672af8 extract python venv utils 2023-02-15 11:49:32 +01:00
480b9c5db1 Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2023-02-14 09:39:12 +01:00
91faa6b627 fixed lualine url 2023-02-13 22:18:13 +01:00
2670f4f656 updated plugins 2023-02-13 21:58:15 +01:00
7a2c6ecd29 fancy lualine config 2023-02-13 21:58:09 +01:00
656ff601a3 fixed lua lsp deprecated msg 2023-02-13 21:02:54 +01:00
2b592e82ad fixed path for venv 2023-01-31 20:45:10 +01:00
a15e7cba84 Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2023-01-31 08:38:58 +01:00
d62c914ea5 added new cmake lsp 2023-01-31 08:38:52 +01:00
1792e54500 added octo 2023-01-30 21:43:40 +01:00
b9cf3aadef check for pyrightconfig.json in dap 2023-01-30 21:28:05 +01:00
b87bbaee74 format all lua files 2023-01-29 11:55:25 +01:00
fa0d4ffd8f telescope: ignore .git but search hidden files 2023-01-29 11:41:44 +01:00
c60cf314be removed ununsed 'use' keyword for lua 2023-01-29 11:41:28 +01:00
2b0d14d7a1 enable single quotes for lua code 2023-01-29 11:41:14 +01:00
7bdf105fac also show hidden files with file search 2023-01-29 11:28:31 +01:00
045a1af8dc removed some commented code 2023-01-29 11:18:24 +01:00
c911f288c6 udpated plugins 2023-01-29 11:16:00 +01:00
c81d9e0bda format lazygit 2023-01-29 11:15:50 +01:00
561b99ac1b configure debug for cmake tools 2023-01-29 00:38:47 +01:00
cfa7b243f3 fix code-lldb debugger 2023-01-28 23:47:27 +01:00
6c51bce00d added lazygit plugin 2023-01-28 21:39:46 +01:00
a7a4319243 beatiful lsp icons and messages 2023-01-27 23:31:22 +01:00
4565a3aabd format lua 2023-01-26 21:39:01 +01:00
413a11e741 don't clear the document highlight autogroup 2023-01-26 21:26:41 +01:00
b4e5f2b7b4 hopefully the final fix for document highlight 2023-01-26 20:41:44 +01:00
70d6dbda37 try to fix the highlight autocommand 2023-01-26 20:03:54 +01:00
100b358acb Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2023-01-26 13:42:45 +01:00
c5e740a70b commands for setting the font 2023-01-26 11:48:34 +01:00
7f00267ec8 use wsl clipboard manager from help 2023-01-24 17:53:34 +01:00
9e8672038e disbale unnamedplus because it is slow 2023-01-24 17:37:08 +01:00
4f5bd49e70 added gruvbox material 2023-01-24 17:36:50 +01:00
7d318b2512 refine the wsl clipboard 2023-01-24 13:00:38 +01:00
beba8b3c51 fixed clipboard for wsl 2023-01-24 12:42:50 +01:00
e2c55680ee added pyright in pyproject.toml 2023-01-13 18:29:49 +01:00
a5ceececb5 added document symbol mapping 2023-01-13 18:29:33 +01:00
ec07710b24 added diffview keymapping 2023-01-13 18:28:59 +01:00
b9c4ea5413 some tuning of lsp config 2023-01-12 14:27:17 +01:00
520858f6ac added example pyproject.toml 2023-01-10 20:53:27 +01:00
2b48e24a28 added cmd to cmake-toools 2023-01-10 20:53:15 +01:00
ee1033a856 updated plugin versions 2023-01-09 23:16:45 +01:00
1983373ba0 added leader p as telescope commands 2023-01-09 23:16:32 +01:00
f2f51655a0 fixed cmp config with autopairs 2023-01-09 23:16:18 +01:00
8de574df32 added cmake tools 2023-01-09 23:16:02 +01:00
ed78b61632 deleted old config 2023-01-09 22:31:35 +01:00
35552af831 added test snippet for cpp 2023-01-09 09:52:21 +01:00
874cb95f01 added example pyrightconfig.json 2023-01-09 09:51:53 +01:00
2d3f05b6be updated plugin versions 2023-01-09 09:24:44 +01:00
06b46caf29 added dressing 2023-01-09 09:24:31 +01:00
42fb43f54b Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2023-01-09 08:39:37 +01:00
b35136bae4 telescope find with file filters 2023-01-09 08:38:52 +01:00
5a1a8e8f3e added xmlformat 2023-01-05 22:23:31 +01:00
78cbde972f new keymap to run last dap config 2023-01-05 14:45:38 +01:00
e3c8a5ddd4 removed some debug code from neotest 2023-01-03 14:57:47 +01:00
c8e1906f22 added neotest 2023-01-03 14:30:34 +01:00
4aa3048e23 fixed annoying lua ls message 2023-01-03 01:50:51 +01:00
3a70a67737 added neodev 2023-01-03 01:48:51 +01:00
2c57a134e3 fixed some keybindings overwritten by which key 2023-01-03 01:48:40 +01:00
0c5f81d6d4 new sign for breakpoint 2023-01-02 21:46:27 +01:00
54e87b448e more keybinding description 2022-12-29 00:51:41 +01:00
1e7fd727c2 fixed warnings in lsp config 2022-12-28 21:45:23 +01:00
b6e811ab23 small neogen fix 2022-12-28 21:40:46 +01:00
98d3f5cac7 added which-key 2022-12-28 21:40:32 +01:00
b0918760d4 moved all plugins 2022-12-28 21:07:04 +01:00
9055e4e876 dap and leap 2022-12-28 20:44:18 +01:00
4916c4eca2 more restructering 2022-12-28 20:29:41 +01:00
ce61facff9 more restructure 2022-12-28 14:29:23 +01:00
fd16ef223a start restructering of lazy 2022-12-28 13:52:17 +01:00
5dd99d7085 remove esc to quit for telescope 2022-12-27 14:57:08 +01:00
9361934d8a use some very lazy things 2022-12-27 14:55:11 +01:00
4f0bab54b5 lazy load comment nvim 2022-12-27 14:33:46 +01:00
e562f3b996 added lazy lock file 2022-12-27 14:33:28 +01:00
17b3f53e11 add telescope ui select 2022-12-24 23:25:17 +01:00
c136b87b7b fixed overseer keybinding 2022-12-24 23:07:24 +01:00
1adb3c8ff2 don't autoinstall lsp server 2022-12-24 22:55:37 +01:00
b7167a3a47 format 2022-12-24 22:39:05 +01:00
62734cac5c keybinding for lazy and fixed legendary 2022-12-24 22:38:53 +01:00
fa41d32ae1 fixed lazygit keybinding 2022-12-24 22:36:47 +01:00
c52f6304d4 added project.nvim 2022-12-24 22:36:32 +01:00
e1e32cf52c use lazy 2022-12-24 15:05:56 +01:00
a62b9ca215 don't load the fzf extension in the telescope setup 2022-12-24 15:05:48 +01:00
6b9089ee85 fixed events and keys in lazy 2022-12-24 15:05:11 +01:00
8fb7e9ad0a added all plugins to lazy 2022-12-24 14:46:00 +01:00
738bcabefe start migrating to lazy plugin manager 2022-12-24 13:36:12 +01:00
dc534b5a38 fixed loading of aerial 2022-12-20 10:57:56 +01:00
51183ffd55 move project keymap to its config file 2022-12-11 13:05:34 +01:00
58ae25ee12 lazy load cmp 2022-12-10 19:29:28 +01:00
1d9f94e650 lazy load luasnip 2022-12-10 19:29:16 +01:00
5d7231efa2 lazy load lspconfig 2022-12-10 19:28:55 +01:00
1d436a3df7 lazy load yanky 2022-12-10 19:28:33 +01:00
b91b0b48b4 lazy load overseer and aerial 2022-12-09 13:18:58 +01:00
15f8c3ecf7 complete text from all visible buffers 2022-12-09 13:18:39 +01:00
d7705f1dec fixed dap lazy loading 2022-12-09 12:15:44 +01:00
74c87cee88 lazy load neogen 2022-12-09 12:05:44 +01:00
8fa2f0f0e1 format plugins file 2022-12-09 11:53:36 +01:00
49edb9e202 lazy load neotree 2022-12-09 11:53:15 +01:00
2d5f71805e removed commented line 2022-12-09 11:47:29 +01:00
45ea60d689 fixed lazy loading of dap 2022-12-09 11:47:16 +01:00
186052c31a remove command center 2022-12-07 08:32:36 +01:00
11b954ff33 extract some keys to the plugin configs 2022-12-05 15:12:09 +01:00
bce0373dfb move some keymaps to the corresponding plugin configs 2022-12-05 14:44:29 +01:00
e111deabc9 move to legendary 2022-12-05 14:13:55 +01:00
c5073fe73e refine telescope references view 2022-12-05 11:26:09 +01:00
62a276a336 remove luarc.json 2022-12-04 01:31:13 +01:00
a188cf2c9f removed hlargs 2022-12-03 17:38:48 +01:00
64f65a1d57 removed cmake plugin 2022-12-03 00:40:02 +01:00
814ebfa3ce renamed cmp.lua to my_cmp.lua 2022-12-02 17:01:43 +01:00
cdd13eeccc added overseer keybinding 2022-12-02 13:22:01 +01:00
f638d730ad removed unused plugins 2022-12-01 23:06:50 +01:00
c0dc96fd9d option for borders in pmenu 2022-12-01 21:18:20 +01:00
3546f84367 some colortheme fixes 2022-12-01 20:55:24 +01:00
8ef35063dd format 2022-12-01 17:03:19 +01:00
0fcdf98cf3 fixed popup icosn 2022-12-01 17:03:15 +01:00
78544dcdbf use clangd extensions 2022-12-01 16:55:18 +01:00
d8dee9c878 use capabilities from cmp 2022-12-01 16:55:05 +01:00
fa5c5f32a4 first try fixing sorting in cmp 2022-12-01 15:21:43 +01:00
4c3fce3ba2 added small link to cmake overseer example 2022-12-01 15:13:18 +01:00
8f26b25bef try components 2022-11-30 21:56:30 +01:00
e93e47bd69 only run when cmake available 2022-11-30 21:19:22 +01:00
2ff32c06fd added overseer 2022-11-30 21:09:02 +01:00
fb5373f0a7 added cmd line history cmp 2022-11-19 13:33:03 +01:00
0b17bf0cfb set search color with more contrast 2022-11-19 13:14:36 +01:00
11140c602e added shortcut for dap hover 2022-11-19 12:59:12 +01:00
c8f9050caf reworked dap keymaps 2022-11-19 11:09:56 +01:00
51eab5c6ea fixed deprecated message for aerial 2022-11-19 10:52:14 +01:00
9c86c2a32e removed some deprecated messages 2022-11-19 10:36:10 +01:00
9b8097dc36 disable lualine winbar for dap repl and console 2022-11-19 10:35:47 +01:00
15b03ee11f make sure we can exit dap terminal with esc 2022-11-17 15:00:43 +01:00
4b3bc84837 fixed esc for terminals 2022-11-17 14:15:49 +01:00
861b60e4f7 added missing gruvbox flat config file 2022-11-07 22:54:28 +01:00
ff7a190162 added gruvbox-flat 2022-11-04 19:12:44 +01:00
a2f360ddb4 fixed missing function getVenvSuffix 2022-11-04 19:00:38 +01:00
66477e10a0 also set cwd for launch.json configs 2022-11-03 20:32:16 +01:00
c8bbbe4057 fixed access to a local function 2022-11-03 20:32:02 +01:00
f7536e94ae set working dir 2022-11-03 20:27:14 +01:00
a09b75f16e support for launch.json 2022-11-03 20:27:06 +01:00
56797a2564 add support for conda 2022-11-03 20:26:29 +01:00
a64aeb9dd6 fixed python path if venv env variable is set 2022-11-03 11:59:44 +01:00
350d42333a deleted lspinstall file 2022-10-30 12:30:32 +01:00
45f61cf7fe removed database and tabnine completion 2022-10-30 12:30:31 +01:00
4b532e698f Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2022-10-30 12:23:39 +01:00
9fc33c2b44 fixed clangd encoding warning 2022-10-30 12:23:17 +01:00
474fe4cb44 disable shada read on focusgained 2022-10-30 12:22:43 +01:00
ea267d690f validate yaml 2022-10-30 12:18:43 +01:00
c23240ab03 dont lazy load aerial 2022-10-30 12:17:49 +01:00
8c672f19db setup cmp-dap correctly 2022-10-28 23:10:28 +02:00
476205ce47 cmp: do not select with return 2022-10-28 23:09:53 +02:00
837a273774 Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2022-10-17 09:43:50 +02:00
3d0b66c7ab try to set the width for float popup 2022-10-17 09:43:44 +02:00
0dfcf42beb fixed deprecated in lsp confiog 2022-10-15 13:04:04 +02:00
8ea3ed7a79 disable git for neo-tree 2022-10-15 13:03:50 +02:00
518f32d3bb code format 2022-10-15 12:50:38 +02:00
db1ad041ab update nvim tree config 2022-10-06 17:54:59 +02:00
76249b2a8a Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2022-10-06 09:36:56 +02:00
e2460a2425 source selector for neo tree 2022-10-05 23:43:19 +02:00
5b6ae54763 fixed aerial config 2022-10-05 22:45:52 +02:00
3272e4067f lazy load diffview 2022-10-05 22:30:42 +02:00
1e8201cd13 lazy loading aerial 2022-10-05 22:26:37 +02:00
7629d6d57e fixed format mode 2022-10-05 19:36:26 +02:00
d0c31ea3b7 lazy loading of dap and cmake 2022-10-05 19:36:13 +02:00
570b9fe329 highlight word to silent 2022-10-05 12:02:21 +02:00
739b2154eb use more lua functions 2022-10-05 11:59:35 +02:00
edc73d3639 small fix for highlight word 2022-10-05 11:53:26 +02:00
d91ae17970 fixed highlight keymapping 2022-10-05 11:52:28 +02:00
f9d34430ae removed workarounds for old vim version 2022-10-02 21:27:44 +02:00
74e6cc3bb4 fixed color for text highlight 2022-09-28 13:45:33 +02:00
7e31d668ee fixed highlight groups for lsp highlight 2022-09-28 13:36:14 +02:00
4bbf17633d Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2022-09-28 09:12:05 +02:00
a7a5a41f8d more detection methods for project plugin 2022-09-28 09:11:34 +02:00
a3942972d8 fixed linux dap config 2022-09-26 09:07:15 +02:00
ea6e95aca8 disable litee 2022-09-20 20:40:05 +02:00
67067bde77 set lualine theme to gruvbox 2022-09-20 20:39:35 +02:00
d3e3bbc903 disable everything for vscode 2022-09-20 18:52:15 +02:00
dbfd744f97 also let project plugin detect build_nvim 2022-09-20 15:38:52 +02:00
b4d08255a5 enable old gruvbox again 2022-09-20 15:38:25 +02:00
827adacc68 clangd root dir detection with build_nvim 2022-09-20 15:38:02 +02:00
89b1d53451 use lualine for winbar 2022-09-19 10:51:56 +02:00
4ba64948eb formatted plugins file 2022-09-19 10:51:40 +02:00
48acab5f4b format lsp config file 2022-09-19 10:50:43 +02:00
0115553f37 make sure to set the leader in the beginning 2022-09-19 10:49:04 +02:00
a85b634110 fixed range formatting with ^>= 0.8 2022-09-16 10:18:07 +02:00
a24b928433 fixed comment shortcut 2022-09-16 10:00:37 +02:00
4c9b016540 added working.json 2022-09-15 09:31:35 +02:00
e32ff73562 fixed fzf build by using Ninja 2022-09-15 09:30:17 +02:00
774fdda969 added diffview 2022-09-15 09:25:58 +02:00
612ec0cbe6 some more fixes for different nvim versions 2022-09-10 13:39:45 +02:00
c19072c4cd winbar only with nvim ^>= 0.8 2022-09-09 20:51:20 +02:00
e72eaa724e added lldb-vscode adapter 2022-09-09 20:51:20 +02:00
e6d1091430 map build to f4 2022-09-09 20:51:20 +02:00
59d9b95eb9 add cpp config and fix adapter 2022-09-09 20:51:20 +02:00
ebd55ecc55 correctly call getpythonenv 2022-09-09 20:51:20 +02:00
41ce8f2063 use debugpy from mason 2022-09-09 20:51:20 +02:00
652a1c2aa7 fixed dap python config 2022-09-09 20:51:20 +02:00
988db59976 fixed clangd search dir 2022-09-09 08:35:10 +02:00
54e6d1b844 set capabilities correctly 2022-08-31 12:18:50 +02:00
bf80f95a9a Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2022-08-31 10:56:40 +02:00
99e1139337 cleanup python debug config 2022-08-09 14:47:36 +02:00
382871be03 auto launch debug ui 2022-08-09 14:47:20 +02:00
1ba7731c16 fixed visual selection in gruvbox baby 2022-08-09 14:47:05 +02:00
4a21802429 added python debug session with venv search 2022-08-09 14:17:01 +02:00
087e0faad2 added commands for font size 2022-08-08 10:00:45 +02:00
14fd19bde6 more dap plugins 2022-08-06 18:46:41 +02:00
8030c44a93 switch to gruvbox-baby 2022-08-06 18:40:48 +02:00
49f8494072 first running verion of dab python 2022-08-06 15:26:18 +02:00
69b5cace69 setup groovyls 2022-08-03 14:57:58 +02:00
5a22a03eba add clangd_extension as cmp dependency 2022-08-02 09:20:33 +02:00
c9c630ce61 format lua files 2022-07-31 14:18:55 +02:00
c792c0839b delete unused mason lua file 2022-07-31 14:16:20 +02:00
80cff42519 fixed lua language server loading with mason 2022-07-31 14:15:06 +02:00
d019626efb first version of dap 2022-07-31 13:57:57 +02:00
8953d89f3c Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2022-07-31 13:57:03 +02:00
860b97c24c fixd fzf build 2022-07-31 13:56:56 +02:00
deb6dea93b removed lazy loading 2022-07-31 13:56:40 +02:00
b396169fca replaced deprecated diagnostic calls 2022-07-31 13:16:40 +02:00
6a8c84250f set ttimeoutlen 2022-07-26 22:35:52 +02:00
894dba3337 use mason for lsp install 2022-07-26 22:17:09 +02:00
8ebf953ec7 added leap 2022-07-10 23:42:52 +02:00
3aea401281 added yanky keys and telescope 2022-07-09 00:43:34 +02:00
98a9f00bd6 delete tabout 2022-07-09 00:29:26 +02:00
03c102be95 format 2022-07-08 23:43:04 +02:00
3b3bc5b937 support for my own vscode snippets 2022-07-08 23:43:04 +02:00
5d4cf9bfdc setup the linux font 2022-07-07 22:21:57 +02:00
219a8c3e81 fixed autocommand for checktime 2022-07-07 21:59:04 +02:00
d7b2cc3156 added hlargs 2022-07-05 23:20:51 +02:00
f9888e9c2a update stable 2022-07-04 23:41:44 +02:00
8b79b38ca0 disable virtual text again 2022-07-04 23:40:56 +02:00
d6f71c8ab2 disbable get to location after file load 2022-07-01 21:14:12 +02:00
23a3a8f7c6 added additional command for comment 2022-07-01 21:13:57 +02:00
d525388f3f fixed highlight 2022-07-01 21:08:37 +02:00
4bd385dd55 disable indent for treesitter 2022-07-01 20:55:20 +02:00
f9d9bbd258 disable bold and italic 2022-07-01 20:55:03 +02:00
c607af6115 updated font 2022-07-01 20:25:37 +02:00
b12a673ba1 update colorscheme 2022-07-01 20:24:41 +02:00
3c9ecc9d53 added cmp signature help 2022-07-01 17:28:13 +02:00
be42757e5e fixed aerial keybinding 2022-07-01 17:27:43 +02:00
8020639f31 use x for visual mode instead of v 2022-07-01 16:44:37 +02:00
ec56132c85 no aerial status message 2022-07-01 15:26:30 +02:00
3392ebe270 use virtual text for diagnostics again 2022-07-01 15:26:14 +02:00
ad480c4d35 just use all treesitter modules 2022-07-01 13:56:35 +02:00
49bb25aec6 fixed statusline 2022-07-01 13:56:06 +02:00
c27b582b89 removed some unused keymaps 2022-07-01 13:55:21 +02:00
9e2890aed9 use vim.keymap.set 2022-07-01 13:47:16 +02:00
0a31d71c0c disable default mappings for comment 2022-06-30 13:57:03 +02:00
7b776c7e9f no lazyloading of treesitter 2022-06-27 09:19:51 +02:00
1f60a85098 removed jsonc treesitter 2022-06-27 09:18:50 +02:00
688493d39d disable virtual line blame 2022-06-26 15:13:02 +02:00
b099ba7efd rework status line 2022-06-26 14:38:26 +02:00
0c66846e4e setup aerial 2022-06-26 14:32:29 +02:00
d609883ff7 set lualine theme to gruvbox 2022-06-26 14:10:53 +02:00
5ad1c4be90 fixed deprecated format call 2022-06-26 14:00:43 +02:00
5f357b0db5 load blankline after treesitter 2022-06-26 13:53:32 +02:00
0a60ff63bd updated stable snapshot 2022-06-26 13:23:05 +02:00
a1bff62966 set winbar statusline 2022-06-26 13:22:46 +02:00
3a0e386252 fixed deprecated resolved_capabilities 2022-06-26 13:15:47 +02:00
37b7a68c45 comment out some cmp sources 2022-06-26 13:01:28 +02:00
607245c47d removed incline 2022-06-26 13:01:00 +02:00
2c277ee846 add cmp treesitter 2022-06-26 12:59:50 +02:00
37d7e60eef added litee calltree keys 2022-06-07 15:24:42 +02:00
2951e86e06 fixed f5 to build all 2022-06-07 15:24:23 +02:00
228171561f use find files if there is not git repo 2022-06-01 11:47:00 +02:00
b1754cf7db remove modes.nvim 2022-05-31 14:28:06 +02:00
1f8ef76f81 Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2022-05-31 14:06:11 +02:00
9b4fcca0ce put comment to ctrl slash 2022-05-31 09:56:37 +02:00
d9f90a1f4b remove stylua because of the lsp serverr 2022-05-27 10:19:24 +02:00
5b4878f76d replace octo with litee gh 2022-05-27 10:19:03 +02:00
c6d9e5b891 add litee 2022-05-26 22:09:25 +02:00
b31bd343fa fixed code actions command 2022-05-25 11:13:26 +02:00
c6bdb676aa set yaml for clang config files 2022-05-25 11:12:36 +02:00
2bdc01b56f added clangd file 2022-05-23 15:37:11 +02:00
6eba3c6f3a added some octo keymaps 2022-05-13 15:00:21 +02:00
3b66cc0b3c fixed wrap 2022-05-13 13:41:05 +02:00
db6d89471c more commands 2022-05-13 13:40:55 +02:00
892ac617ee added incline 2022-05-13 13:40:46 +02:00
c54a515556 removed focus only from modes plugin 2022-05-11 23:35:15 +02:00
20cb51e2b5 removed tree sitter query lang 2022-05-11 17:47:15 +02:00
d6930cbb2f added octo 2022-05-11 17:46:54 +02:00
76a7aad423 set additional keymappings for us keyboard 2022-05-11 17:46:28 +02:00
c921ae0f4f format 2022-05-05 15:26:58 +02:00
8db95a1880 use something else for shada 2022-05-05 15:26:43 +02:00
4a6de72626 removed maintained from treesitter 2022-05-05 15:26:18 +02:00
6c8531b67a don't validate yaml files 2022-05-02 10:28:46 +02:00
e34744b677 set title and titlestring 2022-04-29 15:56:22 +02:00
8cafa90c01 added doskey file type in autocommands 2022-04-29 15:04:26 +02:00
2da1322e7f ignore cmake lsp for project plugin 2022-04-29 15:04:11 +02:00
c65f2c543b use command center for yanky 2022-04-20 22:54:51 +02:00
7bd0f10847 added yanky 2022-04-20 22:49:07 +02:00
2c4617f462 treesitter folding with space x :) 2022-04-20 22:18:18 +02:00
5dde3be206 reworked options 2022-04-20 21:54:55 +02:00
4fbe1c4174 use new autocommand functions 2022-04-20 21:35:50 +02:00
d7b49c4c4b use 0.7 keymappings 2022-04-20 15:14:11 +02:00
8a000f811c update to new command center format 2022-04-19 09:29:36 +02:00
7f99415c02 format my_plugins 2022-04-13 23:47:54 +02:00
257d2fffcf convert some keybindings to command center 2022-04-13 23:40:53 +02:00
3dc493ff7e command center added 2022-04-13 22:41:05 +02:00
651d1d0d2f don't lazyload luasnip 2022-04-07 20:44:35 +02:00
579cdff054 disable nvim-tree 2022-04-07 20:40:41 +02:00
96e1f3f6ed Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2022-04-05 08:28:28 +02:00
99e257dbc1 added toggleterm 2022-04-04 20:12:20 +02:00
f0f1c35740 Don't use null-ls in project nvimm 2022-04-04 20:12:20 +02:00
2425d5f29d more lua style 2022-04-04 20:12:20 +02:00
ab1de6c1de stylua 2022-04-04 20:12:20 +02:00
595a4d287b Configure lua lsp to have vim and use as global variables 2022-04-04 20:12:20 +02:00
641d2e0c9e Load cmp_luasnip after luasnip 2022-04-04 15:15:11 +02:00
1c10794866 Merge branch 'master' of https://git.freiewildbahn.de/oli/nvim 2022-04-04 14:49:13 +02:00
204f38c947 Don't show diagnostic windows if there is already a floating window 2022-04-04 14:46:22 +02:00
ee3b97648a Some lazy loading of plugins 2022-04-01 23:38:59 +02:00
4462d4af5c lazy load snippets 2022-04-01 23:15:33 +02:00
f307fb2124 Don't autoinstall groovyls 2022-04-01 23:15:25 +02:00
d23279a4a4 Fixed snippet loading 2022-03-31 20:31:59 +02:00
8220799933 Don't use neotree for buffers 2022-03-31 13:28:44 +02:00
752814db02 Added neotree 2022-03-29 13:02:25 +02:00
d57067ea70 get_setup is local 2022-03-28 23:42:05 +02:00
198141f63f removed whitespaces 2022-03-28 23:40:45 +02:00
018c25d0d7 Disable gruvbox material and setup config for gruvbox 2022-03-28 23:39:05 +02:00
04d69955d7 Fixed clangd extensions url 2022-03-28 22:58:20 +02:00
434611abf4 Move some keybinding to the plugin config file 2022-03-23 21:25:06 +01:00
f9d0bf5366 Removed unused variables in init 2022-03-23 21:18:39 +01:00
479c8686eb Move terminal to own config file 2022-03-23 21:18:03 +01:00
aa7bc38af6 Use default sorting in cmp 2022-03-17 00:11:28 +01:00
e3a6774b76 Added clangd_extensions 2022-03-16 23:55:26 +01:00
d219e43cc7 Fixed packer bootstrap 2022-03-16 23:04:13 +01:00
cb2b0e521f Added stable.json 2022-03-16 22:58:46 +01:00
c3deaa45c6 lua format 2022-03-16 22:56:51 +01:00
4c543d7f44 Added lua style file 2022-03-16 22:53:30 +01:00
8860d92ed1 Small fixes 2022-03-16 22:16:06 +01:00
a3d76bbd15 Finished all plugins 2022-03-16 21:37:13 +01:00
a1d6d33b34 move fzf native to telescope 2022-03-16 21:07:35 +01:00
fbdad999cd gitsigns, comment, cmake 2022-03-16 21:04:13 +01:00
cf9b76d0e0 nvim-tree and treesitter config to packer 2022-03-16 19:53:08 +01:00
c0aa5e03d0 More movement of setup files 2022-03-16 18:03:36 +01:00
86b8b65c99 Fixed autocommand for packer 2022-03-16 17:38:50 +01:00
61a052b960 Same for lsp and cmp 2022-03-16 17:38:38 +01:00
7e1182a11b First version of the packer plugin setup calls 2022-03-16 17:22:06 +01:00
d1b14f05c1 Floating window for packer 2022-02-28 21:20:18 +01:00
961ec74fbd Removed symbols outline 2022-02-28 20:47:25 +01:00
f8ff3b647f Added modes.nvim 2022-02-28 20:46:35 +01:00
79486cd892 set 'completeopt' to menu,menuone,noselect 2022-02-28 20:46:18 +01:00
da4f4674a5 Some lsp fixes 2022-02-28 14:31:25 +01:00
4a076eacd9 Set snapshot path of packer 2022-02-28 14:30:23 +01:00
7e40d7732f Disable the virtual text for warnings 2022-02-21 10:55:37 +01:00
b259a2ae23 Fixed the to regestry a keybinding 2022-02-21 10:55:14 +01:00
c643e834e0 Changed order of cmp sources, prefer snippets 2022-02-10 18:57:19 +01:00
ff41531888 Better leader a 2022-02-10 18:56:14 +01:00
3a700044c4 Fixed path to compile_commands.json 2022-02-10 18:56:04 +01:00
3209e01c99 More snippets 2022-02-10 18:55:49 +01:00
9bf991c537 First custom lua snippets 2022-02-10 10:55:13 +01:00
b8bca37446 No italic 2022-02-09 13:28:15 +01:00
86b5aeb691 Changed font and disabled bold 2022-02-04 09:58:23 +01:00
464644246c Only one treesitter config 2022-02-04 09:41:54 +01:00
6689c9b523 Changed git blame align to eol 2022-02-04 09:11:30 +01:00
4c5aa10996 Added dressing plugin (for cmake) 2022-02-04 09:11:10 +01:00
29b32edada changed to gruvbox 2022-02-04 09:10:56 +01:00
667e42fe57 Format 2022-02-04 09:10:33 +01:00
4dd3918382 added nvim-treesitter-textobjects 2022-02-04 09:10:20 +01:00
bec752c6b7 Small refactor 2022-02-01 15:42:50 +01:00
ab444ed7d9 Neogen fixes for doxygen 2022-02-01 15:42:30 +01:00
bd3af2a9a4 Disable cmake telescope integration 2022-02-01 13:12:25 +01:00
e72fa7324b For the moment disable previewer for files and git files 2022-02-01 13:12:11 +01:00
577a3cd1a7 Removed gitblame and neoclip 2022-02-01 13:11:53 +01:00
0d93bc8fa5 Update treesitter after packer update 2022-02-01 12:56:23 +01:00
9325519929 Dont use .gitignore for telescope files 2022-02-01 12:56:02 +01:00
71321b1d16 Enhance gruvbox theme 2022-01-31 10:58:13 +01:00
faeea7fb5f Fixed and added cmake-format 2022-01-31 10:58:13 +01:00
5c4e7a4000 Adjust lualine 2022-01-31 10:58:13 +01:00
cfff367b83 Keymapping for telescopy fuzzy find 2022-01-31 10:58:13 +01:00
25a5283cd6 Set format expr 2022-01-31 10:58:13 +01:00
3f9a7f38fb Added neogen 2022-01-29 23:45:16 +01:00
0e13e43fc3 Disable space key in normal mode 2021-12-21 22:22:08 +01:00
0e92584aaf Only set lsp keymaps if server attached 2021-12-21 22:21:54 +01:00
b7020671d7 Removed double mappings 2021-12-21 22:21:41 +01:00
31ca3a6d00 Auto install lsp servers 2021-12-21 22:07:59 +01:00
8fabdb2d07 Merge branch 'lua'
# Conflicts:
#	init.vim
2021-12-21 21:52:54 +01:00
6db33686b5 Adopt for vscode neovim plugin 2021-06-12 20:07:54 +02:00
97 changed files with 3455 additions and 630 deletions

115
.clang-tidy Normal file
View File

@ -0,0 +1,115 @@
Checks: 'readability-*,
bsl-*,
cppcoreguidelines-*,
cppcoreguidelines-prefer-member-initializer,
clang-analyzer-core.*,
clang-analyzer-core.StackAddressEscape,
bugprone-assert-side-effect,
bugprone-assignment-in-if-condition,
bugprone-branch-clone,
bugprone-copy-constructor-init,
bugprone-exception-escape,
bugprone-forward-declaration-namespace,
bugprone-incorrect-roundings,
bugprone-infinite-loop,
bugprone-integer-division,
bugprone-macro-parentheses,
bugprone-multiple-statement-macro,
bugprone-parent-virtual-call,
bugprone-redundant-branch-condition,
bugprone-reserved-identifier,
bugprone-sizeof-container,
bugprone-sizeof-expression,
bugprone-string-constructor,
bugprone-string-integer-assignment,
bugprone-suspicious-enum-usage,
bugprone-suspicious-include,
bugprone-suspicious-missing-comma,
bugprone-suspicious-semicolon,
bugprone-swapped-arguments,
bugprone-terminating-continue,
bugprone-too-small-loop-variable,
bugprone-use-after-move,
misc-redundant-expression,
misc-unused-parameters,
misc-const-correctness,
misc-confusable-identifiers,
misc-definitions-in-headers,
misc-header-include-cycle,
misc-include-cleaner,
misc-misplaced-const,
misc-static-assert,
modernize-use-default-member-init,
modernize-loop-convert,
modernize-min-max-use-initializer-list,
modernize-pass-by-value,
modernize-return-braced-init-list,
modernize-use-default-member-init,
modernize-use-designated-initializers,
modernize-use-equals-default,
modernize-use-equals-delete,
modernize-use-nullptr,
modernize-use-override,
modernize-use-starts-ends-with,
modernize-use-using,
readability-identifier-naming,
readability-duplicate-include,
readability-braces-around-statements,
readability-implicit-bool-conversion,
readability-inconsistent-declaration-parameter-name,
readability-make-member-function-const,
readability-misleading-indentation,
readability-redundant-declaration,
readability-redundant-preprocessor,
readability-redundant-member-init,
readability-simplify-boolean-expr,
readability-static-accessed-through-instance,
readability-uppercase-literal-suffix,
readability-identifier-naming,
readability-duplicate-include,
readability-braces-around-statements,
readability-implicit-bool-conversion,
readability-inconsistent-declaration-parameter-name,
readability-make-member-function-const,
readability-const-return-type,
readability-non-const-parameter,
hicpp-signed-bitwise,
-readability-avoid-const-params-in-decls,
-readability-function-cognitive-complexity,
-readability-magic-numbers,
-readability-identifier-length,
-cppcoreguidelines-explicit-virtual-functions,
-cppcoreguidelines-init-variables,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-owning-memory,
-cppcoreguidelines-pro-bounds-constant-array-index,
-cppcoreguidelines-special-member-functions,
-cppcoreguidelines-avoid-c-arrays,
-cppcoreguidelines-pro-type-reinterpret-cast,
-cppcoreguidelines-avoid-non-const-global-variables,
-cppcoreguidelines-pro-bounds-pointer-arithmetic'
CheckOptions:
- key: readability-identifier-naming.NamespaceCase
value: lower_case
- key: readability-identifier-naming.ClassCase
value: CamelCase
- key: readability-identifier-naming.PrivateMemberPrefix
value: m_
- key: readability-identifier-naming.StructCase
value: CamelCase
- key: readability-identifier-naming.FunctionCase
value: camelBack
- key: readability-identifier-naming.VariableCase
value: camelBack
- key: readability-identifier-naming.GlobalConstantCase
value: UPPER_CASE
- key: readability-identifier-naming.EnumConstant
value: UPPER_CASE
- key: bugprone-argument-comment.StrictMode
value: 1
- key: bugprone-exception-escape.FunctionsThatShouldNotThrow
value: WinMain,SDL_main
- key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
value: 1

71
.clangd Normal file
View File

@ -0,0 +1,71 @@
Diagnostics:
UnusedIncludes: Strict
ClangTidy:
Add:
- cppcoreguidelines-*
- clang-analyzer-core.*
- bugprone-assert-side-effect
- bugprone-branch-clone
- bugprone-copy-constructor-init
- bugprone-exception-escape
- bugprone-forward-declaration-namespace
- bugprone-incorrect-roundings
- bugprone-infinite-loop
- bugprone-integer-division
- bugprone-macro-parentheses
- bugprone-multiple-statement-macro
- bugprone-parent-virtual-call
- bugprone-redundant-branch-condition
- bugprone-reserved-identifier
- bugprone-sizeof-container
- bugprone-sizeof-expression
- bugprone-string-constructor
- bugprone-string-integer-assignment
- bugprone-suspicious-enum-usage
- bugprone-suspicious-include
- bugprone-suspicious-missing-comma
- bugprone-suspicious-semicolon
- bugprone-swapped-arguments
- bugprone-terminating-continue
- bugprone-too-small-loop-variable
- llvm-namespace-comment
- misc-definitions-in-headers
- misc-redundant-expression
- misc-unused-parameters
- hicpp-signed-bitwise
- readability-identifier-naming
- readability-duplicate-include
- readability-braces-around-statements
- readability-implicit-bool-conversion
- readability-inconsistent-declaration-parameter-name
- readability-make-member-function-const
- readability-misleading-indentation
- readability-redundant-declaration
- readability-redundant-preprocessor
- readability-redundant-member-init
- readability-simplify-boolean-expr
- readability-static-accessed-through-instance
- readability-uppercase-literal-suffix
Remove:
- readability-avoid-const-params-in-decls
- readability-function-cognitive-complexity
- readability-magic-numbers
- readability-identifier-length
- cppcoreguidelines-explicit-virtual-functions
- cppcoreguidelines-init-variables
- cppcoreguidelines-non-private-member-variables-in-classes
- cppcoreguidelines-avoid-magic-numbers
- cppcoreguidelines-owning-memory
- cppcoreguidelines-pro-bounds-constant-array-index
- cppcoreguidelines-special-member-functions
- cppcoreguidelines-avoid-c-arrays
- cppcoreguidelines-pro-type-reinterpret-cast
CheckOptions:
readability-identifier-naming.FunctionCase: camelBack
readability-identifier-naming.NamespaceCase: lower_case
readability-identifier-naming.ClassCase: CamelCase
readability-identifier-naming.PrivateMemberPrefix: m_
readability-identifier-naming.StructCase: CamelCase
readability-identifier-naming.VariableCase: camelBack
readability-identifier-naming.GlobalConstantCase: UPPER_CASE
readability-identifier-naming.EnumConstant: UPPER_CASE

4
.gitignore vendored
View File

@ -5,3 +5,7 @@ vim.bundle
plugged
rplugin.vim
plugin/packer_compiled.lua
venv_debugpy
.luarc.json
.luarc.json
Session.vim

View File

@ -1,5 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
"Lua.diagnostics.disable": ["undefined-global"]
}

5
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,5 @@
repos:
- repo: https://github.com/JohnnyMorganz/stylua
rev: v2.0.2
hooks:
- id: stylua-system

View File

@ -0,0 +1,7 @@
return {
settings = {
basedpyright = {
typeCheckingMode = 'standard',
},
},
}

21
after/lsp/clangd.lua Normal file
View File

@ -0,0 +1,21 @@
return {
cmd = {
'clangd',
'--compile-commands-dir=build_nvim',
'--query-driver',
'/opt/cortex-a78-2022.08-gcc12.1-linux5.15/bin/aarch64-linux-gnu-g*',
'--clang-tidy',
'--background-index',
'--use-dirty-headers',
'--completion-style=detailed',
},
root_markers = {
'.clangd',
'.clang-tidy',
'.clang-format',
'compile_flags.txt',
'configure.ac',
'.git',
'build_nvim',
},
}

22
after/lsp/lua_ls.lua Normal file
View File

@ -0,0 +1,22 @@
return {
settings = {
Lua = {
workspace = {
checkThirdParty = false,
},
completion = {
callSnippet = 'Replace',
},
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
enable = false,
},
diagnostics = {
disable = { 'missing-fields' },
},
format = {
enable = false,
},
},
},
}

7
after/lsp/yamlls.lua Normal file
View File

@ -0,0 +1,7 @@
return {
settings = {
yaml = {
validate = true,
},
},
}

1
after/syntax/norg.lua Normal file
View File

@ -0,0 +1 @@
vim.opt_local.conceallevel = 3

4
ftplugin/markdown.lua Normal file
View File

@ -0,0 +1,4 @@
local opts = { noremap = true, silent = false }
vim.keymap.set('n', '<CR>', vim.lsp.buf.definition, opts)
vim.opt_local.conceallevel = 0

141
init.lua
View File

@ -1,135 +1,8 @@
local cmd = vim.cmd -- to execute Vim commands e.g. cmd('pwd')
local fn = vim.fn -- to call Vim functions e.g. fn.bufnr()
local g = vim.g -- a table to access global variables
local opt = vim.opt -- to set options
local utils = require('utils')
-------------------- PACKER --------------------------------
-- Auto install packer.nvim if not exists
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
vim.cmd 'packadd packer.nvim'
vim.g.mapleader = ','
vim.g.maplocalleader = ','
if not vim.g.vscode then
require('config.lazy')
require('my_keymappings')
require('my_autocommands')
require('config.options')
end
vim.cmd [[packadd packer.nvim]]
-------------------- EXTERNAL ------------------------------
require('my_plugins')
require('my_keymappings')
require('my_options')
require("my_autocommands")
-- plugins
require('my_telescope')
require('my_lspinstall')
require('my_cmp')
-------------------- TREE-SITTER ---------------------------
require('nvim-treesitter.configs').setup({
ensure_installed = 'maintained',
highlight = {
enable = true
}
})
-------------------- GITSIGNS ------------------------------
require('gitsigns').setup()
-------------------- NVIM-TREE -----------------------------
require('nvim-tree').setup({
auto_close = true,
update_cwd = true,
update_to_buf_dir = {
-- enable the feature
enable = true,
-- allow to open the tree if it was previously closed
auto_open = false,
},
update_focused_file = {
enable = true,
update_cwd = false,
ignore_list = {}
},
diagnostics = {
enable = true,
icons = {
hint = "",
info = "",
warning = "",
error = "",
}
},
})
utils.map('n', '<leader>tt', '<cmd>NvimTreeToggle<CR>')
g.nvim_tree_highlight_opened_files = 1
g.nvim_tree_respect_buf_cwd = 1
-------------------- COMMENTED -----------------------------
require('Comment').setup({
toggler = {
---line-comment toggle
line = '<leader>cc',
},
opleader = {
---line-comment opfunc mapping
line = '<leader>c',
},
})
-------------------- CMAKE ---------------------------------
require('telescope').load_extension('cmake')
require('cmake').setup({
parameters_file = 'neovim.json', -- JSON file to store information about selected target, run arguments and build type.
build_dir = '{cwd}/build_nvim', -- Build directory. The expressions `{cwd}`, `{os}` and `{build_type}` will be expanded with the corresponding text values.
})
utils.map('n', '<F5>', ':CMake build<CR>:copen<CR>')
-- msbuild errorformat
opt.errorformat:append("\\ %#%f(%l\\\\\\,%c):\\ %m")
-- cl.exe errorformat
-- o.errorformat:append('\ %#%f(%l) : %#%t%[A-z]%# %m')
-------------------- NEOCLIP -------------------------------
require('neoclip').setup({
default_register = '+',
})
require('telescope').load_extension('neoclip')
-------------------- LUALINE -------------------------------
require('lualine').setup {
options = {theme = 'gruvbox'},
sections = {lualine_c = {'getcwd', 'filename', 'nvim_treesitter#statusline'},
}
}
-------------------- PROJECT -------------------------------
require("project_nvim").setup {
silent_chdir = true,
}
require('telescope').load_extension('projects')
utils.map('n', '<space>p', '<cmd>Telescope projects<cr>')
-------------------- TS-RAINBOW ----------------------------
require'nvim-treesitter.configs'.setup {
rainbow = {
enable = true,
extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean
max_file_lines = nil, -- Do not enable for files with more than n lines, int
-- colors = {}, -- table of hex strings
-- termcolors = {} -- table of colour name strings
}
}
-------------------- LUASNIP -------------------------------
require("luasnip.loaders.from_vscode").load()
-------------------- AUTOPAIRS -----------------------------
require('nvim-autopairs').setup{}
-------------------- FZF NATIVE ----------------------------
require('telescope').load_extension('fzf')
-------------------- TERMINAL ------------------------------
require('nvim-terminal').setup({
toggle_keymap = '<leader>z',
})
-------------------- INDENT-BLANKLINE ----------------------
opt.listchars:append("eol:↴")
-- opt.listchars:append("space: ")
opt.listchars:append("trail: ")
opt.listchars:append("tab:→ ")
require("indent_blankline").setup {
show_end_of_line = true,
use_treesitter = true,
show_current_context = true,
context_patterns = {'class', 'function', 'method', 'block', '^if', '^for', '^while'},
}

82
lazy-lock.json Normal file
View File

@ -0,0 +1,82 @@
{
"Comment.nvim": { "branch": "master", "commit": "e51f2b142d88bb666dcaa77d93a07f4b419aca70" },
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
"astrotheme": { "branch": "main", "commit": "f12dcf64b1f9a05839c3ac2146f550f43bae9dab" },
"avante.nvim": { "branch": "main", "commit": "adae032f5fbc611d59545792d3c5bb1c9ddc3fdb" },
"bamboo.nvim": { "branch": "master", "commit": "97124a0b81f886abc0d666ebec512b92425d67b6" },
"blink.cmp": { "branch": "main", "commit": "49f211fe5d729df53df4c042d7c3464cf47d199e" },
"cmake-tools.nvim": { "branch": "master", "commit": "1ee065c33ca777c0e03cd7c358010202ee70bb88" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
"cmp-cmdline-history": { "branch": "master", "commit": "003573b72d4635ce636234a826fa8c4ba2895ffe" },
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" },
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"codecompanion.nvim": { "branch": "main", "commit": "d19670a44c35e9ba0674cc7a25ff3b8f22bbf062" },
"codeium.nvim": { "branch": "main", "commit": "821b570b526dbb05b57aa4ded578b709a704a38a" },
"conform.nvim": { "branch": "master", "commit": "374aaf384e2e841607b8e2fe63fa3ad01d111c91" },
"copilot-cmp": { "branch": "master", "commit": "15fc12af3d0109fa76b60b5cffa1373697e261d1" },
"copilot.lua": { "branch": "master", "commit": "2fe34db04570f6c47db0b752ca421a49b7357c03" },
"dial.nvim": { "branch": "master", "commit": "2c7e2750372918f072a20f3cf754d845e143d7c9" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
"everforest-nvim": { "branch": "main", "commit": "2eb7c348f880ba93de4d98cae049c9441f5d4d49" },
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"fzf-lua": { "branch": "main", "commit": "b45881a2043d96506ba628f3bc65a4594b179c4e" },
"gitsigns.nvim": { "branch": "main", "commit": "43b0c856ae5f32a195d83f4a27fe21d63e6c966c" },
"grug-far.nvim": { "branch": "main", "commit": "78c8d27c6f3300bfa92bb535236732d8e9bcb614" },
"gruvbox-baby": { "branch": "main", "commit": "bd52e62d8134647090108189e69c8b3cd18bdbbf" },
"gruvbox-flat.nvim": { "branch": "master", "commit": "1dc35c81da30d297f82d438ff362cf1b01d36782" },
"gruvbox.nvim": { "branch": "main", "commit": "cc202a7c5e5ffca06f92a04073275dec371cbfe3" },
"img-clip.nvim": { "branch": "main", "commit": "08a02e14c8c0d42fa7a92c30a98fd04d6993b35d" },
"iron.nvim": { "branch": "master", "commit": "c005b01b779f1b6c038e11248db403bb3df6a7f3" },
"kanagawa.nvim": { "branch": "master", "commit": "4de88d695634a8776c687af8e7436cfa074aa0c0" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
"lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" },
"lualine-diagnostic-message": { "branch": "master", "commit": "e8244c4d1f088e21bb05021f164ed903093b168b" },
"lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" },
"luvit-meta": { "branch": "main", "commit": "1df30b60b1b4aecfebc785aa98943db6c6989716" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "62f821a14e20f3f2ee358cd44d0b3d299a508e72" },
"mason.nvim": { "branch": "main", "commit": "7c7318e8bae7e3536ef6b9e86b9e38e74f2e125e" },
"material.nvim": { "branch": "main", "commit": "c8ff153d2c2b22f8b2c9bcce0d741ab55c00cfed" },
"mini.ai": { "branch": "main", "commit": "e139eb1101beb0250fea322f8c07a42f0f175688" },
"mini.sessions": { "branch": "main", "commit": "71c9ae596664ac110560d27eb928fc24e22bc53d" },
"mini.surround": { "branch": "main", "commit": "aa5e245829dd12d8ff0c96ef11da28681d6049aa" },
"monokai-pro.nvim": { "branch": "master", "commit": "31bad737610ec211de086d373c73025f39de93cb" },
"neogen": { "branch": "main", "commit": "d7f9461727751fb07f82011051338a9aba07581d" },
"neogit": { "branch": "master", "commit": "a58ab1befb5608b8ff36a2286360df8263791c1c" },
"neotest": { "branch": "master", "commit": "2d9011396c43fa1d40221e6b6c3be5eb001427a9" },
"neotest-python": { "branch": "master", "commit": "a2861ab3c9a0bf75a56b11835c2bfc8270f5be7e" },
"nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-dap": { "branch": "master", "commit": "8df427aeba0a06c6577dc3ab82de3076964e3b8d" },
"nvim-dap-python": { "branch": "master", "commit": "34282820bb713b9a5fdb120ae8dd85c2b3f49b51" },
"nvim-dap-repl-highlights": { "branch": "master", "commit": "a7512fc0a0de0c0be8d58983939856dda6f72451" },
"nvim-dap-ui": { "branch": "master", "commit": "73a26abf4941aa27da59820fd6b028ebcdbcf932" },
"nvim-highlight-colors": { "branch": "main", "commit": "b42a5ccec7457b44e89f7ed3b3afb1b375bb2093" },
"nvim-lint": { "branch": "master", "commit": "9dfb77ef6c5092a19502883c02dc5a02ec648729" },
"nvim-lspconfig": { "branch": "master", "commit": "61e5109c8cf24807e4ae29813a3a82b31821dd45" },
"nvim-navic": { "branch": "master", "commit": "f887d794a0f4594882814d7780980a949200a238" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-rooter.lua": { "branch": "main", "commit": "7689d05e8ab95acb4b24785253d913c0aae18be9" },
"nvim-treesitter": { "branch": "master", "commit": "28d480e0624b259095e56f353ec911f9f2a0f404" },
"nvim-web-devicons": { "branch": "master", "commit": "f1420728f59843eb2ef084406b3d0201a0a0932d" },
"oil.nvim": { "branch": "master", "commit": "685cdb4ffa74473d75a1b97451f8654ceeab0f4a" },
"overseer.nvim": { "branch": "master", "commit": "72c68aab0358c92f451168b704c411c4a3e3410e" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "55ad4fb76ab68460f700599b7449385f0c4e858e" },
"render-markdown.nvim": { "branch": "main", "commit": "935c2c70c296d87ed1bcce9ce667c239c9c982b5" },
"rustaceanvim": { "branch": "master", "commit": "cb532f57c1ed2463c66df683468eb3994e554002" },
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
"which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" },
"yanky.nvim": { "branch": "main", "commit": "04775cc6e10ef038c397c407bc17f00a2f52b378" }
}

27
lua/config/lazy.lua Normal file
View File

@ -0,0 +1,27 @@
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
'git',
'clone',
'--filter=blob:none',
'https://github.com/folke/lazy.nvim.git',
'--branch=stable', -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require('lazy').setup({
defaults = {
version = false,
},
spec = {
{ import = 'plugins' },
{ import = 'themes' },
},
change_detection = {
-- automatically check for config file changes and reload the ui
enabled = true,
notify = false, -- get a notification when changes are found
},
})

149
lua/config/options.lua Normal file
View File

@ -0,0 +1,149 @@
vim.cmd('filetype plugin indent on')
vim.cmd('language en_US.utf-8')
local opt = vim.opt
local indent = 2
opt.termguicolors = true -- Enable colors in terminal
opt.hlsearch = true --Set highlight on search
opt.number = true --Make line numbers default
opt.listchars:append('eol:↴')
-- opt.listchars:append("space: ")
-- opt.listchars:append 'space:⋅'
opt.listchars:append('trail: ')
opt.listchars:append('tab:→ ')
opt.relativenumber = false --Make relative number default
opt.mouse = 'a' --Enable mouse mode
opt.breakindent = true --Enable break indent
opt.undofile = true --Save undo history
opt.ignorecase = true --Case insensitive searching unless /C or capital in search
opt.smartcase = true -- Smart case
opt.updatetime = 300 --Decrease update time
opt.signcolumn = 'yes' -- Always show sign column
opt.timeoutlen = 300 -- Time in milliseconds to wait for a mapped sequence to complete.
opt.ttimeoutlen = 10
opt.showmode = false -- Do not need to show the mode. We use the statusline instead.
opt.scrolloff = 999 -- Lines of context
opt.joinspaces = false -- No double spaces with join after a dot
opt.showmatch = true -- Show matching braces
opt.wrap = true -- When on, lines longer than the width of the window will wrap and displaying continues on the next line
opt.list = true
opt.hidden = true
opt.winborder = 'none'
opt.scrolloff = 4
opt.shiftround = true
opt.relativenumber = false
opt.splitbelow = true
opt.splitright = true
opt.wildmode = 'longest:full,full'
opt.pumheight = 15
opt.splitbelow = true
opt.splitright = true
opt.shiftwidth = indent
opt.tabstop = indent
if vim.fn.has('wsl') == 1 then
vim.g.clipboard = {
name = 'WslClipboard',
copy = {
['+'] = 'clip.exe',
['*'] = 'clip.exe',
},
paste = {
['+'] = 'powershell.exe -c [Console]::Out.Write($(Get-Clipboard -Raw).tostring().replace("`r", ""))',
['*'] = 'powershell.exe -c [Console]::Out.Write($(Get-Clipboard -Raw).tostring().replace("`r", ""))',
},
cache_enabled = 0,
}
-- opt.guifont = 'Hack Nerd Font Mono:h10'
opt.guifont = 'RobotoMono Nerd Font:h10'
elseif vim.loop.os_uname().sysname == 'Linux' then
opt.guifont = 'Iosevka NFM:h11'
if vim.env.SSH_TTY or vim.env.SSH_CLIENT or vim.env.SSH_CONNECTION then
function no_paste(reg)
return function(lines)
-- Do nothing! We can't paste with OSC52
end
end
vim.g.clipboard = {
name = 'OSC 52',
copy = {
['+'] = require('vim.ui.clipboard.osc52').copy('+'),
['*'] = require('vim.ui.clipboard.osc52').copy('*'),
},
paste = {
-- ['+'] = require('vim.ui.clipboard.osc52').paste('+'),
-- ['*'] = require('vim.ui.clipboard.osc52').paste('*'),
['+'] = no_paste('+'), -- Pasting disabled
['*'] = no_paste('*'), -- Pasting disabled
},
}
end
else
-- opt.guifont = 'Hack Nerd Font:h10'
-- opt.guifont = 'JetBrainsMono Nerd Font:h10'
-- opt.guifont = 'FiraCode Nerd Font:h10'
-- opt.guifont = 'RobotoMono Nerd Font:h10'
opt.guifont = 'IosevkaTerm Nerd Font Mono:h11'
-- opt.guifont = 'Cousine Nerd Font Mono:h10'
-- opt.guifont = 'DroidSansM Nerd Font Propo:h10'
-- opt.guifont = 'AnonymicePro Nerd Font:h11'
-- opt.guifont = 'SauceCodePro Nerd Font:h10'
-- opt.guifont = 'Monoid Nerd Font Propo:h10'
end
opt.swapfile = false
opt.backup = false
opt.spelllang = 'en'
opt.completeopt = 'menu,menuone,noselect'
opt.expandtab = true
opt.smartindent = true
opt.title = true
opt.titlestring = '%(%{fnamemodify(getcwd(),":t")}%) Neovim'
opt.laststatus = 3 -- for lualine
opt.background = 'dark'
-- go to previous/next line with h,l,left arrow and right arrow
-- when cursor reaches end/beginning of line
-- opt.whichwrap:append('<>[]hl')
-- disable nvim intro
opt.shortmess:append('sI')
-- Treesitter based folding
opt.foldlevel = 20
opt.foldmethod = 'expr'
opt.foldexpr = 'nvim_treesitter#foldexpr()'
opt.foldexpr = 'nvim_treesitter#foldexpr()'
vim.diagnostic.config({
signs = {
text = {
[vim.diagnostic.severity.ERROR] = '', -- Nerd Font Error Icon
[vim.diagnostic.severity.WARN] = '', -- Nerd Font Warning Icon
[vim.diagnostic.severity.INFO] = '', -- Nerd Font Info Icon
[vim.diagnostic.severity.HINT] = '', -- Nerd Font Hint Icon (example)
},
-- Define the highlight group to use for the sign text for each severity
texthl = {
[vim.diagnostic.severity.ERROR] = 'DiagnosticSignError',
[vim.diagnostic.severity.WARN] = 'DiagnosticSignWarn',
[vim.diagnostic.severity.INFO] = 'DiagnosticSignInfo',
[vim.diagnostic.severity.HINT] = 'DiagnosticSignHint',
},
-- Optional: Highlight the line number column
numhl = {
[vim.diagnostic.severity.ERROR] = 'DiagnosticLineNrError',
-- Add others for WARN, INFO, HINT if desired
},
-- Optional: Highlight the whole line
linehl = {
-- Define highlight groups like 'DiagnosticLineError', 'DiagnosticLineWarn', etc.
[vim.diagnostic.severity.ERROR] = 'DiagnosticLineError',
},
},
-- Other diagnostic configurations (optional examples)
virtual_text = false,
virtual_lines = false,
underline = true, -- Enable underlining diagnostics
update_in_insert = false, -- Don't update diagnostics in insert mode
severity_sort = true, -- Sort diagnostics by severity
})

View File

@ -1,45 +1,65 @@
function nvim_create_augroups(definitions)
for group_name, definition in pairs(definitions) do
vim.cmd('augroup ' .. group_name)
vim.cmd('autocmd!')
for _, def in ipairs(definition) do
local command = table.concat(vim.tbl_flatten{'autocmd', def}, ' ')
vim.cmd(command)
local api = vim.api
-- Highlight on yank
local yankGrp = api.nvim_create_augroup('YankHighlight', { clear = true })
api.nvim_create_autocmd('TextYankPost', {
command = 'silent! lua vim.highlight.on_yank()',
group = yankGrp,
})
vim.filetype.add({
extension = {
simvis = 'xml',
manifest = 'xml',
simcfg = 'xml',
simcon = 'xml',
simudex = 'xml'
},
filename = {
['JenkinsFile'] = 'groovy',
['SConstruct'] = 'python',
['SConscript'] = 'python',
['doskey'] = 'dosini',
['.clangd'] = 'yaml',
['.clang-tidy'] = 'yaml',
},
})
-- Read and write shada file
api.nvim_create_autocmd({ 'FocusLost' }, { command = [[wshada]] })
-- go to last loc when opening a buffer
-- api.nvim_create_autocmd(
-- 'BufReadPost',
-- { command = [[if line("'\"") > 1 && line("'\"") <= line("$") | execute "normal! g`\"" | endif]] }
-- )
-- When editing a file, always jump to the last known cursor position.
-- Don't do it when the position is invalid, when inside an event handler
-- (happens when dropping a file on gvim) and for a commit message (it's
-- likely a different one than last time).
local userGrp = api.nvim_create_augroup('UserGroup', { clear = true })
vim.api.nvim_create_autocmd('BufReadPost', {
group = userGrp,
callback = function(args)
local valid_line = vim.fn.line([['"]]) >= 1 and vim.fn.line([['"]]) < vim.fn.line('$')
local not_commit = vim.b[args.buf].filetype ~= 'commit'
if valid_line and not_commit then
vim.cmd([[normal! g`"]])
end
vim.cmd('augroup END')
end
end
end,
})
local autocmds = {
packer = {
{ 'BufWritePost', 'plugins.lua', 'PackerCompile' };
};
restore_cursor = {
{ 'BufRead', '*', [[call setpos(".", getpos("'\""))]] };
};
save_shada = {
{'FocusGained,FocusLost', '*', 'rshada|wshada'};
};
resize_windows_proportionally = {
{ 'VimResized', '*', ':wincmd =' };
};
lua_highlight = {
{ 'TextYankPost', '*', [[silent! lua vim.highlight.on_yank() {higroup='IncSearch', timeout=400}]] };
};
file_type = {
{'BufRead,BufNewFile', '*.simvis', 'set filetype=xml'};
{'BufRead,BufNewFile', '*.simcfg,*.simcon,*.simudex', 'set filetype=cfg'};
{'BufRead,BufNewFile', 'Jenkinsfile*', 'set filetype=groovy'};
{'BufRead,BufNewFile', '*.manifest', 'set filetype=xml'};
{'BufRead,BufNewFile', 'SConstruct,SConscript', 'set filetype=python'};
};
file_changed = {
{'BufEnter,FocusGained', '*', 'checktime'};
};
no_auto_comment = {
{'BufEnter', '*', 'set fo-=c fo-=r fo-=o'}
}
}
-- Check if we need to reload the file when it changed
api.nvim_create_autocmd({ 'FocusGained', 'BufEnter' }, { command = [[if !bufexists("[Command Line]") | checktime | endif]] })
nvim_create_augroups(autocmds)
-- windows to close with "q"
api.nvim_create_autocmd('FileType', { pattern = { 'help', 'startuptime', 'qf', 'lspinfo' }, command = [[nnoremap <buffer><silent> q :close<CR>]] })
api.nvim_create_autocmd('FileType', { pattern = 'man', command = [[nnoremap <buffer><silent> q :quit<CR>]] })
-- don't auto comment new line
api.nvim_create_autocmd('BufEnter', { command = [[set formatoptions-=cro]] })
-- Keep window ratio when resize
api.nvim_create_autocmd('VimResized', { command = [[wincmd =]] })

View File

@ -1,118 +0,0 @@
local cmp = require('cmp')
local luasnip = require("luasnip")
local t = function(str)
return vim.api.nvim_replace_termcodes(str, true, true, true)
end
local check_back_space = function()
local col = vim.fn.col(".") - 1
return col == 0 or vim.fn.getline("."):sub(col, col):match("%s") ~= nil
end
cmp.setup {
formatting = {
format = function(entry, vim_item)
-- fancy icons and a name of kind
vim_item.kind = require("lspkind").presets.default[vim_item.kind] ..
" " .. vim_item.kind
-- set a name for each source
vim_item.menu = ({
buffer = "[Buffer]",
nvim_lsp = "[LSP]",
ultisnips = "[UltiSnips]",
nvim_lua = "[Lua]",
cmp_tabnine = "[TabNine]",
look = "[Look]",
path = "[Path]",
spell = "[Spell]",
calc = "[Calc]",
emoji = "[Emoji]"
})[entry.source.name]
return vim_item
end
},
mapping = {
['<Up>'] = cmp.mapping(cmp.mapping.select_prev_item(), { 'i', 'c', 's'}),
['<Down>'] = cmp.mapping(cmp.mapping.select_next_item(), { 'i', 'c', 's' }),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c', 's' }),
['<C-e>'] = cmp.mapping(cmp.mapping.close(), { 'i', 'c', 's' }),
['<CR>'] = cmp.mapping({
i = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true }),
c = cmp.mapping.confirm({ select = false }),
s = cmp.mapping.confirm({ select = false }),
}),
["<Tab>"] = cmp.mapping(function(fallback)
if luasnip.expand_or_jumpable() then
vim.api.nvim_feedkeys(t("<Plug>luasnip-expand-or-jump"), "", true)
else
fallback()
end
end, {
"i",
"s",
}),
["<S-Tab>"] = cmp.mapping(function(fallback)
if luasnip.jumpable(-1) then
vim.api.nvim_feedkeys(t("<Plug>luasnip-jump-prev"), "", true)
else
fallback()
end
end, {
"i",
"s",
}),
},
snippet = {
expand = function(args)
require'luasnip'.lsp_expand(args.body)
end
},
sources = {
{name = 'nvim_lsp'}, {name = 'buffer'}, {name = "luasnip"},
{name = "nvim_lua"}, {name = "look"}, {name = "path"},
{name = 'cmp_tabnine'}, {name = "calc"}, {name = "spell"},
{name = "emoji"}
},
completion = {completeopt = 'menu,menuone,noinsert, noselect'},
-- experimental = { native_menu = true }
}
-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline('/', {
sources = {
{ name = 'buffer' }
},
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
}, {
{ name = 'buffer' }
}),
})
-- Autopairs
--require("nvim-autopairs.completion.cmp").setup({
-- map_cr = true,
-- map_complete = true,
-- auto_select = true
--})
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = '' } }))
-- TabNine
--local tabnine = require('cmp_tabnine.config')
--tabnine:setup({max_lines = 1000, max_num_results = 20, sort = true})
-- Database completion
vim.api.nvim_exec([[
autocmd FileType sql,mysql,plsql lua require('cmp').setup.buffer({ sources = {{ name = 'vim-dadbod-completion' }} })
]], false)

View File

@ -1,90 +1,85 @@
local utils = require('utils')
vim.g.mapleader = ','
-- Paste from clipboard
utils.map('n', '<leader>p', '"+p')
utils.map('n', '<leader>P', '"+P')
utils.map('v', '<leader>p', '"+p')
utils.map('v', '<leader>P', '"+P')
-- Yank to clipboard
utils.map('v', '<leader>y', '"+y')
utils.map('n', '<leader>Y', '"+yg_')
utils.map('n', '<leader>y', '"+y')
utils.map('n', '<leader>yy', '"+yy')
local opts = { noremap = true, silent = true }
-- Tabs
utils.map('n', '<F2>', ':tabnew .<CR>', { noremap = true, silent = true })
utils.map('i', '<F2>', '<Esc>:tabnew .<CR>', { noremap = true, silent = true })
-- utils.map('n', '<S-Right>', ':BufferLineCycleNext<CR>')
-- utils.map('n', '<S-Left>', ':BufferLineCyclePrev<CR>')
utils.map('n', '<S-Right>', ':tabnext<CR>', { noremap = true, silent = true })
utils.map('n', '<S-Left>', ':tabprevious<CR>', { noremap = true, silent = true })
vim.keymap.set('n', '<S-Right>', ':tabnext<CR>', opts)
vim.keymap.set('n', '<S-Left>', ':tabprevious<CR>', opts)
vim.keymap.set('n', '<S-l>', ':tabnext<CR>', opts)
vim.keymap.set('n', '<S-h>', ':tabprevious<CR>', opts)
-- Split movement
utils.map('n', '<A-Up>', ':wincmd k<CR>', { noremap = true, silent = true })
utils.map('n', '<A-Down>', ':wincmd j<CR>', { noremap = true, silent = true })
utils.map('n', '<A-Left>', ':wincmd h<CR>', { noremap = true, silent = true })
utils.map('n', '<A-Right>', ':wincmd l<CR>', { noremap = true, silent = true })
-- Open a new vertical split window with Ctrl - F2
utils.map('n', '<C-F2>', ':vsplit .<CR>', { noremap = true, silent = true })
utils.map('i', '<C-F2>', '<Esc>:vsplit .<CR>', { noremap = true, silent = true })
-- Open a new horizontal split window with Shift - F2
utils.map('n', '<S-F2>', ':split .<CR>', { noremap = true, silent = true })
utils.map('i', '<S-F2>', '<Esc>:split .<CR>', { noremap = true, silent = true })
vim.keymap.set('n', '<A-Up>', ':wincmd k<CR>', opts)
vim.keymap.set('n', '<A-Down>', ':wincmd j<CR>', opts)
vim.keymap.set('n', '<A-Left>', ':wincmd h<CR>', opts)
vim.keymap.set('n', '<A-Right>', ':wincmd l<CR>', opts)
vim.keymap.set('n', '<A-k>', ':wincmd k<CR>', opts)
vim.keymap.set('n', '<A-j>', ':wincmd j<CR>', opts)
vim.keymap.set('n', '<A-h>', ':wincmd h<CR>', opts)
vim.keymap.set('n', '<A-l>', ':wincmd l<CR>', opts)
utils.map('n', '<C-S>', ':wa<CR>')
vim.keymap.set('n', '<C-S>', ':wa | wshada<CR>')
-- Linewrap and jumping
utils.map('n', 'k', 'gk')
utils.map('n', 'j', 'gj')
utils.map('n', '0', 'g0')
utils.map('n', '$', 'g$')
utils.map('n', '<Up>', 'gk')
utils.map('n', '<Down>', 'gj')
utils.map('n', '<Home>', 'g<Home>')
utils.map('n', '<End>', 'g<End>')
utils.map('v', 'k', 'gk')
utils.map('v', 'j', 'gj')
utils.map('v', '0', 'g0')
utils.map('v', '$', 'g$')
utils.map('v', '<Up>', 'gk')
utils.map('v', '<Down>', 'gj')
utils.map('v', '<Home>', 'g<Home>')
utils.map('v', '<End>', 'g<End>')
vim.keymap.set({ 'n', 'x' }, 'k', 'gk', opts)
vim.keymap.set({ 'n', 'x' }, 'j', 'gj', opts)
vim.keymap.set({ 'n', 'x' }, '0', 'g0', opts)
vim.keymap.set({ 'n', 'x' }, '$', 'g$', opts)
vim.keymap.set({ 'n', 'x' }, '<Up>', 'gk', opts)
vim.keymap.set({ 'n', 'x' }, '<Down>', 'gj', opts)
vim.keymap.set({ 'n', 'x' }, '<Home>', 'g<Home>', opts)
vim.keymap.set({ 'n', 'x' }, '<End>', 'g<End>', opts)
vim.keymap.set({ 'i' }, '<C-k>', '<C-o>gk', opts)
vim.keymap.set({ 'i' }, '<C-h>', '<Left>', opts)
vim.keymap.set({ 'i' }, '<C-l>', '<Right>', opts)
vim.keymap.set({ 'i' }, '<C-j>', '<C-o>gj', opts)
-- vim.keymap.set({'n', 'x', 'i'}, '<Up>', '')
-- vim.keymap.set({'n', 'x', 'i'}, '<Down>', '')
-- vim.keymap.set({'n', 'x', 'i'}, '<Left>', '')
-- vim.keymap.set({'n', 'x', 'i'}, '<Right>', '')
utils.map('v', '<', '<gv')
utils.map('v', '>', '>gv')
vim.keymap.set('x', '<', '<gv')
vim.keymap.set('x', '>', '>gv')
local function hlWord()
local current_word = vim.call('expand', '<cword>')
vim.fn.setreg('/', '\\<' .. current_word .. '\\>')
vim.opt.hlsearch = true
end
-- Highlight word under cursor
utils.map('n', 'ü', ":let @/='\\<<C-R>=expand(\"<cword>\")<CR>\\>'<CR>:set hls<CR>", { noremap = true, silent = true })
utils.map('v', 'ü', "y:let @/='<C-R>=escape(@\",'/\\')<CR>'<CR>:set hls<CR>") utils.map('v', 'ü', "y:let @/='<C-R>=escape(@\",'/\\')<CR>'<CR>:set hls<CR>", { noremap = true, silent = true })
vim.keymap.set('n', "'", hlWord, { noremap = true, silent = true, desc = 'Higlight word under cursor' })
vim.keymap.set('x', "'", 'y/\\V<C-R>"<CR>N', { noremap = true, silent = true, desc = 'Highlight visual' })
-- Close Buffer
utils.map('n', '<C-w>', ':bd<CR>')
-- Close Buffer
-- vim.keymap.set('n', '<C-w>', ':bd<CR>', { desc = 'Close buffer' })
-- <Tab> to navigate the completion menu
utils.map('i', '<S-Tab>', 'pumvisible() ? "\\<C-p>" : "\\<Tab>"', {expr = true})
utils.map('i', '<Tab>', 'pumvisible() ? "\\<C-n>" : "\\<Tab>"', {expr = true})
vim.keymap.set('n', '<space>x', 'za', { desc = 'Toggle fold' })
-- Telescope
utils.map('n', '<leader>f', '<cmd>Telescope find_files<cr>')
utils.map('n', '<C-p>', '<cmd>Telescope find_files<cr>')
utils.map('n', '<leader>g', '<cmd>Telescope git_files<cr>')
utils.map('n', '<leader>o', '<cmd>Telescope oldfiles<cr>')
utils.map('n', '<leader>h', '<cmd>Telescope command_history<cr>')
utils.map('v', '<leader>h', '<cmd>Telescope command_history<cr>')
utils.map('n', '<C-S-p>', '<cmd>Telescope commands<cr>')
utils.map('n', '<leader>b', '<cmd>Telescope buffers<cr>')
utils.map('n', '<leader>q', '<cmd>Telescope quickfix<cr>')
utils.map('n', '<leader>l', '<cmd>Telescope live_grep<cr>')
utils.map('n', '<space>r', '<cmd>Telescope lsp_references<cr>')
utils.map('n', '<C-S-o>', '<cmd>Telescope lsp_document_symbols<cr>')
utils.map('n', '<A-m>', '<cmd>Telescope lsp_document_symbols<cr>')
utils.map('n', '<space>v', '<cmd>Telescope diagnostics bufnr=0<cr>')
utils.map('n', '<C-y>', '<cmd>Telescope neoclip<cr>')
utils.map('n', '<leader>j', '<cmd>Telescope jumplist<cr>')
vim.keymap.set({ 'n', 'x' }, '<leader>y', '"+y', { desc = 'Copy from system clipboard' })
vim.keymap.set({ 'n', 'x' }, '<leader>Y', '"+yg_', { desc = 'Copy from system clipboard' })
vim.keymap.set({ 'n', 'x' }, '<leader>p', '"+p', { desc = 'Paste from system clipboard' })
vim.keymap.set({ 'n', 'x' }, '<leader>P', '"+P', { desc = 'Paste from system clipboard' })
-- wildmode
vim.keymap.set('v', 'v', function()
local mode = vim.fn.mode()
if mode == 'v' then
vim.api.nvim_feedkeys('V', 'n', true) -- Switch to Visual Line mode
elseif mode == 'V' then
vim.api.nvim_feedkeys('v', 'n', true) -- Switch to regular Visual mode
end
end, { noremap = true, silent = true })
-- Symbols Outline
utils.map('n', '<leader>s', '<cmd>SymbolsOutline<cr>')
vim.keymap.set('x', '/', '<Esc>/\\%V') --search within visual selection
vim.api.nvim_create_user_command('WinFont', 'set guifont=JetBrainsMonoNL\\ NF:h9', {})
vim.api.nvim_create_user_command('LinuxFont', 'set guifont=JetBrainsMono\\ Nerd\\ Font\\ Mono:h7', {})
if vim.g.neovide then
vim.g.neovide_scale_factor = 1.0
local change_scale_factor = function(delta)
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
print(string.format('scaling: %f', vim.g.neovide_scale_factor))
end
vim.keymap.set('n', '<C-=>', function() change_scale_factor(1.25) end)
vim.keymap.set('n', '<C-->', function() change_scale_factor(1 / 1.25) end)
vim.keymap.set('n', '<C-ScrollWheelUp>', function() change_scale_factor(1.25) end)
vim.keymap.set('n', '<C-ScrollWheelDown>', function() change_scale_factor(1 / 1.25) end)
end

View File

@ -1,108 +0,0 @@
local utils = require('utils')
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.documentationFormat = { 'markdown', 'plaintext' }
capabilities.textDocument.completion.completionItem.snippetSupport = true
capabilities.textDocument.completion.completionItem.preselectSupport = true
capabilities.textDocument.completion.completionItem.insertReplaceSupport = true
capabilities.textDocument.completion.completionItem.labelDetailsSupport = true
capabilities.textDocument.completion.completionItem.deprecatedSupport = true
capabilities.textDocument.completion.completionItem.commitCharactersSupport = true
capabilities.textDocument.completion.completionItem.tagSupport = { valueSet = { 1 } }
capabilities.textDocument.completion.completionItem.resolveSupport = {
properties = {
'documentation',
'detail',
'additionalTextEdits',
},
}
local on_attach = function(client, bufnr)
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings.
local opts = { noremap=true, silent=true }
utils.map('n', '<space>,', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
utils.map('n', '<space>;', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
utils.map('n', '<space>a', '<cmd>Telescope lsp_code_actions<CR>', opts)
utils.map('n', '<space>d', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
utils.map('n', '<space>e', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
utils.map('n', '<space>h', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
utils.map('n', '<space>c', '<cmd>lua vim.lsp.buf.outgoing_calls()<CR>', opts)
utils.map('n', '<space>C', '<cmd>lua vim.lsp.buf.incoming_calls()<CR>', opts)
utils.map('n', '<space>m', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
-- utils.map('n', '<space>r', '<cmd>lua vim.lsp.buf.references()<CR, opts>')
utils.map('n', '<space>s', '<cmd>lua vim.lsp.buf.document_symbol()<CR>', opts)
utils.map('n', '<C-t>', '<cmd>Telescope lsp_dynamic_workspace_symbols<CR>', opts)
utils.map('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
utils.map('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
utils.map('n', '<space>r', '<cmd>Telescope lsp_references<cr>')
utils.map('n', '<C-S-o>', '<cmd>Telescope lsp_document_symbols<cr>')
utils.map('n', '<A-m>', '<cmd>Telescope lsp_document_symbols<cr>')
utils.map('n', '<space>v', '<cmd>Telescope diagnostics bufnr=0<cr>')
utils.map('n', '<A-o>', ':ClangdSwitchSourceHeader<CR>', opts)
-- Set some keybinds conditional on server capabilities
if client.resolved_capabilities.document_formatting then
utils.map('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
end
if client.resolved_capabilities.document_range_formatting then
utils.map('v', '<space>f', '<esc><cmd>lua vim.lsp.buf.range_formatting()<CR>', opts)
end
-- Set autocommands conditional on server_capabilities
if client.resolved_capabilities.document_highlight then
vim.api.nvim_exec([[
hi LspReferenceRead cterm=bold ctermbg=red guibg=DarkGreen
hi LspReferenceText cterm=bold ctermbg=Black guibg=DarkYellow guifg=Black
hi LspReferenceWrite cterm=bold ctermbg=red guibg=DarkRed
augroup lsp_document_highlight
autocmd! * <buffer>
autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()
autocmd CursorHoldI <buffer> lua vim.lsp.buf.document_highlight()
autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
augroup END
]], false)
end
require "lsp_signature".on_attach({
bind = true, -- This is mandatory, otherwise border config won't get registered.
handler_opts = {
border = "single"
},
hi_parameter = "IncSearch"
}, bufnr)
end
local lsp_installer = require("nvim-lsp-installer")
lsp_installer.on_server_ready(function(server)
local opts = {
on_attach = on_attach,
capabilities = capabilities,
}
-- (optional) Customize the options passed to the server
-- if server.name == "tsserver" then
-- opts.root_dir = function() ... end
-- end
-- This setup() function is exactly the same as lspconfig's setup function (:help lspconfig-quickstart)
server:setup(opts)
vim.cmd [[ do User LspAttachBuffers ]]
end)
local null_ls = require("null-ls")
null_ls.setup {
sources = {
null_ls.builtins.code_actions.gitsigns,
null_ls.builtins.formatting.autopep8,
null_ls.builtins.formatting.prettier,
null_ls.builtins.formatting.stylua,
null_ls.builtins.diagnostics.flake8,
null_ls.builtins.formatting.isort
},
on_attach = on_attach,
capabilities = capabilities
}

View File

@ -1,35 +0,0 @@
local utils = require('utils')
vim.cmd 'colorscheme gruvbox-material' -- Put your favorite colorscheme here
vim.cmd 'syntax enable'
vim.cmd 'filetype plugin indent on'
vim.cmd 'language en_US.utf-8'
utils.opt('o', 'hlsearch', true)
utils.opt('o', 'guifont', 'Hack NF:h9')
utils.opt('o', 'swapfile', false)
utils.opt('o', 'backup', false)
utils.opt('o', 'spelllang', 'en,de')
local indent = 2
utils.opt('b', 'expandtab', true)
utils.opt('b', 'shiftwidth', indent)
utils.opt('b', 'smartindent', true)
utils.opt('b', 'tabstop', indent)
utils.opt('o', 'hidden', true)
utils.opt('o', 'ignorecase', true)
utils.opt('o', 'scrolloff', 4 )
utils.opt('o', 'shiftround', true)
utils.opt('o', 'relativenumber', false)
utils.opt('o', 'smartcase', true)
utils.opt('o', 'splitbelow', true)
utils.opt('o', 'splitright', true)
utils.opt('o', 'wildmode', 'longest:full,full')
utils.opt('w', 'number', true)
utils.opt('o', 'clipboard', 'unnamed,unnamedplus')
utils.opt('o', 'mouse', 'a')
utils.opt('o', 'wrap', false)
utils.opt('o', 'termguicolors', true)
utils.opt('o', 'splitbelow', true)
utils.opt('o', 'splitright', true)
utils.opt('o', 'list', true)
utils.opt('o', 'updatetime', 300)
utils.opt('o', 'wrap', true)
utils.opt('o', 'showmatch', true)

View File

@ -1,55 +0,0 @@
return require('packer').startup(function()
-- Packer can manage itself as an optional plugin
use {'wbthomason/packer.nvim'}
use {'neovim/nvim-lspconfig'}
use {'nvim-treesitter/nvim-treesitter'}
use {
'nvim-telescope/telescope.nvim',
requires = {{'nvim-lua/popup.nvim'}, {'nvim-lua/plenary.nvim'}, {'kyazdani42/nvim-web-devicons'}}
}
use {'sainnhe/gruvbox-material'}
use {'lukas-reineke/indent-blankline.nvim'}
use {'nvim-lua/plenary.nvim'}
use {'lewis6991/gitsigns.nvim'}
use {
'kyazdani42/nvim-tree.lua',
requires = 'kyazdani42/nvim-web-devicons'
}
use{'numToStr/Comment.nvim'}
use {
'hrsh7th/nvim-cmp',
requires = {
'hrsh7th/cmp-buffer', 'hrsh7th/cmp-nvim-lsp',
'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip', 'hrsh7th/cmp-nvim-lua',
'octaltree/cmp-look', 'hrsh7th/cmp-path', 'hrsh7th/cmp-calc',
'f3fora/cmp-spell', 'hrsh7th/cmp-emoji', 'hrsh7th/cmp-cmdline'
}
}
use {'rafamadriz/friendly-snippets'}
use {'onsails/lspkind-nvim'}
use {'Shatur/neovim-cmake',
requires = {'mfussenegger/nvim-dap'}
}
use {'AckslD/nvim-neoclip.lua'}
use {
'hoob3rt/lualine.nvim',
requires = {'kyazdani42/nvim-web-devicons', opt = true}
}
use {'ahmedkhalf/project.nvim'}
use {'p00f/nvim-ts-rainbow'}
use {'simrat39/symbols-outline.nvim'}
use {'f-person/git-blame.nvim'}
use {'windwp/nvim-autopairs'}
use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make'}
use {'ray-x/lsp_signature.nvim'}
use {'s1n7ax/nvim-terminal'}
use {
'williamboman/nvim-lsp-installer',
requires = {'neovim/nvim-lspconfig'}
}
use {
'jose-elias-alvarez/null-ls.nvim',
requires = {'nvim-lua/plenary.nvim'}
}
end)

View File

@ -1,48 +0,0 @@
local actions = require('telescope.actions')
local mappingTab = {
i = {
['<cr>'] = actions.select_tab,
['<C-b>'] = actions.select_default,
}
}
require('telescope').setup {
defaults = {
mappings = {
i = {
['<esc>'] = actions.close,
['<cr>'] = actions.select_default + actions.center,
['<C-l>'] = actions.send_selected_to_loclist,
['<C-q>'] = actions.smart_send_to_qflist
}
}
},
pickers = {
-- Your special builtin config goes in here
buffers = {
sort_lastused = true,
theme = 'ivy',
mappings = {
i = {
['<c-w>'] = actions.delete_buffer,
['<cr>'] = actions.select_default,
},
n = {
['<c-w>'] = actions.delete_buffer,
}
}
},
find_files = {
theme = 'ivy',
},
oldfiles = {
theme = 'ivy',
},
git_files = {
theme = 'ivy',
},
lsp_dynamic_workspace_symbols = {
},
}
}

View File

@ -0,0 +1,24 @@
return {
name = 'clang-tidy',
builder = function()
-- Full path to current file (see :help expand())
local dir = vim.loop.cwd()
local file = vim.fn.expand('%:p')
return {
cmd = { 'clang-tidy' },
-- cmd = { 'c:/Users/uid40528/scoop/apps/llvm/current/bin/clang-tidy.exe' },
args = { file, '-p', 'build_nvim', '--quiet', '--config-file', dir .. '/.clang-tidy' },
cwd = dir,
components = {
{ 'on_result_diagnostics_quickfix', open = false },
{ 'on_output_parse', problem_matcher = '$gcc' },
{ 'on_result_diagnostics', remove_on_restart = true },
{ 'restart_on_save' },
'default',
},
}
end,
condition = {
filetype = { 'cpp' },
},
}

View File

@ -0,0 +1,28 @@
return {
name = 'CMake Build for nvim',
builder = function()
return {
cmd = { 'cmake' },
args = { '--build', '.', '--', '-j8' },
cwd = 'build_nvim',
-- components = {"on_output_parse", problem_matcher = "$gcc"}
-- components = {'on_output_quickfix', set_diagnostics = true, open = true}
components = {
{ 'on_output_quickfix', open = true, open_on_match = true },
{ 'on_output_parse', problem_matcher = '$gcc' },
'default',
},
}
end,
condition = {
callback = function(opts)
if vim.fn.executable('cmake') == 0 then
return false, 'Command "cmake" not found'
end
if vim.fn.findfile('CMakeLists.txt', opts.dir .. ';') == '' then
return false, 'No CMakeLists.txt found'
end
return true
end,
},
}

View File

@ -0,0 +1,21 @@
return {
name = 'CMake Clean for nvim',
builder = function()
return {
cmd = { 'cmake' },
args = { '--build', '.', '-t', 'clean' },
cwd = 'build_nvim',
}
end,
condition = {
callback = function(opts)
if vim.fn.executable('cmake') == 0 then
return false, 'Command "cmake" not found'
end
if vim.fn.findfile('CMakeLists.txt', opts.dir .. ';') == '' then
return false, 'No CMakeLists.txt found'
end
return true
end,
},
}

View File

@ -0,0 +1,7 @@
return {
'builtin',
'user.cmake.configure',
'user.cmake.build',
'user.cmake.clean',
}
-- https://gitlab.com/ranjithshegde/dotbare/-/tree/master/.config/nvim/lua/overseer

View File

@ -0,0 +1,22 @@
return {
name = 'CMake Configure for nvim',
builder = function()
local cwd = vim.fn.getcwd()
return {
cmd = { 'cmake' },
args = { '-B', 'build_nvim', '-S', cwd, '-G', 'Ninja' },
cwd = build_nvim,
}
end,
condition = {
callback = function(opts)
if vim.fn.executable('cmake') == 0 then
return false, 'Command "cmake" not found'
end
if vim.fn.findfile('CMakeLists.txt', opts.dir .. ';') == '' then
return false, 'No CMakeLists.txt found'
end
return true
end,
},
}

32
lua/plugins/aider.lua Normal file
View File

@ -0,0 +1,32 @@
return {
'GeorgesAlkhouri/nvim-aider',
cmd = {
'AiderTerminalToggle',
'AiderHealth',
},
keys = {
{ '<leader>a/', '<cmd>AiderTerminalToggle<cr>', desc = 'Open Aider' },
{ '<leader>as', '<cmd>AiderTerminalSend<cr>', desc = 'Send to Aider', mode = { 'n', 'v' } },
{ '<leader>ac', '<cmd>AiderQuickSendCommand<cr>', desc = 'Send Command To Aider' },
{ '<leader>ab', '<cmd>AiderQuickSendBuffer<cr>', desc = 'Send Buffer To Aider' },
{ '<leader>a+', '<cmd>AiderQuickAddFile<cr>', desc = 'Add File to Aider' },
{ '<leader>a-', '<cmd>AiderQuickDropFile<cr>', desc = 'Drop File from Aider' },
{ '<leader>ar', '<cmd>AiderQuickReadOnlyFile<cr>', desc = 'Add File as Read-Only' },
-- Example nvim-tree.lua integration if needed
{ '<leader>a+', '<cmd>AiderTreeAddFile<cr>', desc = 'Add File from Tree to Aider', ft = 'NvimTree' },
{ '<leader>a-', '<cmd>AiderTreeDropFile<cr>', desc = 'Drop File from Tree from Aider', ft = 'NvimTree' },
},
dependencies = {
'folke/snacks.nvim',
},
opts = {
args = {
'--model gemini-2.5-pro',
'--no-auto-commits',
'--pretty',
'--stream',
},
},
config = true,
enabled = false,
}

58
lua/plugins/avante.lua Normal file
View File

@ -0,0 +1,58 @@
return {
'yetone/avante.nvim',
version = false, -- Set this to "*" to always pull the latest release version, or set it to false to update to the latest code changes.
opts = {
debug = false,
provider = 'gemini',
auto_suggestions_provider = 'openai', -- Since auto-suggestions are a high-frequency operation and therefore expensive, it is recommended to specify an inexpensive provider or even a free provider: copilot
openai = {
endpoint = 'https://api.openai.com/v1',
-- model = 'o3-mini',
timeout = 30000, -- Timeout in milliseconds
temperature = 0,
max_tokens = 4096,
},
gemini = {
api_key_name = 'GEMINI_API_KEY',
model = 'gemini-2.5-flash-preview-04-17',
},
},
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
build = 'make',
-- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows
dependencies = {
'stevearc/dressing.nvim',
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
'nvim-tree/nvim-web-devicons', -- or echasnovski/mini.icons
'zbirenbaum/copilot.lua', -- for providers='copilot'
{
'MeanderingProgrammer/render-markdown.nvim',
},
},
cmd = {
'AvanteAsk',
'AvanteBuild',
'AvanteChat',
'AvanteChatNew',
'AvanteHistory',
'AvanteClear',
'AvanteEdit',
'AvanteFocus',
'AvanteRefresh',
'AvanteStop',
'AvanteSwitchProvider',
'AvanteShowRepoMap',
'AvanteToggle',
'AvanteModels',
'AvanteSwitchSelectorProvider',
},
keys = {
{
'<leader>aa',
'<cmd>AvanteAsk<CR>',
desc = 'Avante Ask',
},
},
enabled = false,
}

235
lua/plugins/blink.lua Normal file
View File

@ -0,0 +1,235 @@
return {
'saghen/blink.cmp',
lazy = false, -- lazy loading handled internally
-- optional: provides snippets for the snippet source
dependencies = {
'rafamadriz/friendly-snippets',
'giuxtaposition/blink-cmp-copilot',
{
'fang2hou/blink-copilot',
opts = {
max_completions = 1, -- Global default for max completions
max_attempts = 2, -- Global default for max attempts
-- `kind` is not set, so the default value is "Copilot"
},
},
'dmitmel/cmp-cmdline-history',
'onsails/lspkind.nvim',
'folke/lazydev.nvim',
'L3MON4D3/LuaSnip',
{
'saghen/blink.compat',
-- use the latest release, via version = '*', if you also use the latest release for blink.cmp
version = '*',
-- lazy.nvim will automatically load the plugin when it's required by blink.cmp
lazy = true,
-- make sure to set opts so that lazy.nvim calls blink.compat's setup
opts = {},
},
'rcarriga/cmp-dap',
},
-- use a release tag to download pre-built binaries
version = '*',
-- OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
-- build = 'cargo build --release',
-- If you use nix, you can build from source using latest nightly rust with:
-- build = 'nix run .#build-plugin',
opts = {
-- 'default' for mappings similar to built-in completion
-- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate)
-- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept
-- see the "default configuration" section below for full documentation on how to define
-- your own keymap.
keymap = { preset = 'enter' },
appearance = {
-- Sets the fallback highlight groups to nvim-cmp's highlight groups
-- Useful for when your theme doesn't support blink.cmp
-- will be removed in a future release
use_nvim_cmp_as_default = true,
-- Set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- Adjusts spacing to ensure icons are aligned
nerd_font_variant = 'mono',
},
enabled = function() return (vim.bo.buftype ~= 'prompt' and vim.b.completion ~= false) or require('cmp_dap').is_dap_buffer() end,
-- default list of enabled providers defined so that you can extend it
-- elsewhere in your config, without redefining it, via `opts_extend`
sources = {
default = { 'copilot', 'lazydev', 'lsp', 'path', 'snippets', 'buffer', 'codeium' },
per_filetype = {
['dap-repl'] = {
'copilot',
'dap',
'snippets',
'path',
'buffer',
},
},
providers = {
copilot = {
name = 'copilot',
module = 'blink-copilot',
score_offset = 100,
async = true,
opts = {
-- Local options override global ones
-- Final settings: max_completions = 3, max_attempts = 2, kind = "Copilot"
max_completions = 3, -- Override global max_completions
},
},
lazydev = {
name = 'LazyDev',
module = 'lazydev.integrations.blink',
-- make lazydev completions top priority (see `:h blink.cmp`)
score_offset = 100,
},
codeium = { -- TODO: Replace with https://github.com/Exafunction/codeium.nvim/pull/264
name = 'codeium', -- IMPORTANT: use the same name as you would for nvim-cmp
module = 'blink.compat.source',
async = true,
},
cmdline_history = {
name = 'cmdline_history',
module = 'blink.compat.source',
score_offset = -50,
},
dap = {
name = 'dap',
module = 'blink.compat.source',
async = false,
enabled = function() return require('cmp_dap').is_dap_buffer() end,
},
buffer = {
name = 'Buffer',
module = 'blink.cmp.sources.buffer',
opts = {
-- default to all visible buffers
get_bufnrs = function()
return vim
.iter(vim.api.nvim_list_wins())
:map(function(win) return vim.api.nvim_win_get_buf(win) end)
:filter(function(buf) return vim.bo[buf].buftype ~= 'nofile' end)
:totable()
end,
},
},
},
},
cmdline = {
sources = function()
local type = vim.fn.getcmdtype()
-- Search forward and backward
if type == '/' or type == '?' then
return { 'buffer' }
end
-- Commands
if type == ':' or type == '@' then
return { 'cmdline', 'buffer', 'cmdline_history' }
end
return {}
end,
completion = {
trigger = {
show_on_blocked_trigger_characters = {},
show_on_x_blocked_trigger_characters = nil, -- Inherits from top level `completion.trigger.show_on_blocked_trigger_characters` config when not set
},
list = {
selection = {
auto_insert = false,
preselect = false,
},
},
menu = {
auto_show = true, -- Inherits from top level `completion.menu.auto_show` config when not set
},
},
keymap = {
['<down>'] = { 'select_next', 'fallback' },
['<up>'] = { 'select_prev', 'fallback' },
['<CR>'] = { 'accept', 'fallback' },
['<C-e>'] = { 'cancel' },
},
},
completion = {
list = {
selection = {
auto_insert = false,
preselect = false,
},
},
accept = {
dot_repeat = false,
},
menu = {
max_height = 25,
draw = {
padding = 1,
gap = 1,
-- treesitter = { 'lsp' },
components = {
kind_icon = {
ellipsis = false,
text = function(ctx)
local lspkind = require('lspkind')
local icon = ctx.kind_icon
if ctx.source_name == 'cmdline_history' then
icon = require('nvim-web-devicons').get_icon('log')
elseif vim.tbl_contains({ 'Path' }, ctx.source_name) then
local dev_icon, _ = require('nvim-web-devicons').get_icon(ctx.label)
if dev_icon then
icon = dev_icon
end
else
icon = lspkind.symbolic(ctx.kind, {
mode = 'symbol',
})
end
return icon .. ctx.icon_gap
end,
-- Optionally, use the highlight groups from nvim-web-devicons
-- You can also add the same function for `kind.highlight` if you want to
-- keep the highlight groups in sync with the icons.
highlight = function(ctx)
local hl = ctx.kind_hl
if ctx.source_name == 'cmdline_history' then
_, hl = require('nvim-web-devicons').get_icon('log')
elseif ctx.source_name == 'cmdline' then
_, hl = require('nvim-web-devicons').get_icon('cc')
elseif vim.tbl_contains({ 'Path' }, ctx.source_name) then
local dev_icon, dev_hl = require('nvim-web-devicons').get_icon(ctx.label)
if dev_icon then
hl = dev_hl
end
end
return hl
end,
},
},
},
},
documentation = {
auto_show = true,
auto_show_delay_ms = 500,
treesitter_highlighting = true,
},
},
-- experimental signature help support
signature = { enabled = true },
snippets = {
preset = 'luasnip',
},
},
-- allows extending the providers array elsewhere in your config
-- without having to redefine it
enabled = false,
}

View File

@ -0,0 +1,35 @@
return {
'Civitasv/cmake-tools.nvim',
opts = {
cmake_command = 'cmake',
cmake_generate_options = { '-D', 'CMAKE_EXPORT_COMPILE_COMMANDS=1', '-G', 'Ninja' },
cmake_show_console = 'always',
cmake_build_directory = 'build_nvim',
cmake_dap_configuration = { name = 'cpp', type = 'codelldb', request = 'launch' }, -- dap configuration, optional
},
cmd = {
'CMakeGenerate',
'CMakeBuild',
'CMakeRun',
'CMakeDebug',
'CMakeSelectBuildType',
'CMakeSelectBuildTarget',
'CMakeSelectLaunchTarget',
'CMakeSelectKit',
'CMakeSelectConfigurePreset',
'CMakeSelectBuildPreset',
'CMakeSelectLaunchTarget',
'CMakeOpen',
'CMakeClose',
'CMakeInstall',
'CMakeClean',
'CMakeStop',
},
keys = {
{
'<S-F6>',
function() require('cmake-tools').debug({}) end,
desc = 'Run and debug target from cmake',
},
},
}

151
lua/plugins/cmp.lua Normal file
View File

@ -0,0 +1,151 @@
return {
'hrsh7th/nvim-cmp',
branch = 'main',
lazy = false,
dependencies = {
'neovim/nvim-lspconfig',
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
'L3MON4D3/LuaSnip',
'saadparwaiz1/cmp_luasnip',
'onsails/lspkind.nvim',
'zbirenbaum/copilot-cmp',
'hrsh7th/cmp-path',
'dmitmel/cmp-cmdline-history',
'hrsh7th/cmp-nvim-lsp-signature-help',
},
config = function()
local t = function(str) return vim.api.nvim_replace_termcodes(str, true, true, true) end
local cmp = require('cmp')
local lspkind = require('lspkind')
local luasnip = require('luasnip')
lspkind.init({
symbol_map = {
Copilot = '',
},
})
require('copilot_cmp').setup()
cmp.setup({
preselect = cmp.PreselectMode.None,
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
end,
},
mapping = {
['<Up>'] = cmp.mapping(cmp.mapping.select_prev_item(), { 'i', 'c', 's' }),
['<Down>'] = cmp.mapping(cmp.mapping.select_next_item(), { 'i', 'c', 's' }),
['<C-p>'] = cmp.mapping(cmp.mapping.select_prev_item(), { 'i', 'c', 's' }),
['<C-n>'] = cmp.mapping(cmp.mapping.select_next_item(), { 'i', 'c', 's' }),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c', 's' }),
['<C-e>'] = cmp.mapping(cmp.mapping.close(), { 'i', 'c', 's' }),
['<CR>'] = cmp.mapping({
i = function(fallback)
if cmp.visible() and cmp.get_active_entry() then
cmp.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = false })
else
fallback()
end
end,
c = cmp.mapping.confirm({ select = false }),
s = cmp.mapping.confirm({ select = false }),
}),
['<Tab>'] = cmp.mapping(function(fallback)
if luasnip.expand_or_jumpable() then
vim.api.nvim_feedkeys(t('<Plug>luasnip-expand-or-jump'), '', true)
else
fallback()
end
end, {
'i',
's',
}),
['<S-Tab>'] = cmp.mapping(function(fallback)
if luasnip.jumpable(-1) then
vim.api.nvim_feedkeys(t('<Plug>luasnip-jump-prev'), '', true)
else
fallback()
end
end, { 'i', 's' }),
['<c-x>'] = cmp.mapping(
cmp.mapping.complete({
config = {
sources = {
{
name = 'cmdline_history',
},
},
},
}),
{ 'c' }
),
},
sources = cmp.config.sources({
{ name = 'copilot' },
{ name = 'nvim_lsp' },
{ name = 'nvim_lsp_signature_help' },
{ name = 'luasnip' },
{
name = 'buffer',
option = {
get_bufnrs = function() return vim.api.nvim_list_bufs() end,
},
},
{ name = 'path' },
}),
window = {
documentation = {
winhighlight = 'Normal:CmpDocumentation',
},
completion = {
winhighlight = 'Normal:Pmenu,FloatBorder:Pmenu,Search:None',
col_offset = -3,
side_padding = 0,
},
},
formatting = {
fields = { 'kind', 'abbr', 'menu' },
expandable_indicator = false,
format = function(entry, vim_item)
local kind = require('lspkind').cmp_format({ mode = 'symbol_text', maxwidth = 50, show_labelDetails = true })(entry, vim_item)
local strings = vim.split(kind.kind, '%s', { trimempty = true })
kind.kind = ' ' .. (strings[1] or '') .. ' '
kind.menu = ' (' .. (strings[2] or '') .. ')'
return kind
end,
},
})
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'buffer' },
{ name = 'cmdline_history' },
{ name = 'path' },
{ name = 'buffer' },
},
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'cmdline', priority = 200 },
{ name = 'path', priority = 3 },
{ name = 'cmdline_history', priority = 3 },
{ name = 'buffer', priority = 3 },
},
matching = { disallow_symbol_nonprefix_matching = false },
})
end,
enabled = true,
}

View File

@ -0,0 +1,35 @@
return {
'olimorris/codecompanion.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-treesitter/nvim-treesitter',
},
branch = 'main',
config = function()
require('codecompanion').setup({
strategies = {
chat = {
adapter = 'copilot',
},
inline = {
adapter = 'copilot',
},
},
-- adapters = {
-- anthropic = function()
-- return require('codecompanion.adapters').extend('copilot', {
-- env = {
-- api_key = 'ghu_8hbMItSdtNIrzMI4svd94dem3ZCsk23VG446',
-- },
-- })
-- end,
-- },
})
end,
cmd = {
'CodeCompanion',
'CodeCompanionChat',
'CodeCompanionCmd',
'CodeCompanionActions ',
},
}

11
lua/plugins/comment.lua Normal file
View File

@ -0,0 +1,11 @@
return {
'numToStr/Comment.nvim',
version = '*',
opts = {
mappings = false,
},
keys = {
{ '<c-c>', '<Plug>(comment_toggle_linewise_current)', desc = 'Toggle comment' },
{ '<c-c>', '<Plug>(comment_toggle_linewise_visual)gv', mode = 'v', desc = 'Toggle comment' },
},
}

27
lua/plugins/conform.lua Normal file
View File

@ -0,0 +1,27 @@
return {
'stevearc/conform.nvim',
cmd = { 'ConformInfo' },
opts = {
default_format_opts = {
lsp_format = 'fallback',
},
log_level = vim.log.levels.ERROR,
formatters_by_ft = {
lua = { 'stylua' },
python = { 'ruff_format' },
yaml = { 'prettier', timeout_ms = 5000 },
cmake = { 'gersemi' },
markdown = { 'prettier' },
json = { 'fixjson' },
toml = { 'taplo' },
},
},
keys = {
{
'<space>f',
mode = { 'n', 'x', 'v' },
function() require('conform').format() end,
desc = 'Format with Conform',
},
},
}

24
lua/plugins/copilot.lua Normal file
View File

@ -0,0 +1,24 @@
return {
'zbirenbaum/copilot.lua',
cmd = 'Copilot',
event = 'InsertEnter',
config = function()
require('copilot').setup({
filetypes = {
yaml = false,
markdown = false,
python = true,
help = false,
gitcommit = false,
gitrebase = false,
hgcommit = false,
svn = false,
cvs = false,
cpp = true,
['.'] = false,
},
suggestion = { enabled = false, auto_trigger = false },
panel = { enabled = false },
})
end,
}

142
lua/plugins/dap.lua Normal file
View File

@ -0,0 +1,142 @@
return {
'mfussenegger/nvim-dap',
version = false,
dependencies = {
{
'mfussenegger/nvim-dap-python',
version = false,
},
-- 'theHamsta/nvim-dap-virtual-text',
{
'rcarriga/nvim-dap-ui',
version = false,
dependencies = {
'nvim-neotest/nvim-nio',
},
},
{
'LiadOz/nvim-dap-repl-highlights',
version = false,
},
},
keys = {
{ '<F5>', function() require('dap').continue() end, desc = 'DAP start or continue' },
{ '<S-F5>', function() require('dap').run_last() end, desc = 'DAP run last' },
{ '<F6>', function() require('dap').run_last() end, desc = 'Run last' },
{ '<F7>', function() require('dap').goto_() end, desc = 'DAP goto' },
{ '<F8>', function() require('dap.ui.widgets').hover() end, desc = 'DAP Hover' },
{ '<F9>', function() require('dap').toggle_breakpoint() end, desc = 'DAP breakpoint' },
{ '<F10>', function() require('dap').step_over() end, desc = 'DAP step_over' },
{ '<F11>', function() require('dap').step_into() end, desc = 'DAP step_into' },
{ '<S-F11>', function() require('dap').step_out() end, desc = 'DAP step_out' },
},
config = function()
local dap = require('dap')
vim.fn.sign_define('DapBreakpoint', { text = '🛑', texthl = '', linehl = '', numhl = '' })
-- make sure we can exit the terminal with esc
vim.api.nvim_create_autocmd({ 'TermOpen' }, {
pattern = { '*dap-terminal*' },
callback = function()
local opts = { noremap = true }
vim.api.nvim_buf_set_keymap(0, 't', '<esc>', [[<C-\><C-n>]], opts)
end,
})
require('dap.ext.vscode').json_decode = require('utils.json_workaround').decode_json
local masonpath = vim.fn.stdpath('data') .. '/mason'
vim.keymap.set('x', '<leader>k', function()
local lines = vim.fn.getregion(vim.fn.getpos('.'), vim.fn.getpos('v'), { type = vim.fn.mode() })
dap.repl.execute(table.concat(lines, '\n'))
end, { desc = 'Dapl execute selection' })
vim.keymap.set('n', '<leader>k', function()
local line = vim.api.nvim_get_current_line()
dap.repl.execute(line)
end, { desc = 'DAP execute' })
local dapui = require('dapui')
dapui.setup()
dap.listeners.before.attach.dapui_config = function() dapui.open() end
dap.listeners.before.launch.dapui_config = function() dapui.open() end
dap.listeners.before.event_terminated.dapui_config = function() dapui.close() end
dap.listeners.before.event_exited.dapui_config = function() dapui.close() end
local path = require('mason-registry').get_package('debugpy'):get_install_path()
if vim.loop.os_uname().sysname:find('Windows') then
require('dap-python').setup(path .. 'dap-python' .. 'python')
else
require('dap-python').setup(path .. '/venv/bin/python')
end
-- CPP
dap.adapters.codelldb = {
type = 'server',
port = '${port}',
executable = {
command = require('mason-core.path').bin_prefix('codelldb'),
args = { '--port', '${port}' },
-- On windows you may have to uncomment this:
detached = false,
},
}
dap.adapters.cppdbg = {
id = 'cppdbg',
type = 'executable',
command = masonpath .. '/bin/OpenDebugAD7',
}
dap.adapters.lldb = {
type = 'executable',
command = function()
if vim.loop.os_uname().sysname == 'Linux' then
return 'lldb-vscode'
else
return os.getenv('SCOOP') .. '/apps/llvm/current/bin/lldb-vscode.exe'
end
end,
name = 'lldb',
}
dap.configurations.cpp = {
{
name = 'Launch codelldb',
type = 'codelldb',
request = 'launch',
program = function() return vim.fn.input({ 'Path to executable: ', vim.fn.getcwd() .. '/build_nvim/', 'file' }) end,
cwd = '${workspaceFolder}',
stopOnEntry = false,
},
{
name = 'Launch lldb',
type = 'lldb',
request = 'launch',
program = function() return vim.fn.input({ 'Path to executable: ', vim.fn.getcwd() .. '/build_nvim', 'file' }) end,
cwd = '${workspaceFolder}',
stopOnEntry = false,
args = {},
-- 💀
-- if you change `runInTerminal` to true, you might need to change the yama/ptrace_scope setting:
--
-- echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
--
-- Otherwise you might get the following error:
--
-- Error on launch: Failed to attach to the target process
--
-- But you should be aware of the implications:
-- https://www.kernel.org/doc/html/latest/admin-guide/LSM/Yama.html
-- runInTerminal = false,
},
}
-- EXTENSIONS
require('nvim-dap-repl-highlights').setup()
-- require('nvim-dap-virtual-text').setup({})
end,
}

23
lua/plugins/dial.lua Normal file
View File

@ -0,0 +1,23 @@
return {
'monaqa/dial.nvim',
keys = {
{ '<C-a>', function() return require('dial.map').inc_normal() end, expr = true, desc = 'Increment' },
{ '<C-x>', function() return require('dial.map').dec_normal() end, expr = true, desc = 'Decrement' },
{ '<C-a>', function() return require('dial.map').inc_visual() end, mode = 'v', expr = true, desc = 'Increment' },
{ '<C-x>', function() return require('dial.map').dec_visual() end, mode = 'v', expr = true, desc = 'Decrement' },
},
config = function()
local augends = require('dial.augend')
require('dial.config').augends:register_group({
-- default augends used when no group name is specified
default = {
augends.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...)
augends.integer.alias.hex, -- nonnegative hex number (0x0, 0x1, 0x2, ...)
augends.date.alias['%Y/%m/%d'], -- date (2027/04/15, etc.)
augends.constant.alias.bool, -- boolean value (true <-> false)
augends.constant.new({ elements = { 'True', 'False' } }),
augends.constant.new({ elements = { 'TRUE', 'FALSE' } }),
},
})
end,
}

25
lua/plugins/diffview.lua Normal file
View File

@ -0,0 +1,25 @@
return {
'sindrets/diffview.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
},
opts = {
keymaps = {
view = {
['<leader>b'] = false,
},
file_panel = {
['<leader>b'] = false,
},
file_history_panel = {
['<leader>b'] = false,
},
},
},
cmd = 'DiffviewOpen',
keys = {
{ '<space>bb', '<cmd>DiffviewOpen<cr>', desc = 'Diffview local' },
{ '<space>bd', '<cmd>DiffviewOpen origin/develop...<cr>', desc = 'Diffview vs develop' },
{ '<space>bm', '<cmd>DiffviewOpen origin/master...<cr>', desc = 'Diffview vs master' },
},
}

3
lua/plugins/dressing.lua Normal file
View File

@ -0,0 +1,3 @@
return {
'stevearc/dressing.nvim',
}

33
lua/plugins/flash.lua Normal file
View File

@ -0,0 +1,33 @@
return {
'folke/flash.nvim',
opts = {
modes = {
search = {
enabled = false,
},
char = {
keys = { 'f', 'F', 't', 'T', ';' },
},
},
},
keys = {
{
's',
mode = { 'n', 'x', 'o' },
function()
-- default options: exact mode, multi window, all directions, with a backdrop
require('flash').jump()
end,
desc = 'Flash jump',
},
{
'S',
mode = { 'n', 'o', 'x' },
function()
require('flash').treesitter()
vim.api.nvim_feedkeys('V', 'n', true)
end,
desc = 'Flash treesitter',
},
},
}

65
lua/plugins/gitsigns.lua Normal file
View File

@ -0,0 +1,65 @@
return {
'lewis6991/gitsigns.nvim',
branch = 'main',
config = function()
require('gitsigns').setup({
current_line_blame = false,
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
},
on_attach = function(bufnr)
local gitsigns = require('gitsigns')
-- Navigation
vim.keymap.set('n', ']c', function()
if vim.wo.diff then
vim.cmd.normal({ ']c', bang = true })
else
gitsigns.nav_hunk('next')
end
end, { desc = 'Next hunk' })
vim.keymap.set('n', '[c', function()
if vim.wo.diff then
vim.cmd.normal({ '[c', bang = true })
else
gitsigns.nav_hunk('prev')
end
end, { desc = 'Previous hunk' })
-- Actions
vim.keymap.set('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'Stage hunk' })
vim.keymap.set('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'Reset hunk' })
vim.keymap.set('v', '<leader>hs', function() gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end, { desc = 'Stage hunk' })
vim.keymap.set('v', '<leader>hr', function() gitsigns.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end, { desc = 'Reset hunk' })
vim.keymap.set('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'Stage buffer' })
vim.keymap.set('n', '<leader>hR', gitsigns.reset_buffer, { desc = 'Reset buffer' })
vim.keymap.set('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'Preview hunk' })
vim.keymap.set('n', '<leader>hi', gitsigns.preview_hunk_inline, { desc = 'Preview hunk inline' })
vim.keymap.set('n', '<leader>hb', function() gitsigns.blame_line({ full = true }) end, { desc = 'Blame line' })
vim.keymap.set('n', '<leader>hd', gitsigns.diffthis, { desc = 'Diff this' })
vim.keymap.set('n', '<leader>hD', function() gitsigns.diffthis('~') end, { desc = 'Diff this (cached)' })
vim.keymap.set('n', '<leader>hQ', function() gitsigns.setqflist('all') end, { desc = 'Set quickfix list all' })
vim.keymap.set('n', '<leader>hq', gitsigns.setqflist, { desc = 'Set quickfix list' })
-- Toggles
vim.keymap.set('n', '<leader>tb', gitsigns.toggle_current_line_blame, { desc = 'Toggle blame' })
vim.keymap.set('n', '<leader>td', gitsigns.toggle_deleted, { desc = 'Toggle deleted' })
vim.keymap.set('n', '<leader>tw', gitsigns.toggle_word_diff, { desc = 'Toggle word diff' })
-- Text object
vim.keymap.set({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
end,
})
end,
}

37
lua/plugins/goose.lua Normal file
View File

@ -0,0 +1,37 @@
return {
'azorng/goose.nvim',
config = function()
require('goose').setup({
keymap = {
global = {
toggle = '<leader>xg', -- Open goose. Close if opened
open_input = '<leader>xx', -- Opens and focuses on input window on insert mode
open_input_new_session = '<leader>xX', -- Opens and focuses on input window on insert mode. Creates a new session
open_output = '<leader>xo', -- Opens and focuses on output window
toggle_focus = '<leader>xt', -- Toggle focus between goose and last window
close = '<leader>xq', -- Close UI windows
toggle_fullscreen = '<leader>xf', -- Toggle between normal and fullscreen mode
select_session = '<leader>xs', -- Select and load a goose session
goose_mode_chat = '<leader>xmc', -- Set goose mode to `chat`. (Tool calling disabled. No editor context besides selections)
goose_mode_auto = '<leader>xma', -- Set goose mode to `auto`. (Default mode with full agent capabilities)
configure_provider = '<leader>xp', -- Quick provider and model switch from predefined list
diff_open = '<leader>xd', -- Opens a diff tab of a modified file since the last goose prompt
diff_next = '<leader>x]', -- Navigate to next file diff
diff_prev = '<leader>x[', -- Navigate to previous file diff
diff_close = '<leader>xc', -- Close diff view tab and return to normal editing
diff_revert_all = '<leader>xra', -- Revert all file changes since the last goose prompt
diff_revert_this = '<leader>xrt', -- Revert current file changes since the last goose prompt
},
window = {
submit = '<C-s>',
},
},
})
end,
dependencies = {
'nvim-lua/plenary.nvim',
{
'MeanderingProgrammer/render-markdown.nvim',
},
},
}

12
lua/plugins/grug-far.lua Normal file
View File

@ -0,0 +1,12 @@
return {
'MagicDuck/grug-far.nvim',
config = function() require('grug-far').setup({}) end,
keys = {
{
'<C-f>',
function() require('grug-far').open() end,
desc = 'GrugFar',
mode = { 'n', 'v' },
},
},
}

30
lua/plugins/incline.lua Normal file
View File

@ -0,0 +1,30 @@
return {
'b0o/incline.nvim',
config = function()
local helpers = require('incline.helpers')
local devicons = require('nvim-web-devicons')
require('incline').setup({
window = {
padding = 0,
margin = { horizontal = 0 },
},
render = function(props)
local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ':t')
if filename == '' then
filename = '[No Name]'
end
local ft_icon, ft_color = devicons.get_icon_color(filename)
local modified = vim.bo[props.buf].modified
return {
ft_icon and { ' ', ft_icon, ' ', guibg = ft_color, guifg = helpers.contrast_color(ft_color) } or '',
' ',
{ filename, gui = modified and 'bold,italic' or 'bold' },
' ',
guibg = '#44406e',
}
end,
})
end,
-- Optional: Lazy load Incline
event = 'VeryLazy',
}

1
lua/plugins/init.lua Normal file
View File

@ -0,0 +1 @@
return {}

63
lua/plugins/iron.lua Normal file
View File

@ -0,0 +1,63 @@
return {
'Vigemus/iron.nvim',
branch = 'master',
config = function()
local iron = require('iron.core')
iron.setup({
config = {
-- Whether a repl should be discarded or not
scratch_repl = true,
-- Your repl definitions come here
repl_definition = {
sh = {
-- Can be a table or a function that
-- returns a table (see below)
command = { 'zsh' },
},
python = {
command = { 'python3' }, -- or { "ipython", "--no-autoindent" }
format = require('iron.fts.common').bracketed_paste_python,
},
},
-- How the repl window will be displayed
-- See below for more information
repl_open_cmd = require('iron.view').split.vertical('50%'),
},
-- Iron doesn't set keymaps by default anymore.
-- You can set them here or manually add keymaps to the functions in iron.core
keymaps = {
send_motion = '<space>sc',
visual_send = '<space>sc',
send_file = '<space>sf',
send_line = '<space>sl',
send_paragraph = '<space>sp',
send_until_cursor = '<space>su',
send_mark = '<space>sm',
mark_motion = '<space>mc',
mark_visual = '<space>mc',
remove_mark = '<space>md',
cr = '<space>s<cr>',
interrupt = '<space>s<space>',
exit = '<space>sq',
clear = '<space>cl',
},
-- If the highlight is on, you can change how it looks
-- For the available options, check nvim_set_hl
highlight = {
italic = true,
},
ignore_blank_lines = true, -- ignore blank lines when sending visual select lines
})
-- iron also has a list of commands, see :h iron-commands for all available commands
end,
cmd = {
'IronRepl',
'IronRestart',
'IronFocus',
'IronHide',
'IronRepl',
'IronReplHere',
},
}

18
lua/plugins/lazydev.lua Normal file
View File

@ -0,0 +1,18 @@
return {
{
'folke/lazydev.nvim',
ft = 'lua', -- only load on lua files
branch = 'main',
opts = {
library = {
-- See the configuration section for more details
-- Load luvit types when the `vim.uv` word is found
{ path = 'luvit-meta/library', words = { 'vim%.uv' } },
},
},
},
{
'Bilal2453/luvit-meta',
lazy = true,
},
}

87
lua/plugins/lsp.lua Normal file
View File

@ -0,0 +1,87 @@
local lspKeys = function(client, bufnr)
local base_opts = { noremap = true, silent = false, buffer = bufnr }
local function opts(desc) return vim.tbl_extend('error', base_opts, { desc = desc }) end
local mappings = {
{ mode = { 'n', 'x' }, key = '<space>a', fn = vim.lsp.buf.code_action, desc = 'Code action' },
{ mode = 'n', key = '<space>e', fn = vim.lsp.buf.declaration, desc = 'Declaration' },
{ mode = 'n', key = '<space>h', fn = function() vim.lsp.buf.hover({ border = 'none' }) end, desc = 'Hover' },
{ mode = 'n', key = '<space>c', fn = vim.lsp.buf.outgoing_calls, desc = 'Outgoing calls' },
{ mode = 'n', key = '<space>C', fn = vim.lsp.buf.incoming_calls, desc = 'Incoming calls' },
{ mode = 'n', key = '<space>m', fn = vim.lsp.buf.rename, desc = 'Rename' },
{ mode = 'n', key = '<space>D', fn = vim.lsp.buf.type_definition, desc = 'Type definition' },
{ mode = { 'n', 'i', 'x' }, key = '<C-k>', fn = vim.lsp.buf.signature_help, desc = 'Signature help' },
{ mode = 'n', key = '<space>v', fn = function() vim.diagnostic.open_float({ border = 'rounded' }) end, desc = 'Diagnostics Float' },
{ mode = 'n', key = '<A-o>', fn = '<cmd>ClangdSwitchSourceHeader<CR>', desc = 'Switch Source/Header' },
}
for _, map in ipairs(mappings) do
vim.keymap.set(map.mode, map.key, map.fn, opts(map.desc))
end
if client.supports_method('inlayHintProvider') then
vim.keymap.set(
'n',
'<space>i',
function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }), { bufnr = bufnr }) end,
opts('Toggle inlay hints')
)
end
end
return {
'neovim/nvim-lspconfig',
dependencies = {
'williamboman/mason.nvim',
'SmiteshP/nvim-navic',
},
lazy = false,
config = function()
local servers = {
'basedpyright',
'ruff',
'clangd',
'lua_ls',
'jsonls',
'dockerls',
'yamlls',
'neocmake',
'markdown_oxide',
'taplo',
}
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
-- capabilities = require('blink.cmp').get_lsp_capabilities(capabilities)
vim.lsp.config('*', {
capabilities = capabilities,
})
vim.lsp.enable(servers)
local lsp_group = vim.api.nvim_create_augroup('UserLspAttach', { clear = true })
vim.api.nvim_create_autocmd('LspAttach', {
group = lsp_group,
desc = 'Set buffer-local keymaps and options after an LSP client attaches',
callback = function(args)
local bufnr = args.buf
local client = vim.lsp.get_client_by_id(args.data.client_id)
if not client then
return
end
lspKeys(client, bufnr)
if client.server_capabilities.completionProvider then
vim.bo[bufnr].omnifunc = 'v:lua.vim.lsp.omnifunc'
vim.bo[bufnr].formatexpr = 'v:lua.vim.lsp.formatexpr()'
end
if client.server_capabilities.documentSymbolProvider then
local navic = require('nvim-navic')
navic.attach(client, bufnr)
end
end,
})
end,
}

79
lua/plugins/lualine.lua Normal file
View File

@ -0,0 +1,79 @@
return {
'nvim-lualine/lualine.nvim',
dependencies = {
'nvim-tree/nvim-web-devicons',
'Isrothy/lualine-diagnostic-message',
},
config = function()
require('lualine').setup({
options = {
theme = 'auto',
disabled_filetypes = {
statusline = {},
winbar = { 'dap-repl', 'dapui_console' },
},
section_separators = { left = '', right = '' },
component_separators = { left = '', right = '' },
},
globalstatus = true,
extensions = { 'oil', 'toggleterm' },
sections = {
lualine_b = {
'branch',
'diff',
{
'diagnostics',
sources = { 'nvim_diagnostic' },
},
},
lualine_c = {
{
'getcwd',
},
{
'filename',
path = 1,
file_status = true,
},
{
function() return require('nvim-navic').get_location() end,
cond = function() return package.loaded['nvim-navic'] and require('nvim-navic').is_available() end,
},
},
lualine_y = {
'searchcount',
'progress',
},
},
inactive_sections = {
lualine_c = {
'getcwd',
{
'filename',
path = 1,
file_status = true,
},
},
},
tabline = {
lualine_a = {},
lualine_b = {},
lualine_c = {
{
'tabs',
mode = 2,
tabs_color = {
-- Same values as the general color option can be used here.
active = { bg = 'orange', fg = 'black' },
inactive = { bg = 'grey', fg = 'black' },
},
},
},
lualine_x = {},
lualine_y = {},
lualine_z = {},
},
})
end,
enabled = true,
}

View File

@ -0,0 +1,9 @@
return {
'mireq/luasnip-snippets',
dependencies = { 'L3MON4D3/LuaSnip' },
init = function()
-- Mandatory setup function
require('luasnip_snippets.common.snip_utils').setup()
end,
enabled = false,
}

111
lua/plugins/luasnip.lua Normal file
View File

@ -0,0 +1,111 @@
return {
'L3MON4D3/LuaSnip',
dependencies = { 'rafamadriz/friendly-snippets' },
config = function()
local ls = require('luasnip')
ls.setup({
-- Required to automatically include base snippets, like "c" snippets for "cpp"
-- load_ft_func = require('luasnip_snippets.common.snip_utils').load_ft_func,
-- ft_func = require('luasnip_snippets.common.snip_utils').ft_func,
-- To enable auto expansin
enable_autosnippets = true,
-- Uncomment to enable visual snippets triggered using <c-x>
store_selection_keys = '<c-x>',
})
-- some shorthands...
local s = ls.snippet
local sn = ls.snippet_node
local isn = ls.indent_snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local r = ls.restore_node
local l = require('luasnip.extras').lambda
local rep = require('luasnip.extras').rep
local p = require('luasnip.extras').partial
local m = require('luasnip.extras').match
local n = require('luasnip.extras').nonempty
local dl = require('luasnip.extras').dynamic_lambda
local fmt = require('luasnip.extras.fmt').fmt
local fmta = require('luasnip.extras.fmt').fmta
local types = require('luasnip.util.types')
local conds = require('luasnip.extras.expand_conditions')
local function getRegA(capitalize)
local clipboard = vim.fn.getreg('a')
clipboard = clipboard:gsub('^m_', '')
if capitalize then
clipboard = clipboard:gsub('^%l', string.upper)
end
return clipboard
end
ls.snippets = {
cpp = {
s('TEST_F_getset', {
t('TEST_F('),
i(1, 'TestClass'),
t(' ,test_'),
p(getRegA, false),
t({ '_set_get)', '{', ' ' }),
i(2, 'm_object'),
t('.set'),
p(getRegA, true),
t('('),
i(3, '32.F'),
t({ ');', ' ' }),
i(4, 'EXPECT_EQ('),
rep(3),
t(', '),
rep(2),
t('.get'),
p(getRegA, true),
t({ '());', '' }),
t({ '', '}', '' }),
}),
s('TEST_fn_getset', {
t('void '),
p(getRegA, false),
t('_'),
i(1, 'get'),
t('_'),
i(2, 'set'),
t({ '()', '{', ' ' }),
i(3, 'm_object'),
t('.set'),
p(getRegA, true),
t('('),
i(4, '32.F'),
t({ ');', ' ' }),
i(5, 'EXPECT_EQ('),
rep(4),
t(', '),
rep(3),
t('.get'),
p(getRegA, true),
t({ '());', '' }),
t({ '', '}', '', '' }),
t('TEST_F('),
i(5),
t(' ,test_'),
p(getRegA, false),
t({ '_set_get)', '{', ' ' }),
p(getRegA, false),
t('_'),
rep(1),
t('_'),
rep(2),
t({ '();' }),
t({ '', '}' }),
}),
},
}
require('luasnip.loaders.from_vscode').lazy_load()
require('luasnip.loaders.from_vscode').lazy_load({ paths = { './my-snippets' } })
end,
cmd = 'LuaSnipListAvailable',
}

View File

@ -0,0 +1,17 @@
return {
'iamcco/markdown-preview.nvim',
cmd = {
'MarkdownPreviewToggle',
'MarkdownPreview',
'MarkdownPreviewStop',
},
branch = 'master',
ft = { 'markdown' },
build = function() vim.fn['mkdp#util#install']() end,
init = function()
vim.g.mkdp_auto_close = 0
vim.g.mkdp_auto_start = 0
vim.g.mkdp_combine_preview = 1
vim.g.mkdp_combine_preview_auto_refresh = 1
end,
}

20
lua/plugins/mason.lua Normal file
View File

@ -0,0 +1,20 @@
return {
'williamboman/mason.nvim',
dependencies = {
'WhoIsSethDaniel/mason-tool-installer.nvim',
},
build = ':MasonUpdate',
branch = 'main',
config = function()
require('mason').setup({
ui = {
border = 'rounded',
},
})
require('mason-tool-installer').setup({
-- a list of all tools you want to ensure are installed upon
-- start
})
end,
}

View File

@ -0,0 +1,5 @@
return {
'echasnovski/mini.sessions',
version = '*',
config = function() require('mini.sessions').setup() end,
}

View File

@ -0,0 +1,20 @@
return {
'echasnovski/mini.surround',
version = '*',
config = function()
require('mini.surround').setup({
mappings = {
add = '<leader>aa', -- Add surrounding in Normal and Visual modes
delete = '<leader>ad', -- Delete surrounding
find = '<leader>af', -- Find surrounding (to the right)
find_left = '<leader>aF', -- Find surrounding (to the left)
highlight = '<leader>ah', -- Highlight surrounding
replace = '<leader>ar', -- Replace surrounding
update_n_lines = '<leader>an', -- Update `n_lines`
suffix_last = 'l', -- Suffix to search with "prev" method
suffix_next = 'n', -- Suffix to search with "next" method
},
})
end,
}

10
lua/plugins/mini_ai.lua Normal file
View File

@ -0,0 +1,10 @@
return {
'echasnovski/mini.ai',
config = function()
require('mini.ai').setup({
-- Number of lines within which textobject is searched
n_lines = 150,
search_method = 'cover',
})
end,
}

32
lua/plugins/neogen.lua Normal file
View File

@ -0,0 +1,32 @@
return {
'danymat/neogen',
dependencies = 'nvim-treesitter/nvim-treesitter',
opts = {
enabled = true,
languages = {
cpp = {
template = {
annotation_convention = 'custom',
custom = {
{ nil, '/// file', { no_results = true, type = { 'file' } } },
{ nil, '/// $1', { no_results = true, type = { 'func', 'file' } } },
{ nil, '', { no_results = true, type = { 'file' } } },
{ nil, '/// $1', { type = { 'func' } } },
{ 'tparam', '/// \\tparam %s $1' },
{ 'parameters', '/// \\param %s $1' },
{ 'return_statement', '/// \\return $1' },
},
},
},
},
},
keys = {
{
'<leader>n',
function() require('neogen').generate({}) end,
desc = 'Add comment',
},
},
cmd = 'Neogen',
}

24
lua/plugins/neogit.lua Normal file
View File

@ -0,0 +1,24 @@
return {
branch = 'master',
'TimUntersberger/neogit',
dependencies = {
'nvim-lua/plenary.nvim',
'sindrets/diffview.nvim',
},
config = function()
local neogit = require('neogit')
neogit.setup({
integrations = {
diffview = true,
},
graph_style = 'unicode',
})
end,
keys = {
{
'<space>t',
function() require('neogit').open() end,
},
},
cmd = { 'Neogit ' },
}

35
lua/plugins/neotest.lua Normal file
View File

@ -0,0 +1,35 @@
return {
'nvim-neotest/neotest',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-treesitter/nvim-treesitter',
'antoinemadec/FixCursorHold.nvim',
'nvim-neotest/neotest-python',
},
config = function()
local pythonVenv = require('utils.python_venv')
require('neotest').setup({
adapters = {
require('neotest-python')({
dap = {
justMyCode = false,
},
runner = 'pytest',
python = pythonVenv.getPythonEnv,
}),
},
})
end,
keys = {
{
'<F3>',
function() require('neotest').run.run() end,
desc = 'Run nearest test',
},
{
'<S-F3>',
function() require('neotest').run.run({ strategy = 'dap' }) end,
desc = 'Run nearest test',
},
},
}

View File

@ -0,0 +1,9 @@
return {
'brenoprata10/nvim-highlight-colors',
config = true,
opts = {
render = 'background', -- or 'foreground' or 'virtual',
enable_named_colors = true,
},
cmd = { 'HighlightColors' },
}

22
lua/plugins/nvim-lint.lua Normal file
View File

@ -0,0 +1,22 @@
return {
'mfussenegger/nvim-lint',
config = function()
require('lint').linters_by_ft = {
cpp = { 'clangtidy' },
}
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
callback = function()
-- try_lint without arguments runs the linters defined in `linters_by_ft`
-- for the current filetype
require('lint').try_lint()
-- You can call `try_lint` with a linter name or a list of names to always
-- run specific linters, independent of the `linters_by_ft` configuration
-- require('lint').try_lint('cspell')
end,
})
end,
ft = {
'cpp',
},
}

View File

@ -0,0 +1,17 @@
return {
'notjedi/nvim-rooter.lua',
opts = {
rooter_patterns = {
'.git',
'_darcs',
'.hg',
'.bzr',
'.svn',
'Makefile',
'package.json',
'build_nvim',
'real_path.txt',
'conaninfo.txt',
},
},
}

36
lua/plugins/oil.lua Normal file
View File

@ -0,0 +1,36 @@
return {
'stevearc/oil.nvim',
opts = {
delete_to_trash = true,
default_file_explorer = true,
skip_confirm_for_simple_edits = true,
view_options = {
-- Show files and directories that start with "."
show_hidden = true,
},
keymaps = {
['g?'] = 'actions.show_help',
['<CR>'] = 'actions.select',
['<C-s>'] = 'actions.select_vsplit',
['<C-h>'] = 'actions.select_split',
['<C-t>'] = 'actions.select_tab',
['<C-p>'] = 'actions.preview',
['<C-c>'] = 'actions.close',
['<C-l>'] = 'actions.refresh',
['<backspace>'] = 'actions.parent',
['_'] = 'actions.open_cwd',
['`'] = 'actions.cd',
['~'] = 'actions.tcd',
['g.'] = 'actions.toggle_hidden',
},
},
lazy = false,
dependencies = { 'nvim-tree/nvim-web-devicons' },
keys = {
{
'-',
function() require('oil').open() end,
desc = 'Open oil',
},
},
}

31
lua/plugins/overseer.lua Normal file
View File

@ -0,0 +1,31 @@
return {
'stevearc/overseer.nvim',
config = function()
require('overseer').setup({
templates = { 'builtin', 'user.cmake.cmake', 'user.clang.clang-tidy' },
})
end,
keys = {
{
'<f4>',
function() require('overseer').run_template() end,
mode = { 'n', 'x' },
desc = 'Start task (overseer)',
},
},
cmd = {
'OverseerOpen',
'OverseerClose',
'OverseerToggle',
'OverseerSaveBundle',
'OverseerLoadBundle',
'OverseerDeleteBundle',
'OverseerRunCmd',
'OverseerRun',
'OverseerInfo',
'OverseerBuild',
'OverseerQuickAction',
'OverseerTaskAction',
'OverseerClearCache',
},
}

View File

@ -0,0 +1,6 @@
return {
'HiPhish/rainbow-delimiters.nvim',
dependencies = 'nvim-treesitter/nvim-treesitter',
event = 'VeryLazy',
version = false,
}

View File

@ -0,0 +1,11 @@
return {
'MeanderingProgrammer/render-markdown.nvim',
dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
---@module 'render-markdown'
---@type render.md.UserConfig
opts = {
completions = { blink = { enabled = true } },
ft = { 'markdown', 'codecompanion', 'Avante' },
},
ft = { 'markdown', 'Avante' },
}

View File

@ -0,0 +1,39 @@
return {
'mrcjkb/rustaceanvim',
ft = { 'rust' },
config = function()
vim.g.rustaceanvim = {
server = {
on_attach = function(client, bufnr)
local options = { noremap = true, silent = false, buffer = bufnr }
vim.keymap.set('n', '<space>y', function() vim.cmd.RustLsp({ 'hover', 'actions' }) end, vim.tbl_extend('error', options, { desc = 'Hover' }))
local group = vim.api.nvim_create_augroup('lsp_document_highlight', { clear = false })
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
callback = function() vim.lsp.buf.document_highlight() end,
buffer = bufnr,
group = group,
desc = 'Document Highlight',
})
vim.api.nvim_create_autocmd('CursorMoved', {
callback = function() vim.lsp.buf.clear_references() end,
buffer = bufnr,
group = group,
desc = 'Clear All the References',
})
vim.api.nvim_create_autocmd({ 'LspDetach' }, {
group = group,
buffer = bufnr,
callback = function()
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds({
group = group,
buffer = bufnr,
})
end,
})
end,
},
}
end,
}

132
lua/plugins/snacks.lua Normal file
View File

@ -0,0 +1,132 @@
return {
'folke/snacks.nvim',
priority = 1000,
version = false,
lazy = false,
---@type snacks.Config
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
bigfile = { enabled = true },
notifier = { enabled = false },
quickfile = { enabled = true },
statuscolumn = { enabled = true },
words = {
enabled = true,
modes = { 'n', 'c' },
},
indent = {
indent = {
only_scope = false,
only_current = false,
},
enabled = true,
animate = {
enabled = true,
},
scope = {
enabled = true,
},
chunk = {
enabled = true,
hl = 'Debug',
},
},
dashboard = {
sections = {
{ section = 'header' },
{ icon = '', title = 'Keymaps', section = 'keys', indent = 2, padding = 1 },
{ icon = '', title = 'Recent Files', section = 'recent_files', indent = 2, padding = 1 },
{ icon = '', title = 'Projects', section = 'projects', indent = 2, padding = 1 },
{ section = 'startup' },
},
},
picker = {
matcher = {
frecency = true,
cwd_bonus = true,
filename_bonus = true,
history_bonus = true,
},
win = {
input = {
keys = {
['<c-t>'] = { 'edit_tab', mode = { 'n', 'i' } },
},
},
},
formatters = {
file = {
truncate = 100,
filename_first = true,
},
},
},
},
keys = {
{ '<space>g', function() Snacks.lazygit() end, desc = 'Lazygit' },
{ '<space>gf', function() Snacks.lazygit.log_file() end, desc = 'Lazygit Current File History' },
{ '<space>gl', function() Snacks.lazygit.log() end, desc = 'Lazygit Log (cwd)' },
{ 'm', function() Snacks.words.jump(vim.v.count1) end, desc = 'Next Reference', mode = { 'n' } },
{ '<S-m>', function() Snacks.words.jump(-vim.v.count1) end, desc = 'Prev Reference', mode = { 'n' } },
-- Top Pickers & Explorer
{ '<leader><space>', function() Snacks.picker.smart() end, desc = 'Smart Find Files' },
{ '<leader>b', function() Snacks.picker.buffers() end, desc = 'Buffers' },
{ '<leader>l', function() Snacks.picker.grep() end, desc = 'Grep' },
{ '<leader>:', function() Snacks.picker.command_history() end, desc = 'Command History' },
{ '<leader>n', function() Snacks.picker.notifications() end, desc = 'Notification History' },
{ '<leader>e', function() Snacks.explorer() end, desc = 'File Explorer' },
-- find
-- { "<leader>fb", function() Snacks.picker.buffers() end, desc = "Buffers" },
-- { "<leader>f", function() Snacks.picker.files({ cwd = vim.fn.stdpath("config") }) end, desc = "Find Config File" },
{ '<leader>f', function() Snacks.picker.files() end, desc = 'Find Files' },
{ '<leader>g', function() Snacks.picker.git_files() end, desc = 'Find Git Files' },
{ '<space>p', function() Snacks.picker.projects() end, desc = 'Projects' },
{ '<leader>o', function() Snacks.picker.recent() end, desc = 'Recent' },
{ '<leader>i', function() Snacks.picker.recent({ filter = { cwd = true } }) end, desc = 'Recent in cwd' },
-- git
{ '<leader>nb', function() Snacks.picker.git_branches() end, desc = 'Git Branches' },
{ '<leader>nl', function() Snacks.picker.git_log() end, desc = 'Git Log' },
{ '<leader>nL', function() Snacks.picker.git_log_line() end, desc = 'Git Log Line' },
{ '<leader>ns', function() Snacks.picker.git_status() end, desc = 'Git Status' },
{ '<leader>nS', function() Snacks.picker.git_stash() end, desc = 'Git Stash' },
{ '<leader>nd', function() Snacks.picker.git_diff() end, desc = 'Git Diff (Hunks)' },
{ '<leader>nf', function() Snacks.picker.git_log_file() end, desc = 'Git Log File' },
-- Grep
{ '<leader>sb', function() Snacks.picker.lines() end, desc = 'Buffer Lines' },
{ '<leader>sB', function() Snacks.picker.grep_buffers() end, desc = 'Grep Open Buffers' },
-- { "<leader>sg", function() Snacks.picker.grep() end, desc = "Grep" },
{ '<leader>d', function() Snacks.picker.grep_word() end, desc = 'Visual selection or word', mode = { 'n', 'x' } },
-- search
-- { '<leader>s"', function() Snacks.picker.registers() end, desc = "Registers" },
-- { '<leader>s/', function() Snacks.picker.search_history() end, desc = "Search History" },
-- { "<leader>sa", function() Snacks.picker.autocmds() end, desc = "Autocmds" },
-- { "<leader>sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" },
-- { "<leader>sc", function() Snacks.picker.command_history() end, desc = "Command History" },
-- { "<leader>sC", function() Snacks.picker.commands() end, desc = "Commands" },
{ '<leader>v', function() Snacks.picker.diagnostics() end, desc = 'Diagnostics' },
{ '<space>V', function() Snacks.picker.diagnostics_buffer() end, desc = 'Buffer Diagnostics' },
{ '<leader>sh', function() Snacks.picker.help() end, desc = 'Help Pages' },
{ '<leader>sH', function() Snacks.picker.highlights() end, desc = 'Highlights' },
{ '<leader>si', function() Snacks.picker.icons() end, desc = 'Icons' },
{ '<leader>j', function() Snacks.picker.jumps() end, desc = 'Jumps' },
{ '<leader>sk', function() Snacks.picker.keymaps() end, desc = 'Keymaps' },
{ '<leader>sl', function() Snacks.picker.loclist() end, desc = 'Location List' },
{ '<leader>sm', function() Snacks.picker.marks() end, desc = 'Marks' },
{ '<leader>sM', function() Snacks.picker.man() end, desc = 'Man Pages' },
{ '<leader>sp', function() Snacks.picker.lazy() end, desc = 'Search for Plugin Spec' },
{ '<leader>sq', function() Snacks.picker.qflist() end, desc = 'Quickfix List' },
{ '<leader>sR', function() Snacks.picker.resume() end, desc = 'Resume' },
{ '<leader>su', function() Snacks.picker.undo() end, desc = 'Undo History' },
-- { "<leader>uC", function() Snacks.picker.colorschemes() end, desc = "Colorschemes" },
-- LSP
{ '<space>d', function() Snacks.picker.lsp_definitions() end, desc = 'Goto Definition' },
{ '<space>D', function() Snacks.picker.lsp_declarations() end, desc = 'Goto Declaration' },
{ '<space>r', function() Snacks.picker.lsp_references() end, nowait = true, desc = 'References' },
{ '<space>I', function() Snacks.picker.lsp_implementations() end, desc = 'Goto Implementation' },
{ '<space>e', function() Snacks.picker.lsp_type_definitions() end, desc = 'Goto T[y]pe Definition' },
{ '<A-m>', function() Snacks.picker.lsp_symbols() end, desc = 'LSP Symbols' },
{ '<leader>sS', function() Snacks.picker.lsp_workspace_symbols() end, desc = 'LSP Workspace Symbols' },
},
}

View File

@ -0,0 +1,9 @@
return {
'folke/todo-comments.nvim',
dependencies = { 'nvim-lua/plenary.nvim' },
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
}

View File

@ -0,0 +1,42 @@
return {
'akinsho/toggleterm.nvim',
config = function()
function _G.set_terminal_keymaps(term)
local opts = { noremap = true }
if term.cmd ~= 'lazygit' then
vim.api.nvim_buf_set_keymap(term.bufnr, 't', '<esc>', [[<C-\><C-n>]], opts)
end
vim.api.nvim_buf_set_keymap(term.bufnr, 't', 'jk', [[<C-\><C-n>]], opts)
vim.api.nvim_buf_set_keymap(term.bufnr, 't', '<C-h>', [[<C-\><C-n><C-W>h]], opts)
vim.api.nvim_buf_set_keymap(term.bufnr, 't', '<C-j>', [[<C-\><C-n><C-W>j]], opts)
vim.api.nvim_buf_set_keymap(term.bufnr, 't', '<C-k>', [[<C-\><C-n><C-W>k]], opts)
vim.api.nvim_buf_set_keymap(term.bufnr, 't', '<C-l>', [[<C-\><C-n><C-W>l]], opts)
end
require('toggleterm').setup({
on_open = set_terminal_keymaps,
})
local Terminal = require('toggleterm.terminal').Terminal
function _lazygit_toggle()
local lazygit = Terminal:new({
cmd = 'lazygit',
direction = 'float',
cwd = function() return vim.fn.getcwd() end,
float_opts = {
border = 'double',
},
-- function to run on opening the terminal
on_open = function(term)
vim.cmd('startinsert!')
vim.api.nvim_buf_set_keymap(term.bufnr, 'n', 'q', '<cmd>close<CR>', { noremap = true, silent = true })
end,
-- function to run on closing the terminal
on_close = function(term) vim.cmd('startinsert!') end,
})
lazygit:open()
end
end,
cmd = 'ToggleTerm',
}

View File

@ -0,0 +1,31 @@
return {
'nvim-treesitter/nvim-treesitter',
version = false,
build = ':TSUpdate',
config = function()
require('nvim-treesitter.install').compilers = { 'clang' }
require('nvim-treesitter.configs').setup({
ensure_installed = '',
modules = {},
sync_install = true,
auto_install = true,
ignore_install = {},
highlight = {
enable = true,
additional_vim_regex_highlighting = { 'markdown' },
},
rainbow = {
enable = true,
extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean
max_file_lines = nil, -- Do not enable for files with more than n lines, int
-- colors = {}, -- table of hex strings
-- termcolors = {} -- table of colour name strings
},
indent = {
enable = false, -- maybe buggy
},
})
vim.treesitter.language.register('groovy', 'java')
require('nvim-treesitter.install').prefer_git = false
end,
}

13
lua/plugins/which-key.lua Normal file
View File

@ -0,0 +1,13 @@
return {
'folke/which-key.nvim',
version = '*',
opts = {
plugins = {
marks = false,
registers = false,
presets = {
operators = false,
},
},
},
}

25
lua/plugins/yanky.lua Normal file
View File

@ -0,0 +1,25 @@
return {
'gbprod/yanky.nvim',
config = function()
require('yanky').setup({
ring = {
history_length = 100,
storage = 'shada',
sync_with_numbered_registers = true,
cancel_event = 'update',
ignore_registers = { '_' },
update_register_on_cycle = false,
},
system_clipboard = {
sync_with_ring = false,
},
})
vim.keymap.set({ 'n', 'x' }, 'p', '<Plug>(YankyPutAfter)')
vim.keymap.set({ 'n', 'x' }, 'P', '<Plug>(YankyPutBefore)')
vim.keymap.set({ 'n', 'x' }, 'gp', '<Plug>(YankyGPutAfter)')
vim.keymap.set({ 'n', 'x' }, 'gP', '<Plug>(YankyGPutBefore)')
vim.keymap.set('n', '<c-p>', '<Plug>(YankyPreviousEntry)')
vim.keymap.set('n', '<c-n>', '<Plug>(YankyNextEntry)')
end,
}

63
lua/themes/astrodark.lua Normal file
View File

@ -0,0 +1,63 @@
return {
'AstroNvim/astrotheme',
lazy = true,
priority = 1000,
config = function()
local C = require('astrotheme.palettes.astrodark')
require('astrotheme').setup({
palette = 'astrodark', -- String of the default palette to use when calling `:colorscheme astrotheme`
termguicolors = true, -- Bool value, toggles if termguicolors are set by AstroTheme.
terminal_color = true, -- Bool value, toggles if terminal_colors are set by AstroTheme.
plugin_default = 'auto', -- Sets how all plugins will be loaded
-- "auto": Uses lazy / packer enabled plugins to load highlights.
-- true: Enables all plugins highlights.
-- false: Disables all plugins.
plugins = { -- Allows for individual plugin overides using plugin name and value from above.
-- ['lualine'] = true,
},
palettes = {
global = {},
astrodark = {},
},
highlights = {
global = {
modify_hl_groups = function(hl, c) end,
},
astrodark = {
modify_hl_groups = function(hl, c) -- modify_hl_groups function allows you to modify hl groups,
hl.Type = { fg = c.Yellow }
hl.Comment = { italic = true }
end,
['@lsp.mod.readonly'] = { bold = true },
['@lsp.type.namespace.cpp'] = { fg = C.rb },
['@lsp.type.variable'] = { fg = C.light_purple },
-- ['@lsp.type.variable'] = { link = '@variable' },
['@variable'] = { fg = C.light_purple, link = '' },
-- ['Function'] = { fg = C.light_cyan },
['@lsp.type.enumMember'] = { fg = C.cyan },
['Comment'] = { italic = true },
['Type'] = { fg = C.dark_orange },
['Structure'] = { link = 'Type' },
['Constant'] = { fg = 'NONE' },
['@parameter'] = { fg = C.toml },
['NormalFloat'] = { bg = C.surface0 },
['TelescopeBorder'] = { bg = C.surface0 },
['TelescopeNormal'] = { bg = C.surface0 },
['TelescopePreviewBorder'] = { link = 'TelescopeBorder' },
['TelescopeResultsBorder'] = { link = 'TelescopeResultsNormal' },
['TelescopePreviewNormal'] = { bg = C.surface0 },
['TelescopeTitle'] = { bg = C.surface0 },
['TelescopePromptNormal'] = { bg = C.surface0 },
['TelescopePromptBorder'] = { link = 'TelescopeBorder' },
},
},
})
vim.cmd('colorscheme astrodark')
end,
enabled = true,
}

82
lua/themes/bamboo.lua Normal file
View File

@ -0,0 +1,82 @@
return {
'ribru17/bamboo.nvim',
lazy = true,
-- priority = 1000,
config = function()
local colors = require('bamboo.palette')
require('bamboo').setup({
dim_inactive = false, -- Dim inactive windows/buffers
lualine = {
transparent = false, -- lualine center bar transparency
},
code_style = {
comments = { italic = false },
conditionals = { italic = false },
keywords = {},
functions = {},
namespaces = { italic = false },
parameters = { italic = false },
strings = {},
variables = {},
},
highlights = {
['@lsp.type.comment'] = { link = '@comment', default = true },
['@comment'] = { fg = colors.vulgaris.light_grey, default = true },
['@lsp.type.parameter'] = { fg = colors.vulgaris.red },
['@lsp.mod.readonly'] = { fmt = 'bold', fg = 'NONE' },
['@lsp.typemod.parameter.readonly'] = { fmt = 'bold', fg = 'NONE' },
['@lsp.typemod.method.defaultLibrary.cpp'] = { fg = 'NONE' },
['@function.builtin'] = { fg = 'NONE' },
['LspReferenceRead'] = { bg = colors.vulgaris.green, fg = colors.vulgaris.bg1, fmt = 'nocombine' },
['LspReferenceWrite'] = { bg = colors.vulgaris.red, fg = colors.vulgaris.bg1, fmt = 'nocombine' },
['LspReferenceText'] = { bg = colors.vulgaris.cyan, fg = colors.vulgaris.bg1, fmt = 'nocombine' },
-- ['NormalFloat'] = { bg = colors.vulgaris.bg3, fmt = 'nocombine' },
-- ['FloatBorder'] = { bg = colors.vulgaris.bg_d, fmt = 'nocombine' },
['SnacksPickerList'] = { bg = colors.vulgaris.bg_d, fmt = 'nocombine' },
['SnacksPickerListCursorLine'] = { bg = colors.vulgaris.bg3, fmt = 'nocombine' },
['SnacksPickerPrompt'] = { bg = colors.vulgaris.bg_d, fmt = 'nocombine' },
['SnacksPickerInput'] = { bg = colors.vulgaris.bg_d, fmt = 'nocombine' },
['SnacksPickerPreview'] = { bg = colors.vulgaris.bg_d, fmt = 'nocombine' },
['SnacksPickerInputBorder'] = { bg = colors.vulgaris.bg_d, fmt = 'nocombine' },
['NonText'] = { fg = colors.vulgaris.blue },
['BlinkCmpMenu'] = { bg = colors.vulgaris.bg2 },
['BlinkCmpDoc'] = { bg = colors.vulgaris.bg2 },
['CmpDocumentation'] = { bg = colors.vulgaris.bg2 },
['BlinkCmpMenuSelection'] = { bg = colors.vulgaris.grey },
['PmenuSel'] = { bg = '#282C34', fg = 'NONE' },
['Pmenu'] = { fg = '#C5CDD9', bg = colors.vulgaris.bg3 },
['CmpItemAbbrDeprecated'] = { fg = '#7E8294', bg = 'NONE', strikethrough = true },
['CmpItemAbbrMatch'] = { fg = '#82AAFF', bg = 'NONE', bold = true },
['CmpItemAbbrMatchFuzzy'] = { fg = '#82AAFF', bg = 'NONE', bold = true },
['CmpItemMenu'] = { fg = '#C792EA', bg = 'NONE', italic = true },
['CmpItemKindField'] = { fg = '#EED8DA', bg = '#B5585F' },
['CmpItemKindProperty'] = { fg = '#EED8DA', bg = '#B5585F' },
['CmpItemKindEvent'] = { fg = '#EED8DA', bg = '#B5585F' },
['CmpItemKindText'] = { fg = '#C3E88D', bg = '#9FBD73' },
['CmpItemKindEnum'] = { fg = '#C3E88D', bg = '#9FBD73' },
['CmpItemKindKeyword'] = { fg = '#C3E88D', bg = '#9FBD73' },
['CmpItemKindConstant'] = { fg = '#FFE082', bg = '#D4BB6C' },
['CmpItemKindConstructor'] = { fg = '#FFE082', bg = '#D4BB6C' },
['CmpItemKindReference'] = { fg = '#FFE082', bg = '#D4BB6C' },
['CmpItemKindFunction'] = { fg = '#EADFF0', bg = '#A377BF' },
['CmpItemKindStruct'] = { fg = '#EADFF0', bg = '#A377BF' },
['CmpItemKindClass'] = { fg = '#EADFF0', bg = '#A377BF' },
['CmpItemKindModule'] = { fg = '#EADFF0', bg = '#A377BF' },
['CmpItemKindOperator'] = { fg = '#EADFF0', bg = '#A377BF' },
['CmpItemKindVariable'] = { fg = '#C5CDD9', bg = '#7E8294' },
['CmpItemKindFile'] = { fg = '#C5CDD9', bg = '#7E8294' },
['CmpItemKindUnit'] = { fg = '#F5EBD9', bg = '#D4A959' },
['CmpItemKindSnippet'] = { fg = '#F5EBD9', bg = '#D4A959' },
['CmpItemKindFolder'] = { fg = '#F5EBD9', bg = '#D4A959' },
['CmpItemKindMethod'] = { fg = '#DDE5F5', bg = '#6C8ED4' },
['CmpItemKindValue'] = { fg = '#DDE5F5', bg = '#6C8ED4' },
['CmpItemKindEnumMember'] = { fg = '#DDE5F5', bg = '#6C8ED4' },
['CmpItemKindInterface'] = { fg = '#D8EEEB', bg = '#58B5A8' },
['CmpItemKindColor'] = { fg = '#D8EEEB', bg = '#58B5A8' },
['CmpItemKindTypeParameter'] = { fg = '#D8EEEB', bg = '#58B5A8' },
},
})
require('bamboo').load()
end,
enabled = false,
}

15
lua/themes/everforest.lua Normal file
View File

@ -0,0 +1,15 @@
return {
'neanias/everforest-nvim',
version = false,
lazy = true,
priority = 1000, -- make sure to load this before all the other start plugins
-- Optional; default configuration will be used if setup isn't called.
config = function()
require('everforest').setup({
background = 'hard',
-- Your config here
})
require('everforest').load()
end,
enabled = true,
}

View File

@ -0,0 +1,42 @@
return {
'projekt0n/github-nvim-theme',
lazy = false, -- make sure we load this during startup if it is your main colorscheme
priority = 1000, -- make sure to load this before all the other start plugins
config = function()
require('github-theme').setup({
options = {
dim_inactive = true,
modules = {
'cmp',
-- 'coc',
-- 'coc_explorer',
'dapui',
-- 'diffchar',
-- 'dashboard',
'diagnostic',
-- 'fidget',
-- 'fzf',
'gitgutter',
'gitsigns',
'indent_blankline',
'lsp_semantic_tokens',
-- 'lsp_trouble',
-- 'mini',
'native_lsp',
'neogit',
'neotree',
-- 'notify',
-- 'nvimtree',
'telescope',
'treesitter',
'treesitter_context',
'whichkey',
},
},
})
-- vim.cmd('colorscheme github_dark')
vim.cmd('colorscheme github_dark_dimmed')
end,
enabled = false,
}

View File

@ -0,0 +1,7 @@
return {
'luisiacc/gruvbox-baby',
lazy = true,
priority = 1000, -- make sure to load this before all the other start plugins
config = function() vim.cmd('colorscheme gruvbox-baby') end,
enabled = true,
}

37
lua/themes/gruvbox.lua Normal file
View File

@ -0,0 +1,37 @@
return {
'ellisonleao/gruvbox.nvim',
priority = 1000,
lazy = true,
branch = 'main',
config = function()
-- local colors = require('gruvbox.palette').colors
require('gruvbox').setup({
undercurl = true,
underline = true,
bold = false,
italic = {
strings = false,
comments = true,
operators = false,
folds = true,
},
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
invert_intend_guides = false,
palette_overrides = {},
overrides = {
-- ['@lsp.type.parameter'] = { fg = colors.faded_purple },
['@lsp.type.function'] = { fg = '#797df2' },
['@lsp.type.method'] = { fg = '#797df2' },
['@lsp.mod.readonly'] = { bold = true },
},
dim_inactive = true,
transparent_mode = false,
})
vim.cmd('colorscheme gruvbox')
end,
enabled = true,
}

View File

@ -0,0 +1,19 @@
return {
'eddyekofo94/gruvbox-flat.nvim',
priority = 1000,
config = function()
local colors = require('gruvbox.colors')
vim.g.gruvbox_flat_style = 'dark'
vim.g.gruvbox_colors = {
bg_search = 'purple',
fg_search = 'black',
}
vim.g.gruvbox_theme = {
Pmenu = { bg = 'bg_visual' },
NormalFloat = { bg = 'bg_visual' },
}
vim.g.gruvbox_dark_float = false
vim.cmd('colorscheme gruvbox-flat')
end,
enabled = false,
}

View File

@ -0,0 +1,42 @@
return {
'sainnhe/gruvbox-material',
priority = 1000,
config = function()
-- local colors = require('gruvbox.colors')
-- vim.g.gruvbox_flat_style = "dark"
-- vim.g.gruvbox_colors = {
-- bg_search = 'purple',
-- fg_search = 'black',
-- }
-- vim.g.gruvbox_theme = {
-- Pmenu = { bg = 'bg_visual' },
-- NormalFloat = { bg = 'bg_visual' }
-- }
-- vim.g.gruvbox_dark_float = false
vim.g.gruvbox_material_ui_contrast = 'high'
vim.g.gruvbox_material_dim_inactive_windows = 1 -- Dim inactive windows. Only works in neovim currently.
vim.g.gruvbox_material_disable_terminal_colors = 0
local links = {
['@lsp.type.namespace'] = '@namespace',
['@lsp.type.type'] = '@type',
['@lsp.type.class'] = '@type',
['@lsp.type.enum'] = '@type',
['@lsp.type.interface'] = '@type',
['@lsp.type.struct'] = '@structure',
['@lsp.type.parameter'] = '@parameter',
['@lsp.type.variable'] = '@variable',
['@lsp.type.property'] = '@property',
['@lsp.type.enumMember'] = '@constant',
['@lsp.type.function'] = '@function',
['@lsp.type.method'] = '@method',
['@lsp.type.macro'] = '@macro',
['@lsp.type.decorator'] = '@function',
}
-- for newgroup, oldgroup in pairs(links) do
-- vim.api.nvim_set_hl(0, newgroup, { link = oldgroup, default = true })
-- end
vim.cmd('colorscheme gruvbox-material')
vim.api.nvim_set_hl(0, '@lsp.mod.readonly', { italic = true, fg = 'Purple' })
end,
enabled = false,
}

40
lua/themes/kanagawa.lua Normal file
View File

@ -0,0 +1,40 @@
return {
'rebelot/kanagawa.nvim',
lazy = false,
priority = 1000,
config = function()
require('kanagawa').setup({
compile = false, -- enable compiling the colorscheme
undercurl = true, -- enable undercurls
commentStyle = { italic = true },
functionStyle = {},
keywordStyle = { italic = true },
statementStyle = { bold = true },
typeStyle = {},
transparent = false, -- do not set background color
dimInactive = false, -- dim inactive window `:h hl-NormalNC`
terminalColors = true, -- define vim.g.terminal_color_{0,17}
colors = {
-- add/modify theme and palette colors
palette = {},
theme = { wave = {}, lotus = {}, dragon = {}, all = {} },
},
overrides = function(colors) -- add/modify highlights
return {
['@lsp.mod.readonly'] = { bold = true },
['@lsp.mod.static'] = { italic = true },
['LspReferenceRead'] = { bg = colors.palette.lotusGreen, fg = colors.palette.dragonBlack0 },
['LspReferenceWrite'] = { bg = colors.palette.samuraiRed, fg = colors.palette.dragonBlack0 },
}
end,
theme = 'wave', -- Load "wave" theme when 'background' option is not set
background = {
-- map the value of 'background' option to a theme
dark = 'wave', -- try "dragon" !
light = 'lotus',
},
})
require('kanagawa').load('wave')
end,
enabled = true,
}

77
lua/themes/material.lua Normal file
View File

@ -0,0 +1,77 @@
return {
'marko-cerovac/material.nvim',
priority = 1000,
config = function()
local colors = require('material.colors')
require('material').setup({
contrast = {
terminal = false, -- Enable contrast for the built-in terminal
sidebars = false, -- Enable contrast for sidebar-like windows ( for example Nvim-Tree )
floating_windows = true, -- Enable contrast for floating windows
cursor_line = false, -- Enable darker background for the cursor line
non_current_windows = true, -- Enable darker background for non-current windows
filetypes = {}, -- Specify which filetypes get the contrasted (darker) background
},
styles = { -- Give comments style such as bold, italic, underline etc.
comments = { --[[ italic = true ]]
},
strings = { --[[ bold = true ]]
},
keywords = { --[[ underline = true ]]
},
functions = { --[[ bold = true, undercurl = true ]]
},
variables = {},
operators = {},
types = {},
},
plugins = { -- Uncomment the plugins that you use to highlight them
-- Available plugins:
'dap',
-- "dashboard",
'gitsigns',
-- "hop",
'indent-blankline',
-- "lspsaga",
-- "mini",
-- "neogit",
-- "neorg",
'nvim-cmp',
'nvim-navic',
-- "nvim-tree",
'nvim-web-devicons',
-- "sneak",
'telescope',
-- "trouble",
'which-key',
},
disable = {
colored_cursor = false, -- Disable the colored cursor
borders = false, -- Disable borders between verticaly split windows
background = false, -- Prevent the theme from setting the background (NeoVim then uses your terminal background)
term_colors = false, -- Prevent the theme from setting terminal colors
eob_lines = false, -- Hide the end-of-buffer lines
},
high_visibility = {
lighter = false, -- Enable higher contrast text for lighter style
darker = true, -- Enable higher contrast text for darker style
},
lualine_style = 'default', -- Lualine style ( can be 'stealth' or 'default' )
async_loading = true, -- Load parts of the theme asyncronously for faster startup (turned on by default)
custom_colors = nil, -- If you want to everride the default colors, set this to a function
custom_highlights = {}, -- Overwrite highlights with your own
})
vim.g.material_style = 'darker'
vim.cmd('colorscheme material')
end,
enabled = false,
}

View File

@ -0,0 +1,64 @@
return {
'loctvl842/monokai-pro.nvim',
lazy = true,
config = function()
require('monokai-pro').setup({
-- filter = 'spectrum'
override = function(c)
return {
['@lsp.type.class'] = { link = 'Structure' },
['@lsp.type.decorator'] = { link = 'Function' },
['@lsp.type.enum'] = { link = 'Structure' },
['@lsp.type.enumNumber'] = { link = 'Constant' },
['@lsp.type.function'] = { link = 'Function' },
['@lsp.type.interface'] = { link = 'Structure' },
['@lsp.type.macro'] = { link = 'Macro' },
-- ['@lsp.type.method'] = { link = 'Function' },
['@lsp.type.namespace'] = { link = 'Identifier' },
['@lsp.type.parameter'] = { link = '@lsp.typemod.parameter.declaration' },
['@lsp.type.property'] = { link = 'Identifier' },
['@lsp.type.struct'] = { link = 'Structure' },
['@lsp.type.type'] = { link = 'Type' },
['@lsp.type.typeParameter'] = { link = 'TypeDef' },
['@lsp.type.variable'] = { link = 'Identifier' },
-- mod
-- ["@lsp.mod.declaration"] = { fg = c.base.cyan },
-- ["@lsp.mod.definition"] = { fg = c.base.cyan },
-- ["@lsp.mod.readonly"] = { fg = c.base.magenta },
-- ["@lsp.mod.static"] = {},
['@lsp.mod.deprecated'] = { strikethrough = true },
-- ["@lsp.mod.abstract"] = {},
-- ["@lsp.mod.async"] = {},
-- ["@lsp.mod.modification"] = {},
-- ["@lsp.mod.documentation"] = {},
-- ["@lsp.mod.defaultLibrary"] = {},
['@lsp.typemod.class.defaultLibrary'] = { fg = c.base.white },
-- ["@lsp.typemod.decorator"] = {},
-- ["@lsp.typemod.enum"] = {},
-- ["@lsp.typemod.enumNumber"] = {},
['@lsp.typemod.function.declaration'] = { fg = c.base.green },
['@lsp.typemod.function.defaultLibrary'] = { fg = c.base.blue },
-- ["@lsp.typemod.interface"] = {},
-- ["@lsp.typemod.macro"] = {},
-- ["@lsp.typemod.method"] = {},
['@lsp.typemod.namespace'] = { fg = c.base.red },
-- ['@lsp.typemod.parameter.declaration'] = { fg = c.base.blue, italic = styles.parameter.italic },
['@lsp.typemod.property'] = { fg = '#9699f2' },
-- ["@lsp.typemod.struct"] = {},
-- ["@lsp.typemod.type"] = {},
-- ["@lsp.typemod.typeParameter"] = {},
['@lsp.typemod.variable.readonly'] = { fg = c.base.magenta },
-- ['@lsp.type.parameter'] = { fg = '#797df2' },
-- ['@lsp.type.function'] = { fg = '#797df2' },
-- ['@lsp.type.method'] = { fg = '#797df2' },
['@lsp.mod.readonly'] = { bold = true },
}
end,
})
vim.cmd('colorscheme monokai-pro')
end,
enabled = true,
}

View File

@ -1,16 +1,12 @@
local utils = { }
local utils = {}
local scopes = {o = vim.o, b = vim.bo, w = vim.wo}
local scopes = { o = vim.o, b = vim.bo, w = vim.wo }
function utils.opt(scope, key, value)
scopes[scope][key] = value
if scope ~= 'o' then scopes['o'][key] = value end
scopes[scope][key] = value
if scope ~= 'o' then
scopes['o'][key] = value
end
end
function utils.map(mode, lhs, rhs, opts)
local options = {noremap = true}
if opts then options = vim.tbl_extend('force', options, opts) end
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end
return utils
return utils

View File

@ -0,0 +1,53 @@
local M = {}
local function str_splice(string, start_idx, end_idx)
local new_content = string:sub(1, start_idx - 1)
if end_idx then
return new_content .. string:sub(end_idx + 1)
else
return new_content
end
end
local function str_rfind(string, idx, needle)
for i = idx, 1, -1 do
if string:sub(i, i - 1 + needle:len()) == needle then
return i
end
end
end
local function get_to_line_end(string, idx)
local newline = string:find('\n', idx, true)
local to_end = newline and string:sub(idx, newline - 1) or string:sub(idx)
return to_end, newline
end
M.decode_json = function(content)
local ok, data = pcall(vim.json.decode, content, { luanil = { object = true } })
while not ok do
local char = data:match('invalid token at character (%d+)$')
if char then
local to_end, newline = get_to_line_end(content, char)
if to_end:match('^//') then
content = str_splice(content, char, newline)
goto continue
end
end
char = data:match('Expected object key string but found [^%s]+ at character (%d+)$')
char = char or data:match('Expected value but found T_ARR_END at character (%d+)')
if char then
local comma_idx = str_rfind(content, char, ',')
if comma_idx then
content = str_splice(content, comma_idx, comma_idx)
goto continue
end
end
error(data)
::continue::
ok, data = pcall(vim.json.decode, content, { luanil = { object = true } })
end
return data
end
return M

122
lua/utils/python_venv.lua Normal file
View File

@ -0,0 +1,122 @@
local M = {}
function M.getVenvSuffix()
if vim.loop.os_uname().sysname == 'Linux' then
return 'bin/python'
elseif vim.loop.os_uname().sysname == 'Windows_NT' then
return 'Scripts/python.exe'
end
end
function M.getVenvFromJson(jsonfile)
if not vim.fn.filereadable(jsonfile) then
return nil
end
local f = io.open(jsonfile, 'r')
if not f then
return nil
end
local data = f:read('*a')
f:close()
if data then
local jdata = vim.json.decode(data)
if jdata['venvPath'] ~= nil and jdata['venv'] ~= nil then
return jdata['venvPath'] .. '/' .. jdata['venv']
end
end
return nil
end
function M.getPythonEnv()
local venv = os.getenv('VIRTUAL_ENV')
if venv ~= nil then
return string.format('%s/%s', venv, M.getVenvSuffix())
end
local conda = os.getenv('CONDA_PREFIX')
if conda ~= nil then
return string.format('%s/%s', conda, 'python.exe')
end
local cwd = vim.fn.getcwd()
local jsonVenv = M.getVenvFromJson(cwd .. '/pyrightconfig.json')
if jsonVenv ~= nil then
return jsonVenv .. '/' .. M.getVenvSuffix()
end
if vim.fn.executable(cwd .. '/venv/' .. M.getVenvSuffix()) == 1 then
return cwd .. '/venv/' .. M.getVenvSuffix()
elseif vim.fn.executable(cwd .. '/.venv/' .. M.getVenvSuffix()) == 1 then
return cwd .. '/.venv/' .. M.getVenvSuffix()
else
if vim.loop.os_uname().sysname == 'Linux' then
return '/usr/bin/python'
elseif vim.loop.os_uname().sysname == 'Windows_NT' then
return os.getenv('SCOOP') .. '/apps/python/current/python.exe'
end
end
end
function M.getPythonEnvs()
local venvs = {}
local venv = os.getenv('VIRTUAL_ENV')
if venv ~= nil then
table.insert(venvs, {
name = 'VIRTUAL_ENV',
path = string.format('%s/%s', venv, M.getVenvSuffix()),
})
end
local conda = os.getenv('CONDA_PREFIX')
if conda ~= nil then
table.insert(venvs, {
name = 'CONDA_PREFIX',
path = string.format('%s/%s', conda, 'python.exe'),
})
end
local cwd = vim.fn.getcwd()
local jsonVenv = M.getVenvFromJson(cwd .. '/pyrightconfig.json')
if jsonVenv ~= nil then
table.insert(venvs, {
name = 'pyrightconfig.json',
path = jsonVenv .. '/' .. M.getVenvSuffix(),
})
end
local venvDirs = { 'venv', '.venv' }
for _, envDir in pairs(venvDirs) do
if vim.fn.executable(cwd .. '/' .. envDir .. '/' .. M.getVenvSuffix()) == 1 then
table.insert(venvs, {
name = envDir,
path = cwd .. '/' .. envDir .. '/' .. M.getVenvSuffix(),
})
end
end
if vim.loop.os_uname().sysname == 'Linux' then
table.insert(venvs, {
name = 'system',
path = '/usr/bin/python',
})
end
if vim.loop.os_uname().sysname == 'Windows_NT' then
table.insert(venvs, {
name = 'system',
path = os.getenv('SCOOP') .. '/apps/python/current/python.exe',
})
end
return venvs
end
M.pick_venv = function()
vim.ui.select(M.getPythonEnvs(), {
prompt = 'Select python venv',
format_item = function(item) return string.format('%s (%s)', item.name, item.path) end,
}, function(choice)
if not choice then
return
end
print(choice.path)
end)
end
return M

0
my-snippets/all.json Normal file
View File

12
my-snippets/cpp.json Normal file
View File

@ -0,0 +1,12 @@
{
"test_getter": {
"prefix": "test_getter",
"body": [
"TEST(${1:TestClass}, ${2:TestFunction}",
"{",
"\tget${CLIPBOARD}()",
"};"
],
"description": "Code snippet for testing the getter"
}
}

19
my-snippets/package.json Normal file
View File

@ -0,0 +1,19 @@
{
"name": "my-snippets",
"contributes": {
"snippets": [
{
"language": [
"all"
],
"path": "all.json"
},
{
"language": [
"cpp"
],
"path": "cpp.json"
}
]
}
}

14
my_snippets/cpp.json Normal file
View File

@ -0,0 +1,14 @@
{
"TEST_F for g/setter": {
"prefix": "TEST_F_getter",
"body": [
"TEST_F($1, test_${CLIPBOARD/m_(.*)/${1}/}_${2:setter}_${3:getter})",
"{",
" set${CLIPBOARD/m_(.)(.*)/${1:/upcase}${2}/}($4);",
" ${5:type} result = get${CLIPBOARD/m_(.)(.*)/${1:/upcase}${2}/}();",
" EXPECT_EQ($4, result);$0",
"}"
],
"description": "Generate TEST_F body for getter and setter functions"
}
}

14
my_snippets/package.json Normal file
View File

@ -0,0 +1,14 @@
{
"name": "my_snippets",
"engines": {
"vscode": "^1.11.0"
},
"contributes": {
"snippets": [
{
"language": "cpp",
"path": "./cpp.json"
}
]
}
}

19
pyproject.toml Normal file
View File

@ -0,0 +1,19 @@
# pyproject.toml
[tool.pytest.ini_options]
minversion = "6.0"
addopts = "-ra -q"
testpaths = [
"tests",
]
[tool.pyright]
venv = "venv"
venvPath = './'
reportOptionalMemberAccess = 'warning'
reportGeneralTypeIssues = 'warning'
analyzeUnannotatedFunctions = 'false'
executionEnvironments = [
{ root = "./" }
]
[tool.black]
line-length=120

4
pyrightconfig.json Normal file
View File

@ -0,0 +1,4 @@
{
"venvPath": ".",
"venv": "venvVis"
}

9
readme.md Normal file
View File

@ -0,0 +1,9 @@
# pre-commit
Install with
```bash
pre-commit install
```
`stylua` has to be installed in the system

7
stylua.toml Normal file
View File

@ -0,0 +1,7 @@
column_width = 160
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferSingle"
call_parentheses = "Always"
collapse_simple_statement = "FunctionOnly"