Skip to content

Commit c5584c0

Browse files
committed
chore: update ports and readme
1 parent 38077b6 commit c5584c0

10 files changed

Lines changed: 907 additions & 166 deletions

File tree

README.md

Lines changed: 99 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# claret.nvim
22

3-
Warm Neovim colorscheme with burgundy, gold, sage palette inspired by french cuisine.
3+
Warm Neovim colorscheme with burgundy, gold, and sage inspired by french cuisine.
44

55
## Variants
66

77
- `claret` — dark
8-
8+
99
![claret dark screenshot](./screenshot.png)
1010

1111
- `claret-light` — light
@@ -32,45 +32,114 @@ Warm Neovim colorscheme with burgundy, gold, sage palette inspired by french cui
3232

3333
```lua
3434
require('claret').setup({
35-
variant = 'auto',
36-
transparent = true,
35+
variant = 'auto', -- 'auto' | 'dark' | 'light'
36+
transparent = false,
3737
italics = {
3838
comments = true,
3939
keywords = true,
4040
parameters = true,
4141
decorators = true,
4242
},
43-
groups = {},
43+
groups = {}, -- raw group overrides, merged last
4444
overrides = function(colors)
45+
-- return a table of palette overrides, e.g. { rose_1 = '#FF00FF' }
4546
return {}
4647
end,
4748
})
4849
```
4950

5051
## Supported integrations
5152

52-
- blink.cmp
53-
- snacks.nvim
54-
- noice.nvim
55-
- which-key.nvim
56-
- flash.nvim
57-
- gitsigns.nvim
58-
- todo-comments.nvim
59-
- indent-blankline.nvim
60-
- rainbow-delimiters.nvim
61-
- aerial.nvim
62-
- heirline.nvim
63-
- lualine.nvim
64-
- tiny-inline-diagnostic.nvim
65-
- toggleterm.nvim
66-
- grapple.nvim
67-
- codediff.nvim
68-
- nvim-coverage
69-
- nvim-highlight-colors
70-
- nvim-dap
71-
- nvim-dap-ui
72-
- sidekick.nvim
73-
- copilot.lua
74-
- markdown.nvim
75-
- chezmoi.nvim
76-
- nvim-window-picker
53+
**Completion & UI**
54+
- [blink.cmp](https://github.com/Saghen/blink.cmp)
55+
- [noice.nvim](https://github.com/folke/noice.nvim)
56+
- [snacks.nvim](https://github.com/folke/snacks.nvim)
57+
- [which-key.nvim](https://github.com/folke/which-key.nvim)
58+
- [flash.nvim](https://github.com/folke/flash.nvim)
59+
- [nvim-window-picker](https://github.com/s1n7ax/nvim-window-picker)
60+
61+
**Statusline & structure**
62+
- [heirline.nvim](https://github.com/rebelot/heirline.nvim)
63+
- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim)
64+
- [aerial.nvim](https://github.com/stevearc/aerial.nvim)
65+
- [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim)
66+
- [rainbow-delimiters.nvim](https://github.com/HiPhish/rainbow-delimiters.nvim)
67+
- [nvim-highlight-colors](https://github.com/brenoprata10/nvim-highlight-colors)
68+
69+
**Git & diffs**
70+
- [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)
71+
- [codediff.nvim](https://github.com/wintermute-cell/codediff.nvim)
72+
73+
**Notes, tasks, terminal**
74+
- [todo-comments.nvim](https://github.com/folke/todo-comments.nvim)
75+
- [grapple.nvim](https://github.com/cbochs/grapple.nvim)
76+
- [toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim)
77+
- [markdown.nvim](https://github.com/MeanderingProgrammer/render-markdown.nvim)
78+
- [chezmoi.nvim](https://github.com/xvzc/chezmoi.nvim)
79+
80+
**Diagnostics, test & debug**
81+
- [tiny-inline-diagnostic.nvim](https://github.com/rachartier/tiny-inline-diagnostic.nvim)
82+
- [nvim-dap](https://github.com/mfussenegger/nvim-dap)
83+
- [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui)
84+
- [nvim-coverage](https://github.com/andythigpen/nvim-coverage)
85+
86+
**AI**
87+
- [copilot.lua](https://github.com/zbirenbaum/copilot.lua)
88+
- [sidekick.nvim](https://github.com/folke/sidekick.nvim)
89+
90+
## Ports
91+
92+
Matching themes for other tools live under [`ports/`](./ports). They are auto-generated from `lua/claret/palette.lua` — don't edit them directly.
93+
94+
| Tool | File | Install |
95+
| --- | --- | --- |
96+
| [bat](https://github.com/sharkdp/bat) | [`ports/bat/ClaretDark.tmTheme`](./ports/bat/ClaretDark.tmTheme) | Copy into `"$(bat --config-dir)/themes/"`, then `bat cache --build`. Use with `--theme=ClaretDark` or set `--theme="ClaretDark"` in `bat.conf`. |
97+
| [ghostty](https://ghostty.org) | [`ports/ghostty/claret-dark.conf`](./ports/ghostty/claret-dark.conf) | Copy to `~/.config/ghostty/themes/claret-dark`, then add `theme = claret-dark` to `~/.config/ghostty/config`. |
98+
| [opencode](https://opencode.ai) | [`ports/opencode/claret.json`](./ports/opencode/claret.json) | Copy to `~/.config/opencode/themes/claret.json`, then set `"theme": "claret"` in `opencode.json`. |
99+
| [yazi](https://yazi-rs.github.io) | [`ports/yazi/claret-dark.toml`](./ports/yazi/claret-dark.toml) | Copy to `~/.config/yazi/theme.toml` (or merge into your existing `theme.toml`). |
100+
| [zellij](https://zellij.dev) | [`ports/zellij/claret-dark.kdl`](./ports/zellij/claret-dark.kdl) | Copy to `~/.config/zellij/themes/claret-dark.kdl`, then set `theme "claret-dark"` in your zellij config. |
101+
102+
On macOS, replace `~/.config` with `$XDG_CONFIG_HOME` if you set it, or use the tool's documented config directory.
103+
104+
## Development
105+
106+
```sh
107+
# Run the full test suite (palette, load, highlights, plugins, ports).
108+
./scripts/test.sh
109+
110+
# Regenerate port files after changing the palette or generator.
111+
nvim --headless -u tests/minimal_init.lua \
112+
-c "lua dofile('scripts/generate_ports.lua')" -c "qa!"
113+
```
114+
115+
Git hooks (optional but recommended) — managed by [lefthook](https://github.com/evilmartians/lefthook) via [mise](https://mise.jdx.dev):
116+
117+
```sh
118+
mise run hooks-install
119+
```
120+
121+
The pre-commit hook regenerates port files automatically when `lua/claret/palette.lua`, `scripts/generate_ports.lua`, or anything under `ports/` changes, then re-stages them.
122+
123+
### Project layout
124+
125+
- `lua/claret/palette.lua` — locked palette values (dark + light)
126+
- `lua/claret/config.lua` — defaults and user-config merge
127+
- `lua/claret/theme.lua` — assembles every highlight group
128+
- `lua/claret/groups/*.lua` — core groups (editor, syntax, diagnostics, …)
129+
- `lua/claret/groups/plugins/*.lua` — per-plugin integrations
130+
- `colors/*.lua` — colorscheme entrypoints
131+
- `tests/*.lua` — headless smoke checks
132+
- `scripts/generate_ports.lua` — generator for every file in `ports/`
133+
134+
### Adding a plugin integration
135+
136+
1. Add a new file under `lua/claret/groups/plugins/` that returns `{ get = function(colors, opts) ... end }`.
137+
2. Register it in `lua/claret/theme.lua`.
138+
3. Reuse semantic palette roles (`rose_*` for keywords, `gold_*` for functions, `sage_*` for strings, `type_1` for types, `terra_*` for errors) — don't invent new hues.
139+
4. Add an assertion to `tests/plugins_spec.lua` covering one representative group.
140+
141+
### Changing the palette
142+
143+
1. Edit `lua/claret/palette.lua`.
144+
2. Regenerate ports (or let the pre-commit hook do it).
145+
3. Run `./scripts/test.sh` and update any hardcoded expectations in `tests/`.

0 commit comments

Comments
 (0)