## Summary Каскад переопределений цветов как в VS Code: **default → imported theme → user `workbench.colorCustomizations`**. ## Поведение (как VS Code) ``` effectiveColors = deepMerge( defaultTheme.colors, importedTheme.colors, userOverrides, ) ``` Пользователь может переопределить любой поддержанный ключ (#44), например `sideBar.background` → `#ff0000`, поверх импортированной Dracula. ## API (черновик) ```dart ThemeController.setWorkbenchColor(String vscodeKey, Color? value); ThemeController.clearUserOverrides(); Map<String, Color> get effectiveWorkbenchColors; ``` ## Acceptance criteria - [ ] Unit-тест: default + partial import + override = expected result - [ ] `clearUserOverrides` не удаляет imported theme - [ ] Иммутабельный merge — без мутации shared `Map` - [ ] Overrides персистятся в AppSettings (#40) ## Зависимости - #40 ThemeController - #44 VS Code colors mapping - Epic: #37 ## Оценка ~1–2 дня
Summary
Каскад переопределений цветов как в VS Code: default → imported theme → user
workbench.colorCustomizations.Поведение (как VS Code)
Пользователь может переопределить любой поддержанный ключ (#44), например
sideBar.background→#ff0000, поверх импортированной Dracula.API (черновик)
Acceptance criteria
clearUserOverridesне удаляет imported themeMapЗависимости
Оценка
~1–2 дня