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

Multiple extras enabled at the same time:

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

Java remote debugging open:

## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
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>
## 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.
## 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.
- 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>
## 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.
## 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**

**After**

## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## 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>
## 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.
## 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.
## 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.
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>
## 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.
## 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:

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

## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
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.
## 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.
## 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.
## 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.
## 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.
## 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>
## 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.
## 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>
## 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
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
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>
## 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.
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>
## 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>
## 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.
## 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.
## 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>
## 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.
## 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.
## 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.
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>
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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>
## 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>
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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>
## 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.
## 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.
## What is this PR for?
Use already defined Bufferline offsets or use Edgy offset if none are
found.
Also properly set offset separator position depending on offset/pane
location.
## 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.
## What is this PR for?
Current implementation of `Git Browse` doesn't work with onprem gitlab
(and any other git hosting except gitlab, github and bitbucket).
With this little fix, it should work with any git hosting.
## 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.
## What is this PR for?
This PR switches makrdownlint-cli to markdownlint-cli2.
markdownlint-cli2 should be a bit faster than markdownlint-cli and has a
more flexible configuration through files in the whole directory tree.
The cli is maintained by David Anson who also wrote the markdown style
checker itself which is used by the "old" cli and cli2.
Blog post from David Anson regarding the new cli itself:
https://dlaa.me/blog/post/markdownlintcli2
## 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.
## What is this PR for?
When you hit `Cancel` and a buffer is modified, it should not delete the
buffer.
<!-- 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#3832
<!--
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.
## What is this PR for?
There's some logic in `linting.lua` to allow for easy setting of linter
args, but it doesn't work when default args is empty. This hopefully
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.
## What is this PR for?
In #3690 there was a [concern
expressed](https://github.com/LazyVim/LazyVim/pull/3690#issuecomment-2174024517)
about changing `fzf-lua`'s core actions. This PR tries to achieve the
same result by manually setting the headers in `fzf_opts["--header"]`
and constructing it without use of `fzf-lua.actions`.
Feel free to disregard if you think there's no change necessary in the
current code, as this is simply a refactor attempt and does not provide
any new functionality.
<!-- 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.
## What is this PR for?
Similar to https://github.com/LazyVim/LazyVim/issues/847 , only this
adapter adds a setup function into the 'adapter' key in the plugin table
([source](f61463f5c7/lua/neotest-playwright/init.lua (L31-L33))).
It is somewhat annoying that neotest does not provide a recommended way
for adapters to define their configuration function (at least not
explicitly)...
Perhaps we should work around it temporarily, but reach out to either
neotest or neotest-playwright authors?
## Does this PR fix an existing issue?
I didn't see anyone complaining about playwright adapter in issues or
discussions :/
## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## What is this PR for?
A small contribution to enhance the documentation and make it easier to
use.
While vim-dadbod and vim-dadbod-ui recommend using dotenv.vim for env
file injection, we aim to provide a simpler method. Instead of
implementing file parsing or relying on an external plugin (dotenv.vim),
just try directly using a Lua table.
<!-- 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?
none!
<!--
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.
## What is this PR for?
Fix detection of elixir `credo` linter.
`vim.fn.executable("credo") == 0` will never succeed because `credo` is
not binary/executable. It is a `mix` package and only available via `mix
credo` command.
Instead, the plugins(both `none-ls` and `nvim-lint`) will check for the
presence of the `.credo.exs` file.
<!-- 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#3808
<!--
If this PR fixes any issues, please link to the issue here.
Fixes #<issue_number>
-->
## Checklist
- [x] Both linters display credo warnings if `credo` is installed and
the `.credo.exs` config exists in a project.
- [x] There are no errors if the `.credo.exs` file does not exist in the
project.
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## What is this PR for?
fix(util.terminal) recorrect the shellredir and shellpip options for
powershell.
<!-- 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>
-->
## Checklist
- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
## What is this PR for?
Disable `preview` in `fzf-lua` Extra for `vtsls`. I tested it with
Python and Typescript Extras and in Typescript pressing `<leader>ca`
shows without previewer, while in Python the same shows with previewer.
Kindly check also that this is correct and I didn't miss out anything
else.
<!-- 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#3773
<!--
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.
## What is this PR for?
Only `require("mason-nvim-dap")` when it's not disabled
<!-- 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#3783
<!--
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.
## What is this PR for?
Use `lazy.util.open` on Neovim <=0.10
<!-- 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?
Closes#3776
<!--
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.
## What is this PR for?
I'm used to jumping from git hunks with `[h` so I'd like to use the same
mapping when navigating diffs.
## 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.
Refactor neo-tree related logic
## What is this PR for?
Simplification of `neo-tree` related logic in `edgy.lua`
## Does this PR fix an existing issue?
No, but it may prevent future issues with `edgy` if `neo-tree` source
configuration changes.
## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## What is this PR for?
Provide a `pick` function to `refactoring.nvim` similar to
`project.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?
Fixes#3762
<!--
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.
## What is this PR for?
Fix release-please CI so the version in the `extra-file` is bumped.
## 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.
ref: folke/lazy.nvim#1534
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
After some recent changes in https://github.com/neovim/neovim/pull/28709
I was getting an error when the user had `folds_open = true` in his
personal configuration whenever he pressed `o/O`. This is an attempt to
fix that.
## What is this PR for?
I was getting an error with `folds_open = true` in the user
configuration whenever pressing `o/O` or pressing `Enter` for a new
line.
The error was `Error executing lua:
...e/jrn23/projects/plugins/LazyVim/lua/lazyvim/util/ui.lua:127: attempt
to index a number value`.
<!-- 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.
Also add filetype `gitsigns.blame` to autocmd `lazyvim_close_with_q` and
workaround for `+hunks` group name to show prefix correctly. If you
don't like the workaround for `+hunks` group name feel free to remove
it.
## What is this PR for?
Make use of the new `gitsigns` feature `Gitsigns blame`, which shows in
a vertical buffer split the `blame` history of the whole buffer.
<!-- 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.
On Windows, when using dap, python.exe will launch an extra console. If
you target pythonw.exe this avoids that. Explanation source:
https://stackoverflow.com/questions/9705982/pythonw-exe-or-python-exe
## What is this PR for?
Modify which exe is targeted for python + dap on windows. If you use
python.exe an extra console launches (eg, nvim is runnining on Wezterm,
boot up dap, and as a result an external console (usually through
windows terminal or built-in console terminal) will launch (dap still
runs in the original window). This is avoided with pythonw.exe
## 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.
## What is this PR for?
Adding support for prisma
## 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.
---------
Co-authored-by: Ben Puryear <54869170+Ben10164@users.noreply.github.com>
## What is this PR for?
fix(dap): get the correct debugpy pkg path on windows.
<!-- 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>
-->
## Checklist
- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## What is this PR for?
Fix correctly showing relative numbers in `statuscolumn` after recent
breaking changes on
[nightly](https://github.com/neovim/neovim/pull/29357).
Please feel free to disregard this PR if a better solution is possible.
<!-- 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#3721
<!--
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.
## What is this PR for?
- The current implementation doesn't support multi-module/monorepo
project where `<repo>/.git` can be `gitdir` alias to the main `.git`
folder. This PR uses the Git CLI to resolve remote URLs to better
support flexible project structure.
- This PR also adds the support to Bitbucket and GitLab
What's the problem of reading `.git/config`?
- Not all information available there. For instance, some large projects
will split a monorepo into smaller submodules, where `.git` is a file
that contains the `gitdir` alias.
- There's no promise that `.git/config` has to be existed. Git supports
multiple ways to store the git info outside of the default git directory
like using `GIT_DIR` env variable.
- Have to do lot of reading and parsing logic.
Why `git remote -v`?
- Only contains remote info with explicit format.
- Don't have to filter out other config info.
- Don't have to deal with lots of weird edge cases.
## 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.
## What is this PR for?
`conform.nvim` had breaking changes, that renamed `lsp_fallback` to
`lsp_format` as can be seen
[here](9228b2ff4e)
## Does this PR fix an existing issue?
Fixes#3706
## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## What is this PR for?
- Allows setting intelephense instead of phpactor for PHP's LSP
## Does this PR fix an existing issue?
No. But I personally use intelephesen myself and when researching on how
to use the PHP extras but swap phpactor (too verbose, imo) for
intelephense, I found this [comment
here](https://github.com/LazyVim/LazyVim/pull/3397#issuecomment-2141950186)
which suggested making it configurable like the Python extras. That's
what I'm doing here.
## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## What is this PR for?
Small refactor to use the already available `get_plugin()` function.
## 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.
## What is this PR for?
When we register a picker, such as a Telescope picker or a fzf-lua
picker,
we use commands within their own picker. For example, we use
M.picker.commands instead of M.pick.commands.
<!-- 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.
## What is this PR for?
When the user disables a specific neo-tree source (git_status or
buffers), the panes are still created but throw an error when the user
tries to open them
**NB**: This is currently not functional because `LazyVim.opts` is
returning an empty table instead of the neo-tree opts. I'm hoping
someone can give me a hand with this little problem
## 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.
## What is this PR for?
add missing elixir lspconfig
## Does this PR fix an existing issue?
lspconfig is missing for elixir and since mason was removed in
f8268faa7c,
elixirls is no longer automatically installed.
## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## What is this PR for?
After recent changes in `rustaceanvim` in
https://github.com/mrcjkb/rustaceanvim/pull/403, `checkOnSave` is
supposed to be boolean and the table that we were passing to
`checkOnSave` previously should be passed to `check` instead. I left the
`check` table undefined, because the options that we were passing to
`checkOnSave` before are the default ones being passed to `check`. So,
only if the user wants to change something should he change the values
of the `check` table according to what he wants.
## 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.
## What is this PR for?
repro.lua didn't work. at least i don't think it's the intended
behaviour.
it installed lazy.vim, lazy.nvim, tokyonight.
but didn't actually load lazyvim, and so none of it's plugins config
etc...
## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
## What is this PR for?
`have_make` and `have_cmake` were left over at
`/lua/plugins/editor.lua`, so move them to `extras.editor.telescope`
instead.
## 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.
## What is this PR for?
Make other nvim dashboards use LazyVim.pick so they can also make use of
fzf-lua when the extra is enabled. In addition, aligned the sections to
be the same as dashboard.nvim.
**Note**: this is somewhat untested. I haven't tested each dashboard and
their sections to make sure they all work.
## 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.
---------
Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>
## What is this PR for?
Refactoring of pickers in LazyVim:
- [x] telescope moved to extras
- [x] dressing was moved to the telescope extra. Not needed with fzf-lua
and noice
- [x] when none of the two is enabled, then telescope will be enabled
- [x] when using `:LazyExtras` to enable fzf-lua, the telescope spec
will never be parsed
- [x] when not using `:LazyExras`, the spec will be parsed, but one of
the two will be disabled.
- [x] only one picker extra can be used to prevent issues
- [ ] cleanup lsp keymaps
## What is this PR for?
If `fzf-lua` and `mini.indentscope` are enabled together, the indent
line created by `indentscope` makes the fzf window hard and confusing to
work with
<!-- Describe the big picture of your changes to communicate to the
maintainers
why we should accept this pull request. -->
PS: also sorted the file list.
## Does this PR fix an existing issue?
I don't think there's an existing issue for this.
## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
Adds the abiltiy for fzf-lua to be used as a picker for these copilot
chat actions if it was enabled in LazyExtras
## What is this PR for?
This adds keybinds that exist currently for copilot-chat and Telescope
but with the addition of fzf-lua as an extra, I noticed we needed the
ability for the user to take advantage of them with FzfLua.
## 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.
## What is this PR for?
This PR fixes a bug in the `LazyVim.memoize` function that was causing
unexpected behavior in my configuration. The issue was discovered when
setting `vim.g.lazyvim_prettier_needs_config = true` in my
`lua/config/options.lua`, which did not work as expected.
The root cause was an issue with `LazyVim.memoize` cache key generation,
which led to `M.has_config(ctx)` always returning the same result as
`M.has_parser(ctx)`. This happened because `LazyVim.memoize` generates
cache keys based on the function parameters, and both functions were
being called with identical parameters:
7d30360df2/lua/lazyvim/plugins/extras/formatting/prettier.lua (L77-L81)
By improving the cache key generation to include function information,
we can ensure unique keys for different functions even if their
parameters are identical, thereby fixing the issue.
## 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.
Incorporate additional boolean logic when setting keymaps to avoid
creating `opts.mappings` table and leave that only from the user
configuration to change mappings.
New extra with an initial implementation of fzf-lua.
## Todo
- [x] check all places that currently depend on telescope and provide an
alternative or disable
- [x] disable telescope spec completely. (currently only removed its
keymaps)
- [x] trouble integration
- [x] https://github.com/ibhagwan/fzf-lua/issues/1241
---------
Co-authored-by: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com>
## What is this PR for?
- Just a small fix for which-key in visual mode that the authors forgot
to add.
<!-- 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?
- As copilot-chat has just been added to extras so i think this is new.
<!--
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.
`mason-nvim-dap.nvim` adds it's own adapter filetype mappings to the
vscode extension in `nvim-dap` (as of
https://github.com/jay-babu/mason-nvim-dap.nvim/pull/129)
This also moves the type mappings for the `pwa-node` and `node` adapters
to where they are defined in the typescript pack.
Now that the default internal type mappings are configured we can rely
on the automatic loading of the `.vscode/launch.json` that `nvim-dap`
does
## Problem
Sometimes angular treesitter didn't get started, e.g. when creating a
new file.
## Solution
- Add `BufNew` event to attach angular treesitter.
- Change `BufRead` to `BufReadPost` for better readability.
### Related Neovim docs
- [BufRead / BufReadPost
docs](https://neovim.io/doc/user/autocmd.html#BufRead)
- [BufNew](https://neovim.io/doc/user/autocmd.html#BufNew)
🤖 I have created a release *beep* *boop*
---
##
[12.10.0](https://github.com/LazyVim/LazyVim/compare/v12.9.0...v12.10.0)
(2024-06-07)
### Features
* **prettier:** prettier is now enabled for all supported filetypes and
no longer requires a config file by default
([7d50bf0](7d50bf0626))
* **prettier:** with the prettier & astro extra, prettier will be
enabled if the prettier-astro-plugin is available
([214f5fc](214f5fccdf))
* **svelte:** with prettier & svelte extra, prettier will be enabled
when prettier-plugin-svelte is available
([945143a](945143a34e))
* **util:** added LazyVim.has_extra
([b714f28](b714f28662))
* **util:** added LazyVim.memoize
([5a11d74](5a11d740e1))
### Bug Fixes
* **clojure:** removed rainbow delimiters and fixed some plugin setups.
Closes [#3530](https://github.com/LazyVim/LazyVim/issues/3530)
([cfa8c9f](cfa8c9fbd4))
* **cmp:** don't enable `snippets` source without `nvim-snippets`
([#3527](https://github.com/LazyVim/LazyVim/issues/3527))
([af80811](af80811be0))
* **extras:** load prettier extra before svelte/astro
([4980574](49805748d4))
* **formatting:** remove deprecation check on some options
([c16fb5d](c16fb5d49b))
* **prettier:** fixup
([ac9217b](ac9217b199))
---
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>
This adds support to Clojure as an extra _lang_ configuration.
Closes https://github.com/LazyVim/LazyVim/pull/1484
@folke I read the docs and couldn't find a recommendation on _how_ to
suggest features, so I figured opening a PR should be enought. please
let me know if I should do anything else.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
I got this error message when opening telescope.
```
Failed to run `config` for telescope.nvim
...l/share/nvim/lazy/LazyVim/lua/lazyvim/plugins/editor.lua:241: module 'trouble.sources.telescope' not found:
^Ino field package.preload['trouble.sources.telescope']
...
```
After investigating it, the reason was I have `trouble.nvim` disabled
but the default base `opts` function is loading it.
I tried wrapping it with a function to lazy load the `trouble.nvim`
module and it worked in my local setup.
Tested with `php` and `kotlin` Extras.
`kotlin` Extra doesn't have the debug adapter in Mason
`ensure_installed` and doesn't install automatically on its own.
`php` Extra has the debug adapter defined in Mason `ensure_installed`
and does correctly install automatically. However, this should not be
needed due to `mason-nvim-dap`. If you remove [these
lines](ed93ce9c15/lua/lazyvim/plugins/extras/lang/php.lua (L26-L33)),
then the debug adapter doesn't automatically install, but it should.
With the change introduced in this PR, both Extras automatically install
the debug adapters. `kotlin` Extra doesn't need anything else and in
`php` Extra the lines I mentioned previously can be removed or not. The
point is not to remove previously Mason dependencies with debug
adapters, but to correctly configure `mason-nvim-dap`, so in future
Extras you don't have to define the debug adapter inside a Mason
dependency.
This PR adds support for thriftls, the first line is because thrift is
not among the neovim built-in file types.
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
Configures tree-sitter, phpactor as LSP server and
xdebug/vscode-php-debug as DAP server.
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
### Description
I am the author of this
[PR](https://github.com/LazyVim/LazyVim/pull/2890).
While reviewing my own code and checking the LazyVim official website, I
noticed some inconsistencies 😓 , so I created a small PR to address
them:
### Changes
1.Each optional plugin has a comment message indicating that the plugin
is optional, but DAP does not (as shown in the image). Since the
official website already has an "optional" in title.
**I removed the comment messages regarding "optional" to avoid
confusion**.
<img width="300" alt="Screenshot 2024-05-23 at 10 31 38 PM"
src="https://github.com/LazyVim/LazyVim/assets/82575487/441979fc-20dd-4599-a91d-f27bc0841d79">
---
2. I changed the DAP to use local variables for DAP to maintain
consistency, even though both require statements reference the same
module.
## Problem
Treesitter was not working in angular html templates after enabling
`lang.angular` extra.
## Solution
Added a change recommeded by angular treesitter developer to enable
treesitter for components and containers.
### Reference to recommendation in treesitter docs
[Reference to the recommendation for this
hack](https://github.com/dlvandenberg/tree-sitter-angular?tab=readme-ov-file#filetype).
In the future we can add:
- dap / debugger support, if this is ever possible or needed.
- extend neotest, if this is ever needed, for most people I suspect not
needed.
- linting, if this is ever needed.
- ~~maybe enhance nvim-cmp behavior with nixpkgs, rust lang extension
crates.nvim does smt with nvim-cmp, other language extensions don't.~~
I think its already good to merge this PR, we can add these enhancements
later, if they are ever needed.
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
## Description
This will add minimal support for [Nushell](https://www.nushell.sh/)
include lspconfig and treesitter highlight
## Additional Context
Close#2164
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* Makes the toggle_hidden keybinding configurable via mappings
* Adds new mini.files keybindings for opening files in a vertical split,
with both go_in and go_in_plus modes (configurable via mappings)
* Adds new keybinding to change working directory from mini.files
(configurable via mappings)
Closes#2692
* feat(keymaps): add keymap to close all tab pages except the current one
* fix: use o
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* feat(extras): Add extra for angular lspconfig
Since treesitter has better support for angular parser recently that works for the legacy and the latest version of it,
I am happy to suggest this extra configuration that works for well for me without any issue.
And since lack of references about how to config the angular lsp inside of neovim out there, this will work fine as a starting point.
* feat(extras): Added `angularls` lsp configuration
* feat(extras.lang): update `angularls` configuration
---------
Co-authored-by: Radvil <radvil.linux@gmail.com>
* Fix missing autocomplete in .vue files
The existing Vue extra was not properly configuring vtsls to use the globalPlugin: '@vue/typescript-plugin'
This commit fixes missing typescript autocomplete in .vue files.
* move @vue/typescript-plugin back to extend function call
* tidy LazyVim.extend() arguments
* fix(ui): do not add trouble to lualine when aerial is enabled
* refactor: make trouble lualine an option
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
fix this warning
```
Warn 11:52:45 PM notify.warn nvim-lspconfig.rust_analyzer has been setup.
This will likely lead to conflicts with the rustaceanvim LSP client.
See ':h rustaceanvim.mason'
```
fix taken from https://github.com/mrcjkb/rustaceanvim/blob/master/doc/mason.txt
Based on [vtsls schema](bd2df5a2d4/packages/service/configuration.schema.json (L1092)), experimental setting should be vtsls property not typescript.
```json
"vtsls.experimental.completion.enableServerSideFuzzyMatch": {
"default": false,
"type": "boolean",
"description": "Execute fuzzy match of completion items on server side. Enable this will help filter out useless completion items from tsserver."
},
```
* Added R extra
* Removed "made by Ben10164"
* Formatted Lua
* Removed hardcoded addition of R-languageserver in MasonLSP
* Improved nvim-lspconfig config for r_language_server
* Added nvim-neotest
* Format
* Removed Lualine
* Rework into opts, modify `pdfviewer` to be os dependent
* refactor: r
* fix: add cmp-r back
* Added quarto whichkey group label
* Set pdfviewer to be an empty string
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
According to the maintainer of `rustaceanvim` (see his comment [here](https://github.com/LazyVim/LazyVim/pull/2198#issuecomment-1999475044)) he says
> To pick up on this: There's a good reason rustaceanvim doesn't automatically pick up a mason.nvim installation. It will most likely be built with a different toolchain than the one your project uses, often leading to discrepancies and subtle bugs.
It's easy to configure rustaceanvim to use mason.nvim if you really want it, but I generally adhere to the YAGNI principle.
I tried locally and the removal of `rust-analyzer` from `nvim-lspconfig` doesn't
seem to have any effect on how `rustaceanvim` behaves.
I propose to remove all instances of `rust-analyzer` from `nvim-lspconfig` to avoid
any possible issues from users that don't have `rust-analyzer` installed
in their toolchain (in this case it would pick up Mason's $PATH I
believe), since they will think that since `rust-analyzer` is installed
by Mason, there shouldn't be a problem and report issues as bugs.
`LazyVim.config` gets evaluated during the parsing phase with `opts`
as a table (thus not taking into account changes made in the user's
personal configuration for the icons), so make `opts` a function to
defer the evaluation until the plugin loads.
* Add kotlin lang
* Update the opts.ensure_installed
* Add the kotlin setup in nvim-dap
* Update plugins based on the review comments.
1. Remove kotlin language server from mason
2. Add optinal is true, only enabled if the user has explicitly enabled
the extra plugin.
3. Remove duplicate dependencies cause they are already defined in the
plugin.
4. Add none-ls as optional
* Update comment message
* fix(mini.starter): buf_id in refresh() is not an identifier of valid Starter buffer
Fixes#3207.
* fix(mini.starter): just do `do VimResized` for simpler approach
* feat(typescript): configure inlayHint
since LazyVim have toggle inlayhint keymap, it make sense to configure
them for each extra languages provided. In this commit I just add the
configuration for typescript, since IDK how to configure the rest of
lang extras that was provided.
* fix: changed defaults
---------
Co-authored-by: Radvil <radvil.linux@gmail.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
If lazy extras yaml is enabled, yamlls was being loaded not ansiblels.
Add ft = {} to nvim-ansible spec allows ft=yaml.ansible to be detected.
Re-mapped nvim-ansible plugin key to not conflict with neotest.
Added a description for the keymap.
* fix(python): make both `ruff` and `ruff_lsp` available to user
Provide global variable to choose between `ruff` and `ruff_lsp` in
accordance to `pyright`/`basedpyright`
* refactor(python): ruff stuff
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* feat(lualine): make path trimming configurable by user
* fix: always split both forward/backward slashes
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* fix(config): harpoon2 deprecated message when adding new file to list and fix auto save on file list toggle
* fix: Update harpoon2.lua to add pleanery dep
* fix: no need for plenary deps here
---------
Co-authored-by: Alan Alvarenga <alan.alvarengamejia@telus.com>
Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
Since Node.js 16 actions are deprecated, and updating the actions to use
Node.js 20 is recommended. All actions in `ci.yml` have a newer version,
this change bumps the actions to next versions.
* feat: add dial extra
* refactor: removed print statements
* fix(extras): early return for dial extra
* refactor: dials_by_ft like conform, nvim-lint. Simplified buffer specific groups
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* feat(neo-tree): add mapping "O" to open with system default
* feat(neo-tree): add OS checks for system default open commands
* Use `vim.ui.open` if exists
* update OS checks
* Just use vim.ui.open or throw error if doesn't exist
* Make "O" undefined mapping if vim.ui.open isn't available
* fix: use lazy's util.open instead
---------
Co-authored-by: Uthman Mohamed <83053931+1239uth@users.noreply.github.com>
Co-authored-by: saeedahsan <ahsan02@gmail.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
Closes#2752
I left the initial text blank on purpose, so that it doesn't change
anything stylistically and let the user decide what he wants to add
in his personal configuration for `lualine` spec.
* Adding required nvim-nio to neotest in test-core
neotest now requires nvim-neotest/nvim-nio to be
installed as per BREAKING CHANGE: https://github.com/nvim-neotest/neotest/pull/337
* Adding nvim-nio as dependency
nvim-dap-ui now requires nvim-neotest/nvim-nio as a dependency as of recent changes
If you press `g` in a mini.files menu, the `.` key shows up but doesn't have a description. This adds a desc attribute to the binding so the menu shows a correct description.
* Add <leader>gf for lazygit commit history on current file
* Change root dir to git root using git command
* refactor: cleanup
---------
Co-authored-by: Uthman Mohamed <83053931+1239uth@users.noreply.github.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* feat(lualine): add more hl options to pretty_path
Adds two additional options to pretty_path: filename_hl and dirpath_hl.
This allows users to customize the highlight group of both the directory
component of the path name and the filenname independently. modified_hl
is still used when the buffer has been modified.
Thanks to dpetka2001 (Iordanis Petkakis) for the changes to the format
function.
* feat: cleanup
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* fix(terraform-extra): Drop unnecessary commentstring config for terraform
The commentstring for terraform and hcl files is now handled by nvim-ts-context-commentstring:
JoosepAlviste/nvim-ts-context-commentstring#94
* Fixed terraform.lua issues. I'm bad.
Adding opts recursive_run to fix the error 'no Go files in /path/project.' This issue is caused by a recent change in the 'nvim-neotest/neotest-go' project, which now [defaults to non-recursive behavior](https://github.com/nvim-neotest/neotest-go/pull/72)
* feat(lang): add support for helm chart templates
* fix(helm): stop yamlls and disable autostart
* fix(helm): stop yaml & docker compose lsp on helm file types
Revert disabling `autostart` since that kills the LSP globally even when
opening a standard yaml file, like GitHub Workflow file.
* fix(helm): remove docker compose lsp overrides
Since docker compose LSP does not seem to be triggered or started by
opening *.yaml helm files, the config overrides were removed to simplify
Helm config.
* fix(helm): ensure mason installs helm lsp
Avoid lowering timeoutlen when running in VS Code, to avoid
unwanted timeouts from key mappings.
The lower value of 300ms (down from Neovim's default of 1000ms)
works great outside of VS Code, where it helps trigger the which-key UI
quickly, and where which-key prevents timeouts from occuring.
But in VS Code (where which-key isn't applicable), the lower value
makes it difficult to perform some key mappings in time,
such as `]p`, which requires shifting hand position.
For example, 'buffer' source by default has group_index = 2 [1], however
if we take all the sources plus crates and run them through
cmp.config.sources() again, since it's a one-dimensional list, all
group_indexes will be reset to 1.
[1] 879e29504d/lua/lazyvim/plugins/coding.lua (L74-L80)
* feat(toggle-diagnostics): change logic based on `vim.diagnostic.is_disabled`
After discussion in #2215, I thought maybe it would be beneficial if we
could change the logic of the `toggle-diagnostics` function based on if
the user has disabled diagnostics in his own configuration.
* feat(toggle-diagnostics): revert to `enable` instead of `status`
* fix(toggle): use vim.diagnostics enabled state when possible
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
3 hides all concealed text, even if there are replacement chars defined
e.g. : for Markdown, 3 hides list item markers, dots for asterisk lists
and em-dashes for dash lists
If replacements are defined as defaults in a plugin, the "Laziest™"
config would seem to be displaying them.
Level 1 only seems useful when alignment really matters.
* fix(typescript): don't hardcode values in lua table
When a user changes `vim.opt.shiftwidth` with some auto-command, it's
not taken into account. Make `opts` a function, so that values get
evaluated when `lspconfig` loads instead.
* fix(typescript): remove format settings entirely
* fix(typescript): add back comment and Lua annotations
* fix(typescript): bring back function call completion snippets
* Detect if using nvim 0.10 and use new inlay_hint.enable method
* Add lsp util for inlay-hints and update keymap
* Remove the need to check vim version
* Support older nightly builds
* Move inlay_hint toggle in Util.toggle
---------
Co-authored-by: Gary Murray <gamurray@fanatics.com>
1. mason/cmakelang install bin/cmake-lint
2. nvim-lint only recognize bin/cmakelint
3. mason/cmakelint install bin/cmakelint
so we need mason/cmakelint installed to using nvim-lint to perform formatting
* style(dashboard): remove unnecessary brackets from keys, including the p key from the project extras
* review Folke
---------
Co-authored-by: abeldekat <abel@nomail.com>
* feat(tabnine): add build cmd for Windows
* fix(prettier): use prettier instead of prettierd. Too many people get truncated files. Fixes#712. See #1735
* feat: disable kind_filter for markdown and help
* feat(lualine): pretty_path now highlights file basename when modified
* fix(root): dont use single-file lsps for root detection. use workspaces only
* feat(lualine): new root dir component that only shows when cwd != root_dir
* refactor
---------
Co-authored-by: edshamis <pc>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* feat(linting): ability to configure global and fallback linters
* fix: use nvim-lint's logic to get linters
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* feat(lang): add markdown support
* feat: use peek.nvim instead of markdown-preview. Disable and show warning when deno is not installed
* feat: add markdown-preview back
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
* FEATURE: use none-ls instead of null-ls
Fixes#1516
* fix(none-ls): automatically migrate null-ls to none-ls
* feat(config): show warning if user config contains renamed references
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
While trying to disable `<C-s>` entirely by `vim.keymap.del({ "i", "v","n", "s" }, "<C-s>")`
in my own `keymaps.lua`, I got an error on reopening Neovim `No such mapping`.
After tinkering around a bit, I changed `v` to `x`, since `v` incorporates both
`x` and `s` and the error stopped occuring.
In YAML files LSP completion is not happening because
yaml-language-server is failing with error:
TypeError: Cannot read properties of undefined (reading 'length')
from out/server/src/languageserver/handlers/settingsHandlers.js:78:51,
which it's expecting to have yaml.schemaStore.url.length and it's
doesn't exist.
Signed-off-by: Javier Tia <javier.tia@gmail.com>
Changes the current normal-mode mappings <leader>sw / <leader>sW to only
display matches surrounded by word boundaries. Also adds the equivalent
visual-mode mappings to allow searching for the current selection.
Selection searching does not consider word boundaries, so highlighting a
single word and searching for it will produce the same results as the
word-under-cursor searching did before this change. This allows the user
to easily choose whether or not to include word boundaries in their
search.
* feat(neo-tree): update to v3.x and change `follow_current_file` to a table and enable it
* fix(neo-tree): remove nerd font v3 icons
* fix(neo-tree): remove legaccy commands
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
step to reproduce
- disable leap.nvim
- add custom config for flash (not using one from the extras)
- open file type "f", error shown "module leap is missing"
Co-authored-by: Radvil <radvil@@access-mobile.com>
Use a script to keep the neovim updated is really useful, but is not
possible by default because TSUpdateSync is not on `cmd` commands.
```sh
nvim --headless "+Lazy! sync" "+TSUpdateSync" +qa
```
* Center the LazyVim logo
This visually centers the LazyVim login on the starter page.
* fix(alpha): center logo
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
**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
@ -3,6 +3,11 @@ description: Suggest a new feature
title:"feature: "
labels:[enhancement]
body:
- type:markdown
attributes:
value:|
**IMPORTANT:** ideas or requests related to extras, should go in the [Extra Requests](https://github.com/LazyVim/LazyVim/discussions/categories/extra-requests)
discussion forum.
- type:checkboxes
attributes:
label:Did you check the docs?
@ -10,6 +15,8 @@ body:
options:
- label:I have read all the LazyVim docs
required:true
- label:This is not a request for a new or existing extra (see above)
- **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
and will be enabled for astro/svelte extra if you have a proper
config file with the correct prettier plugin
- **New Language Support:** SQL, Clojure, Thrift, Elm, Gleam, Angular,
NuShell, Svelte, Kotlin, Astro, Toml and PHP
- **New Extras:** `copilot-chat`, `git`, `octo`, `inc-rename` and `neogen`
- The **typescript** extra now uses `vtsls` instead of `tsserver`
- **Neovim >= 0.10** now uses the much faster [lazydev.nvim](https://github.com/folke/lazydev.nvim)
instead of `neodev.nvim`
- 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
- **lazydev.nvim:** faster alternative to `neodev.nvim`
- **Options:** Added `linebreak=true` to default options.
-`mini.ai` is back as a default plugin! Removing it was a mistake.
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
- **Plugins**: other plugin extras
- **Languages**: other language extras
- new option `vim.g.deprecation_warnings` to disable deprecation warnings
Defaults to `false`. To enable deprecation warnings, set it to `true` in your `options.lua`
-`vim-illuminate` move to extras
Document highlights now use native lsp functionality by default
Since Neovim 0.10 has been released, I've been working on a new version of **LazyVim**
that is fully compatible with all the latest Neovim features.
Additionally, some core plugins have been moved to extras.
-`native snippets` are now the default on Neovim 0.10
Older versions of Neovim will use the new `luasnip` extra.
-`native comments` are now the default on Neovim 0.10
Older versions of Neovim will use the new `mini-comment` extra.
`nvim-ts-context-commentstring` has been integrated in the native comments.
-`inlay hints` have been in **LazyVim** for a while, but are now
enabled by default. To disable them:
```lua
{
"nvim-lspconfig",
opts = {
inlay_hints = { enabled = false },
}
}
```
- 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)
This is a plugin similar to gitsigns but with a neat diff overlay
that can be toggled with `<leader>go`.
- **trouble.nvim** has been rewritten from scratch and is now in beta.
I've added a new extra for it (`trouble-v3`) for those of you who want to try it out.
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
- The option `vim.g.lazygit_theme` was renamed to `vim.g.lazygit_config`
- **lazygit** now automatically uses the colors of your current colorscheme.
This is enabled by default. To disable, add the below to your `options.lua`:
```lua
vim.g.lazygit_config = false
```
- Added support for `basedpyright` to the **python** extra.
Enable in your `options.lua` with:
```lua
vim.g.lazyvim_python_lsp = "basedpyright"
```
Be aware that `basedpyright` is still in development and
may not work exactly the same as `pyright`.
- User extras under `lua/plugins/extras` can now also be managed
with **LazyExtras**
- `nvim-ts-autotag` is now included by default
- `nvim-treesitter-context` is now included by default
- Added extra for `symbols-outline.nvim`
- Added extra for `aerial.nvim`
- `nvim-navic` has been removed. If you want to keep using `nvim-navic`,
you can enable the **editor.navic** extra
- 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, ...)_
- **LazyVim** automatically selects the primary formatter based on the
current available sources and priorities.
- New `:LazyFormat` command for formatting the current selection or buffer
- New `:LazyFormatInfo` command for displaying the active formatters
for the current buffer
- Auto-formatting can be disabled with:
```lua
vim.g.autoformat = false -- globally
vim.b.autoformat = false -- buffer-local
```
- `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`
```lua
-- LazyVim root dir detection
-- Each entry can be:
-- * the name of a detector function like `lsp` or `cwd`
-- * a pattern or array of patterns like `.git` or `lua`.
-- * a function with signature `function(buf) -> string|string[]`
<imgalt="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 ist ein Neovim setup aufgebaut auf [💤 lazy.nvim](https://github.com/folke/lazy.nvim).
Es erleichter das Anpassen und erweitern von Ihrer Konfiguration.
Anstatt von vorne anzufangen oder eine vorgefertigte Distro zu verwenden, gibt LazyVim das beste aus
beiden Welten - die Flexibilität Ihre Konfiguration zu verändern und einzustellen wie Sie es wollen
und die Einfachheit von einem vorgefertigten Setup.
<imgalt="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 ist ein Neovim-Setup aufgebaut auf [💤 lazy.nvim](https://github.com/folke/lazy.nvim).
Es erleichtert das Anpassen und Erweitern von Ihrer Konfiguration.
Anstatt von vorne anzufangen oder eine vorgefertigte Distro zu verwenden, gibt LazyVim das beste aus
beiden Welten - die Flexibilität Ihre Konfiguration zu verändern und einzustellen wie Sie es wollen
und die Einfachheit von einem vorgefertigten Setup.
<imgalt="follow on Twitter"src="https://img.shields.io/twitter/follow/folke?style=for-the-badge&logo=twitter&color=8aadf3&logoColor=D9E0EE&labelColor=302D41"/>
LazyVim은 [💤 lazy.nvim](https://github.com/folke/lazy.nvim)를 기반으로 작동하는 Neovim 셋업입니다. 더 커스터마이징 가능하고, 설정들을 바꾸는 것을 쉽게 만들기위해 시작되었죠. 그저 처음부터 모든 설정들을 만지고 시작하는 방법, 또는 이미 만들어진 배포용 설정을 사용하는 방법이 있지만, LazyVIM은 이미 잘 설정된 환경과, 필요에 따라 쉽게 바꿀 수 있는 유연성을 모두 포괄합니다. 이를 통해 훨신 쉽고 편리한, 전에는 만나보실 수 없었던 새로운 Nvim의 세계를 경험하실 수 있으실 겁니다.
유튜브에 LazyVim시작하기에 대해 [@elijahmanor](https://github.com/elijahmanor)에 의해 만들어진 영상이 있으니, 시청해 보시는 것을 추천드립니다.
[](https://www.youtube.com/watch?v=N93cTbtLCIM)
## 📂 파일 구조
config 폴더 안에 있는 모든 파일들은 적절한 시간내에 자동으로 로드가 되기에, 아무 파일도 require를 하지 않아도 됩니다. **LazyVim**은 config폴더 안에 있는 모든 기본 파일들을 당신의 config 파일들 **전**에 불어옵니다. 이것에 대해서는, [이 문서](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)를 확인해 보시기 바랍니다.
추가적인 플러그인을 설치하시거나, 미리 설치되고 설정된 플러그인들을 또 덮어서 설정을 바꾸거나, 지우거나, 추가하고 싶으실 경우에는, 그에 해당하는 lua 파일들을 `lua/plugins` 폴더 안에 추가하시면, lazy.nvim이 자동적으로 그 파일들을 로드 할 것입니다.
<imgalt="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 é uma configuração de Neovim potenciada por [💤 lazy.nvim](https://github.com/folke/lazy.nvim)
para tornar fácil customizar e extender a tua configuração.
Em vez de ter de escolher entre começar de raiz ou usar
uma distribuição pré-feita, LazyVim oferece o melhor
dos dois mundos - a flexibilidade de alterar a tua configuração
como necessário, junto com a conveniência de um setup pré-configurado.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.