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