Compare commits

...

623 commits

Author SHA1 Message Date
folke
459a4c3b10 chore(build): auto-generated vimdocs 2026-06-02 13:35:54 +00:00
github-actions[bot]
c10948c50b
chore(main): release 16.0.0 (#7128)
🤖 I have created a release *beep* *boop*
---


##
[16.0.0](https://github.com/LazyVim/LazyVim/compare/v15.15.0...v16.0.0)
(2026-05-27)


### ⚠ BREAKING CHANGES

* **refactoring:** conform to upstream breaking changes on 2.0 branch
([#7124](https://github.com/LazyVim/LazyVim/issues/7124))

### Features

* **keymaps:** added leader+bi to delete invisible buffers
([58089db](58089db8b1))


### Bug Fixes

* **autocmds:** correct version check for nvim-0.13
([#7184](https://github.com/LazyVim/LazyVim/issues/7184))
([6eb16e7](6eb16e730d))
* **autocmds:** replace `vim.hl.on_yank` with `vim.hl.hl_op` for
`nvim-0.13` and above
([#7171](https://github.com/LazyVim/LazyVim/issues/7171))
([b30c031](b30c0312ea))
* **go:** use semanticTokens if setup in gopls config init_options
([#7172](https://github.com/LazyVim/LazyVim/issues/7172))
([b830a52](b830a523b5))
* **hipatterns:** don't color #add (use it too often as a private
function in TS)
([dc6240f](dc6240f4d5))
* **oxc:** prefer top-level oxlint root_dir in monorepos
([d840410](d840410047))
* **refactoring:** conform to upstream breaking changes on 2.0 branch
([#7124](https://github.com/LazyVim/LazyVim/issues/7124))
([d926923](d92692309c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-02 15:34:30 +02:00
folke
35f56b9189 chore(build): auto-generated vimdocs 2026-05-27 13:04:26 +00:00
Iordanis Petkakis
6eb16e730d
fix(autocmds): correct version check for nvim-0.13 (#7184)
## Description
Fix the check for `nvim-0.13` for autocmd TextYankPost
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-05-27 13:44:51 +02:00
Thomas Vandal
b30c0312ea
fix(autocmds): replace vim.hl.on_yank with vim.hl.hl_op for nvim-0.13 and above (#7171)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

A recent PR (https://github.com/neovim/neovim/pull/39777) replaced
`vim.hl.on_yank` with a more generic `vim.hl.hl_op` and deprecated the
former.

This PR simply checks for `nvim-0.13` support and uses the new interface
if available.

This removes a deprecation warning and will avoid an error when
`on_yank` gets deprecated in the nvim 0.14 release.

Thanks!

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-05-26 15:27:06 +02:00
folke
c429ebb628 chore(build): auto-generated vimdocs 2026-05-26 13:26:59 +00:00
David Desmarais-Michaud
b830a523b5
fix(go): use semanticTokens if setup in gopls config init_options (#7172)
## Description

Since upgrading to the go lsp (gopls) to version 0.22.0 we receive the
following error on load of any Go file:

```
...nvim/lazy/LazyVim/lua/lazyvim/plugins/extras/lang/go.lua:64: attempt to index local 'semantic' (a nil value)
```

This PR adds a check to avoid this error.

If this causes degraded functionality, or a different fix around
semantic tokens is needed, I do not know.

## Screenshots

<img width="1423" height="219" alt="image"
src="https://github.com/user-attachments/assets/a4df1344-3e8f-4f29-9c8c-1257efed22b3"
/>

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-05-26 15:25:50 +02:00
folke
fa88241e2f chore(build): auto-generated vimdocs 2026-05-20 17:38:08 +00:00
Folke Lemaitre
58089db8b1
feat(keymaps): added leader+bi to delete invisible buffers 2026-05-20 19:36:43 +02:00
folke
2dc527e511 chore(build): auto-generated vimdocs 2026-05-18 10:33:59 +00:00
Folke Lemaitre
dc6240f4d5
fix(hipatterns): don't color #add (use it too often as a private function in TS) 2026-05-18 12:32:49 +02:00
folke
7c1301b895 chore(build): auto-generated vimdocs 2026-04-26 18:17:07 +00:00
Folke Lemaitre
d840410047
fix(oxc): prefer top-level oxlint root_dir in monorepos 2026-04-26 20:15:56 +02:00
folke
cdc47ae615 chore(build): auto-generated vimdocs 2026-04-22 09:33:58 +00:00
Iordanis Petkakis
d92692309c
fix(refactoring)!: conform to upstream breaking changes on 2.0 branch (#7124)
## Description
`refactoring.nvim` had a new 2.0 release with some breaking changes.
Adjust the LazyVim Extra.

Left `opts` with everything default as there've been changes there as
well, but I don't use the plugin.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #7122
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-04-22 11:32:53 +02:00
github-actions[bot]
83d90f339d
chore(main): release 15.15.0 (#7034)
🤖 I have created a release *beep* *boop*
---


##
[15.15.0](https://github.com/LazyVim/LazyVim/compare/v15.14.0...v15.15.0)
(2026-04-02)


### Features

* **biome:** enable biome lsp for linting
([b2830cf](b2830cfcc5))
* **biome:** move biome extra from formatting.biome -&gt;
lang.typescript.biome
([242f098](242f0983de))
* **lazydev:** make lspconfig types available on word
`lspconfig.settings`
([36f5947](36f594716b))
* **lsp:** auto add organizeImport keymaps for LSPs that support it
([e54689e](e54689ebdc))
* **oxc:** added oxc extra for oxfmt and oxlint
([4e9eac5](4e9eac57ab))
* **sidekick:** ctrl+. focuses sidekick, but when already inside
sidekick, hides it
([50159fe](50159fe344))
* **typescript:** set `vim.g.lazyvim_ts_lsp = "tsgo"` to use the much
faster experimental lsp server
([e6f26f0](e6f26f0f23))
* **typescript:** split typescript extra in main, vtsls and tsgo
([9029d92](9029d928d2))


### Bug Fixes

* **biome:** added recommendation when root has biome config file
([ad25b31](ad25b31e51))
* **biome:** biome mason install is no longer needed
([5450006](5450006ccd))
* **biome:** use biome-check in conform that also fixes linting issues
and sorts imports
([954d874](954d8746e5))
* **lsp:** sort server names before setting keymaps
([6d0da34](6d0da34de9))
* **oxc:** added `fixKind = "all"`
([85afbbc](85afbbc94b))
* **r:** recommend for *.qmd instead of *qmd files
([3b3d649](3b3d649333))
* **terminal:** use Snacks.terminal.focus() for &lt;C-/&gt; mapping
([96f4f18](96f4f18d7d)),
closes [#7048](https://github.com/LazyVim/LazyVim/issues/7048)
* **treesitter:** `nvim-treesitter` on longer support nvim-0.11, so pin
when needed. Fixes
[#7092](https://github.com/LazyVim/LazyVim/issues/7092)
([ef272ff](ef272ff7cc))
* **tsgo:** disable inlayHints.functionLikeReturnTypes by default. Too
noisy
([8bcb620](8bcb620802))
* **tsgo:** remove some noisy inlay hints
([d07070b](d07070bf2f))
* **typescript:** remove keymaps for non-existing code actions
([53f4eab](53f4eabd77))
* **util.plugin:** single imports for extras
([1b4be53](1b4be534f1))


### Performance Improvements

* **extras:** never load nested extras
([8764dfb](8764dfbc8f))


### Reverts

* **lsp:** revert changes for
[#6456](https://github.com/LazyVim/LazyVim/issues/6456). Closes
[#6779](https://github.com/LazyVim/LazyVim/issues/6779)
([d0fe8c8](d0fe8c896f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-02 10:13:57 +02:00
Folke Lemaitre
ef272ff7cc
fix(treesitter): nvim-treesitter on longer support nvim-0.11, so pin when needed. Fixes #7092 2026-04-02 10:11:23 +02:00
Folke Lemaitre
d07070bf2f
fix(tsgo): remove some noisy inlay hints 2026-04-02 10:08:02 +02:00
Folke Lemaitre
85afbbc94b
fix(oxc): added fixKind = "all" 2026-04-02 10:07:50 +02:00
Folke Lemaitre
96f4f18d7d
fix(terminal): use Snacks.terminal.focus() for <C-/> mapping
Switches from toggle() to focus() so that <C-/> only hides
the terminal when you're currently in it. Restores hide win keys
for terminal mode.

Closes #7048

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 09:50:09 +01:00
Ira Chan
2a5c892835
fix(clojure): remove redundant on-filetype() call that leaks keymaps (#7065)
## Summary

The Conjure spec calls `require("conjure.mapping")["on-filetype"]()`
unconditionally in its `config` function. Because the plugin loads on
`event = "LazyFile"` (any file open), this sets Conjure's buffer-local
keymaps on whatever buffer triggered the load, regardless of filetype.

This call is redundant. `require("conjure.main").main()` internally
calls `mapping.init(filetypes)`, which:

1. Registers a `FileType` autocmd scoped to supported filetypes.
2. Checks if the current buffer's filetype is in the list before calling
`on-filetype()`.

From `conjure/mapping.lua`:

```lua
M.init = function(filetypes)
  local group = vim.api.nvim_create_augroup("conjure_init_filetypes", {})
  if (true == config["get-in"]({"mapping", "enable_ft_mappings"})) then
    vim.api.nvim_create_autocmd("FileType", {
      group = group, pattern = filetypes,
      callback = autocmd_callback(M["on-filetype"])
    })
    if core.some(function(x) return x == vim.bo.filetype end, filetypes) then
      vim.schedule(M["on-filetype"])
    end
  end
end
```

The extra `on-filetype()` bypasses this guard. Removing it restores the
intended behavior: Conjure keymaps only appear in buffers whose filetype
Conjure supports.

## Related Issue(s)

Fixes #7064

## Repro

Save as `repro.lua` and run with `nvim -u repro.lua`:

```lua
vim.env.LAZY_STDPATH = ".repro"
load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))()

require("lazy.minit").repro({
  spec = {
    { "LazyVim/LazyVim", import = "lazyvim.plugins" },
    { import = "lazyvim.plugins.extras.lang.clojure" },
  },
})
```

Steps:
1. `nvim -u repro.lua`
2. `:e test.md`
3. `:nmap <localleader>` — observe 25+ Conjure keymaps on a markdown
buffer

After this fix, `:nmap <localleader>` on `test.md` shows no Conjure
keymaps.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-21 09:04:39 +01:00
Folke Lemaitre
6d0da34de9
fix(lsp): sort server names before setting keymaps
Sort server names so that `*` (wildcard) keymaps are registered before
named servers, ensuring server-specific keymaps take precedence.

Fixes #6956, Fixes #6903

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 08:55:20 +01:00
Folke Lemaitre
6dadcc2065
docs(typescript): add some docs on how to enable tsgo with vim global 2026-03-21 06:40:53 +01:00
Folke Lemaitre
8bcb620802
fix(tsgo): disable inlayHints.functionLikeReturnTypes by default. Too noisy 2026-03-21 06:40:32 +01:00
Folke Lemaitre
59126caa31
test: fix tests 2026-03-20 23:16:04 +01:00
Folke Lemaitre
4e9eac57ab
feat(oxc): added oxc extra for oxfmt and oxlint 2026-03-20 22:15:34 +01:00
Folke Lemaitre
9029d928d2
feat(typescript): split typescript extra in main, vtsls and tsgo 2026-03-20 21:40:30 +01:00
Folke Lemaitre
1b4be534f1
fix(util.plugin): single imports for extras 2026-03-20 20:42:57 +01:00
Folke Lemaitre
8764dfbc8f
perf(extras): never load nested extras 2026-03-20 20:14:37 +01:00
Folke Lemaitre
76cb567e5c
refactor(lsp): cleaner support for code_actions 2026-03-20 19:01:02 +01:00
Folke Lemaitre
53f4eabd77
fix(typescript): remove keymaps for non-existing code actions 2026-03-20 19:00:29 +01:00
Folke Lemaitre
ad25b31e51
fix(biome): added recommendation when root has biome config file 2026-03-20 16:09:49 +01:00
Folke Lemaitre
e54689ebdc
feat(lsp): auto add organizeImport keymaps for LSPs that support it 2026-03-20 16:06:44 +01:00
Folke Lemaitre
242f0983de
feat(biome): move biome extra from formatting.biome -> lang.typescript.biome 2026-03-20 15:59:25 +01:00
Folke Lemaitre
fbf52d5496
refactor(typescript): move typescript to sub module init 2026-03-20 15:58:39 +01:00
Folke Lemaitre
3b3d649333
fix(r): recommend for *.qmd instead of *qmd files 2026-03-20 14:39:02 +01:00
Folke Lemaitre
5450006ccd
fix(biome): biome mason install is no longer needed 2026-03-20 12:18:26 +01:00
Folke Lemaitre
36f594716b
feat(lazydev): make lspconfig types available on word lspconfig.settings 2026-03-20 12:14:02 +01:00
Folke Lemaitre
e6f26f0f23
feat(typescript): set vim.g.lazyvim_ts_lsp = "tsgo" to use the much faster experimental lsp server 2026-03-20 12:13:32 +01:00
Folke Lemaitre
b2830cfcc5
feat(biome): enable biome lsp for linting 2026-03-20 12:12:45 +01:00
Folke Lemaitre
50159fe344
feat(sidekick): ctrl+. focuses sidekick, but when already inside sidekick, hides it 2026-03-20 11:08:09 +01:00
Folke Lemaitre
6055e59613
style: format 2026-03-16 19:07:44 +01:00
Folke Lemaitre
954d8746e5
fix(biome): use biome-check in conform that also fixes linting issues and sorts imports 2026-03-16 18:11:45 +01:00
Rubin Bhandari
31caef21fd
refactor(dial): use inbuilt augends (#7035)
Dial now has built in augends for weekdays and Pythonic booleans


[monaqa/dial.nvim#augend-alias](https://github.com/monaqa/dial.nvim#augend-alias)

## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 14:45:56 +01:00
Folke Lemaitre
d0fe8c896f
revert(lsp): revert changes for #6456. Closes #6779 2026-03-01 10:50:17 +01:00
github-actions[bot]
fca0af57cc
chore(main): release 15.14.0 (#6738)
🤖 I have created a release *beep* *boop*
---


##
[15.14.0](https://github.com/LazyVim/LazyVim/compare/v15.13.0...v15.14.0)
(2026-03-01)


### Features

* **bufferline:** add &lt;leader&gt;bj keymap for BufferLinePick
([#6968](https://github.com/LazyVim/LazyVim/issues/6968))
([a50072f](a50072fa16))
* **dap:** close dap-float window with `q`.
([#6884](https://github.com/LazyVim/LazyVim/issues/6884))
([87c0027](87c0027892))
* **treesitter:** support query table in treesitter-textobjects mappings
([#6736](https://github.com/LazyVim/LazyVim/issues/6736))
([42c9f71](42c9f7152b))


### Bug Fixes

* **editor.overseer:** migrate to v2
([#6907](https://github.com/LazyVim/LazyVim/issues/6907))
([27824d7](27824d79a9))
* **fzf:** correct git_diff description from 'hunks' to 'files'
([#6983](https://github.com/LazyVim/LazyVim/issues/6983))
([e77d4ab](e77d4ab0d6))
* **lang.clang:** fix `clangd_extensions.nvim`
([#6804](https://github.com/LazyVim/LazyVim/issues/6804))
([730b691](730b69114d))
* **leap:** update urls to new leap.nvim repo. Fixes
[#6958](https://github.com/LazyVim/LazyVim/issues/6958)
([244af66](244af66f8b))
* **news:** resolve news.txt from $VIMRUNTIME first
([60fea62](60fea6236e)),
closes [#7019](https://github.com/LazyVim/LazyVim/issues/7019)
* **python:** set venv-selector.nvim override_notify = false
([#6936](https://github.com/LazyVim/LazyVim/issues/6936))
([b2917bd](b2917bd3bf))
* **terminal:** add -NoProfile to powershell shellcmdflag
([#6757](https://github.com/LazyVim/LazyVim/issues/6757))
([a507822](a507822c0f))
* **terminal:** partially revert previous mappings
([#6770](https://github.com/LazyVim/LazyVim/issues/6770))
([c64a617](c64a61734f))
* **treesitter:** fix `]c` textobject mappings when in diff mode
([#6911](https://github.com/LazyVim/LazyVim/issues/6911))
([16713e6](16713e6e12))
* **treesitter:** remove deleted jsonc parser
([#6848](https://github.com/LazyVim/LazyVim/issues/6848))
([92607e7](92607e79e0))
* **util.lsp:** `LazyVim.lsp.execute` only request single client
([#6904](https://github.com/LazyVim/LazyVim/issues/6904))
([a4e19e9](a4e19e9c9c))
* **util.lsp:** pass `formatters_by_ft` to `opts`
([#6894](https://github.com/LazyVim/LazyVim/issues/6894))
([03f1293](03f1293e33))
* **vtsls:** remove redundant deno logic, upstreamed in `nvim-lspconfig`
([#7011](https://github.com/LazyVim/LazyVim/issues/7011))
([8652c95](8652c95703))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-01 10:37:36 +01:00
Chomba
a50072fa16
feat(bufferline): add <leader>bj keymap for BufferLinePick (#6968)
## Summary
- Adds `<leader>bj` keymap to quickly pick a buffer using BufferLinePick

## Motivation
BufferLinePick provides a great UX for quickly jumping to buffers by
letter key, similar to LunarVim's buffer picker. This keymap makes it
easily discoverable.

## Changes
- Added `<leader>bj` → `:BufferLinePick` in bufferline plugin config

## Testing
- Tested locally with multiple buffers open
- Press `<Space>bj`, letter labels appear on tabs, press letter to jump
2026-03-01 10:36:15 +01:00
Phúc H. Lê Khắc
87c0027892
feat(dap): close dap-float window with q. (#6884)
## Description

nvim-dap-ui's widget window to preview value of object under the cursor
has ftype `dap-float`. Include it so it can be closed quickly like other
popup windows.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 10:35:14 +01:00
Frederick Zhang
b2917bd3bf
fix(python): set venv-selector.nvim override_notify = false (#6936)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
<!-- === GH HISTORY FORMAT FENCE === --> <!--
### [`%h`]({{.url}}/commits/%H) %s%n%n%b%n
--> <!-- === GH HISTORY FORMAT FENCE === -->
<!-- === GH HISTORY FENCE === -->
This is a new option in venv-selector.nvim which stops it from
overriding vim.notify, so that it no longer interferes with noice.nvim.
See also [1].

[1] https://github.com/linux-cultist/venv-selector.nvim/issues/240

<!-- === GH HISTORY FENCE === -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->
N/A

## Screenshots

<!-- Add screenshots of the changes if applicable. -->
N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 10:33:07 +01:00
plsplsplslol
3f91371e21
docs(ui): fix typo (#6978)
## Description
this extra disables scope, not scroll

## Related Issue(s)

## Screenshots

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 10:32:37 +01:00
Talles Borges
e77d4ab0d6
fix(fzf): correct git_diff description from 'hunks' to 'files' (#6983)
Fixes #6960

`FzfLua git_diff` runs `git diff --name-only` which lists changed
**files**, not hunks.

Updated the description from `"Git Diff (hunks)"` to `"Git Diff
(files)"` to accurately reflect the command behavior.
2026-03-01 10:31:41 +01:00
Iordanis Petkakis
730b69114d
fix(lang.clang): fix clangd_extensions.nvim (#6804)
## Description
`clangd_extensions.nvim` does not seem to take `server` key any more,
which was used to setup the plugin with clangd `cmd`, `init_options`
etc. Instead you only need to configure the clangd server via lspconfig
and the plugin separately according to my understanding.

Remove the unnecessary `opts.setup` which also requires the plugin
itself and loads it and make the plugin lazy-loaded on c/c++ files only.

References:
- https://github.com/p00f/clangd_extensions.nvim#configuration
-
https://github.com/p00f/clangd_extensions.nvim/issues/49#issuecomment-1719654413

PS: I don't do C/C++, so testers would be welcome.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #6800
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 10:13:30 +01:00
Iordanis Petkakis
03f1293e33
fix(util.lsp): pass formatters_by_ft to opts (#6894)
## Description
Here
c64a61734f/lua/lazyvim/util/lsp.lua (L50)
we call directly `conform.format` with our specific options.

`conform.nvim` also allows passing options such as `lsp_format` directly
to `formatter_by_ft` as also can be seen
[here](5420c4b5ea/doc/conform.txt (L20-L21)).
Those options are not passed when we call `conform.format(opts)` in the
LSP formatter.

So, we add these options. Also, fix the correct name for general format
options, since it had been changed at some time in `conform.nvim` and
that change made it to the plugin spec, but not here.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #6893
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 10:12:58 +01:00
Iordanis Petkakis
16713e6e12
fix(treesitter): fix ]c textobject mappings when in diff mode (#6911)
## Description
It seems that after
5985ca0cf1
the default `]c` Neovim mapping in diff mode broke. This is an attempt
to fix that.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None, rather discussion #6910.
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 10:11:09 +01:00
Iordanis Petkakis
92607e79e0
fix(treesitter): remove deleted jsonc parser (#6848)
## Description

d2350758b3
removed parsers not hosted on Github, `jsonc` among them. Remove it from
LazyVim as well. On a fresh new installation, there's no problem and it
doesn't even install, but on existing installation you get an error when
updating about parser not available.

<img width="2559" height="313" alt="2025-12-07_11-24"
src="https://github.com/user-attachments/assets/99802b66-ff39-4631-89c6-ee4f2516acf1"
/>

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 10:08:09 +01:00
Iordanis Petkakis
8652c95703
fix(vtsls): remove redundant deno logic, upstreamed in nvim-lspconfig (#7011)
## Description
Since https://github.com/neovim/nvim-lspconfig/pull/4304
`nvim-lspconfig` has inherent deno logic to disambiguate between
deno/non-deno projects.

I believe it'd be better to remove the logic from LazyVim, since it
might lead to issues because of different behavior compared to
`nvim-lspconfig` defaults (whose logic doesn't only rely on the
existence of `deno/json`, but also looks for lock files and takes into
account which is the largest path with regards to the found pattern
files). It'd be better for users to change `root_dir` themselves if they
don't agree with the inherent logic.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 10:06:18 +01:00
Folke Lemaitre
ecd31f844e
test(extras): handle plugins using url instead of short format
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:04:26 +01:00
akioweh
27824d79a9
fix(editor.overseer): migrate to v2 (#6907)
## Description

Overseer.nvim recently-ish released v2.  
This PR updates the extras config according to the breaking changes.

A few commands were removed and the `bindings` config key was renamed to
`keymaps`.

I've also taken the liberty of marking the plugin as not lazy since it
lazy-loads itself.
The impact on startup is ~<1ms, which I think is acceptable over
lazy.nvim command/keymap listener overhead, but this is open to
discussion 🤷

## Related Issue(s)

fixes #6876 

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 09:33:20 +01:00
Iordanis Petkakis
a4e19e9c9c
fix(util.lsp): LazyVim.lsp.execute only request single client (#6904)
## Description
`LazyVim.lsp.execute` uses `vim.lsp.buf_request` which sends the request
to all attached clients.

`LazyVim.lsp.execute` seems to me to be the equivalent of
[vim.lsp.buf.execute_command](922816877f/runtime/lua/vim/lsp/buf.lua (L1366-L1376)),
but adds the option to also open in Trouble. Otherwise the request is
being made the same way. This command will be deprecated in 0.12 and
it's advised to use `client:exec_cmd` instead.

Since LazyVim supports Neovim >=0.11.2, it makes sense to refactor the
corresponding codeblock and use `client:cmd_exec` instead (it's already
available in Neovim 0.11).

I only changed the necessary parts where `vim.lsp.buf_request` was being
used and not Trouble (when `opts.open = true`), since I'm not familiar
with its codebase. That's also why I went for extending `params` in the
`else` branch instead of adding `title` into original `params`, since I
didn't know how Trouble will react to this change. Not sure if maybe
there also needs to be some change there.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #6900
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2026-03-01 09:31:44 +01:00
Folke Lemaitre
244af66f8b
fix(leap): update urls to new leap.nvim repo. Fixes #6958 2026-03-01 09:30:39 +01:00
Folke Lemaitre
60fea6236e
fix(news): resolve news.txt from $VIMRUNTIME first
Plugins that ship their own `doc/news.txt` (e.g. rainbow-delimiters.nvim)
can shadow Neovim's bundled file when using `nvim_get_runtime_file()`.
First check $VIMRUNTIME, then fall back to the full runtimepath.

Fixes #7019
2026-03-01 09:17:53 +01:00
Iordanis Petkakis
c64a61734f
fix(terminal): partially revert previous mappings (#6770)
## Description
Commit 4efd0e2bea introduced some changes
to terminal mappings. I tested in a new LazyVim installation and
`sidekick.nvim` is not affected by `<C-/>` any more.

The mappings `hide_underscore` and `hide_slash` don't let user to create
new terminals with `2<C-/>`, `3<C-/>` and so on. Instead they hide the
terminal and user can't open split terminals next to each other any
more.

Therefore, I believe it would be a better default to revert these 2
mappings explicitly.

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-11-11 09:35:25 +01:00
AK47are
a507822c0f
fix(terminal): add -NoProfile to powershell shellcmdflag (#6757)
## Description

changing the PowerShell profile might accidentally cause errors in
Neovim (see [issue](https://github.com/LazyVim/LazyVim/issues/4805)),
which is a subtle bug. Add the `-NoProfile` flag to ensure Neovim is not
affected by profile.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-11-06 12:40:40 +01:00
Thomas Vandal
42c9f7152b
feat(treesitter): support query table in treesitter-textobjects mappings (#6736)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

`treesitter-textobjects` mappings accept a table query (for the "move"
mappings, at least, I haven't checked the others). Currently, in
LazyVim, using a table causes an error due to the assumption that
`query` is a string in the `config` function that creates the keymap
description. This PR adds a simple loop to gather the queries from a
table and join them with "or" in the description.

Here is an example config and the resulting error. Everything works as
expected with the PR and string (single) queries still behave as
expected.

```lua
  {
    "nvim-treesitter/nvim-treesitter-textobjects",
    opts = {
      move = {
        keys = {
          goto_next_start = { ["]j"] = { "@function.outer", "@class.outer" } },
          goto_next_end = { ["]J"] = { "@function.outer", "@class.outer" } },
          goto_previous_start = { ["[j"] = { "@function.outer", "@class.outer" } },
          goto_previous_end = { ["[J"] = { "@function.outer", "@class.outer" } },
        },
      },
    },
  }
```

```lua
Failed to run `config` for nvim-treesitter-textobjects

...vim-local/opt/LazyVim/lua/lazyvim/plugins/treesitter.lua:174: attempt to call method 'gsub' (a nil value)

# stacktrace:
  - repos/nvim-local/opt/LazyVim/lua/lazyvim/plugins/treesitter.lua:174
  - vim/shared.lua:0 _in_ **tbl_map**
  - repos/nvim-local/opt/LazyVim/lua/lazyvim/plugins/treesitter.lua:197 _in_ **config**
```



## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-11-03 07:51:07 +01:00
github-actions[bot]
28db03f958
chore(main): release 15.13.0
🤖 I have created a release *beep* *boop*
---


## [15.13.0](https://github.com/LazyVim/LazyVim/compare/v15.12.2...v15.13.0) (2025-11-01)


### Features

* **snacks:** `snacks.gh` integration. Enabled by default, unless the `util.octo` extra is enabled. ([5e981f9](5e981f9a8c))


### Bug Fixes

* **treesitter:** remove node requirement ([6b52a30](6b52a3059e))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
2025-11-01 13:44:04 +01:00
Folke Lemaitre
5e981f9a8c
feat(snacks): snacks.gh integration. Enabled by default, unless the util.octo extra is enabled. 2025-11-01 13:41:53 +01:00
Folke Lemaitre
6b52a3059e
fix(treesitter): remove node requirement 2025-10-31 17:28:02 +01:00
github-actions[bot]
064e61058b
chore(update): update repository (#6712)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action

Co-authored-by: folke <292349+folke@users.noreply.github.com>
2025-10-28 16:14:16 +01:00
folke
cd745b14f8 chore(build): auto-generate docs 2025-10-26 15:06:24 +00:00
Folke Lemaitre
29fb479522
style: remove some vim.lsp calls during startup 2025-10-26 16:04:45 +01:00
github-actions[bot]
d72127eb93
chore(main): release 15.12.2 (#6703)
🤖 I have created a release *beep* *boop*
---


##
[15.12.2](https://github.com/LazyVim/LazyVim/compare/v15.12.1...v15.12.2)
(2025-10-26)


### Bug Fixes

* **lsp.keymaps:** make cond -&gt; enabled work again. Closes
[#6697](https://github.com/LazyVim/LazyVim/issues/6697)
([1a40162](1a40162714))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-26 12:27:05 +01:00
Folke Lemaitre
1a40162714
fix(lsp.keymaps): make cond -> enabled work again. Closes #6697 2025-10-26 12:21:22 +01:00
github-actions[bot]
235cadf4cf
chore(main): release 15.12.1 (#6699)
🤖 I have created a release *beep* *boop*
---


##
[15.12.1](https://github.com/LazyVim/LazyVim/compare/v15.12.0...v15.12.1)
(2025-10-26)


### Bug Fixes

* **fzf-lua:** LSP keymaps. Closes
[#6698](https://github.com/LazyVim/LazyVim/issues/6698)
([b5ea1e9](b5ea1e9d25))
* **navic:** navic attach. Closes
[#6702](https://github.com/LazyVim/LazyVim/issues/6702)
([d2d0c64](d2d0c641ed))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-26 12:01:47 +01:00
folke
7831bff9af chore(build): auto-generate docs 2025-10-26 10:59:58 +00:00
Folke Lemaitre
d2d0c641ed
fix(navic): navic attach. Closes #6702 2025-10-26 11:58:23 +01:00
Folke Lemaitre
b5ea1e9d25
fix(fzf-lua): LSP keymaps. Closes #6698 2025-10-25 23:20:54 +02:00
github-actions[bot]
8b8ceb6c87
chore(main): release 15.12.0 (#6677)
🤖 I have created a release *beep* *boop*
---


##
[15.12.0](https://github.com/LazyVim/LazyVim/compare/v15.11.0...v15.12.0)
(2025-10-25)


### Features

* **keymaps:** added `<localleader>r` to run the selection/file with lua
([acc3538](acc3538229))
* **lsp:** lsp keymaps can now be configured with
`lsp-config.opts.servers['*'].keys` like for lsp servers
([cd8c497](cd8c4977a0))
* **lsp:** refactor lsp code to use `Snacks.util.lsp.on`
([3964433](3964433062))
* **sidekick:** added NES toggle `<leader>uN`. Closes
[#6692](https://github.com/LazyVim/LazyVim/issues/6692)
([84ca4df](84ca4dffdb))


### Bug Fixes

* **chezmoi:** use vim.env.HOME instead of os.getenv("HOME") for Windows
compatibility
([231e476](231e476ec9))
* **clipboard:** connecting via vscpde's remote-ssh extension causes
severe lag during yank and copy operations.
([#6664](https://github.com/LazyVim/LazyVim/issues/6664))
([5098a69](5098a69870))
* **lang.ember:** remove '.git' lang.ember
([#6685](https://github.com/LazyVim/LazyVim/issues/6685))
([4796fb4](4796fb4ac5))
* **root:** don't use fs_realpath on windows
([46e419d](46e419d27e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-25 17:18:21 +02:00
Folke Lemaitre
acc3538229
feat(keymaps): added <localleader>r to run the selection/file with lua 2025-10-25 16:57:53 +02:00
Folke Lemaitre
cd8c4977a0
feat(lsp): lsp keymaps can now be configured with lsp-config.opts.servers['*'].keys like for lsp servers 2025-10-25 16:57:16 +02:00
Folke Lemaitre
3964433062
feat(lsp): refactor lsp code to use Snacks.util.lsp.on 2025-10-25 16:56:19 +02:00
folke
f581de8013 chore(build): auto-generate docs 2025-10-25 05:59:28 +00:00
Folke Lemaitre
84ca4dffdb
feat(sidekick): added NES toggle <leader>uN. Closes #6692 2025-10-25 07:57:39 +02:00
Folke Lemaitre
46e419d27e fix(root): don't use fs_realpath on windows 2025-10-24 15:35:49 -07:00
denisu14
4796fb4ac5
fix(lang.ember): remove '.git' lang.ember (#6685)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
Removed ".git" from the recommended section of lang.ember so lang.ember
isn't recommended for every git directory.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->
None
## Screenshots

<!-- Add screenshots of the changes if applicable. -->
<img width="1249" height="748" alt="image"
src="https://github.com/user-attachments/assets/594f262e-7f12-4174-ad3f-1872f388f039"
/>

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-24 08:12:11 +02:00
folke
28aa8feaf7 chore(build): auto-generate docs 2025-10-24 04:08:18 +00:00
Folke Lemaitre
231e476ec9
fix(chezmoi): use vim.env.HOME instead of os.getenv("HOME") for Windows compatibility
vim.env.HOME works correctly on Windows where the HOME environment variable may not be set, while os.getenv("HOME") returns nil in such cases.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 06:06:38 +02:00
narutozxp
5098a69870
fix(clipboard): connecting via vscpde's remote-ssh extension causes severe lag during yank and copy operations. (#6664)
## Description

When connecting to a remote server via VSCode's Remote-SSH extension,
the `SSH_TTY` environment variable is not set. Consequently, both the
`vscode-neovim` extension (when using the remote Neovim instance) and
Neovim launched from VSCode's integrated terminal use the system
clipboard, resulting in severe lag.

Additionally, the `yanky.nvim` plugin synchronizes with the system
clipboard by default, regardless of whether the `clipboard` option is
set to an empty string (`""`). This causes similar performance issues as
described above.

Using the `SSH_CONNECTION` environment variable instead of `SSH_TTY` can
effectively resolve this issue.



## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-23 12:04:47 +02:00
github-actions[bot]
0329bc0e50
chore(main): release 15.11.0 (#6658)
🤖 I have created a release *beep* *boop*
---


##
[15.11.0](https://github.com/LazyVim/LazyVim/compare/v15.10.1...v15.11.0)
(2025-10-23)


### Features

* **snacks_picker:** added gai/gao keymaps for calls incoming/outgoing
([b6e48a5](b6e48a57fb))
* **snacks.picker:** added `<leader>gD` to diff against merge base of
branch/PR
([f0a91d9](f0a91d9fa5))


### Bug Fixes

* **avante:** unset default keymaps
([#6657](https://github.com/LazyVim/LazyVim/issues/6657))
([e8a1d8b](e8a1d8b628))
* **extras:** remove custom formatter opts for dart/solidity. Closes
[#6665](https://github.com/LazyVim/LazyVim/issues/6665)
([b38de4e](b38de4e2fe))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-23 11:47:53 +02:00
folke
4fd9878dea chore(build): auto-generate docs 2025-10-23 07:28:03 +00:00
Folke Lemaitre
0b4999a4b5
docs: added LSP keymap specs to CONTRIBUTING.md 2025-10-23 09:26:48 +02:00
Folke Lemaitre
f0a91d9fa5
feat(snacks.picker): added <leader>gD to diff against merge base of branch/PR 2025-10-23 09:26:22 +02:00
Folke Lemaitre
b6e48a57fb
feat(snacks_picker): added gai/gao keymaps for calls incoming/outgoing 2025-10-22 14:51:35 +02:00
folke
6568b1d4c2 chore(build): auto-generate docs 2025-10-22 04:31:53 +00:00
Folke Lemaitre
b38de4e2fe
fix(extras): remove custom formatter opts for dart/solidity. Closes #6665 2025-10-22 06:30:35 +02:00
Bryan Niwa
e8a1d8b628
fix(avante): unset default keymaps (#6657)
## Description

The extras spec includes its own keymaps for the most common commands
now so these are redundant and causing duplicate entries in which-key.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 19:37:51 +02:00
github-actions[bot]
a65d5d530d
chore(main): release 15.10.1 (#6652)
🤖 I have created a release *beep* *boop*
---


##
[15.10.1](https://github.com/LazyVim/LazyVim/compare/v15.10.0...v15.10.1)
(2025-10-20)


### Bug Fixes

* **avante:** correct key mapping declarations
([#6656](https://github.com/LazyVim/LazyVim/issues/6656))
([41d1b8d](41d1b8dc72))
* **blink:** added work-around back for unsupported native snippets
([899533a](899533a101))
* **treesitter:** added buf to treesitter start just to be sure
([3ffb471](3ffb471c18))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-20 18:50:02 +02:00
Iain Lane
41d1b8dc72
fix(avante): correct key mapping declarations (#6656)
## Description

They were declared as

```lua
{
  { "n", "<leader>aa", ... },
  -- ...
}
```

Which remaps the `n` key!

## Demo

```console
$ nvim --headless +'verbose nmap n' +'quit!'
n  n           * <Lua 406: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
                 Toggle Avante
```

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 17:34:08 +02:00
folke
1a7f264ada chore(build): auto-generate docs 2025-10-20 14:12:09 +00:00
Folke Lemaitre
4b69a6ed29
docs: remove video from readme, since it's outdated 2025-10-20 16:11:03 +02:00
Folke Lemaitre
899533a101
fix(blink): added work-around back for unsupported native snippets 2025-10-20 14:34:01 +02:00
Folke Lemaitre
3ffb471c18
fix(treesitter): added buf to treesitter start just to be sure 2025-10-20 14:34:01 +02:00
github-actions[bot]
70e316d41c
chore(main): release 15.10.0 (#6647)
🤖 I have created a release *beep* *boop*
---


##
[15.10.0](https://github.com/LazyVim/LazyVim/compare/v15.9.0...v15.10.0)
(2025-10-20)


### Features

* **ai:** add avante.nvim for a better AI experience
([#4440](https://github.com/LazyVim/LazyVim/issues/4440))
([2682ce0](2682ce0ab9))
* **extra:** allow users to add custom bundles through
opts.init_options.bundles to jdtls
([#6265](https://github.com/LazyVim/LazyVim/issues/6265))
([faeb24b](faeb24ba95))
* **extras:** add Dart language
([#4749](https://github.com/LazyVim/LazyVim/issues/4749))
([90f84e7](90f84e7e75))
* **extras:** added ember lang support
([#6203](https://github.com/LazyVim/LazyVim/issues/6203))
([ac4cce0](ac4cce0f2f))
* **extras:** added twig language
([#5464](https://github.com/LazyVim/LazyVim/issues/5464))
([a6eb51e](a6eb51e5b5))
* **extras:** ai: add `claudecode.nvim`
([#6229](https://github.com/LazyVim/LazyVim/issues/6229))
([e7a3e80](e7a3e80ee1))
* **extras:** automatically update lazyvim.json for renamed or
deprecated extras
([37ecd06](37ecd06fad))
* **extras:** renamed extra omnisharp -&gt; dotnet + added fautocomplete
to lspconfig
([1b2e6e8](1b2e6e8986))
* **extras:** utils: add `gh.nvim`
([#6250](https://github.com/LazyVim/LazyVim/issues/6250))
([8db9c75](8db9c75e8d))
* **go:** add linting with golangci-lint
([#6311](https://github.com/LazyVim/LazyVim/issues/6311))
([248876a](248876adb6))
* **haskell:** update `haskell-tools` version and add formatters +
linters ([#6230](https://github.com/LazyVim/LazyVim/issues/6230))
([82382f4](82382f455a))
* **lang/fsharp:** add F# support to omnisharp extra
([#6538](https://github.com/LazyVim/LazyVim/issues/6538))
([80a980a](80a980ab00))
* **lang:** add neotest config for PHP tests
([#5958](https://github.com/LazyVim/LazyVim/issues/5958))
([9b077c7](9b077c7a8e))
* **lang:** add solidity language support
([#4742](https://github.com/LazyVim/LazyVim/issues/4742))
([2cd46d4](2cd46d42ba))
* **lang:** add Typst language support
([#4042](https://github.com/LazyVim/LazyVim/issues/4042))
([645846b](645846be5c))
* **lang:** julia support
([#6231](https://github.com/LazyVim/LazyVim/issues/6231))
([5d186c0](5d186c009a))
* **lang:** nix add `statix` linter
([#6244](https://github.com/LazyVim/LazyVim/issues/6244))
([2a866f6](2a866f6c8c))
* **sidekick:** added sidekick cli status to lualine
([16917db](16917db94a))


### Bug Fixes

* **extras.lang:** fix Scala extra by using nvimMetals only
([#5726](https://github.com/LazyVim/LazyVim/issues/5726))
([f118dca](f118dca334))
* **fzf-lua:** added some missing keymaps similar to snacks picker.
Closes [#6036](https://github.com/LazyVim/LazyVim/issues/6036). Closes
[#5830](https://github.com/LazyVim/LazyVim/issues/5830)
([69a5744](69a5744803))
* **helm:** broken helm highlighting
([#5335](https://github.com/LazyVim/LazyVim/issues/5335))
([4d0d87f](4d0d87f626))
* **keymap:** remove select mode remaps of printable characters
([#6296](https://github.com/LazyVim/LazyVim/issues/6296))
([83468be](83468be350))
* **tailwind:** additional settings
([#5266](https://github.com/LazyVim/LazyVim/issues/5266))
([d2f9885](d2f9885d6b))
* **telescope:** sync keymaps with snacks picker + added some that were
missing
([1a08e9f](1a08e9f50f))
* **twig:** correct mason url
([9d345de](9d345dec44))
* **typescript:** better default pwa-node DAP config. Closes
[#6386](https://github.com/LazyVim/LazyVim/issues/6386)
([e4d3432](e4d34328f2))
* **typescript:** support chrome, node and msedge dap adapters
([#6649](https://github.com/LazyVim/LazyVim/issues/6649))
([0b65d33](0b65d33d85))
* **util.project:** different mapping on dashboard than
`snacks.projects`
([#5737](https://github.com/LazyVim/LazyVim/issues/5737))
([e389447](e38944799e))


### Reverts

* "feat(extra): allow users to add custom bundles through
opts.init_options.bundles to jdtls
([#6265](https://github.com/LazyVim/LazyVim/issues/6265))"
([#6650](https://github.com/LazyVim/LazyVim/issues/6650))
([a582f00](a582f00447))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-20 14:30:38 +02:00
Jose Storopoli
e7a3e80ee1
feat(extras): ai: add claudecode.nvim (#6229)
## Description

Adds [`claudecode.nvim`](https://github.com/coder/claudecode.nvim) which
integrates Claude Code into NeoVim using snacks terminal.

I've been using this config for a while now and I think it's time to
upstream to LazyVim. The configurations are the recommended ones from
the plugin's README.

## Related Issue(s)

None

## Screenshots

![CleanShot 2025-07-05 at 06 58
15@2x](https://github.com/user-attachments/assets/23f8de5c-654e-470d-b814-0bf318ceb2b2)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 13:37:58 +02:00
qw457812
a582f00447
revert: "feat(extra): allow users to add custom bundles through opts.init_options.bundles to jdtls (#6265)" (#6650)
Fixes:

```
Failed to run `config` for nvim-jdtls

...im/lazy/LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:165: attempt to index field 'jdtls' (a function value)

  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:165 _in_ **config**
  - ~/.local/share/bob/nightly/share/nvim/runtime/filetype.lua:36
  - vim/shared.lua:0
  - ~/.local/share/bob/nightly/share/nvim/runtime/filetype.lua:35
  - vim/_editor.lua:0 _in_ **cmd**
  - /snacks.nvim/lua/snacks/picker/actions.lua:115 _in_ **fn**
  - /snacks.nvim/lua/snacks/win.lua:339
```

`init_options.bundles` already can be overridden by `opts.jdtls`, see:
https://github.com/LazyVim/LazyVim/pull/6265#issuecomment-3203831504 for
example.

## Description

Reverts the commit, which breaks `opts.jdtls` defined here:


faeb24ba95/lua/lazyvim/plugins/extras/lang/java.lua (L185-L185)

## Related Issue(s)

#6265 

## Screenshots

None.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 12:50:54 +02:00
Alexey Svirshchevskiy
0b65d33d85
fix(typescript): support chrome, node and msedge dap adapters (#6649)
## Description
Add support for `chrome`, `node` and `msedge` configs for dap
typescript.

## Related Issue(s)
https://github.com/LazyVim/LazyVim/pull/6328

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 12:25:13 +02:00
Zapan Gao
faeb24ba95
feat(extra): allow users to add custom bundles through opts.init_options.bundles to jdtls (#6265)
Allow users to add custom bundles through opts.init_options.bundles to
jdtls with lang java extra is on.
2025-10-20 11:49:08 +02:00
Julian Visser
ac4cce0f2f
feat(extras): added ember lang support (#6203)
## Description

Added support for
[emberjs](https://guides.emberjs.com/release/getting-started/).

-
[nvim-lspconfig/ember](https://github.com/neovim/nvim-lspconfig/blob/master/lsp/ember.lua)
- Uses prettier to format glimmer files

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 11:45:57 +02:00
Jarryd Tilbrook
9b077c7a8e
feat(lang): add neotest config for PHP tests (#5958)
## Description

Similar to some other languages (this closely follows the Go lang
extra), this adds neotest runners for the major PHP test runners:
PHPUnit and Pest.

Both work together, trying to use Pest if available and falling back to
PHPUnit which is a decent approach for the PHP ecosystem.

I read CONTRIBUTING.md which differs from the way the Go lang extra has
implemented a neotest adapters and opted to follow that instead. Ie.
adapters
have been added as dependencies instead of a separate spec with
`lazy=true`. Let me know if you want that changed.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 11:40:56 +02:00
Stanislav Zeman
90f84e7e75
feat(extras): add Dart language (#4749)
## Description

This PR add Dart language support to **extras** section.

## Testing

I checked that:
- the LSP correctly loads on Dart files and provides suggestions and
highlights errors
- `treesitter` parses the Dart language tree and highlights the code
- `conform` correctly formats Dart files using the built-in formatter
- `neotest` is capable of running Dart tests

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 11:27:52 +02:00
Folke Lemaitre
f4b08bb604
refactor(solidity): no need for opts to be a function 2025-10-20 11:24:28 +02:00
pugud
2cd46d42ba
feat(lang): add solidity language support (#4742)
## Description

### Summary

This PR adds comprehensive support for Solidity development in Neovim
using LazyVim. The following updates were made to streamline Solidity
development:
### Changes

1. **Solidity File Type Detection**
- Configured LazyVim to recognize Solidity projects by detecting
`foundry.toml`, `hardhat.config.js`, and `hardhat.config.ts` files.
2. **Treesitter Support for Solidity**
- Added `solidity` to the list of languages ensured by
`nvim-treesitter`, providing syntax highlighting and better code
structure understanding.
3. **Language Server Protocol (LSP) Setup**
- Configured `nvim-lspconfig` to support `solidity_ls` as the LSP for
Solidity files.
- Set up `root_dir` detection based on project files or a `.git`
directory to enable proper LSP functioning in Solidity projects.
4. **Solidity Formatter**
- Integrated `forge_fmt` as a formatter for Solidity files using
`conform.nvim`, which utilizes `forge fmt` to format code.
    
### Why use `forge fmt` instead of Prettier?

- **Prettier's Solidity support requires extra plugins**: Prettier does
not have native Solidity support and depends on
`prettier-plugin-solidity`. Even with
`vim.g.lazyvim_prettier_needs_config = false`, formatting won't work
unless a `.prettierrc` file is configured, creating unnecessary
complexity.
- **`forge fmt` is the native tool for Solidity development**: `Forge`
is a widely used tool within the Solidity ecosystem, especially when
working with Foundry. It provides built-in formatting with no extra
dependencies, making it simpler and more efficient to integrate.
- **Hardhat uses `prettier-plugin-solidity`**: For users of Hardhat,
`prettier-plugin-solidity` is required for code formatting. However, the
integration with Prettier might add complexity, while `forge fmt`
simplifies the process.
- **Future customization**: We may allow users to choose between
`prettier-plugin-solidity` and `forge fmt` for formatting in the future,
depending on their preferred tools.
    
  
### Testing

- Confirmed that Solidity files are detected and syntax-highlighted by
Treesitter.
- Verified LSP functionality for Solidity, including code navigation and
error detection.
- Tested `forge_fmt` for automatic code formatting on Solidity files.
### Motivation

These changes provide a smoother and more robust Solidity development
experience in Lazyvim, including syntax highlighting, code navigation,
and automatic formatting.

## Related Issue(s)
https://github.com/LazyVim/LazyVim/issues/1901

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-20 11:20:05 +02:00
Bahaa Mohamed
248876adb6
feat(go): add linting with golangci-lint (#6311)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

Add Go linting support using
[golangci-lint](https://github.com/golangci/golangci-lint) and
nvim-lint.

- Installs golangci-lint via Mason.
- Configures nvim-lint to run it on Go files.

This improves the Go development experience by running a fast, popular
linter automatically

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

None

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 02:12:20 -07:00
snailed
4d0d87f626
fix(helm): broken helm highlighting (#5335)
## Description

This PR replaces the towolf/vim-helm plugin with a newer, lua
implementation of the plugin. This fixes syntax highlighting and makes
the workaround for the ftdetect/lsp load order superfluous.

## Related Issue(s)

  - Fixes #5334 

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 11:09:29 +02:00
Torbjørn Vatn
d2f9885d6b
fix(tailwind): additional settings (#5266)
Make it possible to define your own tailwind settings in opts, and merge
them with the default, additional Phoenix settings in tailwind.lua

## Description

Add the possibility to add your own tailwind settings in opts and have
them deep merged into the default `opts.settings`

I needed this for configuring support for tailwind when coding on a
[htmgo](https://htmgo.dev/docs/misc/tailwind-intellisense) project in
Neovim.

E.g.
```lua
return {
  "neovim/nvim-lspconfig",
  opts = {
    servers = {
      tailwindcss = {
        filetypes_include = { "go" },
        settings = {
          tailwindCSS = {
            includeLanguages = {
              go = "html",
            },
            experimental = {
              classRegex = {
                { "Class\\(([^)]*)\\)", '["`]([^"`]*)["`]' },
                { "ClassX\\(([^)]*)\\)", '["`]([^"`]*)["`]' },
                { "ClassIf\\(([^)]*)\\)", '["`]([^"`]*)["`]' },
                { "Classes\\(([^)]*)\\)", '["`]([^"`]*)["`]' },
              },
            },
          },
        },
      },
    },
  },
}
```

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 11:07:12 +02:00
Folke Lemaitre
9d345dec44
fix(twig): correct mason url 2025-10-20 10:55:37 +02:00
Folke Lemaitre
64377ba4de
test: detect old refs to plugins in extras 2025-10-20 10:55:05 +02:00
George Guimarães
2682ce0ab9
feat(ai): add avante.nvim for a better AI experience (#4440)
I switched over to https://github.com/yetone/avante.nvim and I think
this is the best experience in terms of UI and easiness to add patches
to your code.

I'm recommending it to everyone.

~~However, I couldn't make render-markdown to work on Avante. It seems
that my spec here is running before the one defined in
extras/lang/markdown.lua and getting overwritten even though I added
`optional = true`. I'll try to dig in deeper, but if someone has any
pointers, I'd appreciate it.~~

  - Fixes #4394

---------

Co-authored-by: PatMulligan <43773168+PatMulligan@users.noreply.github.com>
Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-20 01:47:17 -07:00
Jose Storopoli
5d186c009a
feat(lang): julia support (#6231)
## Description

- Another take on #4436.
- Adds LSP
- Adds cmp and blink.cmp for LaTeX symbols

## Related Issue(s)

#5455 

## Screenshots

![CleanShot 2025-07-05 at 08 05
01@2x](https://github.com/user-attachments/assets/36a6e5ac-2632-4a33-af9e-674b7f1b750d)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 10:24:12 +02:00
Vo Quang Chien
645846be5c
feat(lang): add Typst language support (#4042)
## Description

This pull request introduces robust support for the
[Typst](https://github.com/typst/typst) language in LazyVim, enhancing
the Typst editing experience with several integrated tools:

1. **LSP Support**: Integrate with
[tinymist](https://github.com/Myriad-Dreamin/tinymist) provides
comprehensive LSP support.
2. **Code Formatting**: Integrate with
[typstyle](https://github.com/Enter-tainer/typstyle) for code
formatting.
3. **Preview Support**: Added
[typst-preview.nvim](https://github.com/chomosuke/typst-preview.nvim)
for live preview of Typst documents.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Jose Storopoli <jose@storopoli.io>
Co-authored-by: Stefan Boca <45266795+stefanboca@users.noreply.github.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-20 10:23:30 +02:00
Halibut Git Wiz
a6eb51e5b5
feat(extras): added twig language (#5464)
## Description

Adds Twig templates language support as en extra.

Explanation for the tools choices:
- Linter/formatter: Twigcs and Twig-cs-fixer both follow the [coding
standards](https://twig.symfony.com/doc/3.x/coding_standards.html)
recommended by the Symfony Project, maintainers of Twig.
- LSP: I don't know it Twiggy is considered a standard in the community.
I picked it because it's the only server specific to Twig. The other
options are HTML servers that also include support for several templates
languages. I've been using it for a while and it works fine. It adds
much needed snippets (Twig syntax involves tags that are difficult to
type on most keyboards) and does not conflict with Twigcs diagnostics.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: tw <tw@pretexx.fr>
2025-10-20 10:19:38 +02:00
Jose Storopoli
82382f455a
feat(haskell): update haskell-tools version and add formatters + linters (#6230)
## Description

- Updates `haskell-tools` to use the recommended version in the plugin's
README
- Adds `ormolu` as a formatter
- Adds keybindings for `haskell-tools` that does not conflict with
LazyVim's defaults.

## Related Issue(s)

-
https://github.com/LazyVim/LazyVim/discussions/3325#discussioncomment-9562683:
adds `ormolu` formatter.
- https://github.com/LazyVim/LazyVim/pull/2052#issuecomment-2881764491:
@mrcjkb keeps getting bug reports because the version is still in `3`
and should be updated to `6`.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-20 01:17:31 -07:00
Jose Storopoli
8db9c75e8d
feat(extras): utils: add gh.nvim (#6250)
## Description

Adds [`gh.nvim`](https://github.com/ldelossa/gh.nvim) to the extras.

`gh.nvim` brings a way richer reviewer interface to NeoVim by supporting
LSP and treesitter natively in review diff buffers.
I've been using successfully for a couple weeks instead of `Octo.nvim`.

## Related Issue(s)

None

## Screenshots

<img width="580" height="760" alt="CleanShot 2025-07-13 at 08 02 10@2x"
src="https://github.com/user-attachments/assets/ebee1a54-1c3e-4248-8a09-eba65c838351"
/>


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-20 00:47:54 -07:00
Yiqian Liu
83468be350
fix(keymap): remove select mode remaps of printable characters (#6296)
## Description

Most of the "visual mode" mappings use "v" instead of "x", and therefore
also affect select mode.
If the key is a printable character, it is now unusable in select mode.
This is most prominent with `<leader>`, which is space by default, a
printable character.

The most common use of select mode is when it is automatically triggered
by snippets. Currently, trying to type space, g, <, >, etc. as the first
character of a snippet field will trigger their bind instead of actually
inserting the character.

I cannot currently think of any good reason why anyone would rely on
using select mode to execute any of these mapped actions.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 00:10:08 -07:00
Watson Dinh
f118dca334
fix(extras.lang): fix Scala extra by using nvimMetals only (#5726)
## Description
Scala lang Extra should NOT be configured via `neovim/nvim-lspconfig`.
This PR removes `neovim/nvim-lspconfig` config and replace it by
`nvim-metals` only. From [nvim-metals
README.md](https://github.com/scalameta/nvim-metals): _"NOTE: This
plugin works without needing to install neovim/nvim-lspconfig. If you
have it installed for other languages, that's not a problem, but make
sure you do not have Metals configured through nvim-lspconfig while
using this plugin"_

## Related Issue(s)

No specific issue, this is attempt to follow users guide of Scala nvim
plugin : https://github.com/scalameta/nvim-metals

## Screenshots

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 09:04:35 +02:00
Thomas Ung
8c5cc77107
docs(fr): add readme in french (#5300)
## Description

Contribution for https://github.com/LazyVim/LazyVim/discussions/506


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 00:01:17 -07:00
Grzegorz Aleksander Klementowski
d27e7adb53
Added Polish translation of README (README-PL.md) (#5816)
Added Polish translation of README (README-PL.md):

<div align="center">
<img
src="https://user-images.githubusercontent.com/292349/213446185-2db63fd5-8c84-459c-9f04-e286382d6e80.png">
</div>

<hr>

<h4 align="center">
  <a href="https://lazyvim.github.io/installation">Install</a>
  ·
  <a href="https://lazyvim.github.io/configuration">Configure</a>
  ·
  <a href="https://lazyvim.github.io">Docs</a>
</h4>

<div align="center"><p>
    <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 to konfiguracja Neovim oparta na [💤
lazy.nvim](https://github.com/folke/lazy.nvim)
która ułatwia dostosowywanie i rozszerzanie konfiguracji.
Zamiast wybierać między rozpoczynaniem od zera a używaniem gotowej
dystrybucji, LazyVim oferuje najlepsze z obu światów – elastyczność
pozwalającą na dostosowanie konfiguracji do własnych potrzeb oraz wygodę
wstępnie skonfigurowanego środowiska.


![image](https://user-images.githubusercontent.com/292349/211285846-0b7bb3bf-0462-4029-b64c-4ee1d037fc1c.png)


![image](https://user-images.githubusercontent.com/292349/213447056-92290767-ea16-430c-8727-ce994c93e9cc.png)

##  Funkcje

- 🔥 Przekształć Neovim w pełnoprawne IDE
- 💤 Łatwo dostosowuj i rozszerzaj swoją konfigurację dzięki
[lazy.nvim](https://github.com/folke/lazy.nvim)
- 🚀 Niezwykle szybkie działanie
- 🧹 Przemyślane domyślne ustawienia opcji, autocmd i skrótów
klawiszowych
- 📦 Zawiera bogaty zestaw wstępnie skonfigurowanych wtyczek gotowych do
użycia

## ️ Wymagania

- Neovim >= **0.9.0** (musi być skompilowany z **LuaJIT**)
- Git >= **2.19.0** (dla obsługi częściowego klonowania repozytoriów)
- [Nerd Font](https://www.nerdfonts.com/) **_(opcjonalnie)_**
- Kompilator **C** wymagany dla `nvim-treesitter`. Szczegóły
[tutaj](https://github.com/nvim-treesitter/nvim-treesitter#requirements)

## 🚀 Pierwsze kroki

Szablon startowy dla **LazyVim** znajdziesz
[tutaj](https://github.com/LazyVim/starter)

<details><summary>Wypróbuj z Dockerem</summary>

```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
  apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
  git clone https://github.com/LazyVim/starter ~/.config/nvim
  cd ~/.config/nvim
  nvim
'
```

</details>

<details><summary>Zainstaluj <a
href="https://github.com/LazyVim/starter">Starter LazyVim</a></summary>

- Wykonaj kopię zapasową swoich obecnych plików Neovim:

  ```sh
  mv ~/.config/nvim ~/.config/nvim.bak
  mv ~/.local/share/nvim ~/.local/share/nvim.bak
  ```

- Sklonuj repozytorium startowe:

  ```sh
  git clone https://github.com/LazyVim/starter ~/.config/nvim
  ```

- Usuń folder `.git`, aby później móc dodać własne repozytorium:

  ```sh
  rm -rf ~/.config/nvim/.git
  ```

- Uruchom Neovim!

  ```sh
  nvim
  ```

W plikach znajdziesz komentarze, które pomogą Ci dostosować **LazyVim**.

</details>

---

[@elijahmanor](https://github.com/elijahmanor) stworzył świetne wideo z
przewodnikiem, jak zacząć.

[![Obejrzyj
wideo](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)

[@dusty-phillips](https://github.com/dusty-phillips) napisał obszerną
książkę
[LazyVim for Ambitious
Developers](https://lazyvim-ambitious-devs.phillips.codes),
która jest dostępna za darmo online.

## 📂 Struktura plików

Pliki w katalogu `config` są automatycznie ładowane w odpowiednim
momencie,
więc nie musisz ich ręcznie dołączać.
**LazyVim** zawiera zestaw domyślnych plików konfiguracyjnych,
które zostaną załadowane **_przed_** Twoimi własnymi. Szczegóły
znajdziesz
[tutaj](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config).

Możesz dodać własne specyfikacje wtyczek w katalogu `lua/plugins/`.
Wszystkie pliki w tym folderze zostaną automatycznie załadowane przez
[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>

## ⚙️ Konfiguracja

Zapoznaj się z [dokumentacją](https://lazyvim.github.io).
2025-10-19 23:59:40 -07:00
Iordanis Petkakis
e38944799e
fix(util.project): different mapping on dashboard than snacks.projects (#5737)
## Description
Different mapping and description to not be confused with
`snacks.projects`.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #5736 
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 08:52:12 +02:00
Folke Lemaitre
1b2e6e8986
feat(extras): renamed extra omnisharp -> dotnet + added fautocomplete to lspconfig 2025-10-20 08:47:38 +02:00
Folke Lemaitre
37ecd06fad
feat(extras): automatically update lazyvim.json for renamed or deprecated extras 2025-10-20 08:46:45 +02:00
Folke Lemaitre
d44f8bf317
test: fix mason in extra tests 2025-10-20 08:36:01 +02:00
Christoph Schmidpeter
80a980ab00
feat(lang/fsharp): add F# support to omnisharp extra (#6538)
## Description
Extend the existing C#/VB setup to support F# development with
formatting, LSP, and debugging integration.

- Extend recommended filetypes and roots to include F#
- Ensure Treesitter installs the `fsharp` parser
- Add Fantomas formatter in none-ls and Conform
- Ensure Mason installs fsautocomplete and fantomas
- Extend DAP configurations to include `fsharp`

⚠️ For debugging/neotest to work, this PR should be merged together with
[#6540](https://github.com/LazyVim/LazyVim/pull/6540),
which switches Omnisharp extras from `neotest-dotnet` to
`neotest-vstest`.

## Related Issue(s)

N/A

## Screenshots

### Without PR

Sample code:
<img width="1485" height="934" alt="2025-09-27-224704_hyprshot"
src="https://github.com/user-attachments/assets/40993ae2-c7eb-458a-bca9-6e77a1fad323"
/>

### With PR

`:ConformInfo`
<img width="1280" height="573" alt="image"
src="https://github.com/user-attachments/assets/b417fce7-8eb5-4ccc-8bd4-c554060bf9a0"
/>

`:NullLsInfo`
<img width="732" height="544" alt="image"
src="https://github.com/user-attachments/assets/5275e16b-353f-4776-b130-09ec27fde90b"
/>

Sample code before formatting:
<img width="1953" height="1228" alt="2025-09-27-224729_hyprshot"
src="https://github.com/user-attachments/assets/870b17c7-2473-4151-9ccc-23b70d9fbc42"
/>

Sample code after formatting (using Fantomas formatter):
<img width="1930" height="1216" alt="2025-09-27-224752_hyprshot"
src="https://github.com/user-attachments/assets/3b589c2e-b7b2-4fbf-bef7-0aabda586536"
/>

DAP/Neotest debugging the sample code: 
<img width="2548" height="1461" alt="image"
src="https://github.com/user-attachments/assets/b70a9498-041e-48c8-8e7c-78a828d0e17d"
/>



## Attachments
[Sample Project ZIP
Archive](https://github.com/user-attachments/files/22576868/FsSample.zip)

```
sudo pacman -S --needed curl unzip dotnet-sdk # or whatever package manger is on system
curl -O -L "https://github.com/user-attachments/files/22576868/FsSample.zip"
unzip FsSample.zip
cd FsSample
dotnet build  # restoring/building fixes LSP errors 
```     

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: Christoph Schmidpeter <christoph.schmidpeter@gmail.com>
2025-10-20 08:02:50 +02:00
Folke Lemaitre
38df28f28c
style: formatting 2025-10-20 07:53:39 +02:00
XTY
0dc41dfe9a
refactor(vscode): reimplement terminal integration and unify calls to extension API (#6076)
## Description

This PR proposes the following changes to the VS Code extra:
- Re-implement the VS Code terminal integration (broken since
[`2f46974`](2f4697443c (diff-f878104b5415a79ed4bb9036974722cad911327fdd46994e04f5065ff90e9a55)),
see comment referenced below)
- Unify calls to the [extension
API](https://github.com/vscode-neovim/vscode-neovim/tree/v1.18.21?tab=readme-ov-file#%EF%B8%8F-api)
- Fully adopt the Lua API in favour of the deprecated Vim script
functions (see [deprecation
notice](https://github.com/vscode-neovim/vscode-neovim/tree/v1.18.21?tab=readme-ov-file#vimscript))
  - Centralise `require("vscode")` calls

## Related Issue(s)

- Fixes
https://github.com/LazyVim/LazyVim/pull/4392#issuecomment-2881395017

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-20 07:36:15 +02:00
Jose Storopoli
2a866f6c8c
feat(lang): nix add statix linter (#6244)
## Description

Adds [`statix`](https://github.com/oppiliappan/statix) linter to
`lang/nix.lua` using `nvim-lint`

## Related Issue(s)

None

## Screenshots


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 07:20:47 +02:00
Folke Lemaitre
e4d34328f2
fix(typescript): better default pwa-node DAP config. Closes #6386 2025-10-20 07:19:18 +02:00
Folke Lemaitre
1a08e9f50f
fix(telescope): sync keymaps with snacks picker + added some that were missing 2025-10-20 07:04:55 +02:00
folke
c3c2ff465b chore(build): auto-generate docs 2025-10-20 05:02:32 +00:00
Folke Lemaitre
69a5744803
fix(fzf-lua): added some missing keymaps similar to snacks picker. Closes #6036. Closes #5830 2025-10-20 07:01:27 +02:00
Folke Lemaitre
16917db94a
feat(sidekick): added sidekick cli status to lualine 2025-10-19 22:53:32 +02:00
github-actions[bot]
42840b2ffb
chore(main): release 15.9.0 (#6643)
🤖 I have created a release *beep* *boop*
---


##
[15.9.0](https://github.com/LazyVim/LazyVim/compare/v15.8.1...v15.9.0)
(2025-10-19)


### Features

* **docker:** associate 'Containerfile' with 'dockerfile' filetype
([#5974](https://github.com/LazyVim/LazyVim/issues/5974))
([97af4a2](97af4a23bc))
* **extras.rest:** add keymap for changing environment
([#5678](https://github.com/LazyVim/LazyVim/issues/5678))
([1da659d](1da659db4a))
* **java:** enable `blink.cmp` capabilities to show signature
documentation ([#5218](https://github.com/LazyVim/LazyVim/issues/5218))
([9618e32](9618e327ed))
* **lang/omnisharp:** switch neotest adapter to vstest
([#6540](https://github.com/LazyVim/LazyVim/issues/6540))
([4086d44](4086d44a0b))
* **neotest:** extra keymap to attach to a test
([#6198](https://github.com/LazyVim/LazyVim/issues/6198))
([66e927f](66e927fd9d))


### Bug Fixes

* **blink:** remove snippet expand override (no longer needed). Closes
[#6044](https://github.com/LazyVim/LazyVim/issues/6044)
([336e2c3](336e2c3ea6))
* **chezmoi:** add `hidden=false` to fzf picker
([#6095](https://github.com/LazyVim/LazyVim/issues/6095))
([1aa1b59](1aa1b59a7e))
* **copilot-chat:** use up to date config for chat headers
([#6543](https://github.com/LazyVim/LazyVim/issues/6543))
([2c5eef7](2c5eef7df7))
* **extras/rust:** fix config key for files.exclude
([#5664](https://github.com/LazyVim/LazyVim/issues/5664))
([762a34d](762a34d5ad))
* **extras:** adjust switch source/header shortcut
([#6567](https://github.com/LazyVim/LazyVim/issues/6567))
([b36b858](b36b8589b6))
* **extras:** remove procMacro ignored
([#6117](https://github.com/LazyVim/LazyVim/issues/6117))
([4a3702e](4a3702e050))
* **lang.omnisharp:** update CSharpier command and arguments for Mason
compatibility ([#6156](https://github.com/LazyVim/LazyVim/issues/6156))
([dfebe70](dfebe70b8d))
* **lang.rust:** rust-analyzer hanging on root scanned
([#6178](https://github.com/LazyVim/LazyVim/issues/6178))
([7bf8c22](7bf8c22c56))
* **latex:** ensure tex extra installs latex tree-sitter parser
([#6357](https://github.com/LazyVim/LazyVim/issues/6357))
([ae74622](ae74622e66))
* **mini.animate:** schedule the toggle mapping to correctly take effect
([#6483](https://github.com/LazyVim/LazyVim/issues/6483))
([bd23357](bd233579a6))
* **sql:** fix autocomplete when `omni` is used as a `blink.cmp` source
([#5652](https://github.com/LazyVim/LazyVim/issues/5652))
([f6f72b9](f6f72b90d4))
* **treesitter:** attach textobject keymaps to existing buffers on load.
Closes [#6642](https://github.com/LazyVim/LazyVim/issues/6642). Closes
[#6639](https://github.com/LazyVim/LazyVim/issues/6639)
([92a7728](92a7728732))
* **typescript:** make_position_params with offset encoding.
([#6277](https://github.com/LazyVim/LazyVim/issues/6277))
([22152e9](22152e958f))
* **ui:** ignore sidekick_terminal in mini-indentscope
([#6619](https://github.com/LazyVim/LazyVim/issues/6619))
([f0b32b5](f0b32b5955))
* **util:** add some kulala keymaps back to global
([#5960](https://github.com/LazyVim/LazyVim/issues/5960))
([a16739e](a16739e332))
* **vscode:** don't sync undo/redo with vscode
([#5957](https://github.com/LazyVim/LazyVim/issues/5957))
([706ec44](706ec4443a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-19 13:00:52 +02:00
Folke Lemaitre
c460e97d2b
style: format 2025-10-19 12:57:09 +02:00
Lawrence Ho
9618e327ed
feat(java): enable blink.cmp capabilities to show signature documentation (#5218)
## Description

Enable `blink.cmp` capabilities to show Java signature documentation
during completion.
See also: https://github.com/Saghen/blink.cmp/issues/151

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:55:38 +02:00
Igor Guerrero
f6f72b90d4
fix(sql): fix autocomplete when omni is used as a blink.cmp source (#5652)
## Description

I was trying the `omni` source with `blink.cmp` and I had an error which
you can read more about in this `nvim-compe` issue:
https://github.com/hrsh7th/nvim-compe/issues/286 but the message keeps
showing up after setting that to `syntax` so I mark the default plugin
as loaded, and it works as expected, I think there are more items
returned but I cannot confirm that :).

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:54:41 +02:00
Jarryd Tilbrook
a16739e332
fix(util): add some kulala keymaps back to global (#5960)
## Description

Some kulala keymaps are useful to access globally, such as the
scratchpad. However, #4467 #4574 added all of them to http filetypes
only

This adds the scratchpad and replay last to global keymaps

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:53:46 +02:00
Michael Nikitochkin
97af4a23bc
feat(docker): associate 'Containerfile' with 'dockerfile' filetype (#5974)
## Description

'Containerfile' [1] is a supported alternative name for container build
definitions. It is recognized by Docker and other container tools, and
can help clarify intent in multi-container repositories or
non-Docker-specific setups.

[1]:
https://github.com/containers/common/blob/main/docs/Containerfile.5.md

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:47:59 +02:00
Kian Kasad
7038687b20
chore(python): use debugpy-adapter executable for nvim-dap-python (#6080)
## Description

Uses a less hacky and now officially-supported way of getting the
debugpy DAP adapter path for nvim-dap-python.

Since https://github.com/mfussenegger/nvim-dap-python/pull/184,
nvim-dap-python can start the debugpy adapter using the
`debugpy-adapter` executable. Since
[Mason](f7c1c2fde2/packages/debugpy/package.yaml (L17))
and [now debugpy itself](https://github.com/microsoft/debugpy/pull/1870)
provide this executable, there's no need to get the `python` executable
from debugpy's venv.

I've gone with just `"debugpy-adapter"` rather than
`LazyVim.get_pkg_path("debugpy", "debugpy-adapter")` so that a
system-wide installation of debugpy can also be used.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:47:17 +02:00
CaueDosAnjos
dfebe70b8d
fix(lang.omnisharp): update CSharpier command and arguments for Mason compatibility (#6156)
## Description
This PR updates the CSharpier integration in LazyVim to reflect changes
in how Mason installs the formatter.

Previously, Mason installed CSharpier as the `dotnet-csharpier` binary,
which allowed running it without additional arguments. Now, Mason
installs it simply as `csharpier`, requiring the explicit format
argument for it to work correctly.

This change updates the formatter command and arguments accordingly to
ensure compatibility with the latest Mason installation and CSharpier
CLI behavior.

## Changes
Replaced `dotnet-csharpier` with `csharpier` as the executable command.

Added the required `format` argument to the command invocation.

## Related Issue(s)
Fixes #6155

## Checklist
I have read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:46:46 +02:00
Folke Lemaitre
336e2c3ea6
fix(blink): remove snippet expand override (no longer needed). Closes #6044 2025-10-19 12:45:07 +02:00
Felix Rath
762a34d5ad
fix(extras/rust): fix config key for files.exclude (#5664)
## Description

It seems like the key changed its name from `files.excludeDirs` to
`files.exclude` at some point. At least that is the (only) name that can
be found in the docs now:
https://rust-analyzer.github.io/book/configuration.html (ctrl+f for
"files.exclude")

Also add `".jj"` as an excluded directory, which is like `".git"` but
for jujutsu
(https://jj-vcs.github.io/jj/latest/cli-reference/#jj-git-init).

---

As an aside, `cargo.loadOutDirsFromCheck` also does not seem to exist
(anymore). But I don't know more about that option, so I haven't touched
it in this PR.

## Related Issue(s)

Not sure if any.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:37:57 +02:00
Ethan
4a3702e050
fix(extras): remove procMacro ignored (#6117)
## Description
I think we should remove rust-analyzer procMacro.ignore because it will
cause some diagnostics which are not expected.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
https://github.com/LazyVim/LazyVim/issues/6111

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:36:04 +02:00
Theo Lemay
706ec4443a
fix(vscode): don't sync undo/redo with vscode (#5957)
## Description

Vscode-neovim maintainer here,
https://github.com/LazyVim/LazyVim/pull/4983 should not have been
merged, it creates more problems than it
solves. For the longest time I was trying to figure out why undo is
broken on my machine, didn't notice this slipped in.

The fundamental issue is that vscode's undo points are based on a
time-based heuristic, wheras neovim's undo points are based on atomic
actions (delete, insert, etc). Vscode doesn't understand the context of
what the user is doing, it just receives a stream of edits from neovim.

Ultimately this results in multiple unrelated edits being undone with a
single press of the u key, resulting in very confusing behavior.

## Related Issue(s)

https://github.com/LazyVim/LazyVim/pull/4983

## Screenshots

Current


https://github.com/user-attachments/assets/5ca33b0d-fe2e-49f9-aa17-66f3c42c0966

Expected


https://github.com/user-attachments/assets/d577a1f3-efb2-4725-be50-bd0cf691252d



## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: Theo Lemay <tlemay@tesla.com>
2025-10-19 12:31:48 +02:00
Nguyen Hoai Nam
22152e958f
fix(typescript): make_position_params with offset encoding. (#6277)
Fixed for issue https://github.com/LazyVim/LazyVim/issues/6276
2025-10-19 12:30:58 +02:00
Christoph Schmidpeter
4086d44a0b
feat(lang/omnisharp): switch neotest adapter to vstest (#6540)
## Description
Replace `neotest-dotnet` with `neotest-vstest` in the Omnisharp extras.

The maintainer of `neotest-dotnet` has announced possible archiving and
recommended moving toward a vstest-based approach
(see Issafalcon/neotest-dotnet#142).

In addition, `neotest-dotnet` often fails to reliably discover tests
(currently reproducible), while `neotest-vstest` works consistently in
those same scenarios.

`neotest-vstest` delegates to Microsoft’s VSTest engine, which provides:

- Framework-agnostic discovery and execution (xUnit, NUnit, MSTest,
etc.)
- Support for both C# and F#
- Parameterized test support
- Compatibility with Microsoft.Testing.Platform going forward

According to the `neotest-dotnet` maintainer, this vstest-based approach
is more reliable and maintainable than parser-based discovery and is the
recommended path going forward.
## Related Issue(s)
- Ref: Issafalcon/neotest-dotnet#142
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: Christoph Schmidpeter <christoph.schmidpeter@gmail.com>
2025-10-19 12:29:00 +02:00
Tomas Slusny
2c5eef7df7
fix(copilot-chat): use up to date config for chat headers (#6543)
The config format changed a while ago due to function calling support

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2025-10-19 12:28:25 +02:00
Roland Kaminski
b36b8589b6
fix(extras): adjust switch source/header shortcut (#6567)
The command to switch header and source is now called
`:LspClangdSwitchSourceHeader` and no longer
`:ClangdSwitchSourceHeader`.

## Description

This is just a small fix due to a command that has been renamed.

I did not find the documentation but the relevant line in the code where
the command is defined is here:
-
e688b486fe/lsp/clangd.lua (L92)

## Related Issue(s)

I did not find any related issues.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:27:42 +02:00
Lorenzo Bettini
d14b7733e7
docs(mini-snippets): fix typo in the documentation (#5953)
typo `snippits`

## Description

Just a fix for the typo `snippits`

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:26:42 +02:00
xusd320
7bf8c22c56
fix(lang.rust): rust-analyzer hanging on root scanned (#6178)
## Description

I encounter the RA hanging problem when coding on next.js project, and
found the solution to fix this at here .
https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344
2025-10-19 12:26:20 +02:00
Jarryd Tilbrook
66e927fd9d
feat(neotest): extra keymap to attach to a test (#6198)
## Description

An extra keymap useful when running tests to attach to the test.

## Related Issue(s)

N/A

## Screenshots

N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:23:23 +02:00
Frankie Robertson
ae74622e66
fix(latex): ensure tex extra installs latex tree-sitter parser (#6357)
## Description

Currently we don't ensure the latex treesitter is installed for latex.
Although it is not used for highlighting, it is used by default plugins
like flash, so this adds it to the list

## Related Issue(s)

https://github.com/LazyVim/LazyVim/pull/1156

Co-authored-by: Frankie Robertson <frankie@robertson.name>
2025-10-19 12:22:33 +02:00
Jackie Li
f0b32b5955
fix(ui): ignore sidekick_terminal in mini-indentscope (#6619) 2025-10-19 12:21:17 +02:00
Anant Thazhemadam
98b97d7b00
docs(ui): fix typo - s/inent/indent/ (#6584)
## Description

This fixes a typo I noticed in the docs.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:20:34 +02:00
Zhizhen He
dea0ae44be
style(lean): fix typo (#6600)
## Description

Fix typo in comment for lean extra.

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:20:19 +02:00
Iordanis Petkakis
1aa1b59a7e
fix(chezmoi): add hidden=false to fzf picker (#6095)
## Description
Since #5275, the fzf picker has changed to use the `files` picker
instead of `fzf_exec` like before.

That means it also inherits the options of `files` picker, where `hidden
= true`. Just the command had been changed to use the `chezmoi` command,
but it doesn't make sense to have `hidden = true`, since it just appends
`--hidden` to the command which was supposed to be `fzf`, but now with
`chezmoi` it's not recognized.

Add `hidden = false` to the `files` picker when the command is chezmoi.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #6094
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:19:30 +02:00
Rico Sta. Cruz
1da659db4a
feat(extras.rest): add keymap for changing environment (#5678)
## Description

Context:

- kulala.nvim is an HTTP client, which is used in extras.rest
- The kulala [default
keymaps](https://neovim.getkulala.net/docs/getting-started/default-keymaps)
include a keymap to "set environment" (eg to change from production to
staging)
- This keymap is missing in extras/rest.lua

In this PR:

This adds a keymap for `<leader>Re` in extras.rest.lua.

## Screenshots

This adds `e` here:

<img width="595" alt="image"
src="https://github.com/user-attachments/assets/f06f527c-731c-4f81-ad17-0018de9e95d0"
/>

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:16:55 +02:00
folke
3d824e1162 chore(build): auto-generate docs 2025-10-19 05:46:27 +00:00
Iordanis Petkakis
bd233579a6
fix(mini.animate): schedule the toggle mapping to correctly take effect (#6483)
## Description
`mini.animate`'s toggle mapping didn't take effect, presumably because
`keymaps.lua` is the last one to execute on `VeryLazy`. Schedule it to
correctly overwrite the default from `keymaps.lua`.

I would also be interested if you don't mind to explain to me how can I
find out the order of the events execution if there are multiple
executions on the same event (i.e on `VeryLazy` what is the order of the
execution? Is it arbitrary?)
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None. Saw a discussion on `snacks.nvim` and OP wanted to change the
mapping and when I tested with `mini.animate` Extra I noticed that its
mapping wasn't overriding the default one from `keymaps.lua`.
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 07:45:33 +02:00
Folke Lemaitre
92a7728732
fix(treesitter): attach textobject keymaps to existing buffers on load. Closes #6642. Closes #6639 2025-10-18 15:26:41 +02:00
github-actions[bot]
561da43c43
chore(main): release 15.8.1 (#6641)
🤖 I have created a release *beep* *boop*
---


##
[15.8.1](https://github.com/LazyVim/LazyVim/compare/v15.8.0...v15.8.1)
(2025-10-18)


### Bug Fixes

* **treesitter:** reload lazyvim.tresitter.util to prevent issues with
stale modules when upgrading
([62ce8a2](62ce8a23d8))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-18 08:34:17 +02:00
folke
23bdbc91eb chore(build): auto-generate docs 2025-10-18 04:39:45 +00:00
Folke Lemaitre
62ce8a23d8
fix(treesitter): reload lazyvim.tresitter.util to prevent issues with stale modules when upgrading 2025-10-18 06:38:45 +02:00
github-actions[bot]
048056e952
chore(main): release 15.8.0 (#6576)
🤖 I have created a release *beep* *boop*
---


##
[15.8.0](https://github.com/LazyVim/LazyVim/compare/v15.7.1...v15.8.0)
(2025-10-17)


### Features

* **gleam:** add conform
([#5640](https://github.com/LazyVim/LazyVim/issues/5640))
([02b8dd3](02b8dd3f4b))
* **sidekick:** added `<leader>ad` to close/detach a terminal/session
([f8b062b](f8b062b130))
* **sidekick:** changed default keymaps for sidekick. Please check
updated docs at sidekick.nvim
([a3e52dd](a3e52dd346))
* **sidekick:** use `<a-a>` in any snacks picker to send the (selected)
results to an AI tool
([26c43a9](26c43a9b93))
* **treesitter:** add installation instructions to get a C compiler on
windows
([37032da](37032dabd6))
* **treesitter:** added support for `disable` langs to
indent/highlight/folds. Closes
[#6608](https://github.com/LazyVim/LazyVim/issues/6608)
([0e8069c](0e8069c78e))
* **treesitter:** better health checks for treesitter requirements
([413b9d5](413b9d5fa9))
* **treesitter:** on windows, use `gcc` if available and `cl.exe` is not
available for building parsers
([2a1f3c3](2a1f3c3701))


### Bug Fixes

* **blink:** disable blink left/right key in the cmdline
([94c4603](94c4603b68))
* **keymaps:** update deprecated diagnostic keymap to latest api change
([#6574](https://github.com/LazyVim/LazyVim/issues/6574))
([b9d38f6](b9d38f6920))
* **sidekick:** only add copilot to lspconfig when `opts.nes.enabled ~=
false`
([049db39](049db39de0))
* **terminal:** term toggle keymaps now only work for snacks terminals.
Closes [#6573](https://github.com/LazyVim/LazyVim/issues/6573)
([4efd0e2](4efd0e2bea))
* **treesiter:** check that `disable` options are tables
([e8c5fa7](e8c5fa7eae))
* **treesitter:** better check on windows if microsoft build tools is
installed
([5effc77](5effc77185))
* **xtras:** load `copilot-native` before `blink`
([#6588](https://github.com/LazyVim/LazyVim/issues/6588))
([aa2c436](aa2c43633a))


### Performance Improvements

* **ansible:** load on ft=yaml and run should only be mapped on
ft=yaml.ansible
([ebdcf1b](ebdcf1ba7e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-17 19:21:12 +02:00
folke
b90e9cb73a chore(build): auto-generate docs 2025-10-17 17:19:47 +00:00
Folke Lemaitre
26c43a9b93
feat(sidekick): use <a-a> in any snacks picker to send the (selected) results to an AI tool 2025-10-17 19:18:28 +02:00
Folke Lemaitre
5effc77185
fix(treesitter): better check on windows if microsoft build tools is installed 2025-10-15 19:43:44 +02:00
folke
144fe24be1 chore(build): auto-generate docs 2025-10-15 06:43:19 +00:00
Folke Lemaitre
37032dabd6
feat(treesitter): add installation instructions to get a C compiler on windows 2025-10-15 08:42:05 +02:00
Folke Lemaitre
413b9d5fa9
feat(treesitter): better health checks for treesitter requirements 2025-10-15 08:38:37 +02:00
Folke Lemaitre
2a1f3c3701
feat(treesitter): on windows, use gcc if available and cl.exe is not available for building parsers 2025-10-15 08:38:37 +02:00
folke
f8e8ea4b5e chore(build): auto-generate docs 2025-10-14 11:18:24 +00:00
Vu Nhat Chuong
02b8dd3f4b
feat(gleam): add conform (#5640)
## Description

Add conform.nvim formatter for gleam lanuage.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-14 13:17:22 +02:00
folke
cfc0ae0184 chore(build): auto-generate docs 2025-10-12 12:27:10 +00:00
Folke Lemaitre
ebdcf1ba7e
perf(ansible): load on ft=yaml and run should only be mapped on ft=yaml.ansible 2025-10-12 14:26:07 +02:00
Zhizhen He
c2aa088300
docs(README): bump Neovim requirement to 0.11.2 (#6611)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

Update neovim requirement in readme.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-11 08:48:48 +02:00
folke
eaa3d4d428 chore(build): auto-generate docs 2025-10-11 06:17:37 +00:00
Folke Lemaitre
049db39de0
fix(sidekick): only add copilot to lspconfig when opts.nes.enabled ~= false 2025-10-11 08:16:17 +02:00
Folke Lemaitre
f8b062b130
feat(sidekick): added <leader>ad to close/detach a terminal/session 2025-10-11 00:05:16 +02:00
Folke Lemaitre
e8c5fa7eae
fix(treesiter): check that disable options are tables 2025-10-10 20:57:44 +02:00
folke
c1aef3b62a chore(build): auto-generate docs 2025-10-10 04:46:21 +00:00
Folke Lemaitre
0e8069c78e
feat(treesitter): added support for disable langs to indent/highlight/folds. Closes #6608 2025-10-10 06:45:12 +02:00
Folke Lemaitre
4efd0e2bea
fix(terminal): term toggle keymaps now only work for snacks terminals. Closes #6573 2025-10-09 22:08:13 +02:00
Folke Lemaitre
94c4603b68
fix(blink): disable blink left/right key in the cmdline 2025-10-09 18:08:27 +02:00
folke
a205ef889f chore(build): auto-generate docs 2025-10-09 11:47:28 +00:00
Vlad
92ff787e73
chore(render-markdown): use API to toggle (#6558)
## Description

The `state` module in `render-markdown` is not expected to be accessed
outside of the package and may be refactored in the future.

Prevent any breaking changes in LazyVim by using the public API which
was updated here:

accaa600ba

## Related Issue(s)

None

## Screenshots

N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-09 13:47:01 +02:00
Iordanis Petkakis
aa2c43633a
fix(xtras): load copilot-native before blink (#6588)
## Description
`blink` Extra loads earlier than `copilot-native` Extra and that causes
`ghost_text.enabled = vim.g.ai_cmp` to wrongly evaluate to `true` even
though `copilot-native` explicitly sets `vim.g.ai_cmp = false`.

I also changed the order of `blink` and `typescript` so that `blink`
comes logically right after `copilot-native`, hope that is not a
problem. If it is, feel free to revert the order and just keep the
change about `copilot-native`.

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None, I was just trying to create a toggle mapping to disable/enable
both NES and inline_completion and even though they were disabled, I
could see ghost_text from blink.
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-09 13:46:25 +02:00
Folke Lemaitre
a3e52dd346
feat(sidekick): changed default keymaps for sidekick. Please check updated docs at sidekick.nvim 2025-10-09 00:12:43 +02:00
folke
74f3c7c36d chore(build): auto-generate docs 2025-10-08 19:33:56 +00:00
Folke Lemaitre
8546f6232e
ci: update minit.lua 2025-10-08 21:32:23 +02:00
Folke Lemaitre
c220e04cd6
ci: update test scripts 2025-10-08 21:26:13 +02:00
Md. Iftakhar Awal Chowdhury
b9d38f6920
fix(keymaps): update deprecated diagnostic keymap to latest api change (#6574)
## Description

refectors deprecated `diagnostic_goto` calls to newer
`vim.diagnostic.jump` API.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-02 20:52:41 +02:00
github-actions[bot]
dc1ffa5bcb
chore(main): release 15.7.1 (#6575)
🤖 I have created a release *beep* *boop*
---


##
[15.7.1](https://github.com/LazyVim/LazyVim/compare/v15.7.0...v15.7.1)
(2025-10-02)


### Bug Fixes

* **sidekick:** better keymaps
([188b288](188b288614))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-02 19:18:17 +02:00
Folke Lemaitre
188b288614
fix(sidekick): better keymaps 2025-10-02 19:14:52 +02:00
folke
7fb57a7081 chore(build): auto-generate docs 2025-10-02 05:24:03 +00:00
github-actions[bot]
fab399c90d
chore(main): release 15.7.0 (#6556)
🤖 I have created a release *beep* *boop*
---


##
[15.7.0](https://github.com/LazyVim/LazyVim/compare/v15.6.0...v15.7.0)
(2025-10-01)


### Features

* **sidekick:** updated keymaps for sidekick
([2942bd4](2942bd4a0d))


### Bug Fixes

* **copilot-native:** schedule inline_completion.enable
([23b1da1](23b1da170f))
* **sidekick:** better keymaps
([aabc03f](aabc03f88d))
* **stylua:** stylua is now also an LSP. Disable it since we use the CLI
tool.
([2f76d57](2f76d572a2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-02 07:22:59 +02:00
Folke Lemaitre
2942bd4a0d
feat(sidekick): updated keymaps for sidekick 2025-10-01 22:18:05 +02:00
Folke Lemaitre
aabc03f88d
fix(sidekick): better keymaps 2025-10-01 19:05:48 +02:00
folke
2df7988b1e chore(build): auto-generate docs 2025-10-01 17:05:13 +00:00
Folke Lemaitre
23b1da170f
fix(copilot-native): schedule inline_completion.enable 2025-10-01 19:04:14 +02:00
Folke Lemaitre
2f76d572a2
fix(stylua): stylua is now also an LSP. Disable it since we use the CLI tool. 2025-09-30 18:10:39 +02:00
github-actions[bot]
4ebcd611b2
chore(main): release 15.6.0 (#6536)
🤖 I have created a release *beep* *boop*
---


##
[15.6.0](https://github.com/LazyVim/LazyVim/compare/v15.5.0...v15.6.0)
(2025-09-30)


### Features

* **sidekick:** added keymaps to work with AI cli tools
([5d18a46](5d18a46b6a))
* **sidekick:** fancier lualine component
([b889978](b889978151))


### Bug Fixes

* **config:** clipboard:get()
([22851dc](22851dce97))
* **copilot-native:** change Copilot-native's `<M-[>` description to
"Prev Suggestion"
([#6553](https://github.com/LazyVim/LazyVim/issues/6553))
([089d0a5](089d0a5ac1))
* **sidekick:** changed keymap to open new tool
([3d3739b](3d3739b4b8))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-30 16:43:00 +02:00
Folke Lemaitre
22851dce97
fix(config): clipboard:get() 2025-09-30 15:42:15 +02:00
folke
aa8115848d chore(build): auto-generate docs 2025-09-30 04:49:39 +00:00
Jonathan Pollak
089d0a5ac1
fix(copilot-native): change Copilot-native's <M-[> description to "Prev Suggestion" (#6553)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
The description for both `<M-]>` and `<M-[>` in the `copilot-native`
extra are described as `Next Copilot Suggestion`. The PR changes the
description of `<M-[>` to be `Prev Copilot Suggestion`

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-30 06:48:46 +02:00
Folke Lemaitre
3d3739b4b8
fix(sidekick): changed keymap to open new tool 2025-09-30 00:03:41 +02:00
folke
44e3797416 chore(build): auto-generate docs 2025-09-29 21:13:28 +00:00
Folke Lemaitre
5d18a46b6a
feat(sidekick): added keymaps to work with AI cli tools 2025-09-29 23:12:20 +02:00
Folke Lemaitre
b889978151
feat(sidekick): fancier lualine component 2025-09-27 19:53:16 +02:00
github-actions[bot]
060e6dfaf7
chore(main): release 15.5.0 (#6533)
🤖 I have created a release *beep* *boop*
---


##
[15.5.0](https://github.com/LazyVim/LazyVim/compare/v15.4.0...v15.5.0)
(2025-09-27)


### Features

* **ai.copilot-native:** let sidekick.nvim handle some things if
available
([b25ea9c](b25ea9c153))
* **ai:** added completion hooks for next edit suggestions
([30a325d](30a325d671))
* **extras:** added extra for `sidekick.nvim` (Copilot LSP integration)
([dbfe209](dbfe20996c))


### Bug Fixes

* **ai.copilot:** disable copilot lsp if installed. copilot.lua needs
its own version of the LSP
([e9bc607](e9bc6074d1))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-27 18:54:19 +02:00
folke
eee364552e chore(build): auto-generate docs 2025-09-27 16:42:47 +00:00
Folke Lemaitre
dbfe20996c
feat(extras): added extra for sidekick.nvim (Copilot LSP integration) 2025-09-27 18:41:34 +02:00
Folke Lemaitre
30a325d671
feat(ai): added completion hooks for next edit suggestions 2025-09-26 15:57:00 +02:00
Folke Lemaitre
b25ea9c153
feat(ai.copilot-native): let sidekick.nvim handle some things if available 2025-09-26 15:56:17 +02:00
Folke Lemaitre
e9bc6074d1
fix(ai.copilot): disable copilot lsp if installed. copilot.lua needs its own version of the LSP 2025-09-26 15:55:32 +02:00
github-actions[bot]
92b7fcf7b1
chore(main): release 15.4.0 (#6515)
🤖 I have created a release *beep* *boop*
---


##
[15.4.0](https://github.com/LazyVim/LazyVim/compare/v15.3.0...v15.4.0)
(2025-09-26)


### Features

* **copilot-native:** added experimental support for next edit
suggestions. check the docs to enable
([c83df9e](c83df9e68d))
* **copilot-native:** added keymaps to cycle suggestions
([6bd630c](6bd630cec6))
* **copilot-native:** better lualine status
([9913e16](9913e1665d))
* **copilot-native:** removed experimental **nes** support with
`copilot_lsp` for now, since it's not the best experience right now
([ed637bb](ed637bb0f7))
* **copilot:** added `copilot-native` extra to setup native inline
completions in Neovim
([3b02963](3b02963585))


### Bug Fixes

* **catppuccin:** follow-up on api change
([#6505](https://github.com/LazyVim/LazyVim/issues/6505))
([af6e250](af6e2505b5))
* **treesitter:** create buffer-local textobjects keymaps only when
available. Closes
[#6508](https://github.com/LazyVim/LazyVim/issues/6508)
([5985ca0](5985ca0cf1))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-26 12:16:12 +02:00
Folke Lemaitre
ed637bb0f7
feat(copilot-native): removed experimental **nes** support with copilot_lsp for now, since it's not the best experience right now 2025-09-26 12:14:33 +02:00
folke
c467282a83 chore(build): auto-generate docs 2025-09-26 04:37:07 +00:00
robin
af6e2505b5
fix(catppuccin): follow-up on api change (#6505)
## Description

https://github.com/catppuccin/nvim/pull/931 will change the api for
accessing the bufferline integration. im making this follow up pr so it
wont have to be done through a user :)
(sorry about https://github.com/LazyVim/LazyVim/pull/6354)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-26 06:36:14 +02:00
Folke Lemaitre
c83df9e68d
feat(copilot-native): added experimental support for next edit suggestions. check the docs to enable 2025-09-25 15:30:28 +02:00
Folke Lemaitre
6bd630cec6
feat(copilot-native): added keymaps to cycle suggestions 2025-09-25 12:30:50 +02:00
Folke Lemaitre
9913e1665d
feat(copilot-native): better lualine status 2025-09-25 11:11:40 +02:00
Folke Lemaitre
3b02963585
feat(copilot): added copilot-native extra to setup native inline completions in Neovim 2025-09-25 10:31:17 +02:00
folke
1d404815f0 chore(build): auto-generate docs 2025-09-25 05:37:13 +00:00
Folke Lemaitre
5985ca0cf1
fix(treesitter): create buffer-local textobjects keymaps only when available. Closes #6508 2025-09-25 07:35:59 +02:00
Folke Lemaitre
8a76098461
style(lsp): typo 2025-09-23 13:06:34 +02:00
github-actions[bot]
6e3a06306d
chore(main): release 15.3.0 (#6486)
🤖 I have created a release *beep* *boop*
---


##
[15.3.0](https://github.com/LazyVim/LazyVim/compare/v15.2.0...v15.3.0)
(2025-09-23)


### Features

* **copilot:** use `blink-copilot` as blink.cmp copilot source
([#5551](https://github.com/LazyVim/LazyVim/issues/5551))
([13069f2](13069f2018))
* **treesitter:** show an error if the user tries to set a custom
treesitter compiler
([89ff1fd](89ff1fd600))


### Bug Fixes

* **jdtls:** allow mason jdtls installation
([#6498](https://github.com/LazyVim/LazyVim/issues/6498))
([80990ec](80990ec62f))
* **jdtls:** bundle configuration bug fix
([#6499](https://github.com/LazyVim/LazyVim/issues/6499))
([c423765](c423765962))
* **keymaps:** enable snacks git keybindings
([#6323](https://github.com/LazyVim/LazyVim/issues/6323))
([720e06a](720e06a908))
* **lsp:** fix mason install/exclude. Closes
[#6504](https://github.com/LazyVim/LazyVim/issues/6504)
([37b1ec4](37b1ec41ae))
* **lsp:** fixup for when not using mason
([a90b565](a90b56518f))
* **luasnip:** add missing optional tag to garymjr/nvim-snippets
([#5733](https://github.com/LazyVim/LazyVim/issues/5733))
([37a1c1a](37a1c1af5d))
* **vtsls:** fix and move denols/vtsls disambigutaion to typescript
extra. Fixes [#6476](https://github.com/LazyVim/LazyVim/issues/6476)
([775621a](775621ac0a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-23 13:02:58 +02:00
Folke Lemaitre
67781bda04
Revert "fix(jdtls): allow mason jdtls installation (#6498)"
This reverts commit 80990ec62f.
2025-09-23 13:00:13 +02:00
folke
6229f5a2dd chore(build): auto-generate docs 2025-09-23 10:59:38 +00:00
Folke Lemaitre
37b1ec41ae
fix(lsp): fix mason install/exclude. Closes #6504 2025-09-23 12:58:45 +02:00
folke
21518ae8a3 chore(build): auto-generate docs 2025-09-22 11:57:00 +00:00
dareni
c423765962
fix(jdtls): bundle configuration bug fix (#6499)
The jar for the debug adapter was included but the operation to append
the java-test jar files failed.
2025-09-22 13:56:18 +02:00
dareni
80990ec62f
fix(jdtls): allow mason jdtls installation (#6498)
Bug fix jdtls config for compatibility with last lsp refactor.
2025-09-22 13:55:56 +02:00
Frestein ☁️
37a1c1af5d
fix(luasnip): add missing optional tag to garymjr/nvim-snippets (#5733)
## Description

This pull request fixes an issue where the `nvim-snippets` plugin was
incorrectly marked as disabled due to the missing optional tag in the
configuration. By adding the `optional = true` tag, the plugin will no
longer appear as disabled when it is not installed.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

Before:

![image](https://github.com/user-attachments/assets/8391b047-22e6-416b-acb8-3b8af3932469)

After:

![image](https://github.com/user-attachments/assets/8c1775ce-8aa9-434e-986d-a1db3ac7bd56)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-21 15:51:56 +02:00
filip
720e06a908
fix(keymaps): enable snacks git keybindings (#6323)
## Description
Enable snacks git keybindings even if `lazygit` is not installed  
Related discussion: https://github.com/LazyVim/LazyVim/discussions/6322

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-21 15:42:38 +02:00
Vladimir Shvets
7d5365ad14
fix(lualine): pretty path fix for mixed case paths on Windows (#4911)
## Description

Here's an example of the issue:

```lua
local pretty_path = require('lazyvim.util').lualine.pretty_path({ relative = 'cwd' })

-- just a stub
local component = {
  create_hl = function() end,
  format_hl = function() return '' end,
  get_default_hl = function() return '' end
}

local cwd = vim.fn.getcwd()
vim.print('cwd: ' .. cwd)
vim.print('pretty path: ' .. pretty_path(component))

-- results if `cd d:\tmp` was called previously
-- cwd: d:\tmp
-- pretty path: d:\tmp\pretty_path_issue.lua
--
-- results if `cd D:\tmp` was called previously
-- cwd: D:\tmp
-- pretty path: pretty_path_issue.lua
```

Depending on the initial path of the `cd` we either get a pretty path or
we don't =)

I'm not sure if this should be fixed in the neovim itself (considering
windows paths as case-insensitive), but I would assume that would take a
lot longer to land there, if it's even considered a needed change

## Related Issue(s)

Somewhat related to #4763, where I've left a comment, but decided to
look a bit deeper

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-21 15:29:53 +02:00
Zhou Fang
13069f2018
feat(copilot): use blink-copilot as blink.cmp copilot source (#5551)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

After reviewing and fixing bugs in blink-cmp-copilot, I realized that
there is significant room for improvement in its codebase. So I created
a new copilot source `blink-copilot` for `blink.cmp` that introduces
many new features, enhanced performance, and official `copilot.vim`
backend support. (`copilot.lua` is supported by default)

The plugin has been starred by over 30 users, and it is growing faster
than blink-cmp-copilot. After more than two weeks of gathering feedback
and addressing bugs, the plugin has become very stable, and I believe
it’s time to share it with a broader audience.

`blink-copilot` register the kind `Copilot` by default, so there is no
need to do extra transforming on the completion items.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-21 14:40:15 +02:00
Folke Lemaitre
a90b56518f
fix(lsp): fixup for when not using mason 2025-09-21 12:35:17 +02:00
Folke Lemaitre
16637dd655
refactor(lsp): cleanup lsp/mason-lspconfig code 2025-09-21 12:34:27 +02:00
Folke Lemaitre
775621ac0a
fix(vtsls): fix and move denols/vtsls disambigutaion to typescript extra. Fixes #6476 2025-09-21 11:58:59 +02:00
folke
89ce0438d6 chore(build): auto-generate docs 2025-09-21 09:05:18 +00:00
Folke Lemaitre
89ff1fd600
feat(treesitter): show an error if the user tries to set a custom treesitter compiler 2025-09-21 11:04:25 +02:00
github-actions[bot]
b4606f9df3
chore(main): release 15.2.0 (#6468)
🤖 I have created a release *beep* *boop*
---


##
[15.2.0](https://github.com/LazyVim/LazyVim/compare/v15.1.1...v15.2.0)
(2025-09-20)


### Features

* **clojure:** use 'nvim-paredit' instead 'nvim-treesitter-sexp' as
clojure S-exp Plugin
([#5876](https://github.com/LazyVim/LazyVim/issues/5876))
([2659028](26590285ea))
* **core:** relax hard requirement for `vim.lsp.is_enabled`. Show
warning instead
([3ca7b47](3ca7b47365))
* **options:** don't overwrite indentexpr/foldexpr/foldmethod when set
by plugins. Fixes
[#6464](https://github.com/LazyVim/LazyVim/issues/6464)
([ccbaf55](ccbaf55c2f))
* **yanky:** use snacks picker for improved yank history navigation
([#5802](https://github.com/LazyVim/LazyVim/issues/5802))
([55e762a](55e762a888))


### Bug Fixes

* **editor:** calculate the height passed to the prompt of fzf-lua
properly ([#6481](https://github.com/LazyVim/LazyVim/issues/6481))
([65e38d3](65e38d3b34))
* **lang.clojure:** correct cmp-conjure source name
([#6208](https://github.com/LazyVim/LazyVim/issues/6208))
([55b5c1f](55b5c1fecb))
* **options:** set_default option
([2401d5f](2401d5fca6))
* **options:** track some initial options right after loading
`options.lua`. See
[#6463](https://github.com/LazyVim/LazyVim/issues/6463)
([9c611b0](9c611b0c57))
* **treesitter:** check if queries for indent/fold exists before
enabling it. Fixes
[#6474](https://github.com/LazyVim/LazyVim/issues/6474)
([5ce7cd6](5ce7cd650a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-20 16:50:44 +02:00
vector
65e38d3b34
fix(editor): calculate the height passed to the prompt of fzf-lua properly (#6481)
## Description

add two lines more to the height of prompt window.

## Related Issue(s)

  - Fixes #6480


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-20 15:48:35 +02:00
folke
c9efea8431 chore(build): auto-generate docs 2025-09-20 12:10:18 +00:00
Frestein ☁️
55b5c1fecb
fix(lang.clojure): correct cmp-conjure source name (#6208)
## Description


8c9a88efed/README.md (L10)

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-20 14:08:56 +02:00
Folke Lemaitre
9c611b0c57
fix(options): track some initial options right after loading options.lua. See #6463 2025-09-19 20:26:36 +02:00
Folke Lemaitre
5ce7cd650a
fix(treesitter): check if queries for indent/fold exists before enabling it. Fixes #6474 2025-09-19 19:58:28 +02:00
gbprod
55e762a888
feat(yanky): use snacks picker for improved yank history navigation (#5802)
## Description

I've introduce snacks picker support for [Yanky history
ring](https://github.com/gbprod/yanky.nvim/pull/215), I propose to use
it in LazyVim.

## Screenshots


![image](https://github.com/user-attachments/assets/0e11bab4-3060-418b-8fa1-33df6a4ee8c5)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-19 11:29:07 +02:00
Wendel Macedo
26590285ea
feat(clojure): use 'nvim-paredit' instead 'nvim-treesitter-sexp' as clojure S-exp Plugin (#5876)
## Description

On [this bug](https://github.com/LazyVim/LazyVim/issues/5866) I told
about a plugin that was falty on clojure lang extra, with the goal to
have him removed but @mitchelkuijpers suggested a new one that I
implemented on this PR.

[The plugin](https://github.com/julienvincent/nvim-paredit) is 1:1 with
the keymaps of the older one.

## Related Issue(s)

https://github.com/LazyVim/LazyVim/issues/5866

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-19 08:38:33 +02:00
folke
cd7ae5bc74 chore(build): auto-generate docs 2025-09-19 06:12:49 +00:00
Folke Lemaitre
3ca7b47365
feat(core): relax hard requirement for vim.lsp.is_enabled. Show warning instead 2025-09-19 08:11:38 +02:00
Folke Lemaitre
2401d5fca6
fix(options): set_default option 2025-09-18 23:51:32 +02:00
Folke Lemaitre
ccbaf55c2f
feat(options): don't overwrite indentexpr/foldexpr/foldmethod when set by plugins. Fixes #6464 2025-09-18 22:19:03 +02:00
github-actions[bot]
3a743f7f85
chore(main): release 15.1.1 (#6457)
🤖 I have created a release *beep* *boop*
---


##
[15.1.1](https://github.com/LazyVim/LazyVim/compare/v15.1.0...v15.1.1)
(2025-09-18)


### Bug Fixes

* **core:** check for outdated nightly. See
[#6458](https://github.com/LazyVim/LazyVim/issues/6458)
([cfac3c9](cfac3c9a85))
* **lspconfig:** remove all usage of `lspconfig`
([36b4191](36b41911ab))
* **lsp:** schedule_wrap setting up LSPs to work around root cause of
[#6456](https://github.com/LazyVim/LazyVim/issues/6456). Fixes
[#6456](https://github.com/LazyVim/LazyVim/issues/6456)
([75a3809](75a3809e15))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-18 14:09:58 +02:00
Folke Lemaitre
cfac3c9a85
fix(core): check for outdated nightly. See #6458 2025-09-18 14:08:08 +02:00
Folke Lemaitre
75a3809e15
fix(lsp): schedule_wrap setting up LSPs to work around root cause of #6456. Fixes #6456 2025-09-18 13:52:07 +02:00
Folke Lemaitre
36b41911ab
fix(lspconfig): remove all usage of lspconfig 2025-09-18 13:06:48 +02:00
github-actions[bot]
a467ce074f
chore(main): release 15.1.0 (#6452)
🤖 I have created a release *beep* *boop*
---


##
[15.1.0](https://github.com/LazyVim/LazyVim/compare/v15.0.3...v15.1.0)
(2025-09-18)


### Features

* **treesitter:** automatically install and use mason's tree-sitter-cli
if not installed on system
([725d048](725d048e00))
* **treesitter:** refactored setting up treesitter
indent/highlight/folds
([b93303d](b93303d233))


### Bug Fixes

* **snacks:** safe wrapper around snacks statuscolumn to prevent errors
when LazyVim is still installing
([5bf2378](5bf237820d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-18 10:03:59 +02:00
folke
1dece3be15 chore(build): auto-generate docs 2025-09-18 07:51:02 +00:00
Folke Lemaitre
725d048e00
feat(treesitter): automatically install and use mason's tree-sitter-cli if not installed on system 2025-09-18 09:49:54 +02:00
Folke Lemaitre
b93303d233
feat(treesitter): refactored setting up treesitter indent/highlight/folds 2025-09-18 09:49:54 +02:00
Folke Lemaitre
5bf237820d
fix(snacks): safe wrapper around snacks statuscolumn to prevent errors when LazyVim is still installing 2025-09-18 09:49:54 +02:00
github-actions[bot]
bd1f523df5
chore(main): release 15.0.3 (#6448)
🤖 I have created a release *beep* *boop*
---


##
[15.0.3](https://github.com/LazyVim/LazyVim/compare/v15.0.2...v15.0.3)
(2025-09-17)


### Bug Fixes

* **treesitter:** properly update installedd languages after setup
([c28f599](c28f599d4f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-17 23:41:10 +02:00
Folke Lemaitre
c28f599d4f
fix(treesitter): properly update installedd languages after setup 2025-09-17 23:39:19 +02:00
github-actions[bot]
1c14d858e5
chore(main): release 15.0.2 (#6439)
🤖 I have created a release *beep* *boop*
---


##
[15.0.2](https://github.com/LazyVim/LazyVim/compare/v15.0.1...v15.0.2)
(2025-09-17)


### Bug Fixes

* **python:** remove the wrapping `settings` key from `setup()` options
([#6069](https://github.com/LazyVim/LazyVim/issues/6069))
([ed3aa74](ed3aa74c10))
* **treesitter:** indentexpr/foldexpr now work as intended and override
ftplugin settings. Fixes
[#6447](https://github.com/LazyVim/LazyVim/issues/6447)
([a6b38de](a6b38de763))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-17 22:50:09 +02:00
Folke Lemaitre
a6b38de763
fix(treesitter): indentexpr/foldexpr now work as intended and override ftplugin settings. Fixes #6447 2025-09-17 22:46:14 +02:00
Zhizhen He
ed3aa74c10
fix(python): remove the wrapping settings key from setup() options (#6069)
## Description

Remove the wrapping `settings` key from `setup()` options.

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<img width="601" alt="image"
src="https://github.com/user-attachments/assets/92f3fc5a-9497-40c2-bc83-2a216cccb2f2"
/>

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-17 17:16:31 +02:00
github-actions[bot]
9e58f05aae
chore(main): release 15.0.1 (#6438)
🤖 I have created a release *beep* *boop*
---


##
[15.0.1](https://github.com/LazyVim/LazyVim/compare/v15.0.0...v15.0.1)
(2025-09-17)


### Bug Fixes

* **treesitter:** TS update during inital build
([2d56d3b](2d56d3b37c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-17 16:59:13 +02:00
Folke Lemaitre
2d56d3b37c
fix(treesitter): TS update during inital build 2025-09-17 16:54:36 +02:00
github-actions[bot]
2c44d33063
chore(main): release 15.0.0 (#6422)
🤖 I have created a release *beep* *boop*
---


##
[15.0.0](https://github.com/LazyVim/LazyVim/compare/v14.15.1...v15.0.0)
(2025-09-17)


### ⚠ BREAKING CHANGES

* **treesitter:** migrate to `nvim-treesitter` **main** branch
* bump Neovim requirement to 0.11.2
* LazyVim now requires Neovim >= 0.11 See #6421 for more info

### Features

* **blink:** enable blink cmdline completions
([011a35c](011a35ccb8))
* **blink:** enable cmdline completions
([ff7c12c](ff7c12c48e))
* bump Neovim requirement to 0.11.2
([cccfe70](cccfe70ea4))
* **extras:** added an experimental extra for the treesitter `main`
branch
([5668ad7](5668ad72ca))
* LazyVim now requires Neovim &gt;= 0.11 See
[#6421](https://github.com/LazyVim/LazyVim/issues/6421) for more info
([e7ce65e](e7ce65e1bb))
* **lsp:** enable LSP folds when available
([5e2c4e6](5e2c4e62f2))
* **treesitter:** migrate to `nvim-treesitter` **main** branch
([5eac460](5eac460c09))


### Bug Fixes

* **blink:** make blink completions in cmdline behave more like regular
cmdline
([f54fd7f](f54fd7f751))
* **catppuccin:** follow renamed integration
([#6354](https://github.com/LazyVim/LazyVim/issues/6354))
([02d0c9a](02d0c9aebd))
* **clangd:** file detection improvements
([#6436](https://github.com/LazyVim/LazyVim/issues/6436))
([aab503f](aab503fda6))
* **clangd:** rewrite the root_dir function
([#6060](https://github.com/LazyVim/LazyVim/issues/6060))
([167d39b](167d39b2be))
* **eslint:** remove old 0.10 code
([919c9e5](919c9e5d09))
* **extras:** disable blink path source in CopilotChat
([#5666](https://github.com/LazyVim/LazyVim/issues/5666))
([#5754](https://github.com/LazyVim/LazyVim/issues/5754))
([3aa2916](3aa2916569))
* **gitsigns:** use silent for gitsigns keymaps
([#5841](https://github.com/LazyVim/LazyVim/issues/5841))
([6eed178](6eed1781c1))
* **grug-far:** add support for GrugFarWithin so it gets loaded by
default ([#5772](https://github.com/LazyVim/LazyVim/issues/5772))
([fd1b02a](fd1b02ae57))
* **harpoon:** keymaps for 1-9. Fixes
[#6319](https://github.com/LazyVim/LazyVim/issues/6319)
([e2ba6bb](e2ba6bb511))
* **jdtls:** root_dir
([271fecb](271fecb067))
* **jdtls:** root_dir
([#6429](https://github.com/LazyVim/LazyVim/issues/6429))
([c053921](c05392186e))
* **lang.haskell:** prevent Haskell extras from installing
telescope.nvim ([#6419](https://github.com/LazyVim/LazyVim/issues/6419))
([cc4a3e5](cc4a3e5564))
* **lsp:** buffer should be second arg for supports_method
([44ade7f](44ade7fdea))
* **lspconfig:** remove all references to lspconfig. Closes
[#6426](https://github.com/LazyVim/LazyVim/issues/6426)
([23b9cde](23b9cdeb34))
* **lsp:** properly ambiguate denols vs vtsls
([2f75d9a](2f75d9a90f))
* **lsp:** properly register capabilities with new vim.lsp.config. Not
needed for blink
([9fa832d](9fa832dc95))
* **mason:** migrate to mason v2
([#6053](https://github.com/LazyVim/LazyVim/issues/6053))
([773f28b](773f28b491))
* **mini:** update mini plugin references from echasnovski to nvim-mini
([#6374](https://github.com/LazyVim/LazyVim/issues/6374))
([ae3aaf2](ae3aaf2dd3))
* **neo-tree:** import neo-tree Extra before edgy Extra
([#5763](https://github.com/LazyVim/LazyVim/issues/5763))
([848dd31](848dd3132a))
* **ocaml:** use `root_dir` instead of `root_markers` for globs support
([#6428](https://github.com/LazyVim/LazyVim/issues/6428))
([44cc063](44cc0635bc))
* **refactoring:** update funcs to return, add `expr=true`, operator
mode ([#5882](https://github.com/LazyVim/LazyVim/issues/5882))
([6e1de74](6e1de74597))
* remove 0.9 compat
([3516ae7](3516ae736a))
* **schemastore:** use `before_init` instead of `on_new_config` to load
schema store ([#6427](https://github.com/LazyVim/LazyVim/issues/6427))
([14d2a9b](14d2a9baa1))
* **treesitter-main:** move exe check to config
([96316e5](96316e5a69))
* **treesitter-main:** set vim.bo.indentexpr in FileType autocmd
([#6430](https://github.com/LazyVim/LazyVim/issues/6430))
([b926e7d](b926e7db41))
* **vue:** `volar` -&gt; `vua_ls`. Fixes
[#6236](https://github.com/LazyVim/LazyVim/issues/6236). Closes
[#6238](https://github.com/LazyVim/LazyVim/issues/6238). Closes
[#6174](https://github.com/LazyVim/LazyVim/issues/6174)
([4a3b4a8](4a3b4a80a8))


### Performance Improvements

* **blink:** only enable lazydev in lua files
([4961b3d](4961b3d4d4))
* **treesitter-main:** only enable highlighting for installed treesitter
langs
([2f309fc](2f309fc8b5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-17 15:40:17 +02:00
Folke Lemaitre
72e1ee5b0d
refactor(treesitter): cleanup 2025-09-17 15:33:37 +02:00
Amaan Qureshi
aab503fda6
fix(clangd): file detection improvements (#6436)
## Description

As discussed in
23b9cdeb34 (r165937336),
it'd be better to remove clang configuration files from influencing root
dir detection. I've also added meson and ninja files to the extra's
recommendation detection

## Related Issue(s)

## Screenshots

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-17 11:19:29 +02:00
Tom MacWright
ab657e9589
docs: improved plugin doc strings (#5657)
## Description

This improves the comment strings that produce documentation for
different plugins. I often look at the docs to learn what stuff is
already installed, and this would help people like me to quickly
understand what some of the plugins do.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-17 11:17:32 +02:00
Alexey Svirshchevskiy
014b5bf6ac
docs(treesitter): fix checkhealth command (#6433) 2025-09-17 10:40:37 +02:00
Jorge Villalobos
112b8848b5
chore(which-key): remove unnecessary icons (#5461)
## Description

These are already handled by which-key exactly the same way, no need to
re-declare them here. Removing them from here has no effect.

## Related Issue(s)

N/A

## Screenshots

![Screenshot 2025-01-23 at 21 21
14](https://github.com/user-attachments/assets/d9f777e8-d514-4836-9314-03a66cc5a34b)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-17 10:15:21 +02:00
Nick Janetakis
fd1b02ae57
fix(grug-far): add support for GrugFarWithin so it gets loaded by default (#5772)
## Description

https://github.com/MagicDuck/grug-far.nvim is the default find and
replace plugin for LazyVim.

It recently added support for being able to do a find / replace within a
visual selection to limit the scope of a search.

It did that by introducing a new command called `:GrugFarWithin`. This
PR adds that as a `cmd` so it gets loaded by default. Without this PR,
you cannot call this command unless you first call `:GrugFar`. This was
identified by the author of Grug Far.

## Related Issue(s)

There is no issue in this repo, but this feature is related to:
https://github.com/MagicDuck/grug-far.nvim/issues/357

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

I also want to give a shout-out to @MagicDuck who is the author of the
plugin. He implemented this feature so fast and has been super helpful
in his repo's issue tracker.
2025-09-17 10:14:48 +02:00
EasonMo
6eed1781c1
fix(gitsigns): use silent for gitsigns keymaps (#5841)
## Description

When executing `<leader>ghs`, the command line window will flicker.
Therefore, it should be run silently.

## Related Issue(s)
None

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-17 10:13:36 +02:00
Folke Lemaitre
e9344e5319
docs: better error and ref to checkhealth for nvim-treesitter main 2025-09-17 10:10:34 +02:00
Folke Lemaitre
5eac460c09
feat(treesitter)!: migrate to nvim-treesitter **main** branch 2025-09-17 09:52:44 +02:00
Folke Lemaitre
32ef7a9d39
docs: typo 2025-09-17 09:22:58 +02:00
Folke Lemaitre
5e2c4e62f2
feat(lsp): enable LSP folds when available 2025-09-17 08:11:33 +02:00
Folke Lemaitre
4a3b4a80a8
fix(vue): volar -> vua_ls. Fixes #6236. Closes #6238. Closes #6174 2025-09-17 07:30:27 +02:00
Folke Lemaitre
64ee23f38f
style: remove references to Neovim 0.10 2025-09-17 07:14:37 +02:00
Folke Lemaitre
919c9e5d09
fix(eslint): remove old 0.10 code 2025-09-17 07:14:22 +02:00
Folke Lemaitre
732b063c30
docs: more news 2025-09-17 07:06:28 +02:00
folke
f88f33c4c6 chore(build): auto-generate docs 2025-09-17 05:01:57 +00:00
Folke Lemaitre
cccfe70ea4
feat!: bump Neovim requirement to 0.11.2 2025-09-17 07:01:08 +02:00
Folke Lemaitre
f54fd7f751
fix(blink): make blink completions in cmdline behave more like regular cmdline 2025-09-16 17:43:35 +02:00
Folke Lemaitre
f4e64eea45
refactor(lsp): remove LazyVim.lsp.get_clients 2025-09-16 17:34:17 +02:00
Folke Lemaitre
9fa832dc95
fix(lsp): properly register capabilities with new vim.lsp.config. Not needed for blink 2025-09-16 15:41:21 +02:00
EJ
6e1de74597
fix(refactoring): update funcs to return, add expr=true, operator mode (#5882)
## Description

This fixes the keymaps for `refactoring.nvim` to work with the latest
version (see issue linked below)

## Related Issue(s)

- #5881 

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-16 12:47:51 +02:00
qw457812
b926e7db41
fix(treesitter-main): set vim.bo.indentexpr in FileType autocmd (#6430)
## Description

Ref:
7aa24acae3/scripts/minimal_init.lua (L19-L24)

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-16 11:58:24 +02:00
Christoph Schmidpeter
cc4a3e5564
fix(lang.haskell): prevent Haskell extras from installing telescope.nvim (#6419)
## Description
Installing the Haskell extras currently installs telescope.nvim as well,
since the dependency is not marked optional. This marks it optional so
telescope.nvim is no longer pulled in automatically.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: Christoph Schmidpeter <christoph.schmidpeter@gmail.com>
2025-09-16 11:47:05 +02:00
qw457812
c05392186e
fix(jdtls): root_dir (#6429)
Fix:

```
Failed to run `config` for nvim-jdtls

...im/lazy/LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:113: attempt to call field 'root_dir' (a nil value)

  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:113 _in_ **full_cmd**
  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:169 _in_ **attach_jdtls**
  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:286 _in_ **config**
  - ~/.local/share/bob/nightly/share/nvim/runtime/filetype.lua:36
  - vim/shared.lua:0
  - ~/.local/share/bob/nightly/share/nvim/runtime/filetype.lua:35
  - vim/_editor.lua:0 _in_ **cmd**
  - /persistence.nvim/lua/persistence/init.lua:88 _in_ **load**
  - lua:1
  - vim/_editor.lua:0 _in_ **action**
  - /snacks.nvim/lua/snacks/dashboard.lua:693
```

## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-16 11:46:26 +02:00
Iordanis Petkakis
44cc0635bc
fix(ocaml): use root_dir instead of root_markers for globs support (#6428)
## Description
As per
[comment](23b9cdeb34 (r165830889)),
use `root_dir` with `util.root_pattern` instead of `root_markers` for
globs support.

I don't actually do Ocaml to thoroughly test it, but it should work in
theory 😛
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-16 11:45:46 +02:00
folke
45181a76dd chore(build): auto-generate docs 2025-09-16 06:35:28 +00:00
Folke Lemaitre
ff7c12c48e
feat(blink): enable cmdline completions 2025-09-16 08:34:57 +02:00
Folke Lemaitre
4961b3d4d4
perf(blink): only enable lazydev in lua files 2025-09-16 08:34:22 +02:00
Folke Lemaitre
011a35ccb8
feat(blink): enable blink cmdline completions 2025-09-16 08:34:21 +02:00
Md. Iftakhar Awal Chowdhury
14d2a9baa1
fix(schemastore): use before_init instead of on_new_config to load schema store (#6427)
## Description

`vim.lsp.config` doesn't provide `on_new_config`, which is causing
`b0o/SchemaStore.nvim` fail to load.
This PR replaces `on_new_config` with `before_init` fixing the issue.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-15 21:17:45 +02:00
Folke Lemaitre
2f309fc8b5
perf(treesitter-main): only enable highlighting for installed treesitter langs 2025-09-15 21:14:42 +02:00
Folke Lemaitre
2f75d9a90f
fix(lsp): properly ambiguate denols vs vtsls 2025-09-15 21:00:19 +02:00
Folke Lemaitre
271fecb067
fix(jdtls): root_dir 2025-09-15 20:44:14 +02:00
Folke Lemaitre
23b9cdeb34
fix(lspconfig): remove all references to lspconfig. Closes #6426 2025-09-15 20:42:10 +02:00
Jinfeng Guo
167d39b2be
fix(clangd): rewrite the root_dir function (#6060)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

Nvim 0.11 had some breaking changes in lsp related parts. And one of
them is that if the root_dir field of lsp config is a function, the
bufnr and a function would be passed instead of the file name in nvim
0.10. As a result, the configurations of extra.lang.clangd broke.

However, before the breaking changes of mason and mason-lspconfig, the
configurations of clangd still worked. So maybe what really broke the
configurations is mason-lspconfig, which uses a new way to enable lsp in
v2.

I rewrite the root_dir function and make it work both on 0.11 and 0.10.

It would check whether the first argument is a string to decide whether
to adapt the new interface.

To test whether it works, you can just add a plugin/clangd.lua to you
personal config with the content below:

```lua
return {
  "neovim/nvim-lspconfig",
  opts = {
    servers = {
      clangd = {
        root_dir = function(bufnr, ondir)
          local root_directory = 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
          if type(bufnr) == "string" then
            return root_directory(bufnr)
          else
            local fname = vim.api.nvim_buf_get_name(bufnr)
            ondir(root_directory(fname))
          end
        end,
      },
    },
  },
}
```

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-15 17:19:23 +02:00
Folke Lemaitre
96316e5a69
fix(treesitter-main): move exe check to config 2025-09-15 17:17:21 +02:00
Folke Lemaitre
44ade7fdea
fix(lsp): buffer should be second arg for supports_method 2025-09-15 17:15:51 +02:00
Folke Lemaitre
5668ad72ca
feat(extras): added an experimental extra for the treesitter main branch 2025-09-15 17:13:40 +02:00
Folke Lemaitre
0d27e89a36
refactor(lsp): cleanup lsp config 2025-09-15 16:28:46 +02:00
Folke Lemaitre
5e7da4384d
docs: updated news 2025-09-15 12:12:43 +02:00
Iordanis Petkakis
773f28b491
fix(mason): migrate to mason v2 (#6053)
## Description
`mason-lspconfig` v2 made changes to conform with latest Neovim
`vim.lsp.config`/`vim.lsp.enable` API.

- Lock `mason` and `mason-lspconfig` to v1 versions for Neovim <0.11 and
latest HEAD for Neovim >=0.11.
- Change `:get_install_path()` method in LazyVim to use
`LazyVim.get_pkg_path()` and also update name references to new ones.
- Change `nvim-lspconfig` from `LazyFile` to `{ "BufReadPre",
"BufNewFile", "BufWritePre" }` for Neovim >=0.11, since on `BufReadPost`
the LSP would not attach on the first buffer. Previously the
`setup.handlers()` function from `mason-lspconfig` would take care of
that, but that has been removed on v2. I fail to think if there's a
better way to handle this.

Most of the changes in `/lsp/init.lua` are thanks to @williamboman
comment
[here](https://github.com/LazyVim/LazyVim/pull/6041#issuecomment-2857266471).

I've also seen that both `mason-lspconfig` and `rustaceanvim` now have
as minimum requirements Neovim >=0.11.
As such I would suggest, instead of all the conditional checks for
Neovim versions to create a stable release where we pin `mason` and
`mason-lspconfig` to v1 versions and then only incorporate William's
suggestions in a new release and mention in the README that users who
are on Neovim <0.11 should use the stable release where the plugin
versions are pinned to v1. Not sure how you want to tackle this, so this
is merely just a suggestion from my part.

Both #6041 and #6045 tackle only with the new name references and the
offending line that was causing the error, but don't take into
consideration the LSP servers configurations. `opts.setup` would not
execute on both, since that was handled by `setup_handlers()` function
in the past. I checked with Typescript lang and with those PRs there are
no Javascript settings in `vtsls` (by checking with
`:=LazyVim.opts("nvim-lspconfig").servers.vtsls`).
#6045 also tried to change the method `:get_install_pkg()` by using
`vim.fn.exepath`, but to my understanding that only returns the binary
path not the package installation path and that is later concatenated to
find other paths, which I believe is not correct.

PS: There are 2 commits, because my LazyVim fork was not up to date and
updated it and then merged the branch I had into a new branch. Sorry if
that causes any inconvenience.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #6039
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
Co-authored-by: William Boman <william@redwill.se>
Co-authored-by: Luis Durão <kpvrzlzzx@mozmail.com>
2025-09-15 12:08:19 +02:00
S1M0N38
3aa2916569
fix(extras): disable blink path source in CopilotChat (#5666) (#5754)
Fix #5666 with the answer given in the discussion.

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: svirschevskiy <alexey.svirshchevskiy@sitoo.com>
2025-09-15 11:49:11 +02:00
Sergey Kochetkov
ae3aaf2dd3
fix(mini): update mini plugin references from echasnovski to nvim-mini (#6374)
Updates all `mini.nvim` plugin references to use the new `nvim-mini`
organization namespace instead of the legacy `echasnovski` namespace
across all LazyVim configuration files.

## Description

https://github.com/nvim-mini/mini.nvim/discussions/1970

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-09-15 11:45:00 +02:00
Iordanis Petkakis
848dd3132a
fix(neo-tree): import neo-tree Extra before edgy Extra (#5763)
## Description
Seems like since the move of `neo-tree` into Extras, its plugin spec is
loaded after edgy's and that causes problems. Give `neo-tree` Extra
higher prio than edgy Extra.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #5762 
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-15 11:27:29 +02:00
Folke Lemaitre
e2ba6bb511
fix(harpoon): keymaps for 1-9. Fixes #6319 2025-09-15 11:24:41 +02:00
flippette
02d0c9aebd
fix(catppuccin): follow renamed integration (#6354)
## Description

[This
commit](30fa4d122d)
renamed a Catppuccin integration; this PR follows the rename.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-15 11:21:32 +02:00
Folke Lemaitre
a7a94c50ac
refactor: remove all <0.11 compat code 2025-09-15 11:16:53 +02:00
Folke Lemaitre
3516ae736a
fix: remove 0.9 compat 2025-09-15 11:16:53 +02:00
folke
80573196a1 chore(build): auto-generate docs 2025-09-15 09:00:43 +00:00
Folke Lemaitre
0e56786aa4
docs: update required Neovim version 2025-09-15 10:59:26 +02:00
Folke Lemaitre
e7ce65e1bb
feat!: LazyVim now requires Neovim >= 0.11 See #6421 for more info 2025-09-15 10:58:22 +02:00
github-actions[bot]
53a2de1c8b
chore(main): release 14.15.1 (#6420)
🤖 I have created a release *beep* *boop*
---


##
[14.15.1](https://github.com/LazyVim/LazyVim/compare/v14.15.0...v14.15.1)
(2025-09-15)


### Bug Fixes

* **blink:** use .get method to access presets
([#6183](https://github.com/LazyVim/LazyVim/issues/6183))
([1a729e2](1a729e2d4c))
* **extras.ai.copilot:** update status retrieval for lualine
([#5900](https://github.com/LazyVim/LazyVim/issues/5900))
([55e9944](55e9944e2b))
* **lang.python:** enable venv-selector even when telescope is not
available ([#5829](https://github.com/LazyVim/LazyVim/issues/5829))
([10e5bf5](10e5bf5c5b))
* **lsp:** fixed deprecated warnings
([bed725a](bed725a054))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-15 10:55:48 +02:00
Folke Lemaitre
bed725a054
fix(lsp): fixed deprecated warnings 2025-09-15 07:44:02 +02:00
Rabin Adhikari
10e5bf5c5b
fix(lang.python): enable venv-selector even when telescope is not available (#5829)
## Description

Enable the `venv-selector` plugin even when the telescope plugin is not
available. Now the `venv-selector` plugin supports `fzf-lua` and native
selection, and by default, it chooses the previous, if available.

More on this PR:
https://github.com/linux-cultist/venv-selector.nvim/pull/188

Edit: Use the main branch of the repo since it is now the most updated
branch

## Related Issue(s)

None

## Screenshots

N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-15 07:18:00 +02:00
Jorge Villalobos
1a729e2d4c
fix(blink): use .get method to access presets (#6183)
## Description

Latest version of blink.cmp renamed the keymap.presets table which
breaks LazyVim's access to presets. This fixes it by using the
`presets.get()` method instead, which internally resolves to the correct
table and looks like the right API.

## Related Issue(s)

N/A

## Screenshots

N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-15 07:16:52 +02:00
folke
b68e478d23 chore(build): auto-generate docs 2025-09-15 05:16:35 +00:00
Baptiste GAZÉ
55e9944e2b
fix(extras.ai.copilot): update status retrieval for lualine (#5900)
## Description

Following copilot.lua refactoring in
https://github.com/zbirenbaum/copilot.lua/pull/431, lualine is unable to
refresh.

We face the following error

```
  Error  15:55:22 msg_show.lua_error Error executing vim.schedule lua callback: ...share/nvim/lazy/lualine.nvim/lua/lualine/utils/utils.lua:211: lualine: Failed to refresh statusline:
.../.local/share/nvim/lazy/lualine.nvim/lua/lualine.lua:415: Error executing lua: ...m/lazy/LazyVim/lua/lazyvim/plugins/extras/ai/copilot.lua:54: attempt to index field 'status' (a nil value)
stack traceback:
	...m/lazy/LazyVim/lua/lazyvim/plugins/extras/ai/copilot.lua:54: in function 'status'
	...cal/share/nvim/lazy/LazyVim/lua/lazyvim/util/lualine.lua:17: in function 'cond'
	...l/share/nvim/lazy/lualine.nvim/lua/lualine/component.lua:275: in function 'draw'
	...are/nvim/lazy/lualine.nvim/lua/lualine/utils/section.lua:26: in function 'draw_section'
	.../.local/share/nvim/lazy/lualine.nvim/lua/lualine.lua:167: in function 'statusline'
	.../.local/share/nvim/lazy/lualine.nvim/lua/lualine.lua:309: in function <...gaze/.local/share/nvim/lazy/lualine.nvim/lua/lualine.lua:290>
	[C]: in function 'nvim_win_call'
	.../.local/share/nvim/lazy/lualine.nvim/lua/lualine.lua:415: in function 'refresh'
	.../.local/share/nvim/lazy/lualine.nvim/lua/lualine.lua:491: in function <.../.local/share/nvim/lazy/lualine.nvim/lua/lualine.lua:490>
	[C]: in function 'pcall'
	...share/nvim/lazy/lualine.nvim/lua/lualine/utils/utils.lua:214: in function ''
	vim/_editor.lua: in function <vim/_editor.lua:0>
```

## Related Issue(s)

#5899 

## Screenshots

![Screenshot 2025-04-05 at 16 16
56](https://github.com/user-attachments/assets/3dc28dc6-1622-41ef-9e70-380a37064da4)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-15 07:15:34 +02:00
github-actions[bot]
25abbf546d
chore(main): release 14.15.0 (#5623)
🤖 I have created a release *beep* *boop*
---


##
[14.15.0](https://github.com/LazyVim/LazyVim/compare/v14.14.0...v14.15.0)
(2025-05-12)


### Features

* **chezmoi:** enhance fzf-lua chezmoi picker and add snacks.dasbhoard
entry ([#5275](https://github.com/LazyVim/LazyVim/issues/5275))
([759a19e](759a19e785))
* **keymaps:** show lang when opening treesitter inspect
([9c59668](9c596681f6))
* **octo:** add support for snacks picker
([#5625](https://github.com/LazyVim/LazyVim/issues/5625))
([16a7724](16a772452a))
* **snippets:** mini.snippets standalone and blink.resubscribe
([#5507](https://github.com/LazyVim/LazyVim/issues/5507))
([f2f2aea](f2f2aea672))


### Bug Fixes

* **blink:** make sure to use `LazyVim.config.icons.kinds`
([#5668](https://github.com/LazyVim/LazyVim/issues/5668))
([771089f](771089f692))
* **blink:** remove unnecessary `sources` from `cmdline`
([#5620](https://github.com/LazyVim/LazyVim/issues/5620))
([5b94baa](5b94baa1d2))
* **copilot-chat:** switch from deprecated picker integrations
([#5707](https://github.com/LazyVim/LazyVim/issues/5707))
([b0334fd](b0334fd57c))
* **mason:** rename and pin to v1
([c20c402](c20c402295))
* **snacks.picker:** remove redundant leader-gc keymap. Closes
[#5646](https://github.com/LazyVim/LazyVim/issues/5646)
([606b964](606b96466e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-05-12 11:00:03 +02:00
folke
1b1c7d0f45 chore(build): auto-generate docs 2025-05-12 08:59:27 +00:00
Folke Lemaitre
70b4615cb2
test(mason): fix tests 2025-05-12 10:58:20 +02:00
Folke Lemaitre
c20c402295
fix(mason): rename and pin to v1 2025-05-12 10:39:04 +02:00
folke
ec5981dfb1 chore(build): auto-generate docs 2025-03-01 14:22:16 +00:00
Tomas Slusny
b0334fd57c
fix(copilot-chat): switch from deprecated picker integrations (#5707)
- Instead of using picker integrations (that are now deprecated), switch
to using CopilotChat.select_prompt() that is using `vim.ui.select` which
brings the selector integration responsibility to pickers instead of
plugin
- Use vim.ui.input instead of vim.fn.input for consistency

Reason why this was deprecated in CopilotChat.nvim (by me) and will be
removed in future is because these integrations never made any sense
anyway when `vim.ui.select` overrides exist.

## Screenshots

Using fzf-lua in my config, outside of LazyNvim but same thing applies:


![image](https://github.com/user-attachments/assets/a5171ffe-63a6-4b79-9925-fd8bef52e52f)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2025-03-01 15:21:12 +01:00
folke
cb223553ff chore(build): auto-generate docs 2025-02-22 06:48:29 +00:00
Iordanis Petkakis
771089f692
fix(blink): make sure to use LazyVim.config.icons.kinds (#5668)
## Description
This blink
[commit](010d939e7f)
made a change, so that third party sources can provide their own
`item.kind_icon` and `item.kind_name`. The problem is that these icons
will take precedence over `config.kind_icons[kind]`, which LazyVim sets
[here](541b83276e/lua/lazyvim/plugins/extras/coding/blink.lua (L164-L164)).

I noticed that `blink-cmp-copilot` also started providing its own in the
items that it returns. I noticed this because I have the following in my
configuration `columns = { { "label", "label_description", gap = 1 }, {
"kind_icon", "kind" } }`. The icon that it uses is a smaller icon one
character long, which by default it will scale up and show normally like
the LazyVim icon. But when you put another component next to it (like
`kind`) in the `columns` field, then it shows the normal size of the
icon next to the `kind` and it looks kinda weird compared to the default
LazyVim icon.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots
Before (the default icon provided by `blink-cmp-copilot`)

![2025-02-22_02-17](https://github.com/user-attachments/assets/aa7da566-a577-4d32-822c-f2d891b3c047)

After (the LazyVim icon)

![2025-02-22_02-18](https://github.com/user-attachments/assets/342580a9-5a36-47fa-aad7-c139f2765d74)

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-22 07:47:27 +01:00
folke
541b83276e chore(build): auto-generate docs 2025-02-21 13:29:08 +00:00
Thomas Vandal
759a19e785
feat(chezmoi): enhance fzf-lua chezmoi picker and add snacks.dasbhoard entry (#5275)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

This PR enhances the fzf-lua picker for chezmoi by using the built-in
`files` picker and by opening the selected file with `ChezmoiEdit` and
`vimcmd_entry` to parse the entry. This simplifies the code and adds
icons and file preview.

The PR also replaces the config entry in snacks.dashboard with the
chezmoi picker, similar to what was already implemented for
dashboard-nvim

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

Current picker:


![image](https://github.com/user-attachments/assets/d0be9279-f199-4349-8055-04d8a351c6f9)


New picker:


![image](https://github.com/user-attachments/assets/c68fcb6a-79fa-4f65-8c48-60ce64450350)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-21 14:28:05 +01:00
folke
f3e37a1f83 chore(build): auto-generate docs 2025-02-18 22:12:23 +00:00
Folke Lemaitre
9c596681f6
feat(keymaps): show lang when opening treesitter inspect 2025-02-18 23:11:12 +01:00
Folke Lemaitre
606b96466e
fix(snacks.picker): remove redundant leader-gc keymap. Closes #5646 2025-02-18 23:10:56 +01:00
Iordanis Petkakis
16a772452a
feat(octo): add support for snacks picker (#5625)
## Description
A [PR](https://github.com/pwntester/octo.nvim/pull/858) has landed in
`octo.nvim` that adds initial support for `snacks.picker`. Enable it in
`octo.nvim` Extra if user uses `snacks.picker`.

I also changed the checks to use `has_extra`. This was needed for
`snacks.picker`, since `has("snacks.nvim")` doesn't ensure that user
also has `snacks.picker` enabled. For the others I just changed it for
conformity, but if you think there might be something wrong about that
(that I'm unable to think of), please feel free to change them back.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-16 12:20:06 +01:00
abeldekat
f2f2aea672
feat(snippets): mini.snippets standalone and blink.resubscribe (#5507)
## Description


When using blink.cmp and mini.snippets, the same problem regarding
outdated completion items as solved in
[nvim-cmp](https://github.com/hrsh7th/nvim-cmp/pull/2126) can arise.

[This](https://github.com/Saghen/blink.cmp/pull/1035) PR has been
included into main.
When the PR is included into the next stable release, this PR can be
merged.
Current blink release: 0.11.0


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: abeldekat <abel@nomail.com>
2025-02-16 09:06:35 +01:00
folke
0ca49bcfed chore(build): auto-generate docs 2025-02-16 07:06:54 +00:00
Iordanis Petkakis
5b94baa1d2
fix(blink): remove unnecessary sources from cmdline (#5620)
## Description
Like Saghen already mentioned in the other PR, this
[commit](19f60a675e)
does a check based on the `enabled` field before adding sources, so it's
no longer needed to define it.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-16 08:05:52 +01:00
github-actions[bot]
3f034d0a7f
chore(main): release 14.14.0 (#5603)
🤖 I have created a release *beep* *boop*
---


##
[14.14.0](https://github.com/LazyVim/LazyVim/compare/v14.13.0...v14.14.0)
(2025-02-15)


### Features

* **extras:** setup neogen and mini.snippets integration
([#5594](https://github.com/LazyVim/LazyVim/issues/5594))
([5788b9d](5788b9d1e0))
* **keymaps:** enable toggling in quickfix list and location list
([#5608](https://github.com/LazyVim/LazyVim/issues/5608))
([32e575a](32e575aa75))
* **snacks.picker:** added support for Project shortcuts in other
dashboards ([#5607](https://github.com/LazyVim/LazyVim/issues/5607))
([401ef48](401ef48fcd))
* **snacks.picker:** move trouble keymap from `ctrl+t` -&gt; `alt+t`
([4aff006](4aff0063a4))


### Bug Fixes

* **blink:** `blink` released new version, remove previous hack
([#5616](https://github.com/LazyVim/LazyVim/issues/5616))
([b35015a](b35015ac59))
* **blink:** `cmdline` is now top-level on main branch
([#5615](https://github.com/LazyVim/LazyVim/issues/5615))
([0458e46](0458e46dcc))
* **blink:** enable Neovim native mapping with `&lt;Tab&gt;`
([#5617](https://github.com/LazyVim/LazyVim/issues/5617))
([e7f8e4f](e7f8e4faba))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-15 23:51:07 +01:00
Iordanis Petkakis
e7f8e4faba
fix(blink): enable Neovim native mapping with <Tab> (#5617)
## Description
Another blink fix unfortunately. 

I noticed that native Neovim `<Tab>` completion didn't work after the
breaking commit.

I checked the commit and noticed it had a boolean `enabled` field, so I
thought maybe that would disable the blink cmdline since we already have
`sources = {}`, but it didn't work. Looking through the commit, I
stumbled upon this piece of
[code](93215d8034 (diff-f313d6f0270f6fed848f1cb7e62c82d3cfaf9b6c7e0072266908eeaf202f11d5R66-R68))
and it seems that it's only checked for applying the blink cmdline
mappings.

So, it seems both `enabled = false` (for Neovim native cmdline mapping)
and `sources = {}` are needed to have default Neovim cmdline experience.

PS: Apparently I don't know how to link from the commit the necessary
part of the commit, so I'm just referencing here the part of the code
[directly in the
file](426a605518/lua/blink/cmp/keymap/init.lua (L66-L70)).
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-15 23:47:17 +01:00
Iordanis Petkakis
b35015ac59
fix(blink): blink released new version, remove previous hack (#5616)
## Description
`blink.cmp` just made a new stable release. So, remove the hack and
define the option properly in `opts`.

If I knew it would make a release tonight, I'd definitely hold off my
recent PR.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-15 22:51:17 +01:00
Iordanis Petkakis
0458e46dcc
fix(blink): cmdline is now top-level on main branch (#5615)
## Description
This `blink.cmp`
[commit](93215d8034)
introduced a breaking change on main branch. `cmdline` is now top-level
and the option is `opts.cmdline.sources = {}`.

I also added a note to remove this hack when the next blink stable
release comes out, which should be greater than current 0.11.0 and just
do it normally in `opts` instead.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None.
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-15 21:57:48 +01:00
Folke Lemaitre
4aff0063a4
feat(snacks.picker): move trouble keymap from ctrl+t -> alt+t 2025-02-15 15:46:51 +01:00
Jinfeng Guo
401ef48fcd
feat(snacks.picker): added support for Project shortcuts in other dashboards (#5607)
…shboard-nvim, and mini-starter

## Description

Though the snacks.picker extra provides a project picker, it only adds
the 'Projects' shortcut to snacks' dashboard, and no to the other three
dashboard extra: alpha, dashboard-nvim and mini-starter. In this PR, I
added the 'Projects' shortcuts to these three dashboard extras.

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

- Fixes #5465

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

alpha


![image](https://github.com/user-attachments/assets/c050f260-8602-4660-a386-62ab8400ef87)

dashboard-nvim


![image](https://github.com/user-attachments/assets/8973cd62-ba97-4330-9462-74163b58dca9)

mini.starter


![image](https://github.com/user-attachments/assets/a31ec27d-7efb-4aa3-a136-2a4ffedf5ba1)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-15 08:30:45 +01:00
folke
e9dad45f93 chore(build): auto-generate docs 2025-02-15 07:27:57 +00:00
Zhou Fang
32e575aa75
feat(keymaps): enable toggling in quickfix list and location list (#5608)
## Description

This PR addresses issue #5503 by modifying the behavior of `<leader>xq`
and `<leader>xl` so that they toggle the quickfix and location lists
rather than simply opening them.

To prevent the full Lua error stack from being printed when no list
exists prior to using `copen` or `lopen`, I've wrapped the commands in
`pcall` and used `vim.notify` to alert the user in the same manner as
before.

## Related Issue(s)

#5503

## Screenshots


https://github.com/user-attachments/assets/b22b1861-e6e5-4d8a-967e-f760cca15719

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-15 08:27:01 +01:00
folke
98fca895e8 chore(build): auto-generate docs 2025-02-14 16:33:36 +00:00
Roland Kaminski
5788b9d1e0
feat(extras): setup neogen and mini.snippets integration (#5594)
## Description

Configure neogen and mini.snippets integration.

See also #5593.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-14 17:32:33 +01:00
github-actions[bot]
45d94b3197
chore(main): release 14.13.0 (#5574)
🤖 I have created a release *beep* *boop*
---


##
[14.13.0](https://github.com/LazyVim/LazyVim/compare/v14.12.0...v14.13.0)
(2025-02-12)


### Features

* **editor:** update parameter for fzf-lua
([#5584](https://github.com/LazyVim/LazyVim/issues/5584))
([0a5965b](0a5965b787))
* **lsp:** use lsp_config picker instead of `LspInfo`
([7529773](7529773371))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-12 21:38:40 +01:00
folke
0db6891679 chore(build): auto-generate docs 2025-02-12 13:22:29 +00:00
Beartama
0a5965b787
feat(editor): update parameter for fzf-lua (#5584)
## Description

`fzf-lua` renames their parameter in
7cede182cf,
so this PR updates the parameter also to stop the deprecation warning.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-12 14:21:29 +01:00
Folke Lemaitre
7529773371
feat(lsp): use lsp_config picker instead of LspInfo 2025-02-11 14:00:03 +01:00
folke
7fe0b47f17 chore(build): auto-generate docs 2025-02-11 10:54:30 +00:00
github-actions[bot]
9d426ed7fc
chore(main): release 14.12.0 (#5553)
🤖 I have created a release *beep* *boop*
---


##
[14.12.0](https://github.com/LazyVim/LazyVim/compare/v14.11.0...v14.12.0)
(2025-02-10)


### Features

* **config:** add option to disable the order check to warning message
([da3b515](da3b5159df))
* **config:** allow disabling the order check with
`vim.g.lazyvim_check_order = false`
([0bbce17](0bbce1775b))


### Bug Fixes

* **copilot-chat:** added support for snacks picker. Closes
[#5432](https://github.com/LazyVim/LazyVim/issues/5432). Closes
[#5552](https://github.com/LazyVim/LazyVim/issues/5552)
([2a608f0](2a608f00d4))
* **extras:** disable import handling when loading `:LazyExtras` +
changed some recommendations
([121a2e2](121a2e27ef))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-11 11:53:22 +01:00
Folke Lemaitre
121a2e27ef
fix(extras): disable import handling when loading :LazyExtras + changed some recommendations 2025-02-10 23:27:24 +01:00
folke
66981fe5b2 chore(build): auto-generate docs 2025-02-10 11:15:22 +00:00
Folke Lemaitre
da3b5159df
feat(config): add option to disable the order check to warning message 2025-02-10 12:14:05 +01:00
Folke Lemaitre
0bbce1775b
feat(config): allow disabling the order check with vim.g.lazyvim_check_order = false 2025-02-08 20:34:17 +01:00
Folke Lemaitre
2a608f00d4
fix(copilot-chat): added support for snacks picker. Closes #5432. Closes #5552 2025-02-08 18:32:46 +01:00
github-actions[bot]
29829f7eb6
chore(main): release 14.11.0 (#5550)
🤖 I have created a release *beep* *boop*
---


##
[14.11.0](https://github.com/LazyVim/LazyVim/compare/v14.10.0...v14.11.0)
(2025-02-08)


### Features

* **config:** show a warning when lazy.nvim imports order is incorrect
([83988ea](83988ea46e))
* **defaults:** new installs now default to snacks picker/explorer.
Existing installs don't change.
([25d90b5](25d90b54a3))
* **extras:** big rework of default extras
([525377d](525377dee9))
* **util:** `has_extra` now also checks for manual imports in `lazy.lua`
([0416376](0416376733))


### Bug Fixes

* **extras:** remove debug
([b4c24a3](b4c24a3fe8))
* **snacks.explorer:** no longer needed to disable neo-tree
([2d6b492](2d6b49281d))
* **snacks.picker:** move dashboard shortcut to picker extra. Closes
[#5549](https://github.com/LazyVim/LazyVim/issues/5549)
([2b3bcf3](2b3bcf36b2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-08 15:37:13 +01:00
Folke Lemaitre
2b3bcf36b2
fix(snacks.picker): move dashboard shortcut to picker extra. Closes #5549 2025-02-08 15:27:26 +01:00
Folke Lemaitre
2d6b49281d
fix(snacks.explorer): no longer needed to disable neo-tree 2025-02-08 15:25:10 +01:00
Folke Lemaitre
25d90b54a3
feat(defaults): new installs now default to snacks picker/explorer. Existing installs don't change. 2025-02-08 15:23:30 +01:00
Folke Lemaitre
b4c24a3fe8
fix(extras): remove debug 2025-02-08 15:06:57 +01:00
folke
d6829fb82c chore(build): auto-generate docs 2025-02-08 14:05:52 +00:00
Folke Lemaitre
525377dee9
feat(extras): big rework of default extras 2025-02-08 15:04:46 +01:00
Folke Lemaitre
0416376733
feat(util): has_extra now also checks for manual imports in lazy.lua 2025-02-08 13:49:05 +01:00
Folke Lemaitre
83988ea46e
feat(config): show a warning when lazy.nvim imports order is incorrect 2025-02-08 13:49:04 +01:00
github-actions[bot]
597cd8ffa3
chore(main): release 14.10.0 (#5500)
🤖 I have created a release *beep* *boop*
---


##
[14.10.0](https://github.com/LazyVim/LazyVim/compare/v14.9.0...v14.10.0)
(2025-02-07)


### Features

* **bufferline:** support for snacks picker sidebars
([3500d6a](3500d6a826))
* **refactoring:** fallback to using vim ui select for refactoring.nvim
([#5540](https://github.com/LazyVim/LazyVim/issues/5540))
([23a1bbd](23a1bbdae9))
* **snacks.explorer:** enabled netrw integration
([4f006f1](4f006f1fba))
* **snacks.picker:** add projects picker to dashboard if snacks picker
is enabled
([fb256f2](fb256f2b68))
* **snacks.picker:** some extra keymaps
([ab30442](ab30442652))
* **snippets:** mini.snippets is out of beta
([#5505](https://github.com/LazyVim/LazyVim/issues/5505))
([4a81a37](4a81a370d7))


### Bug Fixes

* **copilot:** remove load on BufReadPost instead of InsertEnter
([8f4e9b8](8f4e9b8c1e))
* **go:** update go.lua to eliminate fieldalignment from analyses
([#5170](https://github.com/LazyVim/LazyVim/issues/5170))
([5c97327](5c9732733d))


### Performance Improvements

* **snacks_picker:** lazy-load trouble open action
([1a4d948](1a4d948e0d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-08 00:10:47 +01:00
folke
a10706e819 chore(build): auto-generate docs 2025-02-07 23:10:27 +00:00
cjon256
5c9732733d
fix(go): update go.lua to eliminate fieldalignment from analyses (#5170)
## Description

Removed a setting from the go lang plugin. The setting now just causes
an error:
LSP[gopls] Invalid settings: setting option "analyses": this setting is
deprecated, use "the 'fieldalignment' analyzer was removed in
gopls/v0.17.0; instead, hover over struct fields to see size/offset
information (https://go.dev/issue/66861)" instead

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Note: submitted similar request as f96aac6 but was rejected by CI/CD for
naming reasons. Changing the name did not help. Retrying.
2025-02-08 00:09:03 +01:00
folke
94d0ac0a0c chore(build): auto-generate docs 2025-02-06 20:40:54 +00:00
RohitB
23a1bbdae9
feat(refactoring): fallback to using vim ui select for refactoring.nvim (#5540)
## Description

Fallback to using `require("refactoring").select_refactor()` if neither
of `telescope` or `fzf-lua` is installed. Since `select_refactor()` uses
`vim.ui.select` internally, it can use `snacks.picker` if it is enabled.
## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [ x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-02-06 21:39:37 +01:00
Folke Lemaitre
3e8fddcd54
style(snacks.picker): buffer diagnostics keymap desc 2025-02-05 14:41:30 +01:00
folke
634f3ea28f chore(build): auto-generate docs 2025-02-05 07:02:02 +00:00
Folke Lemaitre
ab30442652
feat(snacks.picker): some extra keymaps 2025-02-05 08:00:58 +01:00
Folke Lemaitre
fb256f2b68
feat(snacks.picker): add projects picker to dashboard if snacks picker is enabled 2025-02-02 23:34:07 +01:00
folke
7f8e797d2b chore(build): auto-generate docs 2025-02-02 17:04:34 +00:00
Folke Lemaitre
1a4d948e0d
perf(snacks_picker): lazy-load trouble open action 2025-02-02 18:03:13 +01:00
Folke Lemaitre
3500d6a826
feat(bufferline): support for snacks picker sidebars 2025-01-31 20:33:15 +01:00
Folke Lemaitre
8f4e9b8c1e
fix(copilot): remove load on BufReadPost instead of InsertEnter 2025-01-31 20:10:50 +01:00
abeldekat
4a81a370d7
feat(snippets): mini.snippets is out of beta (#5505)
## Description

mini.snippets is out of beta, so I adjusted the description for the
extra accordingly


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: abeldekat <abel@nomail.com>
2025-01-31 17:11:26 +01:00
folke
3242ab8cff chore(build): auto-generate docs 2025-01-31 07:34:07 +00:00
Folke Lemaitre
0e94534dd9
style(picker.explorer): use shortcut 2025-01-31 08:33:15 +01:00
Folke Lemaitre
4f006f1fba
feat(snacks.explorer): enabled netrw integration 2025-01-31 08:32:48 +01:00
github-actions[bot]
eb8ddea8c9
chore(main): release 14.9.0 (#5438)
🤖 I have created a release *beep* *boop*
---


##
[14.9.0](https://github.com/LazyVim/LazyVim/compare/v14.8.0...v14.9.0)
(2025-01-30)


### Features

* **markdown:** added markdown support for codecompanion
([e9db488](e9db488aca))
* **snacks.picker:** added &lt;leader&gt;si to search icons
([#5460](https://github.com/LazyVim/LazyVim/issues/5460))
([eea52be](eea52be344))
* **snacks.picker:** added &lt;leader&gt;su to search undotree
([#5447](https://github.com/LazyVim/LazyVim/issues/5447))
([332b320](332b32080c))
* **snacks.picker:** added `leader-fB` to find any buffer (including
hidden & nofile)
([83bf636](83bf6360a1))
* **snacks.picker:** added `leader-sp` to search for plugin spec
([7cf4185](7cf4185dc4))
* **snacks.picker:** added alt-c to toggle between cwd/root dir
([6be7c4f](6be7c4fee4))
* **snacks.picker:** flash.nvim integration
([5d24aa6](5d24aa6311))
* **snacks.picker:** use snacks picker for notifications when enabled
([01a70cc](01a70cc60e))
* **snacks:** extra for snacks explorer (replacement for neo-tree)
([e20d9af](e20d9afcbc))
* **snippets:** an extra for mini.snippets
([#5274](https://github.com/LazyVim/LazyVim/issues/5274))
([8b4e6ff](8b4e6ff70d))


### Bug Fixes

* **keymaps:** remove unneeded and ambiguous `&lt;leader&gt;w` keymap
([#5459](https://github.com/LazyVim/LazyVim/issues/5459))
([132986a](132986a624))
* **luasnip:** schedule `jump` to be compatible with blink, nvim-cmp
still works after change
([#5470](https://github.com/LazyVim/LazyVim/issues/5470))
([0350934](0350934d56))
* **root:** pass args to root.get
([dc8512f](dc8512fce1))
* **snacks.picker:** flash integration
([b5cd0d0](b5cd0d0e27))
* **snacks.picker:** snacks =&gt; flash
([3de7b24](3de7b24cf6))
* **snacks:** use `Snacks.picker` for recent files
([#5485](https://github.com/LazyVim/LazyVim/issues/5485))
([f0d2629](f0d2629bd8))
* **sql:** better nvim-cmp check. Closes
[#5188](https://github.com/LazyVim/LazyVim/issues/5188)
([1e83b4f](1e83b4f843))
* **vscode:** diabled some snacks plugins. Fixes
[#5364](https://github.com/LazyVim/LazyVim/issues/5364)
([c7a7ab5](c7a7ab5112))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-30 22:07:58 +01:00
folke
0dee310e90 chore(build): auto-generate docs 2025-01-30 20:40:13 +00:00
Folke Lemaitre
e9db488aca
feat(markdown): added markdown support for codecompanion 2025-01-30 21:38:56 +01:00
Folke Lemaitre
e20d9afcbc
feat(snacks): extra for snacks explorer (replacement for neo-tree) 2025-01-30 15:21:01 +01:00
Folke Lemaitre
b5cd0d0e27
fix(snacks.picker): flash integration 2025-01-29 23:21:59 +01:00
Folke Lemaitre
3de7b24cf6
fix(snacks.picker): snacks => flash 2025-01-29 21:06:38 +01:00
folke
63a39ef8cf chore(build): auto-generate docs 2025-01-29 19:19:59 +00:00
Folke Lemaitre
5d24aa6311
feat(snacks.picker): flash.nvim integration 2025-01-29 20:18:43 +01:00
Iordanis Petkakis
f0d2629bd8
fix(snacks): use Snacks.picker for recent files (#5485)
## Description
Use `Snacks.picker` for recent files instead of `LazyVim.pick`, because
`root_dir` is being propagated to `opts.cwd` and does not correctly
filter out recent files when inside nested directories.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-28 18:55:02 +01:00
Folke Lemaitre
01a70cc60e
feat(snacks.picker): use snacks picker for notifications when enabled 2025-01-28 17:22:17 +01:00
iniw
132986a624
fix(keymaps): remove unneeded and ambiguous <leader>w keymap (#5459)
## Description

The `<leader>w` mapping, described as "Windows", was causing potentially
timeout-related bugs with many other mappings that also started with
`<leader>w`.

The problems caused by this are described in detail in issue #5456 and
in discussion #4157.

@dpetka2001 Suggested removing it as an experiment, which I tried and
found to work.

<!--
  - Fixes #5456
  - Fixes #4157
-->

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-28 12:42:48 +01:00
folke
a3b459c1a5 chore(build): auto-generate docs 2025-01-28 08:20:18 +00:00
Iordanis Petkakis
0350934d56
fix(luasnip): schedule jump to be compatible with blink, nvim-cmp still works after change (#5470)
## Description
Schedule `jump` in Luasnip `snippet_forward`, so that it doesn't get
stuck before the last placeholder.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #5469
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-28 09:19:01 +01:00
Folke Lemaitre
83bf6360a1
feat(snacks.picker): added leader-fB to find any buffer (including hidden & nofile) 2025-01-23 19:22:47 +01:00
Folke Lemaitre
7cf4185dc4
feat(snacks.picker): added leader-sp to search for plugin spec 2025-01-23 19:22:19 +01:00
Jorge Villalobos
eea52be344
feat(snacks.picker): added <leader>si to search icons (#5460)
## Description

As it reads on the tin can.

## Related Issue(s)

N/A

## Screenshots

![Screenshot 2025-01-23 at 11 49
49](https://github.com/user-attachments/assets/6c4d0e9a-0a8e-4128-9ef1-b7954ece2bc7)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-23 19:19:48 +01:00
Jorge Villalobos
332b32080c
feat(snacks.picker): added <leader>su to search undotree (#5447)
## Description

As it reads on the title ;)

## Related Issue(s)

None.

## Screenshots

![Screenshot 2025-01-22 at 14 02
30](https://github.com/user-attachments/assets/f8d2ba88-f279-4715-8120-7610c58bd269)
![Screenshot 2025-01-22 at 14 03
04](https://github.com/user-attachments/assets/08bc1b26-f49c-4f25-ad66-1166a3f72605)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-23 16:51:36 +01:00
folke
7fb320700a chore(build): auto-generate docs 2025-01-23 11:04:34 +00:00
abeldekat
8b4e6ff70d
feat(snippets): an extra for mini.snippets (#5274)
## Description

Mini.snippets, a plugin to manage and expand snippets, is currently in
[beta](https://github.com/echasnovski/mini.nvim/issues/1428).

I think the plugin is a very interesting alternative to `luasnip`.

The following `lazydoc` will be added:

```lua
if lazyvim_docs then
  -- Set to `false` to prevent "non-lsp snippets"" from appearing inside completion windows
  -- Motivation: Less clutter in completion windows and a more direct usage of snippits
  vim.g.lazyvim_mini_snippets_in_completion = true

  -- Using default mini.snippets, completion suggestions might appear directly after inserting a snippet
  -- This extra prevents that from happening.
  -- Motivation: A better display of the current snippet.
  -- Also, those completions do not appear when using luasnip or native snippets
  --
  -- Set to `false` to enable completion suggestions directly after inserting a snippet
  vim.g.lazyvim_mini_snippets_override_expand_insert = true

  -- NOTE: Please also read:
  -- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-snippets.md#expand
  -- :h MiniSnippets-session

  -- Example override for your own config:
  --[[
  return {
    {
      "echasnovski/mini.snippets",
      opts = function(_, opts)
        -- By default, for opts.snippets, the extra for mini.snippets only adds gen_loader.from_lang()
        -- This provides a sensible quickstart, integrating with friendly-snippets
        -- and your own language-specific snippets
        --
        -- In order to change opts.snippets, replace the entire table inside your own opts

        local snippets, config_path = require("mini.snippets"), vim.fn.stdpath("config")

        opts.snippets = { -- override opts.snippets provided by extra...
          -- Load custom file with global snippets first (order matters)
          snippets.gen_loader.from_file(config_path .. "/snippets/global.json"),

          -- Load snippets based on current language by reading files from
          -- "snippets/" subdirectories from 'runtimepath' directories.
          snippets.gen_loader.from_lang(), -- this is the default in the extra...
        }
      end,
    },
  }
--]]
end

```

It's possible to use the code from this PR directly in your own
configuration:

1. Copy the code to lua/extras/coding/mini_snippets.lua in your config
folder
2. Restart nvim and enable the "user" extra for `mini.snippets`
3. Restart nvim
 
## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: abeldekat <abel@nomail.com>
2025-01-23 12:03:36 +01:00
Folke Lemaitre
1e83b4f843
fix(sql): better nvim-cmp check. Closes #5188 2025-01-20 20:32:17 +01:00
Folke Lemaitre
c7a7ab5112
fix(vscode): diabled some snacks plugins. Fixes #5364 2025-01-20 20:30:39 +01:00
Folke Lemaitre
6be7c4fee4
feat(snacks.picker): added alt-c to toggle between cwd/root dir 2025-01-20 20:21:23 +01:00
Folke Lemaitre
dc8512fce1
fix(root): pass args to root.get 2025-01-20 20:21:01 +01:00
github-actions[bot]
2bea40c447
chore(main): release 14.8.0 (#5409)
🤖 I have created a release *beep* *boop*
---


##
[14.8.0](https://github.com/LazyVim/LazyVim/compare/v14.7.0...v14.8.0)
(2025-01-20)


### Features

* **chezmoi:** add snacks picker integration for chezmoi files
([#5429](https://github.com/LazyVim/LazyVim/issues/5429))
([970d1a0](970d1a05da))
* **dial:** add checkbox augend for markdown
([#5411](https://github.com/LazyVim/LazyVim/issues/5411))
([b19f207](b19f2070b8))
* **snacks.picker:** added leader-sS to search lsp workspace symbols
([8787ec1](8787ec1227))
* **snacks:** added git diff keymap to pick hunks with leader-gd
([62cb4a4](62cb4a465c))


### Bug Fixes

* **markdown:** disable checkbox rendering since it's annoying to edit
([4f31bfa](4f31bfab86))
* **snacks.picker:** fix mapping for `Recent (cwd)`
([#5407](https://github.com/LazyVim/LazyVim/issues/5407))
([8307b0f](8307b0fe50))
* **snacks.picker:** fix mapping for Projects for consistency
([#5433](https://github.com/LazyVim/LazyVim/issues/5433))
([eb7b453](eb7b453b48))
* **snacks.picker:** respect lazyvim.config.kind_filter
([#5415](https://github.com/LazyVim/LazyVim/issues/5415))
([df7426e](df7426eefa))


### Performance Improvements

* **java:** setting opts.dap_main to false to disable main class scan
([#5391](https://github.com/LazyVim/LazyVim/issues/5391))
([66c3577](66c3577bc7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-20 13:50:28 +01:00
Junyi Liu
66c3577bc7
perf(java): setting opts.dap_main to false to disable main class scan (#5391)
## Description

For large Java project, calling
`require("jdtls.dap").setup_dap_main_class_configs(opts.dap_main)` has a
huge performance impact on the LSP. I tested on a Java project with 3.7K
java source files and 12K other files, a simple go_definition can take
about 20-30 seconds.

This change allow user to set the `opts.dap_main` to false so we can
skip the main class scan. By using the `.lazy.lua` project specific
setting, we can easily customize this option per project.

## Related Issue(s)

#5387 

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-20 13:16:14 +01:00
folke
0e5d17537a chore(build): auto-generate docs 2025-01-20 10:56:42 +00:00
Daniel Chong
eb7b453b48
fix(snacks.picker): fix mapping for Projects for consistency (#5433)
## Description

`<leader>fp` is the mapping for Telescope and fzf for
[Projects](https://www.lazyvim.org/extras/util/project). This PR makes
this shortcut consistent for snacks picker.

## Related Issue(s)

## Screenshots

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-20 11:55:51 +01:00
folke
8f58fe0b62 chore(build): auto-generate docs 2025-01-19 17:34:47 +00:00
Folke Lemaitre
8787ec1227
feat(snacks.picker): added leader-sS to search lsp workspace symbols 2025-01-19 18:33:48 +01:00
folke
4e8d75144d chore(build): auto-generate docs 2025-01-18 13:53:19 +00:00
Imron Gamidli
970d1a05da
feat(chezmoi): add snacks picker integration for chezmoi files (#5429)
## Description

We have a new picker Snacks picker, it means telescope and fzf-lua can
be uninstalled. But chezmoi files still listed only with telescope and
fzf-lua. In this pr we add snacks.picker integration if the user has
chosen snacks.picker in the LazyVimExtras.
2025-01-18 14:52:25 +01:00
folke
b574f01af7 chore(build): auto-generate docs 2025-01-17 09:01:25 +00:00
Jorge Villalobos
b729e65318
refactor(blink): color swatch icon upstreamed (#5141)
## Description

I've upstreamed the block char vs. icon replacement for Tailwind colors
so we shouldn't need this here anymore. I've replaced it by extending
the default blink icons instead, just in case they introduce an icon
which isn't yet covered by Lazy's, it would still show up (unlikely, but
better, no?).

## Related Issue(s)

none

## Screenshots

none

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-17 10:00:30 +01:00
Riri
df7426eefa
fix(snacks.picker): respect lazyvim.config.kind_filter (#5415)
## Description

Currently, snacks.picker does not filter symbols based on the
kind_filter configured in lazyvim.

This PR addresses that issue.

## Screenshots

nil

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: ding.zhao <ding.zhao@trip.com>
2025-01-16 11:37:59 +01:00
Folke Lemaitre
4f31bfab86
fix(markdown): disable checkbox rendering since it's annoying to edit 2025-01-16 10:05:33 +01:00
Yusuf Aktepe
b19f2070b8
feat(dial): add checkbox augend for markdown (#5411)
## Description

Added support for markdown checkboxes. ( **[ ]** <-> **[x]** )

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-16 10:01:30 +01:00
folke
915aab99ef chore(build): auto-generate docs 2025-01-16 08:59:38 +00:00
Folke Lemaitre
62cb4a465c
feat(snacks): added git diff keymap to pick hunks with leader-gd 2025-01-16 09:58:43 +01:00
folke
6aefa8ec3e chore(build): auto-generate docs 2025-01-15 18:54:50 +00:00
Iordanis Petkakis
8307b0fe50
fix(snacks.picker): fix mapping for Recent (cwd) (#5407)
## Description
The mapping `<leader>fR` was showing all recent files instead of the
ones in the `cwd` only.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-15 19:53:56 +01:00
github-actions[bot]
3660c52017
chore(main): release 14.7.0 (#5398)
🤖 I have created a release *beep* *boop*
---


##
[14.7.0](https://github.com/LazyVim/LazyVim/compare/v14.6.1...v14.7.0)
(2025-01-14)


### Features

* **extras:** added extra for snacks picker
([#5368](https://github.com/LazyVim/LazyVim/issues/5368))
([13044c2](13044c298e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-14 23:44:06 +01:00
folke
52dae02c43 chore(build): auto-generate docs 2025-01-14 21:55:09 +00:00
Folke Lemaitre
13044c298e
feat(extras): added extra for snacks picker (#5368)
## Description

See https://github.com/folke/snacks.nvim/pull/445

NOTE: I'm **not** going to replace `fzf-lua` anytime soon. Learned my
lessons with that one :)

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-14 22:54:12 +01:00
github-actions[bot]
d1529f650f
chore(main): release 14.6.1 (#5320)
🤖 I have created a release *beep* *boop*
---


##
[14.6.1](https://github.com/LazyVim/LazyVim/compare/v14.6.0...v14.6.1)
(2025-01-08)


### Bug Fixes

* **blink:** added new luasnip preset
([8d2d9a9](8d2d9a9bd9))
* **luasnip:** correctly remove duplicate snippets
([#5214](https://github.com/LazyVim/LazyVim/issues/5214))
([05c3447](05c3447558))
* **nlua:** debugger not responding
([#5319](https://github.com/LazyVim/LazyVim/issues/5319))
([4e746d0](4e746d0e56))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-08 14:58:56 +01:00
folke
41f40b73d9 chore(build): auto-generate docs 2025-01-08 06:42:41 +00:00
Folke Lemaitre
8d2d9a9bd9
fix(blink): added new luasnip preset 2025-01-08 07:41:44 +01:00
folke
c1319cb7ac chore(build): auto-generate docs 2025-01-07 11:05:24 +00:00
Iordanis Petkakis
05c3447558
fix(luasnip): correctly remove duplicate snippets (#5214)
## Description
Remove `snippets` from `opts.sources.default` when Luasnip is enabled to
not get duplicate snippets.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #5210
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-07 12:04:17 +01:00
folke
c8159b6abf chore(build): auto-generate docs 2025-01-06 04:53:25 +00:00
William Heryanto
4e746d0e56
fix(nlua): debugger not responding (#5319)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

Reference:
https://github.com/jbyuki/one-small-step-for-vimkind/issues/45#issuecomment-2125749906

Fix nlua debug adapter not responding, which for some reason because of
`fzf-lua`.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

No screenshot instead I'm providing how to reproduce with assumption
`dap.nlua` extra is enabled. Steps:

1. Launch the nlua `:lua require'osv'.launch({port=8086})`

2. Attach from any neovim instance to the debugger

   1. Run the debugger
      - Can do `<leader>dc`; or
      - Can do `:lua require'dap'.continue()`
   2. Choose `Attach to running Neovim instance (port = 8086)`

3. Prior to this changes, debugger will got timeout like the following

   ```text
Debug adapter didn't respond. Either the adapter is slow (then wait and
ignore this) or there is a problem with your adapter or `nlua`
configuration. Check the logs for errors (:help dap.set_log_level)
   ```

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-06 05:52:36 +01:00
github-actions[bot]
d0c366e4d8
chore(main): release 14.6.0 (#5176)
🤖 I have created a release *beep* *boop*
---


##
[14.6.0](https://github.com/LazyVim/LazyVim/compare/v14.5.0...v14.6.0)
(2024-12-20)


### Features

* **colorscheme:** add fzf integration to catppuccin
([#5175](https://github.com/LazyVim/LazyVim/issues/5175))
([751803f](751803f98b))
* **lualine:** add fzf extensions.
([#5203](https://github.com/LazyVim/LazyVim/issues/5203))
([7a16a75](7a16a752ba))


### Bug Fixes

* **blink:** remove compatibility with 0.7.6 release
([#5212](https://github.com/LazyVim/LazyVim/issues/5212))
([857f330](857f330c21))
* **codeium:** doesnt automatically load when `vim.g.ai_cmp` is set to
false ([#5182](https://github.com/LazyVim/LazyVim/issues/5182))
([b51279c](b51279c6d7))
* **fzf:** fzf.lua compatible hidden scrollbar
([#5177](https://github.com/LazyVim/LazyVim/issues/5177))
([3a79273](3a79273f3c))
* **luasnip:** use blink's luasnip source. Closes
[#5211](https://github.com/LazyVim/LazyVim/issues/5211)
([86de9c9](86de9c9e44))


### Performance Improvements

* **supermaven:** add lazy-loading
([#5183](https://github.com/LazyVim/LazyVim/issues/5183))
([a3a28bf](a3a28bf8e4))


### Reverts

* fix(fzf): fzf.lua compatible hidden scrollbar
([#5177](https://github.com/LazyVim/LazyVim/issues/5177))
([c40692c](c40692c1b0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-20 18:36:49 +01:00
Folke Lemaitre
86de9c9e44
fix(luasnip): use blink's luasnip source. Closes #5211 2024-12-20 18:35:22 +01:00
Igor Guerrero
857f330c21
fix(blink): remove compatibility with 0.7.6 release (#5212)
## Description

With the version update 5 mins ago, I got an error with this setting.

I'm not sure if removal is the correct way to fix this but it does runs
well on my local.

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-20 18:10:45 +01:00
folke
c1ee761dd8 chore(build): auto-generate docs 2024-12-20 08:12:41 +00:00
milanglacier
7a16a752ba
feat(lualine): add fzf extensions. (#5203)
## Description

Similar to #5175, add `fzf` integration with lualine.

Note that similar to #5175, integration with `fzf` is included
unconditionally. I think we don't need to check if the users choose
`fzf` as their default picker to conditionally add the fzf integration
with lualine.

## Screenshots

**Before**:

<img width="446" alt="Screenshot 2024-12-19 at 17 58 30"
src="https://github.com/user-attachments/assets/b9974180-92e7-47fe-8f48-b153f29e0c72"
/>

**After**:

<img width="204" alt="Screenshot 2024-12-19 at 17 59 28"
src="https://github.com/user-attachments/assets/777c3433-2347-4b6a-a5cd-435404b1386a"
/>
2024-12-20 09:11:44 +01:00
Manuuurino
a3a28bf8e4
perf(supermaven): add lazy-loading (#5183)
## Description

As title, somehow these events have been forgotten, ive checked the git
history of it aswell.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-19 15:41:11 +01:00
folke
2c2aa62546 chore(build): auto-generate docs 2024-12-19 07:30:13 +00:00
Folke Lemaitre
c40692c1b0
revert: fix(fzf): fzf.lua compatible hidden scrollbar (#5177)
This reverts commit 3a79273f3c.
2024-12-19 08:29:19 +01:00
Manuuurino
b51279c6d7
fix(codeium): doesnt automatically load when vim.g.ai_cmp is set to false (#5182)
## Description

I think the title of the PR says it all. Before the user has to manually
load/trigger the plugin via the cmd (`:Codeium Auth`) or by requiring.

PS: The copilot extra also has this event.

~~PPS: Ive also noticed that supermaven doesnt have this event setup,
perhaps it suffers to the same issue when this option is disabled?~~

Edit:
For the PPS, have tested supermaven, i can confirm, it loads properly.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-18 22:28:39 +01:00
Uzzal Devkota
3a79273f3c
fix(fzf): fzf.lua compatible hidden scrollbar (#5177)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
`--no-scrollbar` option is not supported by
[fzf-lua](https://github.com/ibhagwan/fzf-lua)
The recommended way is to set `winopts.preview.scrollbar=false`

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-18 22:28:04 +01:00
folke
28d3ee4970 chore(build): auto-generate docs 2024-12-18 12:50:24 +00:00
kezhenxu94
751803f98b
feat(colorscheme): add fzf integration to catppuccin (#5175)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-18 13:49:13 +01:00
github-actions[bot]
447e260a62
chore(main): release 14.5.0 (#5109)
🤖 I have created a release *beep* *boop*
---


##
[14.5.0](https://github.com/LazyVim/LazyVim/compare/v14.4.0...v14.5.0)
(2024-12-17)


### Features

* **blink:** increase lazydev scores
([22015e0](22015e0b48))


### Bug Fixes

* **blink:** add `vim.snippet` fixes to blink (was already added to
cmp). Fixes [#5067](https://github.com/LazyVim/LazyVim/issues/5067)
([5ea3cfa](5ea3cfa48e))
* **blink:** don't trigger automatically on insert
([2cf3d23](2cf3d234bf))
* **blink:** remove show_on_insert_on_trigger_character since this has
been fixed for {} and others
([0f3a120](0f3a120186))
* **illuminate:** disable snacks.words when illuminate extra is enabled.
Fixes [#5125](https://github.com/LazyVim/LazyVim/issues/5125)
([d025115](d0251155ab))
* **supermaven:** don't attach to bigfile and some snacks ft. Fixes
[#5139](https://github.com/LazyVim/LazyVim/issues/5139)
([25ee13c](25ee13ce29))
* **vscode:** disable some snacks plugins in vscode. Closes
[#5124](https://github.com/LazyVim/LazyVim/issues/5124)
([301135b](301135b274))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-17 17:04:54 +01:00
folke
1599187175 chore(build): auto-generate docs 2024-12-17 06:09:33 +00:00
Folke Lemaitre
25ee13ce29
fix(supermaven): don't attach to bigfile and some snacks ft. Fixes #5139 2024-12-17 07:08:34 +01:00
Jorge Villalobos
2d7a04be47
refactor(blink): use upstream <Tab> keymap fn (#5130)
## Description

Replace re-defined super-tab `<Tab>` keymap function with the original
upstream one, so upstream fixes can propagate.

Related to #5127 

## Related Issue(s)

none

## Screenshots

none

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-16 20:29:13 +01:00
Folke Lemaitre
0f3a120186
fix(blink): remove show_on_insert_on_trigger_character since this has been fixed for {} and others 2024-12-16 20:28:01 +01:00
Folke Lemaitre
2cf3d234bf
fix(blink): don't trigger automatically on insert 2024-12-16 18:09:44 +01:00
Folke Lemaitre
0b6d1c0050
style(lsp): remove refs to document_highlight, which is no longer used 2024-12-16 17:47:07 +01:00
Folke Lemaitre
301135b274
fix(vscode): disable some snacks plugins in vscode. Closes #5124 2024-12-16 17:45:50 +01:00
Folke Lemaitre
d0251155ab
fix(illuminate): disable snacks.words when illuminate extra is enabled. Fixes #5125 2024-12-16 17:41:19 +01:00
Folke Lemaitre
5ea3cfa48e
fix(blink): add vim.snippet fixes to blink (was already added to cmp). Fixes #5067 2024-12-16 16:19:24 +01:00
folke
7019295373 chore(build): auto-generate docs 2024-12-16 07:18:15 +00:00
Folke Lemaitre
22015e0b48
feat(blink): increase lazydev scores 2024-12-16 08:17:11 +01:00
github-actions[bot]
c8d8dd0ab6
chore(main): release 14.4.0 (#5089)
🤖 I have created a release *beep* *boop*
---


##
[14.4.0](https://github.com/LazyVim/LazyVim/compare/v14.3.0...v14.4.0)
(2024-12-15)


### Features

* **blink:** boost results from ai providers and enable async, to get
much faster completions
([6bc56e4](6bc56e4e81))
* **keymaps:** unlink luasnip on `esc`
([ef91026](ef9102677f))


### Bug Fixes

* **blink:** allow overriding `&lt;Tab&gt;` key. Fixes
[#5095](https://github.com/LazyVim/LazyVim/issues/5095). Closes
[#5099](https://github.com/LazyVim/LazyVim/issues/5099)
([89314cb](89314cb2aa))
* **keymaps:** better escape
([8f113a5](8f113a514c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-15 20:26:59 +01:00
Folke Lemaitre
89314cb2aa
fix(blink): allow overriding <Tab> key. Fixes #5095. Closes #5099 2024-12-15 18:44:24 +01:00
Folke Lemaitre
8f113a514c
fix(keymaps): better escape 2024-12-15 18:39:48 +01:00
Folke Lemaitre
6bc56e4e81
feat(blink): boost results from ai providers and enable async, to get much faster completions 2024-12-15 18:33:50 +01:00
Folke Lemaitre
ef9102677f
feat(keymaps): unlink luasnip on esc 2024-12-15 11:46:24 +01:00
github-actions[bot]
8fe3b5eec8
chore(main): release 14.3.0 (#5087)
🤖 I have created a release *beep* *boop*
---


##
[14.3.0](https://github.com/LazyVim/LazyVim/compare/v14.2.0...v14.3.0)
(2024-12-15)


### Features

* **config:** better icon for snippets
([195a6e6](195a6e6114))
* **keymaps:** stop native snippets on escape. Closes
[#5083](https://github.com/LazyVim/LazyVim/issues/5083)
([15c81fd](15c81fdbb8))


### Bug Fixes

* **blink:** super-tab and ai completions
([413566a](413566af59))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-15 10:00:11 +01:00
Folke Lemaitre
413566af59
fix(blink): super-tab and ai completions 2024-12-15 08:59:48 +01:00
folke
eead9dff84 chore(build): auto-generate docs 2024-12-15 07:37:13 +00:00
Folke Lemaitre
15c81fdbb8
feat(keymaps): stop native snippets on escape. Closes #5083 2024-12-15 08:36:21 +01:00
Folke Lemaitre
195a6e6114
feat(config): better icon for snippets 2024-12-15 08:36:21 +01:00
Daniele
bd6ca6bda7
docs(README): translate README.md to Italian (#5060)
## Description

Add an Italian translation of the main `README.md` to `README-IT.md`
file to make LazyVim more accessible to Italian-speaking users, just
like we did for other languages. The translation maintains all original
formatting, links and images while providing natural Italian language
text.

## Related Issue(s)

None

## Screenshots

None

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-14 22:33:27 +01:00
github-actions[bot]
c2175397a7
chore(main): release 14.2.0 (#5048)
🤖 I have created a release *beep* *boop*
---


##
[14.2.0](https://github.com/LazyVim/LazyVim/compare/v14.1.0...v14.2.0)
(2024-12-14)


### Features

* **blink:** add `&lt;c-y&gt;` to keymaps
([3866fbc](3866fbcd40))


### Bug Fixes

* **blink:** `draw.treesitter` expects table
([#5044](https://github.com/LazyVim/LazyVim/issues/5044))
([08a7f7e](08a7f7e3f9))
* **blink:** compat with 0.7.6
([63eab6d](63eab6d9a5))
* **blink:** only override color symbol kind for blink
([b07378d](b07378dde4))
* **health:** added `fzf` to healthchecks
([380cea9](380cea97bf))
* **health:** added curl to health checks
([5de1532](5de15329fb))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-14 15:31:01 +01:00
Folke Lemaitre
5de15329fb
fix(health): added curl to health checks 2024-12-14 14:42:21 +01:00
Vicente Roa
dc4345a5ee
docs(README): translate README.md to Spanish (#5054)
## Description

This pull request translates the README.md file from English to Spanish
to provide Spanish-speaking users with an easier way to understand the
setup and features of LazyVim. The translation includes all sections of
the original file, ensuring that the core documentation remains intact
while making it more accessible to a broader audience.

## Related Issue(s)

None.

## Screenshots

None.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-14 07:52:58 +01:00
Folke Lemaitre
380cea97bf
fix(health): added fzf to healthchecks 2024-12-14 07:44:18 +01:00
folke
1efb379485 chore(build): auto-generate docs 2024-12-14 06:43:23 +00:00
Folke Lemaitre
3866fbcd40
feat(blink): add <c-y> to keymaps 2024-12-14 07:42:25 +01:00
Valentin Degenne
6503e59db3
style(keymaps): stylua (#5006)
🧼💦🫧
2024-12-14 00:05:56 +01:00
Folke Lemaitre
5105f3c029
style(blink): make luals happy 2024-12-13 22:54:52 +01:00
Folke Lemaitre
b07378dde4
fix(blink): only override color symbol kind for blink 2024-12-13 22:54:38 +01:00
Folke Lemaitre
63eab6d9a5
fix(blink): compat with 0.7.6 2024-12-13 22:46:09 +01:00
Iordanis Petkakis
08a7f7e3f9
fix(blink): draw.treesitter expects table (#5044)
## Description
If you would like to enable more sources feel free. I just went with the
recommended setting in blink's default configuration. Although on their
repo the have it to empty table, but I assumed since you had it to
`true` you would at least want the `lsp` source.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-13 22:37:25 +01:00
github-actions[bot]
d30e9e31eb
chore(main): release 14.1.0 (#5043)
🤖 I have created a release *beep* *boop*
---


##
[14.1.0](https://github.com/LazyVim/LazyVim/compare/v14.0.2...v14.1.0)
(2024-12-13)


### Features

* **blink:** use block vs. icon for colors
([#5037](https://github.com/LazyVim/LazyVim/issues/5037))
([4488cb2](4488cb24f7))


### Bug Fixes

* **blink:** add backward compat for config
([1517ec9](1517ec9bb4))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-13 21:10:19 +01:00
Folke Lemaitre
1517ec9bb4
fix(blink): add backward compat for config 2024-12-13 21:08:48 +01:00
Jorge Villalobos
4488cb24f7
feat(blink): use block vs. icon for colors (#5037)
## Description

Replace use of icon for `Color` kind with block characters for
`blink.cmp` autocomplete items to make swatches more usable. This also
makes the `blink.cmp` built-in Tailwind integration better match
`nvim-cmp`.

**Note:** I didn't want to replace the default
`LazyVim.config.icons.kinds.Color` in case it's used by other plugins
(e.g. context), but didn't actually find any real uses, so perhaps that
could be done instead? Figured best to leave those untouched as they can
be more generically used as actual icons, and are not always guaranteed
to have custom highlights applied.

## Related Issue(s)

None.

## Screenshots

### Old

![Screenshot 2024-12-13 at 12 18
47](https://github.com/user-attachments/assets/1e73dac9-728d-47ba-8df1-4445b0143177)

### New

![Screenshot 2024-12-13 at 12 18
13](https://github.com/user-attachments/assets/1ff042f1-eda4-4a1b-afcd-658075666eeb)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-13 20:18:25 +01:00
github-actions[bot]
d2ba0473f0
chore(main): release 14.0.2 (#5042)
🤖 I have created a release *beep* *boop*
---


##
[14.0.2](https://github.com/LazyVim/LazyVim/compare/v14.0.1...v14.0.2)
(2024-12-13)


### Bug Fixes

* **cmp:** disable nvim-cmp/blink.cmp when needed
([60b7704](60b77045d5))
* **cmp:** wrong extras check for nvim-cmp
([009e358](009e3587be))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-13 19:58:07 +01:00
Folke Lemaitre
60b77045d5
fix(cmp): disable nvim-cmp/blink.cmp when needed 2024-12-13 19:56:03 +01:00
Folke Lemaitre
009e3587be
fix(cmp): wrong extras check for nvim-cmp 2024-12-13 19:53:18 +01:00
github-actions[bot]
9a0d14dcf5
chore(main): release 14.0.1 (#5033)
🤖 I have created a release *beep* *boop*
---


##
[14.0.1](https://github.com/LazyVim/LazyVim/compare/v14.0.0...v14.0.1)
(2024-12-13)


### Bug Fixes

* **NEWS:** typo
([0fd7140](0fd7140a6d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-13 17:27:22 +01:00
Folke Lemaitre
0fd7140a6d
fix(NEWS): typo 2024-12-13 17:21:37 +01:00
Folke Lemaitre
5a503c556a
docs: fix NEWS link to blink.cmp 2024-12-13 16:57:55 +01:00
github-actions[bot]
f3a919d23d
chore(main): release 14.0.0 (#5008)
🤖 I have created a release *beep* *boop*
---


##
[14.0.0](https://github.com/LazyVim/LazyVim/compare/v13.9.1...v14.0.0)
(2024-12-13)


### ⚠ BREAKING CHANGES

* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim
>= `0.10` as default completion engine
* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim
>= `0.10` as default completion engine
* **snacks:** use `snacks.scope` indent objects in favor of custom
`mini.ai` indent objects
* **snacks:** use `snacks.indent` and moved `indent-blankline` to extras
* **pick:** make fzf the default picker for LazyVim

### Features

* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim
&gt;= `0.10` as default completion engine
([152f9d1](152f9d113f))
* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim
&gt;= `0.10` as default completion engine
([2cbfb9b](2cbfb9b6b7))
* **keymaps:** added leader-uD to toggle dim mode
([9b97388](9b973882b8))
* **keymaps:** added leader-z to toggle zen mode
([e6d6a09](e6d6a096b3))
* **keymaps:** added leader-Z to toggle zoom
([f2e1cac](f2e1cac965))
* **lualine:** add snacks profiler status
([7bc8490](7bc8490d46))
* **pick:** make fzf the default picker for LazyVim
([ae2340f](ae2340f60a))
* **rust:** exclude bad directories from rust-analyzer
([#5021](https://github.com/LazyVim/LazyVim/issues/5021))
([94f6df0](94f6df048f))
* **snacks:** added `snacks.input`
([54bece1](54bece17b3))
* **snacks:** added leader-ua to toggle global animations
([303980d](303980d267))
* **snacks:** added leader-ug to toggle indent guides
([b3ac642](b3ac642317))
* **snacks:** added leader-uS to toggle scroll
([cded8d4](cded8d4d28))
* **snacks:** added profiler keymaps
([a8332c6](a8332c6d50))
* **snacks:** enable `snacks.scroll`
([1a1a484](1a1a48497c))
* **snacks:** use `snacks.indent` and moved `indent-blankline` to extras
([94fdc42](94fdc421a1))
* **snacks:** use `snacks.scope` indent objects in favor of custom
`mini.ai` indent objects
([d904a1e](d904a1ef47))
* **snacks:** use `Snacks.zen.zoom()` instead of custom **maximize**
([e389a5a](e389a5ada9))
* **which-key:** make `helix` the default which-key preset
([44c712a](44c712aa31))
* **zen:** zoom with leader-wm and leader-uZ. zen with leader-uz
([2acedaa](2acedaa3a8))


### Bug Fixes

* **blink:** disable cmdline integration for now since it doesn't work
well with the enter keymap
([20eff4f](20eff4fc3f))
* **blink:** remove unneeded code
([d95e530](d95e530c02))
* **blink:** unset provider.kind
([#5024](https://github.com/LazyVim/LazyVim/issues/5024))
([29c4dea](29c4dea4e7))
* **blink:** unset sources.compat. Fixes
[#5016](https://github.com/LazyVim/LazyVim/issues/5016). Closes
[#5017](https://github.com/LazyVim/LazyVim/issues/5017)
([2946031](29460318f3))
* **clangd:** avoid nil-indexing the completion sorting comparators
([#5011](https://github.com/LazyVim/LazyVim/issues/5011))
([c4b0d6d](c4b0d6d0d1))
* **clangd:** nvim-cmp optional
([94be6fb](94be6fb787))
* **copliot:** restructure copilot-cmp spec
([34d2bdc](34d2bdcac6))
* fqn for nvim-cmp
([a9a273d](a9a273d041))
* **git:** make nvim-cmp optional for the git extra
([ec92fa8](ec92fa8558))
* **java:** only setup debug adapter config if mason is installed
([#5013](https://github.com/LazyVim/LazyVim/issues/5013))
([aad0edb](aad0edbf74))
* **java:** only setup debug adapter config if mason is installed (for
real this time)
([#5014](https://github.com/LazyVim/LazyVim/issues/5014))
([5b1b6b2](5b1b6b29d7))
* **java:** only use mason-registry if mason installed
([#4991](https://github.com/LazyVim/LazyVim/issues/4991))
([21b02f0](21b02f056d))
* **mini.animate:** disable `snacks.scroll` when `mini.animate` is
enabled
([9b07544](9b07544e89))
* **mini.indentscope:** disable snacks and indent-blankline scope
([98c77f1](98c77f1de4))
* **nvim-cmp:** set high prio for loading the nvim-cmp extra to prevent
issues with opts
([adf8db6](adf8db69ed))
* **nvim-cmp:** specs
([88e77b0](88e77b0e24))
* **ui:** use `Snacks.util.color` instead of `LazyVim.ui.fg`
([6d774ba](6d774ba8f2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-13 16:39:33 +01:00
Folke Lemaitre
20eff4fc3f
fix(blink): disable cmdline integration for now since it doesn't work well with the enter keymap 2024-12-13 09:31:42 +01:00
iniw
94f6df048f
feat(rust): exclude bad directories from rust-analyzer (#5021)
## Description

rust-analyzer is unfortunately not smart enough to use a folder's
.gitignore (or similar) when looking for rust files to analyze, meaning
that when it finds a large enough folder (e.g: .git, .direnv) it
completely dies going through it searching for rust files.

This commit adds a filter of common folders that are big enough to
potentially choke rust-analyzer. The list could be amended in the
future.

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-13 07:28:09 +01:00
Jorge Villalobos
29c4dea4e7
fix(blink): unset provider.kind (#5024)
## Description

Unsets `sources.providers[provider].kind` custom properties to pass
blink.cmp config validation.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

![Screenshot 2024-12-12 at 23 21
47](https://github.com/user-attachments/assets/21866a51-d0d5-4ee5-9cc3-3ce7f2eb6415)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-13 07:25:42 +01:00
folke
b0808cb31f chore(build): auto-generate docs 2024-12-13 06:24:40 +00:00
Matt Rogers
a396a2462f
docs(README): add fzf dependencies to docker (#5020)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
With the picker and completion changes, fzf and curl need to be
installed as part of the try it with docker instructions.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-13 07:23:41 +01:00
Folke Lemaitre
d95e530c02
fix(blink): remove unneeded code 2024-12-13 00:33:52 +01:00
Folke Lemaitre
29460318f3
fix(blink): unset sources.compat. Fixes #5016. Closes #5017 2024-12-13 00:25:53 +01:00
iniw
5b1b6b29d7
fix(java): only setup debug adapter config if mason is installed (for real this time) (#5014)
## Description

This one *actually* fixes the issue, sorry about my previous PR.
2024-12-12 19:37:08 +01:00
iniw
aad0edbf74
fix(java): only setup debug adapter config if mason is installed (#5013)
## Description
This prevents the following error when opening java files when mason is
disabled (e.g: NixOS)

```
Failed to run `config` for nvim-jdtls

...im/lazy/LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:149: module 'mason-registry' not found:
	no field package.preload['mason-registry']
cache_loader: module mason-registry not found
cache_loader_lib: module mason-registry not found
	no file '/nix/store/j3563y13yim4m7qdwk0m8h22648wbifj-luajit-2.1.1713773202-env/share/lua/5.1/mason-registry.lua'
	no file '/nix/store/j3563y13yim4m7qdwk0m8h22648wbifj-luajit-2.1.1713773202-env/share/lua/5.1/mason-registry/init.lua'
	no file '/nix/store/j3563y13yim4m7qdwk0m8h22648wbifj-luajit-2.1.1713773202-env/lib/lua/5.1/mason-registry.so'

# stacktrace:
  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:149 _in_ **config**
  - /nix/store/xgn4baapvvk35ssi47bsmmyawl83917g-neovim-unwrapped-0.10.2/share/nvim/runtime/filetype.lua:36
  - /nix/store/xgn4baapvvk35ssi47bsmmyawl83917g-neovim-unwrapped-0.10.2/share/nvim/runtime/filetype.lua:35
```

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-12 18:58:39 +01:00
Ughur Alakbarov
21b02f056d
fix(java): only use mason-registry if mason installed (#4991)
## Description
The current config breaks when mason is not installed (e.g. for Nix
users). This PR makes the mason-related functionality (which, as of now,
consists only of finding `lombok`) dependent on mason being installed.
As noted in the commit, this does make it impossible to use lombok
without mason, but I'm unaware of any other method of finding it (which
is why mason-registry was used in the first place, I assume)

Please note that I'm not very experienced with Lua and the code might be
not the most idiomatic one.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-12-12 18:15:53 +01:00
Folke Lemaitre
8b8e322b68
docs: fixed keymaps in NEWS 2024-12-12 17:38:42 +01:00
Folke Lemaitre
adf8db69ed
fix(nvim-cmp): set high prio for loading the nvim-cmp extra to prevent issues with opts 2024-12-12 16:54:34 +01:00
iniw
c4b0d6d0d1
fix(clangd): avoid nil-indexing the completion sorting comparators (#5011)
## Description

This prevents the following popup appearing when opening nvim:

```
Failed to run `config` for nvim-cmp

.../lazy/LazyVim/lua/lazyvim/plugins/extras/lang/clangd.lua:108: attempt to index field 'sorting' (a nil value)

# stacktrace:
  - /LazyVim/lua/lazyvim/plugins/extras/lang/clangd.lua:108 _in_ **values**
  - ~/.config/nvim/lua/config/lazy.lua:17
  - ~/.config/nvim/init.lua:2
  
```

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-12 16:51:34 +01:00
Folke Lemaitre
98c77f1de4
fix(mini.indentscope): disable snacks and indent-blankline scope 2024-12-12 16:44:28 +01:00
Folke Lemaitre
94be6fb787
fix(clangd): nvim-cmp optional 2024-12-12 16:43:25 +01:00
Folke Lemaitre
a9a273d041
fix: fqn for nvim-cmp 2024-12-12 14:45:47 +01:00
Folke Lemaitre
3a67abdf6d docs: updated NEWS.md 2024-12-12 13:47:29 +01:00
Folke Lemaitre
34d2bdcac6 fix(copliot): restructure copilot-cmp spec 2024-12-12 13:47:29 +01:00
Folke Lemaitre
bdc865b291 style: typo 2024-12-12 13:47:29 +01:00
Folke Lemaitre
a8332c6d50 feat(snacks): added profiler keymaps 2024-12-12 13:47:29 +01:00
Folke Lemaitre
2acedaa3a8 feat(zen): zoom with leader-wm and leader-uZ. zen with leader-uz 2024-12-12 13:47:29 +01:00
Folke Lemaitre
54bece17b3 feat(snacks): added snacks.input 2024-12-12 13:47:29 +01:00
Folke Lemaitre
cded8d4d28 feat(snacks): added leader-uS to toggle scroll 2024-12-12 13:47:29 +01:00
Folke Lemaitre
b3ac642317 feat(snacks): added leader-ug to toggle indent guides 2024-12-12 13:47:29 +01:00
Folke Lemaitre
ec92fa8558 fix(git): make nvim-cmp optional for the git extra 2024-12-12 13:47:29 +01:00
Folke Lemaitre
ba632c500d refactor(snacks): move snacks specs to ui/util so that they show up in the generated docs 2024-12-12 13:47:29 +01:00
Folke Lemaitre
303980d267 feat(snacks): added leader-ua to toggle global animations 2024-12-12 13:47:29 +01:00
Folke Lemaitre
88e77b0e24 fix(nvim-cmp): specs 2024-12-12 13:47:29 +01:00
Folke Lemaitre
e6d6a096b3 feat(keymaps): added leader-z to toggle zen mode 2024-12-12 13:47:29 +01:00
Folke Lemaitre
f2e1cac965 feat(keymaps): added leader-Z to toggle zoom 2024-12-12 13:47:29 +01:00
Folke Lemaitre
9b973882b8 feat(keymaps): added leader-uD to toggle dim mode 2024-12-12 13:47:29 +01:00
Folke Lemaitre
7bc8490d46 feat(lualine): add snacks profiler status 2024-12-12 13:47:29 +01:00
Folke Lemaitre
6d774ba8f2 fix(ui): use Snacks.util.color instead of LazyVim.ui.fg 2024-12-12 13:47:29 +01:00
Folke Lemaitre
e389a5ada9 feat(snacks): use Snacks.zen.zoom() instead of custom **maximize** 2024-12-12 13:47:29 +01:00
Folke Lemaitre
152f9d113f feat(cmp)!: moved nvim-cmp to extras and prefer blink.cmp on Neovim >= 0.10 as default completion engine 2024-12-12 13:47:29 +01:00
Folke Lemaitre
2cbfb9b6b7 feat(cmp)!: moved nvim-cmp to extras and prefer blink.cmp on Neovim >= 0.10 as default completion engine 2024-12-12 13:47:29 +01:00
Folke Lemaitre
d904a1ef47 feat(snacks)!: use snacks.scope indent objects in favor of custom mini.ai indent objects 2024-12-12 13:47:29 +01:00
Folke Lemaitre
1a1a48497c feat(snacks): enable snacks.scroll 2024-12-12 13:47:29 +01:00
Folke Lemaitre
94fdc421a1 feat(snacks)!: use snacks.indent and moved indent-blankline to extras 2024-12-12 13:47:29 +01:00
Folke Lemaitre
9b07544e89 fix(mini.animate): disable snacks.scroll when mini.animate is enabled 2024-12-12 13:47:29 +01:00
Folke Lemaitre
44c712aa31 feat(which-key): make helix the default which-key preset 2024-12-12 13:47:29 +01:00
Folke Lemaitre
ae2340f60a feat(pick)!: make fzf the default picker for LazyVim 2024-12-12 13:47:29 +01:00
github-actions[bot]
31af207542
chore(main): release 13.9.1 (#5003)
🤖 I have created a release *beep* *boop*
---


##
[13.9.1](https://github.com/LazyVim/LazyVim/compare/v13.9.0...v13.9.1)
(2024-12-12)


### Bug Fixes

* **blink:** set kind to int, not string, if overriding
([#4999](https://github.com/LazyVim/LazyVim/issues/4999))
([cee60a6](cee60a6d30))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-12 13:47:07 +01:00
folke
69e8867a0f chore(build): auto-generate docs 2024-12-12 05:30:09 +00:00
Stefan Boca
cee60a6d30
fix(blink): set kind to int, not string, if overriding (#4999)
## Description

when sorting completion results, blink compares kinds, which can result
in an error if the kind is a string

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-12 06:29:08 +01:00
github-actions[bot]
475e3f32b8
chore(main): release 13.9.0 (#4979)
🤖 I have created a release *beep* *boop*
---


##
[13.9.0](https://github.com/LazyVim/LazyVim/compare/v13.8.0...v13.9.0)
(2024-12-11)


### Features

* **luasnip:** add default user snippet location
([#4987](https://github.com/LazyVim/LazyVim/issues/4987))
([8c79ab6](8c79ab601a))
* **vscode:** add vscode-specific keymaps and sync undo/redo with vscode
([#4983](https://github.com/LazyVim/LazyVim/issues/4983))
([9ad1c49](9ad1c49b67))


### Bug Fixes

* **autocmds:** remove snacks_win from close_with_q, since they have
their own keymaps
([99c361f](99c361f708))
* **blink:** config breaking changes. Fixes
[#4990](https://github.com/LazyVim/LazyVim/issues/4990)
([439340b](439340bd8a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-12 00:29:18 +01:00
Valentin Degenne
8c79ab601a
feat(luasnip): add default user snippet location (#4987)
## Description

Loads snippets in user directories if it exists.

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-11 11:13:57 +01:00
folke
87915a1f23 chore(build): auto-generate docs 2024-12-11 09:58:12 +00:00
Folke Lemaitre
439340bd8a
fix(blink): config breaking changes. Fixes #4990 2024-12-11 10:57:09 +01:00
deniz gökçin
9ad1c49b67
feat(vscode): add vscode-specific keymaps and sync undo/redo with vscode (#4983)
## Summary
This pull request introduces several new keymaps specifically for VSCode
when using LazyVim. These changes aim to enhance the integration between
VSCode and LazyVim by adding keymaps for, tab navigation, and syncing
nvim undo/redo actions with vscode undo/redo.

## Changes
- Synced undo/redo lists with VSCode using `VSCodeNotify`: (check
https://github.com/vscode-neovim/vscode-neovim/issues/1139 for more
details)
  - `u` for undo
  - `<C-r>` for redo
- Enabled navigation of VSCode tabs similar to LazyVim buffers:
  - `<S-h>` to go to the previous editor
  - `<S-l>` to go to the next editor

## Additional Notes
These changes are intended to improve the user experience for those who
use LazyVim within VSCode by providing more intuitive and consistent
keybindings. Please test these keymaps to ensure they work as expected
in your VSCode setup.

Co-authored-by: Deniz Gökçin <deniz.gokcin@treatwell.com>
2024-12-10 12:13:01 +01:00
folke
e2c189e066 chore(build): auto-generate docs 2024-12-10 11:10:44 +00:00
Folke Lemaitre
1519cd6da7
chore: remove dead code. Closes #4985 2024-12-10 12:09:40 +01:00
folke
4b86cf9900 chore(build): auto-generate docs 2024-12-09 23:32:30 +00:00
Folke Lemaitre
99c361f708
fix(autocmds): remove snacks_win from close_with_q, since they have their own keymaps 2024-12-10 00:31:36 +01:00
folke
71ea193cf6 chore(build): auto-generate docs 2024-12-08 20:54:21 +00:00
github-actions[bot]
3c605f547c
chore(main): release 13.8.0 (#4955)
🤖 I have created a release *beep* *boop*
---


##
[13.8.0](https://github.com/LazyVim/LazyVim/compare/v13.7.0...v13.8.0)
(2024-12-07)


### Features

* **git:** added toggles for gitsigns.nvim and mini.diff
([2ebba15](2ebba15e12))


### Bug Fixes

* **dot:** kitty ft with bash treesitter highlights
([7ef2dfd](7ef2dfd3ba))
* **keymaps:** toggle name
([b2f7505](b2f750558a))
* **mini.diff:** toggle
([3f4b1ff](3f4b1ff003))
* **rust:** only use mason.nvim if it is present
([#4963](https://github.com/LazyVim/LazyVim/issues/4963))
([5ddad99](5ddad99bac))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-08 21:53:24 +01:00
Folke Lemaitre
7ef2dfd3ba
fix(dot): kitty ft with bash treesitter highlights 2024-12-07 20:52:48 +01:00
Folke Lemaitre
3f4b1ff003
fix(mini.diff): toggle 2024-12-07 20:52:13 +01:00
folke
0d71732902 chore(build): auto-generate docs 2024-12-07 10:58:17 +00:00
Folke Lemaitre
2ebba15e12
feat(git): added toggles for gitsigns.nvim and mini.diff 2024-12-07 11:57:21 +01:00
folke
d424a02554 chore(build): auto-generate docs 2024-12-06 15:36:29 +00:00
Felix Rath
5ddad99bac
fix(rust): only use mason.nvim if it is present (#4963)
## Description

Fix the lang/rust extra for users that don't use mason. Uses the fix
suggested in
https://github.com/LazyVim/LazyVim/issues/4957#issuecomment-2521787846,
which works perfectly!

## Related Issue(s)

Fixes https://github.com/LazyVim/LazyVim/issues/4957

## Screenshots

n/a

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: Felix Rath <frath@cloudflare.com>
2024-12-06 16:35:27 +01:00
Folke Lemaitre
b2f750558a
fix(keymaps): toggle name 2024-12-05 09:52:49 +01:00
github-actions[bot]
8a3321d827
chore(main): release 13.7.0 (#4929)
🤖 I have created a release *beep* *boop*
---


##
[13.7.0](https://github.com/LazyVim/LazyVim/compare/v13.6.0...v13.7.0)
(2024-12-05)


### Features

* **blink:** enabled treesitter highlighting
([0a9447c](0a9447c1b1))
* **extras.ai:** blink.cmp integration and kind overrides for menu
drawing ([#4942](https://github.com/LazyVim/LazyVim/issues/4942))
([f841ecf](f841ecf6bd))
* **rust:** add bacon-ls and improve debugging
([#3212](https://github.com/LazyVim/LazyVim/issues/3212))
([ea794ff](ea794ffd94))
* **snacks:** silence copy url keymap
([#4939](https://github.com/LazyVim/LazyVim/issues/4939))
([03e203b](03e203bfbe))
* **toggle:** added leader-A to toggle tabline. Closes
[#4951](https://github.com/LazyVim/LazyVim/issues/4951)
([8232651](8232651c4a))


### Bug Fixes

* **blink:** update config for latest changes
([#4953](https://github.com/LazyVim/LazyVim/issues/4953))
([090ca75](090ca75d3b))
* **copilot:** CopilotChat.nvim has moved to main
([#4931](https://github.com/LazyVim/LazyVim/issues/4931))
([0d6026a](0d6026a3e8))
* **extras.treesitter-context:** change event back to `LazyFile`
([#4940](https://github.com/LazyVim/LazyVim/issues/4940))
([83017ff](83017ff28a))
* **supermaven:** blink.cmp integration
([#4941](https://github.com/LazyVim/LazyVim/issues/4941))
([d714711](d71471151b))
* **tex:** specify filetype for &lt;localleader&gt;l
([#4905](https://github.com/LazyVim/LazyVim/issues/4905))
([12e3752](12e37529e7))
* **ui:** actually disable mini-indentscope on snacks_dashboard
([#4947](https://github.com/LazyVim/LazyVim/issues/4947))
([bfe29fb](bfe29fb013))
* **ui:** disable mini.indentscope on `ft=snacks_dashboard`
([#4928](https://github.com/LazyVim/LazyVim/issues/4928))
([4bf3a39](4bf3a39223))
* **ui:** properly clear maximize state on exit. See
[#4934](https://github.com/LazyVim/LazyVim/issues/4934)
([9ec253b](9ec253b9b6))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-05 09:22:10 +01:00
Matteo Bigoi
ea794ffd94
feat(rust): add bacon-ls and improve debugging (#3212)
## Changes

**NOTE: the PR will be in draft until
https://github.com/mason-org/mason-registry/pull/5774 is not merged**

Some improvements in the Rust extra

- Set `codelldb` adapter for rustacean.nvim
- Add support for [bacon-ls](https://github.com/crisidev/bacon-ls)
([blog post](https://lmno.lol/crisidev/bacon-language-server))

`bacon-ls` can be used as an alternative to `rust-analyzer` for
diagnostics, improving `rust-analyzer` performances. This is configured
by `vim.g.lazyvim_rust_diagnostics`, which can be set to `rust-analyzer`
or `bacon-lsp`.

<img width="1063" alt="screenshot"
src="https://github.com/LazyVim/LazyVim/assets/1781140/f50a38ff-0ec0-4d10-8cdc-796d027b16f0">

---------

Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>
2024-12-05 09:20:34 +01:00
Folke Lemaitre
8232651c4a
feat(toggle): added leader-A to toggle tabline. Closes #4951 2024-12-05 09:18:16 +01:00
Stefan Boca
83017ff28a
fix(extras.treesitter-context): change event back to LazyFile (#4940)
## Description

Load treesitter-context on `LazyFile` instead of `VeryLazy`. IMHO it
didn't make sense to load the plugin earlier just so that the toggle is
available, especially when the toggle won't actually have any effect
anything until a file is opened.

~Previously, treesitter-context was loaded on `VeryLazy` and its toggle
map in `opt`, which also `require`d it. Now, mapping happens in config,
after treesitter-context is setup (also how toggle is handled in other
extras, eg for render-markdown).~

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-05 09:11:40 +01:00
Álvaro Kothe
12e37529e7
fix(tex): specify filetype for <localleader>l (#4905)
## Description

Specify the filetype for the keymap `<localleader>l` to ensure that this
keybinding group only appears when editing TeX files.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-05 09:11:11 +01:00
Stefan Boca
bfe29fb013
fix(ui): actually disable mini-indentscope on snacks_dashboard (#4947)
## Description

Disables mini.indentscope for the buffer on which the
`SnacksDashboardOpened` autocmd is called.

## Related Issue(s)

closes #4944

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-05 09:10:44 +01:00
folke
097b9e2f27 chore(build): auto-generate docs 2024-12-05 07:47:07 +00:00
jyuan0
090ca75d3b
fix(blink): update config for latest changes (#4953)
## Description

Update the blink.cmp config for the latest changes.

Mainly fixing the experimental `auto_brackets` support (moved under the
`completion` key). The other changes are either the same as the
defaults, or commented out - they were simply updated to reflect the new
config format.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-05 08:46:15 +01:00
folke
efc95dc6aa chore(build): auto-generate docs 2024-12-03 20:08:00 +00:00
Stefan Boca
f841ecf6bd
feat(extras.ai): blink.cmp integration and kind overrides for menu drawing (#4942)
## Description

blink.cmp integration for codeium and copilot, and correct menu drawing
for codeium, copilot, and supermaven.

I've simplified the blink.cmp config a bit for these extras (especially
for copilot, which was extremely nested) by only including the blink.cmp
spec if vim.g.ai_cmp is true.

Multiple AI extras can now be enabled at the same time with blink.cmp.

blink.cmp ghost text is now always enabled. Although some ai plugins
always display virtual text, at worst it overlaps with blink's ghost
text and is not noticable.

Lastly, I can't test copilot because I don't have a subscription, nor do
I want to sign up for one, but it should work just as well as the
others.

## Screenshots

With Codeium:

![image](https://github.com/user-attachments/assets/1485ee3f-1cba-440f-8a82-ec69b4a3f473)

Multiple extras enabled at the same time:

![image](https://github.com/user-attachments/assets/4364ee45-d79b-4f97-a4c0-cf2a2b6433c6)

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-12-03 21:06:58 +01:00
Folke Lemaitre
4a626a8137
refactor(ui): cleanup maximize code 2024-12-02 23:46:11 +01:00
Folke Lemaitre
9ec253b9b6
fix(ui): properly clear maximize state on exit. See #4934 2024-12-02 22:34:39 +01:00
Stefan Boca
d71471151b
fix(supermaven): blink.cmp integration (#4941)
## Description

Supermaven completion now works with the latest release of blink.cmp and
blink.compat. I'll also take a look at the other ai extras soon.

~A draft for now, until some issues with ghost text are resolved, see
https://github.com/Saghen/blink.cmp/issues/257. Alternatively, enabling
the supermaven extra could disable ghost text.~

## Screenshots


![image](https://github.com/user-attachments/assets/feb8003d-85c5-49a4-80df-7f57b240d371)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-02 21:51:25 +01:00
Sergey Kochetkov
03e203bfbe
feat(snacks): silence copy url keymap (#4939)
## Description

Silences keymap introduced in related PR
## Related PR(s)

https://github.com/LazyVim/LazyVim/pull/4870

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-02 20:22:55 +01:00
Folke Lemaitre
0a9447c1b1
feat(blink): enabled treesitter highlighting 2024-12-02 19:43:08 +01:00
folke
fefcda5431 chore(build): auto-generate docs 2024-12-02 06:36:02 +00:00
Andreas Petersen (Guldberg)
0d6026a3e8
fix(copilot): CopilotChat.nvim has moved to main (#4931)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

CopilotChat.nvim has moved to main
([ref](https://github.com/CopilotC-Nvim/CopilotChat.nvim/issues/665))

## Related Issue(s)
https://github.com/CopilotC-Nvim/CopilotChat.nvim/issues/665
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

![image](https://github.com/user-attachments/assets/2970e3c0-04af-49e9-974b-d535e47b9c12)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-02 07:35:04 +01:00
Stefan Boca
4bf3a39223
fix(ui): disable mini.indentscope on ft=snacks_dashboard (#4928)
## Description

mini.indentscope would act on the snacks dashboard if it was somehow
loaded while the dashboard is still open.

## Related Issue(s)

I forgot about mini.indentscope in #4895 :)

## Screenshots

**Actually** fixes this:

![image](https://github.com/user-attachments/assets/1f77cf1d-c9c1-48d1-9bf3-8508782e8dd1)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-01 19:57:55 +01:00
github-actions[bot]
7bdc205e7d
chore(main): release 13.6.0 (#4872)
🤖 I have created a release *beep* *boop*
---


##
[13.6.0](https://github.com/LazyVim/LazyVim/compare/v13.5.3...v13.6.0)
(2024-12-01)


### Features

* **colorscheme:** enable catppuccin snacks integration by default
([#4882](https://github.com/LazyVim/LazyVim/issues/4882))
([5659786](5659786893))
* **extras:** added extra for `smear-cursor.nvim`
([40dba86](40dba86925))
* **lang:** add maxInlayHintLength for vtsls to resolve inlay hint to…
([#4902](https://github.com/LazyVim/LazyVim/issues/4902))
([1847e3f](1847e3fb25))
* **smear-cursor:** enable `cursor_color = "none"`, to show trail using
color of target text fg color
([275c786](275c78665e))
* **snacks:** add keymap to copy url from gitbrowse
([#4870](https://github.com/LazyVim/LazyVim/issues/4870))
([cdf3f1f](cdf3f1f2bd))
* **snacks:** added leader-. to toggle a scratch buffer. Uses `count`
for new scratch buffers
([6d42f10](6d42f1084d))
* **snacks:** added leader-n to show notification history
([be0cb96](be0cb9622d))
* **snacks:** added leader-S to select a previous scratch buffer
([e05379b](e05379babc))


### Bug Fixes

* **blink:** fixed luasnip completions for blink
([7bb954f](7bb954fd1d))
* **blink:** icons
([2263b94](2263b94439))
* **blink:** make sure blink.compat is setup correctly when used in
extras
([91a3c66](91a3c663a7))
* **blink:** updated to config to reflect breaking changes
([efcba66](efcba66a22))
* **dial:** add and/or augend to python ft
([#4875](https://github.com/LazyVim/LazyVim/issues/4875))
([ecfaed3](ecfaed3cc1))
* **java:** give java a default nvim-dap config
([#4261](https://github.com/LazyVim/LazyVim/issues/4261))
([c9102bc](c9102bc351))
* **java:** minisurround jdtls keybind conflict
([#4886](https://github.com/LazyVim/LazyVim/issues/4886))
([30fac42](30fac4206a))
* **lazydev:** use luals' bundled luv library
([eb525c6](eb525c680d))
* **lsp:** don't leak keymaps from LSP server configs
([#4849](https://github.com/LazyVim/LazyVim/issues/4849))
([85e4118](85e4118065))
* **mini.animate:** disable when in Neovide
([66459f9](66459f9361))
* **octo:** upstream changed mappings to `localleader`
([#4850](https://github.com/LazyVim/LazyVim/issues/4850))
([c979225](c979225c37))
* **snacks:** remove lazygit requirement for git browse/blame keymaps
([#4869](https://github.com/LazyVim/LazyVim/issues/4869))
([2c37492](2c37492461))
* **sql:** fix autocomplete, it was using the wrong plugin name on the
`LazyVim.has` check
([#4900](https://github.com/LazyVim/LazyVim/issues/4900))
([ed10d3c](ed10d3cf19))
* **sql:** only use cmp if it is available
([#4891](https://github.com/LazyVim/LazyVim/issues/4891))
([9eccb5d](9eccb5d2de))
* **ui:** disable indent-blankline on `ft=snacks_dashboard`
([#4895](https://github.com/LazyVim/LazyVim/issues/4895))
([c022759](c02275919e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-01 09:38:42 +01:00
folke
c8bd062ef8 chore(build): auto-generate docs 2024-12-01 08:32:23 +00:00
Folke Lemaitre
6d42f1084d
feat(snacks): added leader-. to toggle a scratch buffer. Uses count for new scratch buffers 2024-12-01 09:31:26 +01:00
Folke Lemaitre
e05379babc
feat(snacks): added leader-S to select a previous scratch buffer 2024-12-01 09:31:26 +01:00
Folke Lemaitre
be0cb9622d
feat(snacks): added leader-n to show notification history 2024-12-01 09:31:26 +01:00
folke
2fc7697786 chore(build): auto-generate docs 2024-11-29 13:31:50 +00:00
Folke Lemaitre
275c78665e
feat(smear-cursor): enable cursor_color = "none", to show trail using color of target text fg color 2024-11-29 14:30:47 +01:00
Folke Lemaitre
2263b94439
fix(blink): icons 2024-11-28 21:51:23 +01:00
gengdz
1847e3fb25
feat(lang): add maxInlayHintLength for vtsls to resolve inlay hint to… (#4902)
## Description

feat(lang): add maxInlayHintLength for vtsls to resolve inlay hint too
long

## Related Issue(s)
* https://github.com/neovim/neovim/issues/27240
* https://github.com/yioneko/vtsls/pull/173


## Screenshots
before

![image](https://github.com/user-attachments/assets/5bc53695-7457-4f8f-bd03-b4de29f6f80d)


after

![image](https://github.com/user-attachments/assets/c9281173-4198-4bf2-84cf-33c5d1984550)



## Checklist

- [ x ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-28 08:49:40 +01:00
Folke Lemaitre
7bb954fd1d
fix(blink): fixed luasnip completions for blink 2024-11-28 07:39:30 +01:00
Folke Lemaitre
efcba66a22
fix(blink): updated to config to reflect breaking changes 2024-11-28 07:39:30 +01:00
folke
76fbed6de5 chore(build): auto-generate docs 2024-11-28 06:22:02 +00:00
Igor Guerrero
ed10d3cf19
fix(sql): fix autocomplete, it was using the wrong plugin name on the LazyVim.has check (#4900)
## Description

`LazyVim.has` was called with the wrong plugin name.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-28 07:21:00 +01:00
folke
13dc88a317 chore(build): auto-generate docs 2024-11-27 16:11:17 +00:00
Folke Lemaitre
40dba86925
feat(extras): added extra for smear-cursor.nvim 2024-11-27 17:10:22 +01:00
Folke Lemaitre
66459f9361
fix(mini.animate): disable when in Neovide 2024-11-27 17:09:59 +01:00
Stefan Boca
c02275919e
fix(ui): disable indent-blankline on ft=snacks_dashboard (#4895)
## Description

`indent-blankline.nvim` would act on the snacks dashboard if it was
somehow loaded while the dashboard is still open.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

Fixes this:

![image](https://github.com/user-attachments/assets/1f77cf1d-c9c1-48d1-9bf3-8508782e8dd1)

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-26 22:39:05 +01:00
Jakob Pfender
9eccb5d2de
fix(sql): only use cmp if it is available (#4891)
## Description

The blink and sql extras are currently conflicting because the sql extra
has a hard dependency on nvim-cmp, which is disabled by the blink extra.
Introducing a check for cmp in the sql extra resolves this.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: Jakob Pfender <jakob.pfender@safetyio.com>
2024-11-26 16:12:56 +01:00
folke
d5734087e4 chore(build): auto-generate docs 2024-11-26 08:14:53 +00:00
Michael Kwan
c9102bc351
fix(java): give java a default nvim-dap config (#4261)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
Currently, there are no Java configurations for nvim-dap upon enabling
the Java extras.

This requires debugging configurations to be setup manually afterwards.

(This is unlike many other language extras which do have nvim-dap
support "out of the box")

This pr creates an initial configuration for nvim-dap which lets it
attach to a debugging process on port 5005.
(such as a spring boot application) More can be added if there are any
experienced Java devs here.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->
None

## Screenshots

<!-- Add screenshots of the changes if applicable. -->
Error message:

![image](https://github.com/user-attachments/assets/5922cf48-6ac7-4a2a-8785-1f9b958089e4)

Java remote debugging open:

![image](https://github.com/user-attachments/assets/dfbe7c5b-2308-4aa4-a236-487605e4c75a)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-26 09:13:01 +01:00
Ben Elan
cdf3f1f2bd
feat(snacks): add keymap to copy url from gitbrowse (#4870)
## Description

Adds a `<leader>gY` keymap that copies the URL from `Snacks.gitbrowse()`
to the clipboard.

This is a feature in other git browse plugins like `vim-rhubarb`, so
other people will probably be looking for this when migrating like I
did.

Let me know if you'd prefer a different key combination, thanks!

## Related Issue(s)

N/A

## Screenshots

N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-25 15:00:36 +01:00
Tim Macfarlane
85e4118065
fix(lsp): don't leak keymaps from LSP server configs (#4849)
## Description

I found an issue where if I'm editing files of different types, say for
example `.cs` and `.py` files, they will naturally load the
corresponding LSPs for each language. However, if one of those LSPs has
keys defined in their `server` config section, then those key maps will
leak into the other, so in this case, the `gd` (go to definition)
mapping intended for `.cs` buffers is now present in `.py` buffers,
causing it not to work. This is currently the case with the `omnisharp`
LSP, as it defines a `gd` key map, see:
63150fa4c5/lua/lazyvim/plugins/extras/lang/omnisharp.lua (L53-L61)

The fix here is to shallow clone the "global" LSP keymaps before adding
the LSP server-specific keymaps so the LSP keymaps aren't added to the
global ones.

## Related Issue(s)

## Screenshots

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-25 14:59:55 +01:00
Zhou Fang
37dbb63c61
docs(readme): enhance the quality of the Chinese translation (#4860)
## Description

Enhance the quality of the Chinese README.

### Changes
1. Complete the translation of the untranslated sections.
2. Correct inaccuracies in existing translations.
3. Revise the language to sound more natural and idiomatic.
4. Adjust punctuation and paragraph structure to align with Chinese
typography standards.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-25 14:59:25 +01:00
folke
55be9a1648 chore(build): auto-generate docs 2024-11-25 13:58:01 +00:00
Michael Kwan
30fac4206a
fix(java): minisurround jdtls keybind conflict (#4886)
## Description

Fixes the keybind conflict with jdtls and mini-surround plugin.

When pressing "\<gs\>" or "\<gS\>" to start the surround once the java
language server starts,
it replaces the surround bind with "goto super" and "goto subjects".

When pressing "\<gs\>" quickly, it attempts the command "goto super".
When pressing "\<gs\>" slowly, it brings up "which-key" and the surround
bind works.

## Related Issue(s)

None

## Screenshots
Pressing "\<gs\>" quickly

![image](https://github.com/user-attachments/assets/8fbaf39f-72cd-4d7d-bcf7-035faa7650e8)

Pressing "\<gs\>" slowly

![image](https://github.com/user-attachments/assets/2ec4d1f3-f900-413c-8351-26cb8a5cbafc)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-25 14:57:17 +01:00
Iordanis Petkakis
c979225c37
fix(octo): upstream changed mappings to localleader (#4850)
## Description
As of this [PR](https://github.com/pwntester/octo.nvim/pull/681)
`<leader>` got changed to `<localleader>`.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
None
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-25 14:57:02 +01:00
Folke Lemaitre
eb525c680d
fix(lazydev): use luals' bundled luv library 2024-11-24 23:03:03 +01:00
Folke Lemaitre
91a3c663a7
fix(blink): make sure blink.compat is setup correctly when used in extras 2024-11-24 22:03:43 +01:00
folke
a03f796097 chore(build): auto-generate docs 2024-11-24 16:30:10 +00:00
Zhou Fang
5659786893
feat(colorscheme): enable catppuccin snacks integration by default (#4882)
## Description

Enable catppuccin's snacks integration by default.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-24 17:28:26 +01:00
thisisrandy
ecfaed3cc1
fix(dial): add and/or augend to python ft (#4875)
## Description

The python language includes the keywords `and` or `or` for logical
operations.
The current `dial.nvim` config does not include an augend for swapping
these
keywords.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-23 00:05:43 +01:00
Ben Elan
2c37492461
fix(snacks): remove lazygit requirement for git browse/blame keymaps (#4869)
## Description

The Snacks keymaps for `gitbrowse()` and `git.blame_line()` were in a
conditional checking if `lazygit` is installed. But both work without
`lazygit`.

## Related Issue(s)

N/A

## Screenshots

N/A

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-22 12:25:33 +01:00
github-actions[bot]
adcbfc72fd
chore(main): release 13.5.3 (#4845)
🤖 I have created a release *beep* *boop*
---


##
[13.5.3](https://github.com/LazyVim/LazyVim/compare/v13.5.2...v13.5.3)
(2024-11-22)


### Bug Fixes

* **copilot:** remove tmp nightly fix
([30f556d](30f556d17a))
* **dial:** make sure defaults are part of every group. Fixes
[#4868](https://github.com/LazyVim/LazyVim/issues/4868)
([2108028](2108028cde))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-22 09:41:06 +01:00
folke
ba8f6b0215 chore(build): auto-generate docs 2024-11-22 05:55:52 +00:00
Folke Lemaitre
2108028cde
fix(dial): make sure defaults are part of every group. Fixes #4868 2024-11-22 06:54:47 +01:00
folke
63150fa4c5 chore(build): auto-generate docs 2024-11-20 08:49:27 +00:00
Folke Lemaitre
30f556d17a
fix(copilot): remove tmp nightly fix 2024-11-20 09:48:30 +01:00
152 changed files with 6009 additions and 2280 deletions

View file

@ -1,3 +1,3 @@
{
".": "13.5.2"
".": "16.0.0"
}

3
.markdownlint-cli2.yaml Normal file
View file

@ -0,0 +1,3 @@
config:
MD013: false
MD033: false

View file

@ -1,5 +1,917 @@
# Changelog
## [16.0.0](https://github.com/LazyVim/LazyVim/compare/v15.15.0...v16.0.0) (2026-05-27)
### ⚠ BREAKING CHANGES
* **refactoring:** conform to upstream breaking changes on 2.0 branch ([#7124](https://github.com/LazyVim/LazyVim/issues/7124))
### Features
* **keymaps:** added leader+bi to delete invisible buffers ([58089db](https://github.com/LazyVim/LazyVim/commit/58089db8b198fc81f91789b6f12d0617cae21437))
### Bug Fixes
* **autocmds:** correct version check for nvim-0.13 ([#7184](https://github.com/LazyVim/LazyVim/issues/7184)) ([6eb16e7](https://github.com/LazyVim/LazyVim/commit/6eb16e730d1a686224dca41b05ba125cfd62c1bb))
* **autocmds:** replace `vim.hl.on_yank` with `vim.hl.hl_op` for `nvim-0.13` and above ([#7171](https://github.com/LazyVim/LazyVim/issues/7171)) ([b30c031](https://github.com/LazyVim/LazyVim/commit/b30c0312ea1c5bed6b28e72d930059622b0525f8))
* **go:** use semanticTokens if setup in gopls config init_options ([#7172](https://github.com/LazyVim/LazyVim/issues/7172)) ([b830a52](https://github.com/LazyVim/LazyVim/commit/b830a523b5973c300639d4d9c4fea7d92fa04dc3))
* **hipatterns:** don't color #add (use it too often as a private function in TS) ([dc6240f](https://github.com/LazyVim/LazyVim/commit/dc6240f4d56ae0d40cd0e673ca740dda50c4bf3b))
* **oxc:** prefer top-level oxlint root_dir in monorepos ([d840410](https://github.com/LazyVim/LazyVim/commit/d840410047d20a8f93fb8d473599209ebe95584e))
* **refactoring:** conform to upstream breaking changes on 2.0 branch ([#7124](https://github.com/LazyVim/LazyVim/issues/7124)) ([d926923](https://github.com/LazyVim/LazyVim/commit/d92692309c41581e1f839033fbccd745be732c7e))
## [15.15.0](https://github.com/LazyVim/LazyVim/compare/v15.14.0...v15.15.0) (2026-04-02)
### Features
* **biome:** enable biome lsp for linting ([b2830cf](https://github.com/LazyVim/LazyVim/commit/b2830cfcc5c9c09ebbf9545beb3947a55ce89dbd))
* **biome:** move biome extra from formatting.biome -&gt; lang.typescript.biome ([242f098](https://github.com/LazyVim/LazyVim/commit/242f0983de9fdb70f0d82057a8039e32bc171764))
* **lazydev:** make lspconfig types available on word `lspconfig.settings` ([36f5947](https://github.com/LazyVim/LazyVim/commit/36f594716bcb0bec84a05a6c55f702134d2e89c3))
* **lsp:** auto add organizeImport keymaps for LSPs that support it ([e54689e](https://github.com/LazyVim/LazyVim/commit/e54689ebdc5458cb30f4a48b954c710bb381cd01))
* **oxc:** added oxc extra for oxfmt and oxlint ([4e9eac5](https://github.com/LazyVim/LazyVim/commit/4e9eac57aba1ea575ef008a503cba8327257e4a4))
* **sidekick:** ctrl+. focuses sidekick, but when already inside sidekick, hides it ([50159fe](https://github.com/LazyVim/LazyVim/commit/50159fe344d93329a569cee136c0323e48b0d3da))
* **typescript:** set `vim.g.lazyvim_ts_lsp = "tsgo"` to use the much faster experimental lsp server ([e6f26f0](https://github.com/LazyVim/LazyVim/commit/e6f26f0f23e9cb4c6bcc351b06474f4863319aff))
* **typescript:** split typescript extra in main, vtsls and tsgo ([9029d92](https://github.com/LazyVim/LazyVim/commit/9029d928d2f7b7f76f132b618d2931499c9b6eb9))
### Bug Fixes
* **biome:** added recommendation when root has biome config file ([ad25b31](https://github.com/LazyVim/LazyVim/commit/ad25b31e512892ca51a1fa3ffa96d1375c391039))
* **biome:** biome mason install is no longer needed ([5450006](https://github.com/LazyVim/LazyVim/commit/5450006ccdd7df341f7f60dded58ea4a87aa9c15))
* **biome:** use biome-check in conform that also fixes linting issues and sorts imports ([954d874](https://github.com/LazyVim/LazyVim/commit/954d8746e5cf1266d93cf4210c00c1506f20423b))
* **lsp:** sort server names before setting keymaps ([6d0da34](https://github.com/LazyVim/LazyVim/commit/6d0da34de9c4a82170e3359d4e7853bf89a557b3))
* **oxc:** added `fixKind = "all"` ([85afbbc](https://github.com/LazyVim/LazyVim/commit/85afbbc94bb45891799a4851b2edf753b51f18b0))
* **r:** recommend for *.qmd instead of *qmd files ([3b3d649](https://github.com/LazyVim/LazyVim/commit/3b3d6493332798674fb7b82aea600bab18eaf311))
* **terminal:** use Snacks.terminal.focus() for &lt;C-/&gt; mapping ([96f4f18](https://github.com/LazyVim/LazyVim/commit/96f4f18d7d81c786ac0df5723bc7aca058bf2165)), closes [#7048](https://github.com/LazyVim/LazyVim/issues/7048)
* **treesitter:** `nvim-treesitter` on longer support nvim-0.11, so pin when needed. Fixes [#7092](https://github.com/LazyVim/LazyVim/issues/7092) ([ef272ff](https://github.com/LazyVim/LazyVim/commit/ef272ff7cc9b53d48baf6544618b5923d65c0282))
* **tsgo:** disable inlayHints.functionLikeReturnTypes by default. Too noisy ([8bcb620](https://github.com/LazyVim/LazyVim/commit/8bcb6208021bd4e4257de64c9598c6b78688be28))
* **tsgo:** remove some noisy inlay hints ([d07070b](https://github.com/LazyVim/LazyVim/commit/d07070bf2ff83ae513097d02d71460920af85a91))
* **typescript:** remove keymaps for non-existing code actions ([53f4eab](https://github.com/LazyVim/LazyVim/commit/53f4eabd7723faba2d7c14afe53226d8c18bf16c))
* **util.plugin:** single imports for extras ([1b4be53](https://github.com/LazyVim/LazyVim/commit/1b4be534f1d8959480ba1f622a457654bd737ce5))
### Performance Improvements
* **extras:** never load nested extras ([8764dfb](https://github.com/LazyVim/LazyVim/commit/8764dfbc8fcb8923397153eb3a2cfcac7ea988f1))
### Reverts
* **lsp:** revert changes for [#6456](https://github.com/LazyVim/LazyVim/issues/6456). Closes [#6779](https://github.com/LazyVim/LazyVim/issues/6779) ([d0fe8c8](https://github.com/LazyVim/LazyVim/commit/d0fe8c896f4dca003e8d56e2091ee5ec7da7af75))
## [15.14.0](https://github.com/LazyVim/LazyVim/compare/v15.13.0...v15.14.0) (2026-03-01)
### Features
* **bufferline:** add &lt;leader&gt;bj keymap for BufferLinePick ([#6968](https://github.com/LazyVim/LazyVim/issues/6968)) ([a50072f](https://github.com/LazyVim/LazyVim/commit/a50072fa16cfc1f00b1ae282150bc667f1d1e096))
* **dap:** close dap-float window with `q`. ([#6884](https://github.com/LazyVim/LazyVim/issues/6884)) ([87c0027](https://github.com/LazyVim/LazyVim/commit/87c002789220d922bb94637c690b444bd1ba5611))
* **treesitter:** support query table in treesitter-textobjects mappings ([#6736](https://github.com/LazyVim/LazyVim/issues/6736)) ([42c9f71](https://github.com/LazyVim/LazyVim/commit/42c9f7152b9bd1a4f739b115390370c208dc2a55))
### Bug Fixes
* **editor.overseer:** migrate to v2 ([#6907](https://github.com/LazyVim/LazyVim/issues/6907)) ([27824d7](https://github.com/LazyVim/LazyVim/commit/27824d79a952c54cd9d93c85a699543e4a031dd4))
* **fzf:** correct git_diff description from 'hunks' to 'files' ([#6983](https://github.com/LazyVim/LazyVim/issues/6983)) ([e77d4ab](https://github.com/LazyVim/LazyVim/commit/e77d4ab0d6574efb7142ec40f4f5dcff750a3ee9))
* **lang.clang:** fix `clangd_extensions.nvim` ([#6804](https://github.com/LazyVim/LazyVim/issues/6804)) ([730b691](https://github.com/LazyVim/LazyVim/commit/730b69114d56834f4499fd3e5aecf18920234c39))
* **leap:** update urls to new leap.nvim repo. Fixes [#6958](https://github.com/LazyVim/LazyVim/issues/6958) ([244af66](https://github.com/LazyVim/LazyVim/commit/244af66f8b4e376d60c6604f9b3fd758165f5799))
* **news:** resolve news.txt from $VIMRUNTIME first ([60fea62](https://github.com/LazyVim/LazyVim/commit/60fea6236e342e1f4aa34d078461746d5f587c74)), closes [#7019](https://github.com/LazyVim/LazyVim/issues/7019)
* **python:** set venv-selector.nvim override_notify = false ([#6936](https://github.com/LazyVim/LazyVim/issues/6936)) ([b2917bd](https://github.com/LazyVim/LazyVim/commit/b2917bd3bfe61c40e686f5a2c20f540430945b73))
* **terminal:** add -NoProfile to powershell shellcmdflag ([#6757](https://github.com/LazyVim/LazyVim/issues/6757)) ([a507822](https://github.com/LazyVim/LazyVim/commit/a507822c0f67df661d1411f9274a65ca9cc832f5))
* **terminal:** partially revert previous mappings ([#6770](https://github.com/LazyVim/LazyVim/issues/6770)) ([c64a617](https://github.com/LazyVim/LazyVim/commit/c64a61734fc9d45470a72603395c02137802bc6f))
* **treesitter:** fix `]c` textobject mappings when in diff mode ([#6911](https://github.com/LazyVim/LazyVim/issues/6911)) ([16713e6](https://github.com/LazyVim/LazyVim/commit/16713e6e1200eb90ad4b4a394bb7254fb5612484))
* **treesitter:** remove deleted jsonc parser ([#6848](https://github.com/LazyVim/LazyVim/issues/6848)) ([92607e7](https://github.com/LazyVim/LazyVim/commit/92607e79e09a2761d930877a09edc00438b97fc3))
* **util.lsp:** `LazyVim.lsp.execute` only request single client ([#6904](https://github.com/LazyVim/LazyVim/issues/6904)) ([a4e19e9](https://github.com/LazyVim/LazyVim/commit/a4e19e9c9c939c1a3fc2f30ffefe37311d3ecadf))
* **util.lsp:** pass `formatters_by_ft` to `opts` ([#6894](https://github.com/LazyVim/LazyVim/issues/6894)) ([03f1293](https://github.com/LazyVim/LazyVim/commit/03f1293e33541073288f23abdaf581a8e0dec4c4))
* **vtsls:** remove redundant deno logic, upstreamed in `nvim-lspconfig` ([#7011](https://github.com/LazyVim/LazyVim/issues/7011)) ([8652c95](https://github.com/LazyVim/LazyVim/commit/8652c9570377678a78ecb19dbd33695e0e4ec4fc))
## [15.13.0](https://github.com/LazyVim/LazyVim/compare/v15.12.2...v15.13.0) (2025-11-01)
### Features
* **snacks:** `snacks.gh` integration. Enabled by default, unless the `util.octo` extra is enabled. ([5e981f9](https://github.com/LazyVim/LazyVim/commit/5e981f9a8cd75eb6f49756e188411037b82b8045))
### Bug Fixes
* **treesitter:** remove node requirement ([6b52a30](https://github.com/LazyVim/LazyVim/commit/6b52a3059e52eed062b6ff3f56e70cffcbf879fe))
## [15.12.2](https://github.com/LazyVim/LazyVim/compare/v15.12.1...v15.12.2) (2025-10-26)
### Bug Fixes
* **lsp.keymaps:** make cond -&gt; enabled work again. Closes [#6697](https://github.com/LazyVim/LazyVim/issues/6697) ([1a40162](https://github.com/LazyVim/LazyVim/commit/1a401627146c66beaeb213f66dd02662f1006e82))
## [15.12.1](https://github.com/LazyVim/LazyVim/compare/v15.12.0...v15.12.1) (2025-10-26)
### Bug Fixes
* **fzf-lua:** LSP keymaps. Closes [#6698](https://github.com/LazyVim/LazyVim/issues/6698) ([b5ea1e9](https://github.com/LazyVim/LazyVim/commit/b5ea1e9d25202e38a47f0b03ac35cc587c80e6d7))
* **navic:** navic attach. Closes [#6702](https://github.com/LazyVim/LazyVim/issues/6702) ([d2d0c64](https://github.com/LazyVim/LazyVim/commit/d2d0c641ed443f8d2ea9e131ec90df59ea149d0a))
## [15.12.0](https://github.com/LazyVim/LazyVim/compare/v15.11.0...v15.12.0) (2025-10-25)
### Features
* **keymaps:** added `<localleader>r` to run the selection/file with lua ([acc3538](https://github.com/LazyVim/LazyVim/commit/acc35382294d91b279b319510b906249a03b2764))
* **lsp:** lsp keymaps can now be configured with `lsp-config.opts.servers['*'].keys` like for lsp servers ([cd8c497](https://github.com/LazyVim/LazyVim/commit/cd8c4977a0a8e80750ed6a10992f988f811c6417))
* **lsp:** refactor lsp code to use `Snacks.util.lsp.on` ([3964433](https://github.com/LazyVim/LazyVim/commit/39644330624139dddb857ed833987c1cfd8432cf))
* **sidekick:** added NES toggle `<leader>uN`. Closes [#6692](https://github.com/LazyVim/LazyVim/issues/6692) ([84ca4df](https://github.com/LazyVim/LazyVim/commit/84ca4dffdbf175a5e7bc39904157700854d8b2ad))
### Bug Fixes
* **chezmoi:** use vim.env.HOME instead of os.getenv("HOME") for Windows compatibility ([231e476](https://github.com/LazyVim/LazyVim/commit/231e476ec9292b56258f86e28773843cddaf34b8))
* **clipboard:** connecting via vscpde's remote-ssh extension causes severe lag during yank and copy operations. ([#6664](https://github.com/LazyVim/LazyVim/issues/6664)) ([5098a69](https://github.com/LazyVim/LazyVim/commit/5098a6987009199d5a5c4bfb8086d0fe4a94e0bb))
* **lang.ember:** remove '.git' lang.ember ([#6685](https://github.com/LazyVim/LazyVim/issues/6685)) ([4796fb4](https://github.com/LazyVim/LazyVim/commit/4796fb4ac54744b69a45a6044655543b1c4231f0))
* **root:** don't use fs_realpath on windows ([46e419d](https://github.com/LazyVim/LazyVim/commit/46e419d27efb5b7282a5ab17a49f4745ce23b55a))
## [15.11.0](https://github.com/LazyVim/LazyVim/compare/v15.10.1...v15.11.0) (2025-10-23)
### Features
* **snacks_picker:** added gai/gao keymaps for calls incoming/outgoing ([b6e48a5](https://github.com/LazyVim/LazyVim/commit/b6e48a57fb4ad7a79f24646016926eef68ce3002))
* **snacks.picker:** added `<leader>gD` to diff against merge base of branch/PR ([f0a91d9](https://github.com/LazyVim/LazyVim/commit/f0a91d9fa5f0cf27d6ba5fac759fa1d4e0df97a3))
### Bug Fixes
* **avante:** unset default keymaps ([#6657](https://github.com/LazyVim/LazyVim/issues/6657)) ([e8a1d8b](https://github.com/LazyVim/LazyVim/commit/e8a1d8b6286f82d75e5830de5ea93bd7622cec8c))
* **extras:** remove custom formatter opts for dart/solidity. Closes [#6665](https://github.com/LazyVim/LazyVim/issues/6665) ([b38de4e](https://github.com/LazyVim/LazyVim/commit/b38de4e2fe4ad887cae1604fd9f1fbd230e0118f))
## [15.10.1](https://github.com/LazyVim/LazyVim/compare/v15.10.0...v15.10.1) (2025-10-20)
### Bug Fixes
* **avante:** correct key mapping declarations ([#6656](https://github.com/LazyVim/LazyVim/issues/6656)) ([41d1b8d](https://github.com/LazyVim/LazyVim/commit/41d1b8dc72d4270c49db3365edba670d9fa01fbd))
* **blink:** added work-around back for unsupported native snippets ([899533a](https://github.com/LazyVim/LazyVim/commit/899533a101e4bacf35dadf091977b4d12875dbf6))
* **treesitter:** added buf to treesitter start just to be sure ([3ffb471](https://github.com/LazyVim/LazyVim/commit/3ffb471c187a66562b19bdf68382be9f82ac670d))
## [15.10.0](https://github.com/LazyVim/LazyVim/compare/v15.9.0...v15.10.0) (2025-10-20)
### Features
* **ai:** add avante.nvim for a better AI experience ([#4440](https://github.com/LazyVim/LazyVim/issues/4440)) ([2682ce0](https://github.com/LazyVim/LazyVim/commit/2682ce0ab95c0a88867855ada41948107db8232e))
* **extra:** allow users to add custom bundles through opts.init_options.bundles to jdtls ([#6265](https://github.com/LazyVim/LazyVim/issues/6265)) ([faeb24b](https://github.com/LazyVim/LazyVim/commit/faeb24ba956f103c5551bde11506991d8b594bc5))
* **extras:** add Dart language ([#4749](https://github.com/LazyVim/LazyVim/issues/4749)) ([90f84e7](https://github.com/LazyVim/LazyVim/commit/90f84e7e755f72bb99dc8a9dedbfef05e58eb09d))
* **extras:** added ember lang support ([#6203](https://github.com/LazyVim/LazyVim/issues/6203)) ([ac4cce0](https://github.com/LazyVim/LazyVim/commit/ac4cce0f2f436b3e2dd93ad9179178436ab8c600))
* **extras:** added twig language ([#5464](https://github.com/LazyVim/LazyVim/issues/5464)) ([a6eb51e](https://github.com/LazyVim/LazyVim/commit/a6eb51e5b5897749bed8721ce98cd2491b2ea8e2))
* **extras:** ai: add `claudecode.nvim` ([#6229](https://github.com/LazyVim/LazyVim/issues/6229)) ([e7a3e80](https://github.com/LazyVim/LazyVim/commit/e7a3e80ee1327ac012c7bb7257bb2d49f9f2fd89))
* **extras:** automatically update lazyvim.json for renamed or deprecated extras ([37ecd06](https://github.com/LazyVim/LazyVim/commit/37ecd06fad65d5c188ad2d2e55d47a8fd1594d16))
* **extras:** renamed extra omnisharp -&gt; dotnet + added fautocomplete to lspconfig ([1b2e6e8](https://github.com/LazyVim/LazyVim/commit/1b2e6e8986b3cfee19635920129fc08df4f32b38))
* **extras:** utils: add `gh.nvim` ([#6250](https://github.com/LazyVim/LazyVim/issues/6250)) ([8db9c75](https://github.com/LazyVim/LazyVim/commit/8db9c75e8d3a8609926dcb868d2e462e0f0b1d3d))
* **go:** add linting with golangci-lint ([#6311](https://github.com/LazyVim/LazyVim/issues/6311)) ([248876a](https://github.com/LazyVim/LazyVim/commit/248876adb6b1f54031be350e45bbf0c7835d486f))
* **haskell:** update `haskell-tools` version and add formatters + linters ([#6230](https://github.com/LazyVim/LazyVim/issues/6230)) ([82382f4](https://github.com/LazyVim/LazyVim/commit/82382f455ad37bc4fa928fe4a6fb9379a924fa3a))
* **lang/fsharp:** add F# support to omnisharp extra ([#6538](https://github.com/LazyVim/LazyVim/issues/6538)) ([80a980a](https://github.com/LazyVim/LazyVim/commit/80a980ab00a871777c37ec3f0db9c394509b2465))
* **lang:** add neotest config for PHP tests ([#5958](https://github.com/LazyVim/LazyVim/issues/5958)) ([9b077c7](https://github.com/LazyVim/LazyVim/commit/9b077c7a8ec96050f3a3b73219c8b904d3d83ab0))
* **lang:** add solidity language support ([#4742](https://github.com/LazyVim/LazyVim/issues/4742)) ([2cd46d4](https://github.com/LazyVim/LazyVim/commit/2cd46d42ba357a42b11c5e4f5e16641bde0516d6))
* **lang:** add Typst language support ([#4042](https://github.com/LazyVim/LazyVim/issues/4042)) ([645846b](https://github.com/LazyVim/LazyVim/commit/645846be5c7d798c7e87e61d00e8cae4fd3741c7))
* **lang:** julia support ([#6231](https://github.com/LazyVim/LazyVim/issues/6231)) ([5d186c0](https://github.com/LazyVim/LazyVim/commit/5d186c009a85efbdad2b92115d4268c7c4a7aa18))
* **lang:** nix add `statix` linter ([#6244](https://github.com/LazyVim/LazyVim/issues/6244)) ([2a866f6](https://github.com/LazyVim/LazyVim/commit/2a866f6c8c974c88cb9c723560cbec4308d304a2))
* **sidekick:** added sidekick cli status to lualine ([16917db](https://github.com/LazyVim/LazyVim/commit/16917db94a056fe01b3bac604bc89da4077bd9cd))
### Bug Fixes
* **extras.lang:** fix Scala extra by using nvimMetals only ([#5726](https://github.com/LazyVim/LazyVim/issues/5726)) ([f118dca](https://github.com/LazyVim/LazyVim/commit/f118dca334d40cf8e78e0f0d5aa3108b972e8d84))
* **fzf-lua:** added some missing keymaps similar to snacks picker. Closes [#6036](https://github.com/LazyVim/LazyVim/issues/6036). Closes [#5830](https://github.com/LazyVim/LazyVim/issues/5830) ([69a5744](https://github.com/LazyVim/LazyVim/commit/69a57448032253ca086d999c0d53d6e33ad4e505))
* **helm:** broken helm highlighting ([#5335](https://github.com/LazyVim/LazyVim/issues/5335)) ([4d0d87f](https://github.com/LazyVim/LazyVim/commit/4d0d87f6268969987e5c58f59e086c886e77e1ae))
* **keymap:** remove select mode remaps of printable characters ([#6296](https://github.com/LazyVim/LazyVim/issues/6296)) ([83468be](https://github.com/LazyVim/LazyVim/commit/83468be35062d06896c233d90d2f1c1cd24d84f3))
* **tailwind:** additional settings ([#5266](https://github.com/LazyVim/LazyVim/issues/5266)) ([d2f9885](https://github.com/LazyVim/LazyVim/commit/d2f9885d6b8244818066cc16a5c72cb656748f6c))
* **telescope:** sync keymaps with snacks picker + added some that were missing ([1a08e9f](https://github.com/LazyVim/LazyVim/commit/1a08e9f50f8c11a329c3017c4bfdd4b96b7ec541))
* **twig:** correct mason url ([9d345de](https://github.com/LazyVim/LazyVim/commit/9d345dec446f577f75d36a147164ae258ffc2d8c))
* **typescript:** better default pwa-node DAP config. Closes [#6386](https://github.com/LazyVim/LazyVim/issues/6386) ([e4d3432](https://github.com/LazyVim/LazyVim/commit/e4d34328f244fc0c7f91587258e767bfb55d0648))
* **typescript:** support chrome, node and msedge dap adapters ([#6649](https://github.com/LazyVim/LazyVim/issues/6649)) ([0b65d33](https://github.com/LazyVim/LazyVim/commit/0b65d33d8545d179207c8827025f40764de61d06))
* **util.project:** different mapping on dashboard than `snacks.projects` ([#5737](https://github.com/LazyVim/LazyVim/issues/5737)) ([e389447](https://github.com/LazyVim/LazyVim/commit/e38944799e7fc45baea0483f5c955472f3ffde27))
### Reverts
* "feat(extra): allow users to add custom bundles through opts.init_options.bundles to jdtls ([#6265](https://github.com/LazyVim/LazyVim/issues/6265))" ([#6650](https://github.com/LazyVim/LazyVim/issues/6650)) ([a582f00](https://github.com/LazyVim/LazyVim/commit/a582f004473a3bade99c19c62fea649fb0b1c20f))
## [15.9.0](https://github.com/LazyVim/LazyVim/compare/v15.8.1...v15.9.0) (2025-10-19)
### Features
* **docker:** associate 'Containerfile' with 'dockerfile' filetype ([#5974](https://github.com/LazyVim/LazyVim/issues/5974)) ([97af4a2](https://github.com/LazyVim/LazyVim/commit/97af4a23bccac85eb02e489f573db68863d6ed33))
* **extras.rest:** add keymap for changing environment ([#5678](https://github.com/LazyVim/LazyVim/issues/5678)) ([1da659d](https://github.com/LazyVim/LazyVim/commit/1da659db4a3fbcd6d171f3b38d0092ced0887e61))
* **java:** enable `blink.cmp` capabilities to show signature documentation ([#5218](https://github.com/LazyVim/LazyVim/issues/5218)) ([9618e32](https://github.com/LazyVim/LazyVim/commit/9618e327edfb79d9cbb037a2039c4315a95df63f))
* **lang/omnisharp:** switch neotest adapter to vstest ([#6540](https://github.com/LazyVim/LazyVim/issues/6540)) ([4086d44](https://github.com/LazyVim/LazyVim/commit/4086d44a0b5c576630c603c7b71c6be5198d9eaf))
* **neotest:** extra keymap to attach to a test ([#6198](https://github.com/LazyVim/LazyVim/issues/6198)) ([66e927f](https://github.com/LazyVim/LazyVim/commit/66e927fd9d0b0ff2886b9fe1465d9396461a2665))
### Bug Fixes
* **blink:** remove snippet expand override (no longer needed). Closes [#6044](https://github.com/LazyVim/LazyVim/issues/6044) ([336e2c3](https://github.com/LazyVim/LazyVim/commit/336e2c3ea67636c4eea3cf8f7538feb86b5a0610))
* **chezmoi:** add `hidden=false` to fzf picker ([#6095](https://github.com/LazyVim/LazyVim/issues/6095)) ([1aa1b59](https://github.com/LazyVim/LazyVim/commit/1aa1b59a7ec7cab61fa7b096db53df15ec5008e7))
* **copilot-chat:** use up to date config for chat headers ([#6543](https://github.com/LazyVim/LazyVim/issues/6543)) ([2c5eef7](https://github.com/LazyVim/LazyVim/commit/2c5eef7df7520fbc6fe0d90150cd26ac9e4f325b))
* **extras/rust:** fix config key for files.exclude ([#5664](https://github.com/LazyVim/LazyVim/issues/5664)) ([762a34d](https://github.com/LazyVim/LazyVim/commit/762a34d5ad95447b241287e8d540b657a699d141))
* **extras:** adjust switch source/header shortcut ([#6567](https://github.com/LazyVim/LazyVim/issues/6567)) ([b36b858](https://github.com/LazyVim/LazyVim/commit/b36b8589b62f55b181367afe954606c73233c0a1))
* **extras:** remove procMacro ignored ([#6117](https://github.com/LazyVim/LazyVim/issues/6117)) ([4a3702e](https://github.com/LazyVim/LazyVim/commit/4a3702e050881fea262ccae980ae1ff9e849d275))
* **lang.omnisharp:** update CSharpier command and arguments for Mason compatibility ([#6156](https://github.com/LazyVim/LazyVim/issues/6156)) ([dfebe70](https://github.com/LazyVim/LazyVim/commit/dfebe70b8d09514dd3ee85e12463f266f93c5dd7))
* **lang.rust:** rust-analyzer hanging on root scanned ([#6178](https://github.com/LazyVim/LazyVim/issues/6178)) ([7bf8c22](https://github.com/LazyVim/LazyVim/commit/7bf8c22c56283fa6d5d35246dcd0f49d37a5c709))
* **latex:** ensure tex extra installs latex tree-sitter parser ([#6357](https://github.com/LazyVim/LazyVim/issues/6357)) ([ae74622](https://github.com/LazyVim/LazyVim/commit/ae74622e6666ea4c3e6c58c4ef2d3f313d8e8f20))
* **mini.animate:** schedule the toggle mapping to correctly take effect ([#6483](https://github.com/LazyVim/LazyVim/issues/6483)) ([bd23357](https://github.com/LazyVim/LazyVim/commit/bd233579a66018f526b6b0970e33afde4cde399e))
* **sql:** fix autocomplete when `omni` is used as a `blink.cmp` source ([#5652](https://github.com/LazyVim/LazyVim/issues/5652)) ([f6f72b9](https://github.com/LazyVim/LazyVim/commit/f6f72b90d41d9347b93a07d0b680195541f64c55))
* **treesitter:** attach textobject keymaps to existing buffers on load. Closes [#6642](https://github.com/LazyVim/LazyVim/issues/6642). Closes [#6639](https://github.com/LazyVim/LazyVim/issues/6639) ([92a7728](https://github.com/LazyVim/LazyVim/commit/92a77287321236f52ff38648a38cf314ab223137))
* **typescript:** make_position_params with offset encoding. ([#6277](https://github.com/LazyVim/LazyVim/issues/6277)) ([22152e9](https://github.com/LazyVim/LazyVim/commit/22152e958f3f7c2b732cb6429ccc90541e0ad17f))
* **ui:** ignore sidekick_terminal in mini-indentscope ([#6619](https://github.com/LazyVim/LazyVim/issues/6619)) ([f0b32b5](https://github.com/LazyVim/LazyVim/commit/f0b32b5955889d4d2d3636a52d2ddf5d113646df))
* **util:** add some kulala keymaps back to global ([#5960](https://github.com/LazyVim/LazyVim/issues/5960)) ([a16739e](https://github.com/LazyVim/LazyVim/commit/a16739e3328c2687d96f868839c575765c49baad))
* **vscode:** don't sync undo/redo with vscode ([#5957](https://github.com/LazyVim/LazyVim/issues/5957)) ([706ec44](https://github.com/LazyVim/LazyVim/commit/706ec4443a33ec474f2329b5b806e9cdb85cce43))
## [15.8.1](https://github.com/LazyVim/LazyVim/compare/v15.8.0...v15.8.1) (2025-10-18)
### Bug Fixes
* **treesitter:** reload lazyvim.tresitter.util to prevent issues with stale modules when upgrading ([62ce8a2](https://github.com/LazyVim/LazyVim/commit/62ce8a23d89fa766956447a3df01d9f3448e9a66))
## [15.8.0](https://github.com/LazyVim/LazyVim/compare/v15.7.1...v15.8.0) (2025-10-17)
### Features
* **gleam:** add conform ([#5640](https://github.com/LazyVim/LazyVim/issues/5640)) ([02b8dd3](https://github.com/LazyVim/LazyVim/commit/02b8dd3f4bd55f06be133471fad027f3131238f4))
* **sidekick:** added `<leader>ad` to close/detach a terminal/session ([f8b062b](https://github.com/LazyVim/LazyVim/commit/f8b062b130177f07d3c1c13b642402d42e980df5))
* **sidekick:** changed default keymaps for sidekick. Please check updated docs at sidekick.nvim ([a3e52dd](https://github.com/LazyVim/LazyVim/commit/a3e52dd346ea35db5521b66e46dca95d32f00cb4))
* **sidekick:** use `<a-a>` in any snacks picker to send the (selected) results to an AI tool ([26c43a9](https://github.com/LazyVim/LazyVim/commit/26c43a9b931f3ab04a8c449671250182ac9ddca6))
* **treesitter:** add installation instructions to get a C compiler on windows ([37032da](https://github.com/LazyVim/LazyVim/commit/37032dabd657ae567011e7ab4f881ecbf476eb76))
* **treesitter:** added support for `disable` langs to indent/highlight/folds. Closes [#6608](https://github.com/LazyVim/LazyVim/issues/6608) ([0e8069c](https://github.com/LazyVim/LazyVim/commit/0e8069c78ee92279055236388df8c2019476767a))
* **treesitter:** better health checks for treesitter requirements ([413b9d5](https://github.com/LazyVim/LazyVim/commit/413b9d5fa91c5bd5088b28c6d1764caa88542cb1))
* **treesitter:** on windows, use `gcc` if available and `cl.exe` is not available for building parsers ([2a1f3c3](https://github.com/LazyVim/LazyVim/commit/2a1f3c370145c3465c0142deade3e3b2660ce829))
### Bug Fixes
* **blink:** disable blink left/right key in the cmdline ([94c4603](https://github.com/LazyVim/LazyVim/commit/94c4603b6838fbe75343b6e3342b4343744157dc))
* **keymaps:** update deprecated diagnostic keymap to latest api change ([#6574](https://github.com/LazyVim/LazyVim/issues/6574)) ([b9d38f6](https://github.com/LazyVim/LazyVim/commit/b9d38f692015fecaa72d55282b74a3d601e4c9fa))
* **sidekick:** only add copilot to lspconfig when `opts.nes.enabled ~= false` ([049db39](https://github.com/LazyVim/LazyVim/commit/049db39de0f272e8368a4b3881ac5a13f0d04b09))
* **terminal:** term toggle keymaps now only work for snacks terminals. Closes [#6573](https://github.com/LazyVim/LazyVim/issues/6573) ([4efd0e2](https://github.com/LazyVim/LazyVim/commit/4efd0e2bea2a387d6fcdea8cf36a62049e8bafed))
* **treesiter:** check that `disable` options are tables ([e8c5fa7](https://github.com/LazyVim/LazyVim/commit/e8c5fa7eae06539c883699507caeadb46d74f401))
* **treesitter:** better check on windows if microsoft build tools is installed ([5effc77](https://github.com/LazyVim/LazyVim/commit/5effc77185f94f557809375b5650d427e7171c32))
* **xtras:** load `copilot-native` before `blink` ([#6588](https://github.com/LazyVim/LazyVim/issues/6588)) ([aa2c436](https://github.com/LazyVim/LazyVim/commit/aa2c43633adee0f80faf8d743d6476ea4f8ba5ca))
### Performance Improvements
* **ansible:** load on ft=yaml and run should only be mapped on ft=yaml.ansible ([ebdcf1b](https://github.com/LazyVim/LazyVim/commit/ebdcf1ba7ef18daa8c897c8922a5ef770e8bcffb))
## [15.7.1](https://github.com/LazyVim/LazyVim/compare/v15.7.0...v15.7.1) (2025-10-02)
### Bug Fixes
* **sidekick:** better keymaps ([188b288](https://github.com/LazyVim/LazyVim/commit/188b2886147acb4d9e2a5c8ae7b73770fd66a92c))
## [15.7.0](https://github.com/LazyVim/LazyVim/compare/v15.6.0...v15.7.0) (2025-10-01)
### Features
* **sidekick:** updated keymaps for sidekick ([2942bd4](https://github.com/LazyVim/LazyVim/commit/2942bd4a0d738d693af51354e96aa7be5407d105))
### Bug Fixes
* **copilot-native:** schedule inline_completion.enable ([23b1da1](https://github.com/LazyVim/LazyVim/commit/23b1da170f6367fafe0be47b9c141770ed75a78e))
* **sidekick:** better keymaps ([aabc03f](https://github.com/LazyVim/LazyVim/commit/aabc03f88d30b0424926d9d894adc5c91eb84ec2))
* **stylua:** stylua is now also an LSP. Disable it since we use the CLI tool. ([2f76d57](https://github.com/LazyVim/LazyVim/commit/2f76d572a2b172e5e7e236d3e972443242c36b66))
## [15.6.0](https://github.com/LazyVim/LazyVim/compare/v15.5.0...v15.6.0) (2025-09-30)
### Features
* **sidekick:** added keymaps to work with AI cli tools ([5d18a46](https://github.com/LazyVim/LazyVim/commit/5d18a46b6a7bb5b946a6c87b9a45a2738c9ec9c3))
* **sidekick:** fancier lualine component ([b889978](https://github.com/LazyVim/LazyVim/commit/b8899781516da71ba0f63afa93fb4a6b25dff144))
### Bug Fixes
* **config:** clipboard:get() ([22851dc](https://github.com/LazyVim/LazyVim/commit/22851dce979c4cac379c6795ca7885c83c1c7eaf))
* **copilot-native:** change Copilot-native's `<M-[>` description to "Prev Suggestion" ([#6553](https://github.com/LazyVim/LazyVim/issues/6553)) ([089d0a5](https://github.com/LazyVim/LazyVim/commit/089d0a5ac1ab85238804e017ac1ef0dc0a8341f0))
* **sidekick:** changed keymap to open new tool ([3d3739b](https://github.com/LazyVim/LazyVim/commit/3d3739b4b8943b5e7143d37f60bb0adbb6cf82f3))
## [15.5.0](https://github.com/LazyVim/LazyVim/compare/v15.4.0...v15.5.0) (2025-09-27)
### Features
* **ai.copilot-native:** let sidekick.nvim handle some things if available ([b25ea9c](https://github.com/LazyVim/LazyVim/commit/b25ea9c153e76d11579731e1d5529f275a36f91d))
* **ai:** added completion hooks for next edit suggestions ([30a325d](https://github.com/LazyVim/LazyVim/commit/30a325d67184a80006dc55352d9663cdf01082d5))
* **extras:** added extra for `sidekick.nvim` (Copilot LSP integration) ([dbfe209](https://github.com/LazyVim/LazyVim/commit/dbfe20996ce62d6b0048245ab4e304610548da04))
### Bug Fixes
* **ai.copilot:** disable copilot lsp if installed. copilot.lua needs its own version of the LSP ([e9bc607](https://github.com/LazyVim/LazyVim/commit/e9bc6074d1ea69e921a6195d1dc34333eaa310f8))
## [15.4.0](https://github.com/LazyVim/LazyVim/compare/v15.3.0...v15.4.0) (2025-09-26)
### Features
* **copilot-native:** added experimental support for next edit suggestions. check the docs to enable ([c83df9e](https://github.com/LazyVim/LazyVim/commit/c83df9e68dd41f5a3f7df5a7048169ee286a7da8))
* **copilot-native:** added keymaps to cycle suggestions ([6bd630c](https://github.com/LazyVim/LazyVim/commit/6bd630cec6f905665691d593dc5d0fb3d54f560c))
* **copilot-native:** better lualine status ([9913e16](https://github.com/LazyVim/LazyVim/commit/9913e1665d783d9c4407633bc33475d403aff433))
* **copilot-native:** removed experimental **nes** support with `copilot_lsp` for now, since it's not the best experience right now ([ed637bb](https://github.com/LazyVim/LazyVim/commit/ed637bb0f7f418de069a4d5a7ed8a7b3b93eb425))
* **copilot:** added `copilot-native` extra to setup native inline completions in Neovim ([3b02963](https://github.com/LazyVim/LazyVim/commit/3b0296358508da1eb258c8716df163dd04fa6449))
### Bug Fixes
* **catppuccin:** follow-up on api change ([#6505](https://github.com/LazyVim/LazyVim/issues/6505)) ([af6e250](https://github.com/LazyVim/LazyVim/commit/af6e2505b54270c30145e8f4191b865870537287))
* **treesitter:** create buffer-local textobjects keymaps only when available. Closes [#6508](https://github.com/LazyVim/LazyVim/issues/6508) ([5985ca0](https://github.com/LazyVim/LazyVim/commit/5985ca0cf1a0c1ddee8b2b718c730f988cec7001))
## [15.3.0](https://github.com/LazyVim/LazyVim/compare/v15.2.0...v15.3.0) (2025-09-23)
### Features
* **copilot:** use `blink-copilot` as blink.cmp copilot source ([#5551](https://github.com/LazyVim/LazyVim/issues/5551)) ([13069f2](https://github.com/LazyVim/LazyVim/commit/13069f20183655d8a02f3acbd21d0ac4c9ce811c))
* **treesitter:** show an error if the user tries to set a custom treesitter compiler ([89ff1fd](https://github.com/LazyVim/LazyVim/commit/89ff1fd600bb6ff4cf2c9edbc2217a40ecb8d160))
### Bug Fixes
* **jdtls:** allow mason jdtls installation ([#6498](https://github.com/LazyVim/LazyVim/issues/6498)) ([80990ec](https://github.com/LazyVim/LazyVim/commit/80990ec62fd36fc4b6b921a9041f55858e33e030))
* **jdtls:** bundle configuration bug fix ([#6499](https://github.com/LazyVim/LazyVim/issues/6499)) ([c423765](https://github.com/LazyVim/LazyVim/commit/c4237659621e406089f4d13d32192954d52c4924))
* **keymaps:** enable snacks git keybindings ([#6323](https://github.com/LazyVim/LazyVim/issues/6323)) ([720e06a](https://github.com/LazyVim/LazyVim/commit/720e06a908cbf6e3afb4eccc049d58df9ace770a))
* **lsp:** fix mason install/exclude. Closes [#6504](https://github.com/LazyVim/LazyVim/issues/6504) ([37b1ec4](https://github.com/LazyVim/LazyVim/commit/37b1ec41ae57e8396d5c923a4bfdf7050215b4d6))
* **lsp:** fixup for when not using mason ([a90b565](https://github.com/LazyVim/LazyVim/commit/a90b56518f4f2291985952d79472d4f935c0bad0))
* **luasnip:** add missing optional tag to garymjr/nvim-snippets ([#5733](https://github.com/LazyVim/LazyVim/issues/5733)) ([37a1c1a](https://github.com/LazyVim/LazyVim/commit/37a1c1af5dbbcf069bb94a71b4dda3626fbda77a))
* **vtsls:** fix and move denols/vtsls disambigutaion to typescript extra. Fixes [#6476](https://github.com/LazyVim/LazyVim/issues/6476) ([775621a](https://github.com/LazyVim/LazyVim/commit/775621ac0af42486ef1cd4254d1a6625a190040b))
## [15.2.0](https://github.com/LazyVim/LazyVim/compare/v15.1.1...v15.2.0) (2025-09-20)
### Features
* **clojure:** use 'nvim-paredit' instead 'nvim-treesitter-sexp' as clojure S-exp Plugin ([#5876](https://github.com/LazyVim/LazyVim/issues/5876)) ([2659028](https://github.com/LazyVim/LazyVim/commit/26590285ead7a89bb45f309714f7f40136c89267))
* **core:** relax hard requirement for `vim.lsp.is_enabled`. Show warning instead ([3ca7b47](https://github.com/LazyVim/LazyVim/commit/3ca7b47365c85a07047e48cad450feff66c8bdd6))
* **options:** don't overwrite indentexpr/foldexpr/foldmethod when set by plugins. Fixes [#6464](https://github.com/LazyVim/LazyVim/issues/6464) ([ccbaf55](https://github.com/LazyVim/LazyVim/commit/ccbaf55c2f8bc691f8f64fe40ce00a1abda4fbac))
* **yanky:** use snacks picker for improved yank history navigation ([#5802](https://github.com/LazyVim/LazyVim/issues/5802)) ([55e762a](https://github.com/LazyVim/LazyVim/commit/55e762a8888cd5f336e4e2d4b2cc6b8b1b950663))
### Bug Fixes
* **editor:** calculate the height passed to the prompt of fzf-lua properly ([#6481](https://github.com/LazyVim/LazyVim/issues/6481)) ([65e38d3](https://github.com/LazyVim/LazyVim/commit/65e38d3b34cab653a05318c1a9014df3c89fdb53))
* **lang.clojure:** correct cmp-conjure source name ([#6208](https://github.com/LazyVim/LazyVim/issues/6208)) ([55b5c1f](https://github.com/LazyVim/LazyVim/commit/55b5c1fecb0b7e71c5eb40555b17d1e4820690f0))
* **options:** set_default option ([2401d5f](https://github.com/LazyVim/LazyVim/commit/2401d5fca6f2a2fcaca4f9c4c84c4b713c602352))
* **options:** track some initial options right after loading `options.lua`. See [#6463](https://github.com/LazyVim/LazyVim/issues/6463) ([9c611b0](https://github.com/LazyVim/LazyVim/commit/9c611b0c5758d0d659e7fdb29119b7083a56f989))
* **treesitter:** check if queries for indent/fold exists before enabling it. Fixes [#6474](https://github.com/LazyVim/LazyVim/issues/6474) ([5ce7cd6](https://github.com/LazyVim/LazyVim/commit/5ce7cd650a5fffc257e0312b82fffd26abe2a1fa))
## [15.1.1](https://github.com/LazyVim/LazyVim/compare/v15.1.0...v15.1.1) (2025-09-18)
### Bug Fixes
* **core:** check for outdated nightly. See [#6458](https://github.com/LazyVim/LazyVim/issues/6458) ([cfac3c9](https://github.com/LazyVim/LazyVim/commit/cfac3c9a85526ad7406f9b246097a1ec4fa1a2c3))
* **lspconfig:** remove all usage of `lspconfig` ([36b4191](https://github.com/LazyVim/LazyVim/commit/36b41911ab90fe19505af306a31a5a699342d3c3))
* **lsp:** schedule_wrap setting up LSPs to work around root cause of [#6456](https://github.com/LazyVim/LazyVim/issues/6456). Fixes [#6456](https://github.com/LazyVim/LazyVim/issues/6456) ([75a3809](https://github.com/LazyVim/LazyVim/commit/75a3809e15a0ecff9adc46c6cd3aaac51d99b561))
## [15.1.0](https://github.com/LazyVim/LazyVim/compare/v15.0.3...v15.1.0) (2025-09-18)
### Features
* **treesitter:** automatically install and use mason's tree-sitter-cli if not installed on system ([725d048](https://github.com/LazyVim/LazyVim/commit/725d048e009b866425b2a0cc620ba2c413e8b65f))
* **treesitter:** refactored setting up treesitter indent/highlight/folds ([b93303d](https://github.com/LazyVim/LazyVim/commit/b93303d2339b1117171780cebed1d710fd3805d5))
### Bug Fixes
* **snacks:** safe wrapper around snacks statuscolumn to prevent errors when LazyVim is still installing ([5bf2378](https://github.com/LazyVim/LazyVim/commit/5bf237820d7938b1b6490164fbd75e4117d341c1))
## [15.0.3](https://github.com/LazyVim/LazyVim/compare/v15.0.2...v15.0.3) (2025-09-17)
### Bug Fixes
* **treesitter:** properly update installedd languages after setup ([c28f599](https://github.com/LazyVim/LazyVim/commit/c28f599d4f5d175f3d259a621c4e7b5d0b2a0759))
## [15.0.2](https://github.com/LazyVim/LazyVim/compare/v15.0.1...v15.0.2) (2025-09-17)
### Bug Fixes
* **python:** remove the wrapping `settings` key from `setup()` options ([#6069](https://github.com/LazyVim/LazyVim/issues/6069)) ([ed3aa74](https://github.com/LazyVim/LazyVim/commit/ed3aa74c107de7dc3e06367ce4afb20056710441))
* **treesitter:** indentexpr/foldexpr now work as intended and override ftplugin settings. Fixes [#6447](https://github.com/LazyVim/LazyVim/issues/6447) ([a6b38de](https://github.com/LazyVim/LazyVim/commit/a6b38de763addf2d22e8a43a1e679cc855dc376d))
## [15.0.1](https://github.com/LazyVim/LazyVim/compare/v15.0.0...v15.0.1) (2025-09-17)
### Bug Fixes
* **treesitter:** TS update during inital build ([2d56d3b](https://github.com/LazyVim/LazyVim/commit/2d56d3b37c275890a403845c00b5c8d38cb387e6))
## [15.0.0](https://github.com/LazyVim/LazyVim/compare/v14.15.1...v15.0.0) (2025-09-17)
### ⚠ BREAKING CHANGES
* **treesitter:** migrate to `nvim-treesitter` **main** branch
* bump Neovim requirement to 0.11.2
* LazyVim now requires Neovim >= 0.11 See #6421 for more info
### Features
* **blink:** enable blink cmdline completions ([011a35c](https://github.com/LazyVim/LazyVim/commit/011a35ccb810cbe5d25def9cc92271e8423feb74))
* **blink:** enable cmdline completions ([ff7c12c](https://github.com/LazyVim/LazyVim/commit/ff7c12c48e23941ffd9a7bbe61857624929ae9da))
* bump Neovim requirement to 0.11.2 ([cccfe70](https://github.com/LazyVim/LazyVim/commit/cccfe70ea4390c1915f67ab7d2893971fba3f3fa))
* **extras:** added an experimental extra for the treesitter `main` branch ([5668ad7](https://github.com/LazyVim/LazyVim/commit/5668ad72ca806b3a7915bb7b35dcc5cccfe774f7))
* LazyVim now requires Neovim &gt;= 0.11 See [#6421](https://github.com/LazyVim/LazyVim/issues/6421) for more info ([e7ce65e](https://github.com/LazyVim/LazyVim/commit/e7ce65e1bb814f79ecb45bfeca934e997e0ee42c))
* **lsp:** enable LSP folds when available ([5e2c4e6](https://github.com/LazyVim/LazyVim/commit/5e2c4e62f28a85e0b27d5c97ea92af8c1ab74cef))
* **treesitter:** migrate to `nvim-treesitter` **main** branch ([5eac460](https://github.com/LazyVim/LazyVim/commit/5eac460c092103e5516bec345236853b9f35ec7c))
### Bug Fixes
* **blink:** make blink completions in cmdline behave more like regular cmdline ([f54fd7f](https://github.com/LazyVim/LazyVim/commit/f54fd7f751e902e824c3a4c9d212a0d18387d0b6))
* **catppuccin:** follow renamed integration ([#6354](https://github.com/LazyVim/LazyVim/issues/6354)) ([02d0c9a](https://github.com/LazyVim/LazyVim/commit/02d0c9aebddb902d9c974a38bb44db9bae4eac6d))
* **clangd:** file detection improvements ([#6436](https://github.com/LazyVim/LazyVim/issues/6436)) ([aab503f](https://github.com/LazyVim/LazyVim/commit/aab503fda63f34cff6bce229f73ea5209e8afaf0))
* **clangd:** rewrite the root_dir function ([#6060](https://github.com/LazyVim/LazyVim/issues/6060)) ([167d39b](https://github.com/LazyVim/LazyVim/commit/167d39b2bef24024be1a48267e14cc6c82146462))
* **eslint:** remove old 0.10 code ([919c9e5](https://github.com/LazyVim/LazyVim/commit/919c9e5d091f11b2892c56825249fc4a495d3e8f))
* **extras:** disable blink path source in CopilotChat ([#5666](https://github.com/LazyVim/LazyVim/issues/5666)) ([#5754](https://github.com/LazyVim/LazyVim/issues/5754)) ([3aa2916](https://github.com/LazyVim/LazyVim/commit/3aa2916569df2664cb68e1c7c38882868f36f8d0))
* **gitsigns:** use silent for gitsigns keymaps ([#5841](https://github.com/LazyVim/LazyVim/issues/5841)) ([6eed178](https://github.com/LazyVim/LazyVim/commit/6eed1781c185ea6d1f313aee60a7097448f473cb))
* **grug-far:** add support for GrugFarWithin so it gets loaded by default ([#5772](https://github.com/LazyVim/LazyVim/issues/5772)) ([fd1b02a](https://github.com/LazyVim/LazyVim/commit/fd1b02ae5740dc651cc43291391084dbe7b1b3c4))
* **harpoon:** keymaps for 1-9. Fixes [#6319](https://github.com/LazyVim/LazyVim/issues/6319) ([e2ba6bb](https://github.com/LazyVim/LazyVim/commit/e2ba6bb51107cbd076b53b49ed7be99fc2fa3991))
* **jdtls:** root_dir ([271fecb](https://github.com/LazyVim/LazyVim/commit/271fecb067ec223a8eab90c1abd1162e9ebae5df))
* **jdtls:** root_dir ([#6429](https://github.com/LazyVim/LazyVim/issues/6429)) ([c053921](https://github.com/LazyVim/LazyVim/commit/c05392186e9e540d4af169922c333b5baa583cbe))
* **lang.haskell:** prevent Haskell extras from installing telescope.nvim ([#6419](https://github.com/LazyVim/LazyVim/issues/6419)) ([cc4a3e5](https://github.com/LazyVim/LazyVim/commit/cc4a3e556424dba784b41ec3bd92eeb7b62746bc))
* **lsp:** buffer should be second arg for supports_method ([44ade7f](https://github.com/LazyVim/LazyVim/commit/44ade7fdea98a0356c64ff9edaf2534547b958bc))
* **lspconfig:** remove all references to lspconfig. Closes [#6426](https://github.com/LazyVim/LazyVim/issues/6426) ([23b9cde](https://github.com/LazyVim/LazyVim/commit/23b9cdeb3471b655532e9884fa2dd36ee83062d5))
* **lsp:** properly ambiguate denols vs vtsls ([2f75d9a](https://github.com/LazyVim/LazyVim/commit/2f75d9a90fc9cf43f7ba2365dbb745e5595fc02e))
* **lsp:** properly register capabilities with new vim.lsp.config. Not needed for blink ([9fa832d](https://github.com/LazyVim/LazyVim/commit/9fa832dc95cb77a5551bbeff12b4520d8b7bdc2a))
* **mason:** migrate to mason v2 ([#6053](https://github.com/LazyVim/LazyVim/issues/6053)) ([773f28b](https://github.com/LazyVim/LazyVim/commit/773f28b4912d5505a21da9686d56ab7cf41a9be7))
* **mini:** update mini plugin references from echasnovski to nvim-mini ([#6374](https://github.com/LazyVim/LazyVim/issues/6374)) ([ae3aaf2](https://github.com/LazyVim/LazyVim/commit/ae3aaf2dd3a04eb5dbc5b1e34843558c85e45ac2))
* **neo-tree:** import neo-tree Extra before edgy Extra ([#5763](https://github.com/LazyVim/LazyVim/issues/5763)) ([848dd31](https://github.com/LazyVim/LazyVim/commit/848dd3132af50f6d211d0c07166ea7c1a4259088))
* **ocaml:** use `root_dir` instead of `root_markers` for globs support ([#6428](https://github.com/LazyVim/LazyVim/issues/6428)) ([44cc063](https://github.com/LazyVim/LazyVim/commit/44cc0635bc3d2ccc55eb76bc7668092befcf0536))
* **refactoring:** update funcs to return, add `expr=true`, operator mode ([#5882](https://github.com/LazyVim/LazyVim/issues/5882)) ([6e1de74](https://github.com/LazyVim/LazyVim/commit/6e1de74597fa07ea805920da370f9d998740bc5e))
* remove 0.9 compat ([3516ae7](https://github.com/LazyVim/LazyVim/commit/3516ae736a333185f6f17b70af20b088d04cbbb6))
* **schemastore:** use `before_init` instead of `on_new_config` to load schema store ([#6427](https://github.com/LazyVim/LazyVim/issues/6427)) ([14d2a9b](https://github.com/LazyVim/LazyVim/commit/14d2a9baa1306bd0969112fcf8f69a11840cc5e6))
* **treesitter-main:** move exe check to config ([96316e5](https://github.com/LazyVim/LazyVim/commit/96316e5a69b4cc45311f5b7225e7d7bea1f977ee))
* **treesitter-main:** set vim.bo.indentexpr in FileType autocmd ([#6430](https://github.com/LazyVim/LazyVim/issues/6430)) ([b926e7d](https://github.com/LazyVim/LazyVim/commit/b926e7db417bc7b0e80feb778bed7924ffe8e85d))
* **vue:** `volar` -&gt; `vua_ls`. Fixes [#6236](https://github.com/LazyVim/LazyVim/issues/6236). Closes [#6238](https://github.com/LazyVim/LazyVim/issues/6238). Closes [#6174](https://github.com/LazyVim/LazyVim/issues/6174) ([4a3b4a8](https://github.com/LazyVim/LazyVim/commit/4a3b4a80a89fe5a52d30fbe4afe85c152878ab1b))
### Performance Improvements
* **blink:** only enable lazydev in lua files ([4961b3d](https://github.com/LazyVim/LazyVim/commit/4961b3d4d4b2999816e978c3ea4ef7c320e4206d))
* **treesitter-main:** only enable highlighting for installed treesitter langs ([2f309fc](https://github.com/LazyVim/LazyVim/commit/2f309fc8b5bf93af25293c1e4688d409de718a36))
## [14.15.1](https://github.com/LazyVim/LazyVim/compare/v14.15.0...v14.15.1) (2025-09-15)
### Bug Fixes
* **blink:** use .get method to access presets ([#6183](https://github.com/LazyVim/LazyVim/issues/6183)) ([1a729e2](https://github.com/LazyVim/LazyVim/commit/1a729e2d4c4162501fe13224d669a654849deb36))
* **extras.ai.copilot:** update status retrieval for lualine ([#5900](https://github.com/LazyVim/LazyVim/issues/5900)) ([55e9944](https://github.com/LazyVim/LazyVim/commit/55e9944e2b1e152b5acdc9cc015978a905fc2966))
* **lang.python:** enable venv-selector even when telescope is not available ([#5829](https://github.com/LazyVim/LazyVim/issues/5829)) ([10e5bf5](https://github.com/LazyVim/LazyVim/commit/10e5bf5c5b5fb4da0afbb2d4d2b75595502c9690))
* **lsp:** fixed deprecated warnings ([bed725a](https://github.com/LazyVim/LazyVim/commit/bed725a054ed3e8c8c56dce7e2100335e567cf01))
## [14.15.0](https://github.com/LazyVim/LazyVim/compare/v14.14.0...v14.15.0) (2025-05-12)
### Features
* **chezmoi:** enhance fzf-lua chezmoi picker and add snacks.dasbhoard entry ([#5275](https://github.com/LazyVim/LazyVim/issues/5275)) ([759a19e](https://github.com/LazyVim/LazyVim/commit/759a19e785735eb8513b4f8d4483ec5ab1b75307))
* **keymaps:** show lang when opening treesitter inspect ([9c59668](https://github.com/LazyVim/LazyVim/commit/9c596681f684c549e69652a5c77a68bd5ecc93e3))
* **octo:** add support for snacks picker ([#5625](https://github.com/LazyVim/LazyVim/issues/5625)) ([16a7724](https://github.com/LazyVim/LazyVim/commit/16a772452a515790c3304b358dd66a618fda3260))
* **snippets:** mini.snippets standalone and blink.resubscribe ([#5507](https://github.com/LazyVim/LazyVim/issues/5507)) ([f2f2aea](https://github.com/LazyVim/LazyVim/commit/f2f2aea6722b530281b476c08ec60f2d320f1c3d))
### Bug Fixes
* **blink:** make sure to use `LazyVim.config.icons.kinds` ([#5668](https://github.com/LazyVim/LazyVim/issues/5668)) ([771089f](https://github.com/LazyVim/LazyVim/commit/771089f6928512ab0f431e9db04e7dc802a5e1a5))
* **blink:** remove unnecessary `sources` from `cmdline` ([#5620](https://github.com/LazyVim/LazyVim/issues/5620)) ([5b94baa](https://github.com/LazyVim/LazyVim/commit/5b94baa1d2e7d8ec7e9a9cab82fabd8c3655d369))
* **copilot-chat:** switch from deprecated picker integrations ([#5707](https://github.com/LazyVim/LazyVim/issues/5707)) ([b0334fd](https://github.com/LazyVim/LazyVim/commit/b0334fd57cdb920e03afab3c1940114ad43e4fbe))
* **mason:** rename and pin to v1 ([c20c402](https://github.com/LazyVim/LazyVim/commit/c20c4022958780617424a090eee2360d560eb939))
* **snacks.picker:** remove redundant leader-gc keymap. Closes [#5646](https://github.com/LazyVim/LazyVim/issues/5646) ([606b964](https://github.com/LazyVim/LazyVim/commit/606b96466eeb39b1c1bb576c9b99041b64705f43))
## [14.14.0](https://github.com/LazyVim/LazyVim/compare/v14.13.0...v14.14.0) (2025-02-15)
### Features
* **extras:** setup neogen and mini.snippets integration ([#5594](https://github.com/LazyVim/LazyVim/issues/5594)) ([5788b9d](https://github.com/LazyVim/LazyVim/commit/5788b9d1e06dfb5f99f92354dc550c9f2c5a6710))
* **keymaps:** enable toggling in quickfix list and location list ([#5608](https://github.com/LazyVim/LazyVim/issues/5608)) ([32e575a](https://github.com/LazyVim/LazyVim/commit/32e575aa75792c63f710f0bdc3e2fb5aa8ea75ad))
* **snacks.picker:** added support for Project shortcuts in other dashboards ([#5607](https://github.com/LazyVim/LazyVim/issues/5607)) ([401ef48](https://github.com/LazyVim/LazyVim/commit/401ef48fcd617534b017ef471309bb1bd6465131))
* **snacks.picker:** move trouble keymap from `ctrl+t` -&gt; `alt+t` ([4aff006](https://github.com/LazyVim/LazyVim/commit/4aff0063a42bbc499cfa03feb6e58d4339c0950d))
### Bug Fixes
* **blink:** `blink` released new version, remove previous hack ([#5616](https://github.com/LazyVim/LazyVim/issues/5616)) ([b35015a](https://github.com/LazyVim/LazyVim/commit/b35015ac59f0c630b2efe18ccf10d693397d0ca4))
* **blink:** `cmdline` is now top-level on main branch ([#5615](https://github.com/LazyVim/LazyVim/issues/5615)) ([0458e46](https://github.com/LazyVim/LazyVim/commit/0458e46dcca49cc404062e04a9054a8bd058dcd3))
* **blink:** enable Neovim native mapping with `&lt;Tab&gt;` ([#5617](https://github.com/LazyVim/LazyVim/issues/5617)) ([e7f8e4f](https://github.com/LazyVim/LazyVim/commit/e7f8e4faba0c6d397526238923f1aeff1740d09c))
## [14.13.0](https://github.com/LazyVim/LazyVim/compare/v14.12.0...v14.13.0) (2025-02-12)
### Features
* **editor:** update parameter for fzf-lua ([#5584](https://github.com/LazyVim/LazyVim/issues/5584)) ([0a5965b](https://github.com/LazyVim/LazyVim/commit/0a5965b787e4d513b5a2e1182b35bd11ceafeeb3))
* **lsp:** use lsp_config picker instead of `LspInfo` ([7529773](https://github.com/LazyVim/LazyVim/commit/75297733710951e81b505d88b2d728a5b0a9b6ab))
## [14.12.0](https://github.com/LazyVim/LazyVim/compare/v14.11.0...v14.12.0) (2025-02-10)
### Features
* **config:** add option to disable the order check to warning message ([da3b515](https://github.com/LazyVim/LazyVim/commit/da3b5159df326bc31d5a0ebdfa2c5cbbd32df9d2))
* **config:** allow disabling the order check with `vim.g.lazyvim_check_order = false` ([0bbce17](https://github.com/LazyVim/LazyVim/commit/0bbce1775b7d6750d3c4d761f3ad1bcfb77fb805))
### Bug Fixes
* **copilot-chat:** added support for snacks picker. Closes [#5432](https://github.com/LazyVim/LazyVim/issues/5432). Closes [#5552](https://github.com/LazyVim/LazyVim/issues/5552) ([2a608f0](https://github.com/LazyVim/LazyVim/commit/2a608f00d47bb6679a27a313fb0404e4d3a2196c))
* **extras:** disable import handling when loading `:LazyExtras` + changed some recommendations ([121a2e2](https://github.com/LazyVim/LazyVim/commit/121a2e27ef0f4d8ab64bf76768b9600c45fd2364))
## [14.11.0](https://github.com/LazyVim/LazyVim/compare/v14.10.0...v14.11.0) (2025-02-08)
### Features
* **config:** show a warning when lazy.nvim imports order is incorrect ([83988ea](https://github.com/LazyVim/LazyVim/commit/83988ea46eccbe20953cd807984d2e89d679aa6e))
* **defaults:** new installs now default to snacks picker/explorer. Existing installs don't change. ([25d90b5](https://github.com/LazyVim/LazyVim/commit/25d90b54a3b1863cb4428fd309ab855732289710))
* **extras:** big rework of default extras ([525377d](https://github.com/LazyVim/LazyVim/commit/525377dee9ac3d19f53e333538e4e85586163ad8))
* **util:** `has_extra` now also checks for manual imports in `lazy.lua` ([0416376](https://github.com/LazyVim/LazyVim/commit/041637673371db7866f8bf00d77fc2fb6cc673c6))
### Bug Fixes
* **extras:** remove debug ([b4c24a3](https://github.com/LazyVim/LazyVim/commit/b4c24a3fe882c21555e60a1ec44087526e856eb9))
* **snacks.explorer:** no longer needed to disable neo-tree ([2d6b492](https://github.com/LazyVim/LazyVim/commit/2d6b49281d2550222be6aada0b7eeca07bb26e10))
* **snacks.picker:** move dashboard shortcut to picker extra. Closes [#5549](https://github.com/LazyVim/LazyVim/issues/5549) ([2b3bcf3](https://github.com/LazyVim/LazyVim/commit/2b3bcf36b2392bef94afefc07e2fcf32960960d7))
## [14.10.0](https://github.com/LazyVim/LazyVim/compare/v14.9.0...v14.10.0) (2025-02-07)
### Features
* **bufferline:** support for snacks picker sidebars ([3500d6a](https://github.com/LazyVim/LazyVim/commit/3500d6a826a32d06d921f3e22342734c61ef09fe))
* **refactoring:** fallback to using vim ui select for refactoring.nvim ([#5540](https://github.com/LazyVim/LazyVim/issues/5540)) ([23a1bbd](https://github.com/LazyVim/LazyVim/commit/23a1bbdae90f37aab4a86bfb4c113531a28e7f71))
* **snacks.explorer:** enabled netrw integration ([4f006f1](https://github.com/LazyVim/LazyVim/commit/4f006f1fba5fdaa0150c544ad7966b96ec9cb04a))
* **snacks.picker:** add projects picker to dashboard if snacks picker is enabled ([fb256f2](https://github.com/LazyVim/LazyVim/commit/fb256f2b688cb7ac9875f704fe6c00f27efc2354))
* **snacks.picker:** some extra keymaps ([ab30442](https://github.com/LazyVim/LazyVim/commit/ab304426527723e116742cd7862fc976f876107c))
* **snippets:** mini.snippets is out of beta ([#5505](https://github.com/LazyVim/LazyVim/issues/5505)) ([4a81a37](https://github.com/LazyVim/LazyVim/commit/4a81a370d7868d7db32042f69b0fc5a6218059c5))
### Bug Fixes
* **copilot:** remove load on BufReadPost instead of InsertEnter ([8f4e9b8](https://github.com/LazyVim/LazyVim/commit/8f4e9b8c1e43e354d91529484aedca54f04bdcf6))
* **go:** update go.lua to eliminate fieldalignment from analyses ([#5170](https://github.com/LazyVim/LazyVim/issues/5170)) ([5c97327](https://github.com/LazyVim/LazyVim/commit/5c9732733de62a4e15988826f53d16a4dfdf960c))
### Performance Improvements
* **snacks_picker:** lazy-load trouble open action ([1a4d948](https://github.com/LazyVim/LazyVim/commit/1a4d948e0dae360836187be8c86283d7e814b7ef))
## [14.9.0](https://github.com/LazyVim/LazyVim/compare/v14.8.0...v14.9.0) (2025-01-30)
### Features
* **markdown:** added markdown support for codecompanion ([e9db488](https://github.com/LazyVim/LazyVim/commit/e9db488acaa04f1a9eca6d022e57fed4271b8af8))
* **snacks.picker:** added &lt;leader&gt;si to search icons ([#5460](https://github.com/LazyVim/LazyVim/issues/5460)) ([eea52be](https://github.com/LazyVim/LazyVim/commit/eea52be3447502dde77d9e6fa75fd597a0b5a86a))
* **snacks.picker:** added &lt;leader&gt;su to search undotree ([#5447](https://github.com/LazyVim/LazyVim/issues/5447)) ([332b320](https://github.com/LazyVim/LazyVim/commit/332b32080c52727a16db90e06989caa0c378caa1))
* **snacks.picker:** added `leader-fB` to find any buffer (including hidden & nofile) ([83bf636](https://github.com/LazyVim/LazyVim/commit/83bf6360a1f28a3fc1afe31ae300247fc01c7a90))
* **snacks.picker:** added `leader-sp` to search for plugin spec ([7cf4185](https://github.com/LazyVim/LazyVim/commit/7cf4185dc4d1fe49ad004d33a6703603fb4500ff))
* **snacks.picker:** added alt-c to toggle between cwd/root dir ([6be7c4f](https://github.com/LazyVim/LazyVim/commit/6be7c4fee4fb755ff07f7bcc13eac96e1d8c279a))
* **snacks.picker:** flash.nvim integration ([5d24aa6](https://github.com/LazyVim/LazyVim/commit/5d24aa63111af68fbada8c97fedb75b07b8c3c92))
* **snacks.picker:** use snacks picker for notifications when enabled ([01a70cc](https://github.com/LazyVim/LazyVim/commit/01a70cc60ed2760afc819510177fb8d12a371b25))
* **snacks:** extra for snacks explorer (replacement for neo-tree) ([e20d9af](https://github.com/LazyVim/LazyVim/commit/e20d9afcbc980510093a3753a3991d8c934cbb75))
* **snippets:** an extra for mini.snippets ([#5274](https://github.com/LazyVim/LazyVim/issues/5274)) ([8b4e6ff](https://github.com/LazyVim/LazyVim/commit/8b4e6ff70d682cad3b1f4999623c3f0ac639fa82))
### Bug Fixes
* **keymaps:** remove unneeded and ambiguous `&lt;leader&gt;w` keymap ([#5459](https://github.com/LazyVim/LazyVim/issues/5459)) ([132986a](https://github.com/LazyVim/LazyVim/commit/132986a624b49bf740161d90ce94f16dd5ea5883))
* **luasnip:** schedule `jump` to be compatible with blink, nvim-cmp still works after change ([#5470](https://github.com/LazyVim/LazyVim/issues/5470)) ([0350934](https://github.com/LazyVim/LazyVim/commit/0350934d56579f3e6a9d40fa47313b2970d74772))
* **root:** pass args to root.get ([dc8512f](https://github.com/LazyVim/LazyVim/commit/dc8512fce1ec1cd4b0ca52d1077b2ed3894d51c8))
* **snacks.picker:** flash integration ([b5cd0d0](https://github.com/LazyVim/LazyVim/commit/b5cd0d0e27081be3ef1905475a0fe541b7661870))
* **snacks.picker:** snacks =&gt; flash ([3de7b24](https://github.com/LazyVim/LazyVim/commit/3de7b24cf6ed844772ea047476a400c56d5f4b42))
* **snacks:** use `Snacks.picker` for recent files ([#5485](https://github.com/LazyVim/LazyVim/issues/5485)) ([f0d2629](https://github.com/LazyVim/LazyVim/commit/f0d2629bd859eeac343999b0fe145f9beb227c4a))
* **sql:** better nvim-cmp check. Closes [#5188](https://github.com/LazyVim/LazyVim/issues/5188) ([1e83b4f](https://github.com/LazyVim/LazyVim/commit/1e83b4f843f88678189df81b1c88a400c53abdbc))
* **vscode:** diabled some snacks plugins. Fixes [#5364](https://github.com/LazyVim/LazyVim/issues/5364) ([c7a7ab5](https://github.com/LazyVim/LazyVim/commit/c7a7ab51129692927ae47f4e57ce22d10d48467e))
## [14.8.0](https://github.com/LazyVim/LazyVim/compare/v14.7.0...v14.8.0) (2025-01-20)
### Features
* **chezmoi:** add snacks picker integration for chezmoi files ([#5429](https://github.com/LazyVim/LazyVim/issues/5429)) ([970d1a0](https://github.com/LazyVim/LazyVim/commit/970d1a05da37554aa17b671c869431a7b387d8be))
* **dial:** add checkbox augend for markdown ([#5411](https://github.com/LazyVim/LazyVim/issues/5411)) ([b19f207](https://github.com/LazyVim/LazyVim/commit/b19f2070b847a3067436f4d16a0cc5b84a9f9819))
* **snacks.picker:** added leader-sS to search lsp workspace symbols ([8787ec1](https://github.com/LazyVim/LazyVim/commit/8787ec1227e10123ad7291cf916020d9a8626525))
* **snacks:** added git diff keymap to pick hunks with leader-gd ([62cb4a4](https://github.com/LazyVim/LazyVim/commit/62cb4a465c490c7d41f7a3bf52fb0e222f2cf83b))
### Bug Fixes
* **markdown:** disable checkbox rendering since it's annoying to edit ([4f31bfa](https://github.com/LazyVim/LazyVim/commit/4f31bfab86402c819e5ea1e18b3c5d139628c864))
* **snacks.picker:** fix mapping for `Recent (cwd)` ([#5407](https://github.com/LazyVim/LazyVim/issues/5407)) ([8307b0f](https://github.com/LazyVim/LazyVim/commit/8307b0fe506a38417f3b7835e2c4b43d9a970946))
* **snacks.picker:** fix mapping for Projects for consistency ([#5433](https://github.com/LazyVim/LazyVim/issues/5433)) ([eb7b453](https://github.com/LazyVim/LazyVim/commit/eb7b453b48ab7e3008013e0edf2822f622111e97))
* **snacks.picker:** respect lazyvim.config.kind_filter ([#5415](https://github.com/LazyVim/LazyVim/issues/5415)) ([df7426e](https://github.com/LazyVim/LazyVim/commit/df7426eefa79d5dfa2fcbe2f381abfb2cca70bad))
### Performance Improvements
* **java:** setting opts.dap_main to false to disable main class scan ([#5391](https://github.com/LazyVim/LazyVim/issues/5391)) ([66c3577](https://github.com/LazyVim/LazyVim/commit/66c3577bc779d31a7c2addd47de7cc6d215795ba))
## [14.7.0](https://github.com/LazyVim/LazyVim/compare/v14.6.1...v14.7.0) (2025-01-14)
### Features
* **extras:** added extra for snacks picker ([#5368](https://github.com/LazyVim/LazyVim/issues/5368)) ([13044c2](https://github.com/LazyVim/LazyVim/commit/13044c298ed1837a2d938b64710528d359dc8407))
## [14.6.1](https://github.com/LazyVim/LazyVim/compare/v14.6.0...v14.6.1) (2025-01-08)
### Bug Fixes
* **blink:** added new luasnip preset ([8d2d9a9](https://github.com/LazyVim/LazyVim/commit/8d2d9a9bd965aab0a752f24ec327d2f391a8406b))
* **luasnip:** correctly remove duplicate snippets ([#5214](https://github.com/LazyVim/LazyVim/issues/5214)) ([05c3447](https://github.com/LazyVim/LazyVim/commit/05c3447558fa6eef7ae3c0d3e7ed1c281572274d))
* **nlua:** debugger not responding ([#5319](https://github.com/LazyVim/LazyVim/issues/5319)) ([4e746d0](https://github.com/LazyVim/LazyVim/commit/4e746d0e5625662e1f121b39f63836b653ed728b))
## [14.6.0](https://github.com/LazyVim/LazyVim/compare/v14.5.0...v14.6.0) (2024-12-20)
### Features
* **colorscheme:** add fzf integration to catppuccin ([#5175](https://github.com/LazyVim/LazyVim/issues/5175)) ([751803f](https://github.com/LazyVim/LazyVim/commit/751803f98bf3baaf7db1c1e2ddd28e082396124a))
* **lualine:** add fzf extensions. ([#5203](https://github.com/LazyVim/LazyVim/issues/5203)) ([7a16a75](https://github.com/LazyVim/LazyVim/commit/7a16a752ba1fa535bb54d6492fb8df6c72ab8ba0))
### Bug Fixes
* **blink:** remove compatibility with 0.7.6 release ([#5212](https://github.com/LazyVim/LazyVim/issues/5212)) ([857f330](https://github.com/LazyVim/LazyVim/commit/857f330c2139c328cfce0251b11713dc179d6a81))
* **codeium:** doesnt automatically load when `vim.g.ai_cmp` is set to false ([#5182](https://github.com/LazyVim/LazyVim/issues/5182)) ([b51279c](https://github.com/LazyVim/LazyVim/commit/b51279c6d727a09cd3d2bf3c9d0cf829810280bb))
* **fzf:** fzf.lua compatible hidden scrollbar ([#5177](https://github.com/LazyVim/LazyVim/issues/5177)) ([3a79273](https://github.com/LazyVim/LazyVim/commit/3a79273f3c3bbd22bcdba795b7b8fe6a949db96e))
* **luasnip:** use blink's luasnip source. Closes [#5211](https://github.com/LazyVim/LazyVim/issues/5211) ([86de9c9](https://github.com/LazyVim/LazyVim/commit/86de9c9e443572b0244ee9bbdcf5f10ecaabaf74))
### Performance Improvements
* **supermaven:** add lazy-loading ([#5183](https://github.com/LazyVim/LazyVim/issues/5183)) ([a3a28bf](https://github.com/LazyVim/LazyVim/commit/a3a28bf8e43f7239316942c2f2bac6e74b28586b))
### Reverts
* fix(fzf): fzf.lua compatible hidden scrollbar ([#5177](https://github.com/LazyVim/LazyVim/issues/5177)) ([c40692c](https://github.com/LazyVim/LazyVim/commit/c40692c1b0a95492eead8cc093972c634d54043b))
## [14.5.0](https://github.com/LazyVim/LazyVim/compare/v14.4.0...v14.5.0) (2024-12-17)
### Features
* **blink:** increase lazydev scores ([22015e0](https://github.com/LazyVim/LazyVim/commit/22015e0b4835ae148c19b459bf494fe5f72b415b))
### Bug Fixes
* **blink:** add `vim.snippet` fixes to blink (was already added to cmp). Fixes [#5067](https://github.com/LazyVim/LazyVim/issues/5067) ([5ea3cfa](https://github.com/LazyVim/LazyVim/commit/5ea3cfa48e6ac88b90282da86dba7799f67b2e30))
* **blink:** don't trigger automatically on insert ([2cf3d23](https://github.com/LazyVim/LazyVim/commit/2cf3d234bfc31a1a4eda282ddabc12987f762893))
* **blink:** remove show_on_insert_on_trigger_character since this has been fixed for {} and others ([0f3a120](https://github.com/LazyVim/LazyVim/commit/0f3a1201861e6d6e8834aa8937dcf3e4a70a937a))
* **illuminate:** disable snacks.words when illuminate extra is enabled. Fixes [#5125](https://github.com/LazyVim/LazyVim/issues/5125) ([d025115](https://github.com/LazyVim/LazyVim/commit/d0251155ab2a293136c933b4e925e1fa16d39a2d))
* **supermaven:** don't attach to bigfile and some snacks ft. Fixes [#5139](https://github.com/LazyVim/LazyVim/issues/5139) ([25ee13c](https://github.com/LazyVim/LazyVim/commit/25ee13ce29ad8c4e10d677e641955cfd3c810fb5))
* **vscode:** disable some snacks plugins in vscode. Closes [#5124](https://github.com/LazyVim/LazyVim/issues/5124) ([301135b](https://github.com/LazyVim/LazyVim/commit/301135b2749affe71645c610001c8253ae78c591))
## [14.4.0](https://github.com/LazyVim/LazyVim/compare/v14.3.0...v14.4.0) (2024-12-15)
### Features
* **blink:** boost results from ai providers and enable async, to get much faster completions ([6bc56e4](https://github.com/LazyVim/LazyVim/commit/6bc56e4e8142e3d453f2fbfea8ace62fcfc3750f))
* **keymaps:** unlink luasnip on `esc` ([ef91026](https://github.com/LazyVim/LazyVim/commit/ef9102677f9b7a31d0bb7cfcd76f24401a7385fc))
### Bug Fixes
* **blink:** allow overriding `&lt;Tab&gt;` key. Fixes [#5095](https://github.com/LazyVim/LazyVim/issues/5095). Closes [#5099](https://github.com/LazyVim/LazyVim/issues/5099) ([89314cb](https://github.com/LazyVim/LazyVim/commit/89314cb2aae76b434122592ac8da264fa689bdff))
* **keymaps:** better escape ([8f113a5](https://github.com/LazyVim/LazyVim/commit/8f113a514c130cba8d0f79acdd091d18ef997829))
## [14.3.0](https://github.com/LazyVim/LazyVim/compare/v14.2.0...v14.3.0) (2024-12-15)
### Features
* **config:** better icon for snippets ([195a6e6](https://github.com/LazyVim/LazyVim/commit/195a6e611495da9dbb1afef4b470926cc2535f19))
* **keymaps:** stop native snippets on escape. Closes [#5083](https://github.com/LazyVim/LazyVim/issues/5083) ([15c81fd](https://github.com/LazyVim/LazyVim/commit/15c81fdbb839f0c657fe4c077114475e82f423fe))
### Bug Fixes
* **blink:** super-tab and ai completions ([413566a](https://github.com/LazyVim/LazyVim/commit/413566af591e9152f156944bff35c89d5d973148))
## [14.2.0](https://github.com/LazyVim/LazyVim/compare/v14.1.0...v14.2.0) (2024-12-14)
### Features
* **blink:** add `&lt;c-y&gt;` to keymaps ([3866fbc](https://github.com/LazyVim/LazyVim/commit/3866fbcd40dfd52f4012dfbb434208a9f953cf05))
### Bug Fixes
* **blink:** `draw.treesitter` expects table ([#5044](https://github.com/LazyVim/LazyVim/issues/5044)) ([08a7f7e](https://github.com/LazyVim/LazyVim/commit/08a7f7e3f92aeced3092c5ec462d784f765e8654))
* **blink:** compat with 0.7.6 ([63eab6d](https://github.com/LazyVim/LazyVim/commit/63eab6d9a54b6d9e93d3cc445d57014bbe8cc271))
* **blink:** only override color symbol kind for blink ([b07378d](https://github.com/LazyVim/LazyVim/commit/b07378dde40f1fa98b099cbd496129f5ca376e2c))
* **health:** added `fzf` to healthchecks ([380cea9](https://github.com/LazyVim/LazyVim/commit/380cea97bf92fda3ad4ae14d1d4d37acffe5019a))
* **health:** added curl to health checks ([5de1532](https://github.com/LazyVim/LazyVim/commit/5de15329fb5f7a846140fca96f9c5587245d63c1))
## [14.1.0](https://github.com/LazyVim/LazyVim/compare/v14.0.2...v14.1.0) (2024-12-13)
### Features
* **blink:** use block vs. icon for colors ([#5037](https://github.com/LazyVim/LazyVim/issues/5037)) ([4488cb2](https://github.com/LazyVim/LazyVim/commit/4488cb24f72e04dd5adb2e7c0388a51c2b36f4f0))
### Bug Fixes
* **blink:** add backward compat for config ([1517ec9](https://github.com/LazyVim/LazyVim/commit/1517ec9bb46b454d253186aff5e5abd41e96d723))
## [14.0.2](https://github.com/LazyVim/LazyVim/compare/v14.0.1...v14.0.2) (2024-12-13)
### Bug Fixes
* **cmp:** disable nvim-cmp/blink.cmp when needed ([60b7704](https://github.com/LazyVim/LazyVim/commit/60b77045d57d5473e50042b9b879c9c1054e6a10))
* **cmp:** wrong extras check for nvim-cmp ([009e358](https://github.com/LazyVim/LazyVim/commit/009e3587be1badc04c9a8b8b459e8555b405509c))
## [14.0.1](https://github.com/LazyVim/LazyVim/compare/v14.0.0...v14.0.1) (2024-12-13)
### Bug Fixes
* **NEWS:** typo ([0fd7140](https://github.com/LazyVim/LazyVim/commit/0fd7140a6de936edb27a4ba4f4825153ae801c21))
## [14.0.0](https://github.com/LazyVim/LazyVim/compare/v13.9.1...v14.0.0) (2024-12-13)
### ⚠ BREAKING CHANGES
* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim >= `0.10` as default completion engine
* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim >= `0.10` as default completion engine
* **snacks:** use `snacks.scope` indent objects in favor of custom `mini.ai` indent objects
* **snacks:** use `snacks.indent` and moved `indent-blankline` to extras
* **pick:** make fzf the default picker for LazyVim
### Features
* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim &gt;= `0.10` as default completion engine ([152f9d1](https://github.com/LazyVim/LazyVim/commit/152f9d113fa2b4fc2af72d2846c4dd68c31b7596))
* **cmp:** moved `nvim-cmp` to extras and prefer `blink.cmp` on Neovim &gt;= `0.10` as default completion engine ([2cbfb9b](https://github.com/LazyVim/LazyVim/commit/2cbfb9b6b7b9b4bb1c9ce94ad02ab0a851310fc0))
* **keymaps:** added leader-uD to toggle dim mode ([9b97388](https://github.com/LazyVim/LazyVim/commit/9b973882b8bcbab32f850da7c553cdc6388af4ad))
* **keymaps:** added leader-z to toggle zen mode ([e6d6a09](https://github.com/LazyVim/LazyVim/commit/e6d6a096b34ad887b9f954a3f43bcc3fd7833f73))
* **keymaps:** added leader-Z to toggle zoom ([f2e1cac](https://github.com/LazyVim/LazyVim/commit/f2e1cac965e41d7761073856b11bea223cac1e4d))
* **lualine:** add snacks profiler status ([7bc8490](https://github.com/LazyVim/LazyVim/commit/7bc8490d46e002d624f45037fc507e8dd10d4b70))
* **pick:** make fzf the default picker for LazyVim ([ae2340f](https://github.com/LazyVim/LazyVim/commit/ae2340f60a012df125c87fe46e6d98d0be04bd10))
* **rust:** exclude bad directories from rust-analyzer ([#5021](https://github.com/LazyVim/LazyVim/issues/5021)) ([94f6df0](https://github.com/LazyVim/LazyVim/commit/94f6df048fbecfdf2f65ab96156b713555df40dc))
* **snacks:** added `snacks.input` ([54bece1](https://github.com/LazyVim/LazyVim/commit/54bece17b390453ea0beac41e419394d5e0d69ff))
* **snacks:** added leader-ua to toggle global animations ([303980d](https://github.com/LazyVim/LazyVim/commit/303980d267577972bb12e34ef152a0e8b9a953e2))
* **snacks:** added leader-ug to toggle indent guides ([b3ac642](https://github.com/LazyVim/LazyVim/commit/b3ac642317cd60e9b35869068dd74fe779a22146))
* **snacks:** added leader-uS to toggle scroll ([cded8d4](https://github.com/LazyVim/LazyVim/commit/cded8d4d2808250db5ea864fb8e479fd8b5a4a2c))
* **snacks:** added profiler keymaps ([a8332c6](https://github.com/LazyVim/LazyVim/commit/a8332c6d50106cf35e45953cdaa463cbb6c5b085))
* **snacks:** enable `snacks.scroll` ([1a1a484](https://github.com/LazyVim/LazyVim/commit/1a1a48497c53e232b0f525baab87d5f23a2205b2))
* **snacks:** use `snacks.indent` and moved `indent-blankline` to extras ([94fdc42](https://github.com/LazyVim/LazyVim/commit/94fdc421a11b960e116888658dd9b2b85c3b58fc))
* **snacks:** use `snacks.scope` indent objects in favor of custom `mini.ai` indent objects ([d904a1e](https://github.com/LazyVim/LazyVim/commit/d904a1ef47638e4defede775a7f0966fb8e0a2b4))
* **snacks:** use `Snacks.zen.zoom()` instead of custom **maximize** ([e389a5a](https://github.com/LazyVim/LazyVim/commit/e389a5ada955c253771ff5c9f8301e2f17c206d2))
* **which-key:** make `helix` the default which-key preset ([44c712a](https://github.com/LazyVim/LazyVim/commit/44c712aa31e7e05971259841e1f87c9f3d9c6cd5))
* **zen:** zoom with leader-wm and leader-uZ. zen with leader-uz ([2acedaa](https://github.com/LazyVim/LazyVim/commit/2acedaa3a8312e53d84a299bd82d616e1c26328a))
### Bug Fixes
* **blink:** disable cmdline integration for now since it doesn't work well with the enter keymap ([20eff4f](https://github.com/LazyVim/LazyVim/commit/20eff4fc3f55fbeb1e415f0cc5a2d1f3019e5da6))
* **blink:** remove unneeded code ([d95e530](https://github.com/LazyVim/LazyVim/commit/d95e530c02cbb2bcf36da5bb3e235780bdf6d239))
* **blink:** unset provider.kind ([#5024](https://github.com/LazyVim/LazyVim/issues/5024)) ([29c4dea](https://github.com/LazyVim/LazyVim/commit/29c4dea4e75b82ad4b06c21e360eefa3951a3fba))
* **blink:** unset sources.compat. Fixes [#5016](https://github.com/LazyVim/LazyVim/issues/5016). Closes [#5017](https://github.com/LazyVim/LazyVim/issues/5017) ([2946031](https://github.com/LazyVim/LazyVim/commit/29460318f302b6dceaf16bd06c45cb3ed58d5fd8))
* **clangd:** avoid nil-indexing the completion sorting comparators ([#5011](https://github.com/LazyVim/LazyVim/issues/5011)) ([c4b0d6d](https://github.com/LazyVim/LazyVim/commit/c4b0d6d0d1ee11c07c0ab4ed3f87f97b76a6f592))
* **clangd:** nvim-cmp optional ([94be6fb](https://github.com/LazyVim/LazyVim/commit/94be6fb78786e9a53e914db9d5cfab09b13225ba))
* **copliot:** restructure copilot-cmp spec ([34d2bdc](https://github.com/LazyVim/LazyVim/commit/34d2bdcac6fabe5d02e157bffa3475391ca1f7ec))
* fqn for nvim-cmp ([a9a273d](https://github.com/LazyVim/LazyVim/commit/a9a273d041e2dd0e5654b5b492fd29138259fe68))
* **git:** make nvim-cmp optional for the git extra ([ec92fa8](https://github.com/LazyVim/LazyVim/commit/ec92fa85586b4082f04b30ad94cb98b24463665e))
* **java:** only setup debug adapter config if mason is installed ([#5013](https://github.com/LazyVim/LazyVim/issues/5013)) ([aad0edb](https://github.com/LazyVim/LazyVim/commit/aad0edbf749bcbe16e9ef8d2a65a19dd3fe2bd87))
* **java:** only setup debug adapter config if mason is installed (for real this time) ([#5014](https://github.com/LazyVim/LazyVim/issues/5014)) ([5b1b6b2](https://github.com/LazyVim/LazyVim/commit/5b1b6b29d717adeffb0528cffef9f1a3972d3701))
* **java:** only use mason-registry if mason installed ([#4991](https://github.com/LazyVim/LazyVim/issues/4991)) ([21b02f0](https://github.com/LazyVim/LazyVim/commit/21b02f056d924d0a3cb3513b163e3dbdfa9c15ec))
* **mini.animate:** disable `snacks.scroll` when `mini.animate` is enabled ([9b07544](https://github.com/LazyVim/LazyVim/commit/9b07544e89ecead354ef0f17ebc3127f3fa5bbd8))
* **mini.indentscope:** disable snacks and indent-blankline scope ([98c77f1](https://github.com/LazyVim/LazyVim/commit/98c77f1de479b12bc29dc8339fbfe694959d99ed))
* **nvim-cmp:** set high prio for loading the nvim-cmp extra to prevent issues with opts ([adf8db6](https://github.com/LazyVim/LazyVim/commit/adf8db69ed91f8c15fe3cf37df9dc0801dbaeb39))
* **nvim-cmp:** specs ([88e77b0](https://github.com/LazyVim/LazyVim/commit/88e77b0e2439a27d06e95e89839227f1e9446c74))
* **ui:** use `Snacks.util.color` instead of `LazyVim.ui.fg` ([6d774ba](https://github.com/LazyVim/LazyVim/commit/6d774ba8f21f87aaa8bf9dbeb0a84b747541b349))
## [13.9.1](https://github.com/LazyVim/LazyVim/compare/v13.9.0...v13.9.1) (2024-12-12)
### Bug Fixes
* **blink:** set kind to int, not string, if overriding ([#4999](https://github.com/LazyVim/LazyVim/issues/4999)) ([cee60a6](https://github.com/LazyVim/LazyVim/commit/cee60a6d3040181ac9c5b709d79e80e180b34d48))
## [13.9.0](https://github.com/LazyVim/LazyVim/compare/v13.8.0...v13.9.0) (2024-12-11)
### Features
* **luasnip:** add default user snippet location ([#4987](https://github.com/LazyVim/LazyVim/issues/4987)) ([8c79ab6](https://github.com/LazyVim/LazyVim/commit/8c79ab601af19b5370d560aa619567371ac70d86))
* **vscode:** add vscode-specific keymaps and sync undo/redo with vscode ([#4983](https://github.com/LazyVim/LazyVim/issues/4983)) ([9ad1c49](https://github.com/LazyVim/LazyVim/commit/9ad1c49b67a5c4330e366cde41ab11b156de03f2))
### Bug Fixes
* **autocmds:** remove snacks_win from close_with_q, since they have their own keymaps ([99c361f](https://github.com/LazyVim/LazyVim/commit/99c361f708924ddc63599115580bda537cc7f119))
* **blink:** config breaking changes. Fixes [#4990](https://github.com/LazyVim/LazyVim/issues/4990) ([439340b](https://github.com/LazyVim/LazyVim/commit/439340bd8a970aa23d513aea96c93e84b3af42dc))
## [13.8.0](https://github.com/LazyVim/LazyVim/compare/v13.7.0...v13.8.0) (2024-12-07)
### Features
* **git:** added toggles for gitsigns.nvim and mini.diff ([2ebba15](https://github.com/LazyVim/LazyVim/commit/2ebba15e1274f5437a418ddacfe9dbf342fd8a18))
### Bug Fixes
* **dot:** kitty ft with bash treesitter highlights ([7ef2dfd](https://github.com/LazyVim/LazyVim/commit/7ef2dfd3ba9a3dffaa8c57c1bb5e130b9aa74217))
* **keymaps:** toggle name ([b2f7505](https://github.com/LazyVim/LazyVim/commit/b2f750558a3737879f8151e741e7a3988886e37f))
* **mini.diff:** toggle ([3f4b1ff](https://github.com/LazyVim/LazyVim/commit/3f4b1ff00364d089e19f4b3c738fd5298243fadb))
* **rust:** only use mason.nvim if it is present ([#4963](https://github.com/LazyVim/LazyVim/issues/4963)) ([5ddad99](https://github.com/LazyVim/LazyVim/commit/5ddad99bac203e87e6f78f3ab7567a49b0d1d8a6))
## [13.7.0](https://github.com/LazyVim/LazyVim/compare/v13.6.0...v13.7.0) (2024-12-05)
### Features
* **blink:** enabled treesitter highlighting ([0a9447c](https://github.com/LazyVim/LazyVim/commit/0a9447c1b1776c2d8d7b7d495538ddfab7c6cd08))
* **extras.ai:** blink.cmp integration and kind overrides for menu drawing ([#4942](https://github.com/LazyVim/LazyVim/issues/4942)) ([f841ecf](https://github.com/LazyVim/LazyVim/commit/f841ecf6bdde98a0983e44171b1ad8513e159e29))
* **rust:** add bacon-ls and improve debugging ([#3212](https://github.com/LazyVim/LazyVim/issues/3212)) ([ea794ff](https://github.com/LazyVim/LazyVim/commit/ea794ffd94adeb2b1d2870ed97dbd3f000d911b3))
* **snacks:** silence copy url keymap ([#4939](https://github.com/LazyVim/LazyVim/issues/4939)) ([03e203b](https://github.com/LazyVim/LazyVim/commit/03e203bfbe1e5de38cfc0082e5d1b720cab83c0e))
* **toggle:** added leader-A to toggle tabline. Closes [#4951](https://github.com/LazyVim/LazyVim/issues/4951) ([8232651](https://github.com/LazyVim/LazyVim/commit/8232651c4a4a80da34f8b6c1742b04144ae4b959))
### Bug Fixes
* **blink:** update config for latest changes ([#4953](https://github.com/LazyVim/LazyVim/issues/4953)) ([090ca75](https://github.com/LazyVim/LazyVim/commit/090ca75d3b326280a67e727ef77e15920a90e3c9))
* **copilot:** CopilotChat.nvim has moved to main ([#4931](https://github.com/LazyVim/LazyVim/issues/4931)) ([0d6026a](https://github.com/LazyVim/LazyVim/commit/0d6026a3e8a255cf825ad293de101bc1e1a667eb))
* **extras.treesitter-context:** change event back to `LazyFile` ([#4940](https://github.com/LazyVim/LazyVim/issues/4940)) ([83017ff](https://github.com/LazyVim/LazyVim/commit/83017ff28afa8b8ddf9254564d8b4a9c96ec3f7d))
* **supermaven:** blink.cmp integration ([#4941](https://github.com/LazyVim/LazyVim/issues/4941)) ([d714711](https://github.com/LazyVim/LazyVim/commit/d71471151b8906155e048ea3d3fe2fa7d651990e))
* **tex:** specify filetype for &lt;localleader&gt;l ([#4905](https://github.com/LazyVim/LazyVim/issues/4905)) ([12e3752](https://github.com/LazyVim/LazyVim/commit/12e37529e718b926e7513d0397e32771aeb6e049))
* **ui:** actually disable mini-indentscope on snacks_dashboard ([#4947](https://github.com/LazyVim/LazyVim/issues/4947)) ([bfe29fb](https://github.com/LazyVim/LazyVim/commit/bfe29fb01330d2bfdfe14582133907217f4b8192))
* **ui:** disable mini.indentscope on `ft=snacks_dashboard` ([#4928](https://github.com/LazyVim/LazyVim/issues/4928)) ([4bf3a39](https://github.com/LazyVim/LazyVim/commit/4bf3a392234f4c4421af644683d95d8aab945382))
* **ui:** properly clear maximize state on exit. See [#4934](https://github.com/LazyVim/LazyVim/issues/4934) ([9ec253b](https://github.com/LazyVim/LazyVim/commit/9ec253b9b6bf9673f610035d741a345d6be7a44f))
## [13.6.0](https://github.com/LazyVim/LazyVim/compare/v13.5.3...v13.6.0) (2024-12-01)
### Features
* **colorscheme:** enable catppuccin snacks integration by default ([#4882](https://github.com/LazyVim/LazyVim/issues/4882)) ([5659786](https://github.com/LazyVim/LazyVim/commit/5659786893ead10782e2b603c0754d83a0ae78d6))
* **extras:** added extra for `smear-cursor.nvim` ([40dba86](https://github.com/LazyVim/LazyVim/commit/40dba869254309865fcdabbc6d8c6b8e187c2444))
* **lang:** add maxInlayHintLength for vtsls to resolve inlay hint to… ([#4902](https://github.com/LazyVim/LazyVim/issues/4902)) ([1847e3f](https://github.com/LazyVim/LazyVim/commit/1847e3fb25cb29a9bc1c662cabe6984509733595))
* **smear-cursor:** enable `cursor_color = "none"`, to show trail using color of target text fg color ([275c786](https://github.com/LazyVim/LazyVim/commit/275c78665e0534dfb62de34fc1a47e2f0f87acdb))
* **snacks:** add keymap to copy url from gitbrowse ([#4870](https://github.com/LazyVim/LazyVim/issues/4870)) ([cdf3f1f](https://github.com/LazyVim/LazyVim/commit/cdf3f1f2bdc4e57de506a9d7c55fa7e0131be692))
* **snacks:** added leader-. to toggle a scratch buffer. Uses `count` for new scratch buffers ([6d42f10](https://github.com/LazyVim/LazyVim/commit/6d42f1084d14025d67accbbcbbe9686de505ed96))
* **snacks:** added leader-n to show notification history ([be0cb96](https://github.com/LazyVim/LazyVim/commit/be0cb9622dd47a5f62fbb32ac6f485a33a253119))
* **snacks:** added leader-S to select a previous scratch buffer ([e05379b](https://github.com/LazyVim/LazyVim/commit/e05379babc99b43e6c97743ba4800449c9c78f60))
### Bug Fixes
* **blink:** fixed luasnip completions for blink ([7bb954f](https://github.com/LazyVim/LazyVim/commit/7bb954fd1d096dc68217611e696fc02dbca7cf50))
* **blink:** icons ([2263b94](https://github.com/LazyVim/LazyVim/commit/2263b94439a14c133358d1abe4c0d7eef914105e))
* **blink:** make sure blink.compat is setup correctly when used in extras ([91a3c66](https://github.com/LazyVim/LazyVim/commit/91a3c663a7ab6c9ce782e1ff0fd6bc9315f2a670))
* **blink:** updated to config to reflect breaking changes ([efcba66](https://github.com/LazyVim/LazyVim/commit/efcba66a2262b2c956a4203f522026f03af9c903))
* **dial:** add and/or augend to python ft ([#4875](https://github.com/LazyVim/LazyVim/issues/4875)) ([ecfaed3](https://github.com/LazyVim/LazyVim/commit/ecfaed3cc1cbe3013f1201594adde2ea0022c455))
* **java:** give java a default nvim-dap config ([#4261](https://github.com/LazyVim/LazyVim/issues/4261)) ([c9102bc](https://github.com/LazyVim/LazyVim/commit/c9102bc35185284ddce28eb216fd125fa0e0fa8b))
* **java:** minisurround jdtls keybind conflict ([#4886](https://github.com/LazyVim/LazyVim/issues/4886)) ([30fac42](https://github.com/LazyVim/LazyVim/commit/30fac4206a393b05736199873bac87ecdfacd2a0))
* **lazydev:** use luals' bundled luv library ([eb525c6](https://github.com/LazyVim/LazyVim/commit/eb525c680d0423f5addb12e10f87ce5b81fc0d9e))
* **lsp:** don't leak keymaps from LSP server configs ([#4849](https://github.com/LazyVim/LazyVim/issues/4849)) ([85e4118](https://github.com/LazyVim/LazyVim/commit/85e41180654f6cd6c7975442b3a4877b4b4fd475))
* **mini.animate:** disable when in Neovide ([66459f9](https://github.com/LazyVim/LazyVim/commit/66459f9361316fc4f723c8ac12f4fdc44f195b12))
* **octo:** upstream changed mappings to `localleader` ([#4850](https://github.com/LazyVim/LazyVim/issues/4850)) ([c979225](https://github.com/LazyVim/LazyVim/commit/c979225c372f04c3ba4b2f74c3b9c102ddd5f364))
* **snacks:** remove lazygit requirement for git browse/blame keymaps ([#4869](https://github.com/LazyVim/LazyVim/issues/4869)) ([2c37492](https://github.com/LazyVim/LazyVim/commit/2c37492461bf6af09a3e940f8b3ea0a123608bfd))
* **sql:** fix autocomplete, it was using the wrong plugin name on the `LazyVim.has` check ([#4900](https://github.com/LazyVim/LazyVim/issues/4900)) ([ed10d3c](https://github.com/LazyVim/LazyVim/commit/ed10d3cf19dfb99d38bda0e09be3296571113670))
* **sql:** only use cmp if it is available ([#4891](https://github.com/LazyVim/LazyVim/issues/4891)) ([9eccb5d](https://github.com/LazyVim/LazyVim/commit/9eccb5d2defef4c1fe63719528b20bb210e1ef0c))
* **ui:** disable indent-blankline on `ft=snacks_dashboard` ([#4895](https://github.com/LazyVim/LazyVim/issues/4895)) ([c022759](https://github.com/LazyVim/LazyVim/commit/c02275919e8238f2a333bedb4eca8d138b4ea567))
## [13.5.3](https://github.com/LazyVim/LazyVim/compare/v13.5.2...v13.5.3) (2024-11-22)
### Bug Fixes
* **copilot:** remove tmp nightly fix ([30f556d](https://github.com/LazyVim/LazyVim/commit/30f556d17aaf7ac74f0553faebed2cf298b65820))
* **dial:** make sure defaults are part of every group. Fixes [#4868](https://github.com/LazyVim/LazyVim/issues/4868) ([2108028](https://github.com/LazyVim/LazyVim/commit/2108028cde19184bf8ea1a00065b5a099b1928e1))
## [13.5.2](https://github.com/LazyVim/LazyVim/compare/v13.5.1...v13.5.2) (2024-11-19)

View file

@ -29,3 +29,21 @@
- Every language extra requires a `recommended` section as part of the extra.
Check lspconfig server configurations for the proper filetypes and root directories.
Refer to other extras for creating the `recommended` section.
### Language-Specific Keymaps
- Use `<localleader>` for language-specific keymaps (follows Vim/Neovim convention for filetype-specific mappings).
- For LSP servers, define keymaps in the server's `keys` field, not in `on_attach`:
```lua
servers = {
rust_analyzer = {
keys = {
{ "<localleader>e", function() vim.cmd.RustLsp("expandMacro") end, desc = "Expand Macro" },
}
}
}
```
- LazyVim's LSP system will automatically resolve and apply these keymaps (see `lua/lazyvim/plugins/lsp/keymaps.lua`).
- Don't override standard LSP keymaps (like `K` for hover, `gd` for definition) unless absolutely necessary.
- Use standard `<leader>c*` keymaps where they make sense (e.g., `<leader>co` for organize imports).
- Refer to the R and Haskell extras for examples of proper `<localleader>` usage.

88
NEWS.md
View file

@ -1,5 +1,78 @@
# What's new?
## 15.x
**Neovim** `>= 0.11.2` includes a lot of changes to the underlying LSP implementation.
Going forward, **LazyVim** requires **Neovim** `>= 0.11.2`, and drops support for older versions.
### Changes
- removed compatibility code for Neovim `< 0.11.2`
- configure **LSP** with the native `vim.lsp.config`
- migrated **mason.nvim** and **mason-lspconfig.nvim** to `v2.x`
- migrated to [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter/tree/main) **main** branch
- with the new version, the `tree-sitter` cli is **required** to install parsers
- best to run `:checkhealth nvim-treesitter` after updating
- replace `nvim-treesitter` incremental selection with `flash.nvim`, since it is no longer supported
- enabled [blink.cmp](https://github.com/saghen/blink.cmp) **cmdline** completions
- use **LSP** based folding when available (disable with `nvim-lspconfig.folds.enabled = false`)
## 14.x
Big new release with a lot of changes and improvements!
Two new plugins have been added, and a lot of plugins have been replaced.
With these changes, default **LazyVim** is now just `34` plugins.
### Added Plugins
- [fzf-lua](https://github.com/ibhagwan/fzf-lua) as a replacement for [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)
- to use **telescope.nvim** instead, enable the `editor.telescope` extra
- [blink.cmp](https://github.com/saghen/blink.cmp) as a replacement for [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
- to use **nvim-cmp** instead, enable the `coding.nvim-cmp` extra
### Removed Plugins
- [dressing.nvim](https://github.com/stevearc/dressing.nvim) (replaced with [fzf-lua](https://github.com/ibhagwan/fzf-lua) and [snacks.input](https://github.com/folke/snacks.nvim))
- [telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim) (replaced with [fzf-lua](https://github.com/ibhagwan/fzf-lua))
- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) (replaced with [fzf-lua](https://github.com/ibhagwan/fzf-lua))
- [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) (replaced with [snacks.indent](https://github.com/Folke/snacks.nvim))
- to use **indent-blankline.nvim** instead, enable the `indent-blankline` extra
- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) (replaced with [blink](https://github.com/Saghen/blink.cmp))
- [nvim-snippets](https://github.com/hrsh7th/vim-vsnip) (replaced with [blink](https://github.com/Saghen/blink.cmp))
- [cmp-buffer](https://github.com/hrsh7th/cmp-buffer) (replaced with [blink](https://github.com/Saghen/blink.cmp))
- [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) (replaced with [blink](https://github.com/Saghen/blink.cmp))
- [cmp-path](https://github.com/hrsh7th/cmp-path) (replaced with [blink](https://github.com/Saghen/blink.cmp))
### Changes
- added [`snacks.input`](https://github.com/folke/snacks.nvim/blob/main/docs/input.md)
- added [`snacks.scroll`](https://github.com/folke/snacks.nvim/blob/main/docs/scroll.md)
- added [`snacks.indent`](https://github.com/folke/snacks.nvim/blob/main/docs/indent.md)
- added [`snacks.scope`](https://github.com/folke/snacks.nvim/blob/main/docs/scope.md)
- added [`snacks.dim`](https://github.com/folke/snacks.nvim/blob/main/docs/dim.md)
- added [`snacks.zen`](https://github.com/folke/snacks.nvim/blob/main/docs/zen.md)
- changed default [`which-key`](https://github.com/folke/which-key.nvim) preset to `helix`
- drop `LazyVim.ui.fg` in favor of [`Snacks.util.color`](https://github.com/folke/snacks.nvim/blob/main/docs/util.md)
To disable **all animations**, add the following to your `options.lua`:
```lua
vim.g.snacks_animate = false
```
### Keymaps
- `<leader>uz` to toggle [zen mode](https://github.com/folke/snacks.nvim/blob/main/docs/zen.md)
- `<leader>uZ` & `<leader>wm` to toggle [zoom mode](https://github.com/folke/snacks.nvim/blob/main/docs/zen.md)
- `<leader>uD` to toggle [dimming](https://github.com/folke/snacks.nvim/blob/main/docs/dim.md)
- `<leader>ua` to toggle [animations](https://github.com/folke/snacks.nvim/blob/main/docs/animate.md)
- `<leader>uS` to toggle [scroll](https://github.com/folke/snacks.nvim/blob/main/docs/scroll.md)
- `<leader>ug` to toggle [indent guides](https://github.com/folke/snacks.nvim/blob/main/docs/indent.md)
- [`snacks.profiler`](https://github.com/folke/snacks.nvim/blob/main/docs/profiler.md) keymaps under `<leader>dp`
---
## 13.x
- **LazyVim** now uses `Snacks.dashboard` as the default dashboard.
@ -21,6 +94,8 @@
- `Snacks.terminal` is similar to `lazyterm`, but has more features
and creates bottom splits by default (similar to the `edgy` integrating)
---
## 12.x
- **Markdown Extra**: [headlines.nvim](https://github.com/lukas-reineke/headlines.nvim) has been removed in favor of [markdown.nvim](https://github.com/MeanderingProgrammer/markdown.nvim)
@ -48,10 +123,11 @@
- moved `neoconf.nvim` to extras. Project specific LSP settings
can be done with a `.lazy.lua` file instead.
---
## 11.x
- **Keymaps:**
- `<leader>gB` to open the current repo in the browser
- `gco` and `gcO` to add a comment below or above the current line
- `<leader>wm` to toggle window maximize
@ -64,7 +140,6 @@
It's a great plugin that enhances the native text objects.
- `:LazyExtras` now has multiple new sections:
- **Enabled**: extras that are currently enabled
- **Recommended Languages**: language extras recommended for the current buffer / directory
- **Recommended Plugins**: extras that are recommended for most users
@ -102,11 +177,12 @@ Additionally, some core plugins have been moved to extras.
```
- plugins moved to extras:
- `mini.surround`
- `mini.indentscope` scopes are now also highlighted with `indent-blankline`
- `nvim-treesitter-context`
---
## 10.x
- added new extra for [mini.diff](https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-diff.md)
@ -118,7 +194,6 @@ Additionally, some core plugins have been moved to extras.
You can find the updated docs [here](https://github.com/folke/trouble.nvim/tree/dev)
- The **lazygit** integration now configures:
- the theme based on the colorscheme
- nerd font icons (v3)
- editor preset is set to `nvim-remote` for better interop with Neovim
@ -159,9 +234,7 @@ Additionally, some core plugins have been moved to extras.
- New `:LazyExtras` command for managing **LazyVim** extras
- Improved **formatting**:
- **LazyVim** can now work with multiple formatters. Types:
- **primary**: only one primary formatter can be active at a time.
_(conform, none-ls, LSP)_
- **secondary**: multiple secondary formatters can be active _(eslint, ...)_
@ -180,18 +253,15 @@ Additionally, some core plugins have been moved to extras.
```
- `none-ls.nvim` is no longer installed by default
- `conform.nvim` is now the default formatter
- `nvim-lint` is now the default linter
- If you want to keep using `none-ls.nvim`,
you can enable the **lsp.none-ls** extra
- `dashboard.nvim` is the new default dashboard plugin
- If you want to keep using `alpha.nvim`, you can enable the **ui.alpha** extra
- Improved **root detection**:
- New `:LazyRoot` command that shows info about the root dir detection
- Configurable with `vim.g.root_spec`

View file

@ -36,9 +36,9 @@
</a>
</div>
LazyVim 是由 [💤 lazy.nvim](https://github.com/folke/lazy.nvim) 驱动的一套 Neovim 配置,可以轻松自定义和扩展您的配置
不必在从头开始或使用预制发行版之间做选择,
LazyVim 提供了两全其美的方式 - 根据需要调整配置的灵活性,以及默认预配置的便利性
LazyVim 是一个基于 [💤 lazy.nvim](https://github.com/folke/lazy.nvim) 的 Neovim 配置方案,让定制和扩展变得简单直观
您不必再在“从零配置”和“使用预制发行版”之间做选择LazyVim
提供了一个两全其美的方式——既可以享受默认配置带来的便利,又能根据个人需求来灵活调整各项设置
![image](https://user-images.githubusercontent.com/292349/211285846-0b7bb3bf-0462-4029-b64c-4ee1d037fc1c.png)
@ -46,28 +46,28 @@ LazyVim 提供了两全其美的方式 - 根据需要调整配置的灵活性,
## ✨ 特性
- 🔥 将你的 Neovim 变成一个成熟的 IDE
- 💤 使用 [lazy.nvim](https://github.com/folke/lazy.nvim) 轻松自定义和扩展您的
- 🔥 将你的 Neovim 打造为一个功能完备的 IDE
- 💤 使用 [lazy.nvim](https://github.com/folke/lazy.nvim) 轻松自定义和扩展您的
- 🚀 快如闪电
- 🧹 选项、自动命令和键盘映射的合理预设
- 📦 预配置了大量插件,随时可
- 📦 内置大量精心优化的预配置插件,开箱即
## ⚡️ 要求
## ⚡️ 环境要求
- Neovim >= **0.9.0** (需要用 **LuaJIT** 构建)
- Neovim >= **0.11.2** (需要用 **LuaJIT** 构建)
- Git >= **2.19.0** (用于部分克隆支持)
- 一个 [Nerd Font](https://www.nerdfonts.com/) 字体 **_(可选)_**
- 一个用于 `nvim-treesitter`**C** 编译器。看 [这里](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
## 🚀 入门
## 🚀 开始使用
您可以在 [此处](https://github.com/LazyVim/starter) 找到 **LazyVim**入门模板
您可以在 [此处](https://github.com/LazyVim/starter) 找到 **LazyVim**初始模板
<details><summary>在 Docker 中尝</summary>
<details><summary>在 Docker 中尝</summary>
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
@ -91,7 +91,7 @@ docker run -w /root -it --rm alpine:edge sh -uelic '
git clone https://github.com/LazyVim/starter ~/.config/nvim
```
- 删除 `.git` 文件夹,以便稍后将其添加到您自己的存储
- 删除 `.git` 文件夹,以便稍后将其添加到您自己的
```sh
rm -rf ~/.config/nvim/.git
@ -109,22 +109,23 @@ docker run -w /root -it --rm alpine:edge sh -uelic '
---
[@elijahmanor](https://github.com/elijahmanor) 制作了一段很棒的视频,其中包含入门演练
[@elijahmanor](https://github.com/elijahmanor) 制作了一个很棒的视频,可以带领你快速入门
[![Watch the video](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[![查看这个视频](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[@dusty-phillips](https://github.com/dusty-phillips) 正在编写一本名为
[LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes)
的书,该书可在线免费获得
[@dusty-phillips](https://github.com/dusty-phillips) 为 LazyVim 编写了一本全面的书籍
[LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes)
,可在线上免费阅读
## 📂 文件结构
config 下的文件会在适当的时候自动加载,所以你不需要手动引入这些文件。
**LazyVim** 带有一组默认配置文件,这些文件将在您的配置**之前**加载。
看[这里](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
config 下的文件会在适当的时候被自动加载,所以你不需要手动引入这些文件。
您可以在 `lua/plugins/` 下添加自定义插件配置(specs)。
[lazy.nvim](https://github.com/folke/lazy.nvim) 会自动加载这些文件。
**LazyVim** 带有一组默认配置文件,这些文件会在您的配置**之前**被加载。
请看[这里](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
您可以在 `lua/plugins/` 下添加自定义插件配置。
[lazy.nvim](https://github.com/folke/lazy.nvim) 会自动加载此目录中的全部文件。
<pre>
~/.config/nvim
@ -141,6 +142,6 @@ config 下的文件会在适当的时候自动加载,所以你不需要手动
└── init.lua
</pre>
## ⚙️ Configuration
## ⚙️ 设置
参考[文档](https://lazyvim.github.io/)
请参阅[官方文档](https://lazyvim.github.io/)

View file

@ -56,7 +56,7 @@ und die Einfachheit von einem vorgefertigten Setup.
## ⚡️ Vorraussetzungen
- Neovim >= **0.8.0** (gebraucht um mit **LuaJIT** zu bauen)
- Neovim >= **0.11.2** (gebraucht um mit **LuaJIT** zu bauen)
- Git >= **2.19.0** (um Teil-Klone zu unterstützen)
- eine [Nerd Font](https://www.nerdfonts.com/) **_(optional)_**
@ -68,7 +68,7 @@ Sie können eine Startvorlage für **LazyVim** [hier](https://github.com/LazyVim
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim

145
README-ES.md Normal file
View file

@ -0,0 +1,145 @@
<div align="center">
<img src="https://user-images.githubusercontent.com/292349/213446185-2db63fd5-8c84-459c-9f04-e286382d6e80.png">
</div>
<hr>
<h4 align="center">
<a href="https://lazyvim.github.io/installation">Instalar</a>
·
<a href="https://lazyvim.github.io/configuration">Configurar</a>
·
<a href="https://lazyvim.github.io">Documentación</a>
</h4>
<div align="center"><p>
<a href="https://github.com/LazyVim/LazyVim/releases/latest">
<img alt="Última versión" 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="Último 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="Licencia" 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="Estrellas" 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="Problemas" 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="Tamaño del repositorio" 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="seguir en Twitter" src="https://img.shields.io/twitter/follow/folke?style=for-the-badge&logo=twitter&color=8aadf3&logoColor=D9E0EE&labelColor=302D41" />
</a>
</div>
LazyVim es una configuración de Neovim impulsada por [💤 lazy.nvim](https://github.com/folke/lazy.nvim) que facilita la personalización y extensión de tu configuración. En lugar de tener que elegir entre comenzar desde cero o usar una distribución predefinida, LazyVim ofrece lo mejor de ambos mundos: la flexibilidad para ajustar tu configuración según sea necesario, junto con la conveniencia de una configuración preconfigurada.
![image](https://user-images.githubusercontent.com/292349/211285846-0b7bb3bf-0462-4029-b64c-4ee1d037fc1c.png)
![image](https://user-images.githubusercontent.com/292349/213447056-92290767-ea16-430c-8727-ce994c93e9cc.png)
## ✨ Características
- 🔥 Convierte tu Neovim en un IDE completo
- 💤 Personaliza y extiende fácilmente tu configuración con [lazy.nvim](https://github.com/folke/lazy.nvim)
- 🚀 Extremadamente rápido
- 🧹 Ajustes predeterminados sensatos para opciones, autocmds y combinaciones de teclas
- 📦 Viene con una gran cantidad de plugins preconfigurados y listos para usar
## ⚡️ Requisitos
- Neovim >= **0.11.2** (debe ser compilado con **LuaJIT**)
- Git >= **2.19.0** (para soporte de clones parciales)
- una [Fuente Nerd](https://www.nerdfonts.com/) **_(opcional)_**
- un compilador **C** para `nvim-treesitter`. Consulta [aquí](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
## 🚀 Empezando
Puedes encontrar una plantilla de inicio para **LazyVim** [aquí](https://github.com/LazyVim/starter)
<details><summary>Probarlo con Docker</summary>
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
'
```
</details>
<details><summary>Instalar el <a href="https://github.com/LazyVim/starter">LazyVim Starter</a></summary>
- Haz una copia de seguridad de tus archivos actuales de Neovim:
```sh
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
```
- Clona el starter
```sh
git clone https://github.com/LazyVim/starter ~/.config/nvim
```
- Elimina la carpeta `.git`, para que puedas agregarla a tu propio repositorio más tarde
```sh
rm -rf ~/.config/nvim/.git
```
- ¡Inicia Neovim!
```sh
nvim
```
Consulta los comentarios en los archivos sobre cómo personalizar **LazyVim**.
</details>
---
Hay un excelente video creado por [@elijahmanor](https://github.com/elijahmanor) con una guía para empezar.
[![Ver el video](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[@dusty-phillips](https://github.com/dusty-phillips) escribió un libro completo llamado
[LazyVim para Desarrolladores Ambiciosos](https://lazyvim-ambitious-devs.phillips.codes)
disponible de forma gratuita en línea.
## 📂 Estructura de Archivos
Los archivos dentro de la configuración se cargarán automáticamente en el momento adecuado,
por lo que no necesitas requerir esos archivos manualmente.
**LazyVim** viene con un conjunto de archivos de configuración predeterminados que se cargarán
**_antes_** que los tuyos. Consulta [aquí](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
Puedes agregar tus especificaciones de plugins personalizadas en `lua/plugins/`. Todos los archivos allí
serán cargados automáticamente por [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>
## ⚙️ Configuración
Consulta la [documentación](https://lazyvim.github.io)

151
README-FR.md Normal file
View file

@ -0,0 +1,151 @@
<div align="center">
<img src="https://user-images.githubusercontent.com/292349/213446185-2db63fd5-8c84-459c-9f04-e286382d6e80.png">
</div>
<hr>
<h4 align="center">
<a href="https://lazyvim.github.io/installation">Install</a>
·
<a href="https://lazyvim.github.io/configuration">Configure</a>
·
<a href="https://lazyvim.github.io">Docs</a>
</h4>
<div align="center"><p>
<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 est une configuration Neovim basée sur [💤 lazy.nvim](https://github.com/folke/lazy.nvim)
facilitant la personnalisation et l'ajout d'extensions.
Plutôt que d'imposer le choix entre partir de rien et utiliser
une distribution toute faite, LazyVim offre le meilleur des deux mondes
: la flexibilité d'une config ajustable selon vos besoins, et le confort
d'une configuration pensée et peaufinée à l'avance.
![image](https://user-images.githubusercontent.com/292349/211285846-0b7bb3bf-0462-4029-b64c-4ee1d037fc1c.png)
![image](https://user-images.githubusercontent.com/292349/213447056-92290767-ea16-430c-8727-ce994c93e9cc.png)
## ✨ Fonctionnalités
- 🔥 Transforme Neovim en un environnement de développement complet
- 💤 Customise et étends ta config sans effort grâce à [lazy.nvim](https://github.com/folke/lazy.nvim)
- 🚀 Rapide comme l'éclair !
- 🧹 Configuration par défaut propre et intuitive pour les options, les autocmds, et les keymaps
- 📦 Livré avec une variété de plugins pre-configurés et prêts à être utilisés
## ⚡️ Pré-requis
- Neovim >= **0.9.0** (doit être compilé avec **LuaJIT**)
- Git >= **2.19.0** (pour supporter le clonage partiel)
- Un [Nerd Font](https://www.nerdfonts.com/) **_(optionel)_**
- Un compileur **C** pour `nvim-treesitter`. Voir [ici](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
## 🚀 Comment commencer
Un template pour **LazyVim** peut être trouvé [ici](https://github.com/LazyVim/starter)
<details><summary>Essayer avec Docker</summary>
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
'
```
</details>
<details><summary>Installer le <a href="https://github.com/LazyVim/starter">LazyVim Starter</a></summary>
- Sauvegardez votre configuration Neovim :
```sh
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
```
- Clonez le starter
```sh
git clone https://github.com/LazyVim/starter ~/.config/nvim
```
- Supprimez le dossier `.git`, afin que vous puissiez l'ajouter à votre repo plus tard
```sh
rm -rf ~/.config/nvim/.git
```
- Lancez Neovim !
```sh
nvim
```
Consultez les commentaires dans les fichiers pour savoir comment personnaliser **LazyVim**.
</details>
---
Il y a une superbe vidéo (en anglais) de [@elijahmanor](https://github.com/elijahmanor)
qui vous guide pas-à-pas pour commencer.
[![Watch the video](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[@dusty-phillips](https://github.com/dusty-phillips) a écrit un livre exhaustif
sur LazyVim, nommé [LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes)
disponible gratuitement en ligne.
## 📂 Structure de fichier
Les fichiers dans le dossier config vont être chargés automatiquement en temps voulu,
donc pas besoin de `require` ces fichiers manuellement.
**LazyVim** vient avec un ensemble de fichiers de configuration par défaut qui seront chargés
**_avant_** les vôtres. Voir [ici](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
Vous pouvez ajouter vos configurations de plugins sous `lua/plugins/`.
Ici, tous les fichiers seront automatiquement chargés par [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
Veuillez vous référer à la [documentation](https://lazyvim.github.io)

150
README-IT.md Normal file
View file

@ -0,0 +1,150 @@
<div align="center">
<img src="https://user-images.githubusercontent.com/292349/213446185-2db63fd5-8c84-459c-9f04-e286382d6e80.png">
</div>
<hr>
<h4 align="center">
<a href="https://lazyvim.github.io/installation">Installazione</a>
·
<a href="https://lazyvim.github.io/configuration">Configurazione</a>
·
<a href="https://lazyvim.github.io">Documentazione</a>
</h4>
<div align="center"><p>
<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 è una configurazione di Neovim basata su [💤 lazy.nvim](https://github.com/folke/lazy.nvim)
che rende semplice personalizzare ed estendere la tua configurazione.
Piuttosto che dover scegliere tra partire da zero o utilizzare una
distribuzione preconfigurata, LazyVim offre il meglio di entrambi i mondi:
la flessibilità di modificare la tua configurazione come necessario,
insieme alla comodità di un setup preconfigurato.
![image](https://user-images.githubusercontent.com/292349/211285846-0b7bb3bf-0462-4029-b64c-4ee1d037fc1c.png)
![image](https://user-images.githubusercontent.com/292349/213447056-92290767-ea16-430c-8727-ce994c93e9cc.png)
## ✨ Caratteristiche
- 🔥 Trasforma il tuo Neovim in un IDE completo
- 💤 Personalizza ed estendi facilmente la tua configurazione con [lazy.nvim](https://github.com/folke/lazy.nvim)
- 🚀 Estremamente veloce
- 🧹 Impostazioni di default ottimizzate per opzioni, AutoCmd e scorciatoie da tastiera
- 📦 Distribuito con una vasta gamma di plugin preconfigurati e pronti all'uso
## ⚡️ Requisiti
- Neovim >= **0.11.2** (deve essere compilato con **LuaJIT**)
- Git >= **2.19.0** (per supportare cloni parziali)
- a [Nerd Font](https://www.nerdfonts.com/) **_(opzionale)_**
- un compilatore **C** per `nvim-treesitter`. Leggi [qui](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
## 🚀 Per iniziare
Puoi trovare un template per **LazyVim** [qui](https://github.com/LazyVim/starter)
<details><summary>Provalo con Docker</summary>
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
'
```
</details>
<details><summary>Installa il <a href="https://github.com/LazyVim/starter">LazyVim Starter</a></summary>
- Fai un backup dei tuoi file di Neovim attuali:
```sh
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
```
- Clona lo Starter
```sh
git clone https://github.com/LazyVim/starter ~/.config/nvim
```
- Rimuovi la cartella `.git`, così puoi aggiungerla al tuo repo in seguito
```sh
rm -rf ~/.config/nvim/.git
```
- Avvia Neovim!
```sh
nvim
```
Consulta i commenti nei file su come personalizzare **LazyVim**.
</details>
---
Qui un video creato da [@elijahmanor](https://github.com/elijahmanor) con una guida per iniziare.
[![Guarda il video](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[@dusty-phillips](https://github.com/dusty-phillips) ha scritto un libro comprensivo chiamato
[LazyVim per Sviluppatori Ambiziosi](https://lazyvim-ambitious-devs.phillips.codes)
che è disponibile gratuitamente online.
## 📂 Struttura dei file
I file presenti nella configurazione verranno caricati automaticamente al momento
più opportuno, quindi non è necessario richiamare manualmente quei file.
**LazyVim** ha un set di configurazioni predefinite che verranno caricate
prima delle tue. Vedi [qui](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
Puoi aggiungere i tuoi plugin personalizzati sotto `lua/plugins/`. Tutti
i file presenti verranno automaticamente caricati da [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>
## ⚙️ Configurazione
Consulta la [documentazione](https://lazyvim.github.io)

View file

@ -54,7 +54,7 @@ LazyVimは、ゼロから始めるか、あらかじめ作成されたディス
## ⚡️ 必要要件
- Neovim >= **0.9.0** (**LuaJIT**でビルドされている必要があります)
- Neovim >= **0.11.2** (**LuaJIT**でビルドされている必要があります)
- Git >= **2.19.0** (部分的なcloneサポートのため)
- [Nerd Font](https://www.nerdfonts.com/) **_(任意)_**
- `nvim-treesitter`用の**C**コンパイラ。詳細は[こちら](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
@ -67,7 +67,7 @@ LazyVimは、ゼロから始めるか、あらかじめ作成されたディス
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim

View file

@ -52,7 +52,7 @@ LazyVim은 [💤 lazy.nvim](https://github.com/folke/lazy.nvim)를 기반으로
## ⚡️ 요구사항
- **0.9.0**이상의 Neovim (LuaJIT과 함께 개발이 되어져있어야함니다.)
- **0.11.2**이상의 Neovim (LuaJIT과 함께 개발이 되어져있어야함니다.)
- **2.19.0**이상의 Git (이것은 부분적인 클론기능을 지원하기 위함입니다.)
- [Nerd Font](https://www.nerdfonts.com/) **_(옵션)_**
- `nvim-treesitter`를 위한 **C** 컴파일러. [이 문서](https://github.com/nvim-treesitter/nvim-treesitter#requirements)를 확인해주시기바랍니다.
@ -65,7 +65,7 @@ LazyVim은 [💤 lazy.nvim](https://github.com/folke/lazy.nvim)를 기반으로
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim

147
README-PL.md Normal file
View file

@ -0,0 +1,147 @@
<div align="center">
<img src="https://user-images.githubusercontent.com/292349/213446185-2db63fd5-8c84-459c-9f04-e286382d6e80.png">
</div>
<hr>
<h4 align="center">
<a href="https://lazyvim.github.io/installation">Install</a>
·
<a href="https://lazyvim.github.io/configuration">Configure</a>
·
<a href="https://lazyvim.github.io">Docs</a>
</h4>
<div align="center"><p>
<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 to konfiguracja Neovim oparta na [💤 lazy.nvim](https://github.com/folke/lazy.nvim)
która ułatwia dostosowywanie i rozszerzanie konfiguracji.
Zamiast wybierać między rozpoczynaniem od zera a używaniem gotowej dystrybucji, LazyVim oferuje najlepsze z obu światów elastyczność pozwalającą na dostosowanie konfiguracji do własnych potrzeb oraz wygodę wstępnie skonfigurowanego środowiska.
![image](https://user-images.githubusercontent.com/292349/211285846-0b7bb3bf-0462-4029-b64c-4ee1d037fc1c.png)
![image](https://user-images.githubusercontent.com/292349/213447056-92290767-ea16-430c-8727-ce994c93e9cc.png)
## ✨ Funkcje
- 🔥 Przekształć Neovim w pełnoprawne IDE
- 💤 Łatwo dostosowuj i rozszerzaj swoją konfigurację dzięki [lazy.nvim](https://github.com/folke/lazy.nvim)
- 🚀 Niezwykle szybkie działanie
- 🧹 Przemyślane domyślne ustawienia opcji, autocmd i skrótów klawiszowych
- 📦 Zawiera bogaty zestaw wstępnie skonfigurowanych wtyczek gotowych do użycia
## ⚡️ Wymagania
- Neovim >= **0.9.0** (musi być skompilowany z **LuaJIT**)
- Git >= **2.19.0** (dla obsługi częściowego klonowania repozytoriów)
- [Nerd Font](https://www.nerdfonts.com/) **_(opcjonalnie)_**
- Kompilator **C** wymagany dla `nvim-treesitter`. Szczegóły [tutaj](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
## 🚀 Pierwsze kroki
Szablon startowy dla **LazyVim** znajdziesz [tutaj](https://github.com/LazyVim/starter)
<details><summary>Wypróbuj z Dockerem</summary>
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
'
```
</details>
<details><summary>Zainstaluj <a href="https://github.com/LazyVim/starter">Starter LazyVim</a></summary>
- Wykonaj kopię zapasową swoich obecnych plików Neovim:
```sh
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
```
- Sklonuj repozytorium startowe:
```sh
git clone https://github.com/LazyVim/starter ~/.config/nvim
```
- Usuń folder `.git`, aby później móc dodać własne repozytorium:
```sh
rm -rf ~/.config/nvim/.git
```
- Uruchom Neovim!
```sh
nvim
```
W plikach znajdziesz komentarze, które pomogą Ci dostosować **LazyVim**.
</details>
---
[@elijahmanor](https://github.com/elijahmanor) stworzył świetne wideo z przewodnikiem, jak zacząć.
[![Obejrzyj wideo](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[@dusty-phillips](https://github.com/dusty-phillips) napisał obszerną książkę
[LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes),
która jest dostępna za darmo online.
## 📂 Struktura plików
Pliki w katalogu `config` są automatycznie ładowane w odpowiednim momencie,
więc nie musisz ich ręcznie dołączać.
**LazyVim** zawiera zestaw domyślnych plików konfiguracyjnych,
które zostaną załadowane **_przed_** Twoimi własnymi. Szczegóły znajdziesz [tutaj](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config).
Możesz dodać własne specyfikacje wtyczek w katalogu `lua/plugins/`.
Wszystkie pliki w tym folderze zostaną automatycznie załadowane przez [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>
## ⚙️ Konfiguracja
Zapoznaj się z [dokumentacją](https://lazyvim.github.io).

View file

@ -57,7 +57,7 @@ como necessário, junto com a conveniência de um setup pré-configurado.
## ⚡️ Requesitos
- Neovim >= **0.9.0** (preciso fazer build com **LuaJIT**)
- Neovim >= **0.11.2** (preciso fazer build com **LuaJIT**)
- Git >= **2.19.0** (para suporte parcial de clones)
- uma [Nerd Font](https://www.nerdfonts.com/) **_(opcional)_**
- um compilador de **C** para `nvim-treesitter`. Mais informações [aqui](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
@ -70,7 +70,7 @@ Podes encontrar uma template **LazyVim** starter para começar, [aqui](https://g
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim

View file

@ -56,7 +56,7 @@ to tweak your config as needed, along with the convenience of a pre-configured s
## ⚡️ Requirements
- Neovim >= **0.9.0** (needs to be built with **LuaJIT**)
- Neovim >= **0.11.2** (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)
@ -69,7 +69,7 @@ You can find a starter template for **LazyVim** [here](https://github.com/LazyVi
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
@ -111,10 +111,6 @@ docker run -w /root -it --rm alpine:edge sh -uelic '
---
There's a great video created by [@elijahmanor](https://github.com/elijahmanor) with a walkthrough to get started.
[![Watch the video](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM)
[@dusty-phillips](https://github.com/dusty-phillips) wrote a comprehensive book called
[LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes)
available for free online.

View file

@ -1,4 +1,5 @@
*LazyVim.txt* For Neovim Last change: 2024 November 19
*LazyVim.txt* LazyVim docs
For Neovim Last change: 2026 June 02
==============================================================================
Table of Contents *LazyVim-table-of-contents*
@ -53,7 +54,7 @@ FEATURES *LazyVim-features*
REQUIREMENTS *LazyVim-requirements*
- Neovim >= **0.9.0** (needs to be built with **LuaJIT**)
- Neovim >= **0.11.2** (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>
@ -68,7 +69,7 @@ Try it with Docker ~
>sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit neovim ripgrep alpine-sdk --update
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
@ -78,30 +79,29 @@ Try it with Docker ~
Install the LazyVim Starter ~
- Make a backup of your current Neovim files:
>sh
>sh
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
<
<
- Clone the starter
>sh
>sh
git clone https://github.com/LazyVim/starter ~/.config/nvim
<
<
- Remove the `.git` folder, so you can add it to your own repo later
>sh
>sh
rm -rf ~/.config/nvim/.git
<
<
- Start Neovim!
>sh
>sh
nvim
<
<
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.
<https://www.youtube.com/watch?v=N93cTbtLCIM>
@dusty-phillips <https://github.com/dusty-phillips> wrote a comprehensive book
called LazyVim for Ambitious Developers
<https://lazyvim-ambitious-devs.phillips.codes> available for free online.
@ -127,9 +127,7 @@ Refer to the docs <https://lazyvim.github.io>
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
5. *@dusty-phillips*:
3. *@dusty-phillips*:
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>

View file

@ -18,7 +18,11 @@ vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, {
vim.api.nvim_create_autocmd("TextYankPost", {
group = augroup("highlight_yank"),
callback = function()
(vim.hl or vim.highlight).on_yank()
if vim.fn.has("nvim-0.13") == 1 then
vim.hl.hl_op()
else
(vim.hl or vim.highlight).on_yank()
end
end,
})
@ -56,6 +60,7 @@ vim.api.nvim_create_autocmd("FileType", {
pattern = {
"PlenaryTestPopup",
"checkhealth",
"dap-float",
"dbout",
"gitsigns-blame",
"grug-far",
@ -66,7 +71,6 @@ vim.api.nvim_create_autocmd("FileType", {
"neotest-summary",
"notify",
"qf",
"snacks_win",
"spectre_panel",
"startuptime",
"tsplayground",

View file

@ -3,7 +3,7 @@ _G.LazyVim = require("lazyvim.util")
---@class LazyVimConfig: LazyVimOptions
local M = {}
M.version = "13.5.2" -- x-release-please-version
M.version = "16.0.0" -- x-release-please-version
LazyVim.config = M
---@class LazyVimOptions
@ -34,7 +34,9 @@ local defaults = {
dots = "󰇘",
},
ft = {
octo = "",
octo = "",
gh = "",
["markdown.gh"] = "",
},
dap = {
Stopped = { "󰁕 ", "DiagnosticWarn", "DapStoppedLine" },
@ -85,7 +87,7 @@ local defaults = {
Package = "",
Property = "",
Reference = "",
Snippet = " ",
Snippet = "󱄽 ",
String = "",
Struct = "󰆼 ",
Supermaven = "",
@ -136,16 +138,19 @@ local defaults = {
}
M.json = {
version = 7,
version = 8,
loaded = false,
path = vim.g.lazyvim_json or vim.fn.stdpath("config") .. "/lazyvim.json",
data = {
version = nil, ---@type string?
version = nil, ---@type number?
install_version = nil, ---@type number?
news = {}, ---@type table<string, string>
extras = {}, ---@type string[]
},
}
function M.json.load()
M.json.loaded = true
local f = io.open(M.json.path, "r")
if f then
local data = f:read("*a")
@ -157,6 +162,8 @@ function M.json.load()
LazyVim.json.migrate()
end
end
else
M.json.data.install_version = M.json.version
end
end
@ -206,6 +213,37 @@ function M.setup(opts)
"desc",
"vscode",
})
if vim.g.lazyvim_check_order == false then
return
end
-- Check lazy.nvim import order
local imports = require("lazy.core.config").spec.modules
local function find(pat, last)
for i = last and #imports or 1, last and 1 or #imports, last and -1 or 1 do
if imports[i]:find(pat) then
return i
end
end
end
local lazyvim_plugins = find("^lazyvim%.plugins$")
local extras = find("^lazyvim%.plugins%.extras%.", true) or lazyvim_plugins
local plugins = find("^plugins$") or math.huge
if lazyvim_plugins ~= 1 or extras > plugins then
local msg = {
"The order of your `lazy.nvim` imports is incorrect:",
"- `lazyvim.plugins` should be first",
"- followed by any `lazyvim.plugins.extras`",
"- and finally your own `plugins`",
"",
"If you think you know what you're doing, you can disable this check with:",
"```lua",
"vim.g.lazyvim_check_order = false",
"```",
}
vim.notify(table.concat(msg, "\n"), "warn", { title = "LazyVim" })
end
end,
})
@ -268,6 +306,8 @@ function M.load(name)
end
M.did_init = false
M._options = {} ---@type vim.wo|vim.bo
function M.init()
if M.did_init then
return
@ -290,8 +330,14 @@ function M.init()
-- this is needed to make sure options will be correctly applied
-- after installing missing plugins
M.load("options")
-- save some options to track defaults
M._options.indentexpr = vim.o.indentexpr
M._options.foldmethod = vim.o.foldmethod
M._options.foldexpr = vim.o.foldexpr
-- defer built-in clipboard handling: "xsel" and "pbcopy" can be slow
lazy_clipboard = vim.opt.clipboard
lazy_clipboard = vim.opt.clipboard:get()
vim.opt.clipboard = ""
if vim.g.deprecation_warnings == false then
@ -302,6 +348,111 @@ function M.init()
M.json.load()
end
---@alias LazyVimDefault {name: string, group: string, extra: string, import: string, enabled?: boolean, origin?: "global" | "default" | "extra" }
---
local default_extras ---@type table<string, LazyVimDefault>
---@param name string
---@param extras LazyVimDefault[]
function M.register_defaults(name, extras)
assert(default_extras, "defaults should be loaded by now, this should never happen")
local valid = vim.tbl_map(function(extra)
return extra.name
end, extras) --[[@as string[] ]]
local origin = "default"
local ret ---@type LazyVimDefault?
local use ---@type string?
local global = vim.g["lazyvim_" .. name]
if vim.tbl_contains(valid, global) then
origin = "global" -- was set by the user in their config
use = global
else
if global and global ~= "auto" then
vim.notify(
("Invalid value for `vim.g.lazyvim_%s`: `%s`\nValid options are: %s"):format(
name,
global,
table.concat(valid, ", ")
),
vim.log.levels.ERROR,
{ title = "LazyVim" }
)
end
for _, extra in ipairs(extras) do
if LazyVim.has_extra(extra.extra) then
use = extra.name -- was imported by the user in their lazy spec or added by LazyExtras
origin = "extra"
break
end
end
end
use = use or valid[1] -- fallback to the first one if nothing was set
for _, extra in ipairs(extras) do
local import = "lazyvim.plugins.extras." .. extra.extra
extra = vim.deepcopy(extra)
extra.enabled = extra.name == use
extra.import = import
extra.group = name
if extra.enabled then
extra.origin = origin
ret = extra
end
default_extras[import] = extra
end
return assert(ret, "One of the extras should be enabled, this should never happen")
end
---@param group string
---@return LazyVimDefault?
function M.get_default(group)
for _, extra in pairs(M.get_defaults()) do
if extra.group == group and extra.enabled then
return extra
end
end
end
function M.get_defaults()
if default_extras then
return default_extras
end
default_extras = {}
---@type table<string, LazyVimDefault[]>
local checks = {
picker = {
{ name = "snacks", extra = "editor.snacks_picker" },
{ name = "fzf", extra = "editor.fzf" },
{ name = "telescope", extra = "editor.telescope" },
},
cmp = {
{ name = "blink.cmp", extra = "coding.blink" },
{ name = "nvim-cmp", extra = "coding.nvim-cmp" },
},
explorer = {
{ name = "snacks", extra = "editor.snacks_explorer" },
{ name = "neo-tree", extra = "editor.neo-tree" },
},
}
-- existing installs keep their defaults
if (LazyVim.config.json.data.install_version or 7) < 8 then
table.insert(checks.picker, 1, table.remove(checks.picker, 2))
table.insert(checks.explorer, 1, table.remove(checks.explorer, 2))
end
for name, extras in pairs(checks) do
M.register_defaults(name, extras)
end
return default_extras
end
setmetatable(M, {
__index = function(_, key)
if options == nil then

View file

@ -43,10 +43,17 @@ end, { desc = "Delete Buffer" })
map("n", "<leader>bo", function()
Snacks.bufdelete.other()
end, { desc = "Delete Other Buffers" })
map("n", "<leader>bi", function()
Snacks.bufdelete.invisible()
end, { desc = "Delete Invisible Buffers" })
map("n", "<leader>bD", "<cmd>:bd<cr>", { desc = "Delete Buffer and Window" })
-- Clear search with <esc>
map({ "i", "n" }, "<esc>", "<cmd>noh<cr><esc>", { desc = "Escape and Clear hlsearch" })
-- Clear search and stop snippet on escape
map({ "i", "n", "s" }, "<esc>", function()
vim.cmd("noh")
LazyVim.cmp.actions.snippet_stop()
return "<esc>"
end, { expr = true, desc = "Escape and Clear hlsearch" })
-- Clear search, diff update and redraw
-- taken from runtime/lua/_editor.lua
@ -77,8 +84,8 @@ map({ "i", "x", "n", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save File" })
map("n", "<leader>K", "<cmd>norm! K<cr>", { desc = "Keywordprg" })
-- better indenting
map("v", "<", "<gv")
map("v", ">", ">gv")
map("x", "<", "<gv")
map("x", ">", ">gv")
-- commenting
map("n", "gco", "o<esc>Vcx<esc><cmd>normal gcc<cr>fxa<bs>", { desc = "Add Comment Below" })
@ -90,23 +97,38 @@ map("n", "<leader>l", "<cmd>Lazy<cr>", { desc = "Lazy" })
-- new file
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" })
-- location list
map("n", "<leader>xl", function()
local success, err = pcall(vim.fn.getloclist(0, { winid = 0 }).winid ~= 0 and vim.cmd.lclose or vim.cmd.lopen)
if not success and err then
vim.notify(err, vim.log.levels.ERROR)
end
end, { desc = "Location List" })
-- quickfix list
map("n", "<leader>xq", function()
local success, err = pcall(vim.fn.getqflist({ winid = 0 }).winid ~= 0 and vim.cmd.cclose or vim.cmd.copen)
if not success and err then
vim.notify(err, vim.log.levels.ERROR)
end
end, { desc = "Quickfix List" })
map("n", "[q", vim.cmd.cprev, { desc = "Previous Quickfix" })
map("n", "]q", vim.cmd.cnext, { desc = "Next Quickfix" })
-- formatting
map({ "n", "v" }, "<leader>cf", function()
map({ "n", "x" }, "<leader>cf", function()
LazyVim.format({ force = true })
end, { desc = "Format" })
-- diagnostic
local diagnostic_goto = function(next, severity)
local go = next and vim.diagnostic.goto_next or vim.diagnostic.goto_prev
severity = severity and vim.diagnostic.severity[severity] or nil
return function()
go({ severity = severity })
vim.diagnostic.jump({
count = (next and 1 or -1) * vim.v.count1,
severity = severity and vim.diagnostic.severity[severity] or nil,
float = true,
})
end
end
map("n", "<leader>cd", vim.diagnostic.open_float, { desc = "Line Diagnostics" })
@ -122,14 +144,22 @@ map("n", "[w", diagnostic_goto(false, "WARN"), { desc = "Prev Warning" })
-- toggle options
LazyVim.format.snacks_toggle():map("<leader>uf")
LazyVim.format.snacks_toggle(true):map("<leader>uF")
Snacks.toggle.option("spell", { name = "Spelling"}):map("<leader>us")
Snacks.toggle.option("wrap", {name = "Wrap"}):map("<leader>uw")
Snacks.toggle.option("relativenumber", { name = "Relative Number"}):map("<leader>uL")
Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us")
Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw")
Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map("<leader>uL")
Snacks.toggle.diagnostics():map("<leader>ud")
Snacks.toggle.line_number():map("<leader>ul")
Snacks.toggle.option("conceallevel", {off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2}):map("<leader>uc")
Snacks.toggle.option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2, name = "Conceal Level" }):map("<leader>uc")
Snacks.toggle.option("showtabline", { off = 0, on = vim.o.showtabline > 0 and vim.o.showtabline or 2, name = "Tabline" }):map("<leader>uA")
Snacks.toggle.treesitter():map("<leader>uT")
Snacks.toggle.option("background", { off = "light", on = "dark" , name = "Dark Background"}):map("<leader>ub")
Snacks.toggle.option("background", { off = "light", on = "dark" , name = "Dark Background" }):map("<leader>ub")
Snacks.toggle.dim():map("<leader>uD")
Snacks.toggle.animate():map("<leader>ua")
Snacks.toggle.indent():map("<leader>ug")
Snacks.toggle.scroll():map("<leader>uS")
Snacks.toggle.profiler():map("<leader>dpp")
Snacks.toggle.profiler_highlights():map("<leader>dph")
if vim.lsp.inlay_hint then
Snacks.toggle.inlay_hints():map("<leader>uh")
end
@ -138,19 +168,23 @@ end
if vim.fn.executable("lazygit") == 1 then
map("n", "<leader>gg", function() Snacks.lazygit( { cwd = LazyVim.root.git() }) end, { desc = "Lazygit (Root Dir)" })
map("n", "<leader>gG", function() Snacks.lazygit() end, { desc = "Lazygit (cwd)" })
map("n", "<leader>gb", function() Snacks.git.blame_line() end, { desc = "Git Blame Line" })
map({ "n", "x" }, "<leader>gB", function() Snacks.gitbrowse() end, { desc = "Git Browse" })
map("n", "<leader>gf", function() Snacks.lazygit.log_file() end, { desc = "Lazygit Current File History" })
map("n", "<leader>gl", function() Snacks.lazygit.log({ cwd = LazyVim.root.git() }) end, { desc = "Lazygit Log" })
map("n", "<leader>gL", function() Snacks.lazygit.log() end, { desc = "Lazygit Log (cwd)" })
end
map("n", "<leader>gL", function() Snacks.picker.git_log() end, { desc = "Git Log (cwd)" })
map("n", "<leader>gb", function() Snacks.picker.git_log_line() end, { desc = "Git Blame Line" })
map("n", "<leader>gf", function() Snacks.picker.git_log_file() end, { desc = "Git Current File History" })
map("n", "<leader>gl", function() Snacks.picker.git_log({ cwd = LazyVim.root.git() }) end, { desc = "Git Log" })
map({ "n", "x" }, "<leader>gB", function() Snacks.gitbrowse() end, { desc = "Git Browse (open)" })
map({"n", "x" }, "<leader>gY", function()
Snacks.gitbrowse({ open = function(url) vim.fn.setreg("+", url) end, notify = false })
end, { desc = "Git Browse (copy)" })
-- quit
map("n", "<leader>qq", "<cmd>qa<cr>", { desc = "Quit All" })
-- highlights under cursor
map("n", "<leader>ui", vim.show_pos, { desc = "Inspect Pos" })
map("n", "<leader>uI", "<cmd>InspectTree<cr>", { desc = "Inspect Tree" })
map("n", "<leader>uI", function() vim.treesitter.inspect_tree() vim.api.nvim_input("I") end, { desc = "Inspect Tree" })
-- LazyVim Changelog
map("n", "<leader>L", function() LazyVim.news.changelog() end, { desc = "LazyVim Changelog" })
@ -158,19 +192,15 @@ map("n", "<leader>L", function() LazyVim.news.changelog() end, { desc = "LazyVim
-- floating terminal
map("n", "<leader>fT", function() Snacks.terminal() end, { desc = "Terminal (cwd)" })
map("n", "<leader>ft", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" })
map("n", "<c-/>", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" })
map("n", "<c-_>", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "which_key_ignore" })
-- Terminal Mappings
map("t", "<C-/>", "<cmd>close<cr>", { desc = "Hide Terminal" })
map("t", "<c-_>", "<cmd>close<cr>", { desc = "which_key_ignore" })
map({"n","t"}, "<c-/>",function() Snacks.terminal.focus(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" })
map({"n","t"}, "<c-_>",function() Snacks.terminal.focus(nil, { cwd = LazyVim.root() }) end, { desc = "which_key_ignore" })
-- windows
map("n", "<leader>w", "<c-w>", { desc = "Windows", 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>wd", "<C-W>c", { desc = "Delete Window", remap = true })
LazyVim.ui.maximize():map("<leader>wm")
Snacks.toggle.zoom():map("<leader>wm"):map("<leader>uZ")
Snacks.toggle.zen():map("<leader>uz")
-- tabs
map("n", "<leader><tab>l", "<cmd>tablast<cr>", { desc = "Last Tab" })
@ -181,12 +211,5 @@ map("n", "<leader><tab>]", "<cmd>tabnext<cr>", { desc = "Next Tab" })
map("n", "<leader><tab>d", "<cmd>tabclose<cr>", { desc = "Close Tab" })
map("n", "<leader><tab>[", "<cmd>tabprevious<cr>", { desc = "Previous Tab" })
-- native snippets. only needed on < 0.11, as 0.11 creates these by default
if vim.fn.has("nvim-0.11") == 0 then
map("s", "<Tab>", function()
return vim.snippet.active({ direction = 1 }) and "<cmd>lua vim.snippet.jump(1)<cr>" or "<Tab>"
end, { expr = true, desc = "Jump Next" })
map({ "i", "s" }, "<S-Tab>", function()
return vim.snippet.active({ direction = -1 }) and "<cmd>lua vim.snippet.jump(-1)<cr>" or "<S-Tab>"
end, { expr = true, desc = "Jump Previous" })
end
-- lua
map({"n", "x"}, "<localleader>r", function() Snacks.debug.run() end, { desc = "Run Lua", ft = "lua" })

View file

@ -5,12 +5,22 @@ vim.g.maplocalleader = "\\"
-- LazyVim auto format
vim.g.autoformat = true
-- Snacks animations
-- Set to `false` to globally disable all snacks animations
vim.g.snacks_animate = true
-- LazyVim picker to use.
-- Can be one of: telescope, fzf
-- Leave it to "auto" to automatically use the picker
-- enabled with `:LazyExtras`
vim.g.lazyvim_picker = "auto"
-- LazyVim completion engine to use.
-- Can be one of: nvim-cmp, blink.cmp
-- Leave it to "auto" to automatically use the completion engine
-- enabled with `:LazyExtras`
vim.g.lazyvim_cmp = "auto"
-- if the completion engine supports the AI source,
-- use that instead of inline suggestions
vim.g.ai_cmp = true
@ -43,8 +53,8 @@ local opt = vim.opt
opt.autowrite = true -- Enable auto write
-- only set clipboard if not in ssh, to make sure the OSC 52
-- integration works automatically. Requires Neovim >= 0.10.0
opt.clipboard = vim.env.SSH_TTY and "" or "unnamedplus" -- Sync with system clipboard
-- integration works automatically.
opt.clipboard = vim.env.SSH_CONNECTION and "" or "unnamedplus" -- Sync with system clipboard
opt.completeopt = "menu,menuone,noselect"
opt.conceallevel = 2 -- Hide * markup for bold and italic, but not markers with substitutions
opt.confirm = true -- Confirm to save changes before exiting modified buffer
@ -59,7 +69,9 @@ opt.fillchars = {
eob = " ",
}
opt.foldlevel = 99
opt.formatexpr = "v:lua.require'lazyvim.util'.format.formatexpr()"
opt.foldmethod = "indent"
opt.foldtext = ""
opt.formatexpr = "v:lua.LazyVim.format.formatexpr()"
opt.formatoptions = "jcroqlnt" -- tcqj
opt.grepformat = "%f:%l:%c:%m"
opt.grepprg = "rg --vimgrep"
@ -85,11 +97,12 @@ opt.sidescrolloff = 8 -- Columns of context
opt.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time
opt.smartcase = true -- Don't ignore case with capitals
opt.smartindent = true -- Insert indents automatically
opt.smoothscroll = true
opt.spelllang = { "en" }
opt.splitbelow = true -- Put new windows below current
opt.splitkeep = "screen"
opt.splitright = true -- Put new windows right of current
opt.statuscolumn = [[%!v:lua.require'snacks.statuscolumn'.get()]]
opt.statuscolumn = [[%!v:lua.LazyVim.statuscolumn()]]
opt.tabstop = 2 -- Number of spaces tabs count for
opt.termguicolors = true -- True color support
opt.timeoutlen = vim.g.vscode and 1000 or 300 -- Lower than default (1000) to quickly trigger which-key
@ -101,15 +114,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.10") == 1 then
opt.smoothscroll = true
opt.foldexpr = "v:lua.require'lazyvim.util'.ui.foldexpr()"
opt.foldmethod = "expr"
opt.foldtext = ""
else
opt.foldmethod = "indent"
opt.foldtext = "v:lua.require'lazyvim.util'.ui.foldtext()"
end
-- Fix markdown indentation settings
vim.g.markdown_recommended_style = 0

View file

@ -4,20 +4,18 @@ 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
local info = vim.health.info or vim.health.report_info
function M.check()
start("LazyVim")
if vim.fn.has("nvim-0.9.0") == 1 then
ok("Using Neovim >= 0.9.0")
if vim.fn.has("nvim-0.10.0") == 0 then
warn("Use Neovim >= 0.10.0 for the best experience")
end
if vim.fn.has("nvim-0.11.2") == 1 then
ok("Using Neovim >= 0.11.2")
else
error("Neovim >= 0.9.0 is required")
error("Neovim >= 0.11.2 is required")
end
for _, cmd in ipairs({ "git", "rg", { "fd", "fdfind" }, "lazygit" }) do
for _, cmd in ipairs({ "git", "rg", { "fd", "fdfind" }, "lazygit", "fzf", "curl" }) do
local name = type(cmd) == "string" and cmd or vim.inspect(cmd)
local commands = type(cmd) == "string" and { cmd } or cmd
---@cast commands string[]
@ -36,6 +34,23 @@ function M.check()
warn(("`%s` is not installed"):format(name))
end
end
start("LazyVim nvim-treesitter")
local tsok, health = LazyVim.treesitter.check()
local keys = vim.tbl_keys(health) ---@type string[]
table.sort(keys)
for _, k in pairs(keys) do
(health[k] and ok or error)(("`%s` is %s"):format(k, health[k] and "installed" or "not installed"))
end
if not tsok then
info(
"See the requirements at [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter/tree/main?tab=readme-ov-file#requirements)"
)
info("Run `:checkhealth nvim-treesitter` for more information.")
if vim.fn.has("win32") == 1 and not health["C compiler"] then
info("Install a C compiler with `winget install --id=BrechtSanders.WinLibs.POSIX.UCRT -e`")
end
end
end
return M

View file

@ -1,119 +1,9 @@
return {
-- auto completion
-- Auto pairs
-- Automatically inserts a matching closing character
-- when you type an opening character like `"`, `[`, or `(`.
{
"hrsh7th/nvim-cmp",
version = false, -- last release is way too old
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
},
-- Not all LSP servers add brackets when completing a function.
-- To better deal with this, LazyVim adds a custom option to cmp,
-- that you can configure. For example:
--
-- ```lua
-- opts = {
-- auto_brackets = { "python" }
-- }
-- ```
opts = function()
vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
local cmp = require("cmp")
local defaults = require("cmp.config.default")()
local auto_select = true
return {
auto_brackets = {}, -- configure any filetype to auto add brackets
completion = {
completeopt = "menu,menuone,noinsert" .. (auto_select and "" or ",noselect"),
},
preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None,
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-Space>"] = cmp.mapping.complete(),
["<CR>"] = LazyVim.cmp.confirm({ select = auto_select }),
["<C-y>"] = LazyVim.cmp.confirm({ select = true }),
["<S-CR>"] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<C-CR>"] = function(fallback)
cmp.abort()
fallback()
end,
["<tab>"] = function(fallback)
return LazyVim.cmp.map({ "snippet_forward", "ai_accept" }, fallback)()
end,
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "path" },
}, {
{ name = "buffer" },
}),
formatting = {
format = function(entry, item)
local icons = LazyVim.config.icons.kinds
if icons[item.kind] then
item.kind = icons[item.kind] .. item.kind
end
local widths = {
abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40,
menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30,
}
for key, width in pairs(widths) do
if item[key] and vim.fn.strdisplaywidth(item[key]) > width then
item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. ""
end
end
return item
end,
},
experimental = {
-- only show ghost text when we show ai completions
ghost_text = vim.g.ai_cmp and {
hl_group = "CmpGhostText",
} or false,
},
sorting = defaults.sorting,
}
end,
main = "lazyvim.util.cmp",
},
-- snippets
{
"nvim-cmp",
optional = true,
dependencies = {
{
"garymjr/nvim-snippets",
opts = {
friendly_snippets = true,
},
dependencies = { "rafamadriz/friendly-snippets" },
},
},
opts = function(_, opts)
opts.snippet = {
expand = function(item)
return LazyVim.cmp.expand(item.body)
end,
}
if LazyVim.has("nvim-snippets") then
table.insert(opts.sources, { name = "snippets" })
end
end,
},
-- auto pairs
{
"echasnovski/mini.pairs",
"nvim-mini/mini.pairs",
event = "VeryLazy",
opts = {
modes = { insert = true, command = true, terminal = false },
@ -132,16 +22,20 @@ return {
end,
},
-- comments
-- Improves comment syntax, lets Neovim handle multiple
-- types of comments for a single language, and relaxes rules
-- for uncommenting.
{
"folke/ts-comments.nvim",
event = "VeryLazy",
opts = {},
},
-- Better text-objects
-- Extends the a & i text objects, this adds the ability to select
-- arguments, function calls, text within quotes and brackets, and to
-- repeat those selections to select an outer text object.
{
"echasnovski/mini.ai",
"nvim-mini/mini.ai",
event = "VeryLazy",
opts = function()
local ai = require("mini.ai")
@ -160,7 +54,6 @@ return {
{ "%u[%l%d]+%f[^%l%d]", "%f[%S][%l%d]+%f[^%l%d]", "%f[%P][%l%d]+%f[^%l%d]", "^[%l%d]+%f[^%l%d]" },
"^().*()$",
},
i = LazyVim.mini.ai_indent, -- indent
g = LazyVim.mini.ai_buffer, -- buffer
u = ai.gen_spec.function_call(), -- u for "Usage"
U = ai.gen_spec.function_call({ name_pattern = "[%w_]" }), -- without dot in function name
@ -177,27 +70,20 @@ return {
end,
},
-- Configures LuaLS to support auto-completion and type checking
-- while editing your Neovim configuration.
{
"folke/lazydev.nvim",
ft = "lua",
cmd = "LazyDev",
opts = {
library = {
{ path = "luvit-meta/library", words = { "vim%.uv" } },
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
{ path = "LazyVim", words = { "LazyVim" } },
{ path = "snacks.nvim", words = { "Snacks" } },
{ path = "lazy.nvim", words = { "LazyVim" } },
{ path = "nvim-lspconfig", words = { "lspconfig.settings" } },
},
},
},
-- Manage libuv types with lazy. Plugin will never be loaded
{ "Bilal2453/luvit-meta", lazy = true },
-- Add lazydev source to cmp
{
"hrsh7th/nvim-cmp",
optional = true,
opts = function(_, opts)
table.insert(opts.sources, { name = "lazydev", group_index = 0 })
end,
},
}

View file

@ -13,12 +13,21 @@ return {
lazy = true,
name = "catppuccin",
opts = {
lsp_styles = {
underlines = {
errors = { "undercurl" },
hints = { "undercurl" },
warnings = { "undercurl" },
information = { "undercurl" },
},
},
integrations = {
aerial = true,
alpha = true,
cmp = true,
dashboard = true,
flash = true,
fzf = true,
grug_far = true,
gitsigns = true,
headlines = true,
@ -27,25 +36,14 @@ return {
leap = true,
lsp_trouble = true,
mason = true,
markdown = true,
mini = true,
native_lsp = {
enabled = true,
underlines = {
errors = { "undercurl" },
hints = { "undercurl" },
warnings = { "undercurl" },
information = { "undercurl" },
},
},
navic = { enabled = true, custom_bg = "lualine" },
neotest = true,
neotree = true,
noice = true,
notify = true,
semantic_tokens = true,
snacks = true,
telescope = true,
treesitter = true,
treesitter_context = true,
which_key = true,
},
@ -56,7 +54,7 @@ return {
optional = true,
opts = function(_, opts)
if (vim.g.colors_name or ""):find("catppuccin") then
opts.highlights = require("catppuccin.groups.integrations.bufferline").get()
opts.highlights = require("catppuccin.special.bufferline").get_theme()
end
end,
},

View file

@ -1,38 +0,0 @@
-- Compatibility with Neovim 0.9
return {
-- Use LuaSnip instead of native snippets
{ "garymjr/nvim-snippets", enabled = false },
{ import = "lazyvim.plugins.extras.coding.luasnip" },
-- Use mini.comment instead of ts-comments
{ "folke/ts-comments.nvim", enabled = false },
{ import = "lazyvim.plugins.extras.coding.mini-comment" },
-- Use neodev-types with lazydev
{ "folke/neodev.nvim", config = function() end },
{
"folke/lazydev.nvim",
opts = function(_, opts)
opts.library = opts.library or {}
table.insert(opts.library, { "neodev.nvim/types/stable" })
end,
config = function(_, opts)
-- force lazydev to load on Neovim 0.9
require("lazydev.config").have_0_10 = true
require("lazydev").setup(opts)
end,
},
{
"neovim/nvim-lspconfig",
dependencies = {},
},
-- dummy import to save core imports
{
import = "foobar",
enabled = function()
LazyVim.plugin.save_core()
return false
end,
},
}

View file

@ -1,136 +1,10 @@
return {
-- file explorer
{
"nvim-neo-tree/neo-tree.nvim",
cmd = "Neotree",
keys = {
{
"<leader>fe",
function()
require("neo-tree.command").execute({ toggle = true, dir = LazyVim.root() })
end,
desc = "Explorer NeoTree (Root Dir)",
},
{
"<leader>fE",
function()
require("neo-tree.command").execute({ toggle = true, dir = vim.uv.cwd() })
end,
desc = "Explorer NeoTree (cwd)",
},
{ "<leader>e", "<leader>fe", desc = "Explorer NeoTree (Root Dir)", remap = true },
{ "<leader>E", "<leader>fE", desc = "Explorer NeoTree (cwd)", remap = true },
{
"<leader>ge",
function()
require("neo-tree.command").execute({ source = "git_status", toggle = true })
end,
desc = "Git Explorer",
},
{
"<leader>be",
function()
require("neo-tree.command").execute({ source = "buffers", toggle = true })
end,
desc = "Buffer Explorer",
},
},
deactivate = function()
vim.cmd([[Neotree close]])
end,
init = function()
-- FIX: use `autocmd` for lazy-loading neo-tree instead of directly requiring it,
-- because `cwd` is not set up properly.
vim.api.nvim_create_autocmd("BufEnter", {
group = vim.api.nvim_create_augroup("Neotree_start_directory", { clear = true }),
desc = "Start Neo-tree with directory",
once = true,
callback = function()
if package.loaded["neo-tree"] then
return
else
local stats = vim.uv.fs_stat(vim.fn.argv(0))
if stats and stats.type == "directory" then
require("neo-tree")
end
end
end,
})
end,
opts = {
sources = { "filesystem", "buffers", "git_status" },
open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" },
filesystem = {
bind_to_cwd = false,
follow_current_file = { enabled = true },
use_libuv_file_watcher = true,
},
window = {
mappings = {
["l"] = "open",
["h"] = "close_node",
["<space>"] = "none",
["Y"] = {
function(state)
local node = state.tree:get_node()
local path = node:get_id()
vim.fn.setreg("+", path, "c")
end,
desc = "Copy Path to Clipboard",
},
["O"] = {
function(state)
require("lazy.util").open(state.tree:get_node().path, { system = true })
end,
desc = "Open with System Application",
},
["P"] = { "toggle_preview", config = { use_float = false } },
},
},
default_component_configs = {
indent = {
with_expanders = true, -- if nil and file nesting is enabled, will enable expanders
expander_collapsed = "",
expander_expanded = "",
expander_highlight = "NeoTreeExpander",
},
git_status = {
symbols = {
unstaged = "󰄱",
staged = "󰱒",
},
},
},
},
config = function(_, opts)
local function on_move(data)
Snacks.rename.on_rename_file(data.source, data.destination)
end
local events = require("neo-tree.events")
opts.event_handlers = opts.event_handlers or {}
vim.list_extend(opts.event_handlers, {
{ event = events.FILE_MOVED, handler = on_move },
{ event = events.FILE_RENAMED, handler = on_move },
})
require("neo-tree").setup(opts)
vim.api.nvim_create_autocmd("TermClose", {
pattern = "*lazygit",
callback = function()
if package.loaded["neo-tree.sources.git_status"] then
require("neo-tree.sources.git_status").refresh()
end
end,
})
end,
},
-- search/replace in multiple files
{
"MagicDuck/grug-far.nvim",
opts = { headerMaxWidth = 80 },
cmd = "GrugFar",
cmd = { "GrugFar", "GrugFarWithin" },
keys = {
{
"<leader>sr",
@ -144,7 +18,7 @@ return {
},
})
end,
mode = { "n", "v" },
mode = { "n", "x" },
desc = "Search and Replace",
},
},
@ -166,6 +40,16 @@ return {
{ "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" },
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
-- Simulate nvim-treesitter incremental selection
{ "<c-space>", mode = { "n", "o", "x" },
function()
require("flash").treesitter({
actions = {
["<c-space>"] = "next",
["<BS>"] = "prev"
}
})
end, desc = "Treesitter Incremental Selection" },
},
},
@ -176,19 +60,22 @@ return {
event = "VeryLazy",
opts_extend = { "spec" },
opts = {
preset = "helix",
defaults = {},
spec = {
{
mode = { "n", "v" },
mode = { "n", "x" },
{ "<leader><tab>", group = "tabs" },
{ "<leader>c", group = "code" },
{ "<leader>d", group = "debug" },
{ "<leader>dp", group = "profiler" },
{ "<leader>f", group = "file/find" },
{ "<leader>g", group = "git" },
{ "<leader>gh", group = "hunks" },
{ "<leader>q", group = "quit/session" },
{ "<leader>s", group = "search" },
{ "<leader>u", group = "ui", icon = { icon = "󰙵 ", color = "cyan" } },
{ "<leader>x", group = "diagnostics/quickfix", icon = { icon = "󱖫 ", color = "green" } },
{ "<leader>u", group = "ui" },
{ "<leader>x", group = "diagnostics/quickfix" },
{ "[", group = "prev" },
{ "]", group = "next" },
{ "g", group = "goto" },
@ -266,7 +153,7 @@ return {
local gs = package.loaded.gitsigns
local function map(mode, l, r, desc)
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc })
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc, silent = true })
end
-- stylua: ignore start
@ -286,8 +173,8 @@ return {
end, "Prev Hunk")
map("n", "]H", function() gs.nav_hunk("last") end, "Last Hunk")
map("n", "[H", function() gs.nav_hunk("first") end, "First Hunk")
map({ "n", "v" }, "<leader>ghs", ":Gitsigns stage_hunk<CR>", "Stage Hunk")
map({ "n", "v" }, "<leader>ghr", ":Gitsigns reset_hunk<CR>", "Reset Hunk")
map({ "n", "x" }, "<leader>ghs", ":Gitsigns stage_hunk<CR>", "Stage Hunk")
map({ "n", "x" }, "<leader>ghr", ":Gitsigns reset_hunk<CR>", "Reset Hunk")
map("n", "<leader>ghS", gs.stage_buffer, "Stage Buffer")
map("n", "<leader>ghu", gs.undo_stage_hunk, "Undo Stage Hunk")
map("n", "<leader>ghR", gs.reset_buffer, "Reset Buffer")
@ -300,6 +187,20 @@ return {
end,
},
},
{
"gitsigns.nvim",
opts = function()
Snacks.toggle({
name = "Git Signs",
get = function()
return require("gitsigns.config").config.signcolumn
end,
set = function(state)
require("gitsigns").toggle_signs(state)
end,
}):map("<leader>uG")
end,
},
-- better diagnostics list and others
{
@ -367,17 +268,4 @@ return {
{ "<leader>sT", "<cmd>TodoTelescope keywords=TODO,FIX,FIXME<cr>", desc = "Todo/Fix/Fixme" },
},
},
{
import = "lazyvim.plugins.extras.editor.fzf",
enabled = function()
return LazyVim.pick.want() == "fzf"
end,
},
{
import = "lazyvim.plugins.extras.editor.telescope",
enabled = function()
return LazyVim.pick.want() == "telescope"
end,
},
}

View file

@ -0,0 +1,89 @@
return {
{ "MunifTanjim/nui.nvim", lazy = true },
{
"yetone/avante.nvim",
build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"
or "make",
event = "VeryLazy",
opts = {
provider = "copilot",
selection = {
hint_display = "none",
},
behaviour = {
auto_set_keymaps = false,
},
},
cmd = {
"AvanteAsk",
"AvanteBuild",
"AvanteChat",
"AvanteClear",
"AvanteEdit",
"AvanteFocus",
"AvanteHistory",
"AvanteModels",
"AvanteRefresh",
"AvanteShowRepoMap",
"AvanteStop",
"AvanteSwitchProvider",
"AvanteToggle",
},
keys = {
{ "<leader>aa", "<cmd>AvanteAsk<CR>", desc = "Ask Avante" },
{ "<leader>ac", "<cmd>AvanteChat<CR>", desc = "Chat with Avante" },
{ "<leader>ae", "<cmd>AvanteEdit<CR>", desc = "Edit Avante" },
{ "<leader>af", "<cmd>AvanteFocus<CR>", desc = "Focus Avante" },
{ "<leader>ah", "<cmd>AvanteHistory<CR>", desc = "Avante History" },
{ "<leader>am", "<cmd>AvanteModels<CR>", desc = "Select Avante Model" },
{ "<leader>an", "<cmd>AvanteChatNew<CR>", desc = "New Avante Chat" },
{ "<leader>ap", "<cmd>AvanteSwitchProvider<CR>", desc = "Switch Avante Provider" },
{ "<leader>ar", "<cmd>AvanteRefresh<CR>", desc = "Refresh Avante" },
{ "<leader>as", "<cmd>AvanteStop<CR>", desc = "Stop Avante" },
{ "<leader>at", "<cmd>AvanteToggle<CR>", desc = "Toggle Avante" },
},
},
-- support for image pasting
{
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
optional = true,
opts = {
-- recommended settings
default = {
embed_image_as_base64 = false,
prompt_for_file_name = false,
drag_and_drop = {
insert_mode = true,
},
-- required for Windows users
use_absolute_path = true,
},
},
},
-- Make sure to set this up properly if you have lazy=true
{
"MeanderingProgrammer/render-markdown.nvim",
optional = true,
opts = {
file_types = { "markdown", "Avante" },
},
ft = { "markdown", "Avante" },
},
-- blink.cmp source for avante.nvim
{
"saghen/blink.cmp",
optional = true,
specs = { "Kaiser-Yang/blink-cmp-avante" },
opts = {
sources = {
default = { "avante" },
providers = { avante = { module = "blink-cmp-avante", name = "Avante" } },
},
},
},
}

View file

@ -0,0 +1,22 @@
return {
"coder/claudecode.nvim",
opts = {},
keys = {
{ "<leader>a", "", desc = "+ai", mode = { "n", "v" } },
{ "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
{ "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },
{ "<leader>ar", "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },
{ "<leader>aC", "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },
{ "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" },
{ "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send to Claude" },
{
"<leader>as",
"<cmd>ClaudeCodeTreeAdd<cr>",
desc = "Add file",
ft = { "NvimTree", "neo-tree", "oil" },
},
-- Diff management
{ "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
{ "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
},
}

View file

@ -4,6 +4,7 @@ return {
{
"Exafunction/codeium.nvim",
cmd = "Codeium",
event = "InsertEnter",
build = ":Codeium Auth",
opts = {
enable_cmp_source = vim.g.ai_cmp,
@ -34,7 +35,7 @@ return {
-- codeium cmp source
{
"nvim-cmp",
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "codeium.nvim" },
opts = function(_, opts)
@ -55,17 +56,21 @@ return {
end,
},
{
vim.g.ai_cmp and {
"saghen/blink.cmp",
optional = true,
dependencies = { "codeium.nvim", "saghen/blink.compat" },
opts = {
sources = {
compat = vim.g.ai_cmp and { "codeium" } or nil,
compat = { "codeium" },
providers = {
codeium = {
kind = "Codeium",
score_offset = 100,
async = true,
},
},
},
},
dependencies = {
"codeium.nvim",
vim.g.ai_cmp and "saghen/blink.compat" or nil,
},
},
} or nil,
}

View file

@ -1,31 +1,18 @@
local M = {}
---@param kind string
function M.pick(kind)
return function()
local actions = require("CopilotChat.actions")
local items = actions[kind .. "_actions"]()
if not items then
LazyVim.warn("No " .. kind .. " found on the current line")
return
end
local ok = pcall(require, "fzf-lua")
require("CopilotChat.integrations." .. (ok and "fzflua" or "telescope")).pick(items)
end
end
return {
{
"CopilotC-Nvim/CopilotChat.nvim",
branch = "canary",
branch = "main",
cmd = "CopilotChat",
opts = function()
local user = vim.env.USER or "User"
user = user:sub(1, 1):upper() .. user:sub(2)
return {
auto_insert_mode = true,
question_header = "" .. user .. " ",
answer_header = " Copilot ",
headers = {
user = "" .. user .. " ",
assistant = " Copilot ",
tool = "󰊳 Tool ",
},
window = {
width = 0.4,
},
@ -33,14 +20,14 @@ return {
end,
keys = {
{ "<c-s>", "<CR>", ft = "copilot-chat", desc = "Submit Prompt", remap = true },
{ "<leader>a", "", desc = "+ai", mode = { "n", "v" } },
{ "<leader>a", "", desc = "+ai", mode = { "n", "x" } },
{
"<leader>aa",
function()
return require("CopilotChat").toggle()
end,
desc = "Toggle (CopilotChat)",
mode = { "n", "v" },
mode = { "n", "x" },
},
{
"<leader>ax",
@ -48,21 +35,30 @@ return {
return require("CopilotChat").reset()
end,
desc = "Clear (CopilotChat)",
mode = { "n", "v" },
mode = { "n", "x" },
},
{
"<leader>aq",
function()
local input = vim.fn.input("Quick Chat: ")
if input ~= "" then
require("CopilotChat").ask(input)
end
vim.ui.input({
prompt = "Quick Chat: ",
}, function(input)
if input ~= "" then
require("CopilotChat").ask(input)
end
end)
end,
desc = "Quick Chat (CopilotChat)",
mode = { "n", "v" },
mode = { "n", "x" },
},
{
"<leader>ap",
function()
require("CopilotChat").select_prompt()
end,
desc = "Prompt Actions (CopilotChat)",
mode = { "n", "x" },
},
-- Show prompts actions with telescope
{ "<leader>ap", M.pick("prompt"), desc = "Prompt Actions (CopilotChat)", mode = { "n", "v" } },
},
config = function(_, opts)
local chat = require("CopilotChat")
@ -92,4 +88,24 @@ return {
})
end,
},
-- Blink integration
{
"saghen/blink.cmp",
optional = true,
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
sources = {
providers = {
path = {
-- Path sources triggered by "/" interfere with CopilotChat commands
enabled = function()
return vim.bo.filetype ~= "copilot-chat"
end,
},
},
},
},
},
}

View file

@ -0,0 +1,95 @@
---@diagnostic disable: missing-fields
if lazyvim_docs then
-- Native inline completions don't support being shown as regular completions
vim.g.ai_cmp = false
end
if LazyVim.has_extra("ai.copilot-native") then
if vim.fn.has("nvim-0.12") == 0 then
LazyVim.error("You need Neovim >= 0.12 to use the `ai.copilot-native` extra.")
return {}
end
if LazyVim.has_extra("ai.copilot") then
LazyVim.error("Please disable the `ai.copilot` extra if you want to use `ai.copilot-native`")
return {}
end
end
vim.g.ai_cmp = false
local status = {} ---@type table<number, "ok" | "error" | "pending">
return {
desc = "Native Copilot LSP integration. Requires Neovim >= 0.12",
-- copilot-language-server
{
"neovim/nvim-lspconfig",
opts = {
servers = {
copilot = {
-- stylua: ignore
keys = {
{
"<M-]>",
function() vim.lsp.inline_completion.select({ count = 1 }) end,
desc = "Next Copilot Suggestion",
mode = { "i", "n" },
},
{
"<M-[>",
function() vim.lsp.inline_completion.select({ count = -1 }) end,
desc = "Prev Copilot Suggestion",
mode = { "i", "n" },
},
},
},
},
setup = {
copilot = function()
vim.schedule(function()
vim.lsp.inline_completion.enable()
end)
-- Accept inline suggestions or next edits
LazyVim.cmp.actions.ai_accept = function()
return vim.lsp.inline_completion.get()
end
if not LazyVim.has_extra("ai.sidekick") then
vim.lsp.config("copilot", {
handlers = {
didChangeStatus = function(err, res, ctx)
if err then
return
end
status[ctx.client_id] = res.kind ~= "Normal" and "error" or res.busy and "pending" or "ok"
if res.status == "Error" then
LazyVim.error("Please use `:LspCopilotSignIn` to sign in to Copilot")
end
end,
},
})
end
end,
},
},
},
-- lualine
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
if LazyVim.has_extra("ai.sidekick") then
return
end
table.insert(
opts.sections.lualine_x,
2,
LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()
local clients = vim.lsp.get_clients({ name = "copilot", bufnr = 0 })
return #clients > 0 and status[clients[1].id] or nil
end)
)
end,
},
}

View file

@ -5,11 +5,12 @@ return {
"zbirenbaum/copilot.lua",
cmd = "Copilot",
build = ":Copilot auth",
event = "InsertEnter",
event = "BufReadPost",
opts = {
suggestion = {
enabled = not vim.g.ai_cmp,
auto_trigger = true,
hide_during_completion = vim.g.ai_cmp,
keymap = {
accept = false, -- handled by nvim-cmp / blink.cmp
next = "<M-]>",
@ -22,15 +23,17 @@ return {
help = true,
},
},
config = function(_, opts)
require("copilot").setup(opts)
-- HACK: work-around for https://github.com/neovim/neovim/issues/31262
local Util = require("copilot.util")
local language_for_file_type = Util.language_for_file_type
Util.language_for_file_type = function(ft)
return language_for_file_type(ft or "")
end
end,
},
-- copilot-language-server
{
"neovim/nvim-lspconfig",
opts = {
servers = {
-- copilot.lua only works with its own copilot lsp server
copilot = { enabled = false },
},
},
},
-- add ai_accept action
@ -57,9 +60,9 @@ return {
opts.sections.lualine_x,
2,
LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()
local clients = package.loaded["copilot"] and LazyVim.lsp.get_clients({ name = "copilot", bufnr = 0 }) or {}
local clients = package.loaded["copilot"] and vim.lsp.get_clients({ name = "copilot", bufnr = 0 }) or {}
if #clients > 0 then
local status = require("copilot.api").status.data.status
local status = require("copilot.status").data.status
return (status == "InProgress" and "pending") or (status == "Warning" and "error") or "ok"
end
end)
@ -67,67 +70,58 @@ return {
end,
},
-- copilot cmp source
{
"nvim-cmp",
optional = true,
dependencies = { -- this will only be evaluated if nvim-cmp is enabled
{
"zbirenbaum/copilot-cmp",
enabled = vim.g.ai_cmp, -- only enable if wanted
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
LazyVim.lsp.on_attach(function()
copilot_cmp._on_insert_enter({})
end, "copilot")
end,
specs = {
{
"nvim-cmp",
optional = true,
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "copilot",
group_index = 1,
priority = 100,
})
end,
},
},
},
},
},
-- blink.cmp
{
"saghen/blink.cmp",
optional = true,
dependencies = {
{
"giuxtaposition/blink-cmp-copilot",
enabled = vim.g.ai_cmp, -- only enable if needed
specs = {
{
"blink.cmp",
optional = true,
opts = {
sources = {
providers = {
copilot = { name = "copilot", module = "blink-cmp-copilot" },
},
completion = {
enabled_providers = { "copilot" },
},
},
vim.g.ai_cmp and {
-- copilot cmp source
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { -- this will only be evaluated if nvim-cmp is enabled
{
"zbirenbaum/copilot-cmp",
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
Snacks.util.lsp.on({ name = "copilot" }, function()
copilot_cmp._on_insert_enter({})
end)
end,
specs = {
{
"hrsh7th/nvim-cmp",
optional = true,
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "copilot",
group_index = 1,
priority = 100,
})
end,
},
},
},
},
},
},
{
"saghen/blink.cmp",
optional = true,
dependencies = { "fang2hou/blink-copilot" },
opts = {
sources = {
default = { "copilot" },
providers = {
copilot = {
name = "copilot",
module = "blink-copilot",
score_offset = 100,
async = true,
},
},
},
},
},
} or nil,
}

View file

@ -0,0 +1,155 @@
return {
desc = "Next edit suggestions with the Copilot LSP server",
-- copilot-language-server
{
"neovim/nvim-lspconfig",
opts = function(_, opts)
local sk = LazyVim.opts("sidekick.nvim") ---@type sidekick.Config|{}
if vim.tbl_get(sk, "nes", "enabled") ~= false then
opts.servers = opts.servers or {}
opts.servers.copilot = opts.servers.copilot or {}
end
end,
},
-- lualine
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
local icons = {
Error = { "", "DiagnosticError" },
Inactive = { "", "MsgArea" },
Warning = { "", "DiagnosticWarn" },
Normal = { LazyVim.config.icons.kinds.Copilot, "Special" },
}
table.insert(opts.sections.lualine_x, 2, {
function()
local status = require("sidekick.status").get()
return status and vim.tbl_get(icons, status.kind, 1)
end,
cond = function()
return require("sidekick.status").get() ~= nil
end,
color = function()
local status = require("sidekick.status").get()
local hl = status and (status.busy and "DiagnosticWarn" or vim.tbl_get(icons, status.kind, 2))
return { fg = Snacks.util.color(hl) }
end,
})
table.insert(opts.sections.lualine_x, 2, {
function()
local status = require("sidekick.status").cli()
return "" .. (#status > 1 and #status or "")
end,
cond = function()
return #require("sidekick.status").cli() > 0
end,
color = function()
return { fg = Snacks.util.color("Special") }
end,
})
end,
},
{
"folke/sidekick.nvim",
opts = function()
-- Accept inline suggestions or next edits
LazyVim.cmp.actions.ai_nes = function()
local Nes = require("sidekick.nes")
if Nes.have() and (Nes.jump() or Nes.apply()) then
return true
end
end
Snacks.toggle({
name = "Sidekick NES",
get = function()
return require("sidekick.nes").enabled
end,
set = function(state)
require("sidekick.nes").enable(state)
end,
}):map("<leader>uN")
end,
-- stylua: ignore
keys = {
-- nes is also useful in normal mode
{ "<tab>", LazyVim.cmp.map({ "ai_nes" }, "<tab>"), mode = { "n" }, expr = true },
{ "<leader>a", "", desc = "+ai", mode = { "n", "v" } },
{
"<c-.>",
function() require("sidekick.cli").focus() end,
desc = "Sidekick Focus",
mode = { "n", "t", "i", "x" },
},
{
"<leader>aa",
function() require("sidekick.cli").toggle() end,
desc = "Sidekick Toggle CLI",
},
{
"<leader>as",
function() require("sidekick.cli").select() end,
-- Or to select only installed tools:
-- require("sidekick.cli").select({ filter = { installed = true } })
desc = "Select CLI",
},
{
"<leader>ad",
function() require("sidekick.cli").close() end,
desc = "Detach a CLI Session",
},
{
"<leader>at",
function() require("sidekick.cli").send({ msg = "{this}" }) end,
mode = { "x", "n" },
desc = "Send This",
},
{
"<leader>af",
function() require("sidekick.cli").send({ msg = "{file}" }) end,
desc = "Send File",
},
{
"<leader>av",
function() require("sidekick.cli").send({ msg = "{selection}" }) end,
mode = { "x" },
desc = "Send Visual Selection",
},
{
"<leader>ap",
function() require("sidekick.cli").prompt() end,
mode = { "n", "x" },
desc = "Sidekick Select Prompt",
},
},
},
{
"folke/snacks.nvim",
optional = true,
opts = {
picker = {
actions = {
sidekick_send = function(...)
return require("sidekick.cli.picker.snacks").send(...)
end,
},
win = {
input = {
keys = {
["<a-a>"] = {
"sidekick_send",
mode = { "n", "i" },
},
},
},
},
},
},
},
}

View file

@ -1,11 +1,17 @@
return {
{
"supermaven-inc/supermaven-nvim",
event = "InsertEnter",
cmd = {
"SupermavenUseFree",
"SupermavenUsePro",
},
opts = {
keymaps = {
accept_suggestion = nil, -- handled by nvim-cmp / blink.cmp
},
disable_inline_completion = vim.g.ai_cmp,
ignore_filetypes = { "bigfile", "snacks_input", "snacks_notif" },
},
},
@ -43,39 +49,23 @@ return {
end,
},
-- blink.cmp integration
--
-- FIXME: this currently doesn't work properly
-- {
-- "saghen/blink.cmp",
-- optional = true,
-- opts = {
-- sources = {
-- compat = vim.g.ai_cmp and { "supermaven" } or nil,
-- },
-- },
-- dependencies = {
-- "supermaven-nvim",
-- vim.g.ai_cmp and "saghen/blink.compat" or nil,
-- },
-- },
--
-- Disabble cmp integration for now
{
vim.g.ai_cmp and {
"saghen/blink.cmp",
optional = true,
dependencies = { "supermaven-nvim", "saghen/blink.compat" },
opts = {
windows = { ghost_text = { enabled = false } },
},
dependencies = {
{
"supermaven-nvim",
opts = {
disable_inline_completion = false,
sources = {
compat = { "supermaven" },
providers = {
supermaven = {
kind = "Supermaven",
score_offset = 100,
async = true,
},
},
},
},
},
} or nil,
{
"nvim-lualine/lualine.nvim",

View file

@ -1,25 +1,22 @@
return {
-- Tabnine cmp source
{
"nvim-cmp",
optional = true,
dependencies = {
{
"tzachar/cmp-tabnine",
build = {
LazyVim.is_win() and "pwsh -noni .\\install.ps1" or "./install.sh",
},
dependencies = "hrsh7th/nvim-cmp",
opts = {
max_lines = 1000,
max_num_results = 3,
sort = true,
},
config = function(_, opts)
require("cmp_tabnine.config"):setup(opts)
end,
},
"tzachar/cmp-tabnine",
build = LazyVim.is_win() and "pwsh -noni .\\install.ps1" or "./install.sh",
opts = {
max_lines = 1000,
max_num_results = 3,
sort = true,
},
config = function(_, opts)
require("cmp_tabnine.config"):setup(opts)
end,
},
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "tzachar/cmp-tabnine" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
@ -36,6 +33,25 @@ return {
end)
end,
},
{
"saghen/blink.cmp",
optional = true,
dependencies = { "tzachar/cmp-tabnine", "saghen/blink.compat" },
opts = {
sources = {
compat = { "cmp_tabnine" },
providers = {
cmp_tabnine = {
kind = "TabNine",
score_offset = 100,
async = true,
},
},
},
},
},
-- Show TabNine status in lualine
{
"nvim-lualine/lualine.nvim",

View file

@ -1,3 +1,4 @@
---@diagnostic disable: missing-fields
if lazyvim_docs then
-- set to `true` to follow the main branch
-- you need to have a working rust toolchain to build the plugin
@ -8,6 +9,7 @@ end
return {
{
"hrsh7th/nvim-cmp",
optional = true,
enabled = false,
},
{
@ -17,66 +19,98 @@ return {
opts_extend = {
"sources.completion.enabled_providers",
"sources.compat",
"sources.default",
},
dependencies = {
"rafamadriz/friendly-snippets",
-- add blink.compat to dependencies
-- { "saghen/blink.compat", opts = {} },
{
"saghen/blink.compat",
optional = true, -- make optional so it's only enabled if any extras need it
opts = {},
version = not vim.g.lazyvim_blink_main and "*",
},
},
event = "InsertEnter",
event = { "InsertEnter", "CmdlineEnter" },
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
highlight = {
snippets = {
preset = "default",
},
appearance = {
-- sets the fallback highlight groups to nvim-cmp's highlight groups
-- useful for when your theme doesn't support blink.cmp
-- will be removed in a future release, assuming themes add support
use_nvim_cmp_as_default = false,
-- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- adjusts spacing to ensure icons are aligned
nerd_font_variant = "mono",
},
-- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- adjusts spacing to ensure icons are aligned
nerd_font_variant = "mono",
windows = {
autocomplete = {
-- draw = "reversed",
winblend = vim.o.pumblend,
completion = {
accept = {
-- experimental auto-brackets support
auto_brackets = {
enabled = true,
},
},
menu = {
draw = {
treesitter = { "lsp" },
},
},
documentation = {
auto_show = true,
auto_show_delay_ms = 200,
},
ghost_text = {
enabled = vim.g.ai_cmp,
},
},
-- experimental auto-brackets support
accept = { auto_brackets = { enabled = true } },
-- experimental signature help support
-- trigger = { signature_help = { enabled = true } }
-- signature = { enabled = true },
sources = {
-- adding any nvim-cmp sources here will enable them
-- with blink.compat
compat = {},
default = { "lsp", "path", "snippets", "buffer" },
},
cmdline = {
enabled = true,
keymap = {
preset = "cmdline",
["<Right>"] = false,
["<Left>"] = false,
},
completion = {
-- remember to enable your providers here
enabled_providers = { "lsp", "path", "snippets", "buffer" },
list = { selection = { preselect = false } },
menu = {
auto_show = function(ctx)
return vim.fn.getcmdtype() == ":"
end,
},
ghost_text = { enabled = true },
},
},
keymap = {
preset = "enter",
["<Tab>"] = {
LazyVim.cmp.map({ "snippet_forward", "ai_accept" }),
"fallback",
},
["<C-y>"] = { "select_and_accept" },
},
},
---@param opts blink.cmp.Config | { sources: { compat: string[] } }
config = function(_, opts)
if opts.snippets and opts.snippets.preset == "default" then
opts.snippets.expand = LazyVim.cmp.expand
end
-- setup compat sources
local enabled = opts.sources.completion.enabled_providers
local enabled = opts.sources.default
for _, source in ipairs(opts.sources.compat or {}) do
opts.sources.providers[source] = vim.tbl_deep_extend(
"force",
@ -87,6 +121,55 @@ return {
table.insert(enabled, source)
end
end
-- add ai_accept to <Tab> key
if not opts.keymap["<Tab>"] then
if opts.keymap.preset == "super-tab" then -- super-tab
opts.keymap["<Tab>"] = {
require("blink.cmp.keymap.presets").get("super-tab")["<Tab>"][1],
LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }),
"fallback",
}
else -- other presets
opts.keymap["<Tab>"] = {
LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }),
"fallback",
}
end
end
-- Unset custom prop to pass blink.cmp validation
opts.sources.compat = nil
-- check if we need to override symbol kinds
for _, provider in pairs(opts.sources.providers or {}) do
---@cast provider blink.cmp.SourceProviderConfig|{kind?:string}
if provider.kind then
local CompletionItemKind = require("blink.cmp.types").CompletionItemKind
local kind_idx = #CompletionItemKind + 1
CompletionItemKind[kind_idx] = provider.kind
---@diagnostic disable-next-line: no-unknown
CompletionItemKind[provider.kind] = kind_idx
---@type fun(ctx: blink.cmp.Context, items: blink.cmp.CompletionItem[]): blink.cmp.CompletionItem[]
local transform_items = provider.transform_items
---@param ctx blink.cmp.Context
---@param items blink.cmp.CompletionItem[]
provider.transform_items = function(ctx, items)
items = transform_items and transform_items(ctx, items) or items
for _, item in ipairs(items) do
item.kind = kind_idx or item.kind
item.kind_icon = LazyVim.config.icons.kinds[item.kind_name] or item.kind_icon or nil
end
return items
end
-- Unset custom prop to pass blink.cmp validation
provider.kind = nil
end
end
require("blink.cmp").setup(opts)
end,
},
@ -95,7 +178,8 @@ return {
{
"saghen/blink.cmp",
opts = function(_, opts)
opts.kind_icons = LazyVim.config.icons.kinds
opts.appearance = opts.appearance or {}
opts.appearance.kind_icons = vim.tbl_extend("force", opts.appearance.kind_icons or {}, LazyVim.config.icons.kinds)
end,
},
@ -104,18 +188,14 @@ return {
"saghen/blink.cmp",
opts = {
sources = {
completion = {
-- add lazydev to your completion providers
enabled_providers = { "lazydev" },
per_filetype = {
lua = { inherit_defaults = true, "lazydev" },
},
providers = {
lsp = {
-- dont show LuaLS require statements when lazydev has items
fallback_for = { "lazydev" },
},
lazydev = {
name = "LazyDev",
module = "lazydev.integrations.blink",
score_offset = 100, -- show at a higher priority than lsp
},
},
},

View file

@ -1,6 +1,6 @@
return {
-- disable builtin snippet support
{ "garymjr/nvim-snippets", enabled = false },
{ "garymjr/nvim-snippets", optional = true, enabled = false },
-- add luasnip
{
@ -14,6 +14,7 @@ return {
"rafamadriz/friendly-snippets",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_vscode").lazy_load({ paths = { vim.fn.stdpath("config") .. "/snippets" } })
end,
},
},
@ -29,7 +30,15 @@ return {
opts = function()
LazyVim.cmp.actions.snippet_forward = function()
if require("luasnip").jumpable(1) then
require("luasnip").jump(1)
vim.schedule(function()
require("luasnip").jump(1)
end)
return true
end
end
LazyVim.cmp.actions.snippet_stop = function()
if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine?
require("luasnip").unlink_current()
return true
end
end
@ -38,7 +47,7 @@ return {
-- nvim-cmp integration
{
"nvim-cmp",
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "saadparwaiz1/cmp_luasnip" },
opts = function(_, opts)
@ -61,10 +70,8 @@ return {
"saghen/blink.cmp",
optional = true,
opts = {
accept = {
expand_snippet = function(...)
return require("luasnip").lsp_expand(...)
end,
snippets = {
preset = "luasnip",
},
},
},

View file

@ -1,6 +1,6 @@
return {
{
"echasnovski/mini.comment",
"nvim-mini/mini.comment",
event = "VeryLazy",
opts = {
options = {

View file

@ -0,0 +1,171 @@
if lazyvim_docs then
-- Set to `false` to prevent "non-lsp snippets"" from appearing inside completion windows
-- Motivation: Less clutter in completion windows and a more direct usage of snippets
vim.g.lazyvim_mini_snippets_in_completion = true
-- NOTE: Please also read:
-- https://github.com/nvim-mini/mini.nvim/blob/main/readmes/mini-snippets.md#expand
-- :h MiniSnippets-session
-- Example override for your own config:
--[[
return {
{
"nvim-mini/mini.snippets",
opts = function(_, opts)
-- By default, for opts.snippets, the extra for mini.snippets only adds gen_loader.from_lang()
-- This provides a sensible quickstart, integrating with friendly-snippets
-- and your own language-specific snippets
--
-- In order to change opts.snippets, replace the entire table inside your own opts
local snippets, config_path = require("mini.snippets"), vim.fn.stdpath("config")
opts.snippets = { -- override opts.snippets provided by extra...
-- Load custom file with global snippets first (order matters)
snippets.gen_loader.from_file(config_path .. "/snippets/global.json"),
-- Load snippets based on current language by reading files from
-- "snippets/" subdirectories from 'runtimepath' directories.
snippets.gen_loader.from_lang(), -- this is the default in the extra...
}
end,
},
}
--]]
end
local include_in_completion = vim.g.lazyvim_mini_snippets_in_completion == nil
or vim.g.lazyvim_mini_snippets_in_completion
local function expand_from_lsp(snippet)
local insert = MiniSnippets.config.expand.insert or MiniSnippets.default_insert
insert({ body = snippet })
end
local function jump(direction)
local is_active = MiniSnippets.session.get(false) ~= nil
if is_active then
MiniSnippets.session.jump(direction)
return true
end
end
---@type fun(snippets, insert) | nil
local expand_select_override = nil
return {
-- disable builtin snippet support:
{ "garymjr/nvim-snippets", optional = true, enabled = false },
-- disable luasnip:
{ "L3MON4D3/LuaSnip", optional = true, enabled = false },
-- add mini.snippets
desc = "Manage and expand snippets (alternative to Luasnip)",
{
"nvim-mini/mini.snippets",
event = "InsertEnter", -- don't depend on other plugins to load...
dependencies = "rafamadriz/friendly-snippets",
opts = function()
---@diagnostic disable-next-line: duplicate-set-field
LazyVim.cmp.actions.snippet_stop = function() end -- by design, <esc> should not stop the session!
---@diagnostic disable-next-line: duplicate-set-field
LazyVim.cmp.actions.snippet_forward = function()
return jump("next")
end
local mini_snippets = require("mini.snippets")
return {
snippets = { mini_snippets.gen_loader.from_lang() },
-- Following the behavior of vim.snippets,
-- the intended usage of <esc> is to be able to temporarily exit into normal mode for quick edits.
--
-- If you'd rather stop the snippet on <esc>, activate the line below in your own config:
-- mappings = { stop = "<esc>" }, -- <c-c> by default, see :h MiniSnippets-session
expand = {
select = function(snippets, insert)
-- Close completion window on snippet select - vim.ui.select
-- Needed to remove virtual text for fzf-lua and telescope, but not for mini.pick...
local select = expand_select_override or MiniSnippets.default_select
select(snippets, insert)
end,
},
}
end,
},
-- nvim-cmp integration
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = include_in_completion and { "abeldekat/cmp-mini-snippets" } or nil,
opts = function(_, opts)
local cmp = require("cmp")
local cmp_config = require("cmp.config")
opts.snippet = {
expand = function(args)
expand_from_lsp(args.body)
cmp.resubscribe({ "TextChangedI", "TextChangedP" })
cmp_config.set_onetime({ sources = {} })
end,
}
if include_in_completion then
table.insert(opts.sources, { name = "mini_snippets" })
else
expand_select_override = function(snippets, insert)
-- stylua: ignore
if cmp.visible() then cmp.close() end
MiniSnippets.default_select(snippets, insert)
end
end
end,
-- stylua: ignore
-- counterpart to <tab> defined in cmp.mappings
keys = include_in_completion and { { "<s-tab>", function() jump("prev") end, mode = "i" } } or nil,
},
-- blink.cmp integration
{
"saghen/blink.cmp",
optional = true,
opts = function(_, opts)
-- Return early
if include_in_completion then
opts.snippets = { preset = "mini_snippets" }
return
end
-- Standalone --
local blink = require("blink.cmp")
expand_select_override = function(snippets, insert)
-- Schedule, otherwise blink's virtual text is not removed on vim.ui.select
blink.cancel()
vim.schedule(function()
MiniSnippets.default_select(snippets, insert)
end)
end
--
-- Blink performs a require on blink.cmp.sources.snippets.default
-- By removing the source, that default engine will not be used
opts.sources.default = vim.tbl_filter(function(source)
return source ~= "snippets"
end, opts.sources.default)
opts.snippets = { -- need to repeat blink's preset here
expand = function(snippet)
expand_from_lsp(snippet)
blink.resubscribe()
end,
active = function()
return MiniSnippets.session.get(false) ~= nil
end,
jump = function(direction)
jump(direction == -1 and "prev" or "next")
end,
}
end,
},
}

View file

@ -3,13 +3,12 @@
-- to select the text inside, change or modify the surrounding characters,
-- and more.
return {
"echasnovski/mini.surround",
recommended = true,
"nvim-mini/mini.surround",
keys = function(_, keys)
-- Populate the keys based on the user's options
local opts = LazyVim.opts("mini.surround")
local mappings = {
{ opts.mappings.add, desc = "Add Surrounding", mode = { "n", "v" } },
{ opts.mappings.add, desc = "Add Surrounding", mode = { "n", "x" } },
{ opts.mappings.delete, desc = "Delete Surrounding" },
{ opts.mappings.find, desc = "Find Right Surrounding" },
{ opts.mappings.find_left, desc = "Find Left Surrounding" },

View file

@ -1,5 +1,6 @@
return {
"danymat/neogen",
dependencies = LazyVim.has("mini.snippets") and { "mini.snippets" } or {},
cmd = "Neogen",
keys = {
{
@ -17,6 +18,7 @@ return {
local map = {
["LuaSnip"] = "luasnip",
["mini.snippets"] = "mini",
["nvim-snippy"] = "snippy",
["vim-vsnip"] = "vsnip",
}

View file

@ -0,0 +1,121 @@
return {
{
"saghen/blink.cmp",
enabled = false,
optional = true,
},
-- Setup nvim-cmp
{
"hrsh7th/nvim-cmp",
version = false, -- last release is way too old
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
},
-- Not all LSP servers add brackets when completing a function.
-- To better deal with this, LazyVim adds a custom option to cmp,
-- that you can configure. For example:
--
-- ```lua
-- opts = {
-- auto_brackets = { "python" }
-- }
-- ```
opts = function()
-- Register nvim-cmp lsp capabilities
vim.lsp.config("*", { capabilities = require("cmp_nvim_lsp").default_capabilities() })
vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
local cmp = require("cmp")
local defaults = require("cmp.config.default")()
local auto_select = true
return {
auto_brackets = {}, -- configure any filetype to auto add brackets
completion = {
completeopt = "menu,menuone,noinsert" .. (auto_select and "" or ",noselect"),
},
preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None,
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-Space>"] = cmp.mapping.complete(),
["<CR>"] = LazyVim.cmp.confirm({ select = auto_select }),
["<C-y>"] = LazyVim.cmp.confirm({ select = true }),
["<S-CR>"] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<C-CR>"] = function(fallback)
cmp.abort()
fallback()
end,
["<tab>"] = function(fallback)
return LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }, fallback)()
end,
}),
sources = cmp.config.sources({
{ name = "lazydev" },
{ name = "nvim_lsp" },
{ name = "path" },
}, {
{ name = "buffer" },
}),
formatting = {
format = function(entry, item)
local icons = LazyVim.config.icons.kinds
if icons[item.kind] then
item.kind = icons[item.kind] .. item.kind
end
local widths = {
abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40,
menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30,
}
for key, width in pairs(widths) do
if item[key] and vim.fn.strdisplaywidth(item[key]) > width then
item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. ""
end
end
return item
end,
},
experimental = {
-- only show ghost text when we show ai completions
ghost_text = vim.g.ai_cmp and {
hl_group = "CmpGhostText",
} or false,
},
sorting = defaults.sorting,
}
end,
main = "lazyvim.util.cmp",
},
-- snippets
{
"hrsh7th/nvim-cmp",
dependencies = {
{
"garymjr/nvim-snippets",
opts = {
friendly_snippets = true,
},
dependencies = { "rafamadriz/friendly-snippets" },
},
},
opts = function(_, opts)
opts.snippet = {
expand = function(item)
return LazyVim.cmp.expand(item.body)
end,
}
if LazyVim.has("nvim-snippets") then
table.insert(opts.sources, { name = "snippets" })
end
end,
},
}

View file

@ -5,6 +5,9 @@ return {
desc = "Better Yank/Paste",
event = "LazyFile",
opts = {
system_clipboard = {
sync_with_ring = not vim.env.SSH_CONNECTION,
},
highlight = { timer = 150 },
},
keys = {
@ -13,6 +16,8 @@ return {
function()
if LazyVim.pick.picker.name == "telescope" then
require("telescope").extensions.yank_history.yank_history({})
elseif LazyVim.pick.picker.name == "snacks" then
Snacks.picker.yanky()
else
vim.cmd([[YankyRingHistory]])
end

View file

@ -33,7 +33,6 @@ return {
-- stylua: ignore
keys = {
{ "<leader>d", "", desc = "+debug", mode = {"n", "v"} },
{ "<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 = "Run/Continue" },
@ -46,7 +45,7 @@ return {
{ "<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>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" },
@ -85,7 +84,7 @@ return {
-- 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"} },
{ "<leader>de", function() require("dapui").eval() end, desc = "Eval", mode = {"n", "x"} },
},
opts = {},
config = function(_, opts)

View file

@ -19,8 +19,8 @@ return {
keys = {
{ "<C-a>", function() return M.dial(true) end, expr = true, desc = "Increment", mode = {"n", "v"} },
{ "<C-x>", function() return M.dial(false) end, expr = true, desc = "Decrement", mode = {"n", "v"} },
{ "g<C-a>", function() return M.dial(true, true) end, expr = true, desc = "Increment", mode = {"n", "v"} },
{ "g<C-x>", function() return M.dial(false, true) end, expr = true, desc = "Decrement", mode = {"n", "v"} },
{ "g<C-a>", function() return M.dial(true, true) end, expr = true, desc = "Increment", mode = {"n", "x"} },
{ "g<C-x>", function() return M.dial(false, true) end, expr = true, desc = "Decrement", mode = {"n", "x"} },
},
opts = function()
local augend = require("dial.augend")
@ -53,20 +53,6 @@ return {
cyclic = true,
})
local weekdays = augend.constant.new({
elements = {
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
},
word = true,
cyclic = true,
})
local months = augend.constant.new({
elements = {
"January",
@ -86,15 +72,6 @@ return {
cyclic = true,
})
local capitalized_boolean = augend.constant.new({
elements = {
"True",
"False",
},
word = true,
cyclic = true,
})
return {
dials_by_ft = {
css = "css",
@ -106,43 +83,33 @@ return {
json = "json",
lua = "lua",
markdown = "markdown",
python = "python",
sass = "css",
scss = "css",
yaml = "yaml",
python = "python",
},
groups = {
default = {
augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...)
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.)
augend.date.alias["%Y/%m/%d"], -- date (2022/02/19, etc.)
augend.constant.alias.en_weekday, -- Mon, Tue, ..., Sat, Sun
augend.constant.alias.en_weekday_full, -- Monday, Tuesday, ..., Saturday, Sunday
ordinal_numbers,
weekdays,
months,
capitalized_boolean,
augend.constant.alias.bool, -- boolean value (true <-> false)
augend.constant.alias.Bool, -- boolean value (True <-> False)
logical_alias,
},
vue = {
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
logical_alias,
augend.constant.new({ elements = { "let", "const" } }),
augend.hexcolor.new({ case = "lower" }),
augend.hexcolor.new({ case = "upper" }),
},
typescript = {
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
logical_alias,
augend.constant.new({ elements = { "let", "const" } }),
},
yaml = {
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
},
css = {
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
augend.hexcolor.new({
case = "lower",
}),
@ -151,15 +118,17 @@ return {
}),
},
markdown = {
augend.constant.new({
elements = { "[ ]", "[x]" },
word = false,
cyclic = true,
}),
augend.misc.alias.markdown_header,
},
json = {
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
augend.semver.alias.semver, -- versioning (v1.1.2)
},
lua = {
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
augend.constant.new({
elements = { "and", "or" },
word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.
@ -167,14 +136,20 @@ return {
}),
},
python = {
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
capitalized_boolean,
logical_alias,
augend.constant.new({
elements = { "and", "or" },
}),
},
},
}
end,
config = function(_, opts)
-- copy defaults to each group
for name, group in pairs(opts.groups) do
if name ~= "default" then
vim.list_extend(group, opts.groups.default)
end
end
require("dial.config").augends:register_group(opts.groups)
vim.g.dials_by_ft = opts.dials_by_ft
end,

View file

@ -40,13 +40,13 @@ end
return {
desc = "Awesome picker for FZF (alternative to Telescope)",
recommended = true,
{
"ibhagwan/fzf-lua",
cmd = "FzfLua",
opts = function(_, opts)
local config = require("fzf-lua.config")
local actions = require("fzf-lua.actions")
local fzf = require("fzf-lua")
local config = fzf.config
local actions = fzf.actions
-- Quickfix
config.defaults.keymap.fzf["ctrl-q"] = "select-all+accept"
@ -120,9 +120,9 @@ return {
winopts = {
layout = "vertical",
-- height is number of items minus 15 lines for the preview, with a max of 80% screen height
height = math.floor(math.min(vim.o.lines * 0.8 - 16, #items + 2) + 0.5) + 16,
height = math.floor(math.min(vim.o.lines * 0.8 - 16, #items + 4) + 0.5) + 16,
width = 0.5,
preview = not vim.tbl_isempty(LazyVim.lsp.get_clients({ bufnr = 0, name = "vtsls" })) and {
preview = not vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0, name = "vtsls" })) and {
layout = "vertical",
vertical = "down:15,border-top",
hidden = "hidden",
@ -135,7 +135,7 @@ return {
winopts = {
width = 0.5,
-- height is number of items, with a max of 80% screen height
height = math.floor(math.min(vim.o.lines * 0.8, #items + 2) + 0.5),
height = math.floor(math.min(vim.o.lines * 0.8, #items + 4) + 0.5),
},
})
end,
@ -218,6 +218,7 @@ return {
{ "<leader><space>", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },
-- find
{ "<leader>fb", "<cmd>FzfLua buffers sort_mru=true sort_lastused=true<cr>", desc = "Buffers" },
{ "<leader>fB", "<cmd>FzfLua buffers<cr>", desc = "Buffers (all)" },
{ "<leader>fc", LazyVim.pick.config_files(), desc = "Find Config File" },
{ "<leader>ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },
{ "<leader>fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" },
@ -226,15 +227,19 @@ return {
{ "<leader>fR", LazyVim.pick("oldfiles", { cwd = vim.uv.cwd() }), desc = "Recent (cwd)" },
-- git
{ "<leader>gc", "<cmd>FzfLua git_commits<CR>", desc = "Commits" },
{ "<leader>gd", "<cmd>FzfLua git_diff<cr>", desc = "Git Diff (files)" },
{ "<leader>gl", "<cmd>FzfLua git_commits<CR>", desc = "Commits" },
{ "<leader>gs", "<cmd>FzfLua git_status<CR>", desc = "Status" },
{ "<leader>gS", "<cmd>FzfLua git_stash<cr>", desc = "Git Stash" },
-- search
{ '<leader>s"', "<cmd>FzfLua registers<cr>", desc = "Registers" },
{ "<leader>s/", "<cmd>FzfLua search_history<cr>", desc = "Search History" },
{ "<leader>sa", "<cmd>FzfLua autocmds<cr>", desc = "Auto Commands" },
{ "<leader>sb", "<cmd>FzfLua grep_curbuf<cr>", desc = "Buffer" },
{ "<leader>sb", "<cmd>FzfLua lines<cr>", desc = "Buffer Lines" },
{ "<leader>sc", "<cmd>FzfLua command_history<cr>", desc = "Command History" },
{ "<leader>sC", "<cmd>FzfLua commands<cr>", desc = "Commands" },
{ "<leader>sd", "<cmd>FzfLua diagnostics_document<cr>", desc = "Document Diagnostics" },
{ "<leader>sD", "<cmd>FzfLua diagnostics_workspace<cr>", desc = "Workspace Diagnostics" },
{ "<leader>sd", "<cmd>FzfLua diagnostics_workspace<cr>", desc = "Diagnostics" },
{ "<leader>sD", "<cmd>FzfLua diagnostics_document<cr>", desc = "Buffer Diagnostics" },
{ "<leader>sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },
{ "<leader>sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" },
{ "<leader>sh", "<cmd>FzfLua help_tags<cr>", desc = "Help Pages" },
@ -248,8 +253,8 @@ return {
{ "<leader>sq", "<cmd>FzfLua quickfix<cr>", desc = "Quickfix List" },
{ "<leader>sw", LazyVim.pick("grep_cword"), desc = "Word (Root Dir)" },
{ "<leader>sW", LazyVim.pick("grep_cword", { root = false }), desc = "Word (cwd)" },
{ "<leader>sw", LazyVim.pick("grep_visual"), mode = "v", desc = "Selection (Root Dir)" },
{ "<leader>sW", LazyVim.pick("grep_visual", { root = false }), mode = "v", desc = "Selection (cwd)" },
{ "<leader>sw", LazyVim.pick("grep_visual"), mode = "x", desc = "Selection (Root Dir)" },
{ "<leader>sW", LazyVim.pick("grep_visual", { root = false }), mode = "x", desc = "Selection (cwd)" },
{ "<leader>uC", LazyVim.pick("colorschemes"), desc = "Colorscheme with Preview" },
{
"<leader>ss",
@ -284,15 +289,18 @@ return {
{
"neovim/nvim-lspconfig",
opts = function()
local Keys = require("lazyvim.plugins.lsp.keymaps").get()
-- stylua: ignore
vim.list_extend(Keys, {
{ "gd", "<cmd>FzfLua lsp_definitions jump_to_single_result=true ignore_current_line=true<cr>", desc = "Goto Definition", has = "definition" },
{ "gr", "<cmd>FzfLua lsp_references jump_to_single_result=true ignore_current_line=true<cr>", desc = "References", nowait = true },
{ "gI", "<cmd>FzfLua lsp_implementations jump_to_single_result=true ignore_current_line=true<cr>", desc = "Goto Implementation" },
{ "gy", "<cmd>FzfLua lsp_typedefs jump_to_single_result=true ignore_current_line=true<cr>", desc = "Goto T[y]pe Definition" },
})
end,
opts = {
servers = {
-- stylua: ignore
["*"] = {
keys = {
{ "gd", "<cmd>FzfLua lsp_definitions jump1=true ignore_current_line=true<cr>", desc = "Goto Definition", has = "definition" },
{ "gr", "<cmd>FzfLua lsp_references jump1=true ignore_current_line=true<cr>", desc = "References", nowait = true },
{ "gI", "<cmd>FzfLua lsp_implementations jump1=true ignore_current_line=true<cr>", desc = "Goto Implementation" },
{ "gy", "<cmd>FzfLua lsp_typedefs jump1=true ignore_current_line=true<cr>", desc = "Goto T[y]pe Definition" },
}
},
},
},
},
}

View file

@ -28,7 +28,7 @@ return {
},
}
for i = 1, 5 do
for i = 1, 9 do
table.insert(keys, {
"<leader>" .. i,
function()

View file

@ -2,6 +2,9 @@
-- This works with LSP, Treesitter, and regexp matching to find the other
-- instances.
return {
-- disable snacks words
{ "snacks.nvim", opts = { words = { enabled = false } } },
{
"RRethy/vim-illuminate",
event = "LazyFile",
@ -53,8 +56,4 @@ return {
{ "[[", desc = "Prev Reference" },
},
},
{
"neovim/nvim-lspconfig",
opts = { document_highlight = { enabled = false } },
},
}

View file

@ -12,19 +12,24 @@ return {
-- LSP Keymaps
{
"neovim/nvim-lspconfig",
opts = function()
local keys = require("lazyvim.plugins.lsp.keymaps").get()
keys[#keys + 1] = {
"<leader>cr",
function()
local inc_rename = require("inc_rename")
return ":" .. inc_rename.config.cmd_name .. " " .. vim.fn.expand("<cword>")
end,
expr = true,
desc = "Rename (inc-rename.nvim)",
has = "rename",
}
end,
opts = {
servers = {
["*"] = {
keys = {
{
"<leader>cr",
function()
local inc_rename = require("inc_rename")
return ":" .. inc_rename.config.cmd_name .. " " .. vim.fn.expand("<cword>")
end,
expr = true,
desc = "Rename (inc-rename.nvim)",
has = "rename",
},
},
},
},
},
},
--- Noice integration

View file

@ -4,7 +4,7 @@ return {
-- easily jump to any location and enhanced f/t motions for Leap
{
"ggandor/flit.nvim",
url = "https://codeberg.org/andyg/leap.nvim.git",
enabled = true,
keys = function()
---@type LazyKeysSpec[]
@ -17,7 +17,7 @@ return {
opts = { labeled_modes = "nx" },
},
{
"ggandor/leap.nvim",
url = "https://codeberg.org/andyg/leap.nvim.git",
enabled = true,
keys = {
{ "s", mode = { "n", "x", "o" }, desc = "Leap Forward to" },
@ -37,7 +37,7 @@ return {
-- rename surround mappings from gs to gz to prevent conflict with leap
{
"echasnovski/mini.surround",
"nvim-mini/mini.surround",
optional = true,
opts = {
mappings = {

View file

@ -7,7 +7,7 @@ return {
-- setup mini.diff
{
"echasnovski/mini.diff",
"nvim-mini/mini.diff",
event = "VeryLazy",
keys = {
{
@ -29,6 +29,29 @@ return {
},
},
},
{
"mini.diff",
opts = function()
Snacks.toggle({
name = "Mini Diff Signs",
get = function()
return vim.g.minidiff_disable ~= true
end,
set = function(state)
vim.g.minidiff_disable = not state
if state then
require("mini.diff").enable(0)
else
require("mini.diff").disable(0)
end
-- HACK: redraw to update the signs
vim.defer_fn(function()
vim.cmd([[redraw!]])
end, 200)
end,
}):map("<leader>uG")
end,
},
-- lualine integration
{

View file

@ -1,5 +1,5 @@
return {
"echasnovski/mini.files",
"nvim-mini/mini.files",
opts = {
windows = {
preview = true,

View file

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

View file

@ -7,13 +7,11 @@ return {
lazy = true,
init = function()
vim.g.navic_silence = true
LazyVim.lsp.on_attach(function(client, buffer)
if client.supports_method("textDocument/documentSymbol") then
require("nvim-navic").attach(client, buffer)
end
end)
end,
opts = function()
Snacks.util.lsp.on({ method = "textDocument/documentSymbol" }, function(buffer, client)
require("nvim-navic").attach(client, buffer)
end)
return {
separator = " ",
highlight = true,

View file

@ -0,0 +1,128 @@
return {
-- file explorer
{
"nvim-neo-tree/neo-tree.nvim",
cmd = "Neotree",
keys = {
{
"<leader>fe",
function()
require("neo-tree.command").execute({ toggle = true, dir = LazyVim.root() })
end,
desc = "Explorer NeoTree (Root Dir)",
},
{
"<leader>fE",
function()
require("neo-tree.command").execute({ toggle = true, dir = vim.uv.cwd() })
end,
desc = "Explorer NeoTree (cwd)",
},
{ "<leader>e", "<leader>fe", desc = "Explorer NeoTree (Root Dir)", remap = true },
{ "<leader>E", "<leader>fE", desc = "Explorer NeoTree (cwd)", remap = true },
{
"<leader>ge",
function()
require("neo-tree.command").execute({ source = "git_status", toggle = true })
end,
desc = "Git Explorer",
},
{
"<leader>be",
function()
require("neo-tree.command").execute({ source = "buffers", toggle = true })
end,
desc = "Buffer Explorer",
},
},
deactivate = function()
vim.cmd([[Neotree close]])
end,
init = function()
-- FIX: use `autocmd` for lazy-loading neo-tree instead of directly requiring it,
-- because `cwd` is not set up properly.
vim.api.nvim_create_autocmd("BufEnter", {
group = vim.api.nvim_create_augroup("Neotree_start_directory", { clear = true }),
desc = "Start Neo-tree with directory",
once = true,
callback = function()
if package.loaded["neo-tree"] then
return
else
local stats = vim.uv.fs_stat(vim.fn.argv(0))
if stats and stats.type == "directory" then
require("neo-tree")
end
end
end,
})
end,
opts = {
sources = { "filesystem", "buffers", "git_status" },
open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" },
filesystem = {
bind_to_cwd = false,
follow_current_file = { enabled = true },
use_libuv_file_watcher = true,
},
window = {
mappings = {
["l"] = "open",
["h"] = "close_node",
["<space>"] = "none",
["Y"] = {
function(state)
local node = state.tree:get_node()
local path = node:get_id()
vim.fn.setreg("+", path, "c")
end,
desc = "Copy Path to Clipboard",
},
["O"] = {
function(state)
require("lazy.util").open(state.tree:get_node().path, { system = true })
end,
desc = "Open with System Application",
},
["P"] = { "toggle_preview", config = { use_float = false } },
},
},
default_component_configs = {
indent = {
with_expanders = true, -- if nil and file nesting is enabled, will enable expanders
expander_collapsed = "",
expander_expanded = "",
expander_highlight = "NeoTreeExpander",
},
git_status = {
symbols = {
unstaged = "󰄱",
staged = "󰱒",
},
},
},
},
config = function(_, opts)
local function on_move(data)
Snacks.rename.on_rename_file(data.source, data.destination)
end
local events = require("neo-tree.events")
opts.event_handlers = opts.event_handlers or {}
vim.list_extend(opts.event_handlers, {
{ event = events.FILE_MOVED, handler = on_move },
{ event = events.FILE_RENAMED, handler = on_move },
})
require("neo-tree").setup(opts)
vim.api.nvim_create_autocmd("TermClose", {
pattern = "*lazygit",
callback = function()
if package.loaded["neo-tree.sources.git_status"] then
require("neo-tree.sources.git_status").refresh()
end
end,
})
end,
},
}

View file

@ -8,29 +8,20 @@ return {
},
{
"stevearc/overseer.nvim",
lazy = false, -- plugin is self-lazy-loading
cmd = {
"OverseerOpen",
"OverseerClose",
"OverseerToggle",
"OverseerSaveBundle",
"OverseerLoadBundle",
"OverseerDeleteBundle",
"OverseerRunCmd",
"OverseerRun",
"OverseerInfo",
"OverseerBuild",
"OverseerQuickAction",
"OverseerTaskAction",
"OverseerClearCache",
},
opts = {
dap = false,
task_list = {
bindings = {
["<C-h>"] = false,
keymaps = {
["<C-j>"] = false,
["<C-k>"] = false,
["<C-l>"] = false,
},
},
form = {
@ -38,11 +29,6 @@ return {
winblend = 0,
},
},
confirm = {
win_opts = {
winblend = 0,
},
},
task_win = {
win_opts = {
winblend = 0,
@ -51,13 +37,9 @@ return {
},
-- stylua: ignore
keys = {
{ "<leader>ow", "<cmd>OverseerToggle<cr>", desc = "Task list" },
{ "<leader>oo", "<cmd>OverseerRun<cr>", desc = "Run task" },
{ "<leader>oq", "<cmd>OverseerQuickAction<cr>", desc = "Action recent task" },
{ "<leader>oi", "<cmd>OverseerInfo<cr>", desc = "Overseer Info" },
{ "<leader>ob", "<cmd>OverseerBuild<cr>", desc = "Task builder" },
{ "<leader>ot", "<cmd>OverseerTaskAction<cr>", desc = "Task action" },
{ "<leader>oc", "<cmd>OverseerClearCache<cr>", desc = "Clear cache" },
{ "<leader>ow", "<cmd>OverseerToggle!<cr>", desc = "Task list" },
{ "<leader>oo", "<cmd>OverseerRun<cr>", desc = "Run task" },
{ "<leader>ot", "<cmd>OverseerTaskAction<cr>", desc = "Task action" },
},
},
{

View file

@ -1,147 +1,88 @@
local pick = function()
if LazyVim.pick.picker.name == "telescope" then
return require("telescope").extensions.refactoring.refactors()
elseif LazyVim.pick.picker.name == "fzf" then
local fzf_lua = require("fzf-lua")
local results = require("refactoring").get_refactors()
local refactoring = require("refactoring")
local opts = {
fzf_opts = {},
fzf_colors = true,
actions = {
["default"] = function(selected)
refactoring.refactor(selected[1])
end,
},
}
fzf_lua.fzf_exec(results, opts)
if LazyVim.has_extra("editor.refactoring") then
if vim.fn.has("nvim-0.12") == 0 then
LazyVim.error("refactoring.nvim requires Neovim 0.12 or higher", { title = "refactoring.nvim" })
return {}
end
end
return {
{ "lewis6991/async.nvim", lazy = true },
{
"ThePrimeagen/refactoring.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
keys = {
{ "<leader>r", "", desc = "+refactor", mode = { "n", "v" } },
{ "<leader>r", "", desc = "+refactor", mode = { "n", "x" } },
{
"<leader>rs",
pick,
mode = "v",
desc = "Refactor",
function()
return require("refactoring").select_refactor()
end,
mode = { "n", "x" },
desc = "Select Refactor",
},
{
"<leader>ri",
function()
require("refactoring").refactor("Inline Variable")
return require("refactoring").inline_var()
end,
mode = { "n", "v" },
mode = { "n", "x" },
desc = "Inline Variable",
},
{
"<leader>rb",
function()
require("refactoring").refactor("Extract Block")
end,
desc = "Extract Block",
},
{
"<leader>rf",
function()
require("refactoring").refactor("Extract Block To File")
end,
desc = "Extract Block To File",
expr = true,
},
{
"<leader>rP",
function()
require("refactoring").debug.printf({ below = false })
return require("refactoring.debug").print_loc({ output_location = "below" })
end,
desc = "Debug Print",
desc = "Debug Print Location",
expr = true,
},
{
"<leader>rp",
function()
require("refactoring").debug.print_var({ normal = true })
return require("refactoring.debug").print_var({ output_location = "below" }) .. "iw"
end,
mode = { "n", "x" },
desc = "Debug Print Variable",
expr = true,
},
{
"<leader>rc",
function()
require("refactoring").debug.cleanup({})
return require("refactoring.debug").cleanup({ restore_view = true }) .. "ag"
end,
desc = "Debug Cleanup",
expr = true,
},
{
"<leader>rf",
function()
require("refactoring").refactor("Extract Function")
return require("refactoring").extract_func()
end,
mode = "v",
mode = { "n", "x" },
desc = "Extract Function",
expr = true,
},
{
"<leader>rF",
function()
require("refactoring").refactor("Extract Function To File")
return require("refactoring").extract_func_to_file()
end,
mode = "v",
mode = { "n", "x" },
desc = "Extract Function To File",
expr = true,
},
{
"<leader>rx",
function()
require("refactoring").refactor("Extract Variable")
return require("refactoring").extract_var()
end,
mode = "v",
mode = { "n", "x" },
desc = "Extract Variable",
},
{
"<leader>rp",
function()
require("refactoring").debug.print_var()
end,
mode = "v",
desc = "Debug Print Variable",
expr = true,
},
},
opts = {
prompt_func_return_type = {
go = false,
java = false,
cpp = false,
c = false,
h = false,
hpp = false,
cxx = false,
},
prompt_func_param_type = {
go = false,
java = false,
cpp = false,
c = false,
h = false,
hpp = false,
cxx = false,
},
printf_statements = {},
print_var_statements = {},
show_success_message = true, -- shows a message with information about the refactor on success
-- i.e. [Refactor] Inlined 3 variable occurrences
},
config = function(_, opts)
require("refactoring").setup(opts)
if LazyVim.has("telescope.nvim") then
LazyVim.on_load("telescope.nvim", function()
require("telescope").load_extension("refactoring")
end)
end
end,
opts = {},
},
}

View file

@ -0,0 +1,24 @@
return {
desc = "Snacks File Explorer",
recommended = true,
"folke/snacks.nvim",
opts = { explorer = {} },
keys = {
{
"<leader>fe",
function()
Snacks.explorer({ cwd = LazyVim.root() })
end,
desc = "Explorer Snacks (root dir)",
},
{
"<leader>fE",
function()
Snacks.explorer()
end,
desc = "Explorer Snacks (cwd)",
},
{ "<leader>e", "<leader>fe", desc = "Explorer Snacks (root dir)", remap = true },
{ "<leader>E", "<leader>fE", desc = "Explorer Snacks (cwd)", remap = true },
},
}

View file

@ -0,0 +1,265 @@
if lazyvim_docs then
-- In case you don't want to use `:LazyExtras`,
-- then you need to set the option below.
vim.g.lazyvim_picker = "snacks"
end
---@module 'snacks'
---@type LazyPicker
local picker = {
name = "snacks",
commands = {
files = "files",
live_grep = "grep",
oldfiles = "recent",
},
---@param source string
---@param opts? snacks.picker.Config
open = function(source, opts)
return Snacks.picker.pick(source, opts)
end,
}
if not LazyVim.pick.register(picker) then
return {}
end
return {
desc = "Fast and modern file picker",
recommended = true,
{
"folke/snacks.nvim",
opts = {
picker = {
win = {
input = {
keys = {
["<a-c>"] = {
"toggle_cwd",
mode = { "n", "i" },
},
},
},
},
actions = {
---@param p snacks.Picker
toggle_cwd = function(p)
local root = LazyVim.root({ buf = p.input.filter.current_buf, normalize = true })
local cwd = vim.fs.normalize((vim.uv or vim.loop).cwd() or ".")
local current = p:cwd()
p:set_cwd(current == root and cwd or root)
p:find()
end,
},
},
},
-- stylua: ignore
keys = {
{ "<leader>,", function() Snacks.picker.buffers() end, desc = "Buffers" },
{ "<leader>/", LazyVim.pick("grep"), desc = "Grep (Root Dir)" },
{ "<leader>:", function() Snacks.picker.command_history() end, desc = "Command History" },
{ "<leader><space>", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },
{ "<leader>n", function() Snacks.picker.notifications() end, desc = "Notification History" },
-- find
{ "<leader>fb", function() Snacks.picker.buffers() end, desc = "Buffers" },
{ "<leader>fB", function() Snacks.picker.buffers({ hidden = true, nofile = true }) end, desc = "Buffers (all)" },
{ "<leader>fc", LazyVim.pick.config_files(), desc = "Find Config File" },
{ "<leader>ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },
{ "<leader>fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" },
{ "<leader>fg", function() Snacks.picker.git_files() end, desc = "Find Files (git-files)" },
{ "<leader>fr", LazyVim.pick("oldfiles"), desc = "Recent" },
{ "<leader>fR", function() Snacks.picker.recent({ filter = { cwd = true }}) end, desc = "Recent (cwd)" },
{ "<leader>fp", function() Snacks.picker.projects() end, desc = "Projects" },
-- git
{ "<leader>gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (hunks)" },
{ "<leader>gD", function() Snacks.picker.git_diff({ base = "origin", group = true }) end, desc = "Git Diff (origin)" },
{ "<leader>gs", function() Snacks.picker.git_status() end, desc = "Git Status" },
{ "<leader>gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" },
{ "<leader>gi", function() Snacks.picker.gh_issue() end, desc = "GitHub Issues (open)" },
{ "<leader>gI", function() Snacks.picker.gh_issue({ state = "all" }) end, desc = "GitHub Issues (all)" },
{ "<leader>gp", function() Snacks.picker.gh_pr() end, desc = "GitHub Pull Requests (open)" },
{ "<leader>gP", function() Snacks.picker.gh_pr({ state = "all" }) end, desc = "GitHub Pull Requests (all)" },
-- Grep
{ "<leader>sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" },
{ "<leader>sB", function() Snacks.picker.grep_buffers() end, desc = "Grep Open Buffers" },
{ "<leader>sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },
{ "<leader>sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" },
{ "<leader>sp", function() Snacks.picker.lazy() end, desc = "Search for Plugin Spec" },
{ "<leader>sw", LazyVim.pick("grep_word"), desc = "Visual selection or word (Root Dir)", mode = { "n", "x" } },
{ "<leader>sW", LazyVim.pick("grep_word", { root = false }), desc = "Visual selection or word (cwd)", mode = { "n", "x" } },
-- search
{ '<leader>s"', function() Snacks.picker.registers() end, desc = "Registers" },
{ '<leader>s/', function() Snacks.picker.search_history() end, desc = "Search History" },
{ "<leader>sa", function() Snacks.picker.autocmds() end, desc = "Autocmds" },
{ "<leader>sc", function() Snacks.picker.command_history() end, desc = "Command History" },
{ "<leader>sC", function() Snacks.picker.commands() end, desc = "Commands" },
{ "<leader>sd", function() Snacks.picker.diagnostics() end, desc = "Diagnostics" },
{ "<leader>sD", function() Snacks.picker.diagnostics_buffer() end, desc = "Buffer Diagnostics" },
{ "<leader>sh", function() Snacks.picker.help() end, desc = "Help Pages" },
{ "<leader>sH", function() Snacks.picker.highlights() end, desc = "Highlights" },
{ "<leader>si", function() Snacks.picker.icons() end, desc = "Icons" },
{ "<leader>sj", function() Snacks.picker.jumps() end, desc = "Jumps" },
{ "<leader>sk", function() Snacks.picker.keymaps() end, desc = "Keymaps" },
{ "<leader>sl", function() Snacks.picker.loclist() end, desc = "Location List" },
{ "<leader>sM", function() Snacks.picker.man() end, desc = "Man Pages" },
{ "<leader>sm", function() Snacks.picker.marks() end, desc = "Marks" },
{ "<leader>sR", function() Snacks.picker.resume() end, desc = "Resume" },
{ "<leader>sq", function() Snacks.picker.qflist() end, desc = "Quickfix List" },
{ "<leader>su", function() Snacks.picker.undo() end, desc = "Undotree" },
-- ui
{ "<leader>uC", function() Snacks.picker.colorschemes() end, desc = "Colorschemes" },
},
},
{
"folke/snacks.nvim",
opts = function(_, opts)
if LazyVim.has("trouble.nvim") then
return vim.tbl_deep_extend("force", opts or {}, {
picker = {
actions = {
trouble_open = function(...)
return require("trouble.sources.snacks").actions.trouble_open.action(...)
end,
},
win = {
input = {
keys = {
["<a-t>"] = {
"trouble_open",
mode = { "n", "i" },
},
},
},
},
},
})
end
end,
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
["*"] = {
-- stylua: ignore
keys = {
{ "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition", has = "definition" },
{ "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" },
{ "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" },
{ "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" },
{ "<leader>ss", function() Snacks.picker.lsp_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Symbols", has = "documentSymbol" },
{ "<leader>sS", function() Snacks.picker.lsp_workspace_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Workspace Symbols", has = "workspace/symbols" },
{ "gai", function() Snacks.picker.lsp_incoming_calls() end, desc = "C[a]lls Incoming", has = "callHierarchy/incomingCalls" },
{ "gao", function() Snacks.picker.lsp_outgoing_calls() end, desc = "C[a]lls Outgoing", has = "callHierarchy/outgoingCalls" },
},
},
},
},
},
{
"folke/todo-comments.nvim",
optional = true,
-- stylua: ignore
keys = {
{ "<leader>st", function() Snacks.picker.todo_comments() end, desc = "Todo" },
{ "<leader>sT", function () Snacks.picker.todo_comments({ keywords = { "TODO", "FIX", "FIXME" } }) end, desc = "Todo/Fix/Fixme" },
},
},
{
"folke/snacks.nvim",
opts = function(_, opts)
table.insert(opts.dashboard.preset.keys, 3, {
icon = "",
key = "p",
desc = "Projects",
action = ":lua Snacks.picker.projects()",
})
end,
},
{
"goolord/alpha-nvim",
optional = true,
opts = function(_, dashboard)
local button = dashboard.button("p", "" .. " Projects", [[<cmd> lua Snacks.picker.projects() <cr>]])
button.opts.hl = "AlphaButtons"
button.opts.hl_shortcut = "AlphaShortcut"
table.insert(dashboard.section.buttons.val, 4, button)
end,
},
{
"nvim-mini/mini.starter",
optional = true,
opts = function(_, opts)
local items = {
{
name = "Projects",
action = [[lua Snacks.picker.projects()]],
section = string.rep(" ", 22) .. "Telescope",
},
}
vim.list_extend(opts.items, items)
end,
},
{
"nvimdev/dashboard-nvim",
optional = true,
opts = function(_, opts)
if not vim.tbl_get(opts, "config", "center") then
return
end
local projects = {
action = "lua Snacks.picker.projects()",
desc = " Projects",
icon = "",
key = "p",
}
projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)
projects.key_format = " %s"
table.insert(opts.config.center, 3, projects)
end,
},
{
"folke/flash.nvim",
optional = true,
specs = {
{
"folke/snacks.nvim",
opts = {
picker = {
win = {
input = {
keys = {
["<a-s>"] = { "flash", mode = { "n", "i" } },
["s"] = { "flash" },
},
},
},
actions = {
flash = function(picker)
require("flash").jump({
pattern = "^",
label = { after = { 0, 0 } },
search = {
mode = "search",
exclude = {
function(win)
return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "snacks_picker_list"
end,
},
},
action = function(match)
local idx = picker.list:row2idx(match.pos[1])
picker.list:_move(idx, true, true)
end,
})
end,
},
},
},
},
},
},
}

View file

@ -61,9 +61,6 @@ return {
{
"nvim-telescope/telescope.nvim",
cmd = "Telescope",
enabled = function()
return LazyVim.pick.want() == "telescope"
end,
version = false, -- telescope did only one release, so use HEAD for now
dependencies = {
{
@ -104,6 +101,7 @@ return {
"<cmd>Telescope buffers sort_mru=true sort_lastused=true ignore_current_buffer=true<cr>",
desc = "Buffers",
},
{ "<leader>fB", "<cmd>Telescope buffers<cr>", desc = "Buffers (all)" },
{ "<leader>fc", LazyVim.pick.config_files(), desc = "Find Config File" },
{ "<leader>ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },
{ "<leader>fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" },
@ -112,15 +110,18 @@ return {
{ "<leader>fR", LazyVim.pick("oldfiles", { cwd = vim.uv.cwd() }), desc = "Recent (cwd)" },
-- git
{ "<leader>gc", "<cmd>Telescope git_commits<CR>", desc = "Commits" },
{ "<leader>gl", "<cmd>Telescope git_commits<CR>", desc = "Commits" },
{ "<leader>gs", "<cmd>Telescope git_status<CR>", desc = "Status" },
{ "<leader>gS", "<cmd>Telescope git_stash<cr>", desc = "Git Stash" },
-- search
{ '<leader>s"', "<cmd>Telescope registers<cr>", desc = "Registers" },
{ "<leader>s/", "<cmd>Telescope search_history<cr>", desc = "Search History" },
{ "<leader>sa", "<cmd>Telescope autocommands<cr>", desc = "Auto Commands" },
{ "<leader>sb", "<cmd>Telescope current_buffer_fuzzy_find<cr>", desc = "Buffer" },
{ "<leader>sb", "<cmd>Telescope current_buffer_fuzzy_find<cr>", desc = "Buffer Lines" },
{ "<leader>sc", "<cmd>Telescope command_history<cr>", desc = "Command History" },
{ "<leader>sC", "<cmd>Telescope commands<cr>", desc = "Commands" },
{ "<leader>sd", "<cmd>Telescope diagnostics bufnr=0<cr>", desc = "Document Diagnostics" },
{ "<leader>sD", "<cmd>Telescope diagnostics<cr>", desc = "Workspace Diagnostics" },
{ "<leader>sd", "<cmd>Telescope diagnostics<cr>", desc = "Diagnostics" },
{ "<leader>sD", "<cmd>Telescope diagnostics bufnr=0<cr>", desc = "Buffer Diagnostics" },
{ "<leader>sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },
{ "<leader>sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" },
{ "<leader>sh", "<cmd>Telescope help_tags<cr>", desc = "Help Pages" },
@ -135,8 +136,8 @@ return {
{ "<leader>sq", "<cmd>Telescope quickfix<cr>", desc = "Quickfix List" },
{ "<leader>sw", LazyVim.pick("grep_string", { word_match = "-w" }), desc = "Word (Root Dir)" },
{ "<leader>sW", LazyVim.pick("grep_string", { root = false, word_match = "-w" }), desc = "Word (cwd)" },
{ "<leader>sw", LazyVim.pick("grep_string"), mode = "v", desc = "Selection (Root Dir)" },
{ "<leader>sW", LazyVim.pick("grep_string", { root = false }), mode = "v", desc = "Selection (cwd)" },
{ "<leader>sw", LazyVim.pick("grep_string"), mode = "x", desc = "Selection (Root Dir)" },
{ "<leader>sW", LazyVim.pick("grep_string", { root = false }), mode = "x", desc = "Selection (cwd)" },
{ "<leader>uC", LazyVim.pick("colorscheme", { enable_preview = true }), desc = "Colorscheme with Preview" },
{
"<leader>ss",
@ -267,9 +268,6 @@ return {
{
"stevearc/dressing.nvim",
lazy = true,
enabled = function()
return LazyVim.pick.want() == "telescope"
end,
init = function()
---@diagnostic disable-next-line: duplicate-set-field
vim.ui.select = function(...)
@ -286,18 +284,18 @@ return {
{
"neovim/nvim-lspconfig",
opts = function()
if LazyVim.pick.want() ~= "telescope" then
return
end
local Keys = require("lazyvim.plugins.lsp.keymaps").get()
-- stylua: ignore
vim.list_extend(Keys, {
{ "gd", function() require("telescope.builtin").lsp_definitions({ reuse_win = true }) end, desc = "Goto Definition", has = "definition" },
{ "gr", "<cmd>Telescope lsp_references<cr>", desc = "References", nowait = true },
{ "gI", function() require("telescope.builtin").lsp_implementations({ reuse_win = true }) end, desc = "Goto Implementation" },
{ "gy", function() require("telescope.builtin").lsp_type_definitions({ reuse_win = true }) end, desc = "Goto T[y]pe Definition" },
})
end,
opts = {
servers = {
["*"] = {
-- stylua: ignore
keys = {
{ "gd", function() require("telescope.builtin").lsp_definitions({ reuse_win = true }) end, desc = "Goto Definition", has = "definition" },
{ "gr", "<cmd>Telescope lsp_references<cr>", desc = "References", nowait = true },
{ "gI", function() require("telescope.builtin").lsp_implementations({ reuse_win = true }) end, desc = "Goto Implementation" },
{ "gy", function() require("telescope.builtin").lsp_type_definitions({ reuse_win = true }) end, desc = "Goto T[y]pe Definition" },
},
},
},
},
},
}

View file

@ -1,6 +1,6 @@
return {
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = function(_, opts)
table.insert(opts.ensure_installed, "black")
end,

View file

@ -58,7 +58,7 @@ M.has_parser = LazyVim.memoize(M.has_parser)
return {
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "prettier" } },
},

View file

@ -35,10 +35,10 @@ return {
},
setup = {
angularls = function()
LazyVim.lsp.on_attach(function(client)
Snacks.util.lsp.on({ name = "angularls" }, function(_, client)
--HACK: disable angular renaming capability due to duplicate rename popping up
client.server_capabilities.renameProvider = false
end, "angularls")
end)
end,
},
},

View file

@ -6,7 +6,7 @@ return {
})
end,
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "ansible-lint" } },
},
{
@ -19,13 +19,14 @@ return {
},
{
"mfussenegger/nvim-ansible",
ft = {},
ft = { "yaml" },
keys = {
{
"<leader>ta",
function()
require("ansible").run()
end,
ft = "yaml.ansible",
desc = "Ansible Run Playbook/Role",
silent = true,
},

View file

@ -9,6 +9,8 @@ return {
"compile_commands.json",
"compile_flags.txt",
"configure.ac", -- AutoTools
"meson.build",
"build.ninja",
},
})
end,
@ -21,8 +23,7 @@ return {
{
"p00f/clangd_extensions.nvim",
lazy = true,
config = function() end,
ft = { "c", "cpp", "objc", "objcpp" },
opts = {
inlay_hints = {
inline = false,
@ -58,21 +59,21 @@ return {
-- Ensure mason installs the server
clangd = {
keys = {
{ "<leader>ch", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
{ "<leader>ch", "<cmd>LspClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
},
root_markers = {
"compile_commands.json",
"compile_flags.txt",
"configure.ac", -- AutoTools
"Makefile",
"configure.ac",
"configure.in",
"config.h.in",
"meson.build",
"meson_options.txt",
"build.ninja",
".git",
},
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" },
},
@ -92,19 +93,15 @@ return {
},
},
},
setup = {
clangd = function(_, opts)
local clangd_ext_opts = LazyVim.opts("clangd_extensions.nvim")
require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts }))
return false
end,
},
},
},
{
"nvim-cmp",
"hrsh7th/nvim-cmp",
optional = true,
opts = function(_, opts)
opts.sorting = opts.sorting or {}
opts.sorting.comparators = opts.sorting.comparators or {}
table.insert(opts.sorting.comparators, 1, require("clangd_extensions.cmp_scores"))
end,
},
@ -114,7 +111,7 @@ return {
optional = true,
dependencies = {
-- Ensure C/C++ debugger is installed
"williamboman/mason.nvim",
"mason-org/mason.nvim",
optional = true,
opts = { ensure_installed = { "codelldb" } },
},

View file

@ -21,13 +21,13 @@ return {
},
opts = function(_, opts)
if type(opts.sources) == "table" then
vim.list_extend(opts.sources, { name = "clojure" })
vim.list_extend(opts.sources, { name = "conjure" })
end
end,
},
-- Add s-exp mappings
{ "PaterJason/nvim-treesitter-sexp", opts = {}, event = "LazyFile" },
{ "julienvincent/nvim-paredit", opts = {}, event = "LazyFile" },
-- Colorize the output of the log buffer
{
@ -52,7 +52,6 @@ return {
event = "LazyFile",
config = function(_, _)
require("conjure.main").main()
require("conjure.mapping")["on-filetype"]()
end,
init = function()
-- print color codes if baleia.nvim is available
@ -76,13 +75,13 @@ return {
end
vim.keymap.set(
{ "n", "v" },
{ "n", "x" },
"[c",
"<CMD>call search('^; -\\+$', 'bw')<CR>",
{ silent = true, buffer = true, desc = "Jumps to the begining of previous evaluation output." }
)
vim.keymap.set(
{ "n", "v" },
{ "n", "x" },
"]c",
"<CMD>call search('^; -\\+$', 'w')<CR>",
{ silent = true, buffer = true, desc = "Jumps to the begining of next evaluation output." }

View file

@ -0,0 +1,40 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = "dart",
root = { "pubspec.yaml" },
})
end,
{
"neovim/nvim-lspconfig",
opts = {
servers = {
dartls = {},
},
},
},
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "dart" } },
},
{
"stevearc/conform.nvim",
opts = {
formatters_by_ft = {
dart = { "dart_format" },
},
},
},
{
"nvim-neotest/neotest",
optional = true,
dependencies = {
"sidlatau/neotest-dart",
},
opts = {
adapters = {
["neotest-dart"] = {},
},
},
},
}

View file

@ -2,7 +2,14 @@ return {
recommended = function()
return LazyVim.extras.wants({
ft = "dockerfile",
root = { "Dockerfile", "docker-compose.yml", "compose.yml", "docker-compose.yaml", "compose.yaml" },
root = {
"Dockerfile",
"Containerfile",
"docker-compose.yml",
"compose.yml",
"docker-compose.yaml",
"compose.yaml",
},
})
end,
{

View file

@ -1,15 +1,15 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = { "cs", "vb" },
root = { "*.sln", "*.csproj", "omnisharp.json", "function.json" },
ft = { "cs", "vb", "fsharp" },
root = { "*.sln", "*.csproj", "*.fsproj", "omnisharp.json", "function.json", "paket.dependencies", "paket.lock" },
})
end,
{ "Hoffs/omnisharp-extended-lsp.nvim", lazy = true },
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "c_sharp" } },
opts = { ensure_installed = { "c_sharp", "fsharp" } },
},
{
"nvimtools/none-ls.nvim",
@ -18,6 +18,7 @@ return {
local nls = require("null-ls")
opts.sources = opts.sources or {}
table.insert(opts.sources, nls.builtins.formatting.csharpier)
table.insert(opts.sources, nls.builtins.formatting.fantomas)
end,
},
{
@ -26,23 +27,19 @@ return {
opts = {
formatters_by_ft = {
cs = { "csharpier" },
},
formatters = {
csharpier = {
command = "dotnet-csharpier",
args = { "--write-stdout" },
},
fsharp = { "fantomas" },
},
},
},
{
"williamboman/mason.nvim",
opts = { ensure_installed = { "csharpier", "netcoredbg" } },
"mason-org/mason.nvim",
opts = { ensure_installed = { "csharpier", "netcoredbg", "fantomas" } },
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
fsautocomplete = {},
omnisharp = {
handlers = {
["textDocument/definition"] = function(...)
@ -104,12 +101,12 @@ return {
"nvim-neotest/neotest",
optional = true,
dependencies = {
"Issafalcon/neotest-dotnet",
"Nsidorenco/neotest-vstest",
},
opts = {
adapters = {
["neotest-dotnet"] = {
-- Here we can set options for neotest-dotnet
["neotest-vstest"] = {
-- Here we can set options for neotest-vstest
},
},
},

View file

@ -16,6 +16,8 @@ return {
function()
local params = vim.lsp.util.make_position_params()
LazyVim.lsp.execute({
title = "toPipe",
filter = "elixirls",
command = "manipulatePipes:serverid",
arguments = { "toPipe", params.textDocument.uri, params.position.line, params.position.character },
})
@ -27,6 +29,8 @@ return {
function()
local params = vim.lsp.util.make_position_params()
LazyVim.lsp.execute({
title = "fromPipe",
filter = "elixirls",
command = "manipulatePipes:serverid",
arguments = { "fromPipe", params.textDocument.uri, params.position.line, params.position.character },
})

View file

@ -10,7 +10,7 @@ return {
},
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "elm-format" } },
},

View file

@ -0,0 +1,29 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = { "handlebars", "typescript", "javascript", "typescript.glimmer", "javascript.glimmer" },
root = { "ember-cli-build.js" },
})
end,
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "css", "glimmer", "glimmer_javascript", "glimmer_typescript" } },
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
ember = {},
},
},
},
{
"conform.nvim",
opts = function(_, opts)
if LazyVim.has_extra("formatting.prettier") then
opts.formatters_by_ft = opts.formatters_by_ft or {}
opts.formatters_by_ft.glimmer = { "prettier" }
end
end,
},
}

View file

@ -9,7 +9,8 @@ return {
},
{
"nvim-cmp",
"hrsh7th/nvim-cmp",
optional = true,
dependencies = {
{ "petertriho/cmp-git", opts = {} },
},

View file

@ -17,4 +17,13 @@ return {
},
},
},
{
"conform.nvim",
optional = true,
opts = {
formatters_by_ft = {
gleam = { "gleam" },
},
},
},
}

View file

@ -14,6 +14,9 @@ return {
opts = {
servers = {
gopls = {
init_options = {
semanticTokens = true,
},
settings = {
gopls = {
gofumpt = true,
@ -37,7 +40,6 @@ return {
rangeVariableTypes = true,
},
analyses = {
fieldalignment = true,
nilness = true,
unusedparams = true,
unusedwrite = true,
@ -47,7 +49,6 @@ return {
completeUnimported = true,
staticcheck = true,
directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },
semanticTokens = true,
},
},
},
@ -56,8 +57,13 @@ return {
gopls = function(_, opts)
-- workaround for gopls not supporting semanticTokensProvider
-- https://github.com/golang/go/issues/54531#issuecomment-1464982242
LazyVim.lsp.on_attach(function(client, _)
if not client.server_capabilities.semanticTokensProvider then
Snacks.util.lsp.on({ name = "gopls" }, function(_, client)
if
client.config
and client.config.init_options
and client.config.init_options.semanticTokens
and not client.server_capabilities.semanticTokensProvider
then
local semantic = client.config.capabilities.textDocument.semanticTokens
client.server_capabilities.semanticTokensProvider = {
full = true,
@ -68,7 +74,7 @@ return {
range = true,
}
end
end, "gopls")
end)
-- end workaround
end,
},
@ -76,7 +82,7 @@ return {
},
-- Ensure Go tools are installed
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "goimports", "gofumpt" } },
},
{
@ -84,7 +90,7 @@ return {
optional = true,
dependencies = {
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "gomodifytags", "impl" } },
},
},
@ -98,6 +104,22 @@ return {
})
end,
},
-- Add linting
{
"mfussenegger/nvim-lint",
optional = true,
dependencies = {
{
"mason-org/mason.nvim",
opts = { ensure_installed = { "golangci-lint" } },
},
},
opts = {
linters_by_ft = {
go = { "golangcilint" },
},
},
},
{
"stevearc/conform.nvim",
optional = true,
@ -112,7 +134,7 @@ return {
optional = true,
dependencies = {
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "delve" } },
},
{
@ -140,7 +162,7 @@ return {
-- Filetype icons
{
"echasnovski/mini.icons",
"nvim-mini/mini.icons",
opts = {
file = {
[".go-version"] = { glyph = "", hl = "MiniIconsBlue" },

View file

@ -14,21 +14,44 @@ return {
{
"mrcjkb/haskell-tools.nvim",
version = "^3",
version = false,
ft = { "haskell", "lhaskell", "cabal", "cabalproject" },
dependencies = {
{ "nvim-telescope/telescope.nvim", optional = true },
keys = {
{
"<localleader>e",
"<cmd>HlsEvalAll<cr>",
ft = "haskell",
desc = "Evaluate All",
},
{
"<localleader>h",
function()
require("haskell-tools").hoogle.hoogle_signature()
end,
ft = "haskell",
desc = "Hoogle Signature",
},
{
"<localleader>r",
function()
require("haskell-tools").repl.toggle()
end,
ft = "haskell",
desc = "REPL (Package)",
},
{
"<localleader>R",
function()
require("haskell-tools").repl.toggle(vim.api.nvim_buf_get_name(0))
end,
ft = "haskell",
desc = "REPL (Buffer)",
},
},
config = function()
local ok, telescope = pcall(require, "telescope")
if ok then
telescope.load_extension("ht")
end
end,
},
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "haskell-language-server" } },
},
@ -37,7 +60,7 @@ return {
optional = true,
dependencies = {
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "haskell-debug-adapter" } },
},
},
@ -67,17 +90,48 @@ return {
},
{
"luc-tielen/telescope_hoogle",
ft = { "haskell", "lhaskell", "cabal", "cabalproject" },
dependencies = {
{ "nvim-telescope/telescope.nvim" },
"nvim-telescope/telescope.nvim",
optional = true,
specs = {
{
"luc-tielen/telescope_hoogle",
ft = { "haskell", "lhaskell", "cabal", "cabalproject" },
opts = function()
LazyVim.on_load("telescope.nvim", function()
require("telescope").load_extension("ht")
end)
end,
keys = {
{
"<localleader>H",
"<cmd>Telescope hoogle<cr>",
ft = "haskell",
desc = "Hoogle",
},
},
},
},
},
{
"stevearc/conform.nvim",
optional = true,
opts = {
formatters_by_ft = {
haskell = { "fourmolu" },
cabal = { "cabal_fmt" },
},
},
},
{
"mfussenegger/nvim-lint",
optional = true,
opts = {
linters_by_ft = {
haskell = { "hlint" },
},
},
config = function()
local ok, telescope = pcall(require, "telescope")
if ok then
telescope.load_extension("hoogle")
end
end,
},
-- Make sure lspconfig doesn't start hls,

View file

@ -6,7 +6,8 @@ return {
})
end,
{ "towolf/vim-helm", ft = "helm" },
{ "qvalentin/helm-ls.nvim", ft = "helm" },
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "helm" } },
@ -18,17 +19,6 @@ return {
servers = {
helm_ls = {},
},
setup = {
yamlls = function()
LazyVim.lsp.on_attach(function(client, buffer)
if vim.bo[buffer].filetype == "helm" then
vim.schedule(function()
vim.cmd("LspStop ++force yamlls")
end)
end
end, "yamlls")
end,
},
},
},
}

View file

@ -40,9 +40,23 @@ return {
{
"mfussenegger/nvim-dap",
optional = true,
opts = function()
-- Simple configuration to attach to remote java debug process
-- Taken directly from https://github.com/mfussenegger/nvim-dap/wiki/Java
local dap = require("dap")
dap.configurations.java = {
{
type = "java",
request = "attach",
name = "Debug (Attach) - Remote",
hostName = "127.0.0.1",
port = 5005,
},
}
end,
dependencies = {
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "java-debug-adapter", "java-test" } },
},
},
@ -71,12 +85,15 @@ return {
dependencies = { "folke/which-key.nvim" },
ft = java_filetypes,
opts = function()
local mason_registry = require("mason-registry")
local lombok_jar = mason_registry.get_package("jdtls"):get_install_path() .. "/lombok.jar"
local cmd = { vim.fn.exepath("jdtls") }
if LazyVim.has("mason.nvim") then
local lombok_jar = vim.fn.expand("$MASON/share/jdtls/lombok.jar")
table.insert(cmd, string.format("--jvm-arg=-javaagent:%s", lombok_jar))
end
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 = LazyVim.lsp.get_raw_config("jdtls").default_config.root_dir,
root_dir = function(path)
return vim.fs.root(path, vim.lsp.config.jdtls.root_markers)
end,
-- How to find the project name for a given root dir.
project_name = function(root_dir)
@ -93,10 +110,7 @@ return {
-- How to run jdtls. This can be overridden to a full java command-line
-- if the Python wrapper script doesn't suffice.
cmd = {
vim.fn.exepath("jdtls"),
string.format("--jvm-arg=-javaagent:%s", lombok_jar),
},
cmd = cmd,
full_cmd = function(opts)
local fname = vim.api.nvim_buf_get_name(0)
local root_dir = opts.root_dir(fname)
@ -115,6 +129,7 @@ return {
-- These depend on nvim-dap, but can additionally be disabled by setting false here.
dap = { hotcodereplace = "auto", config_overrides = {} },
-- Can set this to false to disable main class scan, which is a performance killer for large project
dap_main = {},
test = true,
settings = {
@ -131,29 +146,17 @@ return {
config = function(_, opts)
-- 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 LazyVim.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)
if LazyVim.has("mason.nvim") then
local mason_registry = require("mason-registry")
if opts.dap and LazyVim.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then
bundles = vim.fn.glob("$MASON/share/java-debug-adapter/com.microsoft.java.debug.plugin-*jar", false, true)
-- java-test also depends on java-debug-adapter.
if opts.test and mason_registry.is_installed("java-test") then
vim.list_extend(bundles, vim.fn.glob("$MASON/share/java-test/*.jar", false, true))
end
end
end
local function attach_jdtls()
local fname = vim.api.nvim_buf_get_name(0)
@ -166,7 +169,9 @@ return {
},
settings = opts.settings,
-- enable CMP capabilities
capabilities = LazyVim.has("cmp-nvim-lsp") and require("cmp_nvim_lsp").default_capabilities() or nil,
capabilities = LazyVim.has("blink.cmp") and require("blink.cmp").get_lsp_capabilities() or LazyVim.has(
"cmp-nvim-lsp"
) and require("cmp_nvim_lsp").default_capabilities() or nil,
}, opts.jdtls)
-- Existing server will be reused if the root_dir matches.
@ -197,14 +202,14 @@ return {
{ "<leader>cx", group = "extract" },
{ "<leader>cxv", require("jdtls").extract_variable_all, desc = "Extract Variable" },
{ "<leader>cxc", require("jdtls").extract_constant, desc = "Extract Constant" },
{ "gs", require("jdtls").super_implementation, desc = "Goto Super" },
{ "gS", require("jdtls.tests").goto_subjects, desc = "Goto Subjects" },
{ "<leader>cgs", require("jdtls").super_implementation, desc = "Goto Super" },
{ "<leader>cgS", require("jdtls.tests").goto_subjects, desc = "Goto Subjects" },
{ "<leader>co", require("jdtls").organize_imports, desc = "Organize Imports" },
},
})
wk.add({
{
mode = "v",
mode = "x",
buffer = args.buf,
{ "<leader>cx", group = "extract" },
{
@ -225,40 +230,45 @@ return {
},
})
if opts.dap and LazyVim.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(opts.dap_main)
if LazyVim.has("mason.nvim") then
local mason_registry = require("mason-registry")
if opts.dap and LazyVim.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then
-- custom init for Java debugger
require("jdtls").setup_dap(opts.dap)
if opts.dap_main then
require("jdtls.dap").setup_dap_main_class_configs(opts.dap_main)
end
-- 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.add({
{
mode = "n",
buffer = args.buf,
{ "<leader>t", group = "test" },
-- 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.add({
{
"<leader>tt",
function()
require("jdtls.dap").test_class({
config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil,
})
end,
desc = "Run All Test",
mode = "n",
buffer = args.buf,
{ "<leader>t", group = "test" },
{
"<leader>tt",
function()
require("jdtls.dap").test_class({
config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil,
})
end,
desc = "Run All Test",
},
{
"<leader>tr",
function()
require("jdtls.dap").test_nearest_method({
config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil,
})
end,
desc = "Run Nearest Test",
},
{ "<leader>tT", require("jdtls.dap").pick_test, desc = "Run Test" },
},
{
"<leader>tr",
function()
require("jdtls.dap").test_nearest_method({
config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil,
})
end,
desc = "Run Nearest Test",
},
{ "<leader>tT", require("jdtls.dap").pick_test, desc = "Run Test" },
},
})
})
end
end
end

View file

@ -27,7 +27,7 @@ return {
servers = {
jsonls = {
-- lazy-load schemastore when needed
on_new_config = function(new_config)
before_init = function(_, new_config)
new_config.settings.json.schemas = new_config.settings.json.schemas or {}
vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas())
end,

View file

@ -0,0 +1,66 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = { "julia" },
root = { "Project.toml" },
})
end,
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "julia" } },
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
julials = {
settings = {
-- use the same default settings as the Julia VS Code extension
julia = {
completionmode = "qualify",
lint = { missingrefs = "none" },
},
},
},
},
},
},
-- cmp integration
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "kdheepak/cmp-latex-symbols" },
opts = function(_, opts)
table.insert(opts.sources, {
name = "latex_symbols",
option = {
strategy = 0, -- mixed
},
})
end,
},
-- blink.cmp integration
{
"saghen/blink.cmp",
optional = true,
dependencies = { "kdheepak/cmp-latex-symbols", "saghen/blink.compat" },
opts = {
sources = {
compat = { "latex_symbols" },
providers = {
latex_symbols = {
kind = "LatexSymbols",
async = true,
opts = {
strategy = 0, -- mixed
},
},
},
},
},
},
}

View file

@ -14,7 +14,7 @@ return {
end,
-- Add packages(linting, debug adapter)
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "ktlint" } },
},
-- Add syntax highlighting
@ -35,7 +35,7 @@ return {
{
"mfussenegger/nvim-lint",
optional = true,
dependencies = "williamboman/mason.nvim",
dependencies = "mason-org/mason.nvim",
opts = {
linters_by_ft = { kotlin = { "ktlint" } },
},
@ -64,7 +64,7 @@ return {
{
"mfussenegger/nvim-dap",
optional = true,
dependencies = "williamboman/mason.nvim",
dependencies = "mason-org/mason.nvim",
opts = function()
local dap = require("dap")
if not dap.adapters.kotlin then

View file

@ -108,7 +108,7 @@ return {
priority = 10,
},
-- Redirect Lean's stderr messages somehwere (to a buffer by default)
-- Redirect Lean's stderr messages somewhere (to a buffer by default)
stderr = {
enable = true,
-- height of the window

View file

@ -40,7 +40,7 @@ return {
},
},
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "markdownlint-cli2", "markdown-toc" } },
},
{
@ -104,23 +104,17 @@ return {
sign = false,
icons = {},
},
checkbox = {
enabled = false,
},
},
ft = { "markdown", "norg", "rmd", "org" },
ft = { "markdown", "norg", "rmd", "org", "codecompanion" },
config = function(_, opts)
require("render-markdown").setup(opts)
Snacks.toggle({
name = "Render Markdown",
get = function()
return require("render-markdown.state").enabled
end,
set = function(enabled)
local m = require("render-markdown")
if enabled then
m.enable()
else
m.disable()
end
end,
get = require("render-markdown").get,
set = require("render-markdown").set,
}):map("<leader>um")
end,
},

View file

@ -24,4 +24,13 @@ return {
},
},
},
{
"mfussenegger/nvim-lint",
optional = true,
opts = {
linters_by_ft = {
nix = { "statix" },
},
},
},
}

View file

@ -26,17 +26,19 @@ return {
"reason",
"dune",
},
root_dir = function(fname)
return require("lspconfig.util").root_pattern(
"*.opam",
"esy.json",
"package.json",
".git",
"dune-project",
"dune-workspace",
"*.ml"
)(fname)
end,
root_markers = {
function(name)
return name:match(".*%.opam$")
end,
"esy.json",
"package.json",
".git",
"dune-project",
"dune-workspace",
function(name)
return name:match(".*%.ml$")
end,
},
},
},
},

View file

@ -35,7 +35,7 @@ return {
},
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = {
ensure_installed = {
"phpcs",
@ -48,11 +48,10 @@ return {
optional = true,
opts = function()
local dap = require("dap")
local path = require("mason-registry").get_package("php-debug-adapter"):get_install_path()
dap.adapters.php = {
type = "executable",
command = "node",
args = { path .. "/extension/out/phpDebug.js" },
command = "php-debug-adapter",
args = {},
}
end,
},
@ -84,4 +83,21 @@ return {
},
},
},
{
"nvim-neotest/neotest",
optional = true,
dependencies = {
"V13Axel/neotest-pest",
"olimorris/neotest-phpunit",
},
opts = {
adapters = {
"neotest-pest",
["neotest-phpunit"] = {
root_ignore_files = { "tests/Pest.php" },
},
},
},
},
}

View file

@ -38,30 +38,15 @@ return {
logLevel = "error",
},
},
keys = {
{
"<leader>co",
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
},
},
ruff_lsp = {
keys = {
{
"<leader>co",
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
},
},
ruff_lsp = {},
},
setup = {
[ruff] = function()
LazyVim.lsp.on_attach(function(client, _)
Snacks.util.lsp.on({ name = ruff }, function(_, client)
-- Disable hover in favor of Pyright
client.server_capabilities.hoverProvider = false
end, ruff)
end)
end,
},
},
@ -103,30 +88,21 @@ return {
{ "<leader>dPc", function() require('dap-python').test_class() end, desc = "Debug Class", ft = "python" },
},
config = function()
if vim.fn.has("win32") == 1 then
require("dap-python").setup(LazyVim.get_pkg_path("debugpy", "/venv/Scripts/pythonw.exe"))
else
require("dap-python").setup(LazyVim.get_pkg_path("debugpy", "/venv/bin/python"))
end
require("dap-python").setup("debugpy-adapter")
end,
},
},
{
"linux-cultist/venv-selector.nvim",
branch = "regexp", -- Use this branch for the new version
cmd = "VenvSelect",
enabled = function()
return LazyVim.has("telescope.nvim")
end,
opts = {
settings = {
options = {
notify_user_on_venv_activation = true,
},
options = {
notify_user_on_venv_activation = true,
override_notify = false,
},
},
-- Call config for python files and load the cached venv automatically
-- Call config for Python files and load the cached venv automatically
ft = "python",
keys = { { "<leader>cv", "<cmd>:VenvSelect<cr>", desc = "Select VirtualEnv", ft = "python" } },
},

View file

@ -2,7 +2,7 @@ return {
recommended = function()
return LazyVim.extras.wants({
ft = "r",
root = { "*.R", "*.Rmd", "*qmd" },
root = { "*.R", "*.Rmd", "*.qmd" },
})
end,
{
@ -17,12 +17,12 @@ return {
-- 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 })
vim.keymap.set("x", "<Enter>", "<Plug>RSendSelection", { buffer = true })
local wk = require("which-key")
wk.add({
buffer = true,
mode = { "n", "v" },
mode = { "n", "x" },
{ "<localleader>a", group = "all" },
{ "<localleader>b", group = "between marks" },
{ "<localleader>c", group = "chunks" },
@ -65,11 +65,7 @@ return {
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,
root_markers = { "DESCRIPTION", "NAMESPACE", ".Rbuildignore" },
},
},
},

View file

@ -6,10 +6,6 @@ if lazyvim_docs then
end
local lsp = vim.g.lazyvim_ruby_lsp or "ruby_lsp"
if vim.fn.has("nvim-0.10") == 0 then
-- ruby_lsp does not work well with Neovim < 0.10
lsp = vim.g.lazyvim_ruby_lsp or "solargraph"
end
local formatter = vim.g.lazyvim_ruby_formatter or "rubocop"
return {
@ -25,9 +21,8 @@ return {
},
{
"neovim/nvim-lspconfig",
---@class PluginLspOpts
---@type PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
ruby_lsp = {
enabled = lsp == "ruby_lsp",
@ -48,7 +43,7 @@ return {
},
},
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "erb-formatter", "erb-lint" } },
},
{

View file

@ -1,3 +1,13 @@
if lazyvim_docs then
-- LSP Server to use for Rust.
-- Set to "bacon-ls" to use bacon-ls instead of rust-analyzer.
-- only for diagnostics. The rest of LSP support will still be
-- provided by rust-analyzer.
vim.g.lazyvim_rust_diagnostics = "rust-analyzer"
end
local diagnostics = vim.g.lazyvim_rust_diagnostics or "rust-analyzer"
return {
recommended = function()
return LazyVim.extras.wants({
@ -33,14 +43,19 @@ return {
-- Ensure Rust debugger is installed
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
optional = true,
opts = { ensure_installed = { "codelldb" } },
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "codelldb" })
if diagnostics == "bacon-ls" then
vim.list_extend(opts.ensure_installed, { "bacon" })
end
end,
},
{
"mrcjkb/rustaceanvim",
version = vim.fn.has("nvim-0.10.0") == 0 and "^4" or false,
ft = { "rust" },
opts = {
server = {
@ -62,21 +77,44 @@ return {
enable = true,
},
},
-- Add clippy lints for Rust.
checkOnSave = true,
-- Add clippy lints for Rust if using rust-analyzer
checkOnSave = diagnostics == "rust-analyzer",
-- Enable diagnostics if using rust-analyzer
diagnostics = {
enable = diagnostics == "rust-analyzer",
},
procMacro = {
enable = true,
ignored = {
["async-trait"] = { "async_trait" },
["napi-derive"] = { "napi" },
["async-recursion"] = { "async_recursion" },
},
files = {
exclude = {
".direnv",
".git",
".jj",
".github",
".gitlab",
"bin",
"node_modules",
"target",
"venv",
".venv",
},
-- Avoid Roots Scanned hanging, see https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344
watcher = "client",
},
},
},
},
},
config = function(_, opts)
if LazyVim.has("mason.nvim") then
local codelldb = vim.fn.exepath("codelldb")
local codelldb_lib_ext = io.popen("uname"):read("*l") == "Linux" and ".so" or ".dylib"
local library_path = vim.fn.expand("$MASON/opt/lldb/lib/liblldb" .. codelldb_lib_ext)
opts.dap = {
adapter = require("rustaceanvim.config").get_codelldb_adapter(codelldb, library_path),
}
end
vim.g.rustaceanvim = vim.tbl_deep_extend("keep", vim.g.rustaceanvim or {}, opts or {})
if vim.fn.executable("rust-analyzer") == 0 then
LazyVim.error(
@ -92,6 +130,9 @@ return {
"neovim/nvim-lspconfig",
opts = {
servers = {
bacon_ls = {
enabled = diagnostics == "bacon-ls",
},
rust_analyzer = { enabled = false },
},
},

View file

@ -11,66 +11,70 @@ return {
},
{
"scalameta/nvim-metals",
ft = { "scala", "sbt" },
config = function() end,
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
metals = {
keys = {
{
"<leader>me",
function()
require("telescope").extensions.metals.commands()
end,
desc = "Metals commands",
},
{
"<leader>mc",
function()
require("metals").compile_cascade()
end,
desc = "Metals compile cascade",
},
{
"<leader>mh",
function()
require("metals").hover_worksheet()
end,
desc = "Metals hover worksheet",
},
},
init_options = {
statusBarProvider = "off",
},
settings = {
showImplicitArguments = true,
excludedPackages = { "akka.actor.typed.javadsl", "com.github.swagger.akka.javadsl" },
},
},
},
setup = {
metals = function(_, opts)
local metals = require("metals")
local metals_config = vim.tbl_deep_extend("force", metals.bare_config(), opts)
metals_config.on_attach = LazyVim.has("nvim-dap") and metals.setup_dap or nil
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
vim.api.nvim_create_autocmd("FileType", {
pattern = { "scala", "sbt" },
callback = function()
metals.initialize_or_attach(metals_config)
end,
group = nvim_metals_group,
})
return true
dependencies = {
"nvim-lua/plenary.nvim",
},
keys = {
{
"<leader>me",
function()
require("telescope").extensions.metals.commands()
end,
desc = "Metals commands",
},
{
"<leader>mc",
function()
require("metals").compile_cascade()
end,
desc = "Metals compile cascade",
},
{
"<leader>mh",
function()
require("metals").hover_worksheet()
end,
desc = "Metals hover worksheet",
},
},
},
ft = { "scala", "sbt", "java" },
opts = function()
local metals_config = require("metals").bare_config()
metals_config.init_options.statusBarProvider = "off"
metals_config.settings = {
verboseCompilation = true,
showImplicitArguments = true,
showImplicitConversionsAndClasses = true,
showInferredType = true,
superMethodLensesEnabled = true,
excludedPackages = {
"akka.actor.typed.javadsl",
"org.apache.pekko.actor.typed.javadsl",
"com.github.swagger.akka.javadsl",
},
testUserInterface = "Test Explorer",
}
metals_config.on_attach = function(client, bufnr)
-- your on_attach function
require("metals").setup_dap()
end
return metals_config
end,
config = function(self, metals_config)
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
vim.api.nvim_create_autocmd("FileType", {
pattern = self.ft,
callback = function()
require("metals").initialize_or_attach(metals_config)
end,
group = nvim_metals_group,
})
end,
},
{
"mfussenegger/nvim-dap",
optional = true,

View file

@ -0,0 +1,37 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = "solidity",
root = {
"foundry.toml",
"hardhat.config.js",
"hardhat.config.ts",
},
})
end,
-- Add Solidity & related to treesitter
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "solidity" } },
},
-- Correctly setup lspconfig for Solidity
{
"neovim/nvim-lspconfig",
opts = {
servers = {
solidity_ls = {},
},
},
},
-- Formatter for Solidity
{
"stevearc/conform.nvim",
optional = true,
opts = {
formatters_by_ft = {
solidity = { "forge_fmt" },
},
},
},
}

View file

@ -28,6 +28,11 @@ end
local sql_ft = { "sql", "mysql", "plsql" }
-- disable nvim default `sql_completion` plugin to be compatible with blink.cmp's omni
-- while still showing some keywords from the syntax autocomplete sources
vim.g.omni_sql_default_compl_type = "syntax"
vim.g.loaded_sql_completion = true
return {
recommended = function()
return LazyVim.extras.wants({
@ -48,19 +53,21 @@ return {
vim.api.nvim_create_autocmd("FileType", {
pattern = sql_ft,
callback = function()
local cmp = require("cmp")
if LazyVim.has_extra("coding.nvim-cmp") then
local cmp = require("cmp")
-- global sources
---@param source cmp.SourceConfig
local sources = vim.tbl_map(function(source)
return { name = source.name }
end, cmp.get_config().sources)
-- global sources
---@param source cmp.SourceConfig
local sources = vim.tbl_map(function(source)
return { name = source.name }
end, cmp.get_config().sources)
-- add vim-dadbod-completion source
table.insert(sources, { name = "vim-dadbod-completion" })
-- add vim-dadbod-completion source
table.insert(sources, { name = "vim-dadbod-completion" })
-- update sources for the current buffer
cmp.setup.buffer({ sources = sources })
-- update sources for the current buffer
cmp.setup.buffer({ sources = sources })
end
end,
})
end,
@ -128,9 +135,7 @@ return {
optional = true,
opts = {
sources = {
completion = {
enabled_providers = { "dadbod" },
},
default = { "dadbod" },
providers = {
dadbod = { name = "Dadbod", module = "vim_dadbod_completion.blink" },
},
@ -143,7 +148,7 @@ return {
-- Linters & formatters
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "sqlfluff" } },
},
{

View file

@ -23,20 +23,7 @@ return {
"neovim/nvim-lspconfig",
opts = {
servers = {
svelte = {
keys = {
{
"<leader>co",
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
},
capabilities = {
workspace = {
didChangeWatchedFiles = vim.fn.has("nvim-0.10") == 0 and { dynamicRegistration = true },
},
},
},
svelte = {},
},
},
},

View file

@ -24,24 +24,12 @@ return {
filetypes_include = {},
-- to fully override the default_config, change the below
-- filetypes = {}
},
},
setup = {
tailwindcss = function(_, opts)
local tw = LazyVim.lsp.get_raw_config("tailwindcss")
opts.filetypes = opts.filetypes or {}
-- Add default filetypes
vim.list_extend(opts.filetypes, tw.default_config.filetypes)
-- Remove excluded filetypes
--- @param ft string
opts.filetypes = vim.tbl_filter(function(ft)
return not vim.tbl_contains(opts.filetypes_exclude or {}, ft)
end, opts.filetypes)
-- Additional settings for Phoenix projects
opts.settings = {
-- additional settings for the server, e.g:
-- tailwindCSS = { includeLanguages = { someLang = "html" } }
-- can be addeded to the settings table and will be merged with
-- this defaults for Phoenix projects
settings = {
tailwindCSS = {
includeLanguages = {
elixir = "html-eex",
@ -49,7 +37,21 @@ return {
heex = "html-eex",
},
},
}
},
},
},
setup = {
tailwindcss = function(_, opts)
opts.filetypes = opts.filetypes or {}
-- Add default filetypes
vim.list_extend(opts.filetypes, vim.lsp.config.tailwindcss.filetypes)
-- Remove excluded filetypes
--- @param ft string
opts.filetypes = vim.tbl_filter(function(ft)
return not vim.tbl_contains(opts.filetypes_exclude or {}, ft)
end, opts.filetypes)
-- Add additional filetypes
vim.list_extend(opts.filetypes, opts.filetypes_include or {})

View file

@ -20,7 +20,7 @@ return {
},
-- ensure terraform tools are installed
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "tflint" } },
},
{

View file

@ -12,7 +12,7 @@ return {
opts = function(_, opts)
opts.highlight = opts.highlight or {}
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "bibtex" })
vim.list_extend(opts.ensure_installed, { "bibtex", "latex" })
end
if type(opts.highlight.disable) == "table" then
vim.list_extend(opts.highlight.disable, { "latex" })
@ -30,7 +30,7 @@ return {
vim.g.vimtex_quickfix_method = vim.fn.executable("pplatex") == 1 and "pplatex" or "latexlog"
end,
keys = {
{ "<localLeader>l", "", desc = "+vimtex" },
{ "<localLeader>l", "", desc = "+vimtex", ft = "tex" },
},
},

View file

@ -0,0 +1,58 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = "twig",
})
end,
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "twig" } },
},
{
"mason-org/mason.nvim",
opts = {
ensure_installed = {
"twigcs",
"twig-cs-fixer",
},
},
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
twiggy_language_server = {
enabled = true,
},
},
},
},
{
"nvimtools/none-ls.nvim",
optional = true,
opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
table.insert(opts.sources, nls.builtins.diagnostics.twigcs)
-- Twig-CS-Fixer builtin not available in none-ls
end,
},
{
"mfussenegger/nvim-lint",
optional = true,
opts = {
linters_by_ft = {
twig = { "twigcs" },
},
},
},
{
"stevearc/conform.nvim",
optional = true,
opts = {
formatters_by_ft = {
twig = { "twig-cs-fixer" },
},
},
},
}

View file

@ -1,3 +1,5 @@
---@module "conform"
---@diagnostic disable: inject-field
if lazyvim_docs then
-- Enable this option to avoid conflicts with Prettier.
@ -8,6 +10,7 @@ end
local supported = {
"astro",
"css",
"scss",
"graphql",
-- "html",
"javascript",
@ -23,24 +26,35 @@ local supported = {
}
return {
recommended = function()
return LazyVim.extras.wants({
root = { "biome.json", "biome.jsonc" },
})
end,
{
"williamboman/mason.nvim",
opts = { ensure_installed = { "biome" } },
"neovim/nvim-lspconfig",
opts = {
servers = {
---@type lspconfig.settings.biome
biome = {},
},
},
},
{
"stevearc/conform.nvim",
optional = true,
---@param opts ConformOpts
---@param opts conform.setupOpts
opts = function(_, opts)
opts.formatters_by_ft = opts.formatters_by_ft or {}
for _, ft in ipairs(supported) do
opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}
table.insert(opts.formatters_by_ft[ft], "biome")
table.insert(opts.formatters_by_ft[ft], "biome-check")
end
opts.formatters = opts.formatters or {}
opts.formatters.biome = {
opts.formatters["biome-check"] = {
require_cwd = true,
}
end,

View file

@ -0,0 +1,171 @@
if lazyvim_docs then
-- LSP Server to use for TypeScript.
---@type "vtsls" | "tsgo"
vim.g.lazyvim_ts_lsp = "vtsls" -- currently the default
-- To use the newer, much faster `tsgo` LSP server, either:
-- * enable the `tsgo` extra, or
-- * set `vim.g.lazyvim_ts_lsp = "tsgo"` in your `options.lua`
end
local extra = LazyVim.config.register_defaults("ts_lsp", {
{ name = "vtsls", extra = "lang.typescript.vtsls" },
{ name = "tsgo", extra = "lang.typescript.tsgo" },
})
return {
recommended = function()
return LazyVim.extras.wants({
ft = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
root = { "tsconfig.json", "package.json", "jsconfig.json" },
})
end,
{ import = extra.import },
-- correctly setup lspconfig
{
"neovim/nvim-lspconfig",
opts = function(_, opts)
local lsp = extra.name or "vtsls"
local servers = { "tsserver", "ts_ls", "vtsls", "tsgo", lsp }
for _, server in ipairs(servers) do
opts.servers[server] = opts.servers[server] or {}
opts.servers[server].enabled = server == lsp
end
end,
},
{
"mfussenegger/nvim-dap",
optional = true,
dependencies = {
{
"mason-org/mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
table.insert(opts.ensure_installed, "js-debug-adapter")
end,
},
},
opts = function()
local dap = require("dap")
for _, adapterType in ipairs({ "node", "chrome", "msedge" }) do
local pwaType = "pwa-" .. adapterType
if not dap.adapters[pwaType] then
dap.adapters[pwaType] = {
type = "server",
host = "localhost",
port = "${port}",
executable = {
command = "js-debug-adapter",
args = { "${port}" },
},
}
end
-- Define adapters without the "pwa-" prefix for VSCode compatibility
if not dap.adapters[adapterType] then
dap.adapters[adapterType] = function(cb, config)
local nativeAdapter = dap.adapters[pwaType]
config.type = pwaType
if type(nativeAdapter) == "function" then
nativeAdapter(cb, config)
else
cb(nativeAdapter)
end
end
end
end
local js_filetypes = { "typescript", "javascript", "typescriptreact", "javascriptreact" }
local vscode = require("dap.ext.vscode")
vscode.type_to_filetypes["node"] = js_filetypes
vscode.type_to_filetypes["pwa-node"] = js_filetypes
for _, language in ipairs(js_filetypes) do
if not dap.configurations[language] then
local runtimeExecutable = nil
if language:find("typescript") then
runtimeExecutable = vim.fn.executable("tsx") == 1 and "tsx" or "ts-node"
end
dap.configurations[language] = {
{
type = "pwa-node",
request = "launch",
name = "Launch file",
program = "${file}",
cwd = "${workspaceFolder}",
sourceMaps = true,
runtimeExecutable = runtimeExecutable,
skipFiles = {
"<node_internals>/**",
"node_modules/**",
},
resolveSourceMapLocations = {
"${workspaceFolder}/**",
"!**/node_modules/**",
},
},
{
type = "pwa-node",
request = "attach",
name = "Attach",
processId = require("dap.utils").pick_process,
cwd = "${workspaceFolder}",
sourceMaps = true,
runtimeExecutable = runtimeExecutable,
skipFiles = {
"<node_internals>/**",
"node_modules/**",
},
resolveSourceMapLocations = {
"${workspaceFolder}/**",
"!**/node_modules/**",
},
},
}
end
end
end,
},
{
"jay-babu/mason-nvim-dap.nvim",
optional = true,
opts = {
-- chrome adapter is deprecated, use js-debug-adapter instead
automatic_installation = { exclude = { "chrome" } },
},
},
-- Filetype icons
{
"nvim-mini/mini.icons",
opts = {
file = {
[".eslintrc.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" },
[".node-version"] = { glyph = "", hl = "MiniIconsGreen" },
[".prettierrc"] = { glyph = "", hl = "MiniIconsPurple" },
[".yarnrc.yml"] = { glyph = "", hl = "MiniIconsBlue" },
["eslint.config.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" },
["package.json"] = { glyph = "", hl = "MiniIconsGreen" },
["tsconfig.json"] = { glyph = "", hl = "MiniIconsAzure" },
["tsconfig.build.json"] = { glyph = "", hl = "MiniIconsAzure" },
["yarn.lock"] = { glyph = "", hl = "MiniIconsBlue" },
},
},
},
}

View file

@ -0,0 +1,68 @@
local supported = {
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"json",
"jsonc",
"vue",
"svelte",
"astro",
}
return {
recommended = function()
return LazyVim.extras.wants({
root = {
".oxlintrc.json",
".oxlintrc.jsonc",
"oxlint.config.ts",
".oxfmtrc.json",
".oxfmtrc.jsonc",
"oxfmt.config.ts",
},
})
end,
{
"neovim/nvim-lspconfig",
opts = {
servers = {
---@type lspconfig.settings.oxlint
oxlint = {
root_dir = function(bufnr, on_dir)
-- prefer the top-level oxlint config if it exists (monorepo support)
local git = vim.fs.root(bufnr, ".git")
local markers = { ".oxlintrc.json", ".oxlintrc.jsonc", "oxlint.config.ts" }
local root = git and vim.fs.root(git, markers) or vim.fs.root(bufnr, markers)
if root then
on_dir(root)
end
end,
settings = {
fixKind = "all",
},
},
--- disable the oxfmt lsp server since we use conform for formatting
oxfmt = { enabled = false },
},
},
},
{
"mason-org/mason.nvim",
opts = { ensure_installed = { "oxfmt" } },
},
{
"stevearc/conform.nvim",
optional = true,
opts = function(_, opts)
opts.formatters_by_ft = opts.formatters_by_ft or {}
for _, ft in ipairs(supported) do
opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}
table.insert(opts.formatters_by_ft[ft], "oxfmt")
end
end,
},
}

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