Commit Graph

2160 Commits

Author SHA1 Message Date
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
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 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 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 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 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 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 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
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