Commit graph

318 commits

Author SHA1 Message Date
Folke Lemaitre
c20c402295
fix(mason): rename and pin to v1 2025-05-12 10:39:04 +02:00
Folke Lemaitre
121a2e27ef
fix(extras): disable import handling when loading :LazyExtras + changed some recommendations 2025-02-10 23:27:24 +01:00
Folke Lemaitre
25d90b54a3
feat(defaults): new installs now default to snacks picker/explorer. Existing installs don't change. 2025-02-08 15:23:30 +01:00
Folke Lemaitre
b4c24a3fe8
fix(extras): remove debug 2025-02-08 15:06:57 +01:00
Folke Lemaitre
525377dee9
feat(extras): big rework of default extras 2025-02-08 15:04:46 +01:00
Folke Lemaitre
0416376733
feat(util): has_extra now also checks for manual imports in lazy.lua 2025-02-08 13:49:05 +01:00
Folke Lemaitre
dc8512fce1
fix(root): pass args to root.get 2025-01-20 20:21:01 +01:00
Folke Lemaitre
13044c298e
feat(extras): added extra for snacks picker (#5368)
## Description

See https://github.com/folke/snacks.nvim/pull/445

NOTE: I'm **not** going to replace `fzf-lua` anytime soon. Learned my
lessons with that one :)

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

## Related Issue(s)

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

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-14 22:54:12 +01:00
Folke Lemaitre
ef9102677f
feat(keymaps): unlink luasnip on esc 2024-12-15 11:46:24 +01:00
Folke Lemaitre
009e3587be
fix(cmp): wrong extras check for nvim-cmp 2024-12-13 19:53:18 +01:00
Folke Lemaitre
6d774ba8f2 fix(ui): use Snacks.util.color instead of LazyVim.ui.fg 2024-12-12 13:47:29 +01:00
Folke Lemaitre
e389a5ada9 feat(snacks): use Snacks.zen.zoom() instead of custom **maximize** 2024-12-12 13:47:29 +01:00
Folke Lemaitre
2cbfb9b6b7 feat(cmp)!: moved nvim-cmp to extras and prefer blink.cmp on Neovim >= 0.10 as default completion engine 2024-12-12 13:47:29 +01:00
Folke Lemaitre
d904a1ef47 feat(snacks)!: use snacks.scope indent objects in favor of custom mini.ai indent objects 2024-12-12 13:47:29 +01:00
Folke Lemaitre
ae2340f60a feat(pick)!: make fzf the default picker for LazyVim 2024-12-12 13:47:29 +01:00
Folke Lemaitre
1519cd6da7
chore: remove dead code. Closes #4985 2024-12-10 12:09:40 +01:00
Folke Lemaitre
4a626a8137
refactor(ui): cleanup maximize code 2024-12-02 23:46:11 +01:00
Folke Lemaitre
9ec253b9b6
fix(ui): properly clear maximize state on exit. See #4934 2024-12-02 22:34:39 +01:00
Folke Lemaitre
0352f944c3
perf(ui): never show folds on dashboards 2024-11-18 21:27:36 +01:00
Folke Lemaitre
1db2af267e
fix(terminal): set shellcmdflags for powershell to recommended values. Closes #4805 2024-11-16 07:39:48 +01:00
Zhou Fang
e50b43544f
fix(lualine): dynamically fetch the color used in lualine (#4788)
## Description

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

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

## Related Issue(s)

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

## Screenshots

**Before**


![image](https://github.com/user-attachments/assets/6b78483b-4a64-4ec3-a902-a0d1ed10a992)

**After**


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

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-14 15:53:27 +01:00
Folke Lemaitre
3ac62a4364
refactor(ui): cleanup fg/color 2024-11-13 21:14:29 +01:00
Folke Lemaitre
1d7b9a1a61
perf(treesitter): better foldtext and foldexpr 2024-11-13 21:11:32 +01:00
Folke Lemaitre
5df382765b
refactor(lualine): status component 2024-11-13 17:20:50 +01:00
Folke Lemaitre
ea266e7326
fix(lualine): normalize paths before calculating pretty path. Fixes #4763 2024-11-11 15:44:08 +01:00
Folke Lemaitre
fbf881f80b
feat(ai): better completion/suggestions of AI engines (#4752)
## Description

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

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

## Test Matrix

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


## Related Issue(s)

- [ ] Closes #4702

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-11 10:50:57 +01:00
Folke Lemaitre
86904d2fb1
feat(ai): move ai related extras from coding to ai (#4751)
## Description

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

## Related Issue(s)

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

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-10 11:27:21 +01:00
Folke Lemaitre
b9dae57961
perf(ui): only enable treesitter folds if the buffer has treesitter highlighting 2024-11-09 23:33:05 +01:00
Folke Lemaitre
67b216c973
fix(lualine): make sure path is in root before substituting 2024-11-07 17:01:08 +01:00
Jamie Davies
1d4157e681
fix(lualine): apply highlight groups correctly to truncated pretty_paths (#4379)
## Description

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

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

## Screenshots

Before this fix:

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

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

After this fix:

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

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

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 16:26:17 +01:00
Folke Lemaitre
2f4697443c
feat(core)!: move a bunch of LazyVim features to snacks.nvim (#4706)
## Description

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

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

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

This PR fully integrates with snacks.

## Todo

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

## Closes

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

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-07 15:54:47 +01:00
Folke Lemaitre
ad52bf91bc
feat(extras): blink (#4680)
## Description

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

## Todo

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

## Limitations

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

## Related Issue(s)

- https://github.com/LazyVim/LazyVim/discussions/4679
2024-11-02 09:54:55 +01:00
Folke Lemaitre
fe7003de50
fix(folds): enable folds when treesitter available. Fixes #4563 2024-10-23 11:32:21 +02:00
Iordanis Petkakis
90a92312ae
feat(root): provide vim.g.root_lsp_ignore to ignore LSP servers (#4332)
## Description
This provides `vim.g.root_lsp_ignore` for users to customize which LSP
servers should be taken into account when evaluating the LSP `root_dir`.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Closes #4330
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

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

## Related Issue(s)
No, rather a discussion #4512
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

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

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

## Related Issue(s)
Fixes #4203
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-08-31 09:44:52 +02:00
Iordanis Petkakis
41a8f3a5fb
feat(lazygit): allow user to override LazyVim config with custom file (#4367)
## Description
This takes into consideration an additional file, if it exists, to
extend `LG_CONFIG_FILE` environment variable, so that users can
overwrite easier default LazyVim options set for lazygit in
`lazygit-theme.yml`. It's not desirable to directly change
`lazygit-theme.yml` as the values are hardcoded and regenerated upon
colorscheme change.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #4364. Ideally, the problem about `nvim-remote` on Windows should
be fixed on lazygit's side, so this is just kind of a hotfix in the
meantime. Feel free to disregard this if not desirable.
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-08-31 09:18:20 +02:00
George Guimarães
1d2c0a5cf4
chore(markdown): markdown.nvim was renamed to render-markdown.nvim (#4259)
As described in
aeb5cec617
2024-08-31 09:16:45 +02:00
Folke Lemaitre
94bf4f9324
fix(news): pcall diag when showing news for older Neovim versions 2024-07-25 10:55:08 +02:00
Folke Lemaitre
f6cd4a38c6
fix(news): deprecated API 2024-07-23 07:17:18 +02:00
Folke Lemaitre
c8ab5d7554
fix(toggle): safe toggle get 2024-07-20 22:06:16 +02:00
dotfrag
b5290fd929
feat(terminal): clear search highlight when opening a terminal (#4090)
## Description

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

## Related Issue(s)

N/A.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-18 07:10:22 +02:00
Folke Lemaitre
c1b76ee235
feat(toggle): move toggle notifs to toggle function 2024-07-17 15:07:04 +02:00
Folke Lemaitre
60b10deeb0
style(toggle): types 2024-07-16 23:54:23 +02:00
Folke Lemaitre
150523b77b
feat(toggle): make toggles callable. Fixes #4081 2024-07-16 23:34:27 +02:00
Folke Lemaitre
a1335e59e1
style: fix toggle desc 2024-07-15 23:56:07 +02:00
Folke Lemaitre
78cf0320bf
feat(keymaps): dynamic which-key icons/descriptions for toggles (#4050)
## Description

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

## Related Issue(s)

- [ ] Closes #4025

## Screenshots


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

## Checklist

- [ ] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-15 15:47:44 +02:00
Johnson Hu
8506cb5a98
feat(util.mini): follow the user's mappings instead of hardcoded values (#4043)
Because I use the Colemak-DH keyboard layout, I have mapped 'i' to 'h'.
Therefore, the current mini.ai which_key prompts are inconsistent with
my keymap.


## Description

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

## Related Issue(s)

No

## Screenshots

No

## Checklist

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

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-07-15 09:06:34 +02:00