scheme: add --json flag to list-presets, --accent flag, drop :accent from preset spec
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 13s
Python / lint-format (pull_request) Successful in 25s
Python / test (pull_request) Successful in 44s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m48s

- list-presets --json outputs structured JSON with variants,
  modes, accents, and default_accent for accent-aware schemes
- --accent flag replaces :accent shorthand in preset string
- Validate --accent against variant's available accents
- resolve_preset returns tuple[str, str] (scheme + variant only)
- Update tests for new signature
This commit is contained in:
2026-05-23 17:42:58 +02:00
parent 2934d863ca
commit 21ed178bbc
3 changed files with 51 additions and 26 deletions
+5 -4
View File
@@ -154,13 +154,14 @@ class TestListSchemes:
class TestResolvePreset:
def test_two_parts(self):
assert sp.resolve_preset("gruvbox:medium") == ("gruvbox", "medium", None)
assert sp.resolve_preset("gruvbox:medium") == ("gruvbox", "medium")
def test_three_parts(self):
assert sp.resolve_preset("catppuccin:mocha:mauve") == ("catppuccin", "mocha", "mauve")
with pytest.raises(ValueError, match="Invalid preset spec"):
sp.resolve_preset("catppuccin:mocha:mauve")
def test_one_part(self):
assert sp.resolve_preset("default") == ("default", "default", None)
assert sp.resolve_preset("default") == ("default", "default")
def test_edge_spaces(self):
assert sp.resolve_preset(" catppuccin : mocha : mauve ") == (" catppuccin ", " mocha ", " mauve ")
assert sp.resolve_preset(" catppuccin : mocha ") == (" catppuccin ", " mocha ")