Compare commits

...

942 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
github-actions[bot]
4d596cf4b4
chore(main): release 13.5.2 (#4840)
🤖 I have created a release *beep* *boop*
---


##
[13.5.2](https://github.com/LazyVim/LazyVim/compare/v13.5.1...v13.5.2)
(2024-11-19)


### Bug Fixes

* **keymaps:** `gitbrowse` also in Visual mode
([#4818](https://github.com/LazyVim/LazyVim/issues/4818))
([86dc548](86dc548ff9))

---
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-19 15:35:35 +01:00
Iordanis Petkakis
86dc548ff9
fix(keymaps): gitbrowse also in Visual mode (#4818)
## Description
If https://github.com/folke/snacks.nvim/pull/89 gets accepted, then we
should also update the keymap for Visual mode
<!-- 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-19 15:27:07 +01:00
github-actions[bot]
fc2eae5faf
chore(main): release 13.5.1 (#4835)
🤖 I have created a release *beep* *boop*
---


##
[13.5.1](https://github.com/LazyVim/LazyVim/compare/v13.5.0...v13.5.1)
(2024-11-19)


### Bug Fixes

* **copilot:** work-around to get copilot working again on nightly
([5961528](59615281f8))
* **extras:** add blink.cmp integration for SQL extra
([#4833](https://github.com/LazyVim/LazyVim/issues/4833))
([0bb1da6](0bb1da6d57))
* **snacks:** alignment of header
([4df9392](4df9392cb8))
* **snacks:** cleaner way to adjust keys preset
([9c31004](9c31004365))
* **snacks:** make sure early notifications show up in noice
([b873f9a](b873f9a7e7))

---
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-19 09:47:23 +01:00
Folke Lemaitre
4df9392cb8
fix(snacks): alignment of header 2024-11-19 09:35:42 +01:00
Folke Lemaitre
b873f9a7e7
fix(snacks): make sure early notifications show up in noice 2024-11-19 09:03:00 +01:00
Folke Lemaitre
59615281f8
fix(copilot): work-around to get copilot working again on nightly 2024-11-19 08:49:53 +01:00
folke
f198eef6e5 chore(build): auto-generate docs 2024-11-19 06:32:29 +00:00
Folke Lemaitre
9c31004365
fix(snacks): cleaner way to adjust keys preset 2024-11-19 07:31:28 +01:00
Jørgen
0bb1da6d57
fix(extras): add blink.cmp integration for SQL extra (#4833)
## Description

This PR adds blink.cmp integration with `vim-dadbod-completion` in the
SQL extras module. It allows blink.cmp to use the dadbod provider for
SQL autocompletion in Neovim.

## 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-19 00:02:56 +01:00
github-actions[bot]
2786fdb6e2
chore(main): release 13.5.0 (#4823)
🤖 I have created a release *beep* *boop*
---


##
[13.5.0](https://github.com/LazyVim/LazyVim/compare/v13.4.0...v13.5.0)
(2024-11-18)


### Features

* **copilot-chat:** remove call to nvim-cmp integration
([#4822](https://github.com/LazyVim/LazyVim/issues/4822))
([af95531](af9553135d))
* **snacks:** use `snacks.dashboard` as the default dashboard. moved
`dashboard-nvim` to extras
([#4832](https://github.com/LazyVim/LazyVim/issues/4832))
([a07db1a](a07db1a723))


### Bug Fixes

* **lualine:** dont show statusline on snacks_dashboard
([33557ae](33557ae68b))
* **tabnine:** dont call CmpTabnineHub in build. Fixes
[#4828](https://github.com/LazyVim/LazyVim/issues/4828)
([6dcf5d7](6dcf5d7159))


### Performance Improvements

* **ui:** never show folds on dashboards
([0352f94](0352f944c3))

---
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-18 23:34:15 +01:00
Folke Lemaitre
a07db1a723
feat(snacks): use snacks.dashboard as the default dashboard. moved dashboard-nvim to extras (#4832)
## Description

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

Snacks has a new dashboard plugin that will be LazyVim's default.

Check the docs at
https://github.com/folke/snacks.nvim/blob/main/docs/dashboard.md

## 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-18 23:32:49 +01:00
Folke Lemaitre
0352f944c3
perf(ui): never show folds on dashboards 2024-11-18 21:27:36 +01:00
Folke Lemaitre
33557ae68b
fix(lualine): dont show statusline on snacks_dashboard 2024-11-18 21:27:36 +01:00
Folke Lemaitre
6dcf5d7159
fix(tabnine): dont call CmpTabnineHub in build. Fixes #4828 2024-11-18 21:27:36 +01:00
folke
5c5ae903c9 chore(build): auto-generate docs 2024-11-18 09:06:35 +00:00
Tomas Slusny
af9553135d
feat(copilot-chat): remove call to nvim-cmp integration (#4822)
nvim-cmp integration was removed in favour of custom autocomplete (it
was pointless trying to support all the new completion plugins when its
15 lines to implement something plugin specific)

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-11-18 10:05:28 +01:00
github-actions[bot]
704c29110d
chore(main): release 13.4.0 (#4806)
🤖 I have created a release *beep* *boop*
---


##
[13.4.0](https://github.com/LazyVim/LazyVim/compare/v13.3.1...v13.4.0)
(2024-11-16)


### Features

* **blink:** auto-enable catppuccin integration
([#4799](https://github.com/LazyVim/LazyVim/issues/4799))
([ffce089](ffce089a9f))
* **copilot-chat:** remove deprecated options
([#4802](https://github.com/LazyVim/LazyVim/issues/4802))
([7a1414b](7a1414b5e5))
* **dial:** support vue filetype
([#4785](https://github.com/LazyVim/LazyVim/issues/4785))
([8235126](8235126a32))
* **extras:** add biome formatter
([#4448](https://github.com/LazyVim/LazyVim/issues/4448))
([b8407f4](b8407f4b12))
* **vscode:** automatically enable the vscode extra when running in
vscode
([1c5a330](1c5a330b6b))


### Bug Fixes

* **terminal:** set shellcmdflags for powershell to recommended values.
Closes [#4805](https://github.com/LazyVim/LazyVim/issues/4805)
([1db2af2](1db2af267e))

---
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-16 13:09:51 +01:00
Folke Lemaitre
1db2af267e
fix(terminal): set shellcmdflags for powershell to recommended values. Closes #4805 2024-11-16 07:39:48 +01:00
Folke Lemaitre
1c5a330b6b
feat(vscode): automatically enable the vscode extra when running in vscode 2024-11-16 07:35:47 +01:00
Alexey Svirshchevskiy
b8407f4b12
feat(extras): add biome formatter (#4448)
## Description
This PR adds biome as a conform/null-ls formatter.

When using biome lsp formatting directly, the syntax highlighting is
flickering. However, it works great when formatting is configured with
conform.

To avoid conflicts with Prettier, it is recommended to set
`vim.g.lazyvim_prettier_needs_config = true` In this case, both prettier
and biome formatters could be activated simultaneously.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-16 07:34:21 +01:00
xiaojianzheng
8235126a32
feat(dial): support vue filetype (#4785)
## Description

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

support vue filetype

## 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-16 07:33:27 +01:00
folke
767d873f93 chore(build): auto-generate docs 2024-11-16 06:32:40 +00:00
Zhou Fang
ffce089a9f
feat(blink): auto-enable catppuccin integration (#4799)
## Description

Auto enable `blink_cmp` integration in catppuccin if the theme plugin is
loaded.

## Related Issue(s)

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

## Screenshots

**Before**

![before](https://github.com/user-attachments/assets/918d5110-fd05-4468-9259-bf7164569521)

**After**

![after](https://github.com/user-attachments/assets/0d02d0c6-2b31-41cd-8b26-fbf74a86e498)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-16 07:32:07 +01:00
Tomas Slusny
7a1414b5e5
feat(copilot-chat): remove deprecated options (#4802)
- Diagnostic help was deprecated and now just proxies to prompt actions
(by default diagnostics are auto included in all selections so this
feature was no longer necessary)
- Selecton is now visual || buffer by default so the custom selection
config is no longer needed too

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-11-16 07:31:50 +01:00
github-actions[bot]
bb289f4345
chore(main): release 13.3.1 (#4796)
🤖 I have created a release *beep* *boop*
---


##
[13.3.1](https://github.com/LazyVim/LazyVim/compare/v13.3.0...v13.3.1)
(2024-11-15)


### Bug Fixes

* **copilot:** don't enable blink when using copilot when blink is not
installed. Fixes [#4795](https://github.com/LazyVim/LazyVim/issues/4795)
([07a0468](07a046867d))

---
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-15 06:29:54 +01:00
folke
bbd5c8a771 chore(build): auto-generate docs 2024-11-15 05:26:21 +00:00
Folke Lemaitre
07a046867d
fix(copilot): don't enable blink when using copilot when blink is not installed. Fixes #4795 2024-11-15 06:25:26 +01:00
github-actions[bot]
ad3e2b6354
chore(main): release 13.3.0 (#4765)
🤖 I have created a release *beep* *boop*
---


##
[13.3.0](https://github.com/LazyVim/LazyVim/compare/v13.2.0...v13.3.0)
(2024-11-14)


### Features

* **copilot:** added support for blink.cmp source
([a7eca05](a7eca05609))
* **extras:** add supermaven
([#3491](https://github.com/LazyVim/LazyVim/issues/3491))
([c1e8e3c](c1e8e3c80d))


### Bug Fixes

* **dial.nvim:** added boolean and logical toggles to default group.
Fixes [#4515](https://github.com/LazyVim/LazyVim/issues/4515)
([5e485d3](5e485d39b4))
* **fzf:** decouple `defaults` from `opts` to easy switch profiles
([#4190](https://github.com/LazyVim/LazyVim/issues/4190))
([0819f93](0819f9396e))
* **lsp:** wrap signature_help
([#4791](https://github.com/LazyVim/LazyVim/issues/4791))
([deb9fd8](deb9fd85b1))
* **lualine:** dynamically fetch the color used in lualine
([#4788](https://github.com/LazyVim/LazyVim/issues/4788))
([e50b435](e50b43544f))
* **lualine:** normalize paths before calculating pretty path. Fixes
[#4763](https://github.com/LazyVim/LazyVim/issues/4763)
([ea266e7](ea266e7326))
* **snacks:** explicitely enable snakcs plugins
([c0b623c](c0b623c332))


### Performance Improvements

* **treesitter:** better foldtext and foldexpr
([1d7b9a1](1d7b9a1a61))

---
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-14 23:55:29 +01:00
Folke Lemaitre
c0b623c332
fix(snacks): explicitely enable snakcs plugins 2024-11-14 23:53:03 +01:00
Matthew Sia
deb9fd85b1
fix(lsp): wrap signature_help (#4791)
## Description

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

Related to 7616816.
Without wrap `lsp_doc_border` does not work

## 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-14 20:32:52 +01:00
folke
86b2c23e2a chore(build): auto-generate docs 2024-11-14 14:54:39 +00:00
Zhou Fang
e50b43544f
fix(lualine): dynamically fetch the color used in lualine (#4788)
## Description

The color used in lualine was previously static and did not update
dynamically when a new colorscheme was applied. This resulted in
inconsistencies between the theme and the lualine colors, as the 'local'
color table returned the highlight color defined during initialization.

This pull request resolves the issue by ensuring that the lualine colors
are always in sync with the current colorscheme. It achieves this by
using `LazyVim.ui.fg(HIGHLIGHT)` to dynamically fetch the appropriate
highlight colors, making the lualine colors responsive to colorscheme
changes.

## 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/6b78483b-4a64-4ec3-a902-a0d1ed10a992)

**After**


![image](https://github.com/user-attachments/assets/3f73ec26-cbf1-4ff7-873f-6c7b2c13c481)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-14 15:53:27 +01:00
Folke Lemaitre
3ac62a4364
refactor(ui): cleanup fg/color 2024-11-13 21:14:29 +01:00
Folke Lemaitre
1d7b9a1a61
perf(treesitter): better foldtext and foldexpr 2024-11-13 21:11:32 +01:00
Iordanis Petkakis
0819f9396e
fix(fzf): decouple defaults from opts to easy switch profiles (#4190)
## Description
This decouples `defaults` from `opts`, so that if users switch to
another profile they can take advantage of
the profile's default settings and prompts.

I use `default-title` either way. I just stumbled upon this when I tried
the rest profiles and thought maybe there
would be users who would prefer to have the default prompts if they
chose another profile.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No
<!--
  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-11-13 19:20:48 +01:00
Folke Lemaitre
5e485d39b4
fix(dial.nvim): added boolean and logical toggles to default group. Fixes #4515 2024-11-13 19:00:07 +01:00
Folke Lemaitre
a7eca05609
feat(copilot): added support for blink.cmp source 2024-11-13 18:28:58 +01:00
Nybkox
c1e8e3c80d
feat(extras): add supermaven (#3491)
Add fast copilot alternative

---------

Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-11-13 17:49:47 +01:00
folke
b98b048ec6 chore(build): auto-generate docs 2024-11-13 16:22:02 +00:00
Folke Lemaitre
5df382765b
refactor(lualine): status component 2024-11-13 17:20:50 +01:00
Folke Lemaitre
ea266e7326
fix(lualine): normalize paths before calculating pretty path. Fixes #4763 2024-11-11 15:44:08 +01:00
github-actions[bot]
0137a110c1
chore(main): release 13.2.0 (#4745)
🤖 I have created a release *beep* *boop*
---


##
[13.2.0](https://github.com/LazyVim/LazyVim/compare/v13.1.0...v13.2.0)
(2024-11-11)


### Features

* **ai:** better completion/suggestions of AI engines
([#4752](https://github.com/LazyVim/LazyVim/issues/4752))
([fbf881f](fbf881f80b))
* **ai:** move ai related extras from `coding` to `ai`
([#4751](https://github.com/LazyVim/LazyVim/issues/4751))
([86904d2](86904d2fb1))
* **keymaps:** leader-bo to close other buffers
([24665fc](24665fc736))
* **rest:** add more keymaps to util.rest
([#4467](https://github.com/LazyVim/LazyVim/issues/4467))
([c22db72](c22db72435))


### Bug Fixes

* **extras:** fix alpha-nvim non-string keycodes
([#4735](https://github.com/LazyVim/LazyVim/issues/4735))
([9c9e650](9c9e650530))
* **snacks:** allow overriding `statuscolumn` through `options.lua`
([17a1b84](17a1b846f0))
* **vscode:** added snacks.nvim to allowed plugins for vscode. Fixes
[#4757](https://github.com/LazyVim/LazyVim/issues/4757)
([06071dd](06071dd452))


### Performance Improvements

* **ui:** only enable treesitter folds if the buffer has treesitter
highlighting
([b9dae57](b9dae57961))

---
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-11 11:09:35 +01:00
Folke Lemaitre
fbf881f80b
feat(ai): better completion/suggestions of AI engines (#4752)
## Description

The whole completion / snippets / AI is very tricky:
- multiple snippet engines
- native snippets on > 0.11 set their own keymaps, but not on 0.10
- multiple completion engines, like `nvim-cmp` and `blink.cmp`
- multiple ai completion engines that have a different API
- user's preference of showing ai suggestions as completion or not
- none of the ai completion engines currently set undo points, which is
bad

Solution:
- [x] added `LazyVim.cmp.actions`, where snippet engines and ai engines
can register their action.
- [x] an action returns `true` if it succeeded, or `false|nil` otherwise
- [x] in a completion engine, we then try running multiple actions and
use the fallback if needed
- [x] so `<tab>` runs `{"snippet_forward", "ai_accept", "fallback"}`
- [x] added `vim.g.ai_cmp`. When `true` we try to integrate the AI
source in the completion engine.
- [x] when `false`, `<tab>` should be used to insert the AI suggestion
- [x] when `false`, the completion engine's ghost text is disabled
- [x] luasnip support for blink (only works with blink `main`)
- [x] create undo points when accepting AI suggestions 

## Test Matrix

| completion   | snippets     | ai          | ai_cmp | tested? |
|--------------|--------------|-------------|--------|---------|
| nvim-cmp     | native       | copilot     | true   |       |
| nvim-cmp     | native       | copilot     | false  |       |
| nvim-cmp     | native       | codeium     | true   |       |
| nvim-cmp     | native       | codeium     | false  |       |
| nvim-cmp     | luasnip      | copilot     | true   |       |
| nvim-cmp     | luasnip      | copilot     | false  |       |
| nvim-cmp     | luasnip      | codeium     | true   |       |
| nvim-cmp     | luasnip      | codeium     | false  |       |
| blink.cmp    | native       | copilot     | true   |       |
| blink.cmp    | native       | copilot     | false  |       |
| blink.cmp    | native       | codeium     | true   |       |
| blink.cmp    | native       | codeium     | false  |       |
| blink.cmp    | luasnip      | copilot     | true   |       |
| blink.cmp    | luasnip      | copilot     | false  |       |
| blink.cmp    | luasnip      | codeium     | true   |       |
| blink.cmp    | luasnip      | codeium     | false  |       |


## Related Issue(s)

- [ ] Closes #4702

## 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-11-11 10:50:57 +01:00
cbosvik
c22db72435
feat(rest): add more keymaps to util.rest (#4467)
## Description

Add keymaps util.rest extra

## Related Issue(s)

n/a


## Checklist

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

---------

Co-authored-by: janbua <janbua@apetito.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-11-11 09:44:11 +01:00
Folke Lemaitre
06071dd452
fix(vscode): added snacks.nvim to allowed plugins for vscode. Fixes #4757 2024-11-11 09:41:45 +01:00
folke
dcab30f242 chore(build): auto-generate docs 2024-11-11 08:38:55 +00:00
Folke Lemaitre
17a1b846f0
fix(snacks): allow overriding statuscolumn through options.lua 2024-11-11 09:37:47 +01:00
Folke Lemaitre
86904d2fb1
feat(ai): move ai related extras from coding to ai (#4751)
## 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-11-10 11:27:21 +01:00
folke
309d189448 chore(build): auto-generate docs 2024-11-10 07:19:09 +00:00
Folke Lemaitre
b9dae57961
perf(ui): only enable treesitter folds if the buffer has treesitter highlighting 2024-11-09 23:33:05 +01:00
Folke Lemaitre
24665fc736
feat(keymaps): leader-bo to close other buffers 2024-11-09 16:13:11 +01:00
Gabriel Simões
9c9e650530
fix(extras): fix alpha-nvim non-string keycodes (#4735)
## Description

The `dashboard.button` function provided by alpha-nvim expects a string
keybind, not a function:


https://github.com/goolord/alpha-nvim/blob/main/lua/alpha/themes/dashboard.lua#L63

## Related Issue(s)

Fixes https://github.com/LazyVim/LazyVim/issues/3728.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-09 15:57:48 +01:00
github-actions[bot]
f57944f926
chore(main): release 13.1.0 (#4733)
🤖 I have created a release *beep* *boop*
---


##
[13.1.0](https://github.com/LazyVim/LazyVim/compare/v13.0.0...v13.1.0)
(2024-11-09)


### Features

* **terraform:** add formatter for packer files
([#4591](https://github.com/LazyVim/LazyVim/issues/4591))
([4876d11](4876d1137d))


### Bug Fixes

* **extras:** lazy-load telescope-terraform plugins
([#4667](https://github.com/LazyVim/LazyVim/issues/4667))
([94b4219](94b4219327))
* **options:** make sure spelling works in regular text files
([548fddd](548fddd1d5))
* **snacks:** noice now honors `Snacks.config.notifier.enabled = false`
([220148f](220148f47f))

---
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-09 15:51:45 +01:00
folke
5b66db294f chore(build): auto-generate docs 2024-11-09 14:50:33 +00:00
Folke Lemaitre
220148f47f
fix(snacks): noice now honors Snacks.config.notifier.enabled = false 2024-11-09 15:49:40 +01:00
loqusion
4876d1137d
feat(terraform): add formatter for packer files (#4591)
## Description

Adds a formatter for Packer configuration files (`ft=hcl`), a file type
already partially supported by the `lang.terraform` extra.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 21:14:22 +01:00
EJ
94b4219327
fix(extras): lazy-load telescope-terraform plugins (#4667)
## Description

In the current terraform extra, both
`cappyzawa/telescope-terraform.nvim` and
`ANGkeith/telescope-terraform-doc.nvim` are dependencies of
`telescope.nvim`.
This should be reversed so that the telescope extensions only load when
needed
(I added a `ft` trigger which I think makes the most sense), and not as
a
dependency of `telescope.nvim`.

## Related Issue(s)

No related issues, just fixed this when the loading time of
`telescope-terraform-doc.nvim` in-particular was annoying (+~30ms
startup).

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 21:08:21 +01:00
Folke Lemaitre
548fddd1d5
fix(options): make sure spelling works in regular text files 2024-11-08 21:05:30 +01:00
github-actions[bot]
5efb88f44a
chore(main): release 13.0.0 (#4723)
🤖 I have created a release *beep* *boop*
---


##
[13.0.0](https://github.com/LazyVim/LazyVim/compare/v12.44.1...v13.0.0)
(2024-11-08)


### ⚠ BREAKING CHANGES

* **core:** move a bunch of LazyVim features to snacks.nvim
([#4706](https://github.com/LazyVim/LazyVim/issues/4706))

### Features

* **core:** move a bunch of LazyVim features to snacks.nvim
([#4706](https://github.com/LazyVim/LazyVim/issues/4706))
([2f46974](2f4697443c))
* **elixir:** add support for livebook files (`*.livemd`)
([#4184](https://github.com/LazyVim/LazyVim/issues/4184))
([2fcd4cd](2fcd4cdc5f))
* **eslint:** add option to disable eslint auto format
([#4225](https://github.com/LazyVim/LazyVim/issues/4225))
([2d2e425](2d2e425d25))
* **extras.nushell:** update to upstream treesitter
([#4715](https://github.com/LazyVim/LazyVim/issues/4715))
([37cc039](37cc03948d))
* **extras:** lang/zig
([#4437](https://github.com/LazyVim/LazyVim/issues/4437))
([4379faf](4379fafc7b))
* **extras:** rego language support
([#4297](https://github.com/LazyVim/LazyVim/issues/4297))
([cf86484](cf86484797))
* **keymaps:** only add lazygit keymaps when available. Closes
[#4643](https://github.com/LazyVim/LazyVim/issues/4643). Closes
[#4247](https://github.com/LazyVim/LazyVim/issues/4247)
([aa53cd4](aa53cd47c4))
* **lang.angular:** configure `prettier` as formatter for `angular`
templates ([#4345](https://github.com/LazyVim/LazyVim/issues/4345))
([2d6687c](2d6687c646))
* **scala:** add key for worksheet hover
([#3853](https://github.com/LazyVim/LazyVim/issues/3853))
([859646f](859646f628))
* **toggle:** add illuminate toggle for which-key
([#4708](https://github.com/LazyVim/LazyVim/issues/4708))
([67ba582](67ba58215b))


### Bug Fixes

* **blink:** remove `draw="reversed"` for now till new release
([b841a1d](b841a1dfc3))
* **copilot-chat:** setup cmp conditionally
([#4716](https://github.com/LazyVim/LazyVim/issues/4716))
([a86c252](a86c25286b))
* **dap:** use dap's splitstr when running with args. Closes
[#4387](https://github.com/LazyVim/LazyVim/issues/4387)
([776994a](776994a207))
* **dial:** follow comment explanation for integers
([#4658](https://github.com/LazyVim/LazyVim/issues/4658))
([c879b39](c879b397c7))
* **extras:** make kulala keys only for http files
([#4574](https://github.com/LazyVim/LazyVim/issues/4574))
([b0ced33](b0ced339a8))
* **extras:** use the correct naming when setting up eruby formatter
([#4625](https://github.com/LazyVim/LazyVim/issues/4625))
([8534af4](8534af4a79))
* **lang/r:** make keymaps in which-key menu available in visual mode
([#4565](https://github.com/LazyVim/LazyVim/issues/4565))
([ee2ec7e](ee2ec7e474))
* **lang/ruby:** do not enable Rubocop as LSP if Solargraph is used
([#4566](https://github.com/LazyVim/LazyVim/issues/4566))
([fd361d0](fd361d07a2))
* **lsp:** wrap hover and signature_help
([7616816](76168166e5))
* **lualine:** apply highlight groups correctly to truncated
pretty_paths ([#4379](https://github.com/LazyVim/LazyVim/issues/4379))
([1d4157e](1d4157e681))
* **lualine:** make sure path is in root before substituting
([67b216c](67b216c973))
* **navic:** use the same background color as lualine section_c
([#4231](https://github.com/LazyVim/LazyVim/issues/4231))
([64b0f0b](64b0f0b71d))
* **neotest:** disambiguous key map descriptions
([#4374](https://github.com/LazyVim/LazyVim/issues/4374))
([dfde914](dfde9148ef))
* **options:** disable default ruler
([#4731](https://github.com/LazyVim/LazyVim/issues/4731))
([da3058a](da3058a72d))
* **options:** removed deprecated options
([1e975be](1e975be7a5))
* **prettier:** keep existing formatters_by_ft
([#4719](https://github.com/LazyVim/LazyVim/issues/4719))
([4ff3606](4ff36062dd))
* **project.nvim:** correctly delete projects
([#4314](https://github.com/LazyVim/LazyVim/issues/4314))
([c097355](c09735594a))
* **snacks:** dont add `snacks_notif` to close_with_q
([e6f612f](e6f612f1cc))
* **snippet:** don't set navigation mappings in nightly
([#4375](https://github.com/LazyVim/LazyVim/issues/4375))
([1552791](15527910c3))
* **telescope:** buffers to start at final item
([#4189](https://github.com/LazyVim/LazyVim/issues/4189))
([f78bc3b](f78bc3b858))
* **telescope:** check for gmake if needed
([0bc09d8](0bc09d8206))

---
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-08 17:18:00 +01:00
Alexey Svirshchevskiy
da3058a72d
fix(options): disable default ruler (#4731)
## Description

The ruler option causes numbers to be briefly shown on the dashboard
while LazyVim is loading. This MR disables the ruler.


## Screenshots
<img width="1086" alt="image"
src="https://github.com/user-attachments/assets/debd9e9b-bfd2-485e-be51-d1b7a59c3729">


<!-- 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-08 17:10:53 +01:00
Folke Lemaitre
76168166e5
fix(lsp): wrap hover and signature_help 2024-11-08 16:55:40 +01:00
George Guimarães
2fcd4cdc5f
feat(elixir): add support for livebook files (*.livemd) (#4184)
Livebook is a subset of Markdown, so we can safely use markdown's
treesitter for it.

Co-authored-by: Iordanis Petkakis <dpetka2001@users.noreply.github.com>
2024-11-08 14:10:11 +01:00
István Donkó
859646f628
feat(scala): add key for worksheet hover (#3853)
## What is this PR for?

Worksheet hovering is a useful feature provided by `metals` to see not
just the end result, but also the entire output of a function call, as
can be seen here for example:
https://youtu.be/Jv9B1crzpWM?t=16m20s

Having a default key assigned not only makes it more convenient, but
also increases discoverability.

(I was also contemplating `<leader>mK` as the mapping to be in line with
`K` for regular hover, but I wasn't convinced that the consistency is
worth the extra keypress.)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 14:09:17 +01:00
Nate McCurdy
64b0f0b71d
fix(navic): use the same background color as lualine section_c (#4231)
## Description

Prior to this, when using the navic Extra, the symbol breadcrumbs shown
in lualine section_c had a background color different from the
background of lualine_c, causing it to standout and not blend in with
some colorschemes.

There were ways around this problem, but hose involved overriding a lot
of highlights. See https://github.com/LazyVim/LazyVim/issues/328

This change uses the new (as of April 2023) lualine component built in
to SmiteshP/nvim-navic, which has a `color_correction` option to fix the
problem described above. This built-in component replaces the manual
method of calling `require("nvim-navic").is_available()` and
`require("nvim-navic").get_location()`.

*
711e9f117a
*
bf587250f8

With `color_correction` set to "static" or "dynamic", navic uses the
lualine section's background color when building the breadcrumbs text.

*
bf587250f8/doc/navic.txt (L83-L88)

I chose to set color_correction to "dynamic" to provide the best user
experience as that will update the background any time the lualine
section's background changes (e.g. when switching modes).

## Related Issue(s)

* Fixes #328

## Screenshots

Before this fix, the breadcrumb's background did not match lualine
section_c's:

![before](https://github.com/user-attachments/assets/b30e9844-5aac-4ec8-96fd-a5243de8cded)

After this fix, the breadcrumb's background does match:

![after](https://github.com/user-attachments/assets/63945c48-2edc-4aea-8144-ae0bff1ed952)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 14:08:43 +01:00
Miguel Palau
f78bc3b858
fix(telescope): buffers to start at final item (#4189)
## Description

Currently hitting `<leader>fb` triggers the telescope buffers command
but because we're passing the `sort_lastused=true` flag the index starts
at the second item.

This happens because of this line of code in telescope.nvim:


https://github.com/nvim-telescope/telescope.nvim/blob/master/lua/telescope/builtin/__internal.lua#L941-L943

This makes it annoying to actually use the tool to find buffers because
you have to first type your query then exit insert mode, then scroll one
item down, and then hitting enter:



https://github.com/user-attachments/assets/4126d017-df4b-48dc-b6d4-f7d9b8f491ff

When removing that flag it makes the function much more usable in terms
of UX since now you can just write your query and hit enter to go
straight to it.

## 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-08 14:06:39 +01:00
Ahmed Kamal
2d2e425d25
feat(eslint): add option to disable eslint auto format (#4225)
## Description

This adds an option to disable eslint's autoformatting. The reasons for
not wanting an auto format by eslint are:
1. It is generally not recommended to use a linter as a formatter as
highlighted by
https://typescript-eslint.io/users/what-about-formatting/#:~:text=We%20recommend%20against%20using%20ESLint,dprint%2C%20or%20an%20equivalent%20instead
2. A personal preference not to have a linter change my code which I'm
sure other people share.
3. As highlighted in the link above, eslint auto format can be quite
slow.

I would even argue that this should be the default, but I've left it as
is in order not to break anyone's config or ruffle anyone's feathers.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 14:05:00 +01:00
kik4444
fd361d07a2
fix(lang/ruby): do not enable Rubocop as LSP if Solargraph is used (#4566)
## Description

Solargraph already delegates some diagnostics to Rubocop by itself if it
is installed on your system. However, if Rubocop is also enabled as an
LSP while you're using Solargraph, then all Rubocop diagnostics are
going to be duplicated and shown twice. Once from Solargraph after it
calls Rubocop, and again by Rubocop separately running as an LSP.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:56:44 +01:00
Willian Fernandes
8534af4a79
fix(extras): use the correct naming when setting up eruby formatter (#4625)
## Description

Eruby files (.*.erb) are not formatted because the formatter name is
incorrect. This PR fixes it.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:56:05 +01:00
Mykhailo Sabatura
2d6687c646
feat(lang.angular): configure prettier as formatter for angular templates (#4345)
## Description

Angular templates didn't have a configured formatter.
This PR configures prettier as a default formatter for angular
templates.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:45:53 +01:00
Zoltán Reegn
cf86484797
feat(extras): rego language support (#4297)
It took a while, but finally we can work with
[OPA](https://www.openpolicyagent.org/) like a BOSS in neovim.

Linking some PR-s that had to land in the past couple of months to make
this config as
simple as it is now:

- treesitter commentstring support in
<https://github.com/JoosepAlviste/nvim-ts-context-commentstring/pull/108>
- regols support in nvim-lspconfig:
<https://github.com/neovim/nvim-lspconfig/pull/2721>
- regols support in mason-registry:
<https://github.com/mason-org/mason-registry/pull/4896>
- regols support in mason-lspconfig:
<https://github.com/williamboman/mason-lspconfig.nvim/pull/403>
- regal support in nvim-lspconfig:
<https://github.com/neovim/nvim-lspconfig/pull/3071>
- regal support in mason-registry:
<https://github.com/mason-org/mason-registry/pull/5717>
- regal support in mason-lspconfig:
<https://github.com/williamboman/mason-lspconfig.nvim/pull/426>

## 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.

Signed-off-by: Zoltán Reegn <zoltan.reegn@gmail.com>
2024-11-08 13:44:59 +01:00
Iordanis Petkakis
c09735594a
fix(project.nvim): correctly delete projects (#4314)
## Description
Unfortunately, the upstream Github repo hasn't been active for over a
year. This overwrites the `history.delete_project` function to correctly
be able to delete projects. Because of `ipairs` being used, when you
delete the first key from the table the `for` loop iteration will just
stop, since there will be a gap between the available indices.
> will iterate over the pairs (`1,t[1]`), (`2,t[2]`), ..., up to the
first integer key absent from the table.

There's also a
[PR](https://github.com/ahmedkhalf/project.nvim/pull/106/files) for this
upstream, but like I mentioned the Github repo hasn't been active for
over a year.

Feel free to disregard, since this is obviously something that should be
rather fixed upstream under normal circumstances. I just created this
PR, since it's such a basic functionality with little change in
LazyVim's codebase, that I thought it might be acceptable.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No, rather a discussion #4310
<!--
  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-08 13:43:11 +01:00
Maria José Solano
15527910c3
fix(snippet): don't set navigation mappings in nightly (#4375)
## Description

Since [this commit in
Neovim](https://github.com/neovim/neovim/pull/27339), snippet navigation
mappings are set by default to `<tab>` and `<s-tab>`, and hence don't
need to be redefined here. Moreover, the core implementation makes sure
that those snippet navigation mappings are active only when snippet
expansion is happening, and if other user bindings are using those keys,
they're restored when snippet navigation ends.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:40:25 +01:00
Benjman
dfde9148ef
fix(neotest): disambiguous key map descriptions (#4374)
## Description

Neotest key map descriptions were too ambiguous. This change simply adds
the plugin name to the key map descriptions, following the pattern of
other plugin related key map descriptions.

## Screenshots


![240830_09h47m20s_screenshot](https://github.com/user-attachments/assets/9c63b9f5-139d-4f9d-a6aa-4f9744c62a57)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:37:09 +01:00
Folke Lemaitre
776994a207
fix(dap): use dap's splitstr when running with args. Closes #4387 2024-11-08 13:31:19 +01:00
Iordanis Petkakis
ee2ec7e474
fix(lang/r): make keymaps in which-key menu available in visual mode (#4565)
## Description
`r.nvim` keymaps don't show group names in visual mode.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No, rather discussion #4564
<!--
  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-08 13:26:31 +01:00
Lorenzo Bettini
4e1fd66078
docs(dap): document continue to be used also for run (#4603)
The `dap.continue` is meant to be used also to start the program if no
debugging session is active.

The documentation states:

> `continue()` is the main entry-point for users to start debugging an
application.

With this change, it should be clearer to the user that `continue` is
the way to start a program. Otherwise, one could think to use `Run with
args` (which is misleading). At least for me, it was, until I read the
dap documentation.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:25:56 +01:00
Łukasz Rabiec
b0ced339a8
fix(extras): make kulala keys only for http files (#4574)
## Description

[Kulala's](https://github.com/mistweaverco/kulala.nvim) keys are
currently globally active. This PR makes them available in .http files
only.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-08 13:25:09 +01:00
folke
b5b3122843 chore(build): auto-generate docs 2024-11-08 08:01:42 +00:00
bitbird development
67ba58215b
feat(toggle): add illuminate toggle for which-key (#4708)
## Description
Adds a Toggle-Shortcut to enable/disable
[Illuminate](https://github.com/RRethy/vim-illuminate)

I dont think 'leader ux' is the right shortcut here. I just took the
next free one.


![image](https://github.com/user-attachments/assets/65990e1b-f527-4691-8d2e-eee103695bff)
2024-11-08 09:00:36 +01:00
Folke Lemaitre
b841a1dfc3
fix(blink): remove draw="reversed" for now till new release 2024-11-07 22:52:38 +01:00
Folke Lemaitre
e6f612f1cc
fix(snacks): dont add snacks_notif to close_with_q 2024-11-07 22:52:11 +01:00
Folke Lemaitre
67b216c973
fix(lualine): make sure path is in root before substituting 2024-11-07 17:01:08 +01:00
folke
d017bb861e chore(build): auto-generate docs 2024-11-07 15:46:41 +00:00
Dusty Phillips
db052ed9c0
docs(Readme): reflect that LazyVim For Ambitious Developers is complete (#4407)
## Description

LazyVim for Ambitious Developers is completely released online, with
ebooks available and print edition coming shortly. This just updates the
links to remove the "is working on" wording.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:45:39 +01:00
Jose Storopoli
4379fafc7b
feat(extras): lang/zig (#4437)
## Description

A fresh and minimalist take on #1750.
It only adds what is maintainable (has activity in the past year at
least).

## Related Issue(s)

Closes #1750.


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:40:06 +01:00
Jamie Davies
1d4157e681
fix(lualine): apply highlight groups correctly to truncated pretty_paths (#4379)
## Description

This is a small fix to the path truncating in
`LazyVim.lualine.pretty_path()` to make the filename highlighting
actually apply to only the filename, rather than the filename and all
path elements after the inserted ellipsis (`…`).

This keeps it consistent with the behaviour exhibited when the path
isn't truncated, and is what I think most users would expect the
behaviour to be.

## Screenshots

Before this fix:

<img width="320" alt="image"
src="https://github.com/user-attachments/assets/d708a140-2b23-457a-a296-dd411d29d268">

```
   nvim/…/nvim/lua/plugins/lazyvim/ui.lua
   └──┬──┘└──────────────┬──────────────┘
directory_hl        filename_hl
```

After this fix:

<img width="319" alt="image"
src="https://github.com/user-attachments/assets/e9d13fdd-79a8-4e3d-942a-58d0e2bb8bca">

```
nvim/…/nvim/lua/plugins/lazyvim/ui.lua
└──────────────┬───────────────┘└─┬──┘
         directory_hl        filename_hl
```

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:26:17 +01:00
Folke Lemaitre
aa53cd47c4
feat(keymaps): only add lazygit keymaps when available. Closes #4643. Closes #4247 2024-11-07 16:21:48 +01:00
Folke Lemaitre
1e975be7a5
fix(options): removed deprecated options 2024-11-07 16:19:18 +01:00
Nicky Meuleman
c879b397c7
fix(dial): follow comment explanation for integers (#4658)
relevant doc page:
https://github.com/monaqa/dial.nvim?tab=readme-ov-file#augend-alias

## Description

The specific augend for integers in several languages is a different one
than what the comment explaining it suggests.

Changed the augend to the one that includes negative integers like the
comment suggests.


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:16:41 +01:00
Conarius
37cc03948d
feat(extras.nushell): update to upstream treesitter (#4715)
## Description

Since the nushell treesitter parser is now upstream, as seen in [this
pr](https://github.com/nvim-treesitter/nvim-treesitter/pull/7267), it
updates the treesitter config of this extra

## Checklist

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

Co-authored-by: Conarius <Conarius+34580743@users.noreply.github.com>
2024-11-07 16:11:59 +01:00
Rick Harris
4ff36062dd
fix(prettier): keep existing formatters_by_ft (#4719)
## Description

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

This change makes it possible to configure other formatters for
filetypes supported by the prettier extra, for instance

```js
return {
  {
    "stevearc/conform.nvim",
    opts = {
      formatters_by_ft = {
        css = { "stylelint" },
      },
    },
  },
}
```

Currently the prettier extra overwrites any existing `formatters_by_ft`
for the filetypes it supports. I've changed it to use `table.insert`
[like the sql extra
does](75750be1c0/lua/lazyvim/plugins/extras/lang/sql.lua (L148-L149)).

## Related Issue(s)

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

None that I know of

## 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.
2024-11-07 16:11:36 +01:00
Folke Lemaitre
0bc09d8206
fix(telescope): check for gmake if needed 2024-11-07 16:10:45 +01:00
Josh Medeski
a86c25286b
fix(copilot-chat): setup cmp conditionally (#4716)
## Description

Check for cmp before setting up copilot chat.

## Related Issue(s)

For https://github.com/LazyVim/LazyVim/issues/4702

I would like to set up the cmp compatability later if possible, but this
is a quick patch to allow copilot chat to work without cmp (for now).

## 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-11-07 16:05:32 +01:00
folke
81a4f3f690 chore(build): auto-generate docs 2024-11-07 14:55:42 +00:00
Folke Lemaitre
2f4697443c
feat(core)!: move a bunch of LazyVim features to snacks.nvim (#4706)
## Description

LazyVim comes with a bunch of smaller QoL plugin like features, but it's
not easy for non LazyVim users to use them.

That's why I started working on
[snacks.nvim](https://github.com/folke/snacks.nvim), a collection of
small QoL plugins for Neovim.

Snacks also includes a bunch of new improvements to these features.

This PR fully integrates with snacks.

## Todo

- [ ] add proper deprecations where needed
- [ ] create snacks docs
- [ ] document all the new improvements relevant to LazyVim users

## Closes

- [ ] #4492 
- [ ] #4333
- [ ] #4687

## 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-11-07 15:54:47 +01:00
folke
75750be1c0 chore(build): auto-generate docs 2024-11-04 11:56:40 +00:00
github-actions[bot]
73f14943ba
chore(main): release 12.44.1 (#4694)
🤖 I have created a release *beep* *boop*
---


##
[12.44.1](https://github.com/LazyVim/LazyVim/compare/v12.44.0...v12.44.1)
(2024-11-03)


### Bug Fixes

* **blink:** use release version
([7ebed53](7ebed5349d))
* **copilot:** properly process tab with copilot and blink. Fixes
[#4692](https://github.com/LazyVim/LazyVim/issues/4692)
([fa37396](fa3739678a))
* **java:** jdtls run with args
([#4689](https://github.com/LazyVim/LazyVim/issues/4689))
([0403e80](0403e80a8e))

---
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-04 12:55:25 +01:00
Folke Lemaitre
7ebed5349d
fix(blink): use release version 2024-11-03 15:26:45 +01:00
Folke Lemaitre
fa3739678a
fix(copilot): properly process tab with copilot and blink. Fixes #4692 2024-11-03 12:53:10 +01:00
folke
f4d78ac0de chore(build): auto-generate docs 2024-11-03 11:49:08 +00:00
Folke Lemaitre
0403e80a8e
fix(java): jdtls run with args (#4689)
## Description

Makes run with args work for jdtls

## Related Issue(s)
- Closes #4686
- Closes #4673
2024-11-03 12:48:11 +01:00
github-actions[bot]
29dab35619
chore(main): release 12.44.0 (#4635)
🤖 I have created a release *beep* *boop*
---


##
[12.44.0](https://github.com/LazyVim/LazyVim/compare/v12.43.0...v12.44.0)
(2024-11-02)


### Features

* **blink:** use vim.o.pumblend as winblend option for autocomplete menu
in blink
([28da1eb](28da1eb073))
* **extras:** blink
([#4680](https://github.com/LazyVim/LazyVim/issues/4680))
([ad52bf9](ad52bf91bc))
* **extras:** enable crates.nvim in-process lsp server
([#4684](https://github.com/LazyVim/LazyVim/issues/4684))
([db8895b](db8895b518))


### Bug Fixes

* **autocmds:** `vim.highlight` is deprecated
([a7b4c43](a7b4c4391b))
* **autocmds:** change mapping for `lazyvim_close_with_q`
([#4638](https://github.com/LazyVim/LazyVim/issues/4638))
([5f432d9](5f432d997e))
* **autocmds:** close window and force delete buf on q. See
[#4638](https://github.com/LazyVim/LazyVim/issues/4638)
([cb40a09](cb40a09538))
* **autocmds:** force close buffers with q. See
[#4638](https://github.com/LazyVim/LazyVim/issues/4638)
([0eb4009](0eb400908d))
* **blink:** explicetely set version=false for now
([ec616a3](ec616a3cec))
* **catppuccin:** fix bufferline integration when no colorscheme is set.
Closes [#4641](https://github.com/LazyVim/LazyVim/issues/4641)
([6570a14](6570a141c0))
* **copilot:** create undo point before accepting copilot suggestion
when using blink
([6e1d099](6e1d0994d9))
* **dap:** remove explicit `load_launchjs` call
([#4634](https://github.com/LazyVim/LazyVim/issues/4634))
([2f6c1f6](2f6c1f6083))
* **lazygit:** file history when cwd is outside the repo
([#4666](https://github.com/LazyVim/LazyVim/issues/4666))
([4ee6be4](4ee6be4499))
* **rust:** disable rust_analyzer in the rust extra. Fixes
[#4685](https://github.com/LazyVim/LazyVim/issues/4685)
([1d3d64f](1d3d64fd1a))

---
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-03 00:15:26 +01:00
Folke Lemaitre
a7b4c4391b
fix(autocmds): vim.highlight is deprecated 2024-11-02 18:51:04 +01:00
Folke Lemaitre
ec616a3cec
fix(blink): explicetely set version=false for now 2024-11-02 18:12:31 +01:00
Folke Lemaitre
28da1eb073
feat(blink): use vim.o.pumblend as winblend option for autocomplete menu in blink 2024-11-02 17:43:11 +01:00
Folke Lemaitre
6e1d0994d9
fix(copilot): create undo point before accepting copilot suggestion when using blink 2024-11-02 17:41:38 +01:00
Stefan Boca
db8895b518
feat(extras): enable crates.nvim in-process lsp server (#4684)
## Description

Rather than manually handling hover and completions through nvim-cmp and
nvim-lspconfig, enable the crates.nvim in-process lsp server. This also
allows crates.nvim to provide code actions.

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

## Related Issue(s)

This change also removes the direct dependency on nvim-cmp, which should
help with #4680

<!--
  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-11-02 10:02:23 +01:00
Folke Lemaitre
ad52bf91bc
feat(extras): blink (#4680)
## Description

Extra to use [blink.cmp](https://github.com/Saghen/blink.cmp) instead of
**nvim-cmp**.

## Todo

- [x] tokyonight suport
- [x] basic integration
- [ ] check / update all cmp sources
- [ ] copilot and others integration 
- [x] native lazydev source

## Limitations

There's no copilot source, so instead when enabling both blink and
copilot:
- blink ghost text is disabled
- copilot suggestions are enabled
- use `<tab>` to navigate snippets and accept copilot completions 

## Related Issue(s)

- https://github.com/LazyVim/LazyVim/discussions/4679
2024-11-02 09:54:55 +01:00
folke
a66b44a9fe chore(build): auto-generate docs 2024-11-02 08:48:22 +00:00
Folke Lemaitre
1d3d64fd1a
fix(rust): disable rust_analyzer in the rust extra. Fixes #4685 2024-11-02 09:47:17 +01:00
folke
f11890bf99 chore(build): auto-generate docs 2024-11-01 21:48:00 +00:00
Roey Darwish Dror
4ee6be4499
fix(lazygit): file history when cwd is outside the repo (#4666)
## Description

When using `<leader>gf` Lazygit is launched in the current directory
rather than the root directory.
<!-- 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-11-01 22:47:03 +01:00
Folke Lemaitre
cb40a09538
fix(autocmds): close window and force delete buf on q. See #4638 2024-10-24 17:18:01 +02:00
Folke Lemaitre
0eb400908d
fix(autocmds): force close buffers with q. See #4638 2024-10-24 09:25:03 +02:00
Iordanis Petkakis
5f432d997e
fix(autocmds): change mapping for lazyvim_close_with_q (#4638)
## Description
Currently `checkhealth` buffers stay visible on `bufferline` when you
close them with `q`. Use `:bd` instead to delete the buffer from
bufferlist. `vim.schedule` is needed because `LspInfo` adds its own
mapping to close the window (see
[here](edd9591199/lua/lspconfig/health.lua (L328))),
so we need to overwrite 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.
2024-10-24 08:30:17 +02:00
folke
944d214c26 chore(build): auto-generate docs 2024-10-24 05:59:11 +00:00
Folke Lemaitre
6570a141c0
fix(catppuccin): fix bufferline integration when no colorscheme is set. Closes #4641 2024-10-24 07:58:14 +02:00
nowaylifer
2f6c1f6083
fix(dap): remove explicit load_launchjs call (#4634)
## Description

The explicit call to `load_launchjs` is unnecessary, since after
https://github.com/mfussenegger/nvim-dap/pull/1237 `.vscode/launch.json`
files are loaded automatically.

## Related Issue(s)
Fixes #4432


## 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-10-23 16:03:06 +02:00
github-actions[bot]
7c7c196a78
chore(main): release 12.43.0 (#4630)
🤖 I have created a release *beep* *boop*
---


##
[12.43.0](https://github.com/LazyVim/LazyVim/compare/v12.42.0...v12.43.0)
(2024-10-23)


### Features

* **catppuccin:** bufferline integration. Closes
[#4583](https://github.com/LazyVim/LazyVim/issues/4583). Closes
[#4581](https://github.com/LazyVim/LazyVim/issues/4581)
([917c685](917c685c1f))
* **extras:** expose `prios` to users for customization
([#4587](https://github.com/LazyVim/LazyVim/issues/4587))
([e46cb62](e46cb62a17))
* **keymaps:** allow `v:count1` when moving lines
([#4618](https://github.com/LazyVim/LazyVim/issues/4618))
([b4eb4e1](b4eb4e1f4a))


### Bug Fixes

* **folds:** enable folds when treesitter available. Fixes
[#4563](https://github.com/LazyVim/LazyVim/issues/4563)
([fe7003d](fe7003de50))

---
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-10-23 11:55:48 +02:00
Iordanis Petkakis
0f5fa439e5
refactor(cmp): add optional where necessary (#4557)
## Description
Makes it easier to disable it for users who want to try other completion
engines, without it being pulled back by some Extra.

<!-- 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-10-23 11:44:27 +02:00
Iordanis Petkakis
b4eb4e1f4a
feat(keymaps): allow v:count1 when moving lines (#4618)
## Description
Allow user to use `v:count1` when moving lines
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Closes #4615.
<!--
  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-10-23 11:40:31 +02:00
Folke Lemaitre
fe7003de50
fix(folds): enable folds when treesitter available. Fixes #4563 2024-10-23 11:32:21 +02:00
Iordanis Petkakis
e46cb62a17
feat(extras): expose prios to users for customization (#4587)
## Description
Offer to users capability to customize priorities of the Extras.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Closes #4584
<!--
  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-10-23 11:26:14 +02:00
folke
27f53eaa1e chore(build): auto-generate docs 2024-10-23 09:24:14 +00:00
Folke Lemaitre
917c685c1f
feat(catppuccin): bufferline integration. Closes #4583. Closes #4581 2024-10-23 11:23:09 +02:00
github-actions[bot]
13a4a84e34
chore(main): release 12.42.0 (#4535)
🤖 I have created a release *beep* *boop*
---


##
[12.42.0](https://github.com/LazyVim/LazyVim/compare/v12.41.0...v12.42.0)
(2024-10-04)


### Features

* **root:** provide `vim.g.root_lsp_ignore` to ignore LSP servers
([#4332](https://github.com/LazyVim/LazyVim/issues/4332))
([90a9231](90a92312ae))


### Bug Fixes

* **gitsigns:** change name of filetype blame
([#4243](https://github.com/LazyVim/LazyVim/issues/4243))
([3e257fd](3e257fdb88))
* **neotest:** properly initialize adapter with call table. Fixes
[#4538](https://github.com/LazyVim/LazyVim/issues/4538)
([327e829](327e829c15))

---
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-10-05 00:01:48 +02:00
folke
c49b788319 chore(build): auto-generate docs 2024-10-04 21:51:19 +00:00
Folke Lemaitre
327e829c15
fix(neotest): properly initialize adapter with call table. Fixes #4538 2024-10-04 23:50:15 +02:00
Iordanis Petkakis
90a92312ae
feat(root): provide vim.g.root_lsp_ignore to ignore LSP servers (#4332)
## Description
This provides `vim.g.root_lsp_ignore` for users to customize which LSP
servers should be taken into account when evaluating the LSP `root_dir`.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Closes #4330
<!--
  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-10-03 15:55:25 +02:00
folke
3b8f6554f4 chore(build): auto-generate docs 2024-10-03 13:48:11 +00:00
Roland Leißa
d2bd3114c0
style(typo): vimtext -> vimtex (#4530)
Typo: `vimtext` -> `vimtex`
2024-10-03 15:47:41 +02:00
Iordanis Petkakis
3e257fdb88
fix(gitsigns): change name of filetype blame (#4243)
## Description
There was a change in `gitsigns` filetype name for blame.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No
<!--
  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-10-03 15:47:09 +02:00
github-actions[bot]
d5a4ced75a
chore(main): release 12.41.0 (#4526)
🤖 I have created a release *beep* *boop*
---


##
[12.41.0](https://github.com/LazyVim/LazyVim/compare/v12.40.0...v12.41.0)
(2024-10-02)


### Features

* **rust:** update rustaceanvim
([#4477](https://github.com/LazyVim/LazyVim/issues/4477))
([04515b1](04515b1399))
* **toggle:** add more `M.wk` fields for better user customization
([#4521](https://github.com/LazyVim/LazyVim/issues/4521))
([57c0c0b](57c0c0bc9f))


### Bug Fixes

* **extras:** migrate away from deprecated `get_target_window()` in
mini-files ([#4479](https://github.com/LazyVim/LazyVim/issues/4479))
([b110550](b110550393))

---
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-10-02 11:29:17 +02:00
André Cruz
04515b1399
feat(rust): update rustaceanvim (#4477)
The recommended version of rustaceanvim has changed to 5.x, which brings
in a lot of improvements.

## Description

Version 5.x of rustaceanvim has a lot of improvements over 4.x, and is
the recommended version according to its maintainer.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-10-02 10:41:44 +02:00
Torin Rudeen
b110550393
fix(extras): migrate away from deprecated get_target_window() in mini-files (#4479)
## Description

This method is deprecated in the most recent version of mini-files:
a3a9cce821/lua/mini/files.lua (L1060-L1068),
which causes a warning message to be displayed every time the
`<leader>wv` and similar commands are used from the mini file browser.

I've tested this change locally and it gets rid of the warning message.

## Screenshots
Warning message without this fix:
<img width="1355" alt="image"
src="https://github.com/user-attachments/assets/cf5dc674-6054-4cb2-9e9b-3b0bb03dd5ca">

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-10-02 10:23:26 +02:00
Iordanis Petkakis
57c0c0bc9f
feat(toggle): add more M.wk fields for better user customization (#4521)
## Description
Add to `M.wk` fields for `icon`, `color_enabled` and `color_disabled`
for more granual user customization.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No, rather a discussion #4512
<!--
  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-10-02 10:22:08 +02:00
github-actions[bot]
dee5e18cf6
chore(main): release 12.40.0 (#4522)
🤖 I have created a release *beep* *boop*
---


##
[12.40.0](https://github.com/LazyVim/LazyVim/compare/v12.39.0...v12.40.0)
(2024-10-02)


### Features

* **lang:** add ts_ls to lsp config
([#4406](https://github.com/LazyVim/LazyVim/issues/4406))
([34f0e56](34f0e568d4))


### Bug Fixes

* **extras:** rename `lspconfig.server_configurations` to
`lspconfig.configs`
([#4518](https://github.com/LazyVim/LazyVim/issues/4518))
([7432574](74325743e7))
* **lsp:** backward compat with lspconfig refactor. Fixes
[#4525](https://github.com/LazyVim/LazyVim/issues/4525). See
[#4518](https://github.com/LazyVim/LazyVim/issues/4518)
([6e40252](6e4025229d))
* **render-markdown:** remove redundant `opts.file_types`
([#4506](https://github.com/LazyVim/LazyVim/issues/4506))
([9b17672](9b1767205c))

---
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-10-02 10:19:57 +02:00
Folke Lemaitre
6e4025229d
fix(lsp): backward compat with lspconfig refactor. Fixes #4525. See #4518 2024-10-02 10:18:21 +02:00
Arthur
34f0e568d4
feat(lang): add ts_ls to lsp config (#4406)
## Description

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

In this [PR](https://github.com/neovim/nvim-lspconfig/pull/3232),
tsserver is renamed to ts_ls, but it hasn't been released yet.

Therefore, ts_ls is added to the LSP configuration in case the user
updates their plugins locally.

## 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.
2024-10-02 09:32:17 +02:00
Iordanis Petkakis
9b1767205c
fix(render-markdown): remove redundant opts.file_types (#4506)
## Description
After
cb9a5e2412
there's no need for defining filetypes both in Lazy's `ft` and the
plugin's `opts.file_types`.
<!-- 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-10-02 09:26:05 +02:00
folke
b6ff54bb95 chore(build): auto-generate docs 2024-10-02 07:25:07 +00:00
Seth Buntin
74325743e7
fix(extras): rename lspconfig.server_configurations to lspconfig.configs (#4518)
## Description


bedb2a0df1
introduces a change to the Lua module structure for `nvim-lspconfig`
that broke `tailwindcss`. Tried to also address all the other usages of
`lspconfig.server_configurations` within the ecosystem.

## Screenshots

![mason-lspconfig
nvim](https://github.com/user-attachments/assets/bc9f80f0-3386-436f-8f86-abfcb311cec2)


## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-10-02 09:24:02 +02:00
github-actions[bot]
a1c3ec4cd4
chore(main): release 12.39.0 (#4376)
🤖 I have created a release *beep* *boop*
---


##
[12.39.0](https://github.com/LazyVim/LazyVim/compare/v12.38.2...v12.39.0)
(2024-09-18)


### Features

* **cmp:** better c-n and c-p mapping fallback. Fixes
[#4414](https://github.com/LazyVim/LazyVim/issues/4414)
([86d4f14](86d4f14bc8))
* **lazygit:** allow user to override LazyVim config with custom file
([#4367](https://github.com/LazyVim/LazyVim/issues/4367))
([41a8f3a](41a8f3a5fb))
* **persistence:** added leader-qS to select a session
([5a0122b](5a0122b619))
* **vscode:** make use of vscode builtin terminal
([#4392](https://github.com/LazyVim/LazyVim/issues/4392))
([ead5955](ead5955bef))


### Bug Fixes

* **extra:** make copilot-chat.lua fallback to the latest model
([#4411](https://github.com/LazyVim/LazyVim/issues/4411))
([ae17b32](ae17b321c7))
* **grug:** grug_far -&gt; grug.open
([#4404](https://github.com/LazyVim/LazyVim/issues/4404))
([746ea8f](746ea8f1e6))
* **markdown-preview:** unknown function `mkdp#util#install`
([#4196](https://github.com/LazyVim/LazyVim/issues/4196))
([b892861](b892861bde))
* **ocaml:** get_language_id
([#4327](https://github.com/LazyVim/LazyVim/issues/4327))
([6dcd979](6dcd9794b1))
* **omnisharp:** use Go To Definition with fzf.lua
([#4260](https://github.com/LazyVim/LazyVim/issues/4260))
([39ca76c](39ca76c960))
* **toggle:** diagnostics enable/disable. See
[#4205](https://github.com/LazyVim/LazyVim/issues/4205)
([3dbace9](3dbace941e))
* **toggle:** make `diagnostics` compatible with nvim-0.9.5
([#4205](https://github.com/LazyVim/LazyVim/issues/4205))
([c012f85](c012f85959))
* **vue:** ensure css treesitter installed
([#4308](https://github.com/LazyVim/LazyVim/issues/4308))
([627215a](627215a72b))

---
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-09-18 20:46:29 +02:00
Sheol27
39ca76c960
fix(omnisharp): use Go To Definition with fzf.lua (#4260)
## Description

There was a problem with Omnisharp with fzf.lua enabled instead of
telescope. As discussed in #4258, this change makes Go To Definition
work with fzf.lua.

## Related Issue(s)

  - Fixes #4258 

## Checklist

- [x ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-09-18 08:22:58 +02:00
bilabila
627215a72b
fix(vue): ensure css treesitter installed (#4308)
## Description

If css treesitter is not installed(the current), <style> in vue file
will use wrong commentstring, ts-comments.nvim or
nvim-ts-context-commentstring both. so ensure it's installed.

## Related Issue(s)

explained: [in
https://github.com/JoosepAlviste/nvim-ts-context-commentstring/issues/117](https://github.com/JoosepAlviste/nvim-ts-context-commentstring/issues/117#issuecomment-2287909324)
close https://github.com/LazyVim/LazyVim/issues/4292
2024-09-18 08:22:05 +02:00
Iordanis Petkakis
6dcd9794b1
fix(ocaml): get_language_id (#4327)
## Description
This fixes the error users get from local function `get_language_id`. 

From looking into [nvim-lspconfig
ocamllsp](https://github.com/neovim/nvim-lspconfig/blob/master/lua/lspconfig/server_configurations/ocamllsp.lua)
and other googling around, namely [tjdevries config
files](9b790b90c1/lua/custom/plugins/lsp.lua (L108-L115))
and [another
one](e31c0d61fd/nvim/after/plugin/lspconfig.lua (L67)),
it seems that we can directly set these as filetypes foregoing the
mapping via the additional local function which would also need the
[nvim-lspconfig language_id
mapping](d4814330b2/lua/lspconfig/server_configurations/ocamllsp.lua (L3-L10)).

Please bear in mind I don't do any Ocaml, so it would be great if other
users who do Ocaml could test this PR.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Closes #4326
<!--
  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-09-18 08:20:43 +02:00
Folke Lemaitre
86d4f14bc8
feat(cmp): better c-n and c-p mapping fallback. Fixes #4414 2024-09-18 08:20:01 +02:00
folke
d67be9a9fb chore(build): auto-generate docs 2024-09-18 06:17:33 +00:00
moetayuko
ead5955bef
feat(vscode): make use of vscode builtin terminal (#4392)
## Description

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

**I don't know how to properly handle cwd so it's implemented as a
simple toggle**

## Related Issue(s)

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

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-09-18 08:16:29 +02:00
folke
4cb12312cf chore(build): auto-generate docs 2024-09-16 06:47:53 +00:00
Benjamin Memisevic
746ea8f1e6
fix(grug): grug_far -> grug.open (#4404)
## Description

Just a very simple fix to use the updated method in grug to set the
options for the dependency. Just ran across the issue debuging search
and replace on my setup (was not the issue).

This is not breaking.  
## 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-09-16 08:47:31 +02:00
Giovanny Gongora
ae17b321c7
fix(extra): make copilot-chat.lua fallback to the latest model (#4411)
## Description

CopilotChat upgraded to gpt-4o early in August
2c4d2954f9
but the LazyVim plugin is still running with opts of gpt-4. I thought
about changing model to the latest here, but I feel this means more
maintainability for an option which generally is expected to point to
the latest model, and the upstream opts of CopilotChat seem to keep up
with that already.

## Related Issue(s)
None

## Screenshots
None

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-09-16 08:46:52 +02:00
Folke Lemaitre
3dbace941e
fix(toggle): diagnostics enable/disable. See #4205 2024-08-31 12:34:45 +02:00
Iordanis Petkakis
c012f85959
fix(toggle): make diagnostics compatible with nvim-0.9.5 (#4205)
## Description
This makes `toggle.diagnostics` compatible with Neovim 0.9.5 (though not
sure about the metatable callables, since `set` there accepts a boolean
from `get` state).

Please make whatever changes you deem necessary or disregard as a whole
for a better approach I haven't been able to think of.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #4203
<!--
  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-08-31 09:44:52 +02:00
Iordanis Petkakis
b892861bde
fix(markdown-preview): unknown function mkdp#util#install (#4196)
## Description
This fixes the problem when checking for updates and trying to build and
the user encounters the error `unknown function mkdp#util#install`.

As per https://github.com/iamcco/markdown-preview.nvim/pull/691
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
No, rather a discussion #4194
<!--
  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-08-31 09:43:48 +02:00
Folke Lemaitre
5a0122b619
feat(persistence): added leader-qS to select a session 2024-08-31 09:27:14 +02:00
Iordanis Petkakis
41a8f3a5fb
feat(lazygit): allow user to override LazyVim config with custom file (#4367)
## Description
This takes into consideration an additional file, if it exists, to
extend `LG_CONFIG_FILE` environment variable, so that users can
overwrite easier default LazyVim options set for lazygit in
`lazygit-theme.yml`. It's not desirable to directly change
`lazygit-theme.yml` as the values are hardcoded and regenerated upon
colorscheme change.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #4364. Ideally, the problem about `nvim-remote` on Windows should
be fixed on lazygit's side, so this is just kind of a hotfix in the
meantime. Feel free to disregard this if not desirable.
<!--
  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-08-31 09:18:20 +02:00
folke
393b7e4f46 chore(build): auto-generate docs 2024-08-31 07:17:40 +00:00
George Guimarães
1d2c0a5cf4
chore(markdown): markdown.nvim was renamed to render-markdown.nvim (#4259)
As described in
aeb5cec617
2024-08-31 09:16:45 +02:00
github-actions[bot]
12818a6cb4
chore(main): release 12.38.2 (#4178)
🤖 I have created a release *beep* *boop*
---


##
[12.38.2](https://github.com/LazyVim/LazyVim/compare/v12.38.1...v12.38.2)
(2024-07-25)


### Bug Fixes

* **news:** pcall diag when showing news for older Neovim versions
([94bf4f9](94bf4f9324))

---
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-07-25 11:07:00 +02:00
folke
deceafc0f9 chore(build): auto-generate docs 2024-07-25 08:56:05 +00:00
Folke Lemaitre
94bf4f9324
fix(news): pcall diag when showing news for older Neovim versions 2024-07-25 10:55:08 +02:00
github-actions[bot]
bcbab77f0c
chore(main): release 12.38.1 (#4167)
🤖 I have created a release *beep* *boop*
---


##
[12.38.1](https://github.com/LazyVim/LazyVim/compare/v12.38.0...v12.38.1)
(2024-07-24)


### Bug Fixes

* **autcmds:** added grug-far to close with q
([3282721](328272144c))

---
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-07-24 18:49:45 +02:00
Folke Lemaitre
328272144c
fix(autcmds): added grug-far to close with q 2024-07-24 18:18:00 +02:00
github-actions[bot]
71b2690582
chore(main): release 12.38.0 (#4158)
🤖 I have created a release *beep* *boop*
---


##
[12.38.0](https://github.com/LazyVim/LazyVim/compare/v12.37.0...v12.38.0)
(2024-07-24)


### Features

* **markdown:** markdown-render toggle
([c8d0faf](c8d0faf9b1))
* **markdown:** replace `headlines.nvim` by `markdown.nvim`
([#4139](https://github.com/LazyVim/LazyVim/issues/4139))
([264abdf](264abdf9d5))

---
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-07-24 08:30:15 +02:00
Folke Lemaitre
c8d0faf9b1
feat(markdown): markdown-render toggle 2024-07-24 08:21:36 +02:00
George Guimarães
264abdf9d5
feat(markdown): replace headlines.nvim by markdown.nvim (#4139)
Okay, so
https://github.com/MeanderingProgrammer/markdown.nvim?tab=readme-ov-file
is a new kid on the block that I've been enjoying a lot. It replaces
headlines.nvim.

This new extra is a way for folks to try markdown.nvim effortlessly.

(Should I add here everything from the current markdown extra to make
this extra a complete drop-in replacement?)

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-07-24 08:02:56 +02:00
github-actions[bot]
489a7a8e84
chore(main): release 12.37.0 (#4147)
🤖 I have created a release *beep* *boop*
---


##
[12.37.0](https://github.com/LazyVim/LazyVim/compare/v12.36.0...v12.37.0)
(2024-07-24)


### Features

* **catppuccin:** enable grug-far integration
([#4156](https://github.com/LazyVim/LazyVim/issues/4156))
([4bf6d85](4bf6d856a8))
* **elixir:** add elixirls code actions
([#4148](https://github.com/LazyVim/LazyVim/issues/4148))
([f94a059](f94a0591b3))


### Bug Fixes

* **dap:** don't mess up DAP adapters provided by nvim-dap-python
([#4141](https://github.com/LazyVim/LazyVim/issues/4141))
([940d7df](940d7df59a))
* **dap:** extend dap.configurations from .vscode/launch.json
([#4106](https://github.com/LazyVim/LazyVim/issues/4106))
([caf227d](caf227dd08))
* **grug-far:** use new transient option
([1c2be20](1c2be200c1))
* **keymaps:** leader-wd
([f0d8b8b](f0d8b8b293))
* **keymaps:** leader-wm
([391f506](391f506295))
* **news:** deprecated API
([f6cd4a3](f6cd4a38c6))

---
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-07-24 07:05:03 +02:00
Folke Lemaitre
391f506295
fix(keymaps): leader-wm 2024-07-24 07:03:45 +02:00
folke
ec8de342d7 chore(build): auto-generate docs 2024-07-24 04:27:22 +00:00
EJ
4bf6d856a8
feat(catppuccin): enable grug-far integration (#4156)
## Description

This enables the recently added `grug-far` integration in catppuccin -
https://github.com/catppuccin/nvim/pull/735

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-24 06:26:27 +02:00
moetayuko
940d7df59a
fix(dap): don't mess up DAP adapters provided by nvim-dap-python (#4141)
## Description

* mason-nvim-dap.nvim ships a `Python: Launch file` adapter which does
the same thing as `Launch file` of nvim-dap-python, providing both
doesn't make sense and confuses the users.
* mason-nvim-dap.nvim unexpectedly overrides nvim-dap-python's adapters
and breaks its venv detection. As a result, user programs are always
executed in mason debugpy venv rather than the activated one.


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

## Related Issue(s)

Fixes #3064

<!--
  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-07-23 21:27:29 +02:00
Miguel Palau
caf227dd08
fix(dap): extend dap.configurations from .vscode/launch.json (#4106)
## Description

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

This PR allows the nvim-dap module to read from vscode's launch.json and
add those configurations to the ones in nvim-dap.

## Related Issue(s)

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

## Screenshots

Before:

<img width="1137" alt="image"
src="https://github.com/user-attachments/assets/22978298-dbe1-44f5-92ac-c981197b22ae">



After:

<img width="1004" alt="image"
src="https://github.com/user-attachments/assets/3521b75e-6e32-40f4-9172-f52f39077441">


## Checklist

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

---------

Co-authored-by: Micah Halter <micah@mehalter.com>
2024-07-23 17:05:18 +02:00
Folke Lemaitre
f0d8b8b293
fix(keymaps): leader-wd 2024-07-23 08:29:08 +02:00
folke
5727da6ff7 chore(build): auto-generate docs 2024-07-23 05:18:13 +00:00
Folke Lemaitre
f6cd4a38c6
fix(news): deprecated API 2024-07-23 07:17:18 +02:00
George Guimarães
f94a0591b3
feat(elixir): add elixirls code actions (#4148)
This is a refactoring of #3846  with the changes:

- Use `Lazyvim.lsp.execute` on keymaps to make everything simpler;
- Remove expandMacro. 

Closes #3846

---------

Co-authored-by: Ahmed Kamal <ahmed@moon-i.com.au>
2024-07-23 00:11:30 +02:00
Folke Lemaitre
1c2be200c1
fix(grug-far): use new transient option 2024-07-22 23:26:03 +02:00
github-actions[bot]
03968eb3f0
chore(main): release 12.36.0 (#4135)
🤖 I have created a release *beep* *boop*
---


##
[12.36.0](https://github.com/LazyVim/LazyVim/compare/v12.35.1...v12.36.0)
(2024-07-22)


### Features

* **grug-far:** no longer needed to call visual replace separately
([72d0cad](72d0cad353))

---
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-07-22 14:25:04 +02:00
Folke Lemaitre
5626d98d1c
ci: update 2024-07-22 14:24:32 +02:00
folke
3a87ce4afb chore(build): auto-generate docs 2024-07-22 06:39:25 +00:00
Folke Lemaitre
72d0cad353
feat(grug-far): no longer needed to call visual replace separately 2024-07-22 08:38:34 +02:00
github-actions[bot]
8db2f3af39
chore(main): release 12.35.1 (#4131)
🤖 I have created a release *beep* *boop*
---


##
[12.35.1](https://github.com/LazyVim/LazyVim/compare/v12.35.0...v12.35.1)
(2024-07-21)


### Bug Fixes

* **grug-far:** only prefill files filter when file has an extension.
Closes [#4130](https://github.com/LazyVim/LazyVim/issues/4130)
([6411ab0](6411ab0897))

---
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-07-21 17:34:32 +02:00
Folke Lemaitre
6411ab0897
fix(grug-far): only prefill files filter when file has an extension. Closes #4130 2024-07-21 17:23:36 +02:00
github-actions[bot]
fca038b433
chore(main): release 12.35.0 (#4128)
🤖 I have created a release *beep* *boop*
---


##
[12.35.0](https://github.com/LazyVim/LazyVim/compare/v12.34.0...v12.35.0)
(2024-07-21)


### Features

* **python:** default to new ruff instead of ruff_lsp
([#4126](https://github.com/LazyVim/LazyVim/issues/4126))
([61ce1cf](61ce1cfaaf))

---
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-07-21 15:53:07 +02:00
folke
76bc7b4022 chore(build): auto-generate docs 2024-07-21 10:25:26 +00:00
dotfrag
61ce1cfaaf
feat(python): default to new ruff instead of ruff_lsp (#4126)
## Description

Change default python ruff lsp from `ruff_lsp` to `ruff`. It is now
marked as stable. I have been using it for a few days without any
problems. I use python for relatively small to medium projects. Maybe
someone who is using python more rigorously has better feedback.

References:

https://github.com/astral-sh/ruff-lsp (see note)
https://github.com/astral-sh/ruff/releases/tag/0.5.3
https://docs.astral.sh/ruff/editors/setup/#neovim

Also the issue in https://github.com/LazyVim/LazyVim/pull/3057 has been
resolved. I tested it and I only get 1 `ruff server` process per nvim
instance. The processes close correctly when nvim is closed.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-21 12:24:28 +02:00
github-actions[bot]
43dbe0e60d
chore(main): release 12.34.0 (#4121)
🤖 I have created a release *beep* *boop*
---


##
[12.34.0](https://github.com/LazyVim/LazyVim/compare/v12.33.0...v12.34.0)
(2024-07-20)


### Features

* **editor:** replace nvim-spectre with grug-far.nvim
([#4099](https://github.com/LazyVim/LazyVim/issues/4099))
([0d561a3](0d561a3226))
* **indent-blankline:** add which-key toggles
([#4122](https://github.com/LazyVim/LazyVim/issues/4122))
([a997152](a997152eb2))


### Bug Fixes

* **conform:** changes for new conform.nvim config
([eed91a3](eed91a3e4c))
* **toggle:** safe toggle get
([c8ab5d7](c8ab5d7554))


### Performance Improvements

* **core:** defer clipboard because xsel and pbcopy can be slow
([#4120](https://github.com/LazyVim/LazyVim/issues/4120))
([578f06e](578f06e140))

---
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-07-20 22:27:04 +02:00
Shaun Clayton
a997152eb2
feat(indent-blankline): add which-key toggles (#4122)
## Description

Add which-key toggle mappings for toggling both the indention guides,
and also scope highlight on a per buffer basis.

## Screenshots


![2024-07-20_08-16](https://github.com/user-attachments/assets/7b282868-c035-4f71-97dd-5738cd953713)

## 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-07-20 22:14:33 +02:00
Folke Lemaitre
c8ab5d7554
fix(toggle): safe toggle get 2024-07-20 22:06:16 +02:00
Folke Lemaitre
0d561a3226
feat(editor): replace nvim-spectre with grug-far.nvim (#4099)
## Description

I'm considering to replace
[nvim-spectre](https://github.com/nvim-pack/nvim-spectre) with
[grug-far.nvim](https://github.com/MagicDuck/grug-far.nvim).

It has a better ui and I like the workflow better.

I won't merge this right away. I'm mostly looking for feedback on
whether this would be a good thing and whether the defaults option I've
added seem ok.

## Related Issue(s)

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

## Screenshots


![image](https://github.com/user-attachments/assets/bc44e35b-e033-4769-ad40-cdfe9e3482f4)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-20 21:39:39 +02:00
Folke Lemaitre
eed91a3e4c
fix(conform): changes for new conform.nvim config 2024-07-20 17:14:07 +02:00
Folke Lemaitre
3d1f961232
refactor: which-key mappings 2024-07-20 17:04:01 +02:00
folke
6f91b406dd chore(build): auto-generate docs 2024-07-20 09:49:07 +00:00
abeldekat
578f06e140
perf(core): defer clipboard because xsel and pbcopy can be slow (#4120)
## Description

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

See [this](https://github.com/LazyVim/LazyVim/discussions/4112)
discussion

TLDR: 
Startup time performance is affected quite significantly when the
clipboard provider is `xsel`(linux) or `pbcopy`(macos). I expect an
improvement in these cases, especially on older pc's.

This PR resets `vim.opt.clipboard` after the `options` are loaded. Then,
on `VeryLazy`, the setting is restored.

I also tested with `yanky`.

Relevant prints:

1. Before resetting `vim.opt.clipboard` in `init`,
`vim.print(vim.opt.clipboard)` yields a table which will be captured:

```lua
--- fields
_name = "clipboard",
_value = "unnamedplus",
--- more fields
```

2. Set `vim.opt.clipboard = ""` and `vim.print(vim.opt.clipboard)`, also
yields a table:

```lua
--- fields
_name = "clipboard",
_value = "",
--- more fields
```


## 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: abeldekat <abel@nomail.com>
2024-07-20 11:48:11 +02:00
github-actions[bot]
64afb5f007
chore(main): release 12.33.0 (#4102)
🤖 I have created a release *beep* *boop*
---


##
[12.33.0](https://github.com/LazyVim/LazyVim/compare/v12.32.0...v12.33.0)
(2024-07-19)


### Features

* **extras:** improve ruby extra by letting user chose
([#3652](https://github.com/LazyVim/LazyVim/issues/3652))
([7839498](7839498108))
* **lang:** add Lean 4 support
([#4080](https://github.com/LazyVim/LazyVim/issues/4080))
([3e29fdf](3e29fdf478))
* **lang:** add OCaml
([#4079](https://github.com/LazyVim/LazyVim/issues/4079))
([a219e10](a219e105b0))


### Bug Fixes

* **ui:** trouble lualine component
([f9fdb35](f9fdb356f2))

---
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-07-19 11:50:05 +02:00
Kevin Robayna
7839498108
feat(extras): improve ruby extra by letting user chose (#3652)
## What is this PR for?

Shopify started working on its own LSP
(https://github.com/Shopify/ruby-lsp) and it performs way better than
Solargraph which has a lot of limitations. This paired with sorbet gives
better IntelliSense when navigating the code.

This PR follows the same approach as Python and lets the user configure
through vim.g options the lsp and formatter for ruby, without overriding
any configuration.

## Does this PR fix an existing issue?

One caveat though is that RubyLsp does not work very well with NeoVim <
0.10 https://github.com/Shopify/ruby-lsp/blob/main/EDITORS.md#neovim

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-19 11:09:57 +02:00
Ben Puryear
3e29fdf478
feat(lang): add Lean 4 support (#4080)
## Description

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

Adds language support for lean, a popular proof assistant and theorem
prover.

## 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. -->

Language Server

<img width="1510" alt="lsp"
src="https://github.com/user-attachments/assets/28c29cae-eca4-4dfa-a4a4-462551f5cfd8">

Lean Execution (infobox on the right)

<img width="1510" alt="goals"
src="https://github.com/user-attachments/assets/e195dbeb-70d6-4f09-90bf-dbe289423bec">

Keymaps

<img width="1510" alt="keymaps"
src="https://github.com/user-attachments/assets/2451c3d2-b855-4fb5-9d30-33305274c52c">

Many More Commands

<img width="1510" alt="lots of commands"
src="https://github.com/user-attachments/assets/e7b7eb1d-0f4e-4d3c-a58b-a87eb7e0319c">

## 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-07-19 09:38:55 +02:00
folke
5795be3c19 chore(build): auto-generate docs 2024-07-19 07:34:55 +00:00
Ben Puryear
a219e105b0
feat(lang): add OCaml (#4079)
## Description

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

Adds an extra that adds language support for ocaml.

Adds LSP and completions. Fairly simple/small config.

## 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="1510" alt="lsp ocaml"
src="https://github.com/user-attachments/assets/0e44c539-332c-415d-9225-bcbb61f37666">


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-19 09:33:49 +02:00
Folke Lemaitre
f9fdb356f2
fix(ui): trouble lualine component 2024-07-18 15:45:53 +02:00
github-actions[bot]
0daa957b3c
chore(main): release 12.32.0 (#4086)
🤖 I have created a release *beep* *boop*
---


##
[12.32.0](https://github.com/LazyVim/LazyVim/compare/v12.31.0...v12.32.0)
(2024-07-18)


### Features

* **edgy:** added support for grug-far.nvim
([b1a4740](b1a47405b9))
* **terminal:** clear search highlight when opening a terminal
([#4090](https://github.com/LazyVim/LazyVim/issues/4090))
([b5290fd](b5290fd929))
* **toggle:** move toggle notifs to toggle function
([c1b76ee](c1b76ee235))


### Bug Fixes

* **autcmds:** desc for close_with_q
([d6561fd](d6561fd27c))
* **ui:** another typo
([b8bdebe](b8bdebe5be))
* **ui:** typo
([4ac249b](4ac249beaa))

---
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-07-18 10:48:31 +02:00
Folke Lemaitre
b8bdebe5be
fix(ui): another typo 2024-07-18 10:42:02 +02:00
Folke Lemaitre
4ac249beaa
fix(ui): typo 2024-07-18 09:30:56 +02:00
Jeremy Pridemore
d2483f19ce
feat(lualine): allow for trouble_lualine to be overriden on buffer (#4096)
## Description

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

Right now there is a default `vim.g.trouble_lualine` being set to
`true`, and only that variable is being checked when deciding if the
trouble output is being appended to the `lualine_c` for the lualine
plugin. This is normally nice in code files, where you can get output
like `packages/src/index.ts > myFunction` but in some filetypes, the
user may not wish for this. In particular, I found if you have files
with the `markdown` type that include long headers, then you can easily
lose the file name by it trying to include the headers in this location.

Considering that one of the `CONTRIBUTING.md` guidelines is `Ensure all
configurations are overridable by the user, using Lazy's specs.`, I
figured that allowing this to be overrideable at the user's discretion
could be a valuable feature.

This would allow the user to override this on file type by including an
autocmd like this in their `lua/config/autocmds.lua` or equivalent:

```lua
-- disable trouble symbols in lualine in text filetypes
vim.api.nvim_create_autocmd("FileType", {
  group = vim.api.nvim_create_augroup("disable_trouble_lualine", { clear = true }),
  pattern = { "text", "plaintex", "typst", "gitcommit", "markdown" },
  callback = function()
    vim.b.trouble_lualine = false
  end,
})
```

## 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.

---------

Co-authored-by: jpridemore-allegion <jeremy.pridemore@allegion.com>
2024-07-18 07:21:50 +02:00
folke
87ef93e8a0 chore(build): auto-generate docs 2024-07-18 05:11:12 +00:00
dotfrag
b5290fd929
feat(terminal): clear search highlight when opening a terminal (#4090)
## Description

Often times when opening a terminal or lazygit when a search is active,
words in the terminal are highlighted. In my opinion this is rarely, if
not never intended. This attempts to fixes this behavior. The code of
`terminal.lua` is a bit beyond me, but I believe I have added it to the
right place.

## Related Issue(s)

N/A.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-18 07:10:22 +02:00
Folke Lemaitre
d6561fd27c
fix(autcmds): desc for close_with_q 2024-07-18 00:41:54 +02:00
Folke Lemaitre
b1a47405b9
feat(edgy): added support for grug-far.nvim 2024-07-18 00:21:19 +02:00
Folke Lemaitre
c1b76ee235
feat(toggle): move toggle notifs to toggle function 2024-07-17 15:07:04 +02:00
github-actions[bot]
d263cf5dd1
chore(main): release 12.31.0 (#4061)
🤖 I have created a release *beep* *boop*
---


##
[12.31.0](https://github.com/LazyVim/LazyVim/compare/v12.30.0...v12.31.0)
(2024-07-17)


### Features

* **keymaps:** proxy leader-w to ctrl-w
([bab5440](bab54406dc))
* **R:** added new which-key group for new install feature
([#4078](https://github.com/LazyVim/LazyVim/issues/4078))
([5339aca](5339acacec))
* **toggle:** make toggles callable. Fixes
[#4081](https://github.com/LazyVim/LazyVim/issues/4081)
([150523b](150523b77b))
* **treesitter-context:** which-key toggle
([#4059](https://github.com/LazyVim/LazyVim/issues/4059))
([ab01350](ab0135093b))
* **which-key:** dynamic buffer mappings under leader-b
([8d9f2ad](8d9f2ad97e))
* **which-key:** dynamic window mappings under leader-w
([66bba78](66bba787b8))
* **which-key:** leader-w-space starts hydra mode for window mappings
([865bf15](865bf15f1c))

---
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-07-17 12:48:40 +02:00
folke
fd2db9e5ee chore(build): auto-generate docs 2024-07-17 10:44:14 +00:00
Folke Lemaitre
8d9f2ad97e
feat(which-key): dynamic buffer mappings under leader-b 2024-07-17 12:43:12 +02:00
Folke Lemaitre
66bba787b8
feat(which-key): dynamic window mappings under leader-w 2024-07-17 12:42:55 +02:00
Folke Lemaitre
865bf15f1c
feat(which-key): leader-w-space starts hydra mode for window mappings 2024-07-17 12:42:29 +02:00
Folke Lemaitre
bab54406dc
feat(keymaps): proxy leader-w to ctrl-w 2024-07-17 12:40:56 +02:00
Folke Lemaitre
60b10deeb0
style(toggle): types 2024-07-16 23:54:23 +02:00
Folke Lemaitre
150523b77b
feat(toggle): make toggles callable. Fixes #4081 2024-07-16 23:34:27 +02:00
folke
1ceac32652 chore(build): auto-generate docs 2024-07-16 16:35:40 +00:00
Ben Puryear
5339acacec
feat(R): added new which-key group for new install feature (#4078)
## Description

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

A new feature was added to `r.nvim` that added a new key bind. This pr
adds that key bind (and group in case more are added) to the current
which-key config.

(I also removed a comment that I made previously for increasing the
width of the which-key window to fit the longer keybind descriptions,
something that eventually was taken out of the previous PR long ago)

## 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="154" alt="Screenshot 2024-07-16 at 9 24 54 AM"
src="https://github.com/user-attachments/assets/70336846-cf42-458e-89f3-3e7cf1b94c3f">

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-16 18:34:51 +02:00
Folke Lemaitre
a1335e59e1
style: fix toggle desc 2024-07-15 23:56:07 +02:00
Stefan Boca
ab0135093b
feat(treesitter-context): which-key toggle (#4059)
## Description

Add a which-key toggle for treesitter-context

## Screenshots


![image](https://github.com/user-attachments/assets/28c02607-a7e8-409c-a190-4fd2db85e8bb)

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-15 22:58:34 +02:00
github-actions[bot]
dc8a3a139e
chore(update): update repository (#4054)
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>
2024-07-15 17:09:19 +02:00
github-actions[bot]
9eefc6a3aa
chore(main): release 12.30.0 (#4036)
🤖 I have created a release *beep* *boop*
---


##
[12.30.0](https://github.com/LazyVim/LazyVim/compare/v12.29.2...v12.30.0)
(2024-07-15)


### Features

* **keymaps:** dynamic which-key icons/descriptions for toggles
([#4050](https://github.com/LazyVim/LazyVim/issues/4050))
([78cf032](78cf0320bf))
* **util.mini:** follow the user's mappings instead of hardcoded values
([#4043](https://github.com/LazyVim/LazyVim/issues/4043))
([8506cb5](8506cb5a98))


### Bug Fixes

* **lsp:** lsp keymaps. Fixes
[#4051](https://github.com/LazyVim/LazyVim/issues/4051)
([706ec4b](706ec4b6b6))
* **yanky:** enable yank history in visual mode
([#4048](https://github.com/LazyVim/LazyVim/issues/4048))
([6911327](6911327a5e))


### Performance Improvements

* **luasnip:** luasnip wasn't lazyloaded
([#4032](https://github.com/LazyVim/LazyVim/issues/4032))
([e80ed32](e80ed322a7))

---
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-07-15 15:49:29 +02:00
Folke Lemaitre
78cf0320bf
feat(keymaps): dynamic which-key icons/descriptions for toggles (#4050)
## Description

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

## Related Issue(s)

- [ ] Closes #4025

## Screenshots


![image](https://github.com/user-attachments/assets/8453c23c-d560-490c-9f96-a22ea88f45fd)

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-15 15:47:44 +02:00
Folke Lemaitre
706ec4b6b6
fix(lsp): lsp keymaps. Fixes #4051 2024-07-15 14:05:49 +02:00
Jelte Fennema-Nio
6911327a5e
fix(yanky): enable yank history in visual mode (#4048)
## Description

Being able to select from the yank history is useful if you want to
paste over something else by first selecting the stuff you want to
remove in visual mode.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-15 11:48:58 +02:00
github-actions[bot]
0f2d01dd01
chore(update): update repository (#4047)
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>
2024-07-15 11:19:44 +02:00
folke
448e15862a chore(build): auto-generate docs 2024-07-15 07:07:24 +00:00
Johnson Hu
8506cb5a98
feat(util.mini): follow the user's mappings instead of hardcoded values (#4043)
Because I use the Colemak-DH keyboard layout, I have mapped 'i' to 'h'.
Therefore, the current mini.ai which_key prompts are inconsistent with
my keymap.


## Description

The names and prefixes used in mini.ai_whichkey() are hardcoded and
should follow the user's mappings.

## Related Issue(s)

No

## Screenshots

No

## 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-07-15 09:06:34 +02:00
Lucas
e80ed322a7
perf(luasnip): luasnip wasn't lazyloaded (#4032)
## Description

this makes the extra luasnip lazy load at the same time as nvim cmp.
just putting `lazy = true` works because `nvim-cmp` when being loaded
with `InsertEnter` also load `cmp-luasnip`, which itself load `LUASNIP`.

you can see the problem in the following discussion
https://github.com/LazyVim/LazyVim/discussions/3966 where luasnip was
not lazy loaded when starting lazyvim. This was also loading nvim-cmp
and all its dep when starting lazyvim, which negatively impacted
performance.

## Related Issue(s)

https://github.com/LazyVim/LazyVim/discussions/3966

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-14 18:19:28 +02:00
Folke Lemaitre
29e285d882
style(persistence): remove unused option 2024-07-14 18:11:24 +02:00
github-actions[bot]
b20be638b3
chore(main): release 12.29.2 (#4035)
🤖 I have created a release *beep* *boop*
---


##
[12.29.2](https://github.com/LazyVim/LazyVim/compare/v12.29.1...v12.29.2)
(2024-07-14)


### Bug Fixes

* **telescope:** better find_command. Fixes
[#4031](https://github.com/LazyVim/LazyVim/issues/4031)
([d39cdb0](d39cdb0596))

---
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-07-14 18:08:14 +02:00
Folke Lemaitre
d39cdb0596
fix(telescope): better find_command. Fixes #4031 2024-07-14 18:06:40 +02:00
github-actions[bot]
45af7e1fed
chore(main): release 12.29.1 (#4026)
🤖 I have created a release *beep* *boop*
---


##
[12.29.1](https://github.com/LazyVim/LazyVim/compare/v12.29.0...v12.29.1)
(2024-07-14)


### Bug Fixes

* **omnisharp:** don't detach coreclr debug adapter
([#4023](https://github.com/LazyVim/LazyVim/issues/4023))
([b3e746b](b3e746b637))
* **pick:** get rid of "auto" picker and set better defaults for
telescope find_files
([#4024](https://github.com/LazyVim/LazyVim/issues/4024))
([337e9dd](337e9ddc00))
* **tailwind:** additional tailwind completion settings for phoenix
projects ([#3961](https://github.com/LazyVim/LazyVim/issues/3961))
([9bce054](9bce054faf))

---
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-07-14 07:54:09 +02:00
Siva Sivakumar
9bce054faf
fix(tailwind): additional tailwind completion settings for phoenix projects (#3961)
## Description

Tailwind completions stopped working in Phoenix projects that have
`HTML`, `HEEX` or `Elixir files with ~H sigils`.

Broader discussion and recommended solution:
https://github.com/tailwindlabs/tailwindcss-intellisense/issues/1002

## Related Issue(s)


## Screenshots

![Screenshot 2024-07-08 at 9 05
45 PM](https://github.com/LazyVim/LazyVim/assets/379021/8572e6c1-12dd-454c-b60e-3b33ae448284)
![Screenshot 2024-07-08 at 9 05
08 PM](https://github.com/LazyVim/LazyVim/assets/379021/f93bdc28-813e-4485-b40d-146c1670b8c2)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-14 07:53:18 +02:00
Kurren Nischal
b3e746b637
fix(omnisharp): don't detach coreclr debug adapter (#4023)
## Description

Debugging c# with the Omnisharp plugin doesn't work, as described by
myself in #4004. Turns out this is a known issue with how nvim-dap calls
the mason netcoredbg cmd script. [The
solution](https://github.com/jay-babu/mason-nvim-dap.nvim/issues/132) is
to pass `detach = false` as an option to the debug adapter. I've tested
and it works on my windows machine.

## Related Issue(s)

#4004

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-14 07:52:53 +02:00
Folke Lemaitre
337e9ddc00
fix(pick): get rid of "auto" picker and set better defaults for telescope find_files (#4024)
## Description

Changes telescope's `find_files` options to match `fzf-lua` that matches
what `git_files` does including untracked files.

## Related Issue(s)

Fixes #3974

## 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-07-14 07:52:00 +02:00
github-actions[bot]
065d72320d
chore(main): release 12.29.0 (#4015)
🤖 I have created a release *beep* *boop*
---


##
[12.29.0](https://github.com/LazyVim/LazyVim/compare/v12.28.0...v12.29.0)
(2024-07-14)


### Features

* **java:** new java mappings format for which-key v3
([#4013](https://github.com/LazyVim/LazyVim/issues/4013))
([28a7f81](28a7f8126c))
* shorter keymap descriptions for mini.ai / yanky
([75ff149](75ff1496bd))


### Bug Fixes

* **flit:** use which-key preset keymap descriptions
([#4000](https://github.com/LazyVim/LazyVim/issues/4000))
([ca37162](ca37162cb7))

---
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-07-14 07:50:40 +02:00
folke
d01a58ef90 chore(build): auto-generate docs 2024-07-14 05:09:15 +00:00
Folke Lemaitre
75ff1496bd
feat: shorter keymap descriptions for mini.ai / yanky 2024-07-14 07:08:17 +02:00
github-actions[bot]
431ceaf329
chore(update): update repository (#4019)
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>
2024-07-13 18:09:42 +02:00
github-actions[bot]
1f8469a53c
chore(update): update repository (#4018)
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>
2024-07-13 16:16:04 +02:00
github-actions[bot]
b4b0234008
chore(update): update repository (#4009)
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>
2024-07-13 10:07:07 +02:00
Lawrence Ho
28a7f8126c
feat(java): new java mappings format for which-key v3 (#4013)
## Description

Use which-key v3 format for java mappings.

`<leader>c` is removed as it is reported as a duplicate mapping in
health check.

## Related Issue(s)


## Screenshots


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-13 09:54:58 +02:00
folke
406aa9d8b4 chore(build): auto-generate docs 2024-07-13 07:52:17 +00:00
Bao
ca37162cb7
fix(flit): use which-key preset keymap descriptions (#4000)
## Description

The flit config overrides the descriptions provided by the which-key
presets plugin for the `f`/`F`/`t`/`T` motions with an unhelpful
description text (just the key itself).

Remove the `desc` argument so that which-key uses the existing
description (e.g "Move before next char").

## Related Issue(s)

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

## Screenshots

| Before | After |
| ------------- | ------------- |
|
![Before](https://github.com/user-attachments/assets/39b885fe-95c2-4a6e-8b22-4e5ddf1986a9)
|
![After](https://github.com/user-attachments/assets/6042fde3-e135-48fa-b1fd-c6047277903a)
|


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-13 09:51:19 +02:00
github-actions[bot]
9391ff9fa3
chore(main): release 12.28.0 (#3952)
🤖 I have created a release *beep* *boop*
---


##
[12.28.0](https://github.com/LazyVim/LazyVim/compare/v12.27.0...v12.28.0)
(2024-07-12)


### Features

* new mappings format for which-key v3. Forgot to push :)
([702471e](702471e454))


### Bug Fixes

* **autocmds:** fixed pattern for autocommand to autoenable wrap and
spell in text files
([#3975](https://github.com/LazyVim/LazyVim/issues/3975))
([927031a](927031a2de))
* **java:** fix `config_overrides` for tests
([#3968](https://github.com/LazyVim/LazyVim/issues/3968))
([b481b64](b481b644dd))
* **outline:** use new object for `symbols.filter`
([#4006](https://github.com/LazyVim/LazyVim/issues/4006))
([db234ef](db234ef9cb))
* **php:** `php_cs_fixer` is the correct name
([#3991](https://github.com/LazyVim/LazyVim/issues/3991))
([8bfd9a5](8bfd9a50a7))
* **vscode:** allow overriding default vscode keymaps. Fixes
[#3950](https://github.com/LazyVim/LazyVim/issues/3950)
([6765052](67650528e4))

---
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-07-12 22:56:08 +02:00
Folke Lemaitre
702471e454
feat: new mappings format for which-key v3. Forgot to push :) 2024-07-12 22:54:35 +02:00
folke
4a6c0c2850 chore(build): auto-generate docs 2024-07-12 20:07:43 +00:00
Iordanis Petkakis
db234ef9cb
fix(outline): use new object for symbols.filter (#4006)
## Description
In `outline.nvim` we have `symbols.filter = LazyVim.config.kind_filter`.
`outline.nvim` adds an entry `exclude = false` by default when it's a
table. This entry propagates to `LazyVim.config.kind_filter` and when
using `LazyVim.config.get_kind_filter()` in Telescope `<leader>ss` that
entry is there as well and causes the error in
bfcc7d5c6f/lua/telescope/utils.lua (L143).
Use `vim.deepcopy` to create a new object for `symbols.filter` in
`outline.nvim`, so that the additional entries don't propagate to
default `LazyVim.config.kind_filter`.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #4003
<!--
  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-07-12 22:06:34 +02:00
folke
0e2eaa3fba chore(build): auto-generate docs 2024-07-11 15:41:05 +00:00
Iordanis Petkakis
8bfd9a50a7
fix(php): php_cs_fixer is the correct name (#3991)
## Description
`conform.nvim` was not using the correct formatter name for
`php-cs-fixer` (which is the name of the binary).
Also move `conform.nvim` spec outside of `nvim-lint` spec.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #3985
<!--
  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-07-11 17:40:17 +02:00
folke
11268d8ff1 chore(build): auto-generate docs 2024-07-10 07:12:24 +00:00
Mike Pilmer
927031a2de
fix(autocmds): fixed pattern for autocommand to autoenable wrap and spell in text files (#3975)
## Description

Autocommand group lazyvim_wrap_spell was not triggering for all of the
specified file types.

The autocommand will now trigger for types "text", "plaintex", "typst",
"gitcommit", "markdown" as intended.

## Related Issue(s)

 - Fixes #3973 


## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-10 09:11:26 +02:00
folke
d6bda24697 chore(build): auto-generate docs 2024-07-09 15:13:00 +00:00
sus-domesticus
b481b644dd
fix(java): fix config_overrides for tests (#3968)
## Description
Problem
In the default configuration `opts.test` is a boolean and the code tries
to access `opts.test.config_overrides` which results in an error.

Solution
Use control flow to return nil in the case of `opts.test` being boolean.

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

## Related Issue(s)
  - Fixes #3965.

## Checklist

- [ x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-09 17:12:02 +02:00
folke
8a34051177 chore(build): auto-generate docs 2024-07-08 05:53:15 +00:00
Folke Lemaitre
67650528e4
fix(vscode): allow overriding default vscode keymaps. Fixes #3950 2024-07-08 07:52:18 +02:00
github-actions[bot]
bf9887adac
chore(main): release 12.27.0 (#3949)
🤖 I have created a release *beep* *boop*
---


##
[12.27.0](https://github.com/LazyVim/LazyVim/compare/v12.26.2...v12.27.0)
(2024-07-07)


### Features

* **icons:** provide language specific icons in extras
([#3931](https://github.com/LazyVim/LazyVim/issues/3931))
([aa418a2](aa418a2147))
* **java:** allow overriding test config
([#3891](https://github.com/LazyVim/LazyVim/issues/3891))
([8b2eacb](8b2eacb6ac))


### Bug Fixes

* **fzf-lua:** move register_select to lazy init
([33e1da5](33e1da585d))
* **lazygit:** improve git browse
([#3941](https://github.com/LazyVim/LazyVim/issues/3941))
([28805d1](28805d1a4c))

---
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-07-07 21:28:01 +02:00
med8bra
28805d1a4c
fix(lazygit): improve git browse (#3941)
## Description
Improves git browse command by handling different types of remotes, and
allows user to extend to other git hosts.

## Related Issue(s)
Fixes #3886

## 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-07-07 21:25:45 +02:00
kezhenxu94
8b2eacb6ac
feat(java): allow overriding test config (#3891)
## What is this PR for?

Allow overriding java test config

## Does this PR fix an existing issue?

NO

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-07 20:50:13 +02:00
Folke Lemaitre
f3c93701e7
style(icons): CODEOWNERS has a default icon 2024-07-07 20:41:37 +02:00
Michael Olson
aa418a2147
feat(icons): provide language specific icons in extras (#3931)
## What is this PR for?

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

Provide language specific file icons. The intent is to lay the
foundation of this type of extension / configuration. I've added icons
for file types that I interact with but this is definitely not holistic.
I also went back and forth on whether the configuration should be within
the core UI config or in the extras (I landed on the later). Definitely
open to feedback on these changes.

## Does this PR fix an existing issue?

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

Nope.

## 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-07-07 19:28:51 +02:00
Folke Lemaitre
09831414cf
test: added tests for mini.icons 2024-07-07 17:46:57 +02:00
Folke Lemaitre
33e1da585d
fix(fzf-lua): move register_select to lazy init 2024-07-07 17:23:53 +02:00
github-actions[bot]
6202dd1644
chore(main): release 12.26.2 (#3946)
🤖 I have created a release *beep* *boop*
---


##
[12.26.2](https://github.com/LazyVim/LazyVim/compare/v12.26.1...v12.26.2)
(2024-07-07)


### Bug Fixes

* **lualine:** check that trouble is installed
([d108169](d108169e95))

---
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-07-07 09:24:59 +02:00
folke
304729b23a chore(build): auto-generate docs 2024-07-07 06:48:54 +00:00
Folke Lemaitre
d108169e95
fix(lualine): check that trouble is installed 2024-07-07 08:47:57 +02:00
Folke Lemaitre
4035768195
ci: update 2024-07-06 23:45:22 +02:00
Folke Lemaitre
21470b49d9
ci: update 2024-07-06 23:19:41 +02:00
Folke Lemaitre
5e1216867b
ci: update 2024-07-06 23:18:20 +02:00
github-actions[bot]
427b641eb8
chore(update): update repository (#3940)
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>
2024-07-06 18:05:06 +02:00
github-actions[bot]
d8958d78b5
chore(update): update repository (#3938)
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>
2024-07-06 15:00:04 +02:00
github-actions[bot]
e9857446ce
chore(main): release 12.26.1 (#3930)
🤖 I have created a release *beep* *boop*
---


##
[12.26.1](https://github.com/LazyVim/LazyVim/compare/v12.26.0...v12.26.1)
(2024-07-06)


### Bug Fixes

* **lualine:** use the new ministarter file type to disable in
mini.starter ([#3929](https://github.com/LazyVim/LazyVim/issues/3929))
([330d2e4](330d2e470b))
* **mini.starter:** lazyvim startuptime in mini.starter
([#3935](https://github.com/LazyVim/LazyVim/issues/3935))
([5f952bb](5f952bb9d6))

---
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-07-06 12:12:32 +02:00
Folke Lemaitre
ab2ff2e436
ci: update 2024-07-06 11:45:21 +02:00
folke
3d410407be chore(build): auto-generate docs 2024-07-06 07:56:55 +00:00
Dronakurl
5f952bb9d6
fix(mini.starter): lazyvim startuptime in mini.starter (#3935)
## What is this PR for?

In a fresh install of lazyvim (with` neovim nightly or stable), the
startup time is not shown in the mini.starter extra. This fixes it.
The filetype name has changed in mini.starter

394994b2be

## Does this PR fix an existing issue?

Did not find an issue for it.

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-06 09:56:19 +02:00
Farzad Majidfayyaz
330d2e470b
fix(lualine): use the new ministarter file type to disable in mini.starter (#3929)
## What is this PR for?

`mini.starter` recently had a breaking change to set the file type to
`ministarter` instead of the old `starter`; so, `lualine` is enabled in
the dashboard because it's using the old file type.

## Does this PR fix an existing issue?

No.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-05 19:34:44 +02:00
Folke Lemaitre
a915a5d7e1
ci: fix urls 2024-07-05 19:08:52 +02:00
Folke Lemaitre
bb4d4cbd5c
ci: update 2024-07-05 18:58:27 +02:00
github-actions[bot]
0471ca14ca
chore(main): release 12.26.0 (#3920)
🤖 I have created a release *beep* *boop*
---


##
[12.26.0](https://github.com/LazyVim/LazyVim/compare/v12.25.0...v12.26.0)
(2024-07-05)


### Features

* **dial:** yaml support
([f64bbd2](f64bbd29fb))
* **util:** rest-client
([#3915](https://github.com/LazyVim/LazyVim/issues/3915))
([76b41cd](76b41cdec4))
* **vue:** enabled hybrid mode to avoid 2 typescript lsp running at same
time ([#3908](https://github.com/LazyVim/LazyVim/issues/3908))
([4b0f720](4b0f720457))


### Bug Fixes

* **dial:** move date related augends to default group
([#3927](https://github.com/LazyVim/LazyVim/issues/3927))
([4192d95](4192d9578d))
* **outline:** use the correct symbols and filter config format
([#3924](https://github.com/LazyVim/LazyVim/issues/3924))
([502dac1](502dac1d9a))
* **project:** properly close window after changing directory
([#3919](https://github.com/LazyVim/LazyVim/issues/3919))
([51e99df](51e99dfba1))

---
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-07-05 16:13:20 +02:00
Ray Guo
4b0f720457
feat(vue): enabled hybrid mode to avoid 2 typescript lsp running at same time (#3908)
## What is this PR for?

At the moment, the config for vue set hybrid mode to `false` which volar
will run a typescript server under the hook. ( hybrid mode false is the
takeover mode in v1, was introduced in `2.0.7` see more information
here: https://github.com/vuejs/language-tools/pull/4119 ).

However, another vtsls with vue language plugin also attached to vue
files, this will cause two typescript server running at the same time.
It can be very easily observed with tools like `htop` volar and vtsls
will have similar memory usage which is abnormal because volar should be
very light by itself. This will introduce issues like duplicate
diagnostics, see
https://github.com/vuejs/language-tools/issues/4159#issuecomment-2208101079

In this pull request, I set the hybrid mode to true as default because
the hybrid mode is the "correct" way moving forward, thus it would be
more stable. Let me know if you feel it should stay as `false` to be
default.

## Does this PR fix an existing issue?

No existing issue.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-05 16:12:04 +02:00
~hedy
502dac1d9a
fix(outline): use the correct symbols and filter config format (#3924)
## What is this PR for?

The symbols-outline extra was removed in favor of outline.nvim in #2535
(thanks!), but the configuration for symbols in outline.nvim [is not
backwards-compatible](https://github.com/hedyhli/outline.nvim/issues/12).

This fixes the configuration for the symbols icons and filter to be
usable by outline.nvim.

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

## Does this PR fix an existing issue?

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

It doesn't seem like anyone has encountered this issue, but I can
confirm that the config currently used by LazyVim is incorrect. The
symbols table is at `symbols` for symbols-outline.nvim, but it's now at
`symbols.icons` for outline.nvim.

There is no such `symbols_blacklist` key. Instead, `symbols.filter` is
used, which is a kind of "whitelist".

Coincidentally, outline.nvim fully supports the LazyVim `kind_filter`
config table structure. It can either be a list of strings (kinds), or a
list of strings for each filetype key. Setting to nil or false makes it
so all symbols are included, just like in LazyVim.

See [the docs on the
`symbols.filter`](https://github.com/hedyhli/outline.nvim?tab=readme-ov-file#symbols-table)
structure.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-05 16:10:46 +02:00
dotfrag
4192d9578d
fix(dial): move date related augends to default group (#3927)
## What is this PR for?

Move augends `ordinal_numbers`, `weekdays` and `months` to the default
group, making them available to all filetypes. I don't think there is a
concrete reason to restrict them to specific filetypes.

## Does this PR fix an existing issue?

N/A.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-05 16:08:52 +02:00
folke
d715456401 chore(build): auto-generate docs 2024-07-05 13:32:45 +00:00
Folke Lemaitre
6eb8cacd0f
ci: update 2024-07-05 15:31:26 +02:00
Folke Lemaitre
f64bbd29fb
feat(dial): yaml support 2024-07-05 14:56:51 +02:00
cbosvik
76b41cdec4
feat(util): rest-client (#3915)
## What is this PR for?

Kulala is a minimal REST-client implementation that allows you to make
HTTP requests from within Neovim

## Does this PR fix an existing issue?

No but simplifies life

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-05 09:20:18 +02:00
dotfrag
51e99dfba1
fix(project): properly close window after changing directory (#3919)
## What is this PR for?

In project extra, when using `<c-w>` in the project selection menu to
change directory, the window used to show the command's exit code would
not close. This fixes it.

## Does this PR fix an existing issue?

N/A.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-05 09:15:57 +02:00
github-actions[bot]
fb59a9feb0 chore(build): auto-generate vimdoc 2024-07-05 06:23:43 +00:00
jyuan0
8f74db318c
refactor(trouble): move options in keymaps for lsp and symbols to opts (#3917)
## What is this PR for?

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
A user won't also have to override the keymaps if they set options for
`Trouble lsp` or `symbols` in `opts` (assuming they want the mode to
always open with certain options).

## Does this PR fix an existing issue?
No.

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

## Checklist

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

----

The default for `Trouble symbols` already seems to be on the right, and
neither lsp/symbols auto-focuses, so I left these out.
2024-07-05 08:22:38 +02:00
github-actions[bot]
d35a3914bf
chore(main): release 12.25.0 (#3905)
🤖 I have created a release *beep* *boop*
---


##
[12.25.0](https://github.com/LazyVim/LazyVim/compare/v12.24.0...v12.25.0)
(2024-07-04)


### Features

* **erlang:** add Erlang language
([#3911](https://github.com/LazyVim/LazyVim/issues/3911))
([9c7d3dc](9c7d3dc75e))
* **fzf-lua:** preview keymaps for git
([#3904](https://github.com/LazyVim/LazyVim/issues/3904))
([d5f3d39](d5f3d395f4))
* **ui:** use `mini.icons` instead of `nvim-wev-devicons`
([#3899](https://github.com/LazyVim/LazyVim/issues/3899))
([045faec](045faec035))


### Bug Fixes

* **fzf:** make sure `vim.ui.select` works when fzf is not loaded yet
([9acadc7](9acadc7ec2))

---
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-07-04 21:02:19 +02:00
George Guimarães
9c7d3dc75e
feat(erlang): add Erlang language (#3911)
I usually work with Elixir codebases, but sometimes I want to browse and
code with Erlang codebases, so here is the config I've been using for
Erlang.
2024-07-04 20:47:33 +02:00
Folke Lemaitre
045faec035
feat(ui): use mini.icons instead of nvim-wev-devicons (#3899)
## What is this PR for?

Replace the icon support with the new mini library

## Blockers

- [ ]
https://github.com/echasnovski/mini.nvim/issues/1007#issuecomment-2206553024
2024-07-04 18:18:10 +02:00
Folke Lemaitre
1bf8050bc4
ci: new minit 2024-07-04 18:16:47 +02:00
github-actions[bot]
c848cfddef chore(build): auto-generate vimdoc 2024-07-04 13:22:14 +00:00
Folke Lemaitre
9acadc7ec2
fix(fzf): make sure vim.ui.select works when fzf is not loaded yet 2024-07-04 15:21:02 +02:00
Iordanis Petkakis
d5f3d395f4
feat(fzf-lua): preview keymaps for git (#3904)
## What is this PR for?
It seems that the preview keymaps set right now only support the builtin
previewer.

From searching through `fzf-lua` docs, I found
[here](3b91c1a471/README.md (L634-L638))
that additional mappings should be set for the other previewers such as
`git` (otherwise the defaults `<shift-down/up>` could be used).

I chose to use the same mappings for the `fzf` preview keymaps as they
serve the same functionality. Please feel free to change if not to your
liking.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Does this PR fix an existing issue?
Not an issue but a discussion #3895
<!--
  If this PR fixes any issues, please link to the issue here.
  Fixes #<issue_number>
-->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-03 21:49:21 +02:00
github-actions[bot]
8ddc6f9e16
chore(main): release 12.24.0 (#3900)
🤖 I have created a release *beep* *boop*
---


##
[12.24.0](https://github.com/LazyVim/LazyVim/compare/v12.23.0...v12.24.0)
(2024-07-03)


### Features

* **options:** jumpoptions=view
([fe3d0da](fe3d0da508))


### Bug Fixes

* **dials:** dials.nvim stopped working after making changes to plugin
files
([455557c](455557c1f6))


### Performance Improvements

* **fzf:** lazy-load fzf-lua
([b9a8a4a](b9a8a4ad7f))

---
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-07-03 21:12:38 +02:00
Folke Lemaitre
455557c1f6
fix(dials): dials.nvim stopped working after making changes to plugin files 2024-07-03 19:06:43 +02:00
Folke Lemaitre
b9a8a4ad7f
perf(fzf): lazy-load fzf-lua 2024-07-03 18:00:58 +02:00
Folke Lemaitre
fe3d0da508
feat(options): jumpoptions=view 2024-07-03 17:12:26 +02:00
github-actions[bot]
1f603f9074
chore(main): release 12.23.0 (#3872)
🤖 I have created a release *beep* *boop*
---


##
[12.23.0](https://github.com/LazyVim/LazyVim/compare/v12.22.1...v12.23.0)
(2024-07-03)


### Features

* **cmp:** attempt for dynamic width and trimming between fields
([#3873](https://github.com/LazyVim/LazyVim/issues/3873))
([78cf6ee](78cf6ee024))


### Bug Fixes

* **chezmoi:** missing support for fzf file picker
([#3888](https://github.com/LazyVim/LazyVim/issues/3888))
([2114a66](2114a6610f))
* **neo-tree:** remove `branch`, since it obstructs updating to latest
version ([#3871](https://github.com/LazyVim/LazyVim/issues/3871))
([d23731c](d23731c50d))

---
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-07-03 07:55:45 +02:00
github-actions[bot]
cb9cbd3a37 chore(build): auto-generate vimdoc 2024-07-03 05:52:05 +00:00
Jørgen Jensen
2114a6610f
fix(chezmoi): missing support for fzf file picker (#3888)
## What is this PR for?

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
  
This fixes an issue with the chezmoi extra that won't work if the
LazyVim picker is fzf-lua instead of Telescope. Fx if you have the
`editor.fzf` and `util.chezmoi` extras enabled at the same time, trying
to open the config from the dashboard will result in the following error
because Telescope has been replaced with fzf:
```
E5108: Error executing lua: vim/_editor.lua:0: nvim_exec2(): Vim:E492: Not an editor command: Telescope chezmoi find_files
stack traceback:
	[C]: in function 'nvim_exec2'
	vim/_editor.lua: in function 'cmd'
	...re/nvim/lazy/dashboard-nvim/lua/dashboard/theme/doom.lua:24: in function <...re/nvim/lazy/dashboard-nvim/lua/dashboard/theme/doom.lua:20>

```
This PR fixes the issue by checking which LazyVim picker is in use. 

Before: 


https://github.com/LazyVim/LazyVim/assets/53434466/31cade36-1655-438f-9aa8-c3de8fec881f

After: 


https://github.com/LazyVim/LazyVim/assets/53434466/55f7d0c7-9632-4d52-8a6e-dfba17b14ed4


## Does this PR fix an existing issue?

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

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-03 07:51:13 +02:00
Iordanis Petkakis
78cf6ee024
feat(cmp): attempt for dynamic width and trimming between fields (#3873)
## What is this PR for?
Attempt for dynamic width and trimming between fields.
Testing was done on my 15.6 laptop screen so maybe values could be
raised in dynamic calculation? Also provides a `vim.g.cmp_fixed_width`
for the users to be able to define a fixed width in their personal
configuration if they'd like to.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Does this PR fix an existing issue?
Attempts to rectify a concern raised in #3858
<!--
  If this PR fixes any issues, please link to the issue here.
  Fixes #<issue_number>
-->

## 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-06-30 23:14:00 +02:00
Iordanis Petkakis
d23731c50d
fix(neo-tree): remove branch, since it obstructs updating to latest version (#3871)
## What is this PR for?
`branch` was obstructing from being able to update to latest HEAD like
in other plugins. This was necessary when the initial development was
being done on this branch and `main` was used for the old stable
release, but this is not necessary any more. Also, @folke now you can
use `always_show_by_pattern`, which you might find useful to show the
git tracked hidden files like you wanted but couldn't do before.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Does this PR fix an existing issue?
No
<!--
  If this PR fixes any issues, please link to the issue here.
  Fixes #<issue_number>
-->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-06-30 19:15:23 +02:00
github-actions[bot]
00f53315b5
chore(main): release 12.22.1 (#3866)
🤖 I have created a release *beep* *boop*
---


##
[12.22.1](https://github.com/LazyVim/LazyVim/compare/v12.22.0...v12.22.1)
(2024-06-30)


### Performance Improvements

* **markdown:** only run markdownlint-cli2 formatter when there are
markdownlint diagnostics for the buffer
([8a6875a](8a6875ab3b))


### Reverts

* feat(neo-tree): more sane defaults for gitignore and hidden files
([2bfcd05](2bfcd05c62))

---
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-06-30 17:32:25 +02:00
Folke Lemaitre
2bfcd05c62
revert: feat(neo-tree): more sane defaults for gitignore and hidden files
This reverts commit 85405d6534.
2024-06-30 17:29:36 +02:00
Folke Lemaitre
8a6875ab3b
perf(markdown): only run markdownlint-cli2 formatter when there are markdownlint diagnostics for the buffer 2024-06-30 11:16:10 +02:00
Folke Lemaitre
06d2749308
ci: fix 2024-06-30 08:47:28 +02:00
Folke Lemaitre
19a8e5089c
ci: fix 2024-06-30 08:46:10 +02:00
github-actions[bot]
47c0e3bb9b
chore(main): release 12.22.0 (#3861)
🤖 I have created a release *beep* *boop*
---


##
[12.22.0](https://github.com/LazyVim/LazyVim/compare/v12.21.1...v12.22.0)
(2024-06-30)


### Features

* allow a custom path for `lazyvim.json`. Fixes
[#3856](https://github.com/LazyVim/LazyVim/issues/3856)
([131187c](131187c092))
* **cmp:** disable `item.menu` for Rust filetypes
([#3858](https://github.com/LazyVim/LazyVim/issues/3858))
([ee44b21](ee44b21898))
* **neo-tree:** more sane defaults for gitignore and hidden files
([85405d6](85405d6534))


### Bug Fixes

* **lsp:** prevent setting up mason-lspconfig more than once when
setting mslp opts
([8c900f9](8c900f92e7))

---
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-06-30 08:23:02 +02:00
github-actions[bot]
9a69f27484 chore(build): auto-generate vimdoc 2024-06-30 06:20:45 +00:00
Folke Lemaitre
85405d6534
feat(neo-tree): more sane defaults for gitignore and hidden files 2024-06-30 08:19:40 +02:00
Folke Lemaitre
131187c092
feat: allow a custom path for lazyvim.json. Fixes #3856 2024-06-29 21:19:15 +02:00
Iordanis Petkakis
ee44b21898
feat(cmp): disable item.menu for Rust filetypes (#3858)
## What is this PR for?
Tries to improve aesthetics for `nvim-cmp` in Rust by disabling
`item.menu` since it contains the `return` types that take up too much
space.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Does this PR fix an existing issue?
Fixes #3855
<!--
  If this PR fixes any issues, please link to the issue here.
  Fixes #<issue_number>
-->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-06-29 21:04:40 +02:00
Folke Lemaitre
8c900f92e7
fix(lsp): prevent setting up mason-lspconfig more than once when setting mslp opts 2024-06-29 21:01:42 +02:00
178 changed files with 8459 additions and 3561 deletions

7
.editorconfig Normal file
View file

@ -0,0 +1,7 @@
root = true
[*]
insert_final_newline = true
indent_style = space
indent_size = 2
charset = utf-8

View file

@ -1,3 +1,3 @@
{
".": "12.21.1"
".": "16.0.0"
}

View file

@ -6,7 +6,10 @@ body:
- type: markdown
attributes:
value: |
**Before** reporting an issue, make sure to read the [documentation](https://github.com/folke/LazyVim) and search [existing issues](https://github.com/folke/LazyVim/issues). Usage questions such as ***"How do I...?"*** belong in [Discussions](https://github.com/folke/LazyVim/discussions) and will be closed.
**Before** reporting an issue, make sure to read the [documentation](https://github.com/LazyVim/LazyVim)
and search [existing issues](https://github.com/LazyVim/LazyVim/issues).
Usage questions such as ***"How do I...?"*** belong in [Discussions](https://github.com/LazyVim/LazyVim/discussions) and will be closed.
- type: checkboxes
attributes:
label: Did you check docs and existing issues?
@ -14,6 +17,8 @@ body:
options:
- label: I have read all the LazyVim docs
required: true
- label: I have updated the plugin to the latest version before submitting this issue
required: true
- label: I have searched the existing issues of LazyVim
required: true
- label: I have searched the existing issues of plugins related to this issue
@ -57,33 +62,15 @@ body:
label: Repro
description: Minimal `init.lua` to reproduce this issue. Save as `repro.lua` and run with `nvim -u repro.lua`
value: |
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
vim.env.LAZY_STDPATH = ".repro"
load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))()
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
require("lazy.minit").repro({
spec = {
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- add any other plugins here
},
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
render: Lua
render: lua
validations:
required: false

View file

@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Ask a question or start a discussion
- name: Ask a question
url: https://github.com/LazyVim/LazyVim/discussions
about: Use Github discussions instead

View file

@ -1,15 +1,19 @@
## What is this PR for?
## Description
<!-- Describe the big picture of your changes to communicate to the maintainers
why we should accept this pull request. -->
## Does this PR fix an existing issue?
## Related Issue(s)
<!--
If this PR fixes any issues, please link to the issue here.
Fixes #<issue_number>
- 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.

View file

@ -1,11 +1,6 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
- package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

View file

@ -1,82 +1,14 @@
name: CI
on:
push:
branches: [main, master]
pull_request:
jobs:
stylua:
name: Stylua Formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: JohnnyMorganz/stylua-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
version: latest
args: --check .
tests:
strategy:
matrix:
# os: [ubuntu-latest, windows-latest]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install Neovim
shell: bash
run: |
mkdir -p /tmp/nvim
wget -q https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage -O /tmp/nvim/nvim.appimage
cd /tmp/nvim
chmod a+x ./nvim.appimage
./nvim.appimage --appimage-extract
echo "/tmp/nvim/squashfs-root/usr/bin/" >> $GITHUB_PATH
- name: Run Tests
run: |
nvim --version
[ ! -d tests ] && exit 0
./tests/run
docs:
runs-on: ubuntu-latest
needs: tests
if: ${{ github.ref == 'refs/heads/main' && github.repository_owner == 'LazyVim' }}
steps:
- uses: actions/checkout@v4
- name: panvimdoc
uses: kdheepak/panvimdoc@main
with:
vimdoc: LazyVim
version: "Neovim >= 0.9.0"
demojify: true
treesitter: true
- name: Push changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "chore(build): auto-generate vimdoc"
commit_user_name: "github-actions[bot]"
commit_user_email: "github-actions[bot]@users.noreply.github.com"
commit_author: "github-actions[bot] <github-actions[bot]@users.noreply.github.com>"
release:
name: release
if: ${{ github.ref == 'refs/heads/main' && github.repository_owner == 'LazyVim' }}
needs:
- docs
- tests
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
id: release
with:
config-file: .github/release-please-config.json
manifest-file: .github/.release-please-manifest.json
- uses: actions/checkout@v4
- name: tag stable versions
if: ${{ steps.release.outputs.release_created }}
run: |
git config user.name github-actions[bot]
git config user.email github-actions[bot]@users.noreply.github.com
git remote add gh-token "https://${{ secrets.GITHUB_TOKEN }}@github.com/google-github-actions/release-please-action.git"
git tag -d stable || true
git push origin :stable || true
git tag -a stable -m "Last Stable Release"
git push origin stable
ci:
uses: folke/github/.github/workflows/ci.yml@main
secrets: inherit
with:
plugin: LazyVim
repo: LazyVim/LazyVim

View file

@ -1,12 +1,8 @@
name: "Pull Request Labeler"
name: "PR Labeler"
on:
- pull_request_target
jobs:
labeler:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
uses: folke/github/.github/workflows/labeler.yml@main
secrets: inherit

View file

@ -1,4 +1,4 @@
name: "Lint PR"
name: PR Title
on:
pull_request_target:
@ -6,36 +6,13 @@ on:
- opened
- edited
- synchronize
- reopened
- ready_for_review
permissions:
pull-requests: read
jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
requireScope: true
subjectPattern: ^(?![A-Z]).+$
scopes: |
.+
types: |
build
chore
ci
docs
feat
fix
merge
perf
refactor
revert
style
test
wip
ignoreLabels: |
autorelease: pending
pr-title:
uses: folke/github/.github/workflows/pr.yml@main
secrets: inherit

View file

@ -1,27 +1,11 @@
name: Close stale issues and PRs
name: Stale Issues & PRs
on:
workflow_dispatch:
schedule:
- cron: "30 1 * * *"
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
operations-per-run: 300
# default stale time
days-before-stale: 30
days-before-close: 7
# never stale pull requests
# days-before-pr-stale: -1
days-before-pr-close: -1
# exclude issues with certain labels
exempt-issue-labels: pinned,wip,security,notice
# never stale issues attached to a milestone
# exempt-all-milestones: true
stale-issue-message: "This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days."
stale-pr-message: "This PR is stale because it has been open 60 days with no activity."
close-issue-message: "This issue was closed because it has been stalled for 7 days with no activity."
if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner)
uses: folke/github/.github/workflows/stale.yml@main
secrets: inherit

13
.github/workflows/update.yml vendored Normal file
View file

@ -0,0 +1,13 @@
name: Update Repo
on:
workflow_dispatch:
schedule:
# Run every hour
- cron: "0 * * * *"
jobs:
update:
if: contains(fromJSON('["folke", "LazyVim"]'), github.repository_owner)
uses: folke/github/.github/workflows/update.yml@main
secrets: inherit

15
.gitignore vendored
View file

@ -1,8 +1,9 @@
tt.*
.tests
doc/tags
debug
.repro
foo.*
*.log
data
/.repro
/.tests
/build
/debug
/doc/tags
foo.*
node_modules
tt.*

3
.markdownlint-cli2.yaml Normal file
View file

@ -0,0 +1,3 @@
config:
MD013: false
MD033: false

File diff suppressed because it is too large Load diff

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.

115
NEWS.md
View file

@ -1,7 +1,109 @@
# 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.
Check the [docs](https://github.com/folke/snacks.nvim/blob/main/docs/dashboard.md),
for more information and examples.
- A new [dashboard-nvim](https://github.com/nvimdev/dashboard-nvim) extra
is available for those who prefer the old dashboard.
- Big new release with a lot of changes and improvements!
- The biggest change is the move of a bunch of core features to
[snacks.nvim](https://github.com/folke/snacks.nvim) and fully
integrating it into **LazyVim**.
- I highly suggest having a look at the **snacks.nvim** documentation
to see all the new features and improvements. Most important changes:
- `Snacks.notifier` for notifications instead of `nvim-notify`
- `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)
to spice up your markdown files.
- [nvim-spectre](https://github.com/nvim-pack/nvim-spectre) has been removed in favor of [grug-far.nvim](https://github.com/MagicDuck/grug-far.nvim).
**grug-far.nvim** has a great UI and feels more intuitive to use.
- This **news** is now also available on the website at [https://www.lazyvim.org/news](https://www.lazyvim.org/news)
- **prettier** extra now works for all prettier supported filetypes
@ -21,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
@ -37,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
@ -75,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)
@ -91,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
@ -132,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, ...)_
@ -153,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,11 +111,7 @@ 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) is working on a book called
[@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 >= 0.9.0 Last change: 2024 June 29
*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,32 +79,31 @@ 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> is working on a book called
LazyVim for Ambitious Developers
@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.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,
})
@ -55,23 +59,34 @@ vim.api.nvim_create_autocmd("FileType", {
group = augroup("close_with_q"),
pattern = {
"PlenaryTestPopup",
"checkhealth",
"dap-float",
"dbout",
"gitsigns-blame",
"grug-far",
"help",
"lspinfo",
"neotest-output",
"neotest-output-panel",
"neotest-summary",
"notify",
"qf",
"spectre_panel",
"startuptime",
"tsplayground",
"neotest-output",
"checkhealth",
"neotest-summary",
"neotest-output-panel",
"dbout",
"gitsigns.blame",
},
callback = function(event)
vim.bo[event.buf].buflisted = false
vim.keymap.set("n", "q", "<cmd>close<cr>", { buffer = event.buf, silent = true })
vim.schedule(function()
vim.keymap.set("n", "q", function()
vim.cmd("close")
pcall(vim.api.nvim_buf_delete, event.buf, { force = true })
end, {
buffer = event.buf,
silent = true,
desc = "Quit buffer",
})
end)
end,
})
@ -87,7 +102,7 @@ vim.api.nvim_create_autocmd("FileType", {
-- wrap and check for spell in text filetypes
vim.api.nvim_create_autocmd("FileType", {
group = augroup("wrap_spell"),
pattern = { "*.txt", "*.tex", "*.typ", "gitcommit", "markdown" },
pattern = { "text", "plaintex", "typst", "gitcommit", "markdown" },
callback = function()
vim.opt_local.wrap = true
vim.opt_local.spell = true
@ -114,29 +129,3 @@ vim.api.nvim_create_autocmd({ "BufWritePre" }, {
vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p")
end,
})
vim.filetype.add({
pattern = {
[".*"] = {
function(path, buf)
return vim.bo[buf]
and vim.bo[buf].filetype ~= "bigfile"
and path
and vim.fn.getfsize(path) > vim.g.bigfile_size
and "bigfile"
or nil
end,
},
},
})
vim.api.nvim_create_autocmd({ "FileType" }, {
group = augroup("bigfile"),
pattern = "bigfile",
callback = function(ev)
vim.b.minianimate_disable = true
vim.schedule(function()
vim.bo[ev.buf].syntax = vim.filetype.match({ buf = ev.buf }) or ""
end)
end,
})

View file

@ -3,7 +3,7 @@ _G.LazyVim = require("lazyvim.util")
---@class LazyVimConfig: LazyVimOptions
local M = {}
M.version = "12.21.1" -- 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,9 +87,10 @@ local defaults = {
Package = "",
Property = "",
Reference = "",
Snippet = " ",
Snippet = "󱄽 ",
String = "",
Struct = "󰆼 ",
Supermaven = "",
TabNine = "󰏚 ",
Text = "",
TypeParameter = "",
@ -135,17 +138,20 @@ local defaults = {
}
M.json = {
version = 6,
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()
local path = vim.fn.stdpath("config") .. "/lazyvim.json"
local f = io.open(path, "r")
M.json.loaded = true
local f = io.open(M.json.path, "r")
if f then
local data = f:read("*a")
f:close()
@ -156,11 +162,14 @@ function M.json.load()
LazyVim.json.migrate()
end
end
else
M.json.data.install_version = M.json.version
end
end
---@type LazyVimOptions
local options
local lazy_clipboard
---@param opts? LazyVimOptions
function M.setup(opts)
@ -181,6 +190,9 @@ function M.setup(opts)
M.load("autocmds")
end
M.load("keymaps")
if lazy_clipboard ~= nil then
vim.opt.clipboard = lazy_clipboard
end
LazyVim.format.setup()
LazyVim.news.setup()
@ -201,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,
})
@ -248,20 +291,23 @@ function M.load(name)
end, { msg = "Failed loading " .. mod })
end
end
local pattern = "LazyVim" .. name:sub(1, 1):upper() .. name:sub(2)
-- always load lazyvim, then user file
if M.defaults[name] or name == "options" then
_load("lazyvim.config." .. name)
vim.api.nvim_exec_autocmds("User", { pattern = pattern .. "Defaults", modeline = false })
end
_load("config." .. name)
if vim.bo.filetype == "lazy" then
-- HACK: LazyVim may have overwritten options of the Lazy ui, so reset this here
vim.cmd([[do VimResized]])
end
local pattern = "LazyVim" .. name:sub(1, 1):upper() .. name:sub(2)
vim.api.nvim_exec_autocmds("User", { pattern = pattern, modeline = false })
end
M.did_init = false
M._options = {} ---@type vim.wo|vim.bo
function M.init()
if M.did_init then
return
@ -285,6 +331,15 @@ function M.init()
-- 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:get()
vim.opt.clipboard = ""
if vim.g.deprecation_warnings == false then
vim.deprecate = function() end
end
@ -293,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

@ -23,12 +23,12 @@ map("n", "<C-Left>", "<cmd>vertical resize -2<cr>", { desc = "Decrease Window Wi
map("n", "<C-Right>", "<cmd>vertical resize +2<cr>", { desc = "Increase Window Width" })
-- Move Lines
map("n", "<A-j>", "<cmd>m .+1<cr>==", { desc = "Move Down" })
map("n", "<A-k>", "<cmd>m .-2<cr>==", { desc = "Move Up" })
map("n", "<A-j>", "<cmd>execute 'move .+' . v:count1<cr>==", { desc = "Move Down" })
map("n", "<A-k>", "<cmd>execute 'move .-' . (v:count1 + 1)<cr>==", { desc = "Move Up" })
map("i", "<A-j>", "<esc><cmd>m .+1<cr>==gi", { desc = "Move Down" })
map("i", "<A-k>", "<esc><cmd>m .-2<cr>==gi", { desc = "Move Up" })
map("v", "<A-j>", ":m '>+1<cr>gv=gv", { desc = "Move Down" })
map("v", "<A-k>", ":m '<-2<cr>gv=gv", { desc = "Move Up" })
map("v", "<A-j>", ":<C-u>execute \"'<,'>move '>+\" . v:count1<cr>gv=gv", { desc = "Move Down" })
map("v", "<A-k>", ":<C-u>execute \"'<,'>move '<-\" . (v:count1 + 1)<cr>gv=gv", { desc = "Move Up" })
-- buffers
map("n", "<S-h>", "<cmd>bprevious<cr>", { desc = "Prev Buffer" })
@ -37,11 +37,23 @@ map("n", "[b", "<cmd>bprevious<cr>", { desc = "Prev Buffer" })
map("n", "]b", "<cmd>bnext<cr>", { desc = "Next Buffer" })
map("n", "<leader>bb", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
map("n", "<leader>`", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
map("n", "<leader>bd", LazyVim.ui.bufremove, { desc = "Delete Buffer" })
map("n", "<leader>bd", function()
Snacks.bufdelete()
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
@ -72,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" })
@ -85,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" })
@ -115,73 +142,65 @@ map("n", "[w", diagnostic_goto(false, "WARN"), { desc = "Prev Warning" })
-- stylua: ignore start
-- toggle options
map("n", "<leader>uf", function() LazyVim.format.toggle() end, { desc = "Toggle Auto Format (Global)" })
map("n", "<leader>uF", function() LazyVim.format.toggle(true) end, { desc = "Toggle Auto Format (Buffer)" })
map("n", "<leader>us", function() LazyVim.toggle("spell") end, { desc = "Toggle Spelling" })
map("n", "<leader>uw", function() LazyVim.toggle("wrap") end, { desc = "Toggle Word Wrap" })
map("n", "<leader>uL", function() LazyVim.toggle("relativenumber") end, { desc = "Toggle Relative Line Numbers" })
map("n", "<leader>ul", function() LazyVim.toggle.number() end, { desc = "Toggle Line Numbers" })
map("n", "<leader>ud", function() LazyVim.toggle.diagnostics() end, { desc = "Toggle Diagnostics" })
local conceallevel = vim.o.conceallevel > 0 and vim.o.conceallevel or 3
map("n", "<leader>uc", function() LazyVim.toggle("conceallevel", false, {0, conceallevel}) end, { desc = "Toggle Conceal" })
if vim.lsp.buf.inlay_hint or vim.lsp.inlay_hint then
map( "n", "<leader>uh", function() LazyVim.toggle.inlay_hints() end, { desc = "Toggle Inlay Hints" })
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.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, 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.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
map("n", "<leader>uT", function() if vim.b.ts_highlight then vim.treesitter.stop() else vim.treesitter.start() end end, { desc = "Toggle Treesitter Highlight" })
map("n", "<leader>ub", function() LazyVim.toggle("background", false, {"light", "dark"}) end, { desc = "Toggle Background" })
-- lazygit
map("n", "<leader>gg", function() LazyVim.lazygit( { cwd = LazyVim.root.git() }) end, { desc = "Lazygit (Root Dir)" })
map("n", "<leader>gG", function() LazyVim.lazygit() end, { desc = "Lazygit (cwd)" })
map("n", "<leader>gb", LazyVim.lazygit.blame_line, { desc = "Git Blame Line" })
map("n", "<leader>gB", LazyVim.lazygit.browse, { desc = "Git Browse" })
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)" })
end
map("n", "<leader>gf", function()
local git_path = vim.api.nvim_buf_get_name(0)
LazyVim.lazygit({args = { "-f", vim.trim(git_path) }})
end, { desc = "Lazygit Current File History" })
map("n", "<leader>gl", function()
LazyVim.lazygit({ args = { "log" }, cwd = LazyVim.root.git() })
end, { desc = "Lazygit Log" })
map("n", "<leader>gL", function()
LazyVim.lazygit({ args = { "log" } })
end, { desc = "Lazygit Log (cwd)" })
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" })
-- floating terminal
local lazyterm = function() LazyVim.terminal(nil, { cwd = LazyVim.root() }) end
map("n", "<leader>ft", lazyterm, { desc = "Terminal (Root Dir)" })
map("n", "<leader>fT", function() LazyVim.terminal() end, { desc = "Terminal (cwd)" })
map("n", "<c-/>", lazyterm, { desc = "Terminal (Root Dir)" })
map("n", "<c-_>", lazyterm, { desc = "which_key_ignore" })
-- Terminal Mappings
map("t", "<esc><esc>", "<c-\\><c-n>", { desc = "Enter Normal Mode" })
map("t", "<C-h>", "<cmd>wincmd h<cr>", { desc = "Go to Left Window" })
map("t", "<C-j>", "<cmd>wincmd j<cr>", { desc = "Go to Lower Window" })
map("t", "<C-k>", "<cmd>wincmd k<cr>", { desc = "Go to Upper Window" })
map("t", "<C-l>", "<cmd>wincmd l<cr>", { desc = "Go to Right Window" })
map("t", "<C-/>", "<cmd>close<cr>", { desc = "Hide Terminal" })
map("t", "<c-_>", "<cmd>close<cr>", { desc = "which_key_ignore" })
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","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>ww", "<C-W>p", { desc = "Other Window", remap = true })
map("n", "<leader>wd", "<C-W>c", { desc = "Delete Window", remap = true })
map("n", "<leader>w-", "<C-W>s", { desc = "Split Window Below", remap = true })
map("n", "<leader>w|", "<C-W>v", { desc = "Split Window Right", remap = true })
map("n", "<leader>-", "<C-W>s", { desc = "Split Window Below", remap = true })
map("n", "<leader>|", "<C-W>v", { desc = "Split Window Right", remap = true })
map("n", "<leader>wm", function() LazyVim.toggle.maximize() end, { desc = "Maximize Toggle" })
map("n", "<leader>wd", "<C-W>c", { desc = "Delete Window", remap = true })
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" })
@ -191,3 +210,6 @@ map("n", "<leader><tab><tab>", "<cmd>tabnew<cr>", { desc = "New Tab" })
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" })
-- lua
map({"n", "x"}, "<localleader>r", function() Snacks.debug.run() end, { desc = "Run Lua", ft = "lua" })

View file

@ -5,12 +5,26 @@ 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
-- LazyVim root dir detection
-- Each entry can be:
-- * the name of a detector function like `lsp` or `cwd`
@ -18,43 +32,29 @@ vim.g.lazyvim_picker = "auto"
-- * a function with signature `function(buf) -> string|string[]`
vim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" }
-- LazyVim automatically configures lazygit:
-- * theme, based on the active colorscheme.
-- * editorPreset to nvim-remote
-- * enables nerd font icons
-- Set to false to disable.
vim.g.lazygit_config = true
-- Options for the LazyVim statuscolumn
vim.g.lazyvim_statuscolumn = {
folds_open = false, -- show fold sign when fold is open
folds_githl = false, -- highlight fold sign with git sign color
}
-- Optionally setup the terminal to use
-- This sets `vim.o.shell` and does some additional configuration for:
-- * pwsh
-- * powershell
-- LazyVim.terminal.setup("pwsh")
-- Set LSP servers to be ignored when used with `util.root.detectors.lsp`
-- for detecting the LSP root
vim.g.root_lsp_ignore = { "copilot" }
-- Hide deprecation warnings
vim.g.deprecation_warnings = false
-- Set filetype to `bigfile` for files larger than 1.5 MB
-- Only vim syntax will be enabled (with the correct filetype)
-- LSP, treesitter and other ft plugins will be disabled.
-- mini.animate will also be disabled.
vim.g.bigfile_size = 1024 * 1024 * 1.5 -- 1.5 MB
-- Show the current document symbols location from Trouble in lualine
-- You can disable this for a buffer by setting `vim.b.trouble_lualine = false`
vim.g.trouble_lualine = true
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
@ -69,12 +69,15 @@ 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"
opt.ignorecase = true -- Ignore case
opt.inccommand = "nosplit" -- preview incremental substitute
opt.jumpoptions = "view"
opt.laststatus = 3 -- global statusline
opt.linebreak = true -- Wrap lines at convenient points
opt.list = true -- Show some invisible characters (tabs...
@ -83,6 +86,7 @@ opt.number = true -- Print line number
opt.pumblend = 10 -- Popup blend
opt.pumheight = 10 -- Maximum number of entries in a popup
opt.relativenumber = true -- Relative line numbers
opt.ruler = false -- Disable the default ruler
opt.scrolloff = 4 -- Lines of context
opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" }
opt.shiftround = true -- Round indent
@ -93,12 +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.spelloptions:append("noplainbuffer")
opt.splitbelow = true -- Put new windows below current
opt.splitkeep = "screen"
opt.splitright = true -- Put new windows right of current
opt.statuscolumn = [[%!v:lua.require'lazyvim.util'.ui.statuscolumn()]]
opt.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
@ -110,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,120 +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-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,
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "path" },
}, {
{ name = "buffer" },
}),
formatting = {
format = function(_, item)
local icons = LazyVim.config.icons.kinds
if icons[item.kind] then
item.kind = icons[item.kind] .. item.kind
end
return item
end,
},
experimental = {
ghost_text = {
hl_group = "CmpGhostText",
},
},
sorting = defaults.sorting,
}
end,
main = "lazyvim.util.cmp",
},
-- snippets
{
"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,
keys = {
{
"<Tab>",
function()
return vim.snippet.active({ direction = 1 }) and "<cmd>lua vim.snippet.jump(1)<cr>" or "<Tab>"
end,
expr = true,
silent = true,
mode = { "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,
silent = true,
mode = { "i", "s" },
},
},
},
-- auto pairs
{
"echasnovski/mini.pairs",
"nvim-mini/mini.pairs",
event = "VeryLazy",
opts = {
modes = { insert = true, command = true, terminal = false },
@ -128,40 +17,27 @@ return {
-- better deal with markdown code blocks
markdown = true,
},
keys = {
{
"<leader>up",
function()
vim.g.minipairs_disable = not vim.g.minipairs_disable
if vim.g.minipairs_disable then
LazyVim.warn("Disabled auto pairs", { title = "Option" })
else
LazyVim.info("Enabled auto pairs", { title = "Option" })
end
end,
desc = "Toggle Auto Pairs",
},
},
config = function(_, opts)
LazyVim.mini.pairs(opts)
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()
LazyVim.on_load("which-key.nvim", function()
vim.schedule(LazyVim.mini.ai_whichkey)
end)
local ai = require("mini.ai")
return {
n_lines = 500,
@ -178,34 +54,36 @@ 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
},
}
end,
config = function(_, opts)
require("mini.ai").setup(opts)
LazyVim.on_load("which-key.nvim", function()
vim.schedule(function()
LazyVim.mini.ai_whichkey(opts)
end)
end)
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",
opts = function(_, opts)
table.insert(opts.sources, { name = "lazydev", group_index = 0 })
end,
},
}

View file

@ -13,12 +13,22 @@ 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,
illuminate = true,
@ -26,28 +36,28 @@ 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,
},
},
specs = {
{
"akinsho/bufferline.nvim",
optional = true,
opts = function(_, opts)
if (vim.g.colors_name or ""):find("catppuccin") then
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,141 +1,26 @@
return {
-- file explorer
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
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)
LazyVim.lsp.on_rename(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
{
"nvim-pack/nvim-spectre",
build = false,
cmd = "Spectre",
opts = { open_cmd = "noswapfile vnew" },
-- stylua: ignore
"MagicDuck/grug-far.nvim",
opts = { headerMaxWidth = 80 },
cmd = { "GrugFar", "GrugFarWithin" },
keys = {
{ "<leader>sr", function() require("spectre").open() end, desc = "Replace in Files (Spectre)" },
{
"<leader>sr",
function()
local grug = require("grug-far")
local ext = vim.bo.buftype == "" and vim.fn.expand("%:e")
grug.open({
transient = true,
prefills = {
filesFilter = ext and ext ~= "" and "*." .. ext or nil,
},
})
end,
mode = { "n", "x" },
desc = "Search and Replace",
},
},
},
@ -155,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" },
},
},
@ -163,32 +58,72 @@ return {
{
"folke/which-key.nvim",
event = "VeryLazy",
opts_extend = { "spec" },
opts = {
plugins = { spelling = true },
defaults = {
mode = { "n", "v" },
["g"] = { name = "+goto" },
["gs"] = { name = "+surround" },
["z"] = { name = "+fold" },
["]"] = { name = "+next" },
["["] = { name = "+prev" },
["<leader><tab>"] = { name = "+tabs" },
["<leader>b"] = { name = "+buffer" },
["<leader>c"] = { name = "+code" },
["<leader>f"] = { name = "+file/find" },
["<leader>g"] = { name = "+git" },
["<leader>gh"] = { name = "+hunks", ["_"] = "which_key_ignore" },
["<leader>q"] = { name = "+quit/session" },
["<leader>s"] = { name = "+search" },
["<leader>u"] = { name = "+ui" },
["<leader>w"] = { name = "+windows" },
["<leader>x"] = { name = "+diagnostics/quickfix" },
preset = "helix",
defaults = {},
spec = {
{
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" },
{ "<leader>x", group = "diagnostics/quickfix" },
{ "[", group = "prev" },
{ "]", group = "next" },
{ "g", group = "goto" },
{ "gs", group = "surround" },
{ "z", group = "fold" },
{
"<leader>b",
group = "buffer",
expand = function()
return require("which-key.extras").expand.buf()
end,
},
{
"<leader>w",
group = "windows",
proxy = "<c-w>",
expand = function()
return require("which-key.extras").expand.win()
end,
},
-- better descriptions
{ "gx", desc = "Open with system app" },
},
},
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Keymaps (which-key)",
},
{
"<c-w><space>",
function()
require("which-key").show({ keys = "<c-w>", loop = true })
end,
desc = "Window Hydra Mode (which-key)",
},
},
config = function(_, opts)
local wk = require("which-key")
wk.setup(opts)
wk.register(opts.defaults)
if not vim.tbl_isempty(opts.defaults) then
LazyVim.warn("which-key: opts.defaults is deprecated. Please use opts.spec instead.")
wk.register(opts.defaults)
end
end,
},
@ -218,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
@ -238,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")
@ -252,21 +187,37 @@ 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
{
"folke/trouble.nvim",
cmd = { "Trouble" },
opts = {},
opts = {
modes = {
lsp = {
win = { position = "right" },
},
},
},
keys = {
{ "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>", desc = "Diagnostics (Trouble)" },
{ "<leader>xX", "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", desc = "Buffer Diagnostics (Trouble)" },
{ "<leader>cs", "<cmd>Trouble symbols toggle focus=false<cr>", desc = "Symbols (Trouble)" },
{
"<leader>cS",
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
desc = "LSP references/definitions/... (Trouble)",
},
{ "<leader>cs", "<cmd>Trouble symbols toggle<cr>", desc = "Symbols (Trouble)" },
{ "<leader>cS", "<cmd>Trouble lsp toggle<cr>", desc = "LSP references/definitions/... (Trouble)" },
{ "<leader>xL", "<cmd>Trouble loclist toggle<cr>", desc = "Location List (Trouble)" },
{ "<leader>xQ", "<cmd>Trouble qflist toggle<cr>", desc = "Quickfix List (Trouble)" },
{
@ -317,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

@ -0,0 +1,76 @@
return {
-- codeium
{
"Exafunction/codeium.nvim",
cmd = "Codeium",
event = "InsertEnter",
build = ":Codeium Auth",
opts = {
enable_cmp_source = vim.g.ai_cmp,
virtual_text = {
enabled = not vim.g.ai_cmp,
key_bindings = {
accept = false, -- handled by nvim-cmp / blink.cmp
next = "<M-]>",
prev = "<M-[>",
},
},
},
},
-- add ai_accept action
{
"Exafunction/codeium.nvim",
opts = function()
LazyVim.cmp.actions.ai_accept = function()
if require("codeium.virtual_text").get_current_completion_item() then
LazyVim.create_undo()
vim.api.nvim_input(require("codeium.virtual_text").accept())
return true
end
end
end,
},
-- codeium cmp source
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "codeium.nvim" },
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "codeium",
group_index = 1,
priority = 100,
})
end,
},
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium"))
end,
},
vim.g.ai_cmp and {
"saghen/blink.cmp",
optional = true,
dependencies = { "codeium.nvim", "saghen/blink.compat" },
opts = {
sources = {
compat = { "codeium" },
providers = {
codeium = {
kind = "Codeium",
score_offset = 100,
async = true,
},
},
},
},
} or nil,
}

View file

@ -1,52 +1,33 @@
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 {
model = "gpt-4",
auto_insert_mode = true,
show_help = true,
question_header = "" .. user .. " ",
answer_header = " Copilot ",
headers = {
user = "" .. user .. " ",
assistant = " Copilot ",
tool = "󰊳 Tool ",
},
window = {
width = 0.4,
},
selection = function(source)
local select = require("CopilotChat.select")
return select.visual(source) or select.buffer(source)
end,
}
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",
@ -54,27 +35,33 @@ 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 help actions with telescope
{ "<leader>ad", M.pick("help"), desc = "Diagnostic Help (CopilotChat)", mode = { "n", "v" } },
-- Show prompts actions with telescope
{ "<leader>ap", M.pick("prompt"), desc = "Prompt Actions (CopilotChat)", mode = { "n", "v" } },
},
config = function(_, opts)
local chat = require("CopilotChat")
require("CopilotChat.integrations.cmp").setup()
vim.api.nvim_create_autocmd("BufEnter", {
pattern = "copilot-chat",
@ -101,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

@ -0,0 +1,127 @@
return {
recommended = true,
-- copilot
{
"zbirenbaum/copilot.lua",
cmd = "Copilot",
build = ":Copilot auth",
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-]>",
prev = "<M-[>",
},
},
panel = { enabled = false },
filetypes = {
markdown = true,
help = true,
},
},
},
-- 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
{
"zbirenbaum/copilot.lua",
opts = function()
LazyVim.cmp.actions.ai_accept = function()
if require("copilot.suggestion").is_visible() then
LazyVim.create_undo()
require("copilot.suggestion").accept()
return true
end
end
end,
},
-- lualine
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
table.insert(
opts.sections.lualine_x,
2,
LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()
local clients = package.loaded["copilot"] and vim.lsp.get_clients({ name = "copilot", bufnr = 0 }) or {}
if #clients > 0 then
local status = require("copilot.status").data.status
return (status == "InProgress" and "pending") or (status == "Warning" and "error") or "ok"
end
end)
)
end,
},
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

@ -0,0 +1,97 @@
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" },
},
},
-- add ai_accept action
{
"supermaven-inc/supermaven-nvim",
opts = function()
require("supermaven-nvim.completion_preview").suggestion_group = "SupermavenSuggestion"
LazyVim.cmp.actions.ai_accept = function()
local suggestion = require("supermaven-nvim.completion_preview")
if suggestion.has_suggestion() then
LazyVim.create_undo()
vim.schedule(function()
suggestion.on_accept_suggestion()
end)
return true
end
end
end,
},
-- cmp integration
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "supermaven-nvim" },
opts = function(_, opts)
if vim.g.ai_cmp then
table.insert(opts.sources, 1, {
name = "supermaven",
group_index = 1,
priority = 100,
})
end
end,
},
vim.g.ai_cmp and {
"saghen/blink.cmp",
optional = true,
dependencies = { "supermaven-nvim", "saghen/blink.compat" },
opts = {
sources = {
compat = { "supermaven" },
providers = {
supermaven = {
kind = "Supermaven",
score_offset = 100,
async = true,
},
},
},
},
} or nil,
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("supermaven"))
end,
},
{
"folke/noice.nvim",
optional = true,
opts = function(_, opts)
vim.list_extend(opts.routes, {
{
filter = {
event = "msg_show",
any = {
{ find = "Starting Supermaven" },
{ find = "Supermaven Free Tier" },
},
},
skip = true,
},
})
end,
},
}

View file

@ -1,25 +1,22 @@
return {
-- Tabnine cmp source
{
"nvim-cmp",
dependencies = {
{
"tzachar/cmp-tabnine",
build = {
LazyVim.is_win() and "pwsh -noni .\\install.ps1" or "./install.sh",
":CmpTabnineHub",
},
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

@ -0,0 +1,212 @@
---@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
-- in this case.
vim.g.lazyvim_blink_main = false
end
return {
{
"hrsh7th/nvim-cmp",
optional = true,
enabled = false,
},
{
"saghen/blink.cmp",
version = not vim.g.lazyvim_blink_main and "*",
build = vim.g.lazyvim_blink_main and "cargo build --release",
opts_extend = {
"sources.completion.enabled_providers",
"sources.compat",
"sources.default",
},
dependencies = {
"rafamadriz/friendly-snippets",
-- add blink.compat to dependencies
{
"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", "CmdlineEnter" },
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
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",
},
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 signature help support
-- 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 = {
list = { selection = { preselect = false } },
menu = {
auto_show = function(ctx)
return vim.fn.getcmdtype() == ":"
end,
},
ghost_text = { enabled = true },
},
},
keymap = {
preset = "enter",
["<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.default
for _, source in ipairs(opts.sources.compat or {}) do
opts.sources.providers[source] = vim.tbl_deep_extend(
"force",
{ name = source, module = "blink.compat.source" },
opts.sources.providers[source] or {}
)
if type(enabled) == "table" and not vim.tbl_contains(enabled, source) then
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,
},
-- add icons
{
"saghen/blink.cmp",
opts = function(_, opts)
opts.appearance = opts.appearance or {}
opts.appearance.kind_icons = vim.tbl_extend("force", opts.appearance.kind_icons or {}, LazyVim.config.icons.kinds)
end,
},
-- lazydev
{
"saghen/blink.cmp",
opts = {
sources = {
per_filetype = {
lua = { inherit_defaults = true, "lazydev" },
},
providers = {
lazydev = {
name = "LazyDev",
module = "lazydev.integrations.blink",
score_offset = 100, -- show at a higher priority than lsp
},
},
},
},
},
-- catppuccin support
{
"catppuccin",
optional = true,
opts = {
integrations = { blink_cmp = true },
},
},
}

View file

@ -1,33 +0,0 @@
return {
-- codeium cmp source
{
"nvim-cmp",
dependencies = {
-- codeium
{
"Exafunction/codeium.nvim",
cmd = "Codeium",
build = ":Codeium Auth",
opts = {},
},
},
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "codeium",
group_index = 1,
priority = 100,
})
end,
},
{
"nvim-lualine/lualine.nvim",
optional = true,
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium"))
end,
},
}

View file

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

View file

@ -1,6 +1,11 @@
return {
-- disable builtin snippet support
{ "garymjr/nvim-snippets", optional = true, enabled = false },
-- add luasnip
{
"L3MON4D3/LuaSnip",
lazy = true,
build = (not LazyVim.is_win())
and "echo 'NOTE: jsregexp is optional, so not a big deal if it fails to build'; make install_jsregexp"
or nil,
@ -9,20 +14,7 @@ return {
"rafamadriz/friendly-snippets",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
{
"nvim-cmp",
dependencies = {
"saadparwaiz1/cmp_luasnip",
},
opts = function(_, opts)
opts.snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
}
table.insert(opts.sources, { name = "luasnip" })
require("luasnip.loaders.from_vscode").lazy_load({ paths = { vim.fn.stdpath("config") .. "/snippets" } })
end,
},
},
@ -31,23 +23,56 @@ return {
delete_check_events = "TextChanged",
},
},
-- add snippet_forward action
{
"nvim-cmp",
"L3MON4D3/LuaSnip",
opts = function()
LazyVim.cmp.actions.snippet_forward = function()
if require("luasnip").jumpable(1) then
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
end,
},
-- nvim-cmp integration
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "saadparwaiz1/cmp_luasnip" },
opts = function(_, opts)
opts.snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
}
table.insert(opts.sources, { name = "luasnip" })
end,
-- stylua: ignore
keys = {
{
"<tab>",
function()
return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>"
end,
expr = true, silent = true, mode = "i",
},
{ "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
{ "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
},
},
-- blink.cmp integration
{
"garymjr/nvim-snippets",
enabled = false,
"saghen/blink.cmp",
optional = true,
opts = {
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,18 +16,21 @@ 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
end,
mode = { "n", "x" },
desc = "Open Yank History",
},
-- stylua: ignore
{ "y", "<Plug>(YankyYank)", mode = { "n", "x" }, desc = "Yank Text" },
{ "p", "<Plug>(YankyPutAfter)", mode = { "n", "x" }, desc = "Put Yanked Text After Cursor" },
{ "P", "<Plug>(YankyPutBefore)", mode = { "n", "x" }, desc = "Put Yanked Text Before Cursor" },
{ "gp", "<Plug>(YankyGPutAfter)", mode = { "n", "x" }, desc = "Put Yanked Text After Selection" },
{ "gP", "<Plug>(YankyGPutBefore)", mode = { "n", "x" }, desc = "Put Yanked Text Before Selection" },
{ "p", "<Plug>(YankyPutAfter)", mode = { "n", "x" }, desc = "Put Text After Cursor" },
{ "P", "<Plug>(YankyPutBefore)", mode = { "n", "x" }, desc = "Put Text Before Cursor" },
{ "gp", "<Plug>(YankyGPutAfter)", mode = { "n", "x" }, desc = "Put Text After Selection" },
{ "gP", "<Plug>(YankyGPutBefore)", mode = { "n", "x" }, desc = "Put Text Before Selection" },
{ "[y", "<Plug>(YankyCycleForward)", desc = "Cycle Forward Through Yank History" },
{ "]y", "<Plug>(YankyCycleBackward)", desc = "Cycle Backward Through Yank History" },
{ "]p", "<Plug>(YankyPutIndentAfterLinewise)", desc = "Put Indented After Cursor (Linewise)" },

View file

@ -1,11 +1,17 @@
---@param config {args?:string[]|fun():string[]?}
---@param config {type?:string, args?:string[]|fun():string[]?}
local function get_args(config)
local args = type(config.args) == "function" and (config.args() or {}) or config.args or {}
local args = type(config.args) == "function" and (config.args() or {}) or config.args or {} --[[@as string[] | string ]]
local args_str = type(args) == "table" and table.concat(args, " ") or args --[[@as string]]
config = vim.deepcopy(config)
---@cast args string[]
config.args = function()
local new_args = vim.fn.input("Run with args: ", table.concat(args, " ")) --[[@as string]]
return vim.split(vim.fn.expand(new_args) --[[@as string]], " ")
local new_args = vim.fn.expand(vim.fn.input("Run with args: ", args_str)) --[[@as string]]
if config.type and config.type == "java" then
---@diagnostic disable-next-line: return-type-mismatch
return new_args
end
return require("dap.utils").splitstr(new_args)
end
return config
end
@ -27,10 +33,9 @@ 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 = "Continue" },
{ "<leader>dc", function() require("dap").continue() end, desc = "Run/Continue" },
{ "<leader>da", function() require("dap").continue({ before = get_args }) end, desc = "Run with Args" },
{ "<leader>dC", function() require("dap").run_to_cursor() end, desc = "Run to Cursor" },
{ "<leader>dg", function() require("dap").goto_() end, desc = "Go to Line (No Execute)" },
@ -40,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" },
@ -79,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

@ -1,6 +1,4 @@
local M = {}
---@type table<string, table<string, string[]>>
M.dials_by_ft = {}
---@param increment boolean
---@param g? boolean
@ -9,7 +7,7 @@ function M.dial(increment, g)
-- Use visual commands for VISUAL 'v', VISUAL LINE 'V' and VISUAL BLOCK '\22'
local is_visual = mode == "v" or mode == "V" or mode == "\22"
local func = (increment and "inc" or "dec") .. (g and "_g" or "_") .. (is_visual and "visual" or "normal")
local group = M.dials_by_ft[vim.bo.filetype] or "default"
local group = vim.g.dials_by_ft[vim.bo.filetype] or "default"
return require("dial.map")[func](group)
end
@ -21,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")
@ -55,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",
@ -88,46 +72,44 @@ return {
cyclic = true,
})
local capitalized_boolean = augend.constant.new({
elements = {
"True",
"False",
},
word = true,
cyclic = true,
})
return {
dials_by_ft = {
css = "css",
vue = "vue",
javascript = "typescript",
typescript = "typescript",
typescriptreact = "typescript",
javascriptreact = "typescript",
json = "json",
lua = "lua",
markdown = "markdown",
python = "python",
sass = "css",
scss = "css",
typescript = "typescript",
typescriptreact = "typescript",
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,
months,
augend.constant.alias.bool, -- boolean value (true <-> false)
augend.constant.alias.Bool, -- boolean value (True <-> False)
logical_alias,
},
vue = {
augend.constant.new({ elements = { "let", "const" } }),
augend.hexcolor.new({ case = "lower" }),
augend.hexcolor.new({ case = "upper" }),
},
typescript = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
logical_alias,
augend.constant.new({ elements = { "let", "const" } }),
ordinal_numbers,
weekdays,
months,
},
css = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.hexcolor.new({
case = "lower",
}),
@ -136,40 +118,39 @@ return {
}),
},
markdown = {
augend.constant.new({
elements = { "[ ]", "[x]" },
word = false,
cyclic = true,
}),
augend.misc.alias.markdown_header,
ordinal_numbers,
weekdays,
months,
},
json = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.semver.alias.semver, -- versioning (v1.1.2)
},
lua = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
augend.constant.alias.bool, -- boolean value (true <-> false)
augend.constant.new({
elements = { "and", "or" },
word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.
cyclic = true, -- "or" is incremented into "and".
}),
ordinal_numbers,
weekdays,
months,
},
python = {
augend.integer.alias.decimal, -- nonnegative and negative decimal number
capitalized_boolean,
logical_alias,
ordinal_numbers,
weekdays,
months,
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)
M.dials_by_ft = opts.dials_by_ft
vim.g.dials_by_ft = opts.dials_by_ft
end,
}

View file

@ -40,19 +40,21 @@ end
return {
desc = "Awesome picker for FZF (alternative to Telescope)",
recommended = true,
{
"ibhagwan/fzf-lua",
event = "VeryLazy",
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"
config.defaults.keymap.fzf["ctrl-u"] = "half-page-up"
config.defaults.keymap.fzf["ctrl-d"] = "half-page-down"
config.defaults.keymap.fzf["ctrl-x"] = "jump"
config.defaults.keymap.fzf["ctrl-f"] = "preview-page-down"
config.defaults.keymap.fzf["ctrl-b"] = "preview-page-up"
config.defaults.keymap.builtin["<c-f>"] = "preview-page-down"
config.defaults.keymap.builtin["<c-b>"] = "preview-page-up"
@ -72,18 +74,6 @@ return {
config.defaults.actions.files["alt-c"] = config.defaults.actions.files["ctrl-r"]
config.set_action_helpstr(config.defaults.actions.files["ctrl-r"], "toggle-root-dir")
-- use the same prompt for all
local defaults = require("fzf-lua.profiles.default-title")
local function fix(t)
t.prompt = t.prompt ~= nil and "" or nil
for _, v in pairs(t) do
if type(v) == "table" then
fix(v)
end
end
end
fix(defaults)
local img_previewer ---@type string[]?
for _, v in ipairs({
{ cmd = "ueberzug", args = {} },
@ -96,7 +86,8 @@ return {
end
end
return vim.tbl_deep_extend("force", defaults, {
return {
"default-title",
fzf_colors = true,
fzf_opts = {
["--no-scrollbar"] = true,
@ -129,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",
@ -144,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,
@ -184,11 +175,35 @@ return {
previewer = vim.fn.executable("delta") == 1 and "codeaction_native" or nil,
},
},
})
}
end,
config = function(_, opts)
if opts[1] == "default-title" then
-- use the same prompt for all pickers for profile `default-title` and
-- profiles that use `default-title` as base profile
local function fix(t)
t.prompt = t.prompt ~= nil and "" or nil
for _, v in pairs(t) do
if type(v) == "table" then
fix(v)
end
end
return t
end
opts = vim.tbl_deep_extend("force", fix(require("fzf-lua.profiles.default-title")), opts)
opts[1] = nil
end
require("fzf-lua").setup(opts)
require("fzf-lua").register_ui_select(opts.ui_select or nil)
end,
init = function()
LazyVim.on_very_lazy(function()
vim.ui.select = function(...)
require("lazy").load({ plugins = { "fzf-lua" } })
local opts = LazyVim.opts("fzf-lua") or {}
require("fzf-lua").register_ui_select(opts.ui_select or nil)
return vim.ui.select(...)
end
end)
end,
keys = {
{ "<c-j>", "<c-j>", ft = "fzf", mode = "t", nowait = true },
@ -200,26 +215,31 @@ return {
},
{ "<leader>/", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },
{ "<leader>:", "<cmd>FzfLua command_history<cr>", desc = "Command History" },
{ "<leader><space>", LazyVim.pick("auto"), desc = "Find Files (Root Dir)" },
{ "<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("auto"), desc = "Find Files (Root Dir)" },
{ "<leader>fF", LazyVim.pick("auto", { root = false }), desc = "Find Files (cwd)" },
{ "<leader>ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },
{ "<leader>fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" },
{ "<leader>fg", "<cmd>FzfLua git_files<cr>", desc = "Find Files (git-files)" },
{ "<leader>fr", "<cmd>FzfLua oldfiles<cr>", desc = "Recent" },
{ "<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" },
@ -233,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",
@ -269,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",
@ -15,6 +18,21 @@ return {
config = function(_, opts)
require("illuminate").configure(opts)
Snacks.toggle({
name = "Illuminate",
get = function()
return not require("illuminate.engine").is_paused()
end,
set = function(enabled)
local m = require("illuminate")
if enabled then
m.resume()
else
m.pause()
end
end,
}):map("<leader>ux")
local function map(key, dir, buffer)
vim.keymap.set("n", key, function()
require("illuminate")["goto_" .. dir .. "_reference"](false)
@ -38,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,20 +4,20 @@ 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 LazyKeys[]
---@type LazyKeysSpec[]
local ret = {}
for _, key in ipairs({ "f", "F", "t", "T" }) do
ret[#ret + 1] = { key, mode = { "n", "x", "o" }, desc = key }
ret[#ret + 1] = { key, mode = { "n", "x", "o" } }
end
return ret
end,
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,
@ -48,7 +48,7 @@ return {
local map_split = function(buf_id, lhs, direction, close_on_file)
local rhs = function()
local new_target_window
local cur_target_window = require("mini.files").get_target_window()
local cur_target_window = require("mini.files").get_explorer_state().target_window
if cur_target_window ~= nil then
vim.api.nvim_win_call(cur_target_window, function()
vim.cmd("belowright " .. direction .. " split")
@ -104,7 +104,7 @@ return {
vim.api.nvim_create_autocmd("User", {
pattern = "MiniFilesActionRename",
callback = function(event)
LazyVim.lsp.on_rename(event.data.from, event.data.to)
Snacks.rename.on_rename_file(event.data.from, event.data.to)
end,
})
end,

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,
@ -30,14 +28,7 @@ return {
optional = true,
opts = function(_, opts)
if not vim.g.trouble_lualine then
table.insert(opts.sections.lualine_c, {
function()
return require("nvim-navic").get_location()
end,
cond = function()
return package.loaded["nvim-navic"] and require("nvim-navic").is_available()
end,
})
table.insert(opts.sections.lualine_c, { "navic", color_correction = "dynamic" })
end
end,
},

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

@ -14,28 +14,21 @@ return {
opts = function()
local defaults = require("outline.config").defaults
local opts = {
symbols = {},
symbol_blacklist = {},
symbols = {
icons = {},
filter = vim.deepcopy(LazyVim.config.kind_filter),
},
keymaps = {
up_and_jump = "<up>",
down_and_jump = "<down>",
},
}
local filter = LazyVim.config.kind_filter
if type(filter) == "table" then
filter = filter.default
if type(filter) == "table" then
for kind, symbol in pairs(defaults.symbols) do
opts.symbols[kind] = {
icon = LazyVim.config.icons.kinds[kind] or symbol.icon,
hl = symbol.hl,
}
if not vim.tbl_contains(filter, kind) then
table.insert(opts.symbol_blacklist, kind)
end
end
end
for kind, symbol in pairs(defaults.symbols.icons) do
opts.symbols.icons[kind] = {
icon = LazyVim.config.icons.kinds[kind] or symbol.icon,
hl = symbol.hl,
}
end
return opts
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,20 +37,18 @@ 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" },
},
},
{
"folke/which-key.nvim",
optional = true,
opts = {
defaults = { ["<leader>o"] = { name = "+overseer" } },
spec = {
{ "<leader>o", group = "overseer" },
},
},
},
{

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

@ -4,8 +4,13 @@ if lazyvim_docs then
vim.g.lazyvim_picker = "telescope"
end
local have_make = vim.fn.executable("make") == 1
local have_cmake = vim.fn.executable("cmake") == 1
local build_cmd ---@type string?
for _, cmd in ipairs({ "make", "cmake", "gmake" }) do
if vim.fn.executable(cmd) == 1 then
build_cmd = cmd
break
end
end
---@type LazyPicker
local picker = {
@ -56,16 +61,13 @@ 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 = {
{
"nvim-telescope/telescope-fzf-native.nvim",
build = have_make and "make"
build = (build_cmd ~= "cmake") and "make"
or "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build",
enabled = have_make or have_cmake,
enabled = build_cmd ~= nil,
config = function(plugin)
LazyVim.on_load("telescope.nvim", function()
local ok, err = pcall(require("telescope").load_extension, "fzf")
@ -92,26 +94,34 @@ return {
},
{ "<leader>/", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },
{ "<leader>:", "<cmd>Telescope command_history<cr>", desc = "Command History" },
{ "<leader><space>", LazyVim.pick("auto"), desc = "Find Files (Root Dir)" },
{ "<leader><space>", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },
-- find
{ "<leader>fb", "<cmd>Telescope buffers sort_mru=true sort_lastused=true<cr>", desc = "Buffers" },
{
"<leader>fb",
"<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("auto"), desc = "Find Files (Root Dir)" },
{ "<leader>fF", LazyVim.pick("auto", { root = false }), desc = "Find Files (cwd)" },
{ "<leader>ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },
{ "<leader>fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" },
{ "<leader>fg", "<cmd>Telescope git_files<cr>", desc = "Find Files (git-files)" },
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "Recent" },
{ "<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" },
@ -126,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",
@ -165,6 +175,20 @@ return {
LazyVim.pick("find_files", { hidden = true, default_text = line })()
end
local function find_command()
if 1 == vim.fn.executable("rg") then
return { "rg", "--files", "--color", "never", "-g", "!.git" }
elseif 1 == vim.fn.executable("fd") then
return { "fd", "--type", "f", "--color", "never", "-E", ".git" }
elseif 1 == vim.fn.executable("fdfind") then
return { "fdfind", "--type", "f", "--color", "never", "-E", ".git" }
elseif 1 == vim.fn.executable("find") and vim.fn.has("win32") == 0 then
return { "find", ".", "-type", "f" }
elseif 1 == vim.fn.executable("where") then
return { "where", "/r", ".", "*" }
end
end
return {
defaults = {
prompt_prefix = "",
@ -198,6 +222,12 @@ return {
},
},
},
pickers = {
find_files = {
find_command = find_command,
hidden = true,
},
},
}
end,
},
@ -238,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(...)
@ -257,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" } },
},
@ -70,7 +70,8 @@ return {
opts = function(_, opts)
opts.formatters_by_ft = opts.formatters_by_ft or {}
for _, ft in ipairs(supported) do
opts.formatters_by_ft[ft] = { "prettier" }
opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}
table.insert(opts.formatters_by_ft[ft], "prettier")
end
opts.formatters = opts.formatters or {}

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,
},
},
@ -57,4 +57,15 @@ return {
})
end,
},
-- formatting
{
"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.htmlangular = { "prettier" }
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

@ -17,7 +17,7 @@ return {
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "astro" } },
opts = { ensure_installed = { "astro", "css" } },
},
-- LSP Servers

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(...)
@ -52,8 +49,10 @@ return {
keys = {
{
"gd",
function()
LazyVim.has("telescope.nvim") and function()
require("omnisharp_extended").telescope_lsp_definitions()
end or function()
require("omnisharp_extended").lsp_definitions()
end,
desc = "Goto Definition",
},
@ -75,6 +74,9 @@ return {
type = "executable",
command = vim.fn.exepath("netcoredbg"),
args = { "--interpreter=vscode" },
options = {
detached = false,
},
}
end
for _, lang in ipairs({ "cs", "fsharp", "vb" }) do
@ -99,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

@ -1,7 +1,7 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = { "elixir", "eelixir", "heex", "surface" },
ft = { "elixir", "eelixir", "heex", "surface", "livebook" },
root = "mix.exs",
})
end,
@ -9,13 +9,46 @@ return {
"neovim/nvim-lspconfig",
opts = {
servers = {
elixirls = {},
elixirls = {
keys = {
{
"<leader>cp",
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 },
})
end,
desc = "To Pipe",
},
{
"<leader>cP",
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 },
})
end,
desc = "From Pipe",
},
},
},
},
},
},
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "elixir", "heex", "eex" } },
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "elixir", "heex", "eex" })
vim.treesitter.language.register("markdown", "livebook")
end,
},
{
"nvim-neotest/neotest",
@ -60,4 +93,11 @@ return {
}
end,
},
{
"MeanderingProgrammer/render-markdown.nvim",
optional = true,
ft = function(_, ft)
vim.list_extend(ft, { "livebook" })
end,
},
}

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

@ -0,0 +1,20 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = { "erlang" },
root = { "rebar.config", "erlang.mk" },
})
end,
{
"neovim/nvim-lspconfig",
opts = {
servers = {
erlangls = {},
},
},
},
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "erlang" } },
},
}

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" } },
},
{
@ -137,4 +159,17 @@ return {
},
},
},
-- Filetype icons
{
"nvim-mini/mini.icons",
opts = {
file = {
[".go-version"] = { glyph = "", hl = "MiniIconsBlue" },
},
filetype = {
gotmpl = { glyph = "󰟓", hl = "MiniIconsGrey" },
},
},
},
}

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

@ -1,4 +1,4 @@
-- This is the same as in lspconfig.server_configurations.jdtls, but avoids
-- This is the same as in lspconfig.configs.jdtls, but avoids
-- needing to require that when this module loads.
local java_filetypes = { "java" }
@ -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 = require("lspconfig.server_configurations.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.
@ -190,45 +195,80 @@ return {
local client = vim.lsp.get_client_by_id(args.data.client_id)
if client and client.name == "jdtls" then
local wk = require("which-key")
wk.register({
["<leader>cx"] = { name = "+extract" },
["<leader>cxv"] = { require("jdtls").extract_variable_all, "Extract Variable" },
["<leader>cxc"] = { require("jdtls").extract_constant, "Extract Constant" },
["gs"] = { require("jdtls").super_implementation, "Goto Super" },
["gS"] = { require("jdtls.tests").goto_subjects, "Goto Subjects" },
["<leader>co"] = { require("jdtls").organize_imports, "Organize Imports" },
}, { mode = "n", buffer = args.buf })
wk.register({
["<leader>c"] = { name = "+code" },
["<leader>cx"] = { name = "+extract" },
["<leader>cxm"] = {
[[<ESC><CMD>lua require('jdtls').extract_method(true)<CR>]],
"Extract Method",
wk.add({
{
mode = "n",
buffer = args.buf,
{ "<leader>cx", group = "extract" },
{ "<leader>cxv", require("jdtls").extract_variable_all, desc = "Extract Variable" },
{ "<leader>cxc", require("jdtls").extract_constant, desc = "Extract Constant" },
{ "<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" },
},
["<leader>cxv"] = {
[[<ESC><CMD>lua require('jdtls').extract_variable_all(true)<CR>]],
"Extract Variable",
})
wk.add({
{
mode = "x",
buffer = args.buf,
{ "<leader>cx", group = "extract" },
{
"<leader>cxm",
[[<ESC><CMD>lua require('jdtls').extract_method(true)<CR>]],
desc = "Extract Method",
},
{
"<leader>cxv",
[[<ESC><CMD>lua require('jdtls').extract_variable_all(true)<CR>]],
desc = "Extract Variable",
},
{
"<leader>cxc",
[[<ESC><CMD>lua require('jdtls').extract_constant(true)<CR>]],
desc = "Extract Constant",
},
},
["<leader>cxc"] = {
[[<ESC><CMD>lua require('jdtls').extract_constant(true)<CR>]],
"Extract Constant",
},
}, { mode = "v", buffer = args.buf })
})
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.register({
["<leader>t"] = { name = "+test" },
["<leader>tt"] = { require("jdtls.dap").test_class, "Run All Test" },
["<leader>tr"] = { require("jdtls.dap").test_nearest_method, "Run Nearest Test" },
["<leader>tT"] = { require("jdtls.dap").pick_test, "Run Test" },
}, { mode = "n", buffer = args.buf })
-- 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" },
{
"<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" },
},
})
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

@ -0,0 +1,125 @@
return {
recommended = function()
return LazyVim.extras.wants({
ft = { "lean" },
root = { "lean-toolchain" },
})
end,
"Julian/lean.nvim",
event = { "BufReadPre *.lean", "BufNewFile *.lean" },
dependencies = {
"nvim-lua/plenary.nvim",
},
-- see details below for full configuration options
opts = {
-- Enable the Lean language server(s)?
--
-- false to disable, otherwise should be a table of options to pass to `leanls`
--
-- See https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md#leanls for details.
-- In particular ensure you have followed instructions setting up a callback
-- for `LspAttach` which sets your key bindings!
lsp = {
init_options = {
-- See Lean.Lsp.InitializationOptions for details and further options.
-- Time (in milliseconds) which must pass since latest edit until elaboration begins.
-- Lower values may make editing feel faster at the cost of higher CPU usage.
-- Note that lean.nvim changes the Lean default for this value!
editDelay = 0,
-- Whether to signal that widgets are supported.
hasWidgets = true,
},
},
ft = {
-- A list of patterns which will be used to protect any matching
-- Lean file paths from being accidentally modified (by marking the
-- buffer as `nomodifiable`).
nomodifiable = {
-- by default, this list includes the Lean standard libraries,
-- as well as files within dependency directories (e.g. `_target`)
-- Set this to an empty table to disable.
},
},
-- Abbreviation support
abbreviations = {
-- Enable expanding of unicode abbreviations?
enable = true,
-- additional abbreviations:
extra = {
-- Add a \wknight abbreviation to insert ♘
--
-- Note that the backslash is implied, and that you of
-- course may also use a snippet engine directly to do
-- this if so desired.
wknight = "",
},
-- Change if you don't like the backslash
-- (comma is a popular choice on French keyboards)
leader = "\\",
},
-- Enable suggested mappings?
--
-- false by default, true to enable
mappings = true,
-- Infoview support
infoview = {
-- Automatically open an infoview on entering a Lean buffer?
-- Should be a function that will be called anytime a new Lean file
-- is opened. Return true to open an infoview, otherwise false.
-- Setting this to `true` is the same as `function() return true end`,
-- i.e. autoopen for any Lean file, or setting it to `false` is the
-- same as `function() return false end`, i.e. never autoopen.
autoopen = true,
-- Set infoview windows' starting dimensions.
-- Windows are opened horizontally or vertically depending on spacing.
width = 50,
height = 20,
-- Put the infoview on the top or bottom when horizontal?
-- top | bottom
horizontal_position = "bottom",
-- Always open the infoview window in a separate tabpage.
-- Might be useful if you are using a screen reader and don't want too
-- many dynamic updates in the terminal at the same time.
-- Note that `height` and `width` will be ignored in this case.
separate_tab = false,
-- Show indicators for pin locations when entering an infoview window?
-- always | never | auto (= only when there are multiple pins)
indicators = "auto",
},
-- Progress bar support
progress_bars = {
-- Enable the progress bars?
enable = true,
-- What character should be used for the bars?
character = "",
-- Use a different priority for the signs
priority = 10,
},
-- Redirect Lean's stderr messages somewhere (to a buffer by default)
stderr = {
enable = true,
-- height of the window
height = 5,
-- a callback which will be called with (multi-line) stderr output
-- e.g., use:
-- on_lines = function(lines) vim.notify(lines) end
-- if you want to redirect stderr to `vim.notify`.
-- The default implementation will redirect to a dedicated stderr
-- window.
on_lines = nil,
},
},
}

View file

@ -24,6 +24,14 @@ return {
end
end,
},
["markdownlint-cli2"] = {
condition = function(_, ctx)
local diag = vim.tbl_filter(function(d)
return d.source == "markdownlint"
end, vim.diagnostic.get(ctx.buf))
return #diag > 0
end,
},
},
formatters_by_ft = {
["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
@ -32,7 +40,7 @@ return {
},
},
{
"williamboman/mason.nvim",
"mason-org/mason.nvim",
opts = { ensure_installed = { "markdownlint-cli2", "markdown-toc" } },
},
{
@ -68,6 +76,7 @@ return {
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = function()
require("lazy").load({ plugins = { "markdown-preview.nvim" } })
vim.fn["mkdp#util#install"]()
end,
keys = {
@ -84,30 +93,29 @@ return {
},
{
"lukas-reineke/headlines.nvim",
opts = function()
local opts = {}
for _, ft in ipairs({ "markdown", "norg", "rmd", "org" }) do
opts[ft] = {
headline_highlights = {},
-- disable bullets for now. See https://github.com/lukas-reineke/headlines.nvim/issues/66
bullets = {},
}
for i = 1, 6 do
local hl = "Headline" .. i
vim.api.nvim_set_hl(0, hl, { link = "Headline", default = true })
table.insert(opts[ft].headline_highlights, hl)
end
end
return opts
end,
ft = { "markdown", "norg", "rmd", "org" },
"MeanderingProgrammer/render-markdown.nvim",
opts = {
code = {
sign = false,
width = "block",
right_pad = 1,
},
heading = {
sign = false,
icons = {},
},
checkbox = {
enabled = false,
},
},
ft = { "markdown", "norg", "rmd", "org", "codecompanion" },
config = function(_, opts)
-- PERF: schedule to prevent headlines slowing down opening a file
vim.schedule(function()
require("headlines").setup(opts)
require("headlines").refresh()
end)
require("render-markdown").setup(opts)
Snacks.toggle({
name = "Render Markdown",
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

@ -12,23 +12,6 @@ return {
},
{
"nvim-treesitter/nvim-treesitter",
dependencies = {
{ "nushell/tree-sitter-nu" },
},
opts = function(_, opts)
---@diagnostic disable-next-line: inject-field
require("nvim-treesitter.parsers").get_parser_configs().nu = {
install_info = {
url = "https://github.com/nushell/tree-sitter-nu",
files = { "src/parser.c" },
branch = "main",
},
filetype = "nu",
}
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "nu" })
end
end,
opts = { ensure_installed = { "nu" } },
},
}

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