Commit graph

18 commits

Author SHA1 Message Date
Folke Lemaitre
6d774ba8f2 fix(ui): use Snacks.util.color instead of LazyVim.ui.fg 2024-12-12 13:47:29 +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
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
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
05e45e0d35
refactor: LazyVim.config 2024-06-16 15:35:38 +02:00
dotfrag
21617a9d60
feat(lualine): show readonly icon (#3567)
Adds a configurable lock icon when a file is opened as read only. Mimics
`vi -R <file>` status line.
2024-06-10 22:06:09 +02:00
Folke Lemaitre
e89653f410
fix(pretty_path): properly escape % characters 2024-05-12 22:08:13 +02:00
Iordanis Petkakis
b8475f5194
feat(lualine): make path trimming configurable by user (#3062)
* feat(lualine): make path trimming configurable by user

* fix: always split both forward/backward slashes

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-05-03 09:16:50 +02:00
Folke Lemaitre
7a5dbeae75
feat: use LazyVim everywhere instead of require("lazyvim.util") 2024-03-22 09:15:09 +01:00
Iordanis Petkakis
ed44b246b4
feat(lualine): add modified_sign to pretty_path (#2754)
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.
2024-03-19 22:28:31 +01:00
Pete Kazmier
d3761eded7
feat(lualine): add more hl options to pretty_path (#2687)
* 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>
2024-03-10 09:45:40 +01:00
Folke Lemaitre
9517e64009
fix(root): root dir for windows. Fixes #1749 2023-10-16 08:35:35 +02:00
Folke Lemaitre
dfdfcad1aa
feat(lualine): new root dir component that only shows when cwd != root_dir 2023-10-15 22:38:44 +02:00
Folke Lemaitre
8af7309c7e
feat(lualine): pretty_path now highlights file basename when modified 2023-10-15 22:37:49 +02:00
Folke Lemaitre
1a4342abae
refactor: move cmp status lualine component to util 2023-10-14 18:02:47 +02:00