## Summary **Phase 2:** поддержка `tokenColors` из VS Code theme — TextMate scope → стили редактора / highlighter. ## Контекст Массив правил в manifest: ```json { "scope": "variable.other.property", "settings": { "foreground": "#BD93F9", "fontStyle": "italic" } } ``` Разрешение: longest prefix match по цепочке `a.b.c` → `a.b` → `a`. ## Реализация 1. Парсинг `tokenColors` в модели (#39) 2. `TokenStyleResolver` с кэшем `HashMap<scope, TextStyle>` 3. Мост в выбранный highlighter (#48, #49) — likely `syntax_highlight` / `HighlighterTheme` 4. **Isolate** для токенизации больших буферов (порог ~8KB, настраиваемо) ## Acceptance criteria - [ ] Dracula/One Dark: различимые keyword, string, comment в SQL fixture - [ ] UI isolate: 500-line SQL не блокирует ввод > 100ms p95 - [ ] Fallback: `editor.foreground` из workbench colors ## Зависимости - #39, #47, #49 - Epic: #37 ## Оценка ~4–6 дней
Summary
Phase 2: поддержка
tokenColorsиз VS Code theme — TextMate scope → стили редактора / highlighter.Контекст
Массив правил в manifest:
{ "scope": "variable.other.property", "settings": { "foreground": "#BD93F9", "fontStyle": "italic" } }Разрешение: longest prefix match по цепочке
a.b.c→a.b→a.Реализация
tokenColorsв модели (Theme: парсер VS Code theme JSON/JSONC #39)TokenStyleResolverс кэшемHashMap<scope, TextStyle>syntax_highlight/HighlighterThemeAcceptance criteria
editor.foregroundиз workbench colorsЗависимости
Оценка
~4–6 дней