Compare commits

..

114 Commits

Author SHA1 Message Date
2e9da7f41f chore(main): release 12.2.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-01 09:52:43 +02:00
7598a7503d feat(extras): added extra for svelte. Full support will be enabled once my mason PR gets merged 2024-06-01 09:08:09 +02:00
4e62df4269 fix(health): remove old deprecated module checks 2024-06-01 08:48:44 +02:00
a6df15a63f fix(util): make sure mason is loaded when getting package paths 2024-06-01 08:48:29 +02:00
276b50e389 style: docs for LazyVim.extend 2024-06-01 08:42:00 +02:00
679c76a8f3 chore(build): auto-generate vimdoc 2024-06-01 06:34:09 +00:00
683aaeb75b feat(astro): added support for ts-plugin, but won't work till mason-registry PR is merged. See 2024-06-01 08:33:24 +02:00
9d999fa210 refactor: refactored mason/typescript/vue support 2024-06-01 08:31:10 +02:00
135150307b fix(aerial): disable trouble leader-cs keymap when aerial extra is enabled 2024-05-31 23:47:48 +02:00
146c87cd78 fix(trouble): don't enable symbols keymap when outline.nvim enabled () 2024-05-31 23:46:30 +02:00
e7430b0776 fix(vue): correctly add plugins. See 2024-05-31 20:53:55 +02:00
07ff12f5eb fix(extras.lang.vue) missing typescript autocomplete in .vue files ()
* Fix missing autocomplete in .vue files

The existing Vue extra was not properly configuring vtsls to use the globalPlugin: '@vue/typescript-plugin'

This commit fixes missing typescript autocomplete in .vue files.

* move @vue/typescript-plugin back to extend function call

* tidy LazyVim.extend() arguments
2024-05-31 20:52:01 +02:00
abc6554e24 fix(ui): remove old alpha.nvim warning 2024-05-31 16:49:47 +02:00
ae381c91a1 Revert "fix(rust): let rustaceans.nvim setup rust_analyzer ()"
This reverts commit 3fadf6af8f4adc1788fb8adec1fd9850d12feaf8.
2024-05-31 14:24:27 +02:00
d02b73d72a fix(ui): allow to disable the trouble lualine component with vim.g.trouble_lualine = false ()
* fix(ui): do not add trouble to lualine when aerial is enabled

* refactor: make trouble lualine an option

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-05-31 14:07:55 +02:00
6678af37ee fix(copilot-chat): no need to schedule which-key keys. just use default 2024-05-31 13:59:53 +02:00
3fadf6af8f fix(rust): let rustaceans.nvim setup rust_analyzer ()
fix this warning
```
   Warn  11:52:45 PM notify.warn nvim-lspconfig.rust_analyzer has been setup.
This will likely lead to conflicts with the rustaceanvim LSP client.
See ':h rustaceanvim.mason'
```
fix taken from https://github.com/mrcjkb/rustaceanvim/blob/master/doc/mason.txt
2024-05-31 13:56:40 +02:00
9f2cc30246 fix(lsp): better way of extending deeply nested lists. Fixes 2024-05-31 13:52:43 +02:00
7782affc90 chore(build): auto-generate vimdoc 2024-05-31 06:22:30 +00:00
a474aea1f9 fix: rename +a which-key group to ai. Fixes 2024-05-31 08:21:50 +02:00
060f56d6d4 fix(extras): underline = false for setting diagnostics ()
Similar to ea7b9c3c3f#
I only noticed this, because in my main config I have some Extras not
managed by `LazyExtras`.
2024-05-30 16:08:34 +02:00
0a9373733f feat(typescript): add keymap for remove unused imports () 2024-05-30 15:30:20 +02:00
298a8f5c5d chore(main): release 12.1.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-30 14:55:03 +02:00
95d055dcf7 feat: trouble v3 2024-05-30 14:41:13 +02:00
ae098d67d6 fix(typescript): vtsls server expe settings ()
Based on [vtsls schema](bd2df5a2d4/packages/service/configuration.schema.json (L1092)), experimental setting should be vtsls property not typescript.

```json
"vtsls.experimental.completion.enableServerSideFuzzyMatch": {
      "default": false,
      "type": "boolean",
      "description": "Execute fuzzy match of completion items on server side. Enable this will help filter out useless completion items from tsserver."
    },
```
2024-05-30 11:29:09 +02:00
c2ef09227e fix: remove lazygit log gl keymap when on gitui () 2024-05-30 11:17:55 +02:00
e7d4b397b2 feat(extras): simple extra for astro 2024-05-30 11:17:24 +02:00
cf6775a959 fix(typescript): allow easier merging of ts plugins 2024-05-30 11:17:23 +02:00
c4b7505969 fix(extras): show recommended languages above enabled plugins 2024-05-30 11:17:23 +02:00
7414e84af9 fix(root): escape glob expressions 2024-05-30 11:17:23 +02:00
b285a46dfc feat(typescript): vtls add select ts version () 2024-05-30 09:57:10 +02:00
2e5e46d9ff chore(build): auto-generate vimdoc 2024-05-30 05:19:20 +00:00
a224ef2a73 fix(clangd): switch source/header is now leader-ch. Fixes 2024-05-30 07:18:41 +02:00
2a7d163a8a feat(copilot-chat): add cmp integration 2024-05-30 00:27:13 +02:00
80143069ff chore(main): release 12.0.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-29 22:37:15 +02:00
3ace8277e5 feat(keymaps): new keymap to toggle mazimize of current window leader-m or leader-wm 2024-05-29 22:35:40 +02:00
a13457eea3 fix(trouble_v3): set correct lualine section background color 2024-05-29 21:38:05 +02:00
0975eeb9ad feat(vscode): added ts-comments to allow list for vscode 2024-05-29 18:22:54 +02:00
804756209e fix(lsp): remove duplicate keymap 2024-05-29 16:39:02 +02:00
01e6718e03 fix(lsp): added support for has as array for lsp keymaps 2024-05-29 16:31:16 +02:00
38b8736b81 feat(typescript): added gR to goto file references 2024-05-29 16:02:38 +02:00
4dfd5c2596 fix(lsp): create gr with nowait=true 2024-05-29 16:02:13 +02:00
f6bcf6f12c fix(lsp): fix ts/deno both attaching 2024-05-29 15:39:17 +02:00
fba06ce9f5 feat(typescript)!: the typescript extra now uses vtsls instead of tsserver. You may want to update your lsp settings. 2024-05-29 15:10:57 +02:00
cf46d265ff chore(build): auto-generate vimdoc 2024-05-29 12:46:34 +00:00
b949dba489 feat(lsp): added leader-cR to rename the current file and to lsp rename operations 2024-05-29 14:45:55 +02:00
4bbeb37a18 fix(lsp): fix LazyVim's on_file_rename to work according to the lsp spec 2024-05-29 14:45:55 +02:00
54d687383d style: cleanup 2024-05-29 14:45:55 +02:00
0160851a25 chore(main): release 11.11.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-28 23:04:16 +02:00
1b86d7b2ad fix(snippets): fix snippets with multiple placeholders for the same tabstop 2024-05-28 19:32:21 +02:00
eb0da3c92f feat(snippets): try to use the snippet parse to get a preview 2024-05-28 19:31:59 +02:00
425dadef72 fix(snippets): show actual error for failed snippet 2024-05-28 19:31:22 +02:00
91493588a8 fix(nvim-snippets): no longer needed to set global_snippets 2024-05-28 17:51:10 +02:00
97bdcc1c52 chore(main): release 11.10.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-28 16:15:34 +02:00
a6e6d4dabd fix(nvim-snippets): remove extra filetypes since thats no longer needed with merged PR 2024-05-28 16:12:53 +02:00
cf4374867d feat(snippets): re-number tabstops for invalid snippets 2024-05-28 16:12:35 +02:00
025ba33dc3 fix(nvim-snippets): also enable for tsx/jsx files 2024-05-28 15:13:29 +02:00
99f0a1cb40 fix(nvim-snippets): load js snippets for ts. See 2024-05-28 15:11:32 +02:00
de57894158 feat(scala-extra): Use noice for progress and add minimal keybinding ()
* Use fidget for progress and add minimal keybinding

* remove figest, noice works already

* make keybinding only available for scala filetypes
2024-05-28 14:55:11 +02:00
80c9dcaabe feat(lang): add R ()
* Added R extra

* Removed "made by Ben10164"

* Formatted Lua

* Removed hardcoded addition of R-languageserver in MasonLSP

* Improved nvim-lspconfig config for r_language_server

* Added nvim-neotest

* Format

* Removed Lualine

* Rework into opts, modify `pdfviewer` to be os dependent

* refactor: r

* fix: add cmp-r back

* Added quarto whichkey group label

* Set pdfviewer to be an empty string

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-05-28 13:44:38 +02:00
a3011c91d4 chore(build): auto-generate vimdoc 2024-05-28 05:40:04 +00:00
47a8736278 feat(keymaps): add comment above/below current line with gco/gcO 2024-05-28 07:39:26 +02:00
e68ff6897e feat(lsp): config option to exclude certain filetypes from inlay hints. Closes 2024-05-27 21:19:36 +02:00
08481c2c92 fix(copilot-chat): enhanced chat view is now merged upstream, so update your plugins! 2024-05-27 20:57:49 +02:00
505ce3851c chore(main): release 11.9.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-27 18:24:15 +02:00
0a63734b78 fix(lsp): double check for documentHighlight. See 2024-05-27 18:22:44 +02:00
a23e8c15f5 feat(copilot-chat): enhanced rendering of the chat window 2024-05-27 18:16:35 +02:00
02b240cea5 fix(copilot-chat): clear -> reset 2024-05-27 17:53:38 +02:00
eb1c04bd31 fix(terminal): make gf behave. Fixes 2024-05-27 17:38:51 +02:00
163f7ea303 fix(edgy): load edgy spec early 2024-05-27 17:38:30 +02:00
2695fc7dfc feat(copilot-chat): make keymaps work in visual mode 2024-05-27 16:48:22 +02:00
54d7cea305 fix(typescript): invalid value in inlayHints options () 2024-05-27 13:48:22 +02:00
91fe7ef568 chore(main): release 11.8.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-27 09:07:31 +02:00
46785526a6 feat(extras): added extra for CopilotChat.nvim 2024-05-27 08:42:30 +02:00
d3500a4a33 fix(rust): show error when rust-analyzer not found 2024-05-27 08:09:24 +02:00
f48d55a653 fix(lang/rust): Remove rust-analyzer from nvim-lspconfig ()
According to the maintainer of `rustaceanvim` (see his comment [here](https://github.com/LazyVim/LazyVim/pull/2198#issuecomment-1999475044)) he says
> To pick up on this: There's a good reason rustaceanvim doesn't automatically pick up a mason.nvim installation. It will most likely be built with a different toolchain than the one your project uses, often leading to discrepancies and subtle bugs.
It's easy to configure rustaceanvim to use mason.nvim if you really want it, but I generally adhere to the YAGNI principle.

I tried locally and the removal of `rust-analyzer` from `nvim-lspconfig` doesn't
seem to have any effect on how `rustaceanvim` behaves.

I propose to remove all instances of `rust-analyzer` from `nvim-lspconfig` to avoid
any possible issues from users that don't have `rust-analyzer` installed
in their toolchain (in this case it would pick up Mason's $PATH I
believe), since they will think that since `rust-analyzer` is installed
by Mason, there shouldn't be a problem and report issues as bugs.
2024-05-27 08:04:51 +02:00
9ccdbf644c feat(git): Change Commit Log to use Lazygit ()
* feat(git): Change Commit Log to use Lazygit

* fix: use gl

* fix conflicts

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-05-27 07:53:49 +02:00
dbed614655 fix(laygit): normalize paths. Fixes 2024-05-27 05:35:47 +02:00
61dc00147b chore(build): auto-generate vimdoc 2024-05-27 05:14:23 +00:00
d23e8572e8 fix(laygit): use correct .git root for git blame 2024-05-27 07:13:43 +02:00
53911748dd fix(snippet): always use top-level snippet session. Fixes 2024-05-26 18:51:14 +02:00
59204df1cb chore(main): release 11.7.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-26 17:04:15 +02:00
3a30070a4c feat: lazyrc files are now a lazy.nvim feature 2024-05-26 16:49:48 +02:00
7aa37064a2 fix(lspconfig): make opts a function ()
`LazyVim.config` gets evaluated during the parsing phase with `opts`
as a table (thus not taking into account changes made in the user's
personal configuration for the icons), so make `opts` a function to
defer the evaluation until the plugin loads.
2024-05-26 16:06:15 +02:00
b3373f3428 fix(lsp): added a-n, a-p for document highlights and cycling. Closes 2024-05-26 16:03:13 +02:00
c9ab8224f5 fix(illuminate): s/enabed/enabled () 2024-05-26 10:38:28 +02:00
cdff9de172 fix(lsp): correct previous reference keymap description () 2024-05-26 10:33:40 +02:00
945ee7e283 chore(build): auto-generate vimdoc 2024-05-26 08:11:46 +00:00
07a137199c fix(lsp): properly get buffer for dynamic capabilities () 2024-05-26 10:11:12 +02:00
0f6ff53ce3 chore(main): release 11.6.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-23 17:41:03 +02:00
10ed3082a4 fix(lsp): use proper buffer for dynamic capabilities. Fixes 2024-05-23 17:39:23 +02:00
c6e8c5b450 chore(main): release 11.6.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-23 07:15:41 +02:00
692aa08da7 chore(build): auto-generate vimdoc 2024-05-23 05:14:55 +00:00
46cf5347b5 fix(lsp): only enableinlay hints for when buffer is an actual file. See 2024-05-23 07:14:17 +02:00
f9b31372ae fix(python): extras.lang.python to enable venv select keys on ft () 2024-05-22 19:39:16 +02:00
ad6c9bcfab Revert "fix: set markdown for LICENSE file ()"
This reverts commit 1eea51606e1ec1035c440a4ca9b3eab053337a7d.
2024-05-22 19:37:23 +02:00
31f876cc4c chore(build): auto-generate vimdoc 2024-05-22 17:37:04 +00:00
1eea51606e fix: set markdown for LICENSE file () 2024-05-22 19:36:33 +02:00
ae6d8f1a34 feat(markdown): add formatter for mdx 2024-05-21 23:05:29 +02:00
9eec03d890 feat(markdown): configure conform for markdown files () 2024-05-21 23:03:43 +02:00
79608fbc4f feat(telescope): add telescope jumplist keymap () 2024-05-21 22:56:15 +02:00
3ebe30685d chore(main): release 11.5.0 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-21 22:28:15 +02:00
e46dd4e9b2 fix(neo-tree): better icons for git staged/unstaged 2024-05-21 22:06:52 +02:00
ab4e57a4bf feat(telescope): add quickfix and telescope keymaps () 2024-05-21 20:34:28 +02:00
027d6bc2e8 fix(snippets): my nvim-snippets PR is merged, so remove work-around. That was quick :) 2024-05-21 20:26:30 +02:00
cb1e1b9c82 fix(snippets): fixes custom snippets. use my branch till nvim-snippets PR is merged. Fixes 2024-05-21 20:18:20 +02:00
d73397c4aa fix(snippets): make friendly snippets a dep of nvim-snippets 2024-05-21 19:54:20 +02:00
2bae438570 fix(cmp): fix cmp's broken snippet parsing functionality. Fixes 2024-05-21 19:51:13 +02:00
8ba7c64a7d feat(comments): use ts-comments.nvim instead of nvim-ts-context-commentstring on Neovim 0.10 2024-05-21 19:31:40 +02:00
55b07dee21 fix(nvim-snippets): enable global friendly-snippets. See 2024-05-21 19:22:41 +02:00
8c94842b4a fix(lsp): sometimes lsp client is not fully initialized and doesnt yet have client.supports_method on 0.9.5. Fixes 2024-05-21 18:23:10 +02:00
d19a004136 chore(build): auto-generate vimdoc 2024-05-21 10:01:38 +00:00
6aae99e76d chore(main): release 11.4.1 ()
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-21 12:00:59 +02:00
8e67bb1240 fix(java): properly pass settings to jdtls 2024-05-20 22:39:36 +02:00
43 changed files with 1163 additions and 460 deletions

@ -1,5 +1,207 @@
# Changelog
## [12.2.0](https://github.com/LazyVim/LazyVim/compare/v12.1.0...v12.2.0) (2024-06-01)
### Features
* **astro:** added support for ts-plugin, but won't work till mason-registry PR is merged. See [#3364](https://github.com/LazyVim/LazyVim/issues/3364) ([683aaeb](https://github.com/LazyVim/LazyVim/commit/683aaeb75b46f182f2a2dca3b8416151de296626))
* **extras:** added extra for svelte. Full support will be enabled once my mason PR gets merged ([7598a75](https://github.com/LazyVim/LazyVim/commit/7598a7503df0fd7912e81fdc9a0eb7635795605b))
* **typescript:** add keymap for remove unused imports ([#3376](https://github.com/LazyVim/LazyVim/issues/3376)) ([0a93737](https://github.com/LazyVim/LazyVim/commit/0a9373733f79be5edb4ccb8d9268a700c1e3faad))
### Bug Fixes
* **aerial:** disable trouble leader-cs keymap when aerial extra is enabled ([1351503](https://github.com/LazyVim/LazyVim/commit/135150307b53a5b51f2f0c149ca7f426a67eb8f1))
* **copilot-chat:** no need to schedule which-key keys. just use default ([6678af3](https://github.com/LazyVim/LazyVim/commit/6678af37ee3100882b4c08451fa8aaa37e37fd69))
* **extras:** `underline = false` for setting diagnostics ([#3379](https://github.com/LazyVim/LazyVim/issues/3379)) ([060f56d](https://github.com/LazyVim/LazyVim/commit/060f56d6d429c5ee3fd35f4fa0c152f4a42781ca))
* **health:** remove old deprecated module checks ([4e62df4](https://github.com/LazyVim/LazyVim/commit/4e62df4269a9300c17f6bf23acfcb9dd0729b6c3))
* **lsp:** better way of extending deeply nested lists. Fixes [#3398](https://github.com/LazyVim/LazyVim/issues/3398) ([9f2cc30](https://github.com/LazyVim/LazyVim/commit/9f2cc302463e3be0ca3a42845c0fc34e49e75bca))
* rename `+a` which-key group to `ai`. Fixes [#3392](https://github.com/LazyVim/LazyVim/issues/3392) ([a474aea](https://github.com/LazyVim/LazyVim/commit/a474aea1f9fcf0c7601914b1e53260067f621799))
* **rust:** let rustaceans.nvim setup rust_analyzer ([#3389](https://github.com/LazyVim/LazyVim/issues/3389)) ([3fadf6a](https://github.com/LazyVim/LazyVim/commit/3fadf6af8f4adc1788fb8adec1fd9850d12feaf8))
* **trouble:** don't enable symbols keymap when `outline.nvim` enabled ([#3408](https://github.com/LazyVim/LazyVim/issues/3408)) ([146c87c](https://github.com/LazyVim/LazyVim/commit/146c87cd786854b9225ad49ad39acbcb4b7fff0b))
* **ui:** allow to disable the trouble lualine component with `vim.g.trouble_lualine = false` ([#3391](https://github.com/LazyVim/LazyVim/issues/3391)) ([d02b73d](https://github.com/LazyVim/LazyVim/commit/d02b73d72a85d72a57c3bcf0cfaef0cd50c81c37))
* **ui:** remove old alpha.nvim warning ([abc6554](https://github.com/LazyVim/LazyVim/commit/abc6554e24ff97bfc630fe1d91827e02f826b1fa))
* **util:** make sure mason is loaded when getting package paths ([a6df15a](https://github.com/LazyVim/LazyVim/commit/a6df15a63fdeaf25895fb2d97910e3e099a95d0c))
* **vue:** correctly add plugins. See [#3401](https://github.com/LazyVim/LazyVim/issues/3401) ([e7430b0](https://github.com/LazyVim/LazyVim/commit/e7430b0776c13e9ab3f42a1b9aee84561bd07c0a))
## [12.1.0](https://github.com/LazyVim/LazyVim/compare/v12.0.0...v12.1.0) (2024-05-30)
### Features
* **copilot-chat:** add cmp integration ([2a7d163](https://github.com/LazyVim/LazyVim/commit/2a7d163a8a6de2a5ad58b240770d90e6e5947638))
* **extras:** simple extra for astro ([e7d4b39](https://github.com/LazyVim/LazyVim/commit/e7d4b397b291ec8854673e813ae67103bc75e15d))
* trouble v3 ([95d055d](https://github.com/LazyVim/LazyVim/commit/95d055dcf7bbad34f6b8aaf94d285314ceaf6f0c))
* **typescript:** vtls add select ts version ([#3366](https://github.com/LazyVim/LazyVim/issues/3366)) ([b285a46](https://github.com/LazyVim/LazyVim/commit/b285a46dfcde44aa2ab4f5acbbc4a2a18cc1f16b))
### Bug Fixes
* **clangd:** switch source/header is now leader-ch. Fixes [#3363](https://github.com/LazyVim/LazyVim/issues/3363) ([a224ef2](https://github.com/LazyVim/LazyVim/commit/a224ef2a73dd1e8b358179aab8fa36c1b6745b26))
* **extras:** show recommended languages above enabled plugins ([c4b7505](https://github.com/LazyVim/LazyVim/commit/c4b75059697a85c77e4d85e18e37ebb6f278cf2a))
* remove lazygit log gl keymap when on gitui ([#3371](https://github.com/LazyVim/LazyVim/issues/3371)) ([c2ef092](https://github.com/LazyVim/LazyVim/commit/c2ef09227ee59692f931fd7d4183759d1a82ac02))
* **root:** escape glob expressions ([7414e84](https://github.com/LazyVim/LazyVim/commit/7414e84af96941fbe74555951ca6f5a58530775d))
* **typescript:** allow easier merging of ts plugins ([cf6775a](https://github.com/LazyVim/LazyVim/commit/cf6775a959de7df314a8db1c208daed33a70f0c4))
* **typescript:** vtsls server expe settings ([#3372](https://github.com/LazyVim/LazyVim/issues/3372)) ([ae098d6](https://github.com/LazyVim/LazyVim/commit/ae098d67d6842ccc097f5a10616369b60dfe6701))
## [12.0.0](https://github.com/LazyVim/LazyVim/compare/v11.11.0...v12.0.0) (2024-05-29)
### ⚠ BREAKING CHANGES
* **typescript:** the typescript extra now uses vtsls instead of tsserver. You may want to update your lsp settings.
### Features
* **keymaps:** new keymap to toggle mazimize of current window leader-m or leader-wm ([3ace827](https://github.com/LazyVim/LazyVim/commit/3ace8277e54370c0aa3d17e61018cf039c42d69b))
* **lsp:** added leader-cR to rename the current file and to lsp rename operations ([b949dba](https://github.com/LazyVim/LazyVim/commit/b949dba489abae54ba28540da06f360d6fb2788d))
* **typescript:** added `gR` to goto file references ([38b8736](https://github.com/LazyVim/LazyVim/commit/38b8736b81870a01f4464c9dd07d545ea57b95fc))
* **typescript:** the typescript extra now uses vtsls instead of tsserver. You may want to update your lsp settings. ([fba06ce](https://github.com/LazyVim/LazyVim/commit/fba06ce9f522b91be8a342f9c028948c2733132d))
* **vscode:** added ts-comments to allow list for vscode ([0975eeb](https://github.com/LazyVim/LazyVim/commit/0975eeb9add54b1dc65f4c3874edd8e35e527099))
### Bug Fixes
* **lsp:** added support for `has` as array for lsp keymaps ([01e6718](https://github.com/LazyVim/LazyVim/commit/01e6718e034d4a66bbdecef35f12c71bbde519fe))
* **lsp:** create `gr` with `nowait=true` ([4dfd5c2](https://github.com/LazyVim/LazyVim/commit/4dfd5c2596ff427a1232e6624add093d5b4da82e))
* **lsp:** fix LazyVim's `on_file_rename` to work according to the lsp spec ([4bbeb37](https://github.com/LazyVim/LazyVim/commit/4bbeb37a18b02fc0c1bb5050dce4358b51583968))
* **lsp:** fix ts/deno both attaching ([f6bcf6f](https://github.com/LazyVim/LazyVim/commit/f6bcf6f12c9a9f5ac256b394155d8a9649c6beda))
* **lsp:** remove duplicate keymap ([8047562](https://github.com/LazyVim/LazyVim/commit/804756209e314d9bd466584e75aee37912b75223))
* **trouble_v3:** set correct lualine section background color ([a13457e](https://github.com/LazyVim/LazyVim/commit/a13457eea3edf9b409e93e0391a5c206e0260022))
## [11.11.0](https://github.com/LazyVim/LazyVim/compare/v11.10.0...v11.11.0) (2024-05-28)
### Features
* **snippets:** try to use the snippet parse to get a preview ([eb0da3c](https://github.com/LazyVim/LazyVim/commit/eb0da3c92f2aee00ce951410ec820ce2f63490d8))
### Bug Fixes
* **nvim-snippets:** no longer needed to set global_snippets ([9149358](https://github.com/LazyVim/LazyVim/commit/91493588a8580cc216ee63cdc98b4462c54b45a7))
* **snippets:** fix snippets with multiple placeholders for the same tabstop ([1b86d7b](https://github.com/LazyVim/LazyVim/commit/1b86d7b2ade1dc934165fb1de8e5a3b211bc5ee0))
* **snippets:** show actual error for failed snippet ([425dade](https://github.com/LazyVim/LazyVim/commit/425dadef72e2af17eb45faf7bf45f7d74276ad72))
## [11.10.0](https://github.com/LazyVim/LazyVim/compare/v11.9.0...v11.10.0) (2024-05-28)
### Features
* **keymaps:** add comment above/below current line with gco/gcO ([47a8736](https://github.com/LazyVim/LazyVim/commit/47a8736278d246769069dd1013560f1a122b0316))
* **lang:** add R ([#3272](https://github.com/LazyVim/LazyVim/issues/3272)) ([80c9dca](https://github.com/LazyVim/LazyVim/commit/80c9dcaabe97a2e07d4fbc060820d8eb3ae6a044))
* **lsp:** config option to exclude certain filetypes from inlay hints. Closes [#3202](https://github.com/LazyVim/LazyVim/issues/3202) ([e68ff68](https://github.com/LazyVim/LazyVim/commit/e68ff6897eb8e90ec08f7400d3271a8b4fb1da1e))
* **scala-extra:** Use noice for progress and add minimal keybinding ([#3348](https://github.com/LazyVim/LazyVim/issues/3348)) ([de57894](https://github.com/LazyVim/LazyVim/commit/de5789415855eafa24f399ee11a5e96bee7c6f9e))
* **snippets:** re-number tabstops for invalid snippets ([cf43748](https://github.com/LazyVim/LazyVim/commit/cf4374867d39b590f1add8c654dbb2d3578cf24f))
### Bug Fixes
* **copilot-chat:** enhanced chat view is now merged upstream, so update your plugins! ([08481c2](https://github.com/LazyVim/LazyVim/commit/08481c2c9272b8863611d5f3e79876674bfc570e))
* **nvim-snippets:** also enable for tsx/jsx files ([025ba33](https://github.com/LazyVim/LazyVim/commit/025ba33dc3e7899b26233f05cb650dbecb234441))
* **nvim-snippets:** load js snippets for ts. See [#3344](https://github.com/LazyVim/LazyVim/issues/3344) ([99f0a1c](https://github.com/LazyVim/LazyVim/commit/99f0a1cb40cbfc099503bfa05fbd6c26370cada3))
* **nvim-snippets:** remove extra filetypes since thats no longer needed with merged PR ([a6e6d4d](https://github.com/LazyVim/LazyVim/commit/a6e6d4dabd60ab12546f56989811e58b19efb5a1))
## [11.9.0](https://github.com/LazyVim/LazyVim/compare/v11.8.0...v11.9.0) (2024-05-27)
### Features
* **copilot-chat:** enhanced rendering of the chat window ([a23e8c1](https://github.com/LazyVim/LazyVim/commit/a23e8c15f50a176f0decf054ecbfc38c7570b9b0))
* **copilot-chat:** make keymaps work in visual mode ([2695fc7](https://github.com/LazyVim/LazyVim/commit/2695fc7dfc9972da9c3d7e1d3b4a138f54f1dcbb))
### Bug Fixes
* **copilot-chat:** clear -&gt; reset ([02b240c](https://github.com/LazyVim/LazyVim/commit/02b240cea56a5547f2b0729e09decfc228475c8b))
* **edgy:** load edgy spec early ([163f7ea](https://github.com/LazyVim/LazyVim/commit/163f7ea3036caf48eed9e9c7b0da8680475612a7))
* **lsp:** double check for documentHighlight. See [#3246](https://github.com/LazyVim/LazyVim/issues/3246) ([0a63734](https://github.com/LazyVim/LazyVim/commit/0a63734b783509407530eae789258fcf9a6f2219))
* **terminal:** make `gf` behave. Fixes [#3335](https://github.com/LazyVim/LazyVim/issues/3335) ([eb1c04b](https://github.com/LazyVim/LazyVim/commit/eb1c04bd31d518377538ac228788b6a0be194c1b))
* **typescript:** invalid value in inlayHints options ([#3331](https://github.com/LazyVim/LazyVim/issues/3331)) ([54d7cea](https://github.com/LazyVim/LazyVim/commit/54d7cea30567577bf926765e9282d7736e951941))
## [11.8.0](https://github.com/LazyVim/LazyVim/compare/v11.7.0...v11.8.0) (2024-05-27)
### Features
* **extras:** added extra for CopilotChat.nvim ([4678552](https://github.com/LazyVim/LazyVim/commit/46785526a63b401d812de79fbbecca26414dc8e8))
* **git:** Change Commit Log to use Lazygit ([#2959](https://github.com/LazyVim/LazyVim/issues/2959)) ([9ccdbf6](https://github.com/LazyVim/LazyVim/commit/9ccdbf644cc6f38ade7fdd7e554e8da8b38091ac))
### Bug Fixes
* **lang/rust:** Remove `rust-analyzer` from `nvim-lspconfig` ([#2755](https://github.com/LazyVim/LazyVim/issues/2755)) ([f48d55a](https://github.com/LazyVim/LazyVim/commit/f48d55a653cc829e7dfecc3c01bf1ccbdf337257))
* **laygit:** normalize paths. Fixes [#3327](https://github.com/LazyVim/LazyVim/issues/3327) ([dbed614](https://github.com/LazyVim/LazyVim/commit/dbed614655fdf13436654356c0ba156d45ee7cc4))
* **laygit:** use correct .git root for git blame ([d23e857](https://github.com/LazyVim/LazyVim/commit/d23e8572e8ccc96b686ef8187aadf56ad47edd67))
* **rust:** show error when rust-analyzer not found ([d3500a4](https://github.com/LazyVim/LazyVim/commit/d3500a4a33ab87c6225d991302a72012c54b26fe))
* **snippet:** always use top-level snippet session. Fixes [#3199](https://github.com/LazyVim/LazyVim/issues/3199) ([5391174](https://github.com/LazyVim/LazyVim/commit/53911748ddc7f92793c6fec6348a9cde32159ef3))
## [11.7.0](https://github.com/LazyVim/LazyVim/compare/v11.6.1...v11.7.0) (2024-05-26)
### Features
* lazyrc files are now a lazy.nvim feature ([3a30070](https://github.com/LazyVim/LazyVim/commit/3a30070a4cd4465699d1fdd384d95bdb9935376b))
### Bug Fixes
* **illuminate:** s/enabed/enabled ([#3313](https://github.com/LazyVim/LazyVim/issues/3313)) ([c9ab822](https://github.com/LazyVim/LazyVim/commit/c9ab8224f54fb6e93050fab1043b9d1efb917c23))
* **lsp:** added a-n, a-p for document highlights and cycling. Closes [#3320](https://github.com/LazyVim/LazyVim/issues/3320) ([b3373f3](https://github.com/LazyVim/LazyVim/commit/b3373f3428f8ded19f8162a46bf9f2784299b43b))
* **lspconfig:** make `opts` a function ([#3311](https://github.com/LazyVim/LazyVim/issues/3311)) ([7aa3706](https://github.com/LazyVim/LazyVim/commit/7aa37064a2421f044c61d4baf42f71a923fab94b))
* **lsp:** correct previous reference keymap description ([#3314](https://github.com/LazyVim/LazyVim/issues/3314)) ([cdff9de](https://github.com/LazyVim/LazyVim/commit/cdff9de17226701f37069744a402b7afd9942f66))
* **lsp:** properly get buffer for dynamic capabilities ([#3315](https://github.com/LazyVim/LazyVim/issues/3315)) ([07a1371](https://github.com/LazyVim/LazyVim/commit/07a137199cde87f089776b3f992bd9ed08889cac))
## [11.6.1](https://github.com/LazyVim/LazyVim/compare/v11.6.0...v11.6.1) (2024-05-23)
### Bug Fixes
* **lsp:** use proper buffer for dynamic capabilities. Fixes [#3246](https://github.com/LazyVim/LazyVim/issues/3246) ([10ed308](https://github.com/LazyVim/LazyVim/commit/10ed3082a415b525628dfaebdcd007c7e96a5b87))
## [11.6.0](https://github.com/LazyVim/LazyVim/compare/v11.5.0...v11.6.0) (2024-05-23)
### Features
* **markdown:** add formatter for mdx ([ae6d8f1](https://github.com/LazyVim/LazyVim/commit/ae6d8f1a34fff49f9f1abf9fdd8a559c95b85cf3))
* **markdown:** configure conform for markdown files ([#2308](https://github.com/LazyVim/LazyVim/issues/2308)) ([9eec03d](https://github.com/LazyVim/LazyVim/commit/9eec03d890f7846e6f47e12ebbe369c7177fd5f1))
* **telescope:** add telescope jumplist keymap ([#3268](https://github.com/LazyVim/LazyVim/issues/3268)) ([79608fb](https://github.com/LazyVim/LazyVim/commit/79608fbc4fe7d5fbd2d238e8d8ebfce7d576b7c2))
### Bug Fixes
* **lsp:** only enableinlay hints for when buffer is an actual file. See [#3284](https://github.com/LazyVim/LazyVim/issues/3284) ([46cf534](https://github.com/LazyVim/LazyVim/commit/46cf5347b5649e856a69b9f52ccad8a671ddefc6))
* **python:** extras.lang.python to enable venv select keys on ft ([#3280](https://github.com/LazyVim/LazyVim/issues/3280)) ([f9b3137](https://github.com/LazyVim/LazyVim/commit/f9b31372aef9f1f862bf24879ba388f0d89c2349))
* set markdown for LICENSE file ([#3276](https://github.com/LazyVim/LazyVim/issues/3276)) ([1eea516](https://github.com/LazyVim/LazyVim/commit/1eea51606e1ec1035c440a4ca9b3eab053337a7d))
## [11.5.0](https://github.com/LazyVim/LazyVim/compare/v11.4.1...v11.5.0) (2024-05-21)
### Features
* **comments:** use ts-comments.nvim instead of nvim-ts-context-commentstring on Neovim 0.10 ([8ba7c64](https://github.com/LazyVim/LazyVim/commit/8ba7c64a7da9e46f2ac601919508803824208935))
* **telescope:** add quickfix and telescope keymaps ([#3077](https://github.com/LazyVim/LazyVim/issues/3077)) ([ab4e57a](https://github.com/LazyVim/LazyVim/commit/ab4e57a4bfe6107c21a25450292ef69537a2b37b))
### Bug Fixes
* **cmp:** fix cmp's broken snippet parsing functionality. Fixes [#3266](https://github.com/LazyVim/LazyVim/issues/3266) ([2bae438](https://github.com/LazyVim/LazyVim/commit/2bae438570aa96904836e56d8dad7f33eb3204ee))
* **lsp:** sometimes lsp client is not fully initialized and doesnt yet have client.supports_method on 0.9.5. Fixes [#3263](https://github.com/LazyVim/LazyVim/issues/3263) ([8c94842](https://github.com/LazyVim/LazyVim/commit/8c94842b4a613995bf4c0c79febcd74c310439d0))
* **neo-tree:** better icons for git staged/unstaged ([e46dd4e](https://github.com/LazyVim/LazyVim/commit/e46dd4e9b2ac68a5058447ef73b413605d15ae62))
* **nvim-snippets:** enable global friendly-snippets. See [#3240](https://github.com/LazyVim/LazyVim/issues/3240) ([55b07de](https://github.com/LazyVim/LazyVim/commit/55b07dee21ee5306624e16dd90c2b3c9c0f3ddde))
* **snippets:** fixes custom snippets. use my branch till nvim-snippets PR is merged. Fixes [#3240](https://github.com/LazyVim/LazyVim/issues/3240) ([cb1e1b9](https://github.com/LazyVim/LazyVim/commit/cb1e1b9c82b405fa277f1869cd04dcd9c4507412))
* **snippets:** make friendly snippets a dep of nvim-snippets ([d73397c](https://github.com/LazyVim/LazyVim/commit/d73397c4aaac74d95970ac06caffa25abd7c2af4))
* **snippets:** my nvim-snippets PR is merged, so remove work-around. That was quick :) ([027d6bc](https://github.com/LazyVim/LazyVim/commit/027d6bc2e896d453153f48a8c15db2a627698dc8))
## [11.4.1](https://github.com/LazyVim/LazyVim/compare/v11.4.0...v11.4.1) (2024-05-20)
### Bug Fixes
* **java:** properly pass settings to jdtls ([8e67bb1](https://github.com/LazyVim/LazyVim/commit/8e67bb124009e0dbf29f8e78d701d07756670278))
## [11.4.0](https://github.com/LazyVim/LazyVim/compare/v11.3.2...v11.4.0) (2024-05-20)

@ -1,4 +1,4 @@
*LazyVim.txt* For Neovim >= 0.9.0 Last change: 2024 May 20
*LazyVim.txt* For Neovim >= 0.9.0 Last change: 2024 June 01
==============================================================================
Table of Contents *LazyVim-table-of-contents*

@ -132,7 +132,7 @@ local defaults = {
}
M.json = {
version = 4,
version = 6,
data = {
version = nil, ---@type string?
news = {}, ---@type table<string, string>

@ -75,6 +75,10 @@ map("n", "<leader>K", "<cmd>norm! K<cr>", { desc = "Keywordprg" })
map("v", "<", "<gv")
map("v", ">", ">gv")
-- commenting
map("n", "gco", "o<esc>Vcx<esc><cmd>normal gcc<cr>fxa<bs>", { desc = "Add Comment Below" })
map("n", "gcO", "O<esc>Vcx<esc><cmd>normal gcc<cr>fxa<bs>", { desc = "Add Comment Above" })
-- lazy
map("n", "<leader>l", "<cmd>Lazy<cr>", { desc = "Lazy" })
@ -136,6 +140,10 @@ map("n", "<leader>gf", function()
LazyVim.lazygit({args = { "-f", vim.trim(git_path) }})
end, { desc = "Lazygit Current File History" })
map("n", "<leader>gl", function()
LazyVim.lazygit({ args = { "log" } })
end, { desc = "Lazygit Log" })
-- quit
map("n", "<leader>qq", "<cmd>qa<cr>", { desc = "Quit All" })
@ -169,6 +177,8 @@ map("n", "<leader>w-", "<C-W>s", { desc = "Split Window Below", remap = true })
map("n", "<leader>w|", "<C-W>v", { desc = "Split Window Right", remap = true })
map("n", "<leader>-", "<C-W>s", { desc = "Split Window Below", remap = true })
map("n", "<leader>|", "<C-W>v", { desc = "Split Window Right", remap = true })
map("n", "<leader>wm", function() LazyVim.toggle.maximize() end, { desc = "Maximize Toggle" })
map("n", "<leader>m", function() LazyVim.toggle.maximize() end, { desc = "Maximize Toggle" })
-- tabs
map("n", "<leader><tab>l", "<cmd>tablast<cr>", { desc = "Last Tab" })

@ -28,6 +28,9 @@ vim.g.lazygit_config = true
-- Hide deprecation warnings
vim.g.deprecation_warnings = false
-- Show the current document symbols location from Trouble in lualine
vim.g.trouble_lualine = true
local opt = vim.opt
opt.autowrite = true -- Enable auto write

@ -71,6 +71,16 @@ return {
for _, source in ipairs(opts.sources) do
source.group_index = source.group_index or 1
end
local parse = require("cmp.utils.snippet").parse
require("cmp.utils.snippet").parse = function(input)
local ok, ret = pcall(parse, input)
if ok then
return ret
end
return LazyVim.cmp.snippet_preview(input)
end
local cmp = require("cmp")
cmp.setup(opts)
cmp.event:on("confirm_done", function(event)
@ -89,8 +99,13 @@ return {
and {
"nvim-cmp",
dependencies = {
{ "rafamadriz/friendly-snippets" },
{ "garymjr/nvim-snippets", opts = { friendly_snippets = true } },
{
"garymjr/nvim-snippets",
opts = {
friendly_snippets = true,
},
dependencies = { "rafamadriz/friendly-snippets" },
},
},
opts = function(_, opts)
opts.snippet = {
@ -150,22 +165,10 @@ return {
-- comments
{
"JoosepAlviste/nvim-ts-context-commentstring",
lazy = true,
opts = {
enable_autocmd = false,
},
init = function()
if vim.fn.has("nvim-0.10") == 1 then
vim.schedule(function()
local get_option = vim.filetype.get_option
vim.filetype.get_option = function(filetype, option)
return option == "commentstring" and require("ts_context_commentstring.internal").calculate_commentstring()
or get_option(filetype, option)
end
end)
end
end,
"folke/ts-comments.nvim",
event = "VeryLazy",
opts = {},
enabled = vim.fn.has("nvim-0.10") == 1,
},
{
import = "lazyvim.plugins.extras.coding.mini-comment",

@ -96,6 +96,12 @@ return {
expander_expanded = "",
expander_highlight = "NeoTreeExpander",
},
git_status = {
symbols = {
unstaged = "󰄱",
staged = "󰱒",
},
},
},
},
config = function(_, opts)
@ -197,11 +203,14 @@ return {
{ "<leader>sG", LazyVim.telescope("live_grep", { cwd = false }), desc = "Grep (cwd)" },
{ "<leader>sh", "<cmd>Telescope help_tags<cr>", desc = "Help Pages" },
{ "<leader>sH", "<cmd>Telescope highlights<cr>", desc = "Search Highlight Groups" },
{ "<leader>sj", "<cmd>Telescope jumplist<cr>", desc = "Jumplist" },
{ "<leader>sk", "<cmd>Telescope keymaps<cr>", desc = "Key Maps" },
{ "<leader>sl", "<cmd>Telescope loclist<cr>", desc = "Location List" },
{ "<leader>sM", "<cmd>Telescope man_pages<cr>", desc = "Man Pages" },
{ "<leader>sm", "<cmd>Telescope marks<cr>", desc = "Jump to Mark" },
{ "<leader>so", "<cmd>Telescope vim_options<cr>", desc = "Options" },
{ "<leader>sR", "<cmd>Telescope resume<cr>", desc = "Resume" },
{ "<leader>sq", "<cmd>Telescope quickfix<cr>", desc = "Quickfix List" },
{ "<leader>sw", LazyVim.telescope("grep_string", { word_match = "-w" }), desc = "Word (Root Dir)" },
{ "<leader>sW", LazyVim.telescope("grep_string", { cwd = false, word_match = "-w" }), desc = "Word (cwd)" },
{ "<leader>sw", LazyVim.telescope("grep_string"), mode = "v", desc = "Selection (Root Dir)" },
@ -229,12 +238,7 @@ return {
opts = function()
local actions = require("telescope.actions")
local open_with_trouble = function(...)
return require("trouble.providers.telescope").open_with_trouble(...)
end
local open_selected_with_trouble = function(...)
return require("trouble.providers.telescope").open_selected_with_trouble(...)
end
local open_with_trouble = require("trouble.sources.telescope").open
local find_files_no_ignore = function()
local action_state = require("telescope.actions.state")
local line = action_state.get_current_line()
@ -266,7 +270,7 @@ return {
mappings = {
i = {
["<c-t>"] = open_with_trouble,
["<a-t>"] = open_selected_with_trouble,
["<a-t>"] = open_with_trouble,
["<a-i>"] = find_files_no_ignore,
["<a-h>"] = find_files_with_hidden,
["<C-Down>"] = actions.cycle_history_next,
@ -415,15 +419,21 @@ return {
cmd = { "TroubleToggle", "Trouble" },
opts = { use_diagnostic_signs = true },
keys = {
{ "<leader>xx", "<cmd>TroubleToggle document_diagnostics<cr>", desc = "Document Diagnostics (Trouble)" },
{ "<leader>xX", "<cmd>TroubleToggle workspace_diagnostics<cr>", desc = "Workspace Diagnostics (Trouble)" },
{ "<leader>xL", "<cmd>TroubleToggle loclist<cr>", desc = "Location List (Trouble)" },
{ "<leader>xQ", "<cmd>TroubleToggle quickfix<cr>", desc = "Quickfix List (Trouble)" },
{ "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>", desc = "Diagnostics (Trouble)" },
{ "<leader>xX", "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", desc = "Buffer Diagnostics (Trouble)" },
{ "<leader>cs", "<cmd>Trouble symbols toggle focus=false<cr>", desc = "Symbols (Trouble)" },
{
"<leader>cS",
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
desc = "LSP references/definitions/... (Trouble)",
},
{ "<leader>xL", "<cmd>Trouble loclist toggle<cr>", desc = "Location List (Trouble)" },
{ "<leader>xQ", "<cmd>Trouble qflist toggle<cr>", desc = "Quickfix List (Trouble)" },
{
"[q",
function()
if require("trouble").is_open() then
require("trouble").previous({ skip_groups = true, jump = true })
require("trouble").prev({ skip_groups = true, jump = true })
else
local ok, err = pcall(vim.cmd.cprev)
if not ok then

@ -0,0 +1,125 @@
return {
{
"CopilotC-Nvim/CopilotChat.nvim",
branch = "canary",
cmd = "CopilotChat",
opts = function()
local user = vim.env.USER or "User"
user = user:sub(1, 1):upper() .. user:sub(2)
return {
model = "gpt-4",
auto_insert_mode = true,
show_help = true,
question_header = "" .. user .. " ",
answer_header = " Copilot ",
window = {
width = 0.4,
},
selection = function(source)
local select = require("CopilotChat.select")
return select.visual(source) or select.buffer(source)
end,
}
end,
keys = {
{
"<leader>aa",
function()
return require("CopilotChat").toggle()
end,
desc = "Toggle (CopilotChat)",
mode = { "n", "v" },
},
{
"<leader>ax",
function()
return require("CopilotChat").reset()
end,
desc = "Clear (CopilotChat)",
mode = { "n", "v" },
},
{
"<leader>aq",
function()
local input = vim.fn.input("Quick Chat: ")
if input ~= "" then
require("CopilotChat").ask(input)
end
end,
desc = "Quick Chat (CopilotChat)",
mode = { "n", "v" },
},
},
config = function(_, opts)
local chat = require("CopilotChat")
require("CopilotChat.integrations.cmp").setup()
vim.api.nvim_create_autocmd("BufEnter", {
pattern = "copilot-chat",
callback = function()
vim.opt_local.relativenumber = false
vim.opt_local.number = false
end,
})
chat.setup(opts)
end,
},
{
"folke/which-key.nvim",
optional = true,
opts = {
defaults = {
["<leader>a"] = { name = "+ai" },
},
},
},
-- Telescope integration
{
"nvim-telescope/telescope.nvim",
optional = true,
keys = {
-- Show help actions with telescope
{
"<leader>ad",
function()
local actions = require("CopilotChat.actions")
local help = actions.help_actions()
if not help then
LazyVim.warn("No diagnostics found on the current line")
return
end
require("CopilotChat.integrations.telescope").pick(help)
end,
desc = "Diagnostic Help (CopilotChat)",
mode = { "n", "v" },
},
-- Show prompts actions with telescope
{
"<leader>ap",
function()
local actions = require("CopilotChat.actions")
require("CopilotChat.integrations.telescope").pick(actions.prompt_actions())
end,
desc = "Prompt Actions (CopilotChat)",
mode = { "n", "v" },
},
},
},
-- Edgy integration
{
"folke/edgy.nvim",
optional = true,
opts = function(_, opts)
opts.right = opts.right or {}
table.insert(opts.right, {
ft = "copilot-chat",
title = "Copilot Chat",
size = { width = 50 },
})
end,
},
}

@ -10,4 +10,11 @@ return {
},
},
},
{
"JoosepAlviste/nvim-ts-context-commentstring",
lazy = true,
opts = {
enable_autocmd = false,
},
},
}

@ -49,6 +49,14 @@ return {
},
},
{
"folke/trouble.nvim",
optional = true,
keys = {
{ "<leader>cs", false },
},
},
-- Telescope integration
{
"nvim-telescope/telescope.nvim",

@ -40,6 +40,6 @@ return {
},
{
"neovim/nvim-lspconfig",
opts = { document_highlight = { enabed = false } },
opts = { document_highlight = { enabled = false } },
},
}

@ -1,4 +1,12 @@
return {
-- Disable `<leader>cs` keymap so it doesn't conflict with `outline.nvim`
{
"folke/trouble.nvim",
optional = true,
keys = {
{ "<leader>cs", false },
},
},
{
"hedyhli/outline.nvim",
keys = { { "<leader>cs", "<cmd>Outline<cr>", desc = "Toggle Outline" } },

@ -1,120 +0,0 @@
local Config = require("lazyvim.config")
if vim.tbl_contains(Config.json.data.extras, "lazyvim.plugins.extras.editor.trouble-v3") then
for _, other in ipairs({ "aerial", "outline" }) do
local extra = "lazyvim.plugins.extras.editor." .. other
if vim.tbl_contains(Config.json.data.extras, extra) then
other = other:gsub("^%l", string.upper)
LazyVim.error({
"**Trouble v3** includes support for document symbols.",
("You currently have the **%s** extra enabled."):format(other),
"Please disable it in your config.",
})
end
end
if vim.fn.has("nvim-0.9.2") == 0 then
LazyVim.error({
"Trouble v3 requires Neovim >= 0.9.2",
"Please update your Neovim version.",
})
return {}
end
end
return {
desc = "Trouble rewrite including document symbols and a lualine component",
recommended = true,
{
"folke/trouble.nvim",
branch = "dev",
keys = {
{ "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>", desc = "Diagnostics (Trouble)" },
{ "<leader>xX", "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", desc = "Buffer Diagnostics (Trouble)" },
{ "<leader>cs", "<cmd>Trouble symbols toggle focus=false<cr>", desc = "Symbols (Trouble)" },
{
"<leader>cS",
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
desc = "LSP references/definitions/... (Trouble)",
},
{ "<leader>xL", "<cmd>Trouble loclist toggle<cr>", desc = "Location List (Trouble)" },
{ "<leader>xQ", "<cmd>Trouble qflist toggle<cr>", desc = "Quickfix List (Trouble)" },
{
"[q",
function()
if require("trouble").is_open() then
require("trouble").prev({ skip_groups = true, jump = true })
else
local ok, err = pcall(vim.cmd.cprev)
if not ok then
vim.notify(err, vim.log.levels.ERROR)
end
end
end,
desc = "Previous Trouble/Quickfix Item",
},
},
},
-- lualine integration
{
"nvim-lualine/lualine.nvim",
optional = true,
opts = function(_, opts)
local trouble = require("trouble")
if not trouble.statusline then
LazyVim.error("You have enabled the **trouble-v3** extra,\nbut still need to update it with `:Lazy`")
return
end
local symbols = trouble.statusline({
mode = "symbols",
groups = {},
title = false,
filter = { range = true },
format = "{kind_icon}{symbol.name:Normal}",
})
table.insert(opts.sections.lualine_c, {
symbols.get,
cond = symbols.has,
})
end,
},
{
"folke/edgy.nvim",
optional = true,
opts = function(_, opts)
for _, pos in ipairs({ "top", "bottom", "left", "right" }) do
opts[pos] = opts[pos] or {}
table.insert(opts[pos], {
ft = "trouble",
filter = function(_buf, win)
return vim.w[win].trouble
and vim.w[win].trouble.position == pos
and vim.w[win].trouble.type == "split"
and vim.w[win].trouble.relative == "editor"
and not vim.w[win].trouble_preview
end,
})
end
end,
},
{
"nvim-telescope/telescope.nvim",
optional = true,
opts = function(_, opts)
local open_with_trouble = require("trouble.sources.telescope").open
return vim.tbl_deep_extend("force", opts, {
defaults = {
mappings = {
i = {
["<c-t>"] = open_with_trouble,
["<a-t>"] = open_with_trouble,
},
},
},
})
end,
},
}

@ -0,0 +1,52 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = "astro",
root = {
"astro.config.js",
"astro.config.mjs",
"astro.config.cjs",
},
})
end,
-- depends on the typescript extra
{ import = "lazyvim.plugins.extras.lang.typescript" },
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "astro" })
end
end,
},
-- LSP Servers
{
"neovim/nvim-lspconfig",
opts = {
servers = {
astro = {},
},
},
},
-- Configure tsserver plugin
{
"neovim/nvim-lspconfig",
opts = function(_, opts)
LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {
{
name = "@astrojs/ts-plugin",
location = LazyVim.get_pkg_path(
"astro-language-server",
"/node_modules/@astrojs/ts-plugin",
{ warn = false }
),
enableForWorkspaceTypeScriptVersions = true,
},
})
end,
},
}

@ -62,7 +62,7 @@ return {
-- Ensure mason installs the server
clangd = {
keys = {
{ "<leader>cR", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
{ "<leader>ch", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
},
root_dir = function(fname)
return require("lspconfig.util").root_pattern(

@ -165,6 +165,7 @@ return {
init_options = {
bundles = bundles,
},
settings = opts.settings,
-- enable CMP capabilities
capabilities = LazyVim.has("cmp-nvim-lsp") and require("cmp_nvim_lsp").default_capabilities() or nil,
}, opts.jdtls)

@ -5,6 +5,16 @@ return {
root = "README.md",
})
end,
{
"stevearc/conform.nvim",
optional = true,
opts = {
formatters_by_ft = {
["markdown"] = { { "prettierd", "prettier" }, "markdownlint", "markdown-toc" },
["markdown.mdx"] = { { "prettierd", "prettier" }, "markdownlint", "markdown-toc" },
},
},
},
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)

@ -106,8 +106,7 @@ return {
{ "<leader>dPc", function() require('dap-python').test_class() end, desc = "Debug Class", ft = "python" },
},
config = function()
local path = require("mason-registry").get_package("debugpy"):get_install_path()
require("dap-python").setup(path .. "/venv/bin/python")
require("dap-python").setup(LazyVim.get_pkg_path("debugpy", "/venv/bin/python"))
end,
},
},
@ -127,7 +126,7 @@ return {
},
})
end,
keys = { { "<leader>cv", "<cmd>:VenvSelect<cr>", desc = "Select VirtualEnv" } },
keys = { { "<leader>cv", "<cmd>:VenvSelect<cr>", desc = "Select VirtualEnv", ft = "python" } },
},
{
"hrsh7th/nvim-cmp",

@ -0,0 +1,93 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = "r",
root = { "*.R", "*.Rmd", "*qmd" },
})
end,
{
"R-nvim/R.nvim",
lazy = false,
opts = {
-- Create a table with the options to be passed to setup()
R_args = { "--quiet", "--no-save" },
hook = {
on_filetype = function()
-- This function will be called at the FileType event
-- of files supported by R.nvim. This is an
-- opportunity to create mappings local to buffers.
vim.keymap.set("n", "<Enter>", "<Plug>RDSendLine", { buffer = true })
vim.keymap.set("v", "<Enter>", "<Plug>RSendSelection", { buffer = true })
-- Increase the width of which-key to handle the longer r-nvim descriptions
local wk = require("which-key")
-- Workaround from https://github.com/folke/which-key.nvim/issues/514#issuecomment-1987286901
wk.register({
["<localleader>"] = {
a = { name = "+(a)ll", ["🚫"] = "which_key_ignore" },
b = { name = "+(b)etween marks", ["🚫"] = "which_key_ignore" },
c = { name = "+(c)hunks", ["🚫"] = "which_key_ignore" },
f = { name = "+(f)unctions", ["🚫"] = "which_key_ignore" },
g = { name = "+(g)oto", ["🚫"] = "which_key_ignore" },
k = { name = "+(k)nit", ["🚫"] = "which_key_ignore" },
p = { name = "+(p)aragraph", ["🚫"] = "which_key_ignore" },
q = { name = "+(q)uarto", ["🚫"] = "which_key_ignore" },
r = { name = "+(r) general", ["🚫"] = "which_key_ignore" },
s = { name = "+(s)plit or (s)end", ["🚫"] = "which_key_ignore" },
t = { name = "+(t)erminal", ["🚫"] = "which_key_ignore" },
v = { name = "+(v)iew", ["🚫"] = "which_key_ignore" },
},
})
end,
},
pdfviewer = ""
},
config = function(_, opts)
require("r").setup(opts)
require("r.pdf.generic").open = vim.ui.open
end,
},
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "R-nvim/cmp-r" },
opts = function(_, opts)
opts.sources = opts.sources or {}
table.insert(opts.sources, { name = "cmp_r" })
end,
},
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "markdown", "markdown_inline", "r", "rnoweb" })
end
end,
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
r_language_server = {
root_dir = function(fname)
return require("lspconfig.util").root_pattern("DESCRIPTION", "NAMESPACE", ".Rbuildignore")(fname)
or require("lspconfig.util").find_git_ancestor(fname)
or vim.loop.os_homedir()
end,
},
},
},
},
{
"nvim-neotest/neotest",
optional = true,
dependencies = {
"shunsambongi/neotest-testthat",
},
opts = {
adapters = {
["neotest-testthat"] = {},
},
},
},
}

@ -90,6 +90,12 @@ return {
},
config = function(_, opts)
vim.g.rustaceanvim = vim.tbl_deep_extend("keep", vim.g.rustaceanvim or {}, opts or {})
if vim.fn.executable("rust-analyzer") == 0 then
LazyVim.error(
"**rust-analyzer** not found in PATH, please install it.\nhttps://rust-analyzer.github.io/",
{ title = "rustaceanvim" }
)
end
end,
},
@ -98,7 +104,6 @@ return {
"neovim/nvim-lspconfig",
opts = {
servers = {
rust_analyzer = {},
taplo = {
keys = {
{
@ -115,11 +120,6 @@ return {
},
},
},
setup = {
rust_analyzer = function()
return true
end,
},
},
},

@ -26,7 +26,7 @@ return {
ft = { "scala", "sbt", "java" },
init = function()
local metals_config = require("metals").bare_config()
metals_config.init_options.statusBarProvider = "on"
metals_config.init_options.statusBarProvider = "off"
metals_config.settings = {
showImplicitArguments = true,
excludedPackages = { "akka.actor.typed.javadsl", "com.github.swagger.akka.javadsl" },
@ -70,6 +70,24 @@ return {
},
}
end,
keys = {
{
"<leader>me",
function()
require("telescope").extensions.metals.commands()
end,
desc = "Metals commands",
ft = { "scala", "sbt", "java" },
},
{
"<leader>mc",
function()
require("metals").compile_cascade()
end,
desc = "Metals compile cascade",
ft = { "scala", "sbt", "java" },
},
},
},
{
"nvim-treesitter/nvim-treesitter",

@ -0,0 +1,52 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = "svelte",
root = {
"svelte.config.js",
"svelte.config.mjs",
"svelte.config.cjs",
},
})
end,
-- depends on the typescript extra
{ import = "lazyvim.plugins.extras.lang.typescript" },
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "svelte" })
end
end,
},
-- LSP Servers
{
"neovim/nvim-lspconfig",
opts = {
servers = {
svelte = {},
},
},
},
-- Configure tsserver plugin
{
"neovim/nvim-lspconfig",
opts = function(_, opts)
LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {
{
name = "typescript-svelte-plugin",
location = LazyVim.get_pkg_path(
"svelte-language-server",
"/node_modules/typescript-svelte-plugin",
{ warn = false }
),
enableForWorkspaceTypeScriptVersions = true,
},
})
end,
},
}

@ -1,14 +1,3 @@
local inlay_hints_settings = {
includeInlayEnumMemberValueHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayFunctionParameterTypeHints = true,
includeInlayParameterNameHints = "literal",
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayVariableTypeHints = false,
includeInlayVariableTypeHintsWhenTypeMatchesName = false,
}
return {
recommended = function()
return LazyVim.extras.wants({
@ -24,13 +13,12 @@ return {
})
end,
-- add typescript to treesitter
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "typescript", "tsx" })
end
"yioneko/nvim-vtsls",
lazy = true,
opts = {},
config = function(_, opts)
require("vtsls").config(opts)
end,
},
@ -40,49 +28,110 @@ return {
opts = {
-- make sure mason installs the server
servers = {
---@type lspconfig.options.tsserver
tsserver = {
enabled = false,
},
vtsls = {
-- explicitly add default filetypes, so that we can extend
-- them in related extras
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
settings = {
complete_function_calls = true,
vtsls = {
enableMoveToFileCodeAction = true,
autoUseWorkspaceTsdk = true,
experimental = {
completion = {
enableServerSideFuzzyMatch = true,
},
},
},
typescript = {
updateImportsOnFileMove = { enabled = "always" },
suggest = {
completeFunctionCalls = true,
},
inlayHints = {
enumMemberValues = { enabled = true },
functionLikeReturnTypes = { enabled = true },
parameterNames = { enabled = "literals" },
parameterTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
variableTypes = { enabled = false },
},
},
},
keys = {
{
"gD",
function()
require("vtsls").commands.goto_source_definition(0)
end,
desc = "Goto Source Definition",
},
{
"gR",
function()
require("vtsls").commands.file_references(0)
end,
desc = "File References",
},
{
"<leader>co",
function()
vim.lsp.buf.code_action({
apply = true,
context = {
only = { "source.organizeImports.ts" },
diagnostics = {},
},
})
require("vtsls").commands.organize_imports(0)
end,
desc = "Organize Imports",
},
{
"<leader>cR",
"<leader>cM",
function()
vim.lsp.buf.code_action({
apply = true,
context = {
only = { "source.removeUnused.ts" },
diagnostics = {},
},
})
require("vtsls").commands.add_missing_imports(0)
end,
desc = "Remove Unused Imports",
desc = "Add missing imports",
},
},
settings = {
typescript = {
inlayHints = inlay_hints_settings,
{
"<leader>cu",
function()
require("vtsls").commands.remove_unused_imports(0)
end,
desc = "Remove unused imports",
},
javascript = {
inlayHints = inlay_hints_settings,
{
"<leader>cD",
function()
require("vtsls").commands.fix_all(0)
end,
desc = "Fix all diagnostics",
},
completions = {
completeFunctionCalls = true,
{
"<leader>cV",
function()
require("vtsls").commands.select_ts_version(0)
end,
desc = "Select TS workspace version",
},
},
},
},
setup = {
tsserver = function()
-- disable tsserver
return true
end,
vtsls = function(_, opts)
-- copy typescript settings to javascript
opts.settings.javascript =
vim.tbl_deep_extend("force", {}, opts.settings.typescript, opts.settings.javascript or {})
end,
},
},
},
@ -109,8 +158,7 @@ return {
command = "node",
-- 💀 Make sure to update this path to point to your installation
args = {
require("mason-registry").get_package("js-debug-adapter"):get_install_path()
.. "/js-debug/src/dapDebugServer.js",
LazyVim.get_pkg_path("js-debug-adapter", "/js-debug/src/dapDebugServer.js"),
"${port}",
},
},

@ -6,6 +6,9 @@ return {
})
end,
-- depends on the typescript extra
{ import = "lazyvim.plugins.extras.lang.typescript" },
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
@ -15,37 +18,29 @@ return {
end,
},
-- Add LSP servers
{
"neovim/nvim-lspconfig",
opts = {
servers = {
volar = {},
vtsls = {},
},
},
},
-- Configure tsserver plugin
{
"neovim/nvim-lspconfig",
opts = function(_, opts)
local vue_typescript_plugin = require("mason-registry").get_package("vue-language-server"):get_install_path()
.. "/node_modules/@vue/language-server"
.. "/node_modules/@vue/typescript-plugin"
opts.servers = vim.tbl_deep_extend("force", opts.servers, {
volar = {},
-- Volar 2.0 has discontinued their "take over mode" which in previous version provided support for typescript in vue files.
-- The new approach to get typescript support involves using the typescript language server along side volar.
tsserver = {
init_options = {
plugins = {
-- Use typescript language server along with vue typescript plugin
{
name = "@vue/typescript-plugin",
location = vue_typescript_plugin,
languages = { "javascript", "typescript", "vue" },
},
},
},
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
"vue",
},
table.insert(opts.servers.vtsls.filetypes, "vue")
LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {
{
name = "@vue/typescript-plugin",
location = LazyVim.get_pkg_path("vue-language-server", "/node_modules/@vue/language-server"),
languages = { "vue" },
configNamespace = "typescript",
enableForWorkspaceTypeScriptVersions = true,
},
})
end,

@ -1,38 +0,0 @@
--[[
Enable project-specific plugin specs.
File .lazy.lua:
is read when present in the current working directory
should return a plugin spec
has to be manually trusted for each instance of the file
This extra should be the last plugin spec added to lazy.nvim
See:
:h 'exrc'
:h :trust
--]]
local filepath = vim.fn.fnamemodify(".lazy.lua", ":p")
local file = vim.secure.read(filepath)
if not file then
return {}
end
vim.api.nvim_create_autocmd("User", {
pattern = "VeryLazy",
once = true,
callback = function()
local Config = require("lazy.core.config")
local lazyrc_idx = LazyVim.plugin.extra_idx("lazyrc")
if lazyrc_idx and lazyrc_idx ~= #Config.spec.modules then
LazyVim.warn({
"The `lazyrc` extra must be the last plugin spec added to **lazy.nvim**. ",
"",
"Add `{ import = 'lazyvim.plugins.extras.lazyrc' }` to file `config.lazy`. ",
"Do not use the `LazyExtras` command. ",
}, { title = "LazyVim", once = true })
end
end,
})
return loadstring(file)()

@ -105,6 +105,19 @@ return {
end,
},
}
for _, pos in ipairs({ "top", "bottom", "left", "right" }) do
opts[pos] = opts[pos] or {}
table.insert(opts[pos], {
ft = "trouble",
filter = function(_buf, win)
return vim.w[win].trouble
and vim.w[win].trouble.position == pos
and vim.w[win].trouble.type == "split"
and vim.w[win].trouble.relative == "editor"
and not vim.w[win].trouble_preview
end,
})
end
return opts
end,
},

@ -17,7 +17,7 @@ return {
local animate = require("mini.animate")
return {
resize = {
timing = animate.gen_timing.linear({ duration = 100, unit = "total" }),
timing = animate.gen_timing.linear({ duration = 50, unit = "total" }),
},
scroll = {
timing = animate.gen_timing.linear({ duration = 150, unit = "total" }),

@ -26,6 +26,7 @@ return {
once = true,
callback = function()
pcall(vim.keymap.del, "n", "<leader>gf")
pcall(vim.keymap.del, "n", "<leader>gl")
end,
})
end,

@ -15,6 +15,7 @@ local enabled = {
"nvim-treesitter",
"nvim-treesitter-textobjects",
"nvim-ts-context-commentstring",
"ts-comments.nvim",
"vim-repeat",
"yanky.nvim",
"LazyVim",

@ -10,103 +10,113 @@ return {
"williamboman/mason-lspconfig.nvim",
},
---@class PluginLspOpts
opts = {
-- options for vim.diagnostic.config()
---@type vim.diagnostic.Opts
diagnostics = {
underline = true,
update_in_insert = false,
virtual_text = {
spacing = 4,
source = "if_many",
prefix = "",
-- this will set set the prefix to a function that returns the diagnostics icon based on the severity
-- this only works on a recent 0.10.0 build. Will be set to "●" when not supported
-- prefix = "icons",
},
severity_sort = true,
signs = {
text = {
[vim.diagnostic.severity.ERROR] = LazyVim.config.icons.diagnostics.Error,
[vim.diagnostic.severity.WARN] = LazyVim.config.icons.diagnostics.Warn,
[vim.diagnostic.severity.HINT] = LazyVim.config.icons.diagnostics.Hint,
[vim.diagnostic.severity.INFO] = LazyVim.config.icons.diagnostics.Info,
opts = function()
return {
-- options for vim.diagnostic.config()
---@type vim.diagnostic.Opts
diagnostics = {
underline = true,
update_in_insert = false,
virtual_text = {
spacing = 4,
source = "if_many",
prefix = "",
-- this will set set the prefix to a function that returns the diagnostics icon based on the severity
-- this only works on a recent 0.10.0 build. Will be set to "●" when not supported
-- prefix = "icons",
},
severity_sort = true,
signs = {
text = {
[vim.diagnostic.severity.ERROR] = LazyVim.config.icons.diagnostics.Error,
[vim.diagnostic.severity.WARN] = LazyVim.config.icons.diagnostics.Warn,
[vim.diagnostic.severity.HINT] = LazyVim.config.icons.diagnostics.Hint,
[vim.diagnostic.severity.INFO] = LazyVim.config.icons.diagnostics.Info,
},
},
},
},
-- Enable this to enable the builtin LSP inlay hints on Neovim >= 0.10.0
-- Be aware that you also will need to properly configure your LSP server to
-- provide the inlay hints.
inlay_hints = {
enabled = true,
},
-- Enable this to enable the builtin LSP code lenses on Neovim >= 0.10.0
-- Be aware that you also will need to properly configure your LSP server to
-- provide the code lenses.
codelens = {
enabled = false,
},
-- Enable lsp cursor word highlighting
document_highlight = {
enabled = true,
},
-- add any global capabilities here
capabilities = {},
-- options for vim.lsp.buf.format
-- `bufnr` and `filter` is handled by the LazyVim formatter,
-- but can be also overridden when specified
format = {
formatting_options = nil,
timeout_ms = nil,
},
-- LSP Server Settings
---@type lspconfig.options
servers = {
lua_ls = {
-- mason = false, -- set to false if you don't want this server to be installed with mason
-- Use this to add any additional keymaps
-- for specific lsp servers
---@type LazyKeysSpec[]
-- keys = {},
settings = {
Lua = {
workspace = {
checkThirdParty = false,
},
codeLens = {
enable = true,
},
completion = {
callSnippet = "Replace",
},
doc = {
privateName = { "^_" },
},
hint = {
enable = true,
setType = false,
paramType = true,
paramName = "Disable",
semicolon = "Disable",
arrayIndex = "Disable",
-- Enable this to enable the builtin LSP inlay hints on Neovim >= 0.10.0
-- Be aware that you also will need to properly configure your LSP server to
-- provide the inlay hints.
inlay_hints = {
enabled = true,
exclude = {}, -- filetypes for which you don't want to enable inlay hints
},
-- Enable this to enable the builtin LSP code lenses on Neovim >= 0.10.0
-- Be aware that you also will need to properly configure your LSP server to
-- provide the code lenses.
codelens = {
enabled = false,
},
-- Enable lsp cursor word highlighting
document_highlight = {
enabled = true,
},
-- add any global capabilities here
capabilities = {
workspace = {
fileOperations = {
didRename = true,
willRename = true,
},
},
},
-- options for vim.lsp.buf.format
-- `bufnr` and `filter` is handled by the LazyVim formatter,
-- but can be also overridden when specified
format = {
formatting_options = nil,
timeout_ms = nil,
},
-- LSP Server Settings
---@type lspconfig.options
servers = {
lua_ls = {
-- mason = false, -- set to false if you don't want this server to be installed with mason
-- Use this to add any additional keymaps
-- for specific lsp servers
---@type LazyKeysSpec[]
-- keys = {},
settings = {
Lua = {
workspace = {
checkThirdParty = false,
},
codeLens = {
enable = true,
},
completion = {
callSnippet = "Replace",
},
doc = {
privateName = { "^_" },
},
hint = {
enable = true,
setType = false,
paramType = true,
paramName = "Disable",
semicolon = "Disable",
arrayIndex = "Disable",
},
},
},
},
},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
setup = {
-- example to setup with typescript.nvim
-- tsserver = function(_, opts)
-- require("typescript").setup({ server = opts })
-- return true
-- end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
setup = {
-- example to setup with typescript.nvim
-- tsserver = function(_, opts)
-- require("typescript").setup({ server = opts })
-- return true
-- end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
}
end,
---@param opts PluginLspOpts
config = function(_, opts)
if LazyVim.has("neoconf.nvim") then
@ -141,7 +151,13 @@ return {
-- inlay hints
if opts.inlay_hints.enabled then
LazyVim.lsp.on_supports_method("textDocument/inlayHint", function(client, buffer)
LazyVim.toggle.inlay_hints(buffer, true)
if
vim.api.nvim_buf_is_valid(buffer)
and vim.bo[buffer].buftype == ""
and not vim.tbl_contains(opts.inlay_hints.exclude, vim.bo[buffer].filetype)
then
LazyVim.toggle.inlay_hints(buffer, true)
end
end)
end
@ -209,11 +225,13 @@ return {
for server, server_opts in pairs(servers) do
if server_opts then
server_opts = server_opts == true and {} or server_opts
-- run manual setup if mason=false or if this is a server that cannot be installed with mason-lspconfig
if server_opts.mason == false or not vim.tbl_contains(all_mslp_servers, server) then
setup(server)
elseif server_opts.enabled ~= false then
ensure_installed[#ensure_installed + 1] = server
if server_opts.enabled ~= false then
-- run manual setup if mason=false or if this is a server that cannot be installed with mason-lspconfig
if server_opts.mason == false or not vim.tbl_contains(all_mslp_servers, server) then
setup(server)
else
ensure_installed[#ensure_installed + 1] = server
end
end
end
end
@ -229,9 +247,9 @@ return {
})
end
if LazyVim.lsp.get_config("denols") and LazyVim.lsp.get_config("tsserver") then
if LazyVim.lsp.is_enabled("denols") and LazyVim.lsp.is_enabled("vtsls") then
local is_deno = require("lspconfig.util").root_pattern("deno.json", "deno.jsonc")
LazyVim.lsp.disable("tsserver", is_deno)
LazyVim.lsp.disable("vtsls", is_deno)
LazyVim.lsp.disable("denols", function(root_dir)
return not is_deno(root_dir)
end)
@ -266,19 +284,15 @@ return {
})
end, 100)
end)
local function ensure_installed()
mr.refresh(function()
for _, tool in ipairs(opts.ensure_installed) do
local p = mr.get_package(tool)
if not p:is_installed() then
p:install()
end
end
end
if mr.refresh then
mr.refresh(ensure_installed)
else
ensure_installed()
end
end)
end,
},
}

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