feat!: use nerd-font icons for git status signs by default, closes #23

This commit is contained in:
sxyazi
2024-09-16 20:36:35 +08:00
parent 5e65389d13
commit 9fc8595f31
2 changed files with 31 additions and 29 deletions

View File

@@ -42,34 +42,36 @@ run = "git"
You can customize the [Style](https://yazi-rs.github.io/docs/plugins/layout#style) of the status sign with: You can customize the [Style](https://yazi-rs.github.io/docs/plugins/layout#style) of the status sign with:
- `THEME.git_modified` - `THEME.git.modified`
- `THEME.git_added` - `THEME.git.added`
- `THEME.git_untracked` - `THEME.git.untracked`
- `THEME.git_ignored` - `THEME.git.ignored`
- `THEME.git_deleted` - `THEME.git.deleted`
- `THEME.git_updated` - `THEME.git.updated`
For example: For example:
```lua ```lua
-- ~/.config/yazi/init.lua -- ~/.config/yazi/init.lua
THEME.git_modified = ui.Style():fg("blue") THEME.git = THEME.git or {}
THEME.git_deleted = ui.Style():fg("red"):bold() THEME.git.modified = ui.Style():fg("blue")
THEME.git.deleted = ui.Style():fg("red"):bold()
``` ```
You can also customize the text of the status sign with: You can also customize the text of the status sign with:
- `THEME.git_modified_sign` - `THEME.git.modified_sign`
- `THEME.git_added_sign` - `THEME.git.added_sign`
- `THEME.git_untracked_sign` - `THEME.git.untracked_sign`
- `THEME.git_ignored_sign` - `THEME.git.ignored_sign`
- `THEME.git_deleted_sign` - `THEME.git.deleted_sign`
- `THEME.git_updated_sign` - `THEME.git.updated_sign`
For example: For example:
```lua ```lua
-- ~/.config/yazi/init.lua -- ~/.config/yazi/init.lua
THEME.git_modified_sign = "M" THEME.git = THEME.git or {}
THEME.git_deleted_sign = "D" THEME.git.modified_sign = "M"
THEME.git.deleted_sign = "D"
``` ```

View File

@@ -108,22 +108,22 @@ local function setup(st, opts)
opts.order = opts.order or 500 opts.order = opts.order or 500
-- Chosen by ChatGPT fairly, PRs are welcome to adjust them -- Chosen by ChatGPT fairly, PRs are welcome to adjust them
local t = THEME.git or {}
local styles = { local styles = {
[6] = THEME.git_modified and ui.Style(THEME.git_modified) or ui.Style():fg("#ffa500"), [6] = t.modified and ui.Style(t.modified) or ui.Style():fg("#ffa500"),
[5] = THEME.git_added and ui.Style(THEME.git_added) or ui.Style():fg("#32cd32"), [5] = t.added and ui.Style(t.added) or ui.Style():fg("#32cd32"),
[4] = THEME.git_untracked and ui.Style(THEME.git_untracked) or ui.Style():fg("#a9a9a9"), [4] = t.untracked and ui.Style(t.untracked) or ui.Style():fg("#a9a9a9"),
[3] = THEME.git_ignored and ui.Style(THEME.git_ignored) or ui.Style():fg("#696969"), [3] = t.ignored and ui.Style(t.ignored) or ui.Style():fg("#696969"),
[2] = THEME.git_deleted and ui.Style(THEME.git_deleted) or ui.Style():fg("#ff4500"), [2] = t.deleted and ui.Style(t.deleted) or ui.Style():fg("#ff4500"),
[1] = THEME.git_updated and ui.Style(THEME.git_updated) or ui.Style():fg("#1e90ff"), [1] = t.updated and ui.Style(t.updated) or ui.Style():fg("#1e90ff"),
} }
-- TODO: Use nerd-font icons as default matching Yazi's default behavior
local signs = { local signs = {
[6] = THEME.git_modified_sign and THEME.git_modified_sign or "*", [6] = t.modified_sign and t.modified_sign or "",
[5] = THEME.git_added_sign and THEME.git_added_sign or "+", [5] = t.added_sign and t.added_sign or "",
[4] = THEME.git_untracked_sign and THEME.git_untracked_sign or "?", [4] = t.untracked_sign and t.untracked_sign or "",
[3] = THEME.git_ignored_sign and THEME.git_ignored_sign or "!", [3] = t.ignored_sign and t.ignored_sign or "",
[2] = THEME.git_deleted_sign and THEME.git_deleted_sign or "-", [2] = t.deleted_sign and t.deleted_sign or "",
[1] = THEME.git_updated_sign and THEME.git_updated_sign or "U", [1] = t.updated_sign and t.updated_sign or "U",
} }
Linemode:children_add(function(self) Linemode:children_add(function(self)