Extends previous fix to also cover the BufRead/BufNewFile autocmd
pattern for chezmoi.nvim file watching.
Changes:
- Extract source path resolution to shared `source_dir` variable
- Use `chezmoi source-path` CLI when available (canonical solution)
- Fallback with path normalization (vim.fs.normalize, vim.fs.joinpath)
- Reject path traversal patterns (..) for security
- Handle edge cases: leading ./, trailing slashes, etc.
Add support for .chezmoiroot to configure source directory.## Problem
When users have a .chezmoiroot file in their chezmoi source directory, the current chezmoi#source_dir_path setting doesn't include the root subdirectory. This causes chezmoi.vim's filetype detection to fail for files in .chezmoiscripts/ and other special directories.
For example, with .chezmoiroot containing home:
- Current: ~/.local/share/chezmoi
- Expected: ~/.local/share/chezmoi/home
## Solution
Read .chezmoiroot file if it exists and append its content to the source path, matching chezmoi.vim's built-in detection behavior.
## Testing
Verified with:
- .chezmoiscripts/run_once_before_*.sh.tmpl → sh.chezmoitmpl
- dot_config/fish/config.fish.tmpl → fish.chezmoitmpl
## 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.
## 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.
## 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.