Compare commits

..

609 Commits

Author SHA1 Message Date
4e277fcb8f chore(main): release 8.3.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-02 23:00:47 +02:00
86d3694672 feat(conform): added new keymap (leader-cF) to format injected languages 2023-10-02 20:59:00 +02:00
7c5a458761 fix(indent-blankline): set config.indent.tab_char ()
See .
2023-10-02 12:23:08 +02:00
ecac59c982 chore(main): release 8.2.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-02 11:27:12 +02:00
4ff51cd678 feat(mini.files): added lsp rename support to mini.files 2023-10-02 11:02:56 +02:00
fe341e6b97 chore(build): auto-generate vimdoc 2023-10-02 05:41:09 +00:00
0ca732e0ef chore(main): release 8.1.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-02 07:40:30 +02:00
766d5e5bf7 feat(conform): set vim.opt.formatexpr 2023-10-01 23:36:26 +02:00
9b16770573 fix(format): moved formatting keymap to lua/lazyvim/config/keymaps.lua 2023-10-01 23:31:24 +02:00
e36f7d811c feat(format): show warning when no formatter ran when using the format keymap 2023-10-01 23:30:56 +02:00
0b04e3908c chore(format): removed format_notify option 2023-10-01 23:30:26 +02:00
e8ab2ff5b6 feat(go): add goimports () 2023-10-01 23:01:43 +02:00
3acdac917b docs: LazyVim now requires Neovim >= 0.9.0 ()
See: bfe04222fe
2023-10-01 21:01:40 +02:00
2ffd629cc7 feat(elixir): Add credo if none-ls is used () 2023-10-01 19:48:09 +02:00
dd95de5dbe chore(main): release 8.0.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-01 16:28:37 +02:00
9d17c43087 perf: dont't load schemastore as an lspconfig dep 2023-10-01 16:21:18 +02:00
2aea5c7210 feat: show error and exit Neovim when version is too old 2023-10-01 14:18:25 +02:00
9935dc3944 fix: cleanup all Neovim < 0.9.0 code 2023-10-01 14:18:25 +02:00
b8ffa5261a chore(build): auto-generate vimdoc 2023-10-01 12:01:59 +00:00
bfe04222fe docs!: LazyVim now requires Neovim >= 0.9.0 2023-10-01 14:01:12 +02:00
f7655a83c5 chore(build): auto-generate vimdoc 2023-10-01 08:22:12 +00:00
9bb4e8755f feat: replace Copilot icon with logo () 2023-10-01 10:21:35 +02:00
4a2c89cd1d chore(main): release 7.0.3 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-01 00:29:14 +02:00
964dd6c4b2 fix(extras.go): remove unneeded formatters since gopls handles them ()
* fix(extras.go): remove unneeded formatters since gopls handles them

* add optional back
2023-09-30 19:30:52 +02:00
0136bfa4b5 style: format 2023-09-30 18:10:29 +02:00
5eca3dc3bb chore(main): release 7.0.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-30 18:08:39 +02:00
7821c0e851 fix(python): make venv-selector dap_enabled conditional on nvim-dap-python () 2023-09-30 17:51:47 +02:00
bd48536335 chore(build): auto-generate vimdoc 2023-09-30 15:48:50 +00:00
1c878b9d06 fix(format): allow custom_format to return early () 2023-09-30 17:48:19 +02:00
6f9adbd4fb chore(main): release 7.0.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-29 16:52:39 +02:00
ff5f5886db fix(nvim-lint): dont use default configured linters from nvim-lint 2023-09-29 16:49:59 +02:00
300350686f chore(main): release 7.0.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-29 16:14:13 +02:00
718c5c6036 fix(docker): put hadolint in its own spec 2023-09-29 16:09:33 +02:00
31d913697b fix(nvim-lint): use linters for both custom and overriding linters 2023-09-29 15:58:44 +02:00
6bb0d1b66f fix(conform): use formatters for both custom and overriding formatters 2023-09-29 15:56:20 +02:00
0e5ff5c0ab fix(format): wrap custom formatter with error handler 2023-09-29 15:55:29 +02:00
886d49eb89 style: comment the selene example 2023-09-29 15:15:38 +02:00
0f7a009d1c docs: added more docs to nvim-lint extensions 2023-09-29 15:07:29 +02:00
05f45bb720 feat(extras): added extra for nvim-lint 2023-09-29 15:05:01 +02:00
9762e7e431 feat(neo-tree): added support for LSP renaming to NeoTree 2023-09-29 14:14:57 +02:00
aab365a9f8 fix(typescript)!: removed typescript.nvim since it's deprecated 2023-09-29 13:57:04 +02:00
f61a243d1a feat(extras): added conform.nvim extra you can use instead of null-ls/none-ls 2023-09-29 13:37:00 +02:00
6b05ed7dcd fix: remove deprecated leap/flit code checks 2023-09-29 12:00:56 +02:00
a7f68e5e37 refactor(none-ls): make all null-ls usages in extras optional 2023-09-29 12:00:56 +02:00
3c448a1be1 chore(build): auto-generate vimdoc 2023-09-29 09:53:29 +00:00
7cac6f064c feat(null-ls)!: use none-ls instead of null-ls ()
* FEATURE: use none-ls instead of null-ls

Fixes 

* fix(none-ls): automatically migrate null-ls to none-ls

* feat(config): show warning if user config contains renamed references

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-09-29 11:52:45 +02:00
274649e923 chore(main): release 6.4.3 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-28 12:04:36 +02:00
a3011daf40 style: better plugin docs 2023-09-28 11:36:58 +02:00
fa6cbfc602 fix(lsp): don't install jsonls by default. It's part of the json extra 2023-09-28 11:33:45 +02:00
d012a1acb8 docs(telescope): documented Telescope find files. Fixes 2023-09-28 11:24:20 +02:00
d03f708cd3 chore: removed flash extra since this is now the default 2023-09-28 11:22:19 +02:00
017582c05a fix(telescope): typo 2023-09-28 11:10:25 +02:00
13bf7977a4 fix(telescope): replace anonymous functions in mappings by named functions () 2023-09-28 11:08:43 +02:00
74786c21d7 fix(ibl): use default hl groups 2023-09-28 10:54:30 +02:00
7f5051ef72 fix(yamlls): work-around for yaml formatting on Neovim < 0.10. Fixes 2023-09-28 09:00:58 +02:00
b220e54159 fix(telescope): add enums and consts to search symbols () 2023-09-28 08:41:55 +02:00
b25559d397 chore(main): release 6.4.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-28 07:46:31 +02:00
ee068d8399 chore(build): auto-generate vimdoc 2023-09-28 05:41:46 +00:00
db86635e32 fix(indent-blankline): upgrade ibl config to v3 2023-09-28 07:41:00 +02:00
a1ab7c6e32 chore(main): release 6.4.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-27 14:48:32 +02:00
b30ff44af5 chore(build): auto-generate vimdoc 2023-09-27 11:57:42 +00:00
36d6a7fe4f fix(dap): revert loading vscode launch files. Add it to your own config when needed. Fixes 2023-09-27 13:56:53 +02:00
50401d358b chore(main): release 6.4.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-26 14:59:08 +02:00
7c79cfe073 fix(mini.comment): better lua pattern for tags. Fixes 2023-09-26 14:16:22 +02:00
f1af34e885 fix(dap): move launchjs code from java to dap 2023-09-26 13:38:48 +02:00
5dc4ce3e4a feat(java): support vscode launch json in Java ()
* feat(java): support vscode launch json

* feat(java): support vscode launch json
2023-09-26 13:36:22 +02:00
ea930e3545 fix(python): use venv for DAP Python ()
dap_enabled = true, -- Ensure that the venv selector affect PythonPath in nvim-dap as well! (in venv-selector.nvim)
2023-09-26 13:35:27 +02:00
a7f971f30e feat(mini-pairs): add toggle mini pairs keymap and function () 2023-09-26 13:34:28 +02:00
e54d0dde62 feat(autocmds): close InspectTree window with q 2023-09-26 13:27:18 +02:00
0bff29c07a fix: disable context commentstring autocmd 2023-09-26 13:24:03 +02:00
afdcec5b4a feat(extras): added simple csharp extra 2023-09-26 10:58:35 +02:00
f892ba5cff fix: always lazy load keymaps. fixes 2023-09-26 10:57:50 +02:00
a180c3097c chore(build): auto-generate vimdoc 2023-09-26 08:14:33 +00:00
b8d3a1c2cd Revert "fix(yanky): don't override c-p insert mode telescope mapping. Fixes "
This reverts commit 8b1e7976a004d7e0cbaec37546d2889ddab48bbb.
2023-09-26 10:13:00 +02:00
a72a84972d chore(main): release 6.3.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-04 23:10:50 +02:00
6045a52d82 fix: rust debugging not working on windows due to missing liblldb path () 2023-09-04 23:07:55 +02:00
a910b871d1 chore(build): auto-generate vimdoc 2023-09-04 21:05:40 +00:00
15022f4892 fix(java): don't accumulate on_attach, and make more configurable ()
* fix(java): don't accumulate on_attach, and make more configurable

* refactor(java): move defaults to opts
2023-09-04 23:00:39 +02:00
f9dadc11b3 fix(autocmds): restore tabpage on resize () 2023-08-29 18:13:32 +02:00
ec0ddd481c fix(keymaps): change v mode to x mode for save file ()
While trying to disable `<C-s>` entirely by `vim.keymap.del({ "i", "v","n", "s" }, "<C-s>")`
in my own `keymaps.lua`, I got an error on reopening Neovim `No such mapping`.
After tinkering around a bit, I changed `v` to `x`, since `v` incorporates both
`x` and `s` and the error stopped occuring.
2023-08-29 18:07:56 +02:00
64c5848fe8 style: fix comment typo () 2023-08-29 18:02:45 +02:00
23e2b073e6 fix(keymaps): remove gw keymap 2023-08-29 18:00:54 +02:00
451bde5b41 fix(python): disable ruff hover correctly ()
* fix: disable ruff hover correctly

* better fix
2023-08-29 17:59:18 +02:00
377c0e397c feat(python): add more venv names () 2023-08-29 17:58:42 +02:00
971ed5c148 chore(build): auto-generate vimdoc 2023-08-29 15:57:49 +00:00
73dc5a503f fix(clangd): update setup from upstream changes () 2023-08-29 17:57:09 +02:00
566049aa4a feat(treesitter): add jsdoc to ensure_installed ()
better highlighting for jsdoc comment
2023-07-30 11:10:45 +02:00
c1fc996ccd chore(build): auto-generate vimdoc 2023-07-30 09:10:24 +00:00
a62a5942de fix(yaml): yaml validate and enable line folding ()
* fix(yaml): enable validate

see https://github.com/redhat-developer/yaml-language-server#language-server-settings

* feat(yaml): support line folding
2023-07-30 11:09:44 +02:00
9264c54ae9 feat(clangd): remove CMakelists root_dir search ()
Provide better handling of root_dir search for C++ project
using CMakelists.txt per folder
2023-07-26 21:44:47 +02:00
549baee224 chore(build): auto-generate vimdoc 2023-07-26 19:44:27 +00:00
d7ca822d41 fix(yaml): yaml: Fix TypeError undefined length ()
In YAML files LSP completion is not happening because
yaml-language-server is failing with error:

    TypeError: Cannot read properties of undefined (reading 'length')

from out/server/src/languageserver/handlers/settingsHandlers.js:78:51,
which it's expecting to have yaml.schemaStore.url.length and it's
doesn't exist.

Signed-off-by: Javier Tia <javier.tia@gmail.com>
2023-07-26 21:43:49 +02:00
aa1cccf230 chore(main): release 6.2.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-25 19:39:16 +02:00
6dc66852b8 feat(extra): add yaml language extension ()
* feat: add yaml language extension

* fix(yaml): disable keyOrdering checks

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-07-25 19:37:13 +02:00
9fe89f5f8a fix(lang_java): fixes other two entries of vim.fs.joinpath as well that were not changed in () 2023-07-25 19:22:10 +02:00
76d33bba2c feat: Enable flash.nvim highlight on catppuccin integration ()
Since flash.nvim has already been the default one, and catppuccin already support it

Co-authored-by: Radvil <radvil@@access-mobile.com>
2023-07-25 15:39:08 +02:00
79619364bd chore(build): auto-generate vimdoc 2023-07-25 13:26:10 +00:00
2e09051472 fix: fixes ()
Co-authored-by: Andreas Gerlach <andreas.gerlach@xarvio.com>
2023-07-25 15:25:24 +02:00
9a0543531d fix(lsp): supports_method for checking inlay hint support () 2023-07-23 18:09:48 +02:00
f6d646a325 feat(java): add test and debug support for Java extension () 2023-07-23 18:08:01 +02:00
07f183516f chore(build): auto-generate vimdoc 2023-07-23 16:07:08 +00:00
b97ccb9e73 fix: use cmakelang instead of cmakelint () 2023-07-23 18:06:25 +02:00
142e6bec20 chore(main): release 6.1.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-22 09:28:43 +02:00
fa898b7293 feat(lang): add cmake support ()
* feat(lang): add cmake support

* refactor

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-07-22 09:27:06 +02:00
012ca50b28 feat(python): add semantic highlighting ()
* feat(python): add semantic highlighting

* refactor: moved to python-semshi

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-07-22 09:21:12 +02:00
6b2c648878 feat(telescope): allow word and selection searches ()
Changes the current normal-mode mappings <leader>sw / <leader>sW to only
display matches surrounded by word boundaries. Also adds the equivalent
visual-mode mappings to allow searching for the current selection.

Selection searching does not consider word boundaries, so highlighting a
single word and searching for it will produce the same results as the
word-under-cursor searching did before this change. This allows the user
to easily choose whether or not to include word boundaries in their
search.
2023-07-22 09:15:14 +02:00
02d673d37c feat(lang): add debug adapter plugin for go ()
neotest-go does not provide a DAP strategy, and thus you cannot invoke the debugger with require('neotest').run.run({strategy=dap}).

There have been efforts to implement this in https://github.com/nvim-neotest/neotest-go/issues/12 but this seems to have stalled.
You can find the background to this change discussed here: https://github.com/LazyVim/LazyVim/discussions/1107
2023-07-22 09:13:54 +02:00
0411baab89 feat(lang): add java () 2023-07-22 09:12:42 +02:00
31b50e3a9c chore(build): auto-generate vimdoc 2023-07-22 07:11:19 +00:00
e5f53ee193 fix(terraform): configure commentstring () 2023-07-22 09:10:37 +02:00
d71ebeab24 feat(clangd): better clangd root detection () 2023-07-21 22:35:02 +02:00
a184fc1c73 chore(build): auto-generate vimdoc 2023-07-21 06:15:15 +00:00
871e7fb0db chore(main): release 6.0.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-21 08:14:39 +02:00
fc50c055c3 feat: add a keybind to search register ()
use `<leader>"` to search register through telescope
2023-07-20 23:40:23 +02:00
df0818880e fix(util): fixed line number toggling. Closes 2023-07-20 23:38:43 +02:00
6323b419fd docs: Add more documentation () 2023-07-20 23:16:13 +02:00
abaa6d90e4 feat(lang): add tex support ()
* feat(lang): add tex support

* Reword comments

* Remove personalise configs.

* Disable lazy-loading.

* Remove chktex in LSP server texlab.

* Update local conceallevel setup.

* Add keymap for vimtex-doc-package.

* Enable vimtex omni-completion.

* Update vimtex's keymap.

* refactor: move vimtex K to texlab

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-07-20 12:26:05 +02:00
f70f873355 chore(build): auto-generate vimdoc 2023-07-20 07:21:08 +00:00
258f339bcf feat(options)!: set default localleader to \ 2023-07-20 09:20:24 +02:00
4d0427e131 chore(build): auto-generate vimdoc 2023-07-19 11:14:51 +00:00
f2459bd70e docs: Improve summary documentation of deps () 2023-07-19 13:14:07 +02:00
e797e13bce docs: Update CHANGELOG.md ()
availble -> available
2023-07-18 20:45:24 +02:00
489221f741 chore(build): auto-generate vimdoc 2023-07-18 06:47:32 +00:00
a28acf0ce7 feat(keymaps): added leader-K to run keywordprg 2023-07-18 08:46:52 +02:00
fb1f29c32c chore(main): release 5.1.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-16 10:44:20 +02:00
b4b27e867c fix(mason): add MasonUpdate to build 2023-07-16 10:42:14 +02:00
f46316af00 chore(main): release 5.1.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-16 10:38:07 +02:00
63e898599a feat(lang): add null-ls tools to mason's ensure_installed () 2023-07-16 08:47:06 +02:00
3a07bd8d2e chore(build): auto-generate vimdoc 2023-07-16 06:42:27 +00:00
69bb89184f feat(neo-tree): update to v3.x and change follow_current_file to a … ()
* feat(neo-tree): update to v3.x and change `follow_current_file` to a table and enable it

* fix(neo-tree): remove nerd font v3 icons

* fix(neo-tree): remove legaccy commands

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-07-16 08:41:45 +02:00
0801e52118 chore(build): auto-generate vimdoc 2023-07-15 07:31:17 +00:00
1b0b6eb0e1 feat(lsp): add 'reuse_win' for reuse window in lsp definition keymap ()
* feat(lsp): add 'reuse_win' for reuse window in lsp definition keymap

* fix: inline telescope require
2023-07-15 09:30:34 +02:00
8c0e39c826 chore(main): release 5.0.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-13 08:21:44 +02:00
bb2608ecd1 chore(build): auto-generate vimdoc 2023-07-13 06:18:44 +00:00
ae759b947b feat(flash)!: Make flash.nvim the default jump plugin for LazyVim
Use the `editor.leap` extra if you rather want to use leap/flit
2023-07-13 08:18:02 +02:00
9387ab388e feat: added leader-L to show the LazyVim changelog 2023-07-13 08:18:02 +02:00
8f9f76a96f chore(main): release 4.28.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-12 20:04:33 +02:00
9e8ce289d1 fix(neoconf): do neoconf setup in lspconfig setup. Fixes 2023-07-12 20:01:43 +02:00
5204aacf8d chore(main): release 4.28.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-12 19:48:49 +02:00
a0c2014b10 feat(lang): add docker support () 2023-07-12 17:42:05 +02:00
c882544224 docs: added c compiler to requirements ()
See: 2ef0c437b2
2023-07-12 17:36:30 +02:00
e212c166b4 feat(mini.ai): decouple mini.ai from which-key. Closes 2023-07-12 17:25:35 +02:00
9fd89701da feat(util): added util.on_load to execute code when a plugin loads 2023-07-12 17:25:35 +02:00
b1721bc20a chore(build): auto-generate vimdoc 2023-07-12 14:34:54 +00:00
3f68f44d72 fix(lsp-config): lsp-config error when nvim-cmp not enabled. ()
* fix(lsp-config): lsp-config error when nvim-cmp not enabled.

* Update lua/lazyvim/plugins/lsp/init.lua

Co-authored-by: Jonas Holst Damtoft <Jomik@users.noreply.github.com>

---------

Co-authored-by: Jonas Holst Damtoft <Jomik@users.noreply.github.com>
2023-07-12 16:34:07 +02:00
a38bf3001d chore(build): auto-generate vimdoc 2023-07-10 15:51:36 +00:00
67d1cbfb01 feat(catppuccin): match navic bg with lualine () 2023-07-10 17:50:53 +02:00
abea2807ce chore(main): release 4.27.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-06 20:46:37 +02:00
44cdb5eac5 feat(lang): add python support () 2023-07-06 20:43:19 +02:00
0db31c2840 feat(extras): add terraform extra () 2023-07-06 19:46:34 +02:00
22c9477b96 feat(flash): use c-s in the cmdline to toggle flash 2023-07-06 15:51:31 +02:00
baa9614022 fix(autocmds): jump to last loc in buffer ()
vim.api.nvim_win_set_cursor is expecting a window handle but was being
passed the current buffer's handle instead
2023-07-06 15:43:15 +02:00
b660b51718 chore(main): release 4.26.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-06 15:40:33 +02:00
99f30f9a37 chore(build): auto-generate vimdoc 2023-07-06 13:36:51 +00:00
ae054ec13c feat(vscode): easier way to enable/disable plugins 2023-07-06 15:36:03 +02:00
bcff5a1937 fix(util): use spec to check if a plugin is enabled 2023-07-06 15:35:34 +02:00
299aae3545 fix(flash): depraction warning 2023-07-06 15:21:45 +02:00
0b020dc37b chore(main): release 4.25.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-04 19:08:01 +02:00
755419f39c fix: trigger ci 2023-07-04 19:06:15 +02:00
ddb819cb9a chore(build): auto-generate vimdoc 2023-07-04 06:26:34 +00:00
9c120b5ef7 Revert "fix: leap nvim required by flit ()"
This reverts commit dee8dc318efac8883fe149503ea92924ff4a4de2.
2023-07-04 08:25:38 +02:00
d33be73b8d chore(main): release 4.25.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-03 21:47:59 +02:00
27eb4610bd feat(catppuccin): enable mason integration ()
Signed-off-by: David Ward <dward@redhat.com>
2023-07-03 21:45:40 +02:00
e5200e6358 feat(lang): add C/C++ support () 2023-07-03 15:48:51 +02:00
64ca399c56 chore(build): auto-generate vimdoc 2023-07-03 13:42:01 +00:00
dee8dc318e fix: leap nvim required by flit ()
step to reproduce
- disable leap.nvim
- add custom config for flash (not using one from the extras)
- open file type "f", error shown "module leap is missing"

Co-authored-by: Radvil <radvil@@access-mobile.com>
2023-07-03 15:41:16 +02:00
6d58f1dacf fix(hipatterns): remove assert. Fixes 2023-07-02 22:25:43 +02:00
a981682603 fix(lsp): update keymaps *after* registering capabilities 2023-07-02 17:37:13 +02:00
bbaf47028f chore(main): release 4.24.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-02 14:44:14 +02:00
8ccc109e92 fix(lsp): fixup lsp keymaps 2023-07-02 14:34:36 +02:00
a9c73bc7c3 chore(main): release 4.24.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-02 13:18:47 +02:00
4009620651 fix(typescript): use new lsp keymaps config for typescript 2023-07-02 13:04:49 +02:00
39627cab42 fix(rust): remove rust-tools dep from lspconfig 2023-07-02 13:02:51 +02:00
1e1fc3c6a0 fix(go): make settings configurable for go 2023-07-02 13:01:59 +02:00
eaa0118dd2 feat(rust): make taplo configurable 2023-07-02 12:58:09 +02:00
272f6af842 feat(rust): make mason optional 2023-07-02 12:58:09 +02:00
29ba21274d chore(build): auto-generate vimdoc 2023-07-02 10:48:00 +00:00
a46d47653e feat(rust): refactor to allow easy user customization and keymaps 2023-07-02 12:46:29 +02:00
61e3ce8cdc feat(lsp): custom lsp keymaps 2023-07-02 12:44:54 +02:00
36774c6058 fix(lsp): resolve keymap capabilities over all buffer clients 2023-07-02 12:43:16 +02:00
d0bc8b7dce feat(lsp): added support to lsp keymaps for dynamic capabilities 2023-07-02 12:42:35 +02:00
fca09b12e8 chore(build): auto-generate vimdoc 2023-07-01 06:53:32 +00:00
ea21cad7ed chore(main): release 4.23.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-01 08:52:51 +02:00
4ba5086b3d feat(go): add fine-tuned LSP options, add some null-ls sources () 2023-06-30 23:14:58 +02:00
089606b48d fix(lsp): upstream inlay_hint rename 2023-06-30 20:44:39 +02:00
6d8be7ae46 chore(main): release 4.22.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-30 16:25:13 +02:00
79b1c92dd2 feat(rust): rust improvements ()
* fix(rust): move lspconfig opts to correct location

lspconfig's `opts` goes in rust-tools's `opts.server`; see
https://github.com/simrat39/rust-tools.nvim#configuration

* feat(rust): add neotest-rust

* feat(rust): allow user to extend rust-tools with `opts`

Also avoids calling rust-tools's `setup()` twice.

* style(rust): fix indentation for stylua comment
2023-06-30 16:19:00 +02:00
c992ebec46 fix(lang): indentation in rust lang extra () 2023-06-30 16:03:22 +02:00
37d7ccdea1 chore(main): release 4.21.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-30 09:03:44 +02:00
5a441f8972 feat(lang): Add Rust config () 2023-06-30 08:55:18 +02:00
3d0de235ec feat(extra): Add Elixir support and config () 2023-06-30 08:41:48 +02:00
146bc4f172 chore(build): auto-generate vimdoc 2023-06-30 06:36:06 +00:00
65c70f6ad7 fix(autocmds): dont jump to last loc in gitcommit buffers 2023-06-30 08:35:27 +02:00
75d029c35b chore(main): release 4.20.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-29 21:07:35 +02:00
8b1e7976a0 fix(yanky): don't override c-p insert mode telescope mapping. Fixes 2023-06-29 20:50:04 +02:00
0e33010937 chore(build): auto-generate vimdoc 2023-06-29 06:03:51 +00:00
2f2c7a32a4 fix(catppuccin): change nvim-tree integration to neo-tree for catppuccin/nvim plugin () 2023-06-29 08:03:05 +02:00
c03b9a3ff1 chore(main): release 4.20.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-28 13:06:32 +02:00
e83d2c814f fix(yanky): use leader-p for telescope integration 2023-06-28 12:59:08 +02:00
5818e01f27 chore(build): auto-generate vimdoc 2023-06-28 09:27:32 +00:00
a1820c1b42 feat(extras): added yanky extra (yank-ring) 2023-06-28 11:26:54 +02:00
27d3e45df6 refactor(cmp): move comparator config to cmp spec 2023-06-28 11:26:53 +02:00
296d79cfbc chore(main): release 4.19.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-28 00:07:06 +02:00
240fa7631b chore(build): auto-generate vimdoc 2023-06-27 20:03:32 +00:00
d1eb9c89d3 fix(mini.files): changed some window widths 2023-06-27 22:02:51 +02:00
c5759a451f fix(flash): don't override R in normal mode 2023-06-27 22:02:51 +02:00
c998be8fa4 chore(main): release 4.19.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-26 21:58:57 +02:00
5f89e4a142 chore(build): auto-generate vimdoc 2023-06-26 19:35:53 +00:00
5e6a07200c feat(flash): added treesiter search to show ts node labels around search matches 2023-06-26 21:35:03 +02:00
a40f257c79 chore(main): release 4.18.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-25 19:53:17 +02:00
f6f8436fe8 feat(flash): enable flash in vscode 2023-06-25 19:50:33 +02:00
e9358d977a fix(keymaps): remove redundant ':' on lazy keymap () 2023-06-25 10:05:07 +02:00
e018d07cce chore(build): auto-generate vimdoc 2023-06-25 05:22:14 +00:00
d5a9c54faf fix(edgy): corrected filetype for symbols outline 2023-06-25 07:21:26 +02:00
85542df6f5 chore(main): release 4.17.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-24 13:20:16 +02:00
abfdab37ce fix(flash): possible nil for telescope integration 2023-06-24 13:17:03 +02:00
12b57235a9 feat(flash): telescope integration. Use s in normal and <c-s> in insert mode 2023-06-24 13:14:23 +02:00
1acad8be93 chore(build): auto-generate vimdoc 2023-06-24 09:09:08 +00:00
6e9b18aa93 chore(main): release 4.16.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-24 11:08:27 +02:00
c3477ed81e feat(flash): added remote flash 2023-06-23 16:02:02 +02:00
a080bc7667 feat(mini.files): "g." to toggle hidden files () 2023-06-23 13:25:50 +02:00
eb7b4fc369 chore(main): release 4.15.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-23 13:25:23 +02:00
9bfe77c1de chore(build): auto-generate vimdoc 2023-06-23 11:20:51 +00:00
2ef0c437b2 docs: added c compiler to requirements 2023-06-23 13:20:03 +02:00
ed89d01113 fix(edgy): only add symbolsoutline to the sidebar if it is installed. 2023-06-22 20:53:16 +02:00
09c1bf54ea chore(main): release 4.15.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-22 16:36:36 +02:00
5299522780 feat(mini.files): added extra keymap to open mini.files in the cwd 2023-06-22 16:29:45 +02:00
9ea1f31e9d chore(main): release 4.14.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-22 16:20:24 +02:00
e624511fa2 feat(extras): added extra for mini.files 2023-06-22 16:17:54 +02:00
69bf9e7e01 style(options): update comment () 2023-06-22 12:51:25 +02:00
ca1880da0a chore(main): release 4.13.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-22 12:48:15 +02:00
09fafb946a perf(treesitter): better way of loading treesitter-textobjects 2023-06-22 11:43:32 +02:00
8281bd2f63 chore(main): release 4.13.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-22 10:45:32 +02:00
aa28119aa6 feat(flash): add treesitter to normal mode as well 2023-06-22 10:37:47 +02:00
5d0e10a30a chore(build): auto-generate vimdoc 2023-06-22 08:35:06 +00:00
0b99c9f788 fix(neo-tree): updated some icons to use Nerd Fonts v3. Fixes 2023-06-22 10:34:28 +02:00
47111bd2db chore(main): release 4.12.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-21 11:05:28 +02:00
318a4c8304 feat: added extra for flash.nvim 2023-06-21 10:51:04 +02:00
e865b9abe1 chore(main): release 4.11.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-21 08:05:13 +02:00
31505842be chore(build): auto-generate vimdoc 2023-06-21 06:03:21 +00:00
01c7eeebd0 feat: added support for the new builtin inlay hints
Enable with:
```lua
{"neovim/nvim-lspconfig", opts = {inlay_hints = {enabled = true}}}
```
2023-06-21 08:01:59 +02:00
428bdf768f chore(main): release 4.10.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-19 16:35:48 +02:00
e4eb4e1603 chore(build): auto-generate vimdoc 2023-06-19 14:10:01 +00:00
6b1efe78e2 feat(treesitter): allow run TSUpdateSync from command line ()
Use a script to keep the neovim updated is really useful, but is not
possible by default because TSUpdateSync is not on `cmd` commands.

```sh
nvim --headless "+Lazy! sync" "+TSUpdateSync" +qa
```
2023-06-19 16:09:23 +02:00
b37616c203 feat(extras): add ruby as extras for languages ()
* Add ruby as extras for languages

* remove personal things that other people might not use

* fix typo

* install solargraph through mason
2023-06-17 08:27:15 +02:00
d3440766d0 chore(main): release 4.9.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-17 08:22:33 +02:00
855b1ccc7d chore(build): auto-generate vimdoc 2023-06-17 06:21:21 +00:00
f54d95d965 fix(which-key): don't load which-key as a noice dep 2023-06-17 08:20:44 +02:00
ebd002f135 fix(keymaps): disable ctrl-hjkl for lazygit. Fixes 2023-06-16 19:06:27 +02:00
b95644448e chore(build): auto-generate vimdoc 2023-06-16 12:52:58 +00:00
41f515caae feat(util): LazyVim terminals can now be opened/reopened with a count 2023-06-16 14:52:13 +02:00
cbf1797f4c style: added CmpGhostText 2023-06-16 14:51:19 +02:00
2e7ad2b825 chore(build): auto-generate vimdoc 2023-06-12 15:23:02 +00:00
ba49339fe3 feat(edgy): added LazyVim resize keymaps to edgy 2023-06-12 17:22:17 +02:00
84986b3729 feat(edgy): added support for neotest 2023-06-12 17:22:17 +02:00
986a6374f4 chore(main): release 4.8.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-09 17:56:18 +02:00
30d03eda5b fix(edgy): make noice windows 0.4 height 2023-06-09 16:28:26 +02:00
d6bb907cf0 fix(keymaps): dont map jk in visual. Use x instead of v. Fixes 2023-06-09 16:27:45 +02:00
b2bceeed77 chore(main): release 4.8.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-09 12:57:09 +02:00
86fe83f311 chore(build): auto-generate vimdoc 2023-06-09 10:44:20 +00:00
04f17cb86b feat(edgy): added leader-ue to toggle edgy sidebars 2023-06-09 12:43:35 +02:00
9013f6e274 faet(edgy): leader-ue => leader-uE to select an edgy window 2023-06-09 12:43:35 +02:00
6ffc89512e feat(edgy): neo-tree filessystem is now also a pinned view 2023-06-09 12:43:35 +02:00
e049928b8b fix(keymaps): better j/k for visual mode () 2023-06-08 13:48:23 +02:00
7c593dce1f chore(main): release 4.7.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-08 09:47:29 +02:00
47edc8918a feat(edgy): added noice 2023-06-08 07:54:14 +02:00
f7b0c853cc fix(edgy): dont layout toggleterm floats 2023-06-08 07:54:14 +02:00
448d502947 fix(qf): better error message. Fixes 2023-06-08 07:54:14 +02:00
57c7ba1c0d chore(build): auto-generate vimdoc 2023-06-08 05:49:10 +00:00
2ec4da7fa5 fix(format): eslint should respect autoformat () 2023-06-08 07:48:34 +02:00
0731f08ee4 feat(edgy): added <leader>ue to quickly jump to an edgy window 2023-06-06 12:20:56 +02:00
00339b7b56 chore(main): release 4.6.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-06 07:59:08 +02:00
34a5d32561 chore(build): auto-generate vimdoc 2023-06-06 05:47:11 +00:00
1897617c98 fix(keymaps): terminal show/hide 2023-06-06 07:46:32 +02:00
41765a4041 chore(main): release 4.6.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-06 00:33:49 +02:00
ad6f6cfffd fix(edgy): dont edit help buffers in edgy 2023-06-06 00:11:53 +02:00
d31772f981 fix(keymaps): added c-_ mapped to c-/ to make it work in some terminals 2023-06-06 00:11:52 +02:00
6a01c9a180 chore(main): release 4.6.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-05 23:30:44 +02:00
b929413ddd feat(copilot): enable copilot in markdown and help files 2023-06-05 22:51:55 +02:00
56f092f1a8 feat: added extra for edgy.nvim 2023-06-05 19:29:11 +02:00
821672a0db chore(main): release 4.5.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-05 13:34:02 +02:00
8ce862e12e chore(build): auto-generate vimdoc 2023-06-05 10:11:35 +00:00
952a0cfb96 fix(keymaps): remove c-w mapping 2023-06-05 12:10:55 +02:00
d69d55afd4 chore(main): release 4.5.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-03 11:01:39 +02:00
7a36e2989c feat(keymaps): added <c-/> in normal/terminal mode to toggle main terminal 2023-06-03 10:54:29 +02:00
049fe77c3c chore(build): auto-generate vimdoc 2023-06-03 08:50:38 +00:00
5a47492535 feat(util): LazyVim terminals are now persistent by default (toggleterm) 2023-06-03 10:49:58 +02:00
15f5a229d9 fix(indentscope): dont use indentscope/blankline for lazyterm/toggleterm/notify 2023-06-03 10:49:58 +02:00
bb4a7fe410 fix(spectre): make spectre behave with regards to swap files 2023-06-03 10:49:58 +02:00
419086e8a3 feat(neo-tree): enabled document_symbols for neo-tree 2023-06-03 10:49:58 +02:00
49ae2344a1 feat(keymaps): added some useful keymaps for terminals 2023-06-03 10:49:58 +02:00
1efe3a96b2 chore(build): auto-generate vimdoc 2023-06-02 05:40:07 +00:00
5ed3250f24 fix(lualine): dont load copilot when not available. Fixes 2023-06-02 07:39:22 +02:00
9c1a5620ed chore(build): auto-generate vimdoc 2023-06-01 22:11:28 +00:00
08422bf559 perf(illuminate): on large files >2000 lines, enable lsp references only 2023-06-02 00:10:02 +02:00
fc236b3a2a feat(noice): route some undo messages to the mini view 2023-06-01 22:57:06 +02:00
01fbeb139b chore(build): auto-generate vimdoc 2023-05-30 21:21:43 +00:00
99ce1002d7 chore(main): release 4.4.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-30 23:21:07 +02:00
3b4c27e6a6 chore(build): auto-generate vimdoc 2023-05-29 20:29:14 +00:00
a94ef5953a fix(indent-blankline): don't load indent-blankline for nvim-notify 2023-05-29 22:28:28 +02:00
0c05f8a185 feat(catppuccin): enabled integration for plugins included with LazyVim 2023-05-29 22:28:28 +02:00
6b68378c2c chore(main): release 4.3.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-28 12:54:13 +02:00
0e671ad7fa fix(neotest): properly detect __call. Fixes 2023-05-28 12:52:22 +02:00
b68311eb6d chore: removed util.build. This is now part of the lazyvim website code 2023-05-28 12:39:51 +02:00
a866c6801d fix(neotest): removed <leader>tR in favor of <leader>tt 2023-05-28 11:07:02 +02:00
5c97e0c1d0 chore(build): auto-generate vimdoc 2023-05-28 07:42:37 +00:00
72b81553f3 fix(dashboard): center the LazyVim logo ()
* Center the LazyVim logo

This visually centers the LazyVim login on the starter page.

* fix(alpha): center logo

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-05-28 09:41:58 +02:00
88238e2109 fix(luasnip): use echo instead of echo -e for build warning 2023-05-27 23:03:44 +02:00
c272bba013 chore(main): release 4.3.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-27 09:58:08 +02:00
b16012b106 chore(build): auto-generate vimdoc 2023-05-27 07:38:41 +00:00
efc72b0649 feat(neotest): added <leader>tt and <leader>tT to run tests in file or all test files 2023-05-27 09:37:55 +02:00
2a3bac7690 fix(neotest): support neotest adapaters that use setup() for custom setup 2023-05-27 09:37:17 +02:00
98e2ffcf14 feat(neotest): allow adapter names as a list 2023-05-27 09:36:52 +02:00
2c89770504 feat(noetest): open trouble instead of quickfix on errors when available 2023-05-27 09:36:29 +02:00
30824369c2 fix(hipatterns): default options 2023-05-27 09:36:05 +02:00
1288f0d5a5 fix(neotest): added some additional filetypes to close with q 2023-05-27 09:35:49 +02:00
a3ec4c21f7 chore(main): release 4.2.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-26 17:01:21 +02:00
f7a63042f9 feat(hipatterns): made tailwind ft and style configurable 2023-05-26 16:42:07 +02:00
b7a925904e fix(hipatterns): reset hl groups when colorscheme changes 2023-05-26 16:32:34 +02:00
5eccaeb992 feat(lsp): added nvim-lspconfig.opts.format_notify. Enable this to debug formatter issues. 2023-05-26 10:51:07 +02:00
962fc6bab4 feat(lsp): added support for upcoming dynamic registration of formatters 2023-05-26 10:50:16 +02:00
e990d23cfe chore(main): release 4.1.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-26 08:20:25 +02:00
b027bebeab fix(hipatterns): make sure priority is higher than the one for references 2023-05-26 08:14:29 +02:00
19f4250888 chore(build): auto-generate vimdoc 2023-05-26 06:11:52 +00:00
33f61b58de fix(hipatterns): make it work on stable 2023-05-26 08:11:07 +02:00
5373af76f8 chore(main): release 4.1.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-25 23:34:31 +02:00
c526ea338b feat(hipatterns): better tailwind fg colors 2023-05-25 23:32:55 +02:00
ba0cfbccf3 chore(main): release 4.0.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-25 22:40:52 +02:00
47ee48faba build: fixed docs build 2023-05-25 22:37:45 +02:00
7bc979a7c1 feat: added extra for mini.hipatterns with tailwind support 2023-05-25 22:33:58 +02:00
9c7821e681 fix!: remove nvim-colorizer.lua It actually wasn't even enabled and I'll add hipatterns with optional tailwind support soon 2023-05-25 21:55:05 +02:00
95e2a07f16 chore(main): release 3.7.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-25 20:29:48 +02:00
d35d982984 chore: remove unused upvalue function () 2023-05-25 20:05:02 +02:00
877e63ca8e fix(telescope): use last-known telescope commit to work on Neovim 0.8.0 when running in Neovim 0.8.0 2023-05-25 18:33:59 +02:00
bc24b68260 chore(main): release 3.7.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-25 14:27:09 +02:00
b75ed594a9 fix(mini.comment): removed dirty upvalues hack for mini.comments. no longer needed 2023-05-25 14:24:29 +02:00
4f2bb725be refactor(mason): use new handlers opt 2023-05-25 14:24:29 +02:00
2f0bfbbad8 chore(build): auto-generate vimdoc 2023-05-25 07:08:32 +00:00
01a6085b2b chore(main): release 3.7.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-25 09:07:44 +02:00
2b5ae7b63c feat(go): add workaround to get semantic token highlighting () 2023-05-24 23:22:40 +02:00
dc40f02f35 chore(main): release 3.6.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-24 22:14:12 +02:00
4b367952f6 fix(tailwind): nil check on filetypes_exclude. See 2023-05-24 22:02:30 +02:00
7c9abd7463 fix(vscode): only remap keybinds when running in vscode 2023-05-24 21:59:37 +02:00
868ccedff2 chore(main): release 3.6.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-24 14:28:48 +02:00
29632c6b29 fix(go): actually set semantic tokens () 2023-05-24 14:07:23 +02:00
5b7ae96c5d chore(main): release 3.6.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-24 11:30:49 +02:00
e9fb81e94d feat(typescript): added dap config for typescript. Will only be enabled when dap is also enabled 2023-05-24 10:47:54 +02:00
b172f47f27 fix(go): extend mason ensure_installed 2023-05-24 10:35:05 +02:00
9cfe88c7ba fix: remove debug notify () 2023-05-24 10:34:27 +02:00
163a4f9275 feat(go): add go lang extras ()
* feat(go): add go lang extras

* fix(go): update plugin

* fix(go): add neotest adapter to adapters

* fix(go): pr changes
2023-05-24 08:55:03 +02:00
076b2e432e chore(build): auto-generate vimdoc 2023-05-24 06:46:02 +00:00
5bf45e3139 feat(vscode): better vscode support 2023-05-24 08:45:20 +02:00
eba510ec69 fix(vscode): properly cleanup disabled deps 2023-05-23 14:33:13 +02:00
39fa63646d feat(vscode): add vscode=true to any plugin spec you want to activate in vscode 2023-05-23 14:33:00 +02:00
e975f021ea fix(vscode): added ts-context-commentstring 2023-05-23 14:32:32 +02:00
bf66e71adc fix(neotest): pass opts to neotest 2023-05-23 14:07:11 +02:00
cd96e3d9e5 refactor(neotest): better way to pass custom options for adapters 2023-05-23 13:00:15 +02:00
5559228300 chore(main): release 3.5.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-23 09:01:26 +02:00
3dcc074693 fix(vscode): support older Neovim versions. Fixes 2023-05-23 08:44:51 +02:00
58c3842faa chore(build): auto-generate vimdoc 2023-05-23 06:43:03 +00:00
89db0157b1 feat(mini.comment): added ts-context-commentstring back and made it work with mini.comment 2023-05-23 08:41:44 +02:00
7443effe26 feat(test): added easy way to configure adapters 2023-05-22 21:31:12 +02:00
78298cb134 chore(main): release 3.4.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-22 21:00:46 +02:00
55bf4d104c build: dont generate docs for the vscode extra 2023-05-22 20:57:49 +02:00
c12835ab86 feat(vscode): added vscode extra with minimal functionality. Will only do something when vim.g.vscode is set 2023-05-22 20:57:33 +02:00
183fd89d76 fix: make some extra deps optional 2023-05-22 20:57:26 +02:00
99785ce36b fix(persistence): dont add rtp to session 2023-05-22 20:57:26 +02:00
bb0d4d4e7d feat(tests): added neotest ()
* feat(tests): adds test management

* refactor(tests): pr changes

* fix(tests): make dap keybind optional based on nvim-dap existence
2023-05-22 20:57:15 +02:00
f8982332be feat(project): add to mini.starter ()
* feat(project): add to mini.starter

* fix(project): make alpha and mini.starter optional
2023-05-22 20:30:18 +02:00
0c517d1f5c chore(build): auto-generate vimdoc 2023-05-22 14:39:48 +00:00
df6a0d3b10 style: removed deprecated option from neodev 2023-05-22 16:39:09 +02:00
7a7c024bf6 chore(build): auto-generate vimdoc 2023-05-21 08:53:25 +00:00
29554455aa feat(tailwind): don't enable tailwind in markdown files 2023-05-21 10:52:46 +02:00
b227d9727a perf(eslint): only run EslintFixAll for the current buffer when there are diagnostics from eslint 2023-05-19 22:49:25 +02:00
b4099a6477 fix(dap): fix the mason-nvim-dap setting name () 2023-05-19 21:34:19 +02:00
5a27e1def0 chore(build): auto-generate vimdoc 2023-05-19 13:07:42 +00:00
06e4ba2fdb style: Fix comments on autocmds and keymaps loading () 2023-05-19 15:06:59 +02:00
23410a4594 chore(main): release 3.3.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-18 16:31:55 +02:00
c737f2b6c2 feat(telescope): added <a-c> mapping for telescope pickers to switch to cwd instead of root 2023-05-18 09:46:46 +02:00
78354a1e5e fix(telescope): keep current prompt when switching to hidden/no_ignore 2023-05-18 09:46:46 +02:00
080ea29354 chore(main): release 3.2.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-18 08:30:28 +02:00
3d7238f753 chore(build): auto-generate vimdoc 2023-05-18 06:22:51 +00:00
a43d1b79f2 feat(noice): enable the inc_rename preset when inc_rename is availble 2023-05-18 08:22:08 +02:00
bd1ba54d13 fix(mini): lazy now supports mini plugins out of the box. no longer needed to have a custom config 2023-05-13 16:16:10 +02:00
9f2010a8b9 chore(main): release 3.1.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-13 15:49:06 +02:00
e09423b28c chore(build): auto-generate vimdoc 2023-05-13 13:46:15 +00:00
2525b91313 feat(noice): send written notifications to the mini view instead of notify 2023-05-13 15:45:28 +02:00
a213da4430 feat(noice): use noice's improved entry doc view for cmp 2023-05-13 15:45:02 +02:00
b57582bc91 chore(main): release 3.0.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-12 20:40:23 +02:00
d41ef05cc0 feat(mini.comment)!: removed ts-context-commentstring since mini.comment provides this functionality out of the box
If you use this plugin, you can add it again with the following code:
{
  "nvim-treesitter/nvim-treesitter",
  opts = {
    context_commentstring = {
      enable = true,
      enable_autocmd = false,
    },
  },
  dependencies = {
    "JoosepAlviste/nvim-ts-context-commentstring",
  },
}
2023-05-12 20:34:36 +02:00
dfde622847 chore(main): release 2.13.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-12 17:05:10 +02:00
44df7434d4 perf(comment): removed nvim-ts-context-commentstring, since mini.comment now handles that internally 2023-05-12 17:03:16 +02:00
049e323714 fix(copilot): removed special handling of copilot in cmp. no longer needed 2023-05-12 17:01:10 +02:00
7d96b07c6f chore(build): auto-generate vimdoc 2023-05-12 14:47:08 +00:00
ad229bbf42 fix(copilot): latest copilot-cmp requires passing opts to _on_insert_enter () 2023-05-12 16:46:21 +02:00
cbf1d335ed chore(build): auto-generate vimdoc 2023-05-08 16:57:02 +00:00
6ebf3ab084 fix(icons): updated a dap icon 2023-05-08 18:56:18 +02:00
25d37a2cdd chore(main): release 2.13.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-04 18:32:55 +02:00
7409fef291 chore(build): auto-generate vimdoc 2023-05-04 16:28:28 +00:00
3f5c2c283e feat(extras): added extra for tailwindcss 2023-05-04 18:27:36 +02:00
f51719a12d chore(build): auto-generate vimdoc 2023-05-02 19:30:33 +00:00
DYY
ea4858874b fix(mason): exclude filetype mason in indent-blankline.nvim () 2023-05-02 21:29:52 +02:00
c42ebc216a chore(main): release 2.12.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-28 15:26:43 +02:00
bdddb215cc chore(build): auto-generate vimdoc 2023-04-28 09:48:21 +00:00
eb143ebe11 fix(format): only do null-ls formatting logic when null-ls is availble. Fixes 2023-04-28 11:47:37 +02:00
86ac9989ea chore(build): auto-generate vimdoc 2023-04-25 07:13:27 +00:00
dc1d48f436 style: Change description of notify.dismiss() binding () 2023-04-25 09:12:41 +02:00
5202a0f006 chore(main): release 2.12.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-24 20:47:45 +02:00
7b9145c12d fix(spectre): use new url by default 2023-04-24 08:45:40 +02:00
3e46dd61cd feat(bufferline): use mini.bufremove to close a buffer ()
* feat(bufferline): use `mini.bufremove` to close a buffer

* fix(bufferline): don't force remove buffers

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-04-24 08:40:57 +02:00
43763a6226 chore(build): auto-generate vimdoc 2023-04-24 06:39:25 +00:00
6c334fed6a feat(telescope): added keymap for recent files in the current directory. ()
* Support MRU in current directory.

* Update editor.lua

* fix(telescope): use cwd for oldfiles for consistency with other commands

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-04-24 08:38:42 +02:00
d18331ca89 chore(main): release 2.11.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-23 11:21:54 +02:00
59f3b3e096 feat(plugins): automatically handle plugin repo renames 2023-04-23 11:20:02 +02:00
J
4fbb7a2803 fix(health): remove deprecated api warning () 2023-04-23 11:04:05 +02:00
b760ec63c4 chore(build): auto-generate vimdoc 2023-04-23 09:02:33 +00:00
d565684ade feat(lsp): automatically resolve denols/tsserver conflicts if both are configured 2023-04-23 11:01:46 +02:00
c7aeda9db1 chore(build): auto-generate vimdoc 2023-04-22 21:07:31 +00:00
3a718c5c85 feat(dap): Change DAP REPL binding from open to toggle () 2023-04-22 23:06:55 +02:00
6c86952a0e chore(main): release 2.10.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-21 23:53:51 +02:00
ad214af54d feat(neo-tree): refresh neotree git status when closing a lazygit terminal 2023-04-21 23:42:30 +02:00
40983a3269 fix(copilot): re-enable copilot confirm with overwrite 2023-04-21 23:42:30 +02:00
2f93f69171 chore(main): release 2.9.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-21 18:30:09 +02:00
4379ae8ab9 fix(copilot): work-around Neovim bug. Fixes 2023-04-21 18:27:15 +02:00
eb92903342 feat(tsserver): set some tsserver formatting settings to their Neovim equivalents. Also used for organize imports 2023-04-21 16:50:12 +02:00
03282126e3 chore(main): release 2.8.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-21 09:25:43 +02:00
1274310e6d feat(copilot): better copilot status colors for lualine 2023-04-21 09:24:12 +02:00
14e708a246 fix: remove unintentional <lt>nop> mapping () 2023-04-21 09:21:34 +02:00
437156a3ae chore(main): release 2.7.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-21 08:59:45 +02:00
063f8d6dff chore(build): auto-generate vimdoc 2023-04-21 06:47:24 +00:00
d63c471008 feat(copilot): added lualine component for copilot. Simple icon colored by status. Will add status message when available (warnings) 2023-04-21 08:46:45 +02:00
4042614005 refactor: move lualine fg function to Util 2023-04-21 08:46:05 +02:00
81ab5bed7a chore(main): release 2.6.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-20 09:27:37 +02:00
5264909b54 fix(project): load on VeryLazy otherwise projects wont be loaded when opening Telescope 2023-04-20 08:29:22 +02:00
68c21ec452 chore(build): auto-generate vimdoc 2023-04-20 06:15:00 +00:00
7fe0d5c7c7 feat(extras): added project management ()
* feat(project): add project management

* refactor: moved project to extras

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-04-20 08:14:21 +02:00
342fa02370 chore(main): release 2.5.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-19 20:04:23 +02:00
ac1051686b feat(lsp): added support for setting global lsp client capabilities 2023-04-19 19:58:05 +02:00
55cc8b67fc chore(main): release 2.4.3 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-19 17:07:32 +02:00
1d2c97cbda fix(treesitter): de-duplicate langs in endure_installed. Fixes 2023-04-19 16:45:02 +02:00
0b8c799a7a chore(main): release 2.4.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-19 07:52:26 +02:00
1caa27ba4a fix(diagnostics): deepcopy diagnostic params. Fixes 2023-04-19 07:49:39 +02:00
3518c1d73b chore(main): release 2.4.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-19 07:23:42 +02:00
ae8c371ff4 chore(build): auto-generate vimdoc 2023-04-19 05:22:38 +00:00
17fe32e428 fix(lsp): properly check that diagnostics virtual_text is a table. Fixes 2023-04-19 07:21:52 +02:00
ef21bea975 chore(main): release 2.4.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-18 20:30:46 +02:00
38ad79d548 feat(dap): add more keybindings and lualine component ()
* feat(dap): add more keybindings and lualine component

* refactor(dap): changed some keymaps and sorted them

* refactor(lualine): added extra space for dap icon

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-04-18 20:23:39 +02:00
95b86c8d1d chore(build): auto-generate vimdoc 2023-04-18 18:01:24 +00:00
01a1b8e80d feat(diagnostics): added support for setting prefix = "icons". Check the docs on how to enable 2023-04-18 20:00:02 +02:00
06c38c52a9 feat(diagnostics): show diagnostics source when more than one source is reporting diagnostics 2023-04-18 19:59:19 +02:00
77efbe8bcf chore(main): release 2.3.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-17 20:53:26 +02:00
cfaf3b054e feat(dap): add step out, rebind step over () 2023-04-17 17:53:39 +02:00
5f6913c0db chore(main): release 2.2.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-17 08:51:54 +02:00
a94f7afdeb fix(telescope): typo 2023-04-17 08:49:38 +02:00
b391c37e53 chore(main): release 2.2.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-17 08:31:16 +02:00
338680d80a chore(build): auto-generate vimdoc 2023-04-17 05:34:39 +00:00
df9547f432 fix(telescope): consistent keymap description. Fixes 2023-04-17 07:33:55 +02:00
0155de00ab feat(noice): added keymap to dismiss all noice messages 2023-04-16 23:08:46 +02:00
0cb8974221 fix(lsp): gT => gy. keymap for goto type definition. Fixes 2023-04-16 22:35:14 +02:00
700cdaf30d chore(main): release 2.1.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-16 22:05:08 +02:00
feaeab9fca fix(dap): added DapInstall and DapUninstall to cmds 2023-04-16 21:56:38 +02:00
54846ff763 docs: add extras keymaps to keymaps 2023-04-16 21:50:48 +02:00
f562d1d197 feat(dap): added extra for dap nlua 2023-04-16 21:35:52 +02:00
bc14e02a1f feat: added extra for dap 2023-04-16 21:35:38 +02:00
df94a044ec feat(which-key): easier integration for which-key group names 2023-04-16 21:33:55 +02:00
29ec138f8e chore(main): release 2.0.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-16 14:17:09 +02:00
98775f5631 feat(telescope): add document/workspace diagnostics and todo/fixme telescope keymaps () 2023-04-16 14:15:34 +02:00
36aa64bc0b build: deprecated treesitter method 2023-04-16 11:35:35 +02:00
02c5e8d953 fix(config): options cant be disabled with lazyvim config. Fixes 2023-04-16 11:34:35 +02:00
a9e9204dae fix(lazygit): dont use <esc><esc> for normal more for laygit to prevent delays on <esc>. Fixes 2023-04-16 11:18:44 +02:00
2d8116ef67 fix(lsp): gt -> gT. Fixes 2023-04-16 11:03:54 +02:00
bef36bb2fd fix(format): ignore vim.b.autoformat when formatting using key bindings. Fixes 2023-04-16 10:48:07 +02:00
a099b2d3ab feat(keymaps): Get rename command from inc_rename configuration ()
Gets the rename command from the inc_rename module (when installed), rather than assuming the default `IncRename`, allowing the user to modify the inc_rename options without having to create a new keymap.
2023-04-16 10:43:14 +02:00
1defd5f670 feat(autocmds): add checkhealth filetype to close_with_q list () 2023-04-16 10:39:12 +02:00
6e01e8560e feat(telescope): use the new dynamic workspace symbols ()
`lsp_workspace_symbols` may fail or return nothing when query is empty.
Use the new `lsp_dynamic_workspace_symbols` to dynamically query symbols
in the workspace.

Related: https://github.com/nvim-telescope/telescope.nvim/issues/964
Fixes: https://github.com/LazyVim/LazyVim/issues/576
2023-04-16 10:25:20 +02:00
7691daa036 chore(build): auto-generate vimdoc 2023-04-16 05:54:27 +00:00
7476da7811 fix(autocmds): don't auto create dirs for urls. Fixes 2023-04-16 07:53:42 +02:00
1c06aa35ee chore(build): auto-generate vimdoc 2023-04-15 21:12:09 +00:00
078250a114 refactor(treesitter)!: rename help to vimdoc () 2023-04-15 23:11:29 +02:00
7ce1b1519a chore(main): release 1.24.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-31 13:17:00 +02:00
79fe0455a0 feat(lualine): added lazy extension 2023-03-31 13:05:36 +02:00
a6062758d2 chore(build): auto-generate vimdoc 2023-03-31 07:41:46 +00:00
ed48b85dbe feat(autocmds): add auto create dir ()
* feat(autocmds): add auto create dir

* refactor: auto-create dir

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-03-31 09:40:57 +02:00
f67f20184f chore(main): release 1.23.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-25 09:57:40 +01:00
7048619cc1 chore(build): auto-generate vimdoc 2023-03-25 08:43:47 +00:00
59eb19835f feat(treesitter): use Python indents as they've improved greatly () 2023-03-25 09:42:57 +01:00
c4572fcec8 chore(main): release 1.22.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-23 08:12:56 +01:00
c272cb2940 chore(build): auto-generate vimdoc 2023-03-23 07:01:09 +00:00
381ee0a9fc fix(mason): removed flake8. You can add it back in your own configs if you need it or add ruff_lsp 2023-03-23 08:00:24 +01:00
b48a1969d3 chore(build): auto-generate vimdoc 2023-03-22 08:03:44 +00:00
b0cef1f506 fix(autocmd): remove query from q-to-quit autocmd () 2023-03-22 09:03:02 +01:00
049c84509c chore(build): auto-generate vimdoc 2023-03-21 06:27:56 +00:00
ade4342c42 feat(treesitter): add luadoc () 2023-03-21 07:27:13 +01:00
18328d10c9 chore(build): auto-generate vimdoc 2023-03-20 18:57:14 +00:00
df5cbfdbec feat(mason): compatibility with the new mason registry 2023-03-20 19:56:34 +01:00
11d414c358 chore: update templates 2023-03-19 20:40:58 +01:00
7a8ca6222a chore(main): release 1.21.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-19 08:15:14 +01:00
db66353db9 chore(build): auto-generate vimdoc 2023-03-19 06:59:41 +00:00
a7b25e13fa fix(alpha): use AlphaFooter highlight for footer section () 2023-03-19 07:58:51 +01:00
a0b1256554 chore(main): release 1.21.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-17 22:31:38 +01:00
501474e421 fix(config): compat with lazy.nvim 2023-03-17 22:29:07 +01:00
b984c0cff5 chore(main): release 1.21.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-17 16:44:09 +01:00
9f5a0f1bd8 feat(lsp): added keymap to see source actions with <leader>cA (useful for tsserver and others) 2023-03-17 16:29:32 +01:00
d0b378f427 chore(main): release 1.20.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-17 08:16:40 +01:00
aa4f7ec651 chore(build): auto-generate vimdoc 2023-03-17 07:05:01 +00:00
c10e550639 feat(lsp): make lsp work when mason-lspconfig is disabled. Fixed 2023-03-17 08:04:17 +01:00
f0b548af2f chore(build): auto-generate vimdoc 2023-03-16 11:17:38 +00:00
Lc
cec000dfd8 fix(icons): replace obsolete icons ()
* fix(icons): replace obsolete icons

* fix(icons): bigger icons

* fix(icons): bigger folder icon

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2023-03-16 12:16:55 +01:00
6b740fd300 chore(main): release 1.19.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-14 11:23:08 +01:00
564e25a277 chore(build): auto-generate vimdoc 2023-03-14 10:18:08 +00:00
df6ac591ba fix(core): set cond=true for LazyVim 2023-03-14 11:17:07 +01:00
bcdcfab020 feat(mini-starter): add Session restore to starter menu ()
This mirrors the menu item added in alpha-nvim. I named this "Session
restore" rather than "Restore session", since mini.starter uses the
first letter of the item as the shortcut key.  This way it doesn't
conflict with "Recent files"
2023-03-12 23:00:20 +01:00
8bb0c9ddd8 chore(main): release 1.18.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-12 09:26:52 +01:00
0bed79f844 chore(build): auto-generate vimdoc 2023-03-12 08:12:43 +00:00
a28885be3f fix(lsp): allow silent=false for lsp keymaps. Fixes 2023-03-12 09:10:45 +01:00
f5e010d887 chore(main): release 1.18.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-10 13:58:49 +01:00
9f30a2e03a fix(prettier): extend ensure_installed instead of overwriting it. Fixes 2023-03-10 13:55:06 +01:00
9d9e6b1188 chore(main): release 1.18.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-10 09:04:29 +01:00
3ffd5408a1 chore(build): auto-generate vimdoc 2023-03-10 07:59:02 +00:00
f1dbd097e4 fix(eslint): only run EslintFixAll on buffers where eslint is attached 2023-03-10 08:54:56 +01:00
aa8bae07ae feat(prettierd): added an extra for prettierd with null-ls 2023-03-10 08:45:09 +01:00
75299da24c feat(eslint): added an extra for eslint lsp that runs EslintFixAll before saving a buffer 2023-03-10 08:44:47 +01:00
5aad5749a7 feat(null-ls): added .neoconf.json to null-ls root_dir 2023-03-10 08:44:17 +01:00
5bb2314787 feat(typescript): added null-ls typescript code actions 2023-03-10 08:43:53 +01:00
b1b5b461bf chore(build): auto-generate vimdoc 2023-03-06 06:38:20 +00:00
23ba877bb0 feat(copilot): better sorting for cmp sources when using copilot 2023-03-06 07:37:37 +01:00
8f3834bc13 feat(null-ls): added fish_indent and fish diag 2023-03-06 07:37:37 +01:00
c407ddfe8a feat(shfmt): added shfmt to null-ls and mason 2023-03-06 07:37:37 +01:00
3c6357815c chore(main): release 1.17.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-05 17:10:36 +01:00
079d3967d0 fix(copilot): confirm with replace for copilot only 2023-03-05 17:06:13 +01:00
ae9c74d88e chore(main): release 1.17.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-05 09:16:44 +01:00
e7a515e548 fix(mason): removed installing of shellcheck and shfmt. Use bashls instead 2023-03-05 09:12:16 +01:00
2002265461 chore(build): auto-generate vimdoc 2023-03-05 08:09:39 +00:00
f441faad03 feat: add luap to nvim-treesitter ensure_installed () 2023-03-05 09:08:51 +01:00
6fec14e508 fix(typescript): enable function call completion snippets 2023-03-04 10:41:52 +01:00
b10c9ade77 build: neoconf sumneko_lua => lua_ls 2023-03-04 10:41:52 +01:00
2e951e4f44 feat(autocmds): added 'query' to close_with_q autocmd 2023-03-04 10:41:51 +01:00
0d32e62567 chore(build): auto-generate vimdoc 2023-03-04 07:41:20 +00:00
9dd2487529 fix: rename more appropriately (also a typo) () 2023-03-04 08:40:37 +01:00
1f7be0bbad chore(main): release 1.16.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-03 20:12:35 +01:00
57c2dcb3a3 feat(neo-tree): added expanders 2023-03-03 20:10:45 +01:00
099fd48844 chore(main): release 1.15.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-03 08:34:43 +01:00
04a60e251b fix(luasnip): added note that jsregexp is optional if it fails to build 2023-03-03 08:28:35 +01:00
d285548ae0 chore(build): auto-generate vimdoc 2023-03-03 07:23:08 +00:00
368c65e14b feat(copilot): added an extra to enable copilot. {import = "lazyvim.plugins.extras.coding.copilot"} 2023-03-03 08:22:20 +01:00
3a52307505 feat(cmp): added <s-CR> to confirm completion with replace 2023-03-03 08:21:29 +01:00
3c0f28331b chore(main): release 1.14.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-02 14:29:06 +01:00
c32943f2aa chore(build): auto-generate vimdoc 2023-03-02 13:18:45 +00:00
d00aade8db fix(alpha): larger session icon. Fixes 2023-03-02 14:17:57 +01:00
f6f3ce4a9b fix(luasnip): dont build jsregexp on Windows 2023-03-02 14:15:51 +01:00
16e4a3f8fd fix(leap): unpin leap 2023-03-02 08:19:03 +01:00
d0e420eca8 chore(main): release 1.14.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-01 17:51:10 +01:00
f9b7406df9 feat(telescope): Add open selected with trouble keymap () 2023-03-01 13:10:04 +01:00
efca9528da chore(main): release 1.13.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-01 11:41:35 +01:00
e42c308a6b chore(build): auto-generate vimdoc 2023-03-01 10:40:15 +00:00
787ceab031 fix(leap): pin leap for now till flit issue is fixed 2023-03-01 11:39:33 +01:00
7e47f88749 chore(main): release 1.13.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-28 12:58:53 +01:00
59fa83653f feat(keymaps): Add previous/next trouble/quickfix item keymap [q, ]q () 2023-02-28 11:31:35 +01:00
5abb10b5ab fix(lsp): only map lsp goto definition when client has definitionProvider ()
Co-authored-by: Alexander Born <alexander.born@bmw.de>
2023-02-28 11:29:57 +01:00
4b37723558 fix(git-signs): larger icons for delete 2023-02-28 10:01:53 +01:00
588dc5dd65 fix(icons): replace obsolete Nerd icons () 2023-02-28 09:59:50 +01:00
70966bbc19 style: desc for gw 2023-02-28 09:59:01 +01:00
8a9265efed style: add description for "gw" keymap () 2023-02-28 09:58:29 +01:00
2b8b27b4a9 chore(build): auto-generate vimdoc 2023-02-28 08:52:19 +00:00
d97bf66eed fix(mini-indentscope): disable indentscope for filetypes during init. Fixes 2023-02-28 09:51:29 +01:00
fc765e9e3d fix(treesitter): always install all built-in treesitter parsers to prevent queriy issues 2023-02-27 19:38:29 +01:00
592074ad80 chore(build): auto-generate vimdoc 2023-02-27 09:18:03 +00:00
bd62cbe370 fix(luasnips): make install_jsregexp 2023-02-27 10:17:22 +01:00
befa6c67a4 chore(main): release 1.12.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-20 22:04:44 +01:00
079c685831 refactor(treesitter): nil-check 2023-02-20 16:01:02 +01:00
0eef2c2f29 fix(treesitter): nil check ()
Co-authored-by: Alexander Born <alexander.born@bmw.de>
2023-02-20 15:58:52 +01:00
9b175ab1bc chore(main): release 1.12.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-20 09:05:53 +01:00
db9a7d90d5 chore(build): auto-generate vimdoc 2023-02-20 07:22:26 +00:00
cccdc1cacf feat(telescope): add <leader>sS for :Telescope lsp_workspace_symbols () 2023-02-20 08:21:39 +01:00
90c58352dd chore(build): auto-generate vimdoc 2023-02-19 21:32:05 +00:00
6b9f0c0c3c feat: persist pinned tabs ()
Adds `globals` to session opts to persist pinned tabs
2023-02-19 09:56:08 +01:00
de6a28b781 fix(treesitter): disable indent only for python right now 2023-02-18 13:14:47 +01:00
329a2daff4 fix(treesitter): disable treesitter indent by default, since it has too many issues. See 2023-02-18 12:40:25 +01:00
f08d004bc2 chore(build): auto-generate vimdoc 2023-02-18 08:56:40 +00:00
8e84dcf85c fix(mini.surround): don't create empty keymaps. Fixes 2023-02-18 09:55:56 +01:00
a0cf00c81b fix(illuminate): always set refernce keymaps on the buffer as well to properly overwrite ftplugin mappings. Fixes 2023-02-17 21:32:25 +01:00
ba7942b80b chore(main): release 1.11.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-17 17:09:38 +01:00
9edd1a938f feat(telescope): add <leader>sR for :Telescope resume ()
* feat(telescope): add `<leader>fR` for `:Telescope resume`

* fix: use `<leader>sR` instead or `<leader>fR

---------

Co-authored-by: Calvin Bochulak <cbochula@cisco.com>
2023-02-17 16:38:51 +01:00
3d18548c0a chore(build): auto-generate vimdoc 2023-02-17 06:19:43 +00:00
78cb3bb66d fix(lualine): Add a space separator between progress & location in lualine () 2023-02-17 07:18:59 +01:00
d5a9ac0e06 chore(main): release 1.10.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-16 20:21:55 +01:00
94ebe25ccb fix(treesitter-textobjects): only disable the textobject plugins/* files when its not enabled in the treesitter opts 2023-02-16 20:12:54 +01:00
eccd122e6d feat(leap): lazy-load leap/flit and added keymaps 2023-02-16 14:12:10 +01:00
e33dd761b1 chore(build): auto-generate vimdoc 2023-02-16 12:30:27 +00:00
8b0e6ab19e chore(main): release 1.9.4 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-16 13:29:41 +01:00
27248b0193 chore(build): auto-generate vimdoc 2023-02-15 13:04:31 +00:00
d198a19325 fix(health): also check for fdfind instead of just fd. Fixes 2023-02-15 14:03:46 +01:00
b64d980bbf chore(main): release 1.9.3 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-14 22:04:39 +01:00
5d6f0d58d5 fix(notify): install notify when noice is not enabled 2023-02-14 21:56:09 +01:00
cc3070d30e faet(util): added Util.on_very_lazy 2023-02-14 21:55:52 +01:00
e91903e810 chore(build): auto-generate vimdoc 2023-02-14 13:41:28 +00:00
38eb3bf115 fix(which-key): only add noice group when noice is enabled 2023-02-14 14:40:34 +01:00
2e18998c9e chore(main): release 1.9.2 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-12 16:52:20 +01:00
a3aeb27cbc fix(format): nil check 2023-02-12 12:31:43 +01:00
fab6150da9 fix(format): dont format if client capaibilities disabled it. 2023-02-12 11:43:31 +01:00
e8766c5edd chore(main): release 1.9.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-12 11:19:07 +01:00
5cb44bae6d chore(build): auto-generate vimdoc 2023-02-12 10:00:54 +00:00
543126818e fix(lsp): temp mason fix for sumenko_lua -> lua_ls rename. See 2023-02-12 10:59:58 +01:00
57e92b04e2 style: fix comment typo () 2023-02-11 17:10:39 +01:00
31ad893788 fix(cmp): added <c-n> and <c-p> to make it more consistent 2023-02-11 13:29:27 +01:00
151bf12a9f fix(telescope): make key bindings more consistent for telescope 2023-02-11 13:28:11 +01:00
d9e95f8dcd chore(main): release 1.9.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-11 09:04:05 +01:00
490598b81a chore(build): auto-generate vimdoc 2023-02-11 08:00:32 +00:00
6669e63368 feat(config): allow to disable loading of the default keymaps/autocmds/options. Fixes 2023-02-11 08:59:42 +01:00
58 changed files with 5149 additions and 758 deletions

@ -16,7 +16,7 @@ body:
required: true
- label: I have searched the existing issues of LazyVim
required: true
- label: I have searched the exsiting issues of plugins related to this issue
- label: I have searched the existing issues of plugins related to this issue
required: true
- type: input
attributes:
@ -59,6 +59,7 @@ body:
value: |
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name

@ -15,8 +15,12 @@ jobs:
- name: Install Neovim
shell: bash
run: |
wget -q https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.deb -O /tmp/nvim.deb
sudo dpkg -i /tmp/nvim.deb
mkdir -p /tmp/nvim
wget -q https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage -O /tmp/nvim/nvim.appimage
cd /tmp/nvim
chmod a+x ./nvim.appimage
./nvim.appimage --appimage-extract
echo "/tmp/nvim/squashfs-root/usr/bin/" >> $GITHUB_PATH
- name: Run Tests
run: |
nvim --version
@ -55,7 +59,7 @@ jobs:
with:
release-type: simple
package-name: LazyVim
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: tag stable versions
if: ${{ steps.release.outputs.release_created }}
run: |

@ -7,7 +7,7 @@
},
"neoconf": {
"plugins": {
"sumneko_lua": {
"lua_ls": {
"enabled": true
}
}

File diff suppressed because it is too large Load Diff

@ -54,9 +54,10 @@ LazyVim 提供了两全其美的方式 - 根据需要调整配置的灵活性,
## ⚡️ 要求
- Neovim >= **0.8.0** (需要用 **LuaJIT** 构建)
- Neovim >= **0.9.0** (需要用 **LuaJIT** 构建)
- Git >= **2.19.0** (用于部分克隆支持)
- 一个 [Nerd Font](https://www.nerdfonts.com/) 字体 **_(可选)_**
- 一个用于 `nvim-treesitter`**C** 编译器。看 [这里](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
## 🚀 入门

@ -56,9 +56,10 @@ to tweak your config as needed, along with the convenience of a pre-configured s
## ⚡️ Requirements
- Neovim >= **0.8.0** (needs to be built with **LuaJIT**)
- Neovim >= **0.9.0** (needs to be built with **LuaJIT**)
- Git >= **2.19.0** (for partial clones support)
- a [Nerd Font](https://www.nerdfonts.com/) **_(optional)_**
- a **C** compiler for `nvim-treesitter`. See [here](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
## 🚀 Getting Started

@ -1,4 +1,4 @@
*LazyVim.txt* For Neovim >= 0.8.0 Last change: 2023 February 10
*LazyVim.txt* For Neovim >= 0.8.0 Last change: 2023 October 02
==============================================================================
Table of Contents *LazyVim-table-of-contents*
@ -9,46 +9,29 @@ Table of Contents *LazyVim-table-of-contents*
- File Structure |LazyVim-file-structure|
- Configuration |LazyVim-configuration|
<img
src="https://user-images.githubusercontent.com/292349/213446185-2db63fd5-8c84-459c-9f04-e286382d6e80.png">
<hr>
<h4 align="center">
<a href="https://lazyvim.github.io/installation">Install</a>
Install
·
<a href="https://lazyvim.github.io/configuration">Configure</a>
Configure
·
<a href="https://lazyvim.github.io">Docs</a>
Docs
</h4>
<div align="center">
<a href="https://github.com/LazyVim/LazyVim/releases/latest">
<img alt="Latest release" src="https://img.shields.io/github/v/release/LazyVim/LazyVim?style=for-the-badge&logo=starship&color=C9CBFF&logoColor=D9E0EE&labelColor=302D41&include_prerelease&sort=semver" />
</a>
<a href="https://github.com/LazyVim/LazyVim/pulse">
<img alt="Last commit" src="https://img.shields.io/github/last-commit/LazyVim/LazyVim?style=for-the-badge&logo=starship&color=8bd5ca&logoColor=D9E0EE&labelColor=302D41"/>
</a>
<a href="https://github.com/LazyVim/LazyVim/blob/main/LICENSE">
<img alt="License" src="https://img.shields.io/github/license/LazyVim/LazyVim?style=for-the-badge&logo=starship&color=ee999f&logoColor=D9E0EE&labelColor=302D41" />
</a>
<a href="https://github.com/LazyVim/LazyVim/stargazers">
<img alt="Stars" src="https://img.shields.io/github/stars/LazyVim/LazyVim?style=for-the-badge&logo=starship&color=c69ff5&logoColor=D9E0EE&labelColor=302D41" />
</a>
<a href="https://github.com/LazyVim/LazyVim/issues">
<img alt="Issues" src="https://img.shields.io/github/issues/LazyVim/LazyVim?style=for-the-badge&logo=bilibili&color=F5E0DC&logoColor=D9E0EE&labelColor=302D41" />
</a>
<a href="https://github.com/LazyVim/LazyVim">
<img alt="Repo Size" src="https://img.shields.io/github/repo-size/LazyVim/LazyVim?color=%23DDB6F2&label=SIZE&logo=codesandbox&style=for-the-badge&logoColor=D9E0EE&labelColor=302D41" />
</a>
<a href="https://twitter.com/intent/follow?screen_name=folke">
<img alt="follow on Twitter" src="https://img.shields.io/twitter/follow/folke?style=for-the-badge&logo=twitter&color=8aadf3&logoColor=D9E0EE&labelColor=302D41" />
</a>
</div>
LazyVim is a Neovim setup powered by lazy.nvim
<https://github.com/folke/lazy.nvim> to make it easy to customize and extend
@ -57,19 +40,9 @@ using a pre-made distro, LazyVim offers the best of both worlds - the
flexibility to tweak your config as needed, along with the convenience of a
pre-configured setup.
<div class="figure">
<img src="https://user-images.githubusercontent.com/292349/211285846-0b7bb3bf-0462-4029-b64c-4ee1d037fc1c.png" title="fig:"/>
<p class="caption">image</p>
</div>
<div class="figure">
<img src="https://user-images.githubusercontent.com/292349/213447056-92290767-ea16-430c-8727-ce994c93e9cc.png" title="fig:"/>
<p class="caption">image</p>
</div>
FEATURES *LazyVim-features*
- Transform your Neovim into a full-fledged IDE
- Easily customize and extend your config with lazy.nvim <https://github.com/folke/lazy.nvim>
- Blazingly fast
@ -79,10 +52,10 @@ FEATURES *LazyVim-features*
REQUIREMENTS *LazyVim-requirements*
- Neovim >= **0.8.0** (needs to be built with **LuaJIT**)
- Neovim >= **0.9.0** (needs to be built with **LuaJIT**)
- Git >= **2.19.0** (for partial clones support)
- a Nerd Font <https://www.nerdfonts.com/> **_(optional)_**
- a Nerd Font <https://www.nerdfonts.com/> **(optional)**
- a **C** compiler for `nvim-treesitter`. See here <https://github.com/nvim-treesitter/nvim-treesitter#requirements>
GETTING STARTED *LazyVim-getting-started*
@ -90,7 +63,7 @@ GETTING STARTED *LazyVim-getting-started*
You can find a starter template for **LazyVim** here
<https://github.com/LazyVim/starter>
Try it with Docker
Try it with Docker ~
>sh
docker run -w /root -it --rm alpine:edge sh -uelic '
@ -101,9 +74,7 @@ Try it with Docker
'
<
Install the <a href="https://github.com/LazyVim/starter">LazyVim Starter</a>
Install the LazyVim Starter ~
- Make a backup of your current Neovim files:
>sh
@ -124,44 +95,36 @@ Install the <a href="https://github.com/LazyVim/starter">LazyVim Starter</a>
<
Refer to the comments in the files on how to customize **LazyVim**.
------------------------------------------------------------------------------
Theres a great video created by @elijahmanor
<https://github.com/elijahmanor> with a walkthrough to get started.
Theres a great video created by elijahmano <https://github.com/elijahmanor>
with a walkthrough to get started.
<img src='https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg' title=''/>
<https://www.youtube.com/watch?v=N93cTbtLCIM>
FILE STRUCTURE *LazyVim-file-structure*
The files under config will be automatically loaded at the appropriate time, so
you dont need to require those files manually. **LazyVim** comes with a set
of default config files that will be loaded **_before_** your own. See here
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>
<pre>
~/.config/nvim
lua
   config
      autocmds.lua
      keymaps.lua
      lazy.lua
      options.lua
   plugins
   spec1.lua
  
   spec2.lua
init.lua
</pre>
CONFIGURATION *LazyVim-configuration*
Refer to the docs <https://lazyvim.github.io>
==============================================================================
1. Links *LazyVim-links*
1. *image*: https://user-images.githubusercontent.com/292349/211285846-0b7bb3bf-0462-4029-b64c-4ee1d037fc1c.png
2. *image*: https://user-images.githubusercontent.com/292349/213447056-92290767-ea16-430c-8727-ce994c93e9cc.png
3. *@elijahmanor*:
4. *Watch the video*: https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>
vim:tw=78:ts=8:noet:ft=help:norl:

@ -1,4 +1,4 @@
-- This file is automatically loaded by plugins.init
-- This file is automatically loaded by lazyvim.config.init.
local function augroup(name)
return vim.api.nvim_create_augroup("lazyvim_" .. name, { clear = true })
@ -22,7 +22,9 @@ vim.api.nvim_create_autocmd("TextYankPost", {
vim.api.nvim_create_autocmd({ "VimResized" }, {
group = augroup("resize_splits"),
callback = function()
local current_tab = vim.fn.tabpagenr()
vim.cmd("tabdo wincmd =")
vim.cmd("tabnext " .. current_tab)
end,
})
@ -30,8 +32,13 @@ vim.api.nvim_create_autocmd({ "VimResized" }, {
vim.api.nvim_create_autocmd("BufReadPost", {
group = augroup("last_loc"),
callback = function()
local mark = vim.api.nvim_buf_get_mark(0, '"')
local lcount = vim.api.nvim_buf_line_count(0)
local exclude = { "gitcommit" }
local buf = vim.api.nvim_get_current_buf()
if vim.tbl_contains(exclude, vim.bo[buf].filetype) then
return
end
local mark = vim.api.nvim_buf_get_mark(buf, '"')
local lcount = vim.api.nvim_buf_line_count(buf)
if mark[1] > 0 and mark[1] <= lcount then
pcall(vim.api.nvim_win_set_cursor, 0, mark)
end
@ -42,15 +49,20 @@ vim.api.nvim_create_autocmd("BufReadPost", {
vim.api.nvim_create_autocmd("FileType", {
group = augroup("close_with_q"),
pattern = {
"qf",
"PlenaryTestPopup",
"help",
"lspinfo",
"man",
"notify",
"lspinfo",
"qf",
"query",
"spectre_panel",
"startuptime",
"tsplayground",
"PlenaryTestPopup",
"neotest-output",
"checkhealth",
"neotest-summary",
"neotest-output-panel",
},
callback = function(event)
vim.bo[event.buf].buflisted = false
@ -67,3 +79,15 @@ vim.api.nvim_create_autocmd("FileType", {
vim.opt_local.spell = true
end,
})
-- Auto create dir when saving a file, in case some intermediate directory does not exist
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
group = augroup("auto_create_dir"),
callback = function(event)
if event.match:match("^%w%w+://") then
return
end
local file = vim.loop.fs_realpath(event.match) or event.match
vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p")
end,
})

@ -10,12 +10,26 @@ local defaults = {
colorscheme = function()
require("tokyonight").load()
end,
-- load the default settings
defaults = {
autocmds = true, -- lazyvim.config.autocmds
keymaps = true, -- lazyvim.config.keymaps
-- lazyvim.config.options can't be configured here since that's loaded before lazyvim setup
-- if you want to disable loading options, add `package.loaded["lazyvim.config.options"] = true` to the top of your init.lua
},
-- icons used by other plugins
icons = {
dap = {
Stopped = { "󰁕 ", "DiagnosticWarn", "DapStoppedLine" },
Breakpoint = "",
BreakpointCondition = "",
BreakpointRejected = { "", "DiagnosticError" },
LogPoint = ".>",
},
diagnostics = {
Error = "",
Warn = "",
Hint = " ",
Hint = " ",
Info = "",
},
git = {
@ -30,13 +44,13 @@ local defaults = {
Color = "",
Constant = "",
Constructor = "",
Copilot = " ",
Copilot = " ",
Enum = "",
EnumMember = "",
Event = "",
Field = "",
File = "",
Folder = " ",
Folder = " ",
Function = "",
Interface = "",
Key = "",
@ -44,7 +58,7 @@ local defaults = {
Method = "",
Module = "",
Namespace = "",
Null = " ",
Null = " ",
Number = "",
Object = "",
Operator = "",
@ -63,12 +77,33 @@ local defaults = {
},
}
M.renames = {
["windwp/nvim-spectre"] = "nvim-pack/nvim-spectre",
["jose-elias-alvarez/null-ls.nvim"] = "nvimtools/none-ls.nvim",
["null-ls.nvim"] = "none-ls.nvim",
}
---@type LazyVimConfig
local options
---@param opts? LazyVimConfig
function M.setup(opts)
options = vim.tbl_deep_extend("force", defaults, opts or {})
if vim.fn.has("nvim-0.9.0") == 0 then
vim.api.nvim_echo({
{
"LazyVim requires Neovim >= 0.9.0\n",
"ErrorMsg",
},
{ "Press any key to exit", "MoreMsg" },
}, true, {})
vim.fn.getchar()
vim.cmd([[quit]])
return
end
if not M.has() then
require("lazy.core.util").error(
"**LazyVim** needs **lazy.nvim** version "
@ -80,22 +115,23 @@ function M.setup(opts)
error("Exiting")
end
if vim.fn.argc(-1) == 0 then
-- autocmds and keymaps can wait to load
vim.api.nvim_create_autocmd("User", {
group = vim.api.nvim_create_augroup("LazyVim", { clear = true }),
pattern = "VeryLazy",
callback = function()
M.load("autocmds")
M.load("keymaps")
end,
})
else
-- load them now so they affect the opened buffers
-- autocmds can be loaded lazily when not opening a file
local lazy_autocmds = vim.fn.argc(-1) == 0
if not lazy_autocmds then
M.load("autocmds")
M.load("keymaps")
end
vim.api.nvim_create_autocmd("User", {
group = vim.api.nvim_create_augroup("LazyVim", { clear = true }),
pattern = "VeryLazy",
callback = function()
if lazy_autocmds then
M.load("autocmds")
end
M.load("keymaps")
end,
})
require("lazy.core.util").try(function()
if type(M.colorscheme) == "function" then
M.colorscheme()
@ -120,24 +156,31 @@ end
---@param name "autocmds" | "options" | "keymaps"
function M.load(name)
local Util = require("lazy.core.util")
-- always load lazyvim, then user file
for _, mod in ipairs({ "lazyvim.config." .. name, "config." .. name }) do
local function _load(mod)
Util.try(function()
require(mod)
end, {
msg = "Failed loading " .. mod,
on_error = function(msg)
local modpath = require("lazy.core.cache").find(mod)
if modpath then
Util.error(msg)
local info = require("lazy.core.cache").find(mod)
if info == nil or (type(info) == "table" and #info == 0) then
return
end
Util.error(msg)
end,
})
end
-- always load lazyvim, then user file
if M.defaults[name] or name == "options" then
_load("lazyvim.config." .. name)
end
_load("config." .. name)
if vim.bo.filetype == "lazy" then
-- HACK: LazyVim may have overwritten options of the Lazy ui, so reset this here
vim.cmd([[do VimResized]])
end
local pattern = "LazyVim" .. name:sub(1, 1):upper() .. name:sub(2)
vim.api.nvim_exec_autocmds("User", { pattern = pattern, modeline = false })
end
M.did_init = false
@ -151,6 +194,22 @@ function M.init()
-- this is needed to make sure options will be correctly applied
-- after installing missing plugins
require("lazyvim.config").load("options")
local Plugin = require("lazy.core.plugin")
local add = Plugin.Spec.add
Plugin.Spec.add = function(self, plugin, ...)
if type(plugin) == "table" and M.renames[plugin[1]] then
require("lazy.core.util").warn(
("Plugin `%s` was renamed to `%s`.\nPlease update your config for `%s`"):format(
plugin[1],
M.renames[plugin[1]],
self.importing or "LazyVim"
),
{ title = "LazyVim" }
)
plugin[1] = M.renames[plugin[1]]
end
return add(self, plugin, ...)
end
end
end

@ -1,5 +1,4 @@
-- This file is automatically loaded by lazyvim.plugins.config
-- This file is automatically loaded by lazyvim.config.init
local Util = require("lazyvim.util")
local function map(mode, lhs, rhs, opts)
@ -9,19 +8,22 @@ local function map(mode, lhs, rhs, opts)
if not keys.active[keys.parse({ lhs, mode = mode }).id] then
opts = opts or {}
opts.silent = opts.silent ~= false
if opts.remap and not vim.g.vscode then
opts.remap = nil
end
vim.keymap.set(mode, lhs, rhs, opts)
end
end
-- better up/down
map("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
map("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
map({ "n", "x" }, "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
map({ "n", "x" }, "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
-- Move to window using the <ctrl> hjkl keys
map("n", "<C-h>", "<C-w>h", { desc = "Go to left window" })
map("n", "<C-j>", "<C-w>j", { desc = "Go to lower window" })
map("n", "<C-k>", "<C-w>k", { desc = "Go to upper window" })
map("n", "<C-l>", "<C-w>l", { desc = "Go to right window" })
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" })
@ -64,9 +66,6 @@ map(
{ desc = "Redraw / clear hlsearch / diff update" }
)
map("n", "gw", "*N")
map("x", "gw", "*N")
-- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n
map("n", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
map("x", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
@ -81,14 +80,17 @@ map("i", ".", ".<c-g>u")
map("i", ";", ";<c-g>u")
-- save file
map({ "i", "v", "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" })
-- better indenting
map("v", "<", "<gv")
map("v", ">", ">gv")
-- lazy
map("n", "<leader>l", "<cmd>:Lazy<cr>", { desc = "Lazy" })
map("n", "<leader>l", "<cmd>Lazy<cr>", { desc = "Lazy" })
-- new file
map("n", "<leader>fn", "<cmd>enew<cr>", { desc = "New File" })
@ -96,41 +98,66 @@ 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" })
if not Util.has("trouble.nvim") then
map("n", "[q", vim.cmd.cprev, { desc = "Previous quickfix" })
map("n", "]q", vim.cmd.cnext, { desc = "Next quickfix" })
end
-- formatting
map({ "n", "v" }, "<leader>cf", function()
require("lazyvim.plugins.lsp.format").format({ force = true })
end, { desc = "Format" })
-- stylua: ignore start
-- toggle options
map("n", "<leader>uf", require("lazyvim.plugins.lsp.format").toggle, { desc = "Toggle format on Save" })
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", true) Util.toggle("number") end, { desc = "Toggle Line Numbers" })
map("n", "<leader>ul", function() Util.toggle_number() end, { desc = "Toggle Line Numbers" })
map("n", "<leader>ud", Util.toggle_diagnostics, { 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" })
if vim.lsp.inlay_hint then
map("n", "<leader>uh", function() vim.lsp.inlay_hint(0, nil) end, { desc = "Toggle Inlay Hints" })
end
-- lazygit
map("n", "<leader>gg", function() Util.float_term({ "lazygit" }, { cwd = Util.get_root() }) end, { desc = "Lazygit (root dir)" })
map("n", "<leader>gG", function() Util.float_term({ "lazygit" }) end, { desc = "Lazygit (cwd)" })
map("n", "<leader>gg", function() Util.float_term({ "lazygit" }, { cwd = Util.get_root(), esc_esc = false, ctrl_hjkl = false }) end, { desc = "Lazygit (root dir)" })
map("n", "<leader>gG", function() Util.float_term({ "lazygit" }, {esc_esc = false, ctrl_hjkl = false}) end, { desc = "Lazygit (cwd)" })
-- quit
map("n", "<leader>qq", "<cmd>qa<cr>", { desc = "Quit all" })
-- highlights under cursor
if vim.fn.has("nvim-0.9.0") == 1 then
map("n", "<leader>ui", vim.show_pos, { desc = "Inspect Pos" })
end
map("n", "<leader>ui", vim.show_pos, { desc = "Inspect Pos" })
-- LazyVim Changelog
map("n", "<leader>L", Util.changelog, {desc = "LazyVim Changelog"})
-- floating terminal
map("n", "<leader>ft", function() Util.float_term(nil, { cwd = Util.get_root() }) end, { desc = "Terminal (root dir)" })
local lazyterm = function() Util.float_term(nil, { cwd = Util.get_root() }) end
map("n", "<leader>ft", lazyterm, { desc = "Terminal (root dir)" })
map("n", "<leader>fT", function() Util.float_term() end, { desc = "Terminal (cwd)" })
map("t", "<esc><esc>", "<c-\\><c-n>", {desc = "Enter Normal Mode"})
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-/>", "<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" })
map("n", "<leader>wd", "<C-W>c", { desc = "Delete window" })
map("n", "<leader>w-", "<C-W>s", { desc = "Split window below" })
map("n", "<leader>w|", "<C-W>v", { desc = "Split window right" })
map("n", "<leader>-", "<C-W>s", { desc = "Split window below" })
map("n", "<leader>|", "<C-W>v", { desc = "Split window right" })
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" })

@ -1,7 +1,6 @@
-- This file is automatically loaded by plugins.config
-- This file is automatically loaded by plugins.core
vim.g.mapleader = " "
vim.g.maplocalleader = " "
vim.g.maplocalleader = "\\"
local opt = vim.opt
@ -28,7 +27,7 @@ opt.scrolloff = 4 -- Lines of context
opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize" }
opt.shiftround = true -- Round indent
opt.shiftwidth = 2 -- Size of an indent
opt.shortmess:append { W = true, I = true, c = true }
opt.shortmess:append({ W = true, I = true, c = true, C = true })
opt.showmode = false -- Dont show mode since we have a statusline
opt.sidescrolloff = 8 -- Columns of context
opt.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time
@ -36,6 +35,7 @@ opt.smartcase = true -- Don't ignore case with capitals
opt.smartindent = true -- Insert indents automatically
opt.spelllang = { "en" }
opt.splitbelow = true -- Put new windows below current
opt.splitkeep = "screen"
opt.splitright = true -- Put new windows right of current
opt.tabstop = 2 -- Number of spaces tabs count for
opt.termguicolors = true -- True color support
@ -47,10 +47,5 @@ opt.wildmode = "longest:full,full" -- Command-line completion mode
opt.winminwidth = 5 -- Minimum window width
opt.wrap = false -- Disable line wrap
if vim.fn.has("nvim-0.9.0") == 1 then
opt.splitkeep = "screen"
opt.shortmess:append { C = true }
end
-- Fix markdown indentation settings
vim.g.markdown_recommended_style = 0

@ -1,19 +1,36 @@
local M = {}
function M.check()
vim.health.report_start("LazyVim")
local start = vim.health.start or vim.health.report_start
local ok = vim.health.ok or vim.health.report_ok
local warn = vim.health.warn or vim.health.report_warn
local error = vim.health.error or vim.health.report_error
if vim.fn.has("nvim-0.8.0") == 1 then
vim.health.report_ok("Using Neovim >= 0.8.0")
function M.check()
start("LazyVim")
if vim.fn.has("nvim-0.9.0") == 1 then
ok("Using Neovim >= 0.9.0")
else
vim.health.report_error("Neovim >= 0.8.0 is required")
error("Neovim >= 0.9.0 is required")
end
for _, cmd in ipairs({ "git", "rg", "fd", "lazygit" }) do
if vim.fn.executable(cmd) == 1 then
vim.health.report_ok(("`%s` is installed"):format(cmd))
for _, cmd in ipairs({ "git", "rg", { "fd", "fdfind" }, "lazygit" }) do
local name = type(cmd) == "string" and cmd or vim.inspect(cmd)
local commands = type(cmd) == "string" and { cmd } or cmd
---@cast commands string[]
local found = false
for _, c in ipairs(commands) do
if vim.fn.executable(c) == 1 then
name = c
found = true
end
end
if found then
ok(("`%s` is installed"):format(name))
else
vim.health.report_warn(("`%s` is not installed"):format(cmd))
warn(("`%s` is not installed"):format(name))
end
end
end

@ -3,6 +3,9 @@ return {
-- snippets
{
"L3MON4D3/LuaSnip",
build = (not jit.os:find("Windows"))
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()
@ -39,7 +42,9 @@ return {
"saadparwaiz1/cmp_luasnip",
},
opts = function()
vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
local cmp = require("cmp")
local defaults = require("cmp.config.default")()
return {
completion = {
completeopt = "menu,menuone,noinsert",
@ -50,11 +55,17 @@ return {
end,
},
mapping = cmp.mapping.preset.insert({
["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<S-CR>"] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Replace,
select = true,
}), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
@ -73,9 +84,10 @@ return {
},
experimental = {
ghost_text = {
hl_group = "LspCodeLens",
hl_group = "CmpGhostText",
},
},
sorting = defaults.sorting,
}
end,
},
@ -84,12 +96,28 @@ return {
{
"echasnovski/mini.pairs",
event = "VeryLazy",
config = function(_, opts)
require("mini.pairs").setup(opts)
end,
opts = {},
keys = {
{
"<leader>up",
function()
local Util = require("lazy.core.util")
vim.g.minipairs_disable = not vim.g.minipairs_disable
if vim.g.minipairs_disable then
Util.warn("Disabled auto pairs", { title = "Option" })
else
Util.info("Enabled auto pairs", { title = "Option" })
end
end,
desc = "Toggle auto pairs",
},
},
},
-- surround
-- 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.
{
"echasnovski/mini.surround",
keys = function(_, keys)
@ -105,6 +133,9 @@ return {
{ 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 = {
@ -118,30 +149,29 @@ return {
update_n_lines = "gzn", -- Update `n_lines`
},
},
config = function(_, opts)
-- use gz mappings instead of s to prevent conflict with leap
require("mini.surround").setup(opts)
end,
},
-- comments
{ "JoosepAlviste/nvim-ts-context-commentstring", lazy = true },
{
"JoosepAlviste/nvim-ts-context-commentstring",
lazy = true,
opts = {
enable_autocmd = false,
},
},
{
"echasnovski/mini.comment",
event = "VeryLazy",
opts = {
hooks = {
pre = function()
require("ts_context_commentstring.internal").update_commentstring({})
options = {
custom_commentstring = function()
return require("ts_context_commentstring.internal").calculate_commentstring() or vim.bo.commentstring
end,
},
},
config = function(_, opts)
require("mini.comment").setup(opts)
end,
},
-- better text-objects
-- Better text-objects
{
"echasnovski/mini.ai",
-- keys = {
@ -149,15 +179,7 @@ return {
-- { "i", mode = { "x", "o" } },
-- },
event = "VeryLazy",
dependencies = {
{
"nvim-treesitter/nvim-treesitter-textobjects",
init = function()
-- no need to load the plugin, since we only need its queries
require("lazy.core.loader").disable_rtp_plugin("nvim-treesitter-textobjects")
end,
},
},
dependencies = { "nvim-treesitter-textobjects" },
opts = function()
local ai = require("mini.ai")
return {
@ -169,13 +191,14 @@ return {
}, {}),
f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }, {}),
c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }, {}),
t = { "<([%p%w]-)%f[^<%w][^<>]->.-</%1>", "^<.->().*()</[^/]->$" },
},
}
end,
config = function(_, opts)
require("mini.ai").setup(opts)
-- register all text objects with which-key
if require("lazyvim.util").has("which-key.nvim") then
require("lazyvim.util").on_load("which-key.nvim", function()
---@type table<string, string|table>
local i = {
[" "] = "Whitespace",
@ -216,7 +239,7 @@ return {
i = i,
a = a,
})
end
end)
end,
},
}

@ -12,5 +12,36 @@ return {
"catppuccin/nvim",
lazy = true,
name = "catppuccin",
opts = {
integrations = {
alpha = true,
cmp = true,
flash = true,
gitsigns = true,
illuminate = true,
indent_blankline = { enabled = true },
lsp_trouble = true,
mason = true,
mini = true,
native_lsp = {
enabled = true,
underlines = {
errors = { "undercurl" },
hints = { "undercurl" },
warnings = { "undercurl" },
information = { "undercurl" },
},
},
navic = { enabled = true, custom_bg = "lualine" },
neotest = true,
noice = true,
notify = true,
neotree = true,
semantic_tokens = true,
telescope = true,
treesitter = true,
which_key = true,
},
},
},
}

@ -2,5 +2,5 @@ require("lazyvim.config").init()
return {
{ "folke/lazy.nvim", version = "*" },
{ "LazyVim/LazyVim", priority = 10000, lazy = false, config = true, version = "*" },
{ "LazyVim/LazyVim", priority = 10000, lazy = false, config = true, cond = true, version = "*" },
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,78 @@
return {
-- copilot
{
"zbirenbaum/copilot.lua",
cmd = "Copilot",
build = ":Copilot auth",
opts = {
suggestion = { enabled = false },
panel = { enabled = false },
filetypes = {
markdown = true,
help = true,
},
},
},
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
local Util = require("lazyvim.util")
local colors = {
[""] = Util.fg("Special"),
["Normal"] = Util.fg("Special"),
["Warning"] = Util.fg("DiagnosticError"),
["InProgress"] = Util.fg("DiagnosticWarn"),
}
table.insert(opts.sections.lualine_x, 2, {
function()
local icon = require("lazyvim.config").icons.kinds.Copilot
local status = require("copilot.api").status.data
return icon .. (status.message or "")
end,
cond = function()
local ok, clients = pcall(vim.lsp.get_active_clients, { name = "copilot", bufnr = 0 })
return ok and #clients > 0
end,
color = function()
if not package.loaded["copilot"] then
return
end
local status = require("copilot.api").status.data
return colors[status.status] or colors[""]
end,
})
end,
},
-- copilot cmp source
{
"nvim-cmp",
dependencies = {
{
"zbirenbaum/copilot-cmp",
dependencies = "copilot.lua",
opts = {},
config = function(_, opts)
local copilot_cmp = require("copilot_cmp")
copilot_cmp.setup(opts)
-- attach cmp source whenever copilot attaches
-- fixes lazy-loading issues with the copilot cmp source
require("lazyvim.util").on_attach(function(client)
if client.name == "copilot" then
copilot_cmp._on_insert_enter({})
end
end)
end,
},
},
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, { name = "copilot", group_index = 2 })
opts.sorting = opts.sorting or require("cmp.config.default")().sorting
table.insert(opts.sorting.comparators, 1, require("copilot_cmp.comparators").prioritize)
end,
},
}

@ -0,0 +1,32 @@
return {
-- better yank/paste
{
"gbprod/yanky.nvim",
dependencies = { { "kkharji/sqlite.lua", enabled = not jit.os:find("Windows") } },
opts = {
highlight = { timer = 250 },
ring = { storage = jit.os:find("Windows") and "shada" or "sqlite" },
},
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" },
},
},
}

@ -0,0 +1,106 @@
return {
"mfussenegger/nvim-dap",
dependencies = {
-- fancy UI for the debugger
{
"rcarriga/nvim-dap-ui",
-- stylua: ignore
keys = {
{ "<leader>du", function() require("dapui").toggle({ }) end, desc = "Dap UI" },
{ "<leader>de", function() require("dapui").eval() end, desc = "Eval", mode = {"n", "v"} },
},
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)
dap.listeners.after.event_initialized["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
end,
},
-- virtual text for the debugger
{
"theHamsta/nvim-dap-virtual-text",
opts = {},
},
-- which key integration
{
"folke/which-key.nvim",
optional = true,
opts = {
defaults = {
["<leader>d"] = { name = "+debug" },
["<leader>da"] = { name = "+adapters" },
},
},
},
-- mason.nvim integration
{
"jay-babu/mason-nvim-dap.nvim",
dependencies = "mason.nvim",
cmd = { "DapInstall", "DapUninstall" },
opts = {
-- Makes a best effort to setup the various debuggers with
-- reasonable debug configurations
automatic_installation = true,
-- You can provide additional configuration to the handlers,
-- see mason-nvim-dap README for more information
handlers = {},
-- You'll need to check that you have the required things installed
-- online, please don't ask me how to install them :)
ensure_installed = {
-- Update this to ensure that you have the debuggers for the langs you want
},
},
},
},
-- stylua: ignore
keys = {
{ "<leader>dB", function() require("dap").set_breakpoint(vim.fn.input('Breakpoint condition: ')) end, desc = "Breakpoint Condition" },
{ "<leader>db", function() require("dap").toggle_breakpoint() end, desc = "Toggle Breakpoint" },
{ "<leader>dc", function() require("dap").continue() end, desc = "Continue" },
{ "<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>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" },
{ "<leader>dl", function() require("dap").run_last() end, desc = "Run Last" },
{ "<leader>do", function() require("dap").step_out() end, desc = "Step Out" },
{ "<leader>dO", function() require("dap").step_over() end, desc = "Step Over" },
{ "<leader>dp", function() require("dap").pause() end, desc = "Pause" },
{ "<leader>dr", function() require("dap").repl.toggle() end, desc = "Toggle REPL" },
{ "<leader>ds", function() require("dap").session() end, desc = "Session" },
{ "<leader>dt", function() require("dap").terminate() end, desc = "Terminate" },
{ "<leader>dw", function() require("dap.ui.widgets").hover() end, desc = "Widgets" },
},
config = function()
local Config = require("lazyvim.config")
vim.api.nvim_set_hl(0, "DapStoppedLine", { default = true, link = "Visual" })
for name, sign in pairs(Config.icons.dap) do
sign = type(sign) == "table" and sign or { sign }
vim.fn.sign_define(
"Dap" .. name,
{ text = sign[1], texthl = sign[2] or "DiagnosticInfo", linehl = sign[3], numhl = sign[3] }
)
end
end,
}

@ -0,0 +1,27 @@
return {
"mfussenegger/nvim-dap",
dependencies = {
{
"jbyuki/one-small-step-for-vimkind",
-- stylua: ignore
keys = {
{ "<leader>daL", function() require("osv").launch({ port = 8086 }) end, desc = "Adapter Lua Server" },
{ "<leader>dal", function() require("osv").run_this() end, desc = "Adapter Lua" },
},
config = function()
local dap = require("dap")
dap.adapters.nlua = function(callback, config)
callback({ type = "server", host = config.host or "127.0.0.1", port = config.port or 8086 })
end
dap.configurations.lua = {
{
type = "nlua",
request = "attach",
name = "Attach to running Neovim instance",
},
}
end,
},
},
}

@ -0,0 +1,40 @@
return {
-- disable flash
{ "folke/flash.nvim", enabled = false, optional = true },
-- easily jump to any location and enhanced f/t motions for Leap
{
"ggandor/flit.nvim",
enabled = true,
keys = function()
---@type LazyKeys[]
local ret = {}
for _, key in ipairs({ "f", "F", "t", "T" }) do
ret[#ret + 1] = { key, mode = { "n", "x", "o" }, desc = key }
end
return ret
end,
opts = { labeled_modes = "nx" },
},
{
"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" },
},
config = function(_, opts)
local leap = require("leap")
for k, v in pairs(opts) do
leap.opts[k] = v
end
leap.add_default_mappings(true)
vim.keymap.del({ "x", "o" }, "x")
vim.keymap.del({ "x", "o" }, "X")
end,
},
-- makes some plugins dot-repeatable like leap
{ "tpope/vim-repeat", event = "VeryLazy" },
}

@ -0,0 +1,64 @@
return {
"echasnovski/mini.files",
opts = {
windows = {
preview = true,
width_focus = 30,
width_preview = 30,
},
options = {
-- Whether to use for editing directories
-- Disabled by default in LazyVim because neo-tree is used for that
use_as_default_explorer = false,
},
},
keys = {
{
"<leader>fm",
function()
require("mini.files").open(vim.api.nvim_buf_get_name(0), true)
end,
desc = "Open mini.files (directory of current file)",
},
{
"<leader>fM",
function()
require("mini.files").open(vim.loop.cwd(), true)
end,
desc = "Open mini.files (cwd)",
},
},
config = function(_, opts)
require("mini.files").setup(opts)
local show_dotfiles = true
local filter_show = function(fs_entry)
return true
end
local filter_hide = function(fs_entry)
return not vim.startswith(fs_entry.name, ".")
end
local toggle_dotfiles = function()
show_dotfiles = not show_dotfiles
local new_filter = show_dotfiles and filter_show or filter_hide
require("mini.files").refresh({ content = { filter = new_filter } })
end
vim.api.nvim_create_autocmd("User", {
pattern = "MiniFilesBufferCreate",
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 })
end,
})
vim.api.nvim_create_autocmd("User", {
pattern = "MiniFilesActionRename",
callback = function(event)
require("lazyvim.util").on_rename(event.data.from, event.data.to)
end,
})
end,
}

@ -0,0 +1,53 @@
return {
{
"stevearc/conform.nvim",
dependencies = { "mason.nvim" },
lazy = true,
cmd = "ConformInfo",
keys = {
{
"<leader>cF",
function()
require("conform").format({ formatters = { "injected" } })
end,
mode = { "n", "v" },
desc = "Format Injected Langs",
},
},
init = function()
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
-- Install the conform formatter on VeryLazy
require("lazyvim.util").on_very_lazy(function()
require("lazyvim.plugins.lsp.format").custom_format = function(buf)
return require("conform").format({ bufnr = buf })
end
end)
end,
opts = {
formatters_by_ft = {
lua = { "stylua" },
fish = { "fish_indent" },
sh = { "shfmt" },
},
-- LazyVim will merge the options you set here with builtin formatters.
-- You can also define any custom formatters here.
---@type table<string,table>
formatters = {
-- -- Example of using dprint only when a dprint.json file is present
-- dprint = {
-- condition = function(ctx)
-- return vim.fs.find({ "dprint.json" }, { path = ctx.filename, upward = true })[1]
-- end,
-- },
},
},
config = function(_, opts)
opts.formatters = opts.formatters or {}
for f, o in pairs(opts.formatters) do
local ok, formatter = pcall(require, "conform.formatters." .. f)
opts.formatters[f] = vim.tbl_deep_extend("force", {}, ok and formatter or {}, o)
end
require("conform").setup(opts)
end,
},
}

@ -0,0 +1,40 @@
return {
{
"williamboman/mason.nvim",
opts = function(_, opts)
table.insert(opts.ensure_installed, "prettierd")
end,
},
{
"nvimtools/none-ls.nvim",
optional = true,
opts = function(_, opts)
local nls = require("null-ls")
table.insert(opts.sources, nls.builtins.formatting.prettierd)
end,
},
{
"stevearc/conform.nvim",
optional = true,
opts = {
formatters_by_ft = {
["javascript"] = { { "prettierd", "prettier" } },
["javascriptreact"] = { { "prettierd", "prettier" } },
["typescript"] = { { "prettierd", "prettier" } },
["typescriptreact"] = { { "prettierd", "prettier" } },
["vue"] = { { "prettierd", "prettier" } },
["css"] = { { "prettierd", "prettier" } },
["scss"] = { { "prettierd", "prettier" } },
["less"] = { { "prettierd", "prettier" } },
["html"] = { { "prettierd", "prettier" } },
["json"] = { { "prettierd", "prettier" } },
["jsonc"] = { { "prettierd", "prettier" } },
["yaml"] = { { "prettierd", "prettier" } },
["markdown"] = { { "prettierd", "prettier" } },
["markdown.mdx"] = { { "prettierd", "prettier" } },
["graphql"] = { { "prettierd", "prettier" } },
["handlebars"] = { { "prettierd", "prettier" } },
},
},
},
}

@ -0,0 +1,154 @@
return {
-- Add C/C++ to treesitter
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "c", "cpp" })
end
end,
},
{
"p00f/clangd_extensions.nvim",
lazy = true,
config = function() end,
opts = {
inlay_hints = {
inline = false,
},
ast = {
--These require codicons (https://github.com/microsoft/vscode-codicons)
role_icons = {
type = "",
declaration = "",
expression = "",
specifier = "",
statement = "",
["template argument"] = "",
},
kind_icons = {
Compound = "",
Recovery = "",
TranslationUnit = "",
PackExpansion = "",
TemplateTypeParm = "",
TemplateTemplateParm = "",
TemplateParamObject = "",
},
},
},
},
-- Correctly setup lspconfig for clangd 🚀
{
"neovim/nvim-lspconfig",
opts = {
servers = {
-- Ensure mason installs the server
clangd = {
keys = {
{ "<leader>cR", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
},
root_dir = function(fname)
return require("lspconfig.util").root_pattern(
"Makefile",
"configure.ac",
"configure.in",
"config.h.in",
"meson.build",
"meson_options.txt",
"build.ninja"
)(fname) or require("lspconfig.util").root_pattern("compile_commands.json", "compile_flags.txt")(
fname
) or require("lspconfig.util").find_git_ancestor(fname)
end,
capabilities = {
offsetEncoding = { "utf-16" },
},
cmd = {
"clangd",
"--background-index",
"--clang-tidy",
"--header-insertion=iwyu",
"--completion-style=detailed",
"--function-arg-placeholders",
"--fallback-style=llvm",
},
init_options = {
usePlaceholders = true,
completeUnimported = true,
clangdFileStatus = true,
},
},
},
setup = {
clangd = function(_, opts)
local clangd_ext_opts = require("lazyvim.util").opts("clangd_extensions.nvim")
require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts }))
return false
end,
},
},
},
{
"nvim-cmp",
opts = function(_, opts)
table.insert(opts.sorting.comparators, 1, require("clangd_extensions.cmp_scores"))
end,
},
{
"mfussenegger/nvim-dap",
optional = true,
dependencies = {
-- Ensure C/C++ debugger is installed
"williamboman/mason.nvim",
optional = true,
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "codelldb" })
end
end,
},
opts = function()
local dap = require("dap")
if not dap.adapters["codelldb"] then
require("dap").adapters["codelldb"] = {
type = "server",
host = "localhost",
port = "${port}",
executable = {
command = "codelldb",
args = {
"--port",
"${port}",
},
},
}
end
for _, lang in ipairs({ "c", "cpp" }) do
dap.configurations[lang] = {
{
type = "codelldb",
request = "launch",
name = "Launch file",
program = function()
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
end,
cwd = "${workspaceFolder}",
},
{
type = "codelldb",
request = "attach",
name = "Attach to process",
processId = require("dap.utils").pick_process,
cwd = "${workspaceFolder}",
},
}
end
end,
},
}

@ -0,0 +1,50 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "cmake" })
end
end,
},
{
"nvimtools/none-ls.nvim",
optional = true,
opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
vim.list_extend(opts.sources, {
nls.builtins.diagnostics.cmake_lint,
})
end,
},
{
"mfussenegger/nvim-lint",
optional = true,
opts = {
linters_by_ft = {
cmake = { "cmakelint" },
},
},
},
{
"mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "cmakelang" })
end,
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
neocmake = {},
},
},
},
{
"Civitasv/cmake-tools.nvim",
opts = {},
event = "BufRead",
},
}

@ -0,0 +1,46 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "dockerfile" })
end
end,
},
{
"mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "hadolint" })
end,
},
{
"nvimtools/none-ls.nvim",
optional = true,
opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
vim.list_extend(opts.sources, {
nls.builtins.diagnostics.hadolint,
})
end,
},
{
"mfussenegger/nvim-lint",
optional = true,
opts = {
linters_by_ft = {
dockerfile = { "hadolint" },
},
},
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
dockerls = {},
docker_compose_language_service = {},
},
},
},
}

@ -0,0 +1,52 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, {
"elixir",
"heex",
"eex",
})
end,
},
{
"williamboman/mason.nvim",
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, {
"elixir-ls",
})
end,
},
{
"nvim-neotest/neotest",
optional = true,
dependencies = {
"jfpedroza/neotest-elixir",
},
opts = {
adapters = {
["neotest-elixir"] = {},
},
},
},
{
"nvimtools/none-ls.nvim",
optional = true,
opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
vim.list_extend(opts.sources, {
nls.builtins.diagnostics.credo,
})
end,
},
{
"mfussenegger/nvim-lint",
optional = true,
opts = {
linters_by_ft = {
elixir = { "credo" },
},
},
},
}

@ -0,0 +1,140 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, {
"go",
"gomod",
"gowork",
"gosum",
})
end,
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
gopls = {
keys = {
-- Workaround for the lack of a DAP strategy in neotest-go: https://github.com/nvim-neotest/neotest-go/issues/12
{ "<leader>td", "<cmd>lua require('dap-go').debug_test()<CR>", desc = "Debug Nearest (Go)" },
},
settings = {
gopls = {
gofumpt = true,
codelenses = {
gc_details = false,
generate = true,
regenerate_cgo = true,
run_govulncheck = true,
test = true,
tidy = true,
upgrade_dependency = true,
vendor = true,
},
hints = {
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
constantValues = true,
functionTypeParameters = true,
parameterNames = true,
rangeVariableTypes = true,
},
analyses = {
fieldalignment = true,
nilness = true,
unusedparams = true,
unusedwrite = true,
useany = true,
},
usePlaceholders = true,
completeUnimported = true,
staticcheck = true,
directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },
semanticTokens = true,
},
},
},
},
setup = {
gopls = function(_, opts)
-- workaround for gopls not supporting semanticTokensProvider
-- https://github.com/golang/go/issues/54531#issuecomment-1464982242
require("lazyvim.util").on_attach(function(client, _)
if client.name == "gopls" then
if not client.server_capabilities.semanticTokensProvider then
local semantic = client.config.capabilities.textDocument.semanticTokens
client.server_capabilities.semanticTokensProvider = {
full = true,
legend = {
tokenTypes = semantic.tokenTypes,
tokenModifiers = semantic.tokenModifiers,
},
range = true,
}
end
end
end)
-- end workaround
end,
},
},
},
-- Ensure Go tools are installed
{
"nvimtools/none-ls.nvim",
optional = true,
opts = function(_, opts)
if type(opts.sources) == "table" then
local nls = require("null-ls")
vim.list_extend(opts.sources, {
nls.builtins.code_actions.gomodifytags,
nls.builtins.code_actions.impl,
nls.builtins.formatting.goimports,
})
end
end,
},
{
"stevearc/conform.nvim",
optional = true,
opts = {
formatters_by_ft = {
go = { "goimports" },
},
},
},
{
"mfussenegger/nvim-dap",
optional = true,
dependencies = {
{
"mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "gomodifytags", "impl", "goimports", "delve" })
end,
},
{
"leoluz/nvim-dap-go",
config = true,
},
},
},
{
"nvim-neotest/neotest",
optional = true,
dependencies = {
"nvim-neotest/neotest-go",
},
opts = {
adapters = {
["neotest-go"] = {
-- Here we can set options for neotest-go, e.g.
-- args = { "-tags=integration" }
},
},
},
},
}

@ -0,0 +1,227 @@
local Util = require("lazyvim.util")
-- This is the same as in lspconfig.server_configurations.jdtls, but avoids
-- needing to require that when this module loads.
local java_filetypes = { "java" }
-- Utility function to extend or override a config table, similar to the way
-- that Plugin.opts works.
---@param config table
---@param custom function | table | nil
local function extend_or_override(config, custom, ...)
if type(custom) == "function" then
config = custom(config, ...) or config
elseif custom then
config = vim.tbl_deep_extend("force", config, custom) --[[@as table]]
end
return config
end
return {
-- Add java to treesitter.
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "java" })
end,
},
-- Ensure java debugger and test packages are installed.
{
"mfussenegger/nvim-dap",
optional = true,
dependencies = {
{
"williamboman/mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "java-test", "java-debug-adapter" })
end,
},
},
},
-- Configure nvim-lspconfig to install the server automatically via mason, but
-- defer actually starting it to our configuration of nvim-jtdls below.
{
"neovim/nvim-lspconfig",
opts = {
-- make sure mason installs the server
servers = {
jdtls = {},
},
setup = {
jdtls = function()
return true -- avoid duplicate servers
end,
},
},
},
-- Set up nvim-jdtls to attach to java files.
{
"mfussenegger/nvim-jdtls",
dependencies = { "folke/which-key.nvim" },
ft = java_filetypes,
opts = function()
return {
-- How to find the root dir for a given filename. The default comes from
-- lspconfig which provides a function specifically for java projects.
root_dir = require("lspconfig.server_configurations.jdtls").default_config.root_dir,
-- How to find the project name for a given root dir.
project_name = function(root_dir)
return root_dir and vim.fs.basename(root_dir)
end,
-- Where are the config and workspace dirs for a project?
jdtls_config_dir = function(project_name)
return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/config"
end,
jdtls_workspace_dir = function(project_name)
return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/workspace"
end,
-- How to run jdtls. This can be overridden to a full java command-line
-- if the Python wrapper script doesn't suffice.
cmd = { "jdtls" },
full_cmd = function(opts)
local fname = vim.api.nvim_buf_get_name(0)
local root_dir = opts.root_dir(fname)
local project_name = opts.project_name(root_dir)
local cmd = vim.deepcopy(opts.cmd)
if project_name then
vim.list_extend(cmd, {
"-configuration",
opts.jdtls_config_dir(project_name),
"-data",
opts.jdtls_workspace_dir(project_name),
})
end
return cmd
end,
-- These depend on nvim-dap, but can additionally be disabled by setting false here.
dap = { hotcodereplace = "auto", config_overrides = {} },
test = true,
}
end,
config = function()
local opts = Util.opts("nvim-jdtls") or {}
-- Find the extra bundles that should be passed on the jdtls command-line
-- if nvim-dap is enabled with java debug/test.
local mason_registry = require("mason-registry")
local bundles = {} ---@type string[]
if opts.dap and Util.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then
local java_dbg_pkg = mason_registry.get_package("java-debug-adapter")
local java_dbg_path = java_dbg_pkg:get_install_path()
local jar_patterns = {
java_dbg_path .. "/extension/server/com.microsoft.java.debug.plugin-*.jar",
}
-- java-test also depends on java-debug-adapter.
if opts.test and mason_registry.is_installed("java-test") then
local java_test_pkg = mason_registry.get_package("java-test")
local java_test_path = java_test_pkg:get_install_path()
vim.list_extend(jar_patterns, {
java_test_path .. "/extension/server/*.jar",
})
end
for _, jar_pattern in ipairs(jar_patterns) do
for _, bundle in ipairs(vim.split(vim.fn.glob(jar_pattern), "\n")) do
table.insert(bundles, bundle)
end
end
end
local function attach_jdtls()
local fname = vim.api.nvim_buf_get_name(0)
-- Configuration can be augmented and overridden by opts.jdtls
local config = extend_or_override({
cmd = opts.full_cmd(opts),
root_dir = opts.root_dir(fname),
init_options = {
bundles = bundles,
},
-- enable CMP capabilities
capabilities = require("cmp_nvim_lsp").default_capabilities(),
}, opts.jdtls)
-- Existing server will be reused if the root_dir matches.
require("jdtls").start_or_attach(config)
-- not need to require("jdtls.setup").add_commands(), start automatically adds commands
end
-- Attach the jdtls for each java buffer. HOWEVER, this plugin loads
-- depending on filetype, so this autocmd doesn't run for the first file.
-- For that, we call directly below.
vim.api.nvim_create_autocmd("FileType", {
pattern = java_filetypes,
callback = attach_jdtls,
})
-- Setup keymap and dap after the lsp is fully attached.
-- https://github.com/mfussenegger/nvim-jdtls#nvim-dap-configuration
-- https://neovim.io/doc/user/lsp.html#LspAttach
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local client = vim.lsp.get_client_by_id(args.data.client_id)
if client and client.name == "jdtls" then
local wk = require("which-key")
wk.register({
["<leader>cx"] = { name = "+extract" },
["<leader>cxv"] = { require("jdtls").extract_variable_all, "Extract Variable" },
["<leader>cxc"] = { require("jdtls").extract_constant, "Extract Constant" },
["gs"] = { require("jdtls").super_implementation, "Goto Super" },
["gS"] = { require("jdtls.tests").goto_subjects, "Goto Subjects" },
["<leader>co"] = { require("jdtls").organize_imports, "Organize Imports" },
}, { mode = "n", buffer = args.buf })
wk.register({
["<leader>c"] = { name = "+code" },
["<leader>cx"] = { name = "+extract" },
["<leader>cxm"] = {
[[<ESC><CMD>lua require('jdtls').extract_method(true)<CR>]],
"Extract Method",
},
["<leader>cxv"] = {
[[<ESC><CMD>lua require('jdtls').extract_variable_all(true)<CR>]],
"Extract Variable",
},
["<leader>cxc"] = {
[[<ESC><CMD>lua require('jdtls').extract_constant(true)<CR>]],
"Extract Constant",
},
}, { mode = "v", buffer = args.buf })
if opts.dap and Util.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then
-- custom init for Java debugger
require("jdtls").setup_dap(opts.dap)
require("jdtls.dap").setup_dap_main_class_configs()
-- Java Test require Java debugger to work
if opts.test and mason_registry.is_installed("java-test") then
-- custom keymaps for Java test runner (not yet compatible with neotest)
wk.register({
["<leader>t"] = { name = "+test" },
["<leader>tt"] = { require("jdtls.dap").test_class, "Run All Test" },
["<leader>tr"] = { require("jdtls.dap").test_nearest_method, "Run Nearest Test" },
["<leader>tT"] = { require("jdtls.dap").pick_test, "Run Test" },
}, { mode = "n", buffer = args.buf })
end
end
-- User can set additional keymaps in opts.on_attach
if opts.on_attach then
opts.on_attach(args)
end
end
end,
})
-- Avoid race condition by calling attach the first time, since the autocmd won't fire.
attach_jdtls()
end,
},
}

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