Compare commits

..

249 Commits

Author SHA1 Message Date
32cdfa5e26 chore(main): release 11.3.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-18 23:30:40 +02:00
673975ebbe feat(cmp): create undo point right before confirming a completion 2024-05-18 23:28:38 +02:00
96aa4b8877 fix(plugin): typo () 2024-05-18 22:31:13 +02:00
649fa9d521 fix(keymaps): delete lazygit keymap when using gitui ()
* fix(keymaps): delete lazygit keymap when using gitui

* Update gitui.lua
2024-05-18 21:55:54 +02:00
4614666d1e fix(ibl): remove ibl fix since it's been fixed upstream 2024-05-18 21:53:26 +02:00
d8644c4715 feat(mini.ai): mini.ai is back in core with some improved features. Removing it was a mistake. 2024-05-18 21:53:26 +02:00
4105c0ad3a feat(util): added Util.is_loaded 2024-05-18 21:53:26 +02:00
fe552853f5 fix(treesitter): refactored treesitter code and fixed nvim-treesitter-textobjects 2024-05-18 21:53:26 +02:00
4bc9389bb5 refactor(snippets): refactored snippet code 2024-05-18 21:53:26 +02:00
eb6c9fb578 fix(mini.starter): changes based on echasnovski's recommendation () 2024-05-18 18:14:35 +02:00
a4d83524a7 fix(lsp): move next/prev reference keymaps to lsp keymaps. See 2024-05-18 15:46:35 +02:00
9080959981 chore(main): release 11.2.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-18 15:07:54 +02:00
30b8169cb2 docs: updated news on new recommended extras 2024-05-18 14:53:20 +02:00
d514e2fa93 feat(extras): added trouble-v3 and mini-hipatterns to recommended 2024-05-18 14:47:31 +02:00
c29213416b feat(extras): added recommended detectors for all languages 2024-05-18 14:39:20 +02:00
03ea7f6f98 feat(root): added support for *.xxx root patterns 2024-05-18 14:38:53 +02:00
ef3bd3bd02 feat(extras): tags some extras as recommended 2024-05-18 14:12:26 +02:00
16eb3d9473 feat(extras): added a recommended plugin/language section to :LazyExtras 2024-05-18 14:11:50 +02:00
434883632c perf(yanky): switch to shada backend. It seems much faster than sqlite 2024-05-18 12:46:03 +02:00
180d9516fd fix(extras): remove treesitter-rewrite extra for now 2024-05-18 12:10:32 +02:00
c653c4a9a5 perf(comments): vim.schedule ts-context-commentstring integration 2024-05-18 12:09:07 +02:00
1d23c98da1 fix(comments): better way of using ts-context-commentstring with native comments 2024-05-18 12:05:19 +02:00
72abb893ac fix(bufferline): force update bufferline after BufDelete. Closes 2024-05-18 11:32:50 +02:00
3a193d3aa8 fix(indent-blankline): temp fix for tbl_flatten on 0.9.x 2024-05-18 11:28:06 +02:00
08925421e8 fix(trouble-v3): add neovim version check 2024-05-18 11:28:06 +02:00
9c212d655a fix(leap): add label to renamed surround mappings key group () 2024-05-18 10:11:05 +02:00
cf328429b1 chore(build): auto-generate vimdoc 2024-05-18 08:08:21 +00:00
dc66887b57 fix(mini.starter): buf_id in refresh() is not an identifier of valid … ()
* fix(mini.starter): buf_id in refresh() is not an identifier of valid Starter buffer

Fixes .

* fix(mini.starter): just do `do VimResized` for simpler approach
2024-05-18 10:07:33 +02:00
9176a6bc22 docs: remove mention of treesitter-rewrite from NEWS.md 2024-05-17 22:45:20 +02:00
87bb766123 fix(treesitter): disable treesitter-rewrite extra for now. not ready yet 2024-05-17 22:38:59 +02:00
EJ
39bec71ce9 fix(refactoring): add label to refactoring key group () 2024-05-17 20:08:28 +02:00
23374f160a fix(util.toggle): correctly toggle inlay_hints ()
`is_enabled` also accepts a `filter` and when we initially toggle
`inlay_hints` on
[here](735f5905f8/lua/lazyvim/plugins/lsp/init.lua (L153)),
we pass a `bufnr` which sets the `inlay_hints` in the `bufstate` (see
[here](42aa69b076/runtime/lua/vim/lsp/inlay_hint.lua (L407-L432))),
but when we call `is_enabled` without a filter table the returned result
if from the `globalstate` (see
  [here](42aa69b076/runtime/lua/vim/lsp/inlay_hint.lua (L376-L388))).
2024-05-17 20:06:17 +02:00
735f5905f8 chore(main): release 11.1.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-17 15:53:23 +02:00
19674e8047 fix(util): use bdelete for buf remove 2024-05-17 15:49:50 +02:00
c8b7912eb9 chore(main): release 11.1.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-17 14:35:42 +02:00
2e1c945f61 fix(bufferline): correctly configure bufferline to use the new bufremove util 2024-05-17 14:27:00 +02:00
289c2f81c4 perf(coding): dont load vim.snippet early 2024-05-17 14:27:00 +02:00
6aef1989bd chore(main): release 11.1.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-17 13:15:12 +02:00
b1ea356e6c fix(util.lsp): add desc for keymaps reference () 2024-05-17 11:19:34 +02:00
779de263f1 feat(util): mini.bufremove is no longer needed 2024-05-17 10:10:31 +02:00
87493af237 fix(lsp): dont try to highlight refs for deleted buffers 2024-05-17 10:10:31 +02:00
47c90209f3 docs(news.md): fix typo in native snippets announcement () 2024-05-17 09:23:11 +02:00
f8de965d3e feat(options): new option to disable deprecation warnings. warnings will be hidden bydefault 2024-05-17 09:19:28 +02:00
cc99b219de feat(lsp): document highlights now use native lsp. vim-illuminate is available as an extra 2024-05-17 09:19:28 +02:00
960ec8079b fix: deprecation warning on diagnostic.is_disabled 2024-05-17 09:19:28 +02:00
03653dbe35 chore(build): auto-generate vimdoc 2024-05-17 06:52:57 +00:00
ec673a83ff fix(treesitter-rewrite): add missed local Config () 2024-05-17 08:52:25 +02:00
07923f3701 chore(main): release 11.0.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-16 22:30:31 +02:00
639dfce010 fix(treesitter-rewrite): show error in Extras only when enabled () 2024-05-16 22:28:25 +02:00
14872fa816 fix(util): get opts from parsing specs instead of plugins 2024-05-16 22:14:57 +02:00
76f9dbb40c refactor: use LazyVim.opts 2024-05-16 22:11:55 +02:00
58cf6f971b fix(news.md): correct phrase to disable inlay_hints 2024-05-16 22:03:49 +02:00
e7ee289c7f chore(main): release 11.0.0 2024-05-16 21:27:45 +02:00
3b74ef793f feat(keymaps): added leader-uI to open InspectTree 2024-05-16 21:25:51 +02:00
b739eb3503 fix(treesitter-rewrite): disable vim-illuminate 2024-05-16 21:25:51 +02:00
960e958548 feat(lsp): enable inlay hints by default on Neovim 0.10 2024-05-16 21:25:51 +02:00
2de7f24530 docs: update 2024-05-16 21:25:51 +02:00
73126e30c7 docs: updated news for 11.0 release 2024-05-16 21:25:51 +02:00
20081460b6 feat(extras): added extra for the nvim-treesitter rewrite. Some plugins are not compatible and will be disabled. 2024-05-16 21:25:51 +02:00
66dc9c09d6 feat(util)!: move vim-startuptime to an extra 2024-05-16 21:25:51 +02:00
4f4911ff95 feat(coding)!: move mini.ai to an extra 2024-05-16 21:25:51 +02:00
e37a699096 feat(mini.surround)!: move mini.surround to an extra 2024-05-16 21:25:51 +02:00
69e6daae2c feat(ui)!: move mini.indentscope to an extra 2024-05-16 21:25:51 +02:00
03704e2299 feat(ui)!: moved treesitter-context to an extra. No longer a core plugin 2024-05-16 21:25:51 +02:00
9839f10013 refactor: comments code 2024-05-16 21:25:51 +02:00
3c4ebd522e feat(coding)!: native snippets are now the default on Neovim 0.10. Install the luasnip extra to get luasnip back 2024-05-16 21:25:51 +02:00
d999be7401 feat(coding)!: use native comments on 0.10, with support for ts_context_commentstring 2024-05-16 21:25:51 +02:00
f02507b159 feat(util): set_upvalue 2024-05-16 21:25:51 +02:00
9fe8b15928 fix(health): add warning when not using 0.10.0 2024-05-16 21:25:51 +02:00
8dae76c1fd fix(dap): use jsonc support from plenary. Same as the code from neoconf. Fixes 2024-05-16 16:44:01 +02:00
2391ac0420 refactor(options): refactored options 2024-05-16 16:37:26 +02:00
183d6eea60 fix(dap): add debugger to filetypes mapping for launch.json () 2024-05-16 11:57:56 +02:00
6e7ba50141 fix(cmp): never auto bracket for snippets and correct prev char check. Fixes 2024-05-16 08:07:36 +02:00
97d7b2d262 chore(build): auto-generate vimdoc 2024-05-16 05:59:54 +00:00
44d51e5a65 refactor(options): prefer opt in place of vim.opt () 2024-05-16 07:59:19 +02:00
b601ade71c chore(main): release 10.25.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-15 18:12:55 +02:00
f25ac504b8 perf(yanky): remove performance optim for sqlite since it has been merged upstream 2024-05-15 18:09:55 +02:00
c70a78e631 fix(cmp): dont add autobrackets if prev char is a bracket. Closes 2024-05-15 16:23:42 +02:00
fc5ee49495 fix(gitsigns): update deprecated hunk nav mappings () 2024-05-15 16:15:11 +02:00
9337db17c2 fix(autocmds): remove query from q-to-quit autocmd () 2024-05-15 16:12:18 +02:00
9b7e4b7c03 docs(README-DE.md): improves German README ()
- Translates remaining English text
- Fixes a couple of spelling and grammar issues
2024-05-15 16:11:27 +02:00
36802fea19 fix(keymaps): better up/down keymaps description () 2024-05-15 16:10:06 +02:00
d36e3a5c73 fix(extras.lang.typescript): support node debug type along with pwa-node ()
* feat(typescript): add "node" debug adapter

add "node" debug adapter for compatibility with .vscode/launch.json

* refactor: ...

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-05-15 16:08:15 +02:00
a8659d02b9 feat(omnisharp): support neotest dotnet ()
Co-authored-by: Rafał Schmidt <rafal.schmidt@allegro.com>
2024-05-15 16:01:24 +02:00
16e6c86b27 feat(terraform): ensure tflint is installed () 2024-05-15 15:56:16 +02:00
914ca4a455 feat(noice): added keymap <leader>snt to show Noice messages in telescope. Fixes 2024-05-15 15:53:19 +02:00
91ead22116 feat(lua_ls): configure default lua_ls inlay hint settings 2024-05-15 15:48:46 +02:00
2c86da7c2d feat(typescript): configure inlayHint ()
* feat(typescript): configure inlayHint
since LazyVim have toggle inlayhint keymap, it make sense to configure
them for each extra languages provided. In this commit I just add the
configuration for typescript, since IDK how to configure the rest of
lang extras that was provided.

* fix: changed defaults

---------

Co-authored-by: Radvil <radvil.linux@gmail.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-05-15 15:45:13 +02:00
543dead590 fix(dap): load vscode launch files with jsonc parser ()
This seems to be the proper fix for . jsonc ensures compatibility
with native vscode.

Ref: https://github.com/mfussenegger/nvim-dap/issues/964
2024-05-15 15:39:28 +02:00
a97fa3b756 feat(lua): added LazyVim as a treesitter builtin 2024-05-15 15:31:08 +02:00
12a48b8ce1 feat(snippet): add friendly-snippets to native extra () 2024-05-15 12:11:29 +02:00
6a2545025e fix(lsp): check if diagnostics.signs is disabled by user () 2024-05-15 11:29:55 +02:00
1892ebad78 chore(build): auto-generate vimdoc 2024-05-15 06:49:36 +00:00
9047d041a8 perf(yanky): schedule_wrap sqlite push to history to prevent blocking Neovim on copy/paste 2024-05-15 08:48:58 +02:00
3c04789ef1 fix(clangd): update the attribute name for process ID ()
The attribute name for picked process id when attaching the debugger is `pid`, not `processId`
2024-05-14 22:37:27 +02:00
1df3c5d70b fix(dial): Fix dial commands in Visual line+block () 2024-05-14 22:36:31 +02:00
3585d61c93 style: remove debug :) 2024-05-14 22:25:44 +02:00
cffed60fe4 chore(build): auto-generate vimdoc 2024-05-14 19:43:45 +00:00
965a469ca8 perf(startup): render a file opened from the cmdline as soon as possible and get rid of lazy_file logic 2024-05-14 21:43:02 +02:00
b29d169afb perf(treesitter): load treesitter early during startup when opening a file from the cmdline 2024-05-14 21:41:56 +02:00
8301096c31 perf(treesitter): dont let nvim-treesitter-textobjects stall loading treesitter 2024-05-14 21:36:43 +02:00
39901c1f00 fix(fzf-native): try rebuilding fzf-native when needed. Fixes 2024-05-13 08:53:20 +02:00
abb1ff0d60 fix(ansible): ansiblels not loading, keymap desc. ()
If lazy extras yaml is enabled, yamlls was being loaded not ansiblels.

Add ft = {} to nvim-ansible spec allows ft=yaml.ansible to be detected.

Re-mapped nvim-ansible plugin key to not conflict with neotest.

Added a description for the keymap.
2024-05-13 08:21:33 +02:00
c54eeb5390 fix(lazyfile): exclude filetypedetect from skips () 2024-05-13 08:20:34 +02:00
36b59b2608 chore(build): auto-generate vimdoc 2024-05-13 05:03:43 +00:00
8087283fea fix(rust): update creates.nvim src option to completion () 2024-05-13 07:03:10 +02:00
73de8dde2b feat(extras): add refactoring.nvim ()
* feat(editor): add refactoring.nvim

More on:
https://github.com/ThePrimeagen/refactoring.nvim#features

* Update lua/lazyvim/plugins/extras/editor/refactoring.lua

Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>

* Update lua/lazyvim/plugins/extras/editor/refactoring.lua

Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>

* indent fixes

---------

Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>
2024-05-12 22:12:05 +02:00
f4490252fb feat(vue): add Vue.js support to LazyVim () 2024-05-12 22:10:32 +02:00
e89653f410 fix(pretty_path): properly escape % characters 2024-05-12 22:08:13 +02:00
a0afe8fef9 fix(dot): remove .env => sh since this is already the default 2024-05-12 18:23:14 +02:00
42010d1dfb fix(dot): use syntax sh for dotenv files. Closes 2024-05-12 16:39:00 +02:00
cfe87ba894 chore(main): release 10.24.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-12 10:15:27 +02:00
8968c9e9ea feat(mason-lspconfig): allow opts.ensure_installed to be taken into account () 2024-05-12 10:09:54 +02:00
30ce84f7a7 fix(neo-tree): correctly set up cwd ()
* fix(neo-tree): correctly set up `cwd`

* refactor: cleanup

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-05-12 10:08:55 +02:00
f7450a5236 chore(build): auto-generate vimdoc 2024-05-12 07:58:05 +00:00
30c9e4718a fix(ui): don't lazy-load dashboard-nvim ()
As https://github.com/nvimdev/dashboard-nvim/pull/450, dashboard-nvim
shouldn't be lazy-loaded to properly handle stdin
2024-05-12 09:57:29 +02:00
530e94a9fa chore(main): release 10.23.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-03 16:21:45 +02:00
34183a2759 fix(python): make both ruff and ruff_lsp available to user ()
* fix(python): make both `ruff` and `ruff_lsp` available to user

Provide global variable to choose between `ruff` and `ruff_lsp` in
accordance to `pyright`/`basedpyright`

* refactor(python): ruff stuff

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-05-03 09:23:31 +02:00
a96348d7b0 fix(extras): Rust-Analyzer cargo option ()
* fix(extras): Rust-Analyzer cargo option

* fix(extras): Rust-Analyzer cargo option
2024-05-03 09:17:55 +02:00
b8475f5194 feat(lualine): make path trimming configurable by user ()
* feat(lualine): make path trimming configurable by user

* fix: always split both forward/backward slashes

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-05-03 09:16:50 +02:00
6004e8d4f6 fix(native_snippets): Fix native_snippets for vim.snippet api changes () 2024-05-03 09:11:25 +02:00
095bc13188 style(keymaps): clarify no to use LazyVim.safe_keymap_set
* Update keymaps.lua

add more explanation about what to use

* Update keymaps.lua

* fix typo YOU => YOUR
2024-05-03 09:10:36 +02:00
9d734c5ae2 chore(build): auto-generate vimdoc 2024-05-03 07:07:12 +00:00
3086bf03e9 fix(dot): install when list is empty () 2024-05-03 09:06:33 +02:00
f086bcde25 chore(build): auto-generate vimdoc 2024-04-23 06:55:09 +00:00
5fb4cf0d36 fix(dot): can't match kitty conf file () 2024-04-23 08:54:32 +02:00
9b4675ddde chore(main): release 10.22.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-22 10:19:46 +02:00
9da13ef7e8 fix(trouble-v3): fix telescope integration 2024-04-22 10:00:48 +02:00
0fa63603af fix(trouble_v3): keymap previous is deprecated, use prev instead () 2024-04-22 09:56:00 +02:00
6fdbc623e0 fix(edgy): proper way of opening neo-tree. Fixes 2024-04-22 09:54:32 +02:00
15b09e800b feat(dot): add more filetypes ()
Adds dotenv files support for file names like
prod.env
.env
.env.xyz

Also adds configurationfiletypes rofi, wofi and vimfmrc
2024-04-22 09:49:16 +02:00
ceb4855b43 fix(trouble_v3): show error only when trouble_v3 is enabled () 2024-04-22 09:48:05 +02:00
79fed97f23 fix(harpoon): harpoon2 deprecated message ()
* fix(config): harpoon2 deprecated message when adding new file to list and fix auto save on file list toggle

* fix: Update harpoon2.lua to add pleanery dep

* fix: no need for plenary deps here

---------

Co-authored-by: Alan Alvarenga <alan.alvarengamejia@telus.com>
Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-04-22 09:45:59 +02:00
cd04b58fe3 feat(python): use new ruff instead of ruff_lsp () 2024-04-22 09:40:09 +02:00
5f92dc5304 fix(toggle): use new inlay_hint.enable() signature () 2024-04-22 09:36:05 +02:00
7834d77ada chore(build): auto-generate vimdoc 2024-04-22 07:35:47 +00:00
74eb25d579 ci: update action versions to remove node warning ()
Since Node.js 16 actions are deprecated, and updating the actions to use
Node.js 20 is recommended. All actions in `ci.yml` have a newer version,
this change bumps the actions to next versions.
2024-04-22 09:35:17 +02:00
bb36f71b77 chore(build): auto-generate vimdoc 2024-04-11 15:24:29 +00:00
9e3af1070f feat(git): <leader>gb for Git Blame Line 2024-04-11 17:23:46 +02:00
32eacde793 fix(mini.pairs): better default for ```` 2024-04-11 17:23:17 +02:00
97480dc5d2 feat(dot): add bashls and shellcheck () 2024-03-29 22:10:03 +01:00
50b7f426f2 fix(harpoon): optimizes harpoon keys () 2024-03-29 14:51:56 +01:00
5646ee5191 chore(main): release 10.21.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-29 10:08:37 +01:00
aaa10e717d fix(lsp): better support for diagnostics icons on Neovim nightly/stable 2024-03-29 09:45:52 +01:00
64f86147f9 fix(lsp): dont define diagnostics signs on >= 0.10.0 2024-03-29 09:45:52 +01:00
349ae03f09 fix: merge conflict 2024-03-29 09:45:31 +01:00
f308867570 fix(native_snippets): don't try to enable native snippets on Neovim < 0.10.0 and show warning 2024-03-29 09:44:40 +01:00
0af1fd82d7 chore(main): release 10.21.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-29 08:19:18 +01:00
914f26d04e fix(tex): don't override conceallevel for tex. Not sure why that was added 2024-03-29 07:56:32 +01:00
3def2097ad chore(build): auto-generate vimdoc 2024-03-29 06:28:38 +00:00
80a8b18be6 feat(trouble): enabled edgy 2024-03-29 07:27:55 +01:00
754467525b feat(trouble): added <leader>cS to open a trouble list of all references / definitions / ... of the item under the cursor 2024-03-29 07:27:43 +01:00
3166236ff8 fix(mini.move): default mini.move setup already maps the correct keys 2024-03-29 00:21:52 +01:00
20b2806a8f chore(main): release 10.20.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-28 23:57:49 +01:00
4ca0bf69dd fix(trouble-v3): use the filtered symbols list for lualine 2024-03-28 23:55:41 +01:00
b26be29330 chore(main): release 10.20.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-28 23:51:31 +01:00
8f1fb60f0a feat(extras): use mini.move instead of native move () 2024-03-28 23:49:48 +01:00
e29c7acd2d feat(extras): added extra for mini.diff 2024-03-28 23:41:54 +01:00
a786c471df fix(statuscolumn): right align signs when virtnum > 0 2024-03-28 23:25:06 +01:00
9a2f773090 fix(trouble): show message if use hasnt updated with Lazy yet after enabling the extra 2024-03-28 22:49:35 +01:00
bb6aa98cbf feat(extras): added extra for the trouble.nvim v3 beta 2024-03-28 22:11:55 +01:00
dd54a29cc5 chore(build): auto-generate vimdoc 2024-03-28 20:33:40 +00:00
d95c2ba1dc feat(python): enable auto_brackets for python, since pyright and basedpyright dont support this natively 2024-03-28 21:32:37 +01:00
bf8ce8076e feat(cmp): added option auto_brackets that adds brackets to functions/methods in configured filetypes 2024-03-28 21:32:09 +01:00
cfbd358273 fix(nvim-lint): don't duplicate linters. Fixes 2024-03-27 16:54:38 +01:00
e3075b05ef fix(config): type filter was broken for telescope symbols 2024-03-27 15:04:41 +01:00
c901640167 chore(main): release 10.19.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-27 11:28:17 +01:00
d945137a32 fix(python-semshi): better highlights () 2024-03-27 11:23:26 +01:00
bb1480a6b9 feat(lazygit): allow customizing the lazygit theme. Check the code to change the hl group mapping. Fixes 2024-03-27 11:19:06 +01:00
6ed771de9d fix(lazygit): use Visual instead of CursorLine for selected line. Fixes 2024-03-27 10:43:32 +01:00
ce5917a589 fix(lazygit): error handling for getting lazygit's config path 2024-03-27 10:21:09 +01:00
2a8bfccc3e chore(build): auto-generate vimdoc 2024-03-27 07:57:14 +00:00
eb9f9a8862 fix(keymaps): update all keymap descriptions to be Title Case () 2024-03-27 08:56:44 +01:00
7d570fad79 fix(autocmds): auto create directory on windows for uris. Fixes 2024-03-26 20:48:56 +01:00
1910cd5cb7 refactor: use LazyVim.is_win() 2024-03-26 20:48:56 +01:00
1de90e7e4c chore(main): release 10.18.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-26 20:33:06 +01:00
76b037dcc1 feat(extras): add dial extra ()
* feat: add dial extra

* refactor: removed print statements

* fix(extras): early return for dial extra

* refactor: dials_by_ft like conform, nvim-lint. Simplified buffer specific groups

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-03-26 20:26:08 +01:00
fd0677fb9a fix(terminal): dont use backdrop for edgy terminal windows 2024-03-26 19:55:14 +01:00
426cd3ed91 feat(lazygit): configure lazygit nvim-remote as editor and enable nerdfont icons
can be disabled with `vim.g.lazygit_config = false`
2024-03-26 19:55:14 +01:00
55c2527dfe chore(main): release 10.17.3 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-26 17:41:37 +01:00
f3655c33a3 perf(notify): disable animation notifications. too big impact on performance for too little benefit
To keep using animations, you can set stages = fade_in_slide_out for the
nvim-notify plugin
2024-03-26 17:35:27 +01:00
49a1afab53 chore(main): release 10.17.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-26 15:30:56 +01:00
a26ca7bf56 fix(lazygit): dont error when setting ansi color fails. Fixes 2024-03-26 15:24:16 +01:00
20efdd44da chore(main): release 10.17.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-26 13:46:01 +01:00
bfe8c608a3 fix(lazygit): allow overriding default terminal options 2024-03-26 13:42:57 +01:00
4796dba8f7 chore(main): release 10.17.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-26 12:47:36 +01:00
7d0dbc6ded feat(lazygit): lazygit now automatically uses colors from your Neovim colorscheme
Disable by setting `vim.g.lazygit_theme = false` in your `options.lua`
2024-03-26 12:43:07 +01:00
c00e3aa6b1 feat(util): added util function to get a fg/bg color from the active colorscheme 2024-03-26 12:43:07 +01:00
1d2cb7d8d1 chore(build): auto-generate vimdoc 2024-03-26 08:28:44 +00:00
3e5a5dd621 feat(python): allow configuring other python lsp servers than pyright, basedpyright 2024-03-26 09:28:08 +01:00
9e07a6615a chore(build): auto-generate vimdoc 2024-03-23 07:15:37 +00:00
b74ef23a27 feat(neo-tree): add mapping "O" to open with system default ()
* feat(neo-tree): add mapping "O" to open with system default

* feat(neo-tree): add OS checks for system default open commands

* Use `vim.ui.open` if exists

* update OS checks

* Just use vim.ui.open or throw error if doesn't exist

* Make "O" undefined mapping if vim.ui.open isn't available

* fix: use lazy's util.open instead

---------

Co-authored-by: Uthman Mohamed <83053931+1239uth@users.noreply.github.com>
Co-authored-by: saeedahsan <ahsan02@gmail.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-03-23 08:15:04 +01:00
7ab6285011 feat(options): Disable foldtext for nightly ()
* chores(format.lua): Fix typo

* Change gitsigns.nvim hunk preview shortcut

Change `preview_hunk` to recently added `preview_hunk_inline` command

* feat(options): remove redundant commented line

* feat(options): use native folding

see https://github.com/neovim/neovim/pull/20750
2024-03-22 10:38:10 +01:00
c91982a8bc chore(main): release 10.16.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-22 10:33:16 +01:00
4b8fe44c08 fix: add shim for vim.uv just in case someone upgrades lazyvim before lazy 2024-03-22 10:30:35 +01:00
69aedc2657 fix(cmake): lazy load cmake-tools. Fixes 2024-03-22 10:23:09 +01:00
1c13a5c10b feat(telescope-fzf-native): added support for building with cmake. Fixes 2024-03-22 10:00:22 +01:00
8d31bf230c fix(java): dont error when not using cmp. Fixes 2024-03-22 09:54:24 +01:00
3d4ab4eb26 feat(lazyterm): optional shell setup, mainly for pwsh. Fixes 2024-03-22 09:49:07 +01:00
7a5dbeae75 feat: use LazyVim everywhere instead of require("lazyvim.util") 2024-03-22 09:15:09 +01:00
3a87c08cda feat: use vim.uv everywhere instead of vim.loop 2024-03-22 09:02:34 +01:00
7f333f006f chore(build): auto-generate vimdoc 2024-03-22 06:18:48 +00:00
213493e766 fix(format): Don't leak bufnr into opts tables () 2024-03-22 07:18:15 +01:00
70bc880330 chore(build): auto-generate vimdoc 2024-03-21 13:51:23 +00:00
4187417158 fix(python): basedpyright is now supported by mason-lspconfig 2024-03-20 22:25:59 +01:00
6e57e86c99 feat: added LazyVim global. Will refactor specs later to use that 2024-03-20 17:26:50 +01:00
1661759d33 fix(util.telescope): make show_untracked configurable () 2024-03-20 17:25:39 +01:00
642bcf168b chore(main): release 10.15.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-20 17:19:56 +01:00
f6db6054e3 chore(build): auto-generate vimdoc 2024-03-20 16:18:58 +00:00
f055265bff feat(python): added option to configure basedpyright as lsp. Check the python extra docs. Fixes 2024-03-20 17:18:11 +01:00
fa0e538838 fix(lsp): dont auto install disabled lsp servers 2024-03-20 14:13:28 +01:00
1432f318b6 chore(main): release 10.14.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-19 22:44:49 +01:00
f655139281 feat(mini.ai): add more objects d,e,g,u,U () 2024-03-19 22:31:00 +01:00
52ee7ef696 fix(format): format injected langs does not wait 300ms () 2024-03-19 22:29:56 +01:00
ed44b246b4 feat(lualine): add modified_sign to pretty_path ()
Closes 

I left the initial text blank on purpose, so that it doesn't change
anything stylistically and let the user decide what he wants to add
in his personal configuration for `lualine` spec.
2024-03-19 22:28:31 +01:00
6a37171df6 fix(extras): accept symlinks in User extras directory () 2024-03-19 22:28:00 +01:00
b8c6d87825 chore(build): auto-generate vimdoc 2024-03-19 21:02:56 +00:00
393a9c7c7a fix(neotest): add required nvim-nio to test and dap extra (neotest and nvim-dap-ui respectively) ()
* Adding required nvim-nio to neotest in test-core

neotest now requires nvim-neotest/nvim-nio to be
installed as per BREAKING CHANGE: https://github.com/nvim-neotest/neotest/pull/337

* Adding nvim-nio as dependency

nvim-dap-ui now requires  nvim-neotest/nvim-nio as a dependency as of recent changes
2024-03-19 22:02:22 +01:00
e1d39b624f chore(build): auto-generate vimdoc 2024-03-18 10:24:36 +00:00
d8d380a60e fix(lazygit): make sure we start lazygit in a valid git root 2024-03-18 11:23:55 +01:00
864c58cae6 chore(build): auto-generate vimdoc 2024-03-15 17:02:05 +00:00
42a7e79d5a fix(git): use compatible function for windows and linux () 2024-03-15 18:01:33 +01:00
0107a1079b chore(main): release 10.13.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-14 17:16:28 +01:00
623297efa6 fix(which-key): add group description for folds ()
Signed-off-by: Jeff Davis <mr.jefedavis@gmail.com>
2024-03-14 17:12:47 +01:00
991523431f fix(mini.files): description for g. keybinding in mini.files ()
If you press `g` in a mini.files menu, the `.` key shows up but doesn't have a description. This adds a desc attribute to the binding so the menu shows a correct description.
2024-03-14 17:12:23 +01:00
843032ef1c fix(markdown): disable headlines.nvim bullets for now 2024-03-14 16:53:00 +01:00
0ba731a879 fix(markdown): disable headlines.nvim in insert mode. Fixes 2024-03-14 16:39:23 +01:00
98c8226e21 chore(build): auto-generate vimdoc 2024-03-14 13:15:16 +00:00
afca0b7876 fix(conform): make lsp_fallback option user configurable () 2024-03-14 14:14:41 +01:00
2a666ac5f2 fix(rust): don't overwrite vim.g.rustaceanvim if it is defined () 2024-03-14 00:07:40 +01:00
d2f7cb0462 chore(build): auto-generate vimdoc 2024-03-13 23:07:24 +00:00
0ec7a9040b feat(git): add <leader>gf for lazygit commit history on current file ()
* Add <leader>gf for lazygit commit history on current file

* Change root dir to git root using git command

* refactor: cleanup

---------

Co-authored-by: Uthman Mohamed <83053931+1239uth@users.noreply.github.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-03-14 00:06:47 +01:00
cca2e09149 chore(build): auto-generate vimdoc 2024-03-11 22:14:34 +00:00
1c9f4160a2 fix(options): dont set clipboard in an SSH session, so that OSC52 can be enabled (when supported) 2024-03-11 23:13:51 +01:00
78e6405f90 chore(build): auto-generate vimdoc 2024-03-10 08:46:17 +00:00
d3761eded7 feat(lualine): add more hl options to pretty_path ()
* feat(lualine): add more hl options to pretty_path

Adds two additional options to pretty_path: filename_hl and dirpath_hl.

This allows users to customize the highlight group of both the directory
component of the path name and the filenname independently. modified_hl
is still used when the buffer has been modified.

Thanks to dpetka2001 (Iordanis Petkakis) for the changes to the format
function.

* feat: cleanup

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-03-10 09:45:40 +01:00
aa9fb1fd23 chore(build): auto-generate vimdoc 2024-03-09 08:00:17 +00:00
b12e742458 fix(terraform-extra): Drop unnecessary commentstring config for terraform ()
* fix(terraform-extra): Drop unnecessary commentstring config for terraform

The commentstring for terraform and hcl files is now handled by nvim-ts-context-commentstring:



* Fixed terraform.lua issues. I'm bad.
2024-03-09 08:59:44 +01:00
e3bfcb9bf7 chore(main): release 10.12.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-08 11:55:40 +01:00
935bc2283f fix(extras): prevent duplicate extra imports 2024-03-08 11:51:18 +01:00
ee2e876252 fix(extras): automatically rename extra symbols-outline => outline. Fixes 2024-03-08 11:47:17 +01:00
7415231855 fix(hi-patterns): correct regex for shorthand hex colors. See ##2562 2024-03-08 11:31:45 +01:00
166942251d chore(build): auto-generate vimdoc 2024-03-08 10:23:09 +00:00
04bc5718a5 fix(haskell): Make Haskell-snippets lazy load for performance ()
* fix(haskell): add filetype to haskell-snippets for lazy load

* format haskell.lua

---------

Co-authored-by: Uthman Mohamed <83053931+1239uth@users.noreply.github.com>
2024-03-08 11:22:36 +01:00
c0ad2209b6 chore(main): release 10.12.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-07 20:45:12 +01:00
4745314074 fix(extras): set correct priority for outline extra. Fixes 2024-03-07 20:43:13 +01:00
139c41c18e feat(lang): replace rust-tools.nvim with rustacean.nvim
dummy commit to trigger changelog.
original commit message was not correct and didnt get picked up by the changelog
2024-03-07 20:41:12 +01:00
5cabc2ff5b chore(main): release 10.11.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-07 19:04:38 +01:00
c6736ef2b8 fix(extras): show rename of symbols-outline => outline 2024-03-07 18:59:14 +01:00
97 changed files with 3035 additions and 1103 deletions

@ -11,7 +11,7 @@ jobs:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Install Neovim
shell: bash
run: |
@ -31,7 +31,7 @@ jobs:
needs: tests
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: panvimdoc
uses: kdheepak/panvimdoc@main
with:
@ -40,7 +40,7 @@ jobs:
demojify: true
treesitter: true
- name: Push changes
uses: stefanzweifel/git-auto-commit-action@v4
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "chore(build): auto-generate vimdoc"
commit_user_name: "github-actions[bot]"
@ -54,14 +54,14 @@ jobs:
- tests
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v3
- uses: google-github-actions/release-please-action@v4
id: release
with:
release-type: simple
package-name: LazyVim
extra-files: |
lua/lazyvim/config/init.lua
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: tag stable versions
if: ${{ steps.release.outputs.release_created }}
run: |

File diff suppressed because it is too large Load Diff

82
NEWS.md

@ -1,7 +1,89 @@
# What's new?
## 11.x
- `mini.ai` is back as a default plugin! Removing it was a mistake.
It's a great plugin that enhances the native text objects.
- `:LazyExtras` now has multiple new sections:
- **Enabled**: extras that are currently enabled
- **Recommended Languages**: language extras recommended for the current buffer / directory
- **Recommended Plugins**: extras that are recommended for most users
- **Plugins**: other plugin extras
- **Languages**: other language extras
- new option `vim.g.deprecation_warnings` to disable deprecation warnings
Defaults to `false`. To disable, set it to `true` in your `options.lua`
- `vim-illuminate` move to extras
Document highlights now use native lsp functionality by default
Since Neovim 0.10 has been released, I've been working on a new version of **LazyVim**
that is fully compatible with all the latest Neovim features.
Additionally, some core plugins have been moved to extras.
- `native snippets` are now the default on Neovim 0.10
Older versions of Neovim will use the new `luasnip` extra.
- `native comments` are now the default on Neovim 0.10
Older versions of Neovim will use the new `mini-comment` extra.
`nvim-ts-context-commentstring` has been integrated in the native comments.
- `inlay hints` have been in **LazyVim** for a while, but are now
enabled by default. To disable them:
```lua
{
"nvim-lspconfig",
opts = {
inlay_hints = { enabled = false },
}
}
```
- plugins moved to extras:
- `mini.surround`
- `mini.indentscope` scopes are now also highlighted with `indent-blankline`
- `nvim-treesitter-context`
## 10.x
- added new extra for [mini.diff](https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-diff.md)
This is a plugin similar to gitsigns but with a neat diff overlay
that can be toggled with `<leader>go`.
- **trouble.nvim** has been rewritten from scratch and is now in beta.
I've added a new extra for it (`trouble-v3`) for those of you who want to try it out.
You can find the updated docs [here](https://github.com/folke/trouble.nvim/tree/dev)
- The **lazygit** integration now configures:
- the theme based on the colorscheme
- nerd font icons (v3)
- editor preset is set to `nvim-remote` for better interop with Neovim
- The option `vim.g.lazygit_theme` was renamed to `vim.g.lazygit_config`
- **lazygit** now automatically uses the colors of your current colorscheme.
This is enabled by default. To disable, add the below to your `options.lua`:
```lua
vim.g.lazygit_config = false
```
- Added support for `basedpyright` to the **python** extra.
Enable in your `options.lua` with:
```lua
vim.g.lazyvim_python_lsp = "basedpyright"
```
Be aware that `basedpyright` is still in development and
may not work exactly the same as `pyright`.
- User extras under `lua/plugins/extras` can now also be managed
with **LazyExtras**

@ -5,11 +5,11 @@
<hr>
<h4 align="center">
<a href="https://lazyvim.github.io/installation">Install</a>
<a href="https://lazyvim.github.io/installation">Installieren</a>
·
<a href="https://lazyvim.github.io/configuration">Configure</a>
<a href="https://lazyvim.github.io/configuration">Konfigurieren</a>
·
<a href="https://lazyvim.github.io">Docs</a>
<a href="https://lazyvim.github.io">Dokumentation</a>
</h4>
<div align="center"><p>
@ -36,8 +36,8 @@
</a>
</div>
LazyVim ist ein Neovim setup aufgebaut auf [💤 lazy.nvim](https://github.com/folke/lazy.nvim).
Es erleichter das Anpassen und erweitern von Ihrer Konfiguration.
LazyVim ist ein Neovim-Setup aufgebaut auf [💤 lazy.nvim](https://github.com/folke/lazy.nvim).
Es erleichtert das Anpassen und Erweitern von Ihrer Konfiguration.
Anstatt von vorne anzufangen oder eine vorgefertigte Distro zu verwenden, gibt LazyVim das beste aus
beiden Welten - die Flexibilität Ihre Konfiguration zu verändern und einzustellen wie Sie es wollen
und die Einfachheit von einem vorgefertigten Setup.
@ -52,7 +52,7 @@ und die Einfachheit von einem vorgefertigten Setup.
- 💤 Passe deine Konfiguration einfach an und erweitere diese mit [lazy.nvim](https://github.com/folke/lazy.nvim)
- 🚀 Extrem schnell
- 🧹 Logische Voreinstellungen für optionen, autocmds und keymaps
- 📦 Kommt mit einem Haufen vor Konfigurierten, ready to use Plugins
- 📦 Kommt mit einem Haufen vorkonfigurierter, ready-to-use Plugins
## ⚡️ Vorraussetzungen
@ -108,15 +108,15 @@ docker run -w /root -it --rm alpine:edge sh -uelic '
</details>
## 📂 File Structure
## 📂 Dateistruktur
The files under config will be automatically loaded at the appropriate time,
so you don't need to require those files manually.
**LazyVim** comes with a set of default config files that will be loaded
**_before_** your own. See [here](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
You can add your custom plugin specs under `lua/plugins/`. All files there
will be automatically loaded by [lazy.nvim](https://github.com/folke/lazy.nvim)
Die Dateien unter `config` werden automatisch und zur richtigen Zeit geladen,
sodass ein manuelles `require` nicht nötig ist.
**LazyVim** bringt Konfigurationsdatein mit, die **_vor_** Ihren eigenen geladen werden -
siehe [hier](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
Sie können eigene Plugins unter `lua/plugins/` hinzufügen. Alle Dateien innerhalb
dieses Ordners werden automatisch mit [lazy.nvim](https://github.com/folke/lazy.nvim)
geladen.
<pre>
~/.config/nvim
@ -133,6 +133,6 @@ will be automatically loaded by [lazy.nvim](https://github.com/folke/lazy.nvim)
└── init.toml
</pre>
## ⚙️ Configuration
## ⚙️ Konfiguration
Refer to the [docs](https://lazyvim.github.io)
Siehe [Dokumentation](https://lazyvim.github.io).

@ -1,4 +1,4 @@
*LazyVim.txt* For Neovim >= 0.9.0 Last change: 2024 March 07
*LazyVim.txt* For Neovim >= 0.9.0 Last change: 2024 May 18
==============================================================================
Table of Contents *LazyVim-table-of-contents*
@ -8,6 +8,7 @@ Table of Contents *LazyVim-table-of-contents*
- Getting Started |LazyVim-getting-started|
- File Structure |LazyVim-file-structure|
- Configuration |LazyVim-configuration|
1. Links |LazyVim-links|
Install
·

@ -59,7 +59,6 @@ vim.api.nvim_create_autocmd("FileType", {
"lspinfo",
"notify",
"qf",
"query",
"spectre_panel",
"startuptime",
"tsplayground",
@ -106,33 +105,10 @@ vim.api.nvim_create_autocmd({ "FileType" }, {
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
group = augroup("auto_create_dir"),
callback = function(event)
if event.match:match("^%w%w+://") then
if event.match:match("^%w%w+:[\\/][\\/]") then
return
end
local file = vim.loop.fs_realpath(event.match) or event.match
local file = vim.uv.fs_realpath(event.match) or event.match
vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p")
end,
})
-- Copy/Paste when using ssh on a remote server
-- Only works on Neovim >= 0.10.0
if vim.clipboard and vim.clipboard.osc52 then
vim.api.nvim_create_autocmd("VimEnter", {
group = augroup("ssh_clipboard"),
callback = function()
if vim.env.SSH_CONNECTION and vim.clipboard.osc52 then
vim.g.clipboard = {
name = "OSC 52",
copy = {
["+"] = require("vim.clipboard.osc52").copy,
["*"] = require("vim.clipboard.osc52").copy,
},
paste = {
["+"] = require("vim.clipboard.osc52").paste,
["*"] = require("vim.clipboard.osc52").paste,
},
}
end
end,
})
end

@ -1,9 +1,10 @@
local Util = require("lazyvim.util")
_G.LazyVim = require("lazyvim.util")
---@class LazyVimConfig: LazyVimOptions
local M = {}
M.version = "10.11.0" -- x-release-please-version
M.version = "10.21.1" -- x-release-please-version
LazyVim.config = M
---@class LazyVimOptions
local defaults = {
@ -131,7 +132,7 @@ local defaults = {
}
M.json = {
version = 2,
version = 4,
data = {
version = nil, ---@type string?
news = {}, ---@type table<string, string>
@ -149,7 +150,7 @@ function M.json.load()
if ok then
M.json.data = vim.tbl_deep_extend("force", M.json.data, json or {})
if M.json.data.version ~= M.json.version then
Util.json.migrate()
LazyVim.json.migrate()
end
end
end
@ -178,12 +179,12 @@ function M.setup(opts)
end
M.load("keymaps")
Util.format.setup()
Util.news.setup()
Util.root.setup()
LazyVim.format.setup()
LazyVim.news.setup()
LazyVim.root.setup()
vim.api.nvim_create_user_command("LazyExtras", function()
Util.extras.show()
LazyVim.extras.show()
end, { desc = "Manage LazyVim extras" })
vim.api.nvim_create_user_command("LazyHealth", function()
@ -193,8 +194,8 @@ function M.setup(opts)
end,
})
Util.track("colorscheme")
Util.try(function()
LazyVim.track("colorscheme")
LazyVim.try(function()
if type(M.colorscheme) == "function" then
M.colorscheme()
else
@ -203,11 +204,11 @@ function M.setup(opts)
end, {
msg = "Could not load your colorscheme",
on_error = function(msg)
Util.error(msg)
LazyVim.error(msg)
vim.cmd.colorscheme("habamax")
end,
})
Util.track()
LazyVim.track()
end
---@param buf? number
@ -221,6 +222,9 @@ function M.get_kind_filter(buf)
if M.kind_filter[ft] == false then
return
end
if type(M.kind_filter[ft]) == "table" then
return M.kind_filter[ft]
end
---@diagnostic disable-next-line: return-type-mismatch
return type(M.kind_filter) == "table" and type(M.kind_filter.default) == "table" and M.kind_filter.default or nil
end
@ -229,7 +233,7 @@ end
function M.load(name)
local function _load(mod)
if require("lazy.core.cache").find(mod)[1] then
Util.try(function()
LazyVim.try(function()
require(mod)
end, { msg = "Failed loading " .. mod })
end
@ -259,19 +263,23 @@ function M.init()
end
package.preload["lazyvim.plugins.lsp.format"] = function()
Util.deprecate([[require("lazyvim.plugins.lsp.format")]], [[require("lazyvim.util").format]])
return Util.format
LazyVim.deprecate([[require("lazyvim.plugins.lsp.format")]], [[LazyVim.format]])
return LazyVim.format
end
-- delay notifications till vim.notify was replaced or after 500ms
require("lazyvim.util").lazy_notify()
LazyVim.lazy_notify()
-- load options here, before lazy init while sourcing plugin modules
-- this is needed to make sure options will be correctly applied
-- after installing missing plugins
M.load("options")
Util.plugin.setup()
if vim.g.deprecation_warnings == false then
vim.deprecate = function() end
end
LazyVim.plugin.setup()
M.json.load()
end

@ -1,46 +1,47 @@
-- This file is automatically loaded by lazyvim.config.init
local Util = require("lazyvim.util")
-- DO NOT USE THIS IN YOU OWN CONFIG!!
-- DO NOT USE `LazyVim.safe_keymap_set` IN YOUR OWN CONFIG!!
-- use `vim.keymap.set` instead
local map = Util.safe_keymap_set
local map = LazyVim.safe_keymap_set
-- better up/down
map({ "n", "x" }, "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
map({ "n", "x" }, "<Down>", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
map({ "n", "x" }, "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
map({ "n", "x" }, "<Up>", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
map({ "n", "x" }, "j", "v:count == 0 ? 'gj' : 'j'", { desc = "Down", expr = true, silent = true })
map({ "n", "x" }, "<Down>", "v:count == 0 ? 'gj' : 'j'", { desc = "Down", expr = true, silent = true })
map({ "n", "x" }, "k", "v:count == 0 ? 'gk' : 'k'", { desc = "Up", expr = true, silent = true })
map({ "n", "x" }, "<Up>", "v:count == 0 ? 'gk' : 'k'", { desc = "Up", expr = true, silent = true })
-- Move to window using the <ctrl> hjkl keys
map("n", "<C-h>", "<C-w>h", { desc = "Go to left window", remap = true })
map("n", "<C-j>", "<C-w>j", { desc = "Go to lower window", remap = true })
map("n", "<C-k>", "<C-w>k", { desc = "Go to upper window", remap = true })
map("n", "<C-l>", "<C-w>l", { desc = "Go to right window", remap = true })
map("n", "<C-h>", "<C-w>h", { desc = "Go to Left Window", remap = true })
map("n", "<C-j>", "<C-w>j", { desc = "Go to Lower Window", remap = true })
map("n", "<C-k>", "<C-w>k", { desc = "Go to Upper Window", remap = true })
map("n", "<C-l>", "<C-w>l", { desc = "Go to Right Window", remap = true })
-- Resize window using <ctrl> arrow keys
map("n", "<C-Up>", "<cmd>resize +2<cr>", { desc = "Increase window height" })
map("n", "<C-Down>", "<cmd>resize -2<cr>", { desc = "Decrease window height" })
map("n", "<C-Left>", "<cmd>vertical resize -2<cr>", { desc = "Decrease window width" })
map("n", "<C-Right>", "<cmd>vertical resize +2<cr>", { desc = "Increase window width" })
map("n", "<C-Up>", "<cmd>resize +2<cr>", { desc = "Increase Window Height" })
map("n", "<C-Down>", "<cmd>resize -2<cr>", { desc = "Decrease Window Height" })
map("n", "<C-Left>", "<cmd>vertical resize -2<cr>", { desc = "Decrease Window Width" })
map("n", "<C-Right>", "<cmd>vertical resize +2<cr>", { desc = "Increase Window Width" })
-- Move Lines
map("n", "<A-j>", "<cmd>m .+1<cr>==", { desc = "Move down" })
map("n", "<A-k>", "<cmd>m .-2<cr>==", { desc = "Move up" })
map("i", "<A-j>", "<esc><cmd>m .+1<cr>==gi", { desc = "Move down" })
map("i", "<A-k>", "<esc><cmd>m .-2<cr>==gi", { desc = "Move up" })
map("v", "<A-j>", ":m '>+1<cr>gv=gv", { desc = "Move down" })
map("v", "<A-k>", ":m '<-2<cr>gv=gv", { desc = "Move up" })
map("n", "<A-j>", "<cmd>m .+1<cr>==", { desc = "Move Down" })
map("n", "<A-k>", "<cmd>m .-2<cr>==", { desc = "Move Up" })
map("i", "<A-j>", "<esc><cmd>m .+1<cr>==gi", { desc = "Move Down" })
map("i", "<A-k>", "<esc><cmd>m .-2<cr>==gi", { desc = "Move Up" })
map("v", "<A-j>", ":m '>+1<cr>gv=gv", { desc = "Move Down" })
map("v", "<A-k>", ":m '<-2<cr>gv=gv", { desc = "Move Up" })
-- buffers
map("n", "<S-h>", "<cmd>bprevious<cr>", { desc = "Prev buffer" })
map("n", "<S-l>", "<cmd>bnext<cr>", { desc = "Next buffer" })
map("n", "[b", "<cmd>bprevious<cr>", { desc = "Prev buffer" })
map("n", "]b", "<cmd>bnext<cr>", { desc = "Next buffer" })
map("n", "<S-h>", "<cmd>bprevious<cr>", { desc = "Prev Buffer" })
map("n", "<S-l>", "<cmd>bnext<cr>", { desc = "Next Buffer" })
map("n", "[b", "<cmd>bprevious<cr>", { desc = "Prev Buffer" })
map("n", "]b", "<cmd>bnext<cr>", { desc = "Next Buffer" })
map("n", "<leader>bb", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
map("n", "<leader>`", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
map("n", "<leader>bd", LazyVim.ui.bufremove, { desc = "Delete Buffer" })
map("n", "<leader>bD", "<cmd>:bd<cr>", { desc = "Delete Buffer and Window" })
-- Clear search with <esc>
map({ "i", "n" }, "<esc>", "<cmd>noh<cr><esc>", { desc = "Escape and clear hlsearch" })
map({ "i", "n" }, "<esc>", "<cmd>noh<cr><esc>", { desc = "Escape and Clear hlsearch" })
-- Clear search, diff update and redraw
-- taken from runtime/lua/_editor.lua
@ -48,16 +49,16 @@ map(
"n",
"<leader>ur",
"<Cmd>nohlsearch<Bar>diffupdate<Bar>normal! <C-L><CR>",
{ desc = "Redraw / clear hlsearch / diff update" }
{ desc = "Redraw / Clear hlsearch / Diff Update" }
)
-- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n
map("n", "n", "'Nn'[v:searchforward].'zv'", { expr = true, desc = "Next search result" })
map("x", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
map("o", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
map("n", "N", "'nN'[v:searchforward].'zv'", { expr = true, desc = "Prev search result" })
map("x", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
map("o", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
map("n", "n", "'Nn'[v:searchforward].'zv'", { expr = true, desc = "Next Search Result" })
map("x", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next Search Result" })
map("o", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next Search Result" })
map("n", "N", "'nN'[v:searchforward].'zv'", { expr = true, desc = "Prev Search Result" })
map("x", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev Search Result" })
map("o", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev Search Result" })
-- Add undo break-points
map("i", ",", ",<c-g>u")
@ -65,7 +66,7 @@ map("i", ".", ".<c-g>u")
map("i", ";", ";<c-g>u")
-- save file
map({ "i", "x", "n", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save file" })
map({ "i", "x", "n", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save File" })
--keywordprg
map("n", "<leader>K", "<cmd>norm! K<cr>", { desc = "Keywordprg" })
@ -83,12 +84,12 @@ map("n", "<leader>fn", "<cmd>enew<cr>", { desc = "New File" })
map("n", "<leader>xl", "<cmd>lopen<cr>", { desc = "Location List" })
map("n", "<leader>xq", "<cmd>copen<cr>", { desc = "Quickfix List" })
map("n", "[q", vim.cmd.cprev, { desc = "Previous quickfix" })
map("n", "]q", vim.cmd.cnext, { desc = "Next quickfix" })
map("n", "[q", vim.cmd.cprev, { desc = "Previous Quickfix" })
map("n", "]q", vim.cmd.cnext, { desc = "Next Quickfix" })
-- formatting
map({ "n", "v" }, "<leader>cf", function()
Util.format({ force = true })
LazyVim.format({ force = true })
end, { desc = "Format" })
-- diagnostic
@ -110,57 +111,64 @@ map("n", "[w", diagnostic_goto(false, "WARN"), { desc = "Prev Warning" })
-- stylua: ignore start
-- toggle options
map("n", "<leader>uf", function() Util.format.toggle() end, { desc = "Toggle auto format (global)" })
map("n", "<leader>uF", function() Util.format.toggle(true) end, { desc = "Toggle auto format (buffer)" })
map("n", "<leader>us", function() Util.toggle("spell") end, { desc = "Toggle Spelling" })
map("n", "<leader>uw", function() Util.toggle("wrap") end, { desc = "Toggle Word Wrap" })
map("n", "<leader>uL", function() Util.toggle("relativenumber") end, { desc = "Toggle Relative Line Numbers" })
map("n", "<leader>ul", function() Util.toggle.number() end, { desc = "Toggle Line Numbers" })
map("n", "<leader>ud", function() Util.toggle.diagnostics() end, { desc = "Toggle Diagnostics" })
map("n", "<leader>uf", function() LazyVim.format.toggle() end, { desc = "Toggle Auto Format (Global)" })
map("n", "<leader>uF", function() LazyVim.format.toggle(true) end, { desc = "Toggle Auto Format (Buffer)" })
map("n", "<leader>us", function() LazyVim.toggle("spell") end, { desc = "Toggle Spelling" })
map("n", "<leader>uw", function() LazyVim.toggle("wrap") end, { desc = "Toggle Word Wrap" })
map("n", "<leader>uL", function() LazyVim.toggle("relativenumber") end, { desc = "Toggle Relative Line Numbers" })
map("n", "<leader>ul", function() LazyVim.toggle.number() end, { desc = "Toggle Line Numbers" })
map("n", "<leader>ud", function() LazyVim.toggle.diagnostics() end, { desc = "Toggle Diagnostics" })
local conceallevel = vim.o.conceallevel > 0 and vim.o.conceallevel or 3
map("n", "<leader>uc", function() Util.toggle("conceallevel", false, {0, conceallevel}) end, { desc = "Toggle Conceal" })
map("n", "<leader>uc", function() LazyVim.toggle("conceallevel", false, {0, conceallevel}) end, { desc = "Toggle Conceal" })
if vim.lsp.buf.inlay_hint or vim.lsp.inlay_hint then
map( "n", "<leader>uh", function() Util.toggle.inlay_hints() end, { desc = "Toggle Inlay Hints" })
map( "n", "<leader>uh", function() LazyVim.toggle.inlay_hints() end, { desc = "Toggle Inlay Hints" })
end
map("n", "<leader>uT", function() if vim.b.ts_highlight then vim.treesitter.stop() else vim.treesitter.start() end end, { desc = "Toggle Treesitter Highlight" })
map("n", "<leader>ub", function() Util.toggle("background", false, {"light", "dark"}) end, { desc = "Toggle Background" })
map("n", "<leader>ub", function() LazyVim.toggle("background", false, {"light", "dark"}) end, { desc = "Toggle Background" })
-- lazygit
map("n", "<leader>gg", function() Util.terminal({ "lazygit" }, { cwd = Util.root(), esc_esc = false, ctrl_hjkl = false }) end, { desc = "Lazygit (root dir)" })
map("n", "<leader>gG", function() Util.terminal({ "lazygit" }, {esc_esc = false, ctrl_hjkl = false}) end, { desc = "Lazygit (cwd)" })
map("n", "<leader>gg", function() LazyVim.lazygit( { cwd = LazyVim.root.git() }) end, { desc = "Lazygit (Root Dir)" })
map("n", "<leader>gG", function() LazyVim.lazygit() end, { desc = "Lazygit (cwd)" })
map("n", "<leader>gb", LazyVim.lazygit.blame_line, { desc = "Git Blame Line" })
map("n", "<leader>gf", function()
local git_path = vim.api.nvim_buf_get_name(0)
LazyVim.lazygit({args = { "-f", vim.trim(git_path) }})
end, { desc = "Lazygit Current File History" })
-- quit
map("n", "<leader>qq", "<cmd>qa<cr>", { desc = "Quit all" })
map("n", "<leader>qq", "<cmd>qa<cr>", { desc = "Quit All" })
-- highlights under cursor
map("n", "<leader>ui", vim.show_pos, { desc = "Inspect Pos" })
map("n", "<leader>uI", "<cmd>InspectTree<cr>", { desc = "Inspect Tree" })
-- LazyVim Changelog
map("n", "<leader>L", function() Util.news.changelog() end, { desc = "LazyVim Changelog" })
map("n", "<leader>L", function() LazyVim.news.changelog() end, { desc = "LazyVim Changelog" })
-- floating terminal
local lazyterm = function() Util.terminal(nil, { cwd = Util.root() }) end
map("n", "<leader>ft", lazyterm, { desc = "Terminal (root dir)" })
map("n", "<leader>fT", function() Util.terminal() end, { desc = "Terminal (cwd)" })
map("n", "<c-/>", lazyterm, { desc = "Terminal (root dir)" })
local lazyterm = function() LazyVim.terminal(nil, { cwd = LazyVim.root() }) end
map("n", "<leader>ft", lazyterm, { desc = "Terminal (Root Dir)" })
map("n", "<leader>fT", function() LazyVim.terminal() end, { desc = "Terminal (cwd)" })
map("n", "<c-/>", lazyterm, { desc = "Terminal (Root Dir)" })
map("n", "<c-_>", lazyterm, { desc = "which_key_ignore" })
-- Terminal Mappings
map("t", "<esc><esc>", "<c-\\><c-n>", { desc = "Enter Normal Mode" })
map("t", "<C-h>", "<cmd>wincmd h<cr>", { desc = "Go to left window" })
map("t", "<C-j>", "<cmd>wincmd j<cr>", { desc = "Go to lower window" })
map("t", "<C-k>", "<cmd>wincmd k<cr>", { desc = "Go to upper window" })
map("t", "<C-l>", "<cmd>wincmd l<cr>", { desc = "Go to right window" })
map("t", "<C-h>", "<cmd>wincmd h<cr>", { desc = "Go to Left Window" })
map("t", "<C-j>", "<cmd>wincmd j<cr>", { desc = "Go to Lower Window" })
map("t", "<C-k>", "<cmd>wincmd k<cr>", { desc = "Go to Upper Window" })
map("t", "<C-l>", "<cmd>wincmd l<cr>", { desc = "Go to Right Window" })
map("t", "<C-/>", "<cmd>close<cr>", { desc = "Hide Terminal" })
map("t", "<c-_>", "<cmd>close<cr>", { desc = "which_key_ignore" })
-- windows
map("n", "<leader>ww", "<C-W>p", { desc = "Other window", remap = true })
map("n", "<leader>wd", "<C-W>c", { desc = "Delete window", remap = true })
map("n", "<leader>w-", "<C-W>s", { desc = "Split window below", remap = true })
map("n", "<leader>w|", "<C-W>v", { desc = "Split window right", remap = true })
map("n", "<leader>-", "<C-W>s", { desc = "Split window below", remap = true })
map("n", "<leader>|", "<C-W>v", { desc = "Split window right", remap = true })
map("n", "<leader>ww", "<C-W>p", { desc = "Other Window", remap = true })
map("n", "<leader>wd", "<C-W>c", { desc = "Delete Window", remap = true })
map("n", "<leader>w-", "<C-W>s", { desc = "Split Window Below", remap = true })
map("n", "<leader>w|", "<C-W>v", { desc = "Split Window Right", remap = true })
map("n", "<leader>-", "<C-W>s", { desc = "Split Window Below", remap = true })
map("n", "<leader>|", "<C-W>v", { desc = "Split Window Right", remap = true })
-- tabs
map("n", "<leader><tab>l", "<cmd>tablast<cr>", { desc = "Last Tab" })

@ -2,7 +2,7 @@
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- Enable LazyVim auto format
-- LazyVim auto format
vim.g.autoformat = true
-- LazyVim root dir detection
@ -12,15 +12,43 @@ vim.g.autoformat = true
-- * a function with signature `function(buf) -> string|string[]`
vim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" }
-- LazyVim automatically configures lazygit:
-- * theme, based on the active colorscheme.
-- * editorPreset to nvim-remote
-- * enables nerd font icons
-- Set to false to disable.
vim.g.lazygit_config = true
-- Optionally setup the terminal to use
-- This sets `vim.o.shell` and does some additional configuration for:
-- * pwsh
-- * powershell
-- LazyVim.terminal.setup("pwsh")
-- Hide deprecation warnings
vim.g.deprecation_warnings = false
local opt = vim.opt
opt.autowrite = true -- Enable auto write
opt.clipboard = "unnamedplus" -- Sync with system clipboard
-- only set clipboard if not in ssh, to make sure the OSC 52
-- integration works automatically. Requires Neovim >= 0.10.0
opt.clipboard = vim.env.SSH_TTY and "" or "unnamedplus" -- Sync with system clipboard
opt.completeopt = "menu,menuone,noselect"
opt.conceallevel = 2 -- Hide * markup for bold and italic, but not markers with substitutions
opt.confirm = true -- Confirm to save changes before exiting modified buffer
opt.cursorline = true -- Enable highlighting of the current line
opt.expandtab = true -- Use spaces instead of tabs
opt.fillchars = {
foldopen = "",
foldclose = "",
fold = " ",
foldsep = " ",
diff = "",
eob = " ",
}
opt.foldlevel = 99
opt.formatexpr = "v:lua.require'lazyvim.util'.format.formatexpr()"
opt.formatoptions = "jcroqlnt" -- tcqj
opt.grepformat = "%f:%l:%c:%m"
opt.grepprg = "rg --vimgrep"
@ -47,11 +75,10 @@ opt.spelllang = { "en" }
opt.splitbelow = true -- Put new windows below current
opt.splitkeep = "screen"
opt.splitright = true -- Put new windows right of current
opt.statuscolumn = [[%!v:lua.require'lazyvim.util'.ui.statuscolumn()]]
opt.tabstop = 2 -- Number of spaces tabs count for
opt.termguicolors = true -- True color support
if not vim.g.vscode then
opt.timeoutlen = 300 -- Lower than default (1000) to quickly trigger which-key
end
opt.timeoutlen = vim.g.vscode and 1000 or 300 -- Lower than default (1000) to quickly trigger which-key
opt.undofile = true
opt.undolevels = 10000
opt.updatetime = 200 -- Save swap file and trigger CursorHold
@ -59,37 +86,16 @@ opt.virtualedit = "block" -- Allow cursor to move where there is no text in visu
opt.wildmode = "longest:full,full" -- Command-line completion mode
opt.winminwidth = 5 -- Minimum window width
opt.wrap = false -- Disable line wrap
opt.fillchars = {
foldopen = "",
foldclose = "",
-- fold = "⸱",
fold = " ",
foldsep = " ",
diff = "",
eob = " ",
}
if vim.fn.has("nvim-0.10") == 1 then
opt.smoothscroll = true
end
-- Folding
vim.opt.foldlevel = 99
vim.opt.foldtext = "v:lua.require'lazyvim.util'.ui.foldtext()"
if vim.fn.has("nvim-0.9.0") == 1 then
vim.opt.statuscolumn = [[%!v:lua.require'lazyvim.util'.ui.statuscolumn()]]
end
-- HACK: causes freezes on <= 0.9, so only enable on >= 0.10 for now
if vim.fn.has("nvim-0.10") == 1 then
vim.opt.foldmethod = "expr"
vim.opt.foldexpr = "v:lua.require'lazyvim.util'.ui.foldexpr()"
opt.foldexpr = "v:lua.require'lazyvim.util'.ui.foldexpr()"
opt.foldmethod = "expr"
opt.foldtext = ""
else
vim.opt.foldmethod = "indent"
opt.foldmethod = "indent"
opt.foldtext = "v:lua.require'lazyvim.util'.ui.foldtext()"
end
vim.o.formatexpr = "v:lua.require'lazyvim.util'.format.formatexpr()"
-- Fix markdown indentation settings
vim.g.markdown_recommended_style = 0

@ -10,6 +10,9 @@ function M.check()
if vim.fn.has("nvim-0.9.0") == 1 then
ok("Using Neovim >= 0.9.0")
if vim.fn.has("nvim-0.10.0") == 0 then
warn("Use Neovim >= 0.10.0 for the best experience")
end
else
error("Neovim >= 0.9.0 is required")
end

@ -1,3 +1,5 @@
vim.uv = vim.uv or vim.loop
local M = {}
---@param opts? LazyVimConfig

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -27,7 +27,7 @@ return {
optional = true,
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, 2, require("lazyvim.util").lualine.cmp_source("codeium"))
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium"))
end,
},
}

@ -1,5 +1,5 @@
return {
recommended = true,
-- copilot
{
"zbirenbaum/copilot.lua",
@ -19,12 +19,11 @@ return {
optional = true,
event = "VeryLazy",
opts = function(_, opts)
local Util = require("lazyvim.util")
local colors = {
[""] = Util.ui.fg("Special"),
["Normal"] = Util.ui.fg("Special"),
["Warning"] = Util.ui.fg("DiagnosticError"),
["InProgress"] = Util.ui.fg("DiagnosticWarn"),
[""] = LazyVim.ui.fg("Special"),
["Normal"] = LazyVim.ui.fg("Special"),
["Warning"] = LazyVim.ui.fg("DiagnosticError"),
["InProgress"] = LazyVim.ui.fg("DiagnosticWarn"),
}
table.insert(opts.sections.lualine_x, 2, {
function()
@ -36,7 +35,7 @@ return {
if not package.loaded["copilot"] then
return
end
local ok, clients = pcall(require("lazyvim.util").lsp.get_clients, { name = "copilot", bufnr = 0 })
local ok, clients = pcall(LazyVim.lsp.get_clients, { name = "copilot", bufnr = 0 })
if not ok then
return false
end
@ -66,7 +65,7 @@ return {
copilot_cmp.setup(opts)
-- attach cmp source whenever copilot attaches
-- fixes lazy-loading issues with the copilot cmp source
require("lazyvim.util").lsp.on_attach(function(client)
LazyVim.lsp.on_attach(function(client)
if client.name == "copilot" then
copilot_cmp._on_insert_enter({})
end

@ -0,0 +1,44 @@
return {
"L3MON4D3/LuaSnip",
build = (not LazyVim.is_win())
and "echo 'NOTE: jsregexp is optional, so not a big deal if it fails to build'; make install_jsregexp"
or nil,
dependencies = {
{
"rafamadriz/friendly-snippets",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
{
"nvim-cmp",
dependencies = {
"saadparwaiz1/cmp_luasnip",
},
opts = function(_, opts)
opts.snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
}
table.insert(opts.sources, { name = "luasnip" })
end,
},
},
opts = {
history = true,
delete_check_events = "TextChanged",
},
-- stylua: ignore
keys = {
{
"<tab>",
function()
return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>"
end,
expr = true, silent = true, mode = "i",
},
{ "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
{ "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
},
}

@ -0,0 +1,13 @@
return {
{
"echasnovski/mini.comment",
event = "VeryLazy",
opts = {
options = {
custom_commentstring = function()
return require("ts_context_commentstring.internal").calculate_commentstring() or vim.bo.commentstring
end,
},
},
},
}

@ -0,0 +1,36 @@
-- Fast and feature-rich surround actions. For text that includes
-- surrounding characters like brackets or quotes, this allows you
-- to select the text inside, change or modify the surrounding characters,
-- and more.
return {
"echasnovski/mini.surround",
recommended = true,
keys = function(_, keys)
-- Populate the keys based on the user's options
local opts = LazyVim.opts("mini.surround")
local mappings = {
{ opts.mappings.add, desc = "Add Surrounding", mode = { "n", "v" } },
{ opts.mappings.delete, desc = "Delete Surrounding" },
{ opts.mappings.find, desc = "Find Right Surrounding" },
{ opts.mappings.find_left, desc = "Find Left Surrounding" },
{ opts.mappings.highlight, desc = "Highlight Surrounding" },
{ opts.mappings.replace, desc = "Replace Surrounding" },
{ opts.mappings.update_n_lines, desc = "Update `MiniSurround.config.n_lines`" },
}
mappings = vim.tbl_filter(function(m)
return m[1] and #m[1] > 0
end, mappings)
return vim.list_extend(mappings, keys)
end,
opts = {
mappings = {
add = "gsa", -- Add surrounding in Normal and Visual modes
delete = "gsd", -- Delete surrounding
find = "gsf", -- Find surrounding (to the right)
find_left = "gsF", -- Find surrounding (to the left)
highlight = "gsh", -- Highlight surrounding
replace = "gsr", -- Replace surrounding
update_n_lines = "gsn", -- Update `n_lines`
},
},
}

@ -1,59 +0,0 @@
return {
desc = "Use native snippets instead of LuaSnip. Only works on Neovim >= 0.10!",
{
"L3MON4D3/LuaSnip",
enabled = false,
},
{
"nvim-cmp",
opts = {
snippet = {
expand = function(args)
vim.snippet.expand(args.body)
end,
},
},
keys = {
{
"<Tab>",
function()
if vim.snippet.jumpable(1) then
vim.schedule(function()
vim.snippet.jump(1)
end)
return
end
return "<Tab>"
end,
expr = true,
silent = true,
mode = "i",
},
{
"<Tab>",
function()
vim.schedule(function()
vim.snippet.jump(1)
end)
end,
silent = true,
mode = "s",
},
{
"<S-Tab>",
function()
if vim.snippet.jumpable(-1) then
vim.schedule(function()
vim.snippet.jump(-1)
end)
return
end
return "<S-Tab>"
end,
expr = true,
silent = true,
mode = { "i", "s" },
},
},
},
}

@ -1,5 +1,3 @@
local Util = require("lazyvim.util")
return {
-- Tabnine cmp source
{
@ -8,7 +6,7 @@ return {
{
"tzachar/cmp-tabnine",
build = {
Util.is_win() and "pwsh -noni .\\install.ps1" or "./install.sh",
LazyVim.is_win() and "pwsh -noni .\\install.ps1" or "./install.sh",
":CmpTabnineHub",
},
dependencies = "hrsh7th/nvim-cmp",
@ -30,7 +28,7 @@ return {
priority = 100,
})
opts.formatting.format = Util.inject.args(opts.formatting.format, function(entry, item)
opts.formatting.format = LazyVim.inject.args(opts.formatting.format, function(entry, item)
-- Hide percentage in the menu
if entry.source.name == "cmp_tabnine" then
item.menu = ""
@ -45,7 +43,7 @@ return {
event = "VeryLazy",
opts = function(_, opts)
local icon = require("lazyvim.config").icons.kinds.TabNine
table.insert(opts.sections.lualine_x, 2, require("lazyvim.util").lualine.cmp_source("cmp_tabnine", icon))
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("cmp_tabnine", icon))
end,
},
}

@ -1,32 +1,30 @@
-- better yank/paste
return {
-- better yank/paste
{
"gbprod/yanky.nvim",
dependencies = not jit.os:find("Windows") and { "kkharji/sqlite.lua" } or {},
opts = {
highlight = { timer = 250 },
ring = { storage = jit.os:find("Windows") and "shada" or "sqlite" },
},
keys = {
"gbprod/yanky.nvim",
recommended = true,
desc = "Better Yank/Paste",
opts = {
highlight = { timer = 150 },
},
keys = {
-- stylua: ignore
{ "<leader>p", function() require("telescope").extensions.yank_history.yank_history({ }) end, desc = "Open Yank History" },
{ "y", "<Plug>(YankyYank)", mode = { "n", "x" }, desc = "Yank text" },
{ "p", "<Plug>(YankyPutAfter)", mode = { "n", "x" }, desc = "Put yanked text after cursor" },
{ "P", "<Plug>(YankyPutBefore)", mode = { "n", "x" }, desc = "Put yanked text before cursor" },
{ "gp", "<Plug>(YankyGPutAfter)", mode = { "n", "x" }, desc = "Put yanked text after selection" },
{ "gP", "<Plug>(YankyGPutBefore)", mode = { "n", "x" }, desc = "Put yanked text before selection" },
{ "[y", "<Plug>(YankyCycleForward)", desc = "Cycle forward through yank history" },
{ "]y", "<Plug>(YankyCycleBackward)", desc = "Cycle backward through yank history" },
{ "]p", "<Plug>(YankyPutIndentAfterLinewise)", desc = "Put indented after cursor (linewise)" },
{ "[p", "<Plug>(YankyPutIndentBeforeLinewise)", desc = "Put indented before cursor (linewise)" },
{ "]P", "<Plug>(YankyPutIndentAfterLinewise)", desc = "Put indented after cursor (linewise)" },
{ "[P", "<Plug>(YankyPutIndentBeforeLinewise)", desc = "Put indented before cursor (linewise)" },
{ ">p", "<Plug>(YankyPutIndentAfterShiftRight)", desc = "Put and indent right" },
{ "<p", "<Plug>(YankyPutIndentAfterShiftLeft)", desc = "Put and indent left" },
{ ">P", "<Plug>(YankyPutIndentBeforeShiftRight)", desc = "Put before and indent right" },
{ "<P", "<Plug>(YankyPutIndentBeforeShiftLeft)", desc = "Put before and indent left" },
{ "=p", "<Plug>(YankyPutAfterFilter)", desc = "Put after applying a filter" },
{ "=P", "<Plug>(YankyPutBeforeFilter)", desc = "Put before applying a filter" },
},
{ "y", "<Plug>(YankyYank)", mode = { "n", "x" }, desc = "Yank Text" },
{ "p", "<Plug>(YankyPutAfter)", mode = { "n", "x" }, desc = "Put Yanked Text After Cursor" },
{ "P", "<Plug>(YankyPutBefore)", mode = { "n", "x" }, desc = "Put Yanked Text Before Cursor" },
{ "gp", "<Plug>(YankyGPutAfter)", mode = { "n", "x" }, desc = "Put Yanked Text After Selection" },
{ "gP", "<Plug>(YankyGPutBefore)", mode = { "n", "x" }, desc = "Put Yanked Text Before Selection" },
{ "[y", "<Plug>(YankyCycleForward)", desc = "Cycle Forward Through Yank History" },
{ "]y", "<Plug>(YankyCycleBackward)", desc = "Cycle Backward Through Yank History" },
{ "]p", "<Plug>(YankyPutIndentAfterLinewise)", desc = "Put Indented After Cursor (Linewise)" },
{ "[p", "<Plug>(YankyPutIndentBeforeLinewise)", desc = "Put Indented Before Cursor (Linewise)" },
{ "]P", "<Plug>(YankyPutIndentAfterLinewise)", desc = "Put Indented After Cursor (Linewise)" },
{ "[P", "<Plug>(YankyPutIndentBeforeLinewise)", desc = "Put Indented Before Cursor (Linewise)" },
{ ">p", "<Plug>(YankyPutIndentAfterShiftRight)", desc = "Put and Indent Right" },
{ "<p", "<Plug>(YankyPutIndentAfterShiftLeft)", desc = "Put and Indent Left" },
{ ">P", "<Plug>(YankyPutIndentBeforeShiftRight)", desc = "Put Before and Indent Right" },
{ "<P", "<Plug>(YankyPutIndentBeforeShiftLeft)", desc = "Put Before and Indent Left" },
{ "=p", "<Plug>(YankyPutAfterFilter)", desc = "Put After Applying a Filter" },
{ "=P", "<Plug>(YankyPutBeforeFilter)", desc = "Put Before Applying a Filter" },
},
}

@ -12,12 +12,15 @@ end
return {
"mfussenegger/nvim-dap",
recommended = true,
desc = "Debugging support. Requires language specific adapters to be configured. (see lang extras)",
dependencies = {
-- fancy UI for the debugger
{
"rcarriga/nvim-dap-ui",
dependencies = { "nvim-neotest/nvim-nio" },
-- stylua: ignore
keys = {
{ "<leader>du", function() require("dapui").toggle({ }) end, desc = "Dap UI" },
@ -25,8 +28,6 @@ return {
},
opts = {},
config = function(_, opts)
-- setup dap config by VsCode launch.json file
-- require("dap.ext.vscode").load_launchjs()
local dap = require("dap")
local dapui = require("dapui")
dapui.setup(opts)
@ -80,6 +81,11 @@ return {
},
},
},
-- VsCode launch.json parser
{
"folke/neoconf.nvim",
},
},
-- stylua: ignore
@ -89,7 +95,7 @@ return {
{ "<leader>dc", function() require("dap").continue() end, desc = "Continue" },
{ "<leader>da", function() require("dap").continue({ before = get_args }) end, desc = "Run with Args" },
{ "<leader>dC", function() require("dap").run_to_cursor() end, desc = "Run to Cursor" },
{ "<leader>dg", function() require("dap").goto_() end, desc = "Go to line (no execute)" },
{ "<leader>dg", function() require("dap").goto_() end, desc = "Go to Line (No Execute)" },
{ "<leader>di", function() require("dap").step_into() end, desc = "Step Into" },
{ "<leader>dj", function() require("dap").down() end, desc = "Down" },
{ "<leader>dk", function() require("dap").up() end, desc = "Up" },
@ -114,5 +120,18 @@ return {
{ text = sign[1], texthl = sign[2] or "DiagnosticInfo", linehl = sign[3], numhl = sign[3] }
)
end
-- setup dap config by VsCode launch.json file
local vscode = require("dap.ext.vscode")
local _filetypes = require("mason-nvim-dap.mappings.filetypes")
local filetypes = vim.tbl_deep_extend("force", _filetypes, {
["node"] = { "javascriptreact", "typescriptreact", "typescript", "javascript" },
["pwa-node"] = { "javascriptreact", "typescriptreact", "typescript", "javascript" },
})
local json = require("plenary.json")
vscode.json_decode = function(str)
return vim.json.decode(json.json_strip_comments(str))
end
vscode.load_launchjs(nil, filetypes)
end,
}

@ -1,5 +1,4 @@
local Config = require("lazyvim.config")
local Util = require("lazyvim.util")
return {
desc = "Aerial Symbol Browser",
@ -55,7 +54,7 @@ return {
"nvim-telescope/telescope.nvim",
optional = true,
opts = function()
Util.on_load("telescope.nvim", function()
LazyVim.on_load("telescope.nvim", function()
require("telescope").load_extension("aerial")
end)
end,
@ -73,11 +72,11 @@ return {
"folke/edgy.nvim",
optional = true,
opts = function(_, opts)
local edgy_idx = Util.plugin.extra_idx("ui.edgy")
local aerial_idx = Util.plugin.extra_idx("editor.aerial")
local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy")
local aerial_idx = LazyVim.plugin.extra_idx("editor.aerial")
if edgy_idx and edgy_idx > aerial_idx then
Util.warn("The `edgy.nvim` extra must be **imported** before the `aerial.nvim` extra to work properly.", {
LazyVim.warn("The `edgy.nvim` extra must be **imported** before the `aerial.nvim` extra to work properly.", {
title = "LazyVim",
})
end

@ -0,0 +1,175 @@
local M = {}
---@type table<string, table<string, string[]>>
M.dials_by_ft = {}
---@param increment boolean
---@param g? boolean
function M.dial(increment, g)
local mode = vim.fn.mode(true)
-- Use visual commands for VISUAL 'v', VISUAL LINE 'V' and VISUAL BLOCK '\22'
local is_visual = mode == "v" or mode == "V" or mode == "\22"
local func = (increment and "inc" or "dec") .. (g and "_g" or "_") .. (is_visual and "visual" or "normal")
local group = M.dials_by_ft[vim.bo.filetype] or "default"
return require("dial.map")[func](group)
end
return {
"monaqa/dial.nvim",
recommended = true,
desc = "Increment and decrement numbers, dates, and more",
-- stylua: ignore
keys = {
{ "<C-a>", function() return M.dial(true) end, expr = true, desc = "Increment", mode = {"n", "v"} },
{ "<C-x>", function() return M.dial(false) end, expr = true, desc = "Decrement", mode = {"n", "v"} },
{ "g<C-a>", function() return M.dial(true, true) end, expr = true, desc = "Increment", mode = {"n", "v"} },
{ "g<C-x>", function() return M.dial(false, true) end, expr = true, desc = "Decrement", mode = {"n", "v"} },
},
opts = function()
local augend = require("dial.augend")
local logical_alias = augend.constant.new({
elements = { "&&", "||" },
word = false,
cyclic = true,
})
local ordinal_numbers = augend.constant.new({
-- elements through which we cycle. When we increment, we go down
-- On decrement we go up
elements = {
"first",
"second",
"third",
"fourth",
"fifth",
"sixth",
"seventh",
"eighth",
"ninth",
"tenth",
},
-- if true, it only matches strings with word boundary. firstDate wouldn't work for example
word = false,
-- do we cycle back and forth (tenth to first on increment, first to tenth on decrement).
-- Otherwise nothing will happen when there are no further values
cyclic = true,
})
local weekdays = augend.constant.new({
elements = {
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
},
word = true,
cyclic = true,
})
local months = augend.constant.new({
elements = {
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
},
word = true,
cyclic = true,
})
local capitalized_boolean = augend.constant.new({
elements = {
"True",
"False",
},
word = true,
cyclic = true,
})
return {
dials_by_ft = {
css = "css",
javascript = "typescript",
javascriptreact = "typescript",
json = "json",
lua = "lua",
markdown = "markdown",
python = "python",
sass = "css",
scss = "css",
typescript = "typescript",
typescriptreact = "typescript",
},
groups = {
default = {
augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...)
augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.)
augend.date.alias["%Y/%m/%d"], -- date (2022/02/19, etc.)
},
typescript = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
logical_alias,
augend.constant.new({ elements = { "let", "const" } }),
ordinal_numbers,
weekdays,
months,
},
css = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.hexcolor.new({
case = "lower",
}),
augend.hexcolor.new({
case = "upper",
}),
},
markdown = {
augend.misc.alias.markdown_header,
ordinal_numbers,
weekdays,
months,
},
json = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.semver.alias.semver, -- versioning (v1.1.2)
},
lua = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
augend.constant.new({
elements = { "and", "or" },
word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.
cyclic = true, -- "or" is incremented into "and".
}),
ordinal_numbers,
weekdays,
months,
},
python = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
capitalized_boolean,
logical_alias,
ordinal_numbers,
weekdays,
months,
},
},
}
end,
config = function(_, opts)
require("dial.config").augends:register_group(opts.groups)
M.dials_by_ft = opts.dials_by_ft
end,
}

@ -5,57 +5,38 @@ return {
menu = {
width = vim.api.nvim_win_get_width(0) - 4,
},
},
keys = {
{
"<leader>H",
function()
require("harpoon"):list():append()
end,
desc = "Harpoon file",
},
{
"<leader>h",
function()
local harpoon = require("harpoon")
harpoon.ui:toggle_quick_menu(harpoon:list())
end,
desc = "Harpoon quick menu",
},
{
"<leader>1",
function()
require("harpoon"):list():select(1)
end,
desc = "Harpoon to file 1",
},
{
"<leader>2",
function()
require("harpoon"):list():select(2)
end,
desc = "Harpoon to file 2",
},
{
"<leader>3",
function()
require("harpoon"):list():select(3)
end,
desc = "Harpoon to file 3",
},
{
"<leader>4",
function()
require("harpoon"):list():select(4)
end,
desc = "Harpoon to file 4",
},
{
"<leader>5",
function()
require("harpoon"):list():select(5)
end,
desc = "Harpoon to file 5",
settings = {
save_on_toggle = true,
},
},
keys = function()
local keys = {
{
"<leader>H",
function()
require("harpoon"):list():add()
end,
desc = "Harpoon File",
},
{
"<leader>h",
function()
local harpoon = require("harpoon")
harpoon.ui:toggle_quick_menu(harpoon:list())
end,
desc = "Harpoon Quick Menu",
},
}
for i = 1, 5 do
table.insert(keys, {
"<leader>" .. i,
function()
require("harpoon"):list():select(i)
end,
desc = "Harpoon to File " .. i,
})
end
return keys
end,
}

@ -0,0 +1,45 @@
-- Automatically highlights other instances of the word under your cursor.
-- This works with LSP, Treesitter, and regexp matching to find the other
-- instances.
return {
{
"RRethy/vim-illuminate",
event = "LazyFile",
opts = {
delay = 200,
large_file_cutoff = 2000,
large_file_overrides = {
providers = { "lsp" },
},
},
config = function(_, opts)
require("illuminate").configure(opts)
local function map(key, dir, buffer)
vim.keymap.set("n", key, function()
require("illuminate")["goto_" .. dir .. "_reference"](false)
end, { desc = dir:sub(1, 1):upper() .. dir:sub(2) .. " Reference", buffer = buffer })
end
map("]]", "next")
map("[[", "prev")
-- also set it after loading ftplugins, since a lot overwrite [[ and ]]
vim.api.nvim_create_autocmd("FileType", {
callback = function()
local buffer = vim.api.nvim_get_current_buf()
map("]]", "next", buffer)
map("[[", "prev", buffer)
end,
})
end,
keys = {
{ "]]", desc = "Next Reference" },
{ "[[", desc = "Prev Reference" },
},
},
{
"neovim/nvim-lspconfig",
opts = { document_highlight = { enabed = false } },
},
}

@ -20,9 +20,9 @@ return {
"ggandor/leap.nvim",
enabled = true,
keys = {
{ "s", mode = { "n", "x", "o" }, desc = "Leap forward to" },
{ "S", mode = { "n", "x", "o" }, desc = "Leap backward to" },
{ "gs", mode = { "n", "x", "o" }, desc = "Leap from windows" },
{ "s", mode = { "n", "x", "o" }, desc = "Leap Forward to" },
{ "S", mode = { "n", "x", "o" }, desc = "Leap Backward to" },
{ "gs", mode = { "n", "x", "o" }, desc = "Leap from Windows" },
},
config = function(_, opts)
local leap = require("leap")
@ -38,6 +38,7 @@ return {
-- rename surround mappings from gs to gz to prevent conflict with leap
{
"echasnovski/mini.surround",
optional = true,
opts = {
mappings = {
add = "gza", -- Add surrounding in Normal and Visual modes
@ -50,6 +51,15 @@ return {
},
},
},
{
"folke/which-key.nvim",
optional = true,
opts = {
defaults = {
["gz"] = { name = "+surround" },
},
},
},
-- makes some plugins dot-repeatable like leap
{ "tpope/vim-repeat", event = "VeryLazy" },

@ -0,0 +1,54 @@
return {
-- disable gitsigns.nvim
{
"lewis6991/gitsigns.nvim",
enabled = false,
},
-- setup mini.diff
{
"echasnovski/mini.diff",
event = "VeryLazy",
keys = {
{
"<leader>go",
function()
require("mini.diff").toggle_overlay(0)
end,
desc = "Toggle mini.diff overlay",
},
},
opts = {
view = {
style = "sign",
signs = {
add = "",
change = "",
delete = "",
},
},
},
},
-- lualine integration
{
"nvim-lualine/lualine.nvim",
opts = function(_, opts)
local x = opts.sections.lualine_x
for _, comp in ipairs(x) do
if comp[1] == "diff" then
comp.source = function()
local summary = vim.b.minidiff_summary
return summary
and {
added = summary.add,
modified = summary.change,
removed = summary.delete,
}
end
break
end
end
end,
},
}

@ -18,12 +18,12 @@ return {
function()
require("mini.files").open(vim.api.nvim_buf_get_name(0), true)
end,
desc = "Open mini.files (directory of current file)",
desc = "Open mini.files (Directory of Current File)",
},
{
"<leader>fM",
function()
require("mini.files").open(vim.loop.cwd(), true)
require("mini.files").open(vim.uv.cwd(), true)
end,
desc = "Open mini.files (cwd)",
},
@ -50,14 +50,14 @@ return {
callback = function(args)
local buf_id = args.data.buf_id
-- Tweak left-hand side of mapping to your liking
vim.keymap.set("n", "g.", toggle_dotfiles, { buffer = buf_id })
vim.keymap.set("n", "g.", toggle_dotfiles, { buffer = buf_id, desc = "Toggle Hidden Files" })
end,
})
vim.api.nvim_create_autocmd("User", {
pattern = "MiniFilesActionRename",
callback = function(event)
require("lazyvim.util").lsp.on_rename(event.data.from, event.data.to)
LazyVim.lsp.on_rename(event.data.from, event.data.to)
end,
})
end,

@ -0,0 +1,7 @@
return {
{
"echasnovski/mini.move",
event = "VeryLazy",
opts = {},
},
}

Some files were not shown because too many files have changed in this diff Show More