Skip to content

Latest commit

 

History

History
486 lines (371 loc) · 32.1 KB

File metadata and controls

486 lines (371 loc) · 32.1 KB

Changelog

All notable changes to this project will be documented in this file.

[1.2.23] - 2026-08-24

[1.2.22] - 2026-08-17

Other

  • chore: moved from nightly to a weekly automated release since issues and development have slowed down.

[1.2.21] - 2026-08-16

[1.2.20] - 2026-08-15

[1.2.19] - 2026-08-14

[1.2.18] - 2026-08-13

[1.2.17] - 2026-08-12

[1.2.16] - 2026-08-11

[1.2.15] - 2026-08-10

[1.2.14] - 2026-08-09

[1.2.13] - 2026-08-08

Other

  • docs: reconcile contradictory reload-prompt descriptions (#236)

[1.2.12] - 2026-08-07

Fixed

  • reload prompt dismiss appears broken due to stacked notifications (#235)
  • resolve high-severity js-yaml vulnerability (CVE-2026-59870)

[1.2.11] - 2026-08-06

[1.2.10] - 2026-08-05

Fixed

  • update outdated dev dependencies (lint-staged, tsx) (#231)
  • resolve 3 high-severity npm audit vulnerabilities

[1.2.9] - 2026-08-04

[1.2.8] - 2026-08-03

[1.2.7] - 2026-08-02

Other

  • chore(deps-dev): bump @types/node from 26.1.1 to 26.1.2 (#226)
  • chore(deps-dev): bump lint-staged from 17.1.0 to 17.2.0 (#225)
  • chore(deps-dev): bump @biomejs/biome from 2.5.5 to 2.5.6 (#224)

[1.2.6] - 2026-08-01

[1.2.5] - 2026-07-31

[1.2.4] - 2026-07-30

Fixed

  • remove vim fold markers from all source files (#218)
  • prompt to reload after regenerating theme JSON (#217)

[1.2.3] - 2026-07-29

Fixed

  • Update in-repo skill files with new official Ravenwood light palette (#214)
  • optimize light mode palette from everforest defaults to official Ravenwood light (#212)

[1.2.2] - 2026-07-28

Fixed

  • Extract base.ts 1110-line monolith into grouped sub-builders + fix hardcoded opacity (#206)
  • Architecture: union-type Configuration, deduplicate syntax rules, add test coverage (#208)
  • migrate isNewlyInstalled to globalState (#203)
  • terminal.border and terminalOverviewRuler.border use visible bg4/bg5 instead of blending bg (#201)
  • visible borders under terminal header and in sidebar on base dark theme (#198)

Other

  • ci: add npm audit step to CI workflow (#210)

[1.2.1] - 2026-07-27

Fixed

  • semantic: add semantic token rules for Stylus (#118)
  • semantic: add semantic token rules for SASS (#117)

[1.2.0] - 2026-07-26

Added

  • Realm Themes: 8 new static themes inspired by Norse cosmology, ported from the former Ravenwood Realms companion extension:
    • Ravenwood Asgard (dark) — golden/majestic, golds and royal purples
    • Ravenwood Vanaheim (dark) — verdant/fertile, deep greens and earth browns
    • Ravenwood Alfheim (light) — ethereal/luminous, pastels and silvery whites
    • Ravenwood Svartalfheim (dark) — subterranean, deep indigos and charcoal
    • Ravenwood Nidavellir (dark) — forge/industry, amber and molten gold
    • Ravenwood Jotunheim (dark) — cold/vast, ice blues and frost whites
    • Ravenwood Muspelheim (dark) — fire/primordial, deep reds and magma
    • Ravenwood Helheim (dark) — desolate/muted, muted purples and greys
    • Each realm uses the same 910 workbench color keys and full semantic token coverage as the base themes
    • Realm palettes live in src/palette/realms/ and are generated at build time via generateThemes.ts
    • getSemanticFromPalette() added to src/semantic.ts as a palette-direct variant of getSemantic()

Fixed

  • semantic: add semantic token rules for SQL (#106)
  • semantic: add semantic token rules for Diff (#108)
  • semantic: add semantic token rules for JSON (#109)
  • semantic: add semantic token rules for YAML (#110)
  • semantic: add semantic token rules for TOML (#111)
  • semantic: add semantic token rules for Pug (#112)
  • semantic: add semantic token rules for Proto (#113)
  • semantic: add semantic token rules for LaTeX (#114)
  • semantic: add semantic token rules for Markdown (#115)
  • semantic: add semantic token rules for reStructuredText (#116)

Other

  • chore: updated sponsor and buy me a coffee link
  • chore: untrack generated theme JSON files (themes/ now gitignored, regenerated by npm run compile)

[1.1.2] - 2026-07-26

Fixed

  • semantic: add semantic token rules for C (#100)
  • semantic: add semantic token rules for CSS (#101)
  • semantic: add semantic token rules for PowerShell (#102)
  • semantic: add semantic token rules for GraphQL (#103)
  • semantic: add semantic token rules for Shell/Bash (#104)
  • semantic: add semantic token rules for Fish (#105)
  • syntax: expand C TextMate scopes (currently 5 rules) (#60)
  • syntax: expand Java TextMate scopes (currently 5 rules) (#61)
  • syntax: expand Tmux TextMate scopes with yellow and blue categories (#62)
  • syntax: expand C++ TextMate scopes with yellow, green, and purple categories (#63)
  • syntax: expand SQL TextMate scopes with grey, orange, and purple categories (#64)
  • syntax: expand F# TextMate scopes with grey, red, orange, and aqua categories (#65)
  • syntax: expand Dockerfile TextMate scopes with grey, red, and blue categories (#66)
  • syntax: expand Erlang TextMate scopes with orange, aqua, and blue categories (#67)
  • syntax: expand Haskell TextMate scopes with grey, red, and purple categories (#68)
  • syntax: expand CoffeeScript TextMate scopes with yellow and blue categories (#69)
  • syntax: expand C# TextMate scopes with grey, orange, and blue categories (#70)
  • syntax: expand TypeScript TextMate scopes with red, yellow, and blue categories (#71)
  • syntax: expand Fish TextMate scopes (currently 5 rules) (#72)
  • syntax: expand Go TextMate scopes (currently 6 rules) (#73)
  • syntax: expand PureScript TextMate scopes (currently 5 rules) (#74)
  • syntax: expand HTML TextMate scopes (currently 5 rules) (#75)
  • syntax: expand LaTeX TextMate scopes (currently 5 rules) (#76)
  • syntax: expand Perl TextMate scopes (currently 6 rules) (#77)
  • syntax: expand Dart TextMate scopes (currently 6 rules) (#78)

Other

  • chore: updated sponsor and buy me a coffee link
  • chore: untrack generated theme JSON files

[1.1.1] - 2026-07-25

Fixed

  • syntax: expand Common Lisp TextMate scopes (currently 4 rules) (#59)
  • syntax: expand Elixir TextMate scopes (currently 3 rules) (#58)

[1.1.0] - 2026-07-24

Added

  • Full VS Code Workbench Color Key Coverage: Audited the theme against the official VS Code theme color reference and closed all gaps. The theme now ships 910 of 910 official core VS Code workbench color keys (100% coverage), up from ~72% in 1.0.0. Added ~160 previously missing keys across every major UI surface:
    • Command Center: commandCenter.* (9 keys — entire section previously missing)
    • Source Control Graph: scmGraph.* (13 keys — entire section previously missing)
    • Gauge: gauge.* (7 keys — entire section previously missing)
    • Markdown Alerts: markdownAlert.* (5 keys — entire section previously missing)
    • Agent Session: agentSession*, agentStatusIndicator.*, aiCustomizationManagement.* (5 keys — entire section previously missing)
    • Terminal Symbol Icons: terminalSymbolIcon.* (19 keys — entire family previously missing)
    • Bracket Pair Guides: editorBracketPairGuide.* (12 keys — active + inactive × 6)
    • Numbered Indent Guides: editorIndentGuide.background1-6 + activeBackground1-6 (12 keys)
    • Inline Edit (new schema): inlineEdit.gutterIndicator.* (10 keys), inlineEdit.original/modified*, inlineEdit.tabWillAccept* (12 keys)
    • Merge Editor: mergeEditor.* (13 keys — entire section previously missing)
    • Multi-cursor: editorMultiCursor.* (4 keys)
    • Radio buttons: radio.* (7 keys)
    • Editor borders: editor.selectionHighlightBorder, editor.wordHighlight*Border, editor.findMatch*Border, editor.rangeHighlightBorder, editor.symbolHighlightBorder, editorError/Warning/Info/Hint.border (13 keys)
    • Editor misc: editorUnicodeHighlight.*, editor.linkedEditingBackground, editor.compositionBorder, editorLineNumber.dimmedForeground, editor.foldPlaceholderForeground, editor.inactiveLineHighlightBackground, editorLightBulbAi.foreground, editorBracketMatch.foreground, editor.placeholder.foreground
    • Editor gutter: editorGutter.*SecondaryBackground (3), editorGutter.commentGlyphForeground, editorGutter.commentUnresolvedGlyphForeground, editorGutter.commentDraftGlyphForeground, editorGutter.foldingControlForeground, editorGutter.itemGlyphForeground, editorGutter.itemBackground
    • Overview ruler: editorOverviewRuler.wordHighlightTextForeground, editorOverviewRuler.bracketMatchForeground, editorOverviewRuler.inlineChatInserted/Removed, editorOverviewRuler.commentDraftForeground, editorOverviewRuler.commentForeground, editorOverviewRuler.commentUnresolvedForeground
    • Diff editor: diffEditor.unchangedRegion* (4 keys), diffEditorOverview.* (2 keys)
    • Editor comments widget: editorCommentsWidget.* (5 keys)
    • Terminal: terminal.findMatchBorder, terminal.findMatchHighlightBorder, terminal.inactiveSelectionBackground, terminal.initialHintForeground, terminalOverviewRuler.border, terminalStickyScroll.border, terminalCommandDecoration.* (3 keys)
    • Chat (official keys): chat.editedFileForeground, chat.linesAdded/RemovedForeground, chat.requestCodeBorder, chat.requestBubbleBackground, chat.requestBubbleHoverBackground, chat.checkpointSeparator, chat.thinkingShimmer, chatManagement.sashBorder
    • Minimap: minimap.selectionOccurrenceHighlight, minimap.foregroundOpacity, minimap.infoHighlight, minimap.chatEditHighlight, editorMinimap.inlineChatInserted
    • Tabs: tab.selected* (3 keys), tab.dragAndDropBorder, tab.activeBorderTop, tab.unfocusedActiveBorderTop, tab.unfocusedInactiveBackground, tab.hoverBorder, tab.unfocusedHoverBorder, tab.*ModifiedBorder (4 keys)
    • Editor group: editorGroup.focusedEmptyBorder, editorGroup.dropIntoPrompt* (3 keys), sideBySideEditor.* (2 keys)
    • Lists/trees: list.focusHighlightForeground, list.focusAndSelectionOutline, list.inactiveFocusOutline, list.dropBetweenBackground, listFilterWidget.* (4 keys), tree.inactiveIndentGuidesStroke
    • Activity bar: activityBar.dropBorder, activityWarningBadge.*, activityErrorBadge.*
    • Profiles: profileBadge.*, profiles.sashBorder
    • Side bar: sideBarActivityBarTop.border, sideBarTitle.background, sideBarTitle.border, sideBarStickyScroll.shadow
    • Panel: panel.dropBorder, panelTitle.border, panelTitleBadge.*, panelSectionHeader.border, outputView.background, outputViewStickyScroll.background
    • Status bar: statusBar.debuggingBorder
    • Banner: banner.* (3 keys — entire section previously missing)
    • Settings: settings.dropdownListBorder, settings.focusedRowBorder, settings.settingsHeaderHoverForeground
    • Notebook: notebook.editorBackground, notebook.cellEditorBackground, notebook.inactiveSelectedCellBorder, notebookEditorOverviewRuler.runningCellForeground, notebook.outputContainerBorderColor
    • Testing: testing.*.retired (6 keys), testing.coverCountBadgeForeground, testing.message.error.badge* (3 keys)
    • Welcome page: welcomePage.progress.background, welcomePage.tileBackground, welcomePage.tileBorder
    • Search editor: searchEditor.* (3 keys), search.resultsInfoForeground
    • Suggest widget: editorSuggestWidget.focusHighlightForeground, editorSuggestWidget.selectedForeground, editorSuggestWidget.selectedIconForeground, editorSuggestWidgetStatus.foreground
    • Peek view: peekViewEditor.matchHighlightBorder, peekViewEditorStickyScroll* (2 keys)
    • Debug: debugToolBar.border, debugTokenExpression.type, editor.stackFrameHighlightBackground, editor.focusedStackFrameHighlightBackground, editor.inlineValues* (2 keys)
    • Charts: charts.lines, chart.* (3 keys)
    • Quick picker: quickInputList.* (3 keys)
    • Misc: disabledForeground, widget.border, window.* (2 keys), textPreformat.* (2 keys), textSeparator.foreground, toolbar.hoverOutline, toolbar.activeBackground, editorActionList.* (4 keys), checkbox.disabled.* (2 keys), checkbox.select* (2 keys), scrollbar.background, actionBar.toggledBackground, simpleFindWidget.sashBorder, git.blame.editorDecorationForeground, extensionIcon.sponsorForeground, extensionIcon.privateForeground, mcpIcon.starForeground, inlineChat.foreground, menubar.selectionForeground, extensionButton.border, editorMarkerNavigation*.headerBackground (3 keys), editorStickyScrollGutter.background, editorGhostText.border, editorHoverWidget.foreground

Fixed

  • Renamed 5 stale keys to current VS Code names:
    • editorPlaceholder.foregroundeditor.placeholder.foreground
    • panel.stickyScroll.*panelStickyScroll.* (3 keys)
    • diffEditorOverviewRuler.*diffEditorOverview.* (2 keys)
    • settings.settingsHeaderHoverBackgroundsettings.settingsHeaderHoverForeground
    • editor.fold.background (duplicate dead key at line 164) — removed
  • Fixed misspelled key: notebook.outputContainerBordernotebook.outputContainerBorderColor
  • Corrected 1.0.0 changelog: The 1.0.0 entry claimed "complete VS Code theming coverage" and listed deprecated chat.* keys (chat.border, chat.messageBackground, chat.input*, chat.codeBlockBackground) as additions. These were not official VS Code keys. The claim was premature — actual coverage at 1.0.0 was ~72%. This release achieves the real 100%.
  • syntax: expand Makefile TextMate scopes (currently 3 rules) (#52)
  • syntax: expand TOML TextMate scopes (currently 4 rules) (#53)
  • syntax: expand Git/INI TextMate scopes (currently 4 rules) (#54)
  • syntax: expand YAML TextMate scopes (currently 3 rules) (#55)
  • syntax: expand Pug TextMate scopes (currently 4 rules) (#56)
  • syntax: expand Protobuf TextMate scopes (currently 3 rules) (#57)
  • syntax: expand JSX TextMate scopes (#51)
  • syntax: expand Shell/Bash TextMate scopes (#41)
  • syntax: expand JavaScript TextMate scopes (#40)
  • syntax: expand R TextMate scopes (#42)
  • semantic: add semantic token rules for JSX (#119)
  • semantic: add semantic token rules for Html/Xml (#120)
  • semantic: add semantic token rules for Dart (#38)
  • semantic: add semantic token rules for Swift (#27)
  • semantic: add semantic token rules for Scala (#24)
  • semantic: add semantic token rules for Kotlin (#28)
  • semantic: add semantic token rules for OCaml (#37)
  • semantic: add semantic token rules for PureScript (#34)
  • semantic: add semantic token rules for CoffeeScript (#35)
  • semantic: add semantic token rules for Haskell (#36)
  • semantic: add semantic token rules for Perl (#39)

Removed

  • ~64 deprecated/nonexistent VS Code core keys that were shipped in 1.0.0 but are not in the official VS Code theme color reference:
    • 10 deprecated chat.* keys: chat.background, chat.foreground, chat.border, chat.messageBackground, chat.messageForeground, chat.inputBackground, chat.inputForeground, chat.inputBorder, chat.inputFocusBorder, chat.codeBlockBackground, chat.requestForeground
    • 16 old-schema inlineEdit.* keys: inlineEdit.background, inlineEdit.border, inlineEdit.insertedBackground, inlineEdit.removedBackground, inlineEdit.insertedTextBackground, inlineEdit.removedTextBackground, inlineEdit.insertedTextColor, inlineEdit.removedTextColor, inlineEdit.focusedBackground, inlineEdit.focusedBorder, inlineEdit.indicator.*, inlineEdit.label.*
    • 12 commentThread.* / extra commentsView.* keys (not in official reference)
    • 4 deprecated button.* keys: button.hoverForeground, button.focusBorder, button.focusBackground, button.focusForeground
    • 4 deprecated activityBarTop.* keys: activityBarTop.border, activityBarTop.dropBackground, activityBarTop.activeFocusBorder
    • 2 deprecated breadcrumb.* keys: breadcrumb.focusBackground, breadcrumb.activeSelectionBackground
    • interactive.background, interactive.requestBackground, extensionBadge.background, extensionBadge.foreground, welcomePage.buttonBackground, welcomePage.buttonHoverBackground, welcomePage.selectionBackground, walkthrough.stepBackground, imagePreview.border, textCodeBlock.border, activityBar.dropBackground, notebook.focusedRowBorder, terminalCommandGuide.activeForeground, testing.coveredBranchBackground, testing.message.error.decorationForeground

Changed

  • Version: 1.0.0 → 1.1.0
  • Workbench color key count: ~485 → 971 (net: +160 official keys added, ~64 deprecated keys removed)
  • Official VS Code key coverage: ~72% → 100% (910/910 core keys)
  • Structural test threshold: Minimum workbench key count raised from 600 to 900
  • Test suite: Updated test/structural.test.ts to verify corrected key names and removed deprecated key references

[1.0.0] - 2026-07-24

Added

  • Expanded VS Code Theming Coverage: Added ~240 workbench color keys covering major UI surfaces added in VS Code 1.95–1.125. (Note: this release did not achieve full coverage — ~72% of official keys were present. Full 100% coverage was achieved in 1.1.0.)

    • Chat / Agent / AI: chatParticipant.*, chatStatus.*, chatSession.*, chatEdit.*, agent.*, agentDashboard.*, simpleChat.*, terminalChat.*, editorChat.*
    • Editor: editorStickyScroll.*, editor.foldBackground, editor.selectionForeground, editorCursor.background, editorPane.background, editorOverviewRuler.background
    • Terminal: terminal.background, terminal.border, terminal.selection*, terminal.findMatch*, terminalCommandGuide.*, terminalStickyScroll.*, terminal.hoverHighlightBackground
    • Minimap: minimap.background, minimapSlider.*
    • Breadcrumb: breadcrumb.background, breadcrumbPicker.background
    • Activity Bar Top: activityBarTop.* (keys for the new top bar)
    • Inline Edit: inlineEdit.* (old schema — replaced with official schema in 1.1.0)
    • Testing Coverage: testing.cover* (9 keys for code coverage colors)
    • Diff Editor: diffEditor.move.*, diffEditor.inserted/removedLineBackground, diffEditorGutter.*, diffEditorOverviewRuler.* (renamed to diffEditorOverview.* in 1.1.0)
    • Multi-Diff Editor: multiDiffEditor.* (3 keys)
    • Comments: commentsView.* (official keys), commentThread.* (removed in 1.1.0 — not in official reference)
    • Buttons / Inputs: button.border, inputOption.active*, inputOption.hoverBackground
    • Lists / Trees: list.filterMatch*, list.deemphasizedForeground, tree.table*
    • Status Bar: statusBar.focusBorder, statusBarItem.*Hover*, statusBarItem.offline*
    • And more: multiDiffEditor.*, merge.common*, gitDecoration.renamedResourceForeground, walkthrough.*, welcomePage.*, menu.*, dropdown.listBackground, panelSection.*, panel.stickyScroll.* (renamed to panelStickyScroll.* in 1.1.0), sideBar.*, debugView.*, settings.*, extensionButton.*, notification*.border, editorWidget.resizeBorder, notebook.*, notebookScrollbarSlider.*, editorHoverWidget.highlightForeground, editorHoverWidget.statusBarBackground
  • WCAG Contrast Test Suite: Added test/contrast.test.ts — 168 tests across 7 categories that verify every palette variant meets accessibility thresholds:

    • Primary text contrast (AA minimum, all variants achieve AAA)
    • Grey text contrast (AA-large minimum)
    • Badge contrast on background and foreground
    • Dim variant integrity (darker and desaturated vs parent)
    • Foreground tint (not pure white/black)
    • Background tint (not neutral grey)
    • Background gradient smoothness
  • Workbench Key Coverage Tests: Added 5 tests to test/structural.test.ts verifying dark/light key parity, minimum key count (≥600), and presence of all critical namespaces.

Changed

  • Version: 0.3.5 → 1.0.0 — marking the theme's first stable release
  • VS Code Engine: ^1.95.0^1.97.0 — ensuring compatibility with all modern theming keys
  • @types/vscode: 1.95.0^1.97.0 — enabling type-safe access to newer color keys
  • Test Suite: Grew from 81 to 254 tests across 19 suites, covering structural integrity, palette accuracy, WCAG contrast, scope safety, syntax sync, and build combinations

Fixed

  • expand Stylus TextMate scopes (currently 2 rules) (#47)
  • expand PHP TextMate scopes (#43)
  • syntax: expand Clojure TextMate scopes (currently 3 rules) (#44)
  • syntax: expand Kotlin TextMate scopes (currently 4 rules) (#46) (#127)
  • syntax: expand PowerShell TextMate scopes (currently 4 rules) (#45) (#126)
  • syntax: consolidate duplicate GraphQL sections and fix fold marker style inconsistency (#107) (#125)
  • syntax: expand VimL TextMate scopes (currently 4 rules) (#48) (#124)
  • correct CMake color mappings per review feedback (#50) (#123)
  • syntax: expand CMake TextMate scopes (currently 3 rules) (#50) (#122)
  • syntax: expand JSON TextMate scopes (currently 3 rules) (#49) (#121)
  • add missing Common Lisp fold marker in semantic.ts
  • semantic: add semantic token rules for Elixir (#22)
  • semantic: add semantic token rules for Erlang (#19) (#98)
  • semantic: add semantic token rules for Ruby (#20) (#97)
  • semantic: add semantic token rules for Common Lisp (#21) (#96)
  • semantic: add semantic token rules for R (#23)
  • semantic: add semantic token rules for Lua (#33)
  • semantic: add semantic token rules for Groovy (#32)
  • semantic: add semantic token rules for Clojure (#30)
  • semantic: add semantic token rules for PHP (#29)
  • semantic: add semantic token rules for Julia (#25)

Other

  • removed agent skills from being packaged in the vsix build

[0.3.4] - 2026-07-23

Fixed

  • semantic: add semantic token rules for F# (#26) (#87)
  • use gh release create --generate-notes instead of custom script
  • create GitHub Releases on tag push (was publishing to marketplaces only)
  • syntax: expand GraphQL TextMate scopes (currently 6 rules) (#79) (#86)
  • syntax: expand SASS/SCSS TextMate scopes (currently 5 rules) (#80) (#85)

Other

  • test: add 81-test suite (structural, palette, sync, scope-safety, build-combos) + wire into CI
  • docs: pass — remove colorblind statement, fix outdated toolchain refs, update language coverage

[0.3.3] - 2026-07-22

Added

  • add .agents/skills/ravenwood for cross-agent context + dependency audit in nightly release

Other

  • docs: reference .agents/skills/ravenwood in AGENTS.md

[0.3.2] - 2026-07-22

Fixed

  • semantic: add semantic token rules for Elm (#31) (#81)

Other

  • ci: remove sensitive comment from nightly release workflow
  • ci: use RELEASE_TOKEN (PAT) for nightly release merge and push
  • ci: fix nightly release — use PR merge with admin bypass for branch protection
  • ci: add nightly release workflow — auto version bump, changelog, tag

[0.3.1] - 2026-07-21

Added

  • Semantic Token Expansion: Added LSP semantic token mappings for Java (11 tokens: class, interface, enum, enumMember, namespace, typeParameter, function, method, parameter, variable, property), C# (11 tokens: same set), and C++ (12 tokens: class, struct, enum, enumMember, namespace, typeParameter, function, method, parameter, variable, field). Expanded Python from 3 to 10 tokens (added function, method, parameter, variable, decorator, enumMember, namespace). Expanded Go from 8 to 11 tokens (added field, constant, typeParameter).
  • Syntax Rule Expansion: Expanded TextMate rules for 7 previously thin-coverage languages: CoffeeScript (1→6 rules), Perl (1→6), Elm (2→8), Lua (2→7), OCaml (3→8), Julia (4→7), and Tmux (1→6). Both default.ts and italic.ts updated in sync.
  • Dart Sample: Added samples/dart.dart covering classes, enums, generics, annotations, and string interpolation — the only language with syntax rules but no sample file.

[0.3.0] - 2026-07-21

Added

  • Documentation Pass: Added CONFIGURATION.md (full reference for all 12 settings) and ARCHITECTURE.md (module layout, runtime regeneration flow, build-time hook, palette/workbench/syntax walkthrough). Refreshed README.md with the 4 previously-missing config options (darkSelection, lightSelection, diagnosticTextBackgroundOpacity, highContrast), a requirements note, and a build section. Added JSDoc to every exported function, class, method, and interface in src/.
  • Rust Syntax Expansion: Expanded Rust TextMate rules from 5 to 9 rules (added functions, macros, lifetimes, types/struct/enum/trait names, Self, generic type parameters, constants, control flow keywords, operators). Expanded Rust LSP semantic tokens from 3 to 15 tokens (added struct, enum, trait, typeAlias, function, method, parameter, variable, field, constant, lifetime, module), scoped to :rust to match the Go/TS/Python pattern.
  • Python Syntax Expansion: Added f-string interpolation, magic/dunder methods, decorator names, type hints, explicit control-flow keywords, and operators. Grew from 4 to 8 rules.
  • Swift Syntax Expansion: Added explicit keywords, storage types/operators, type names, functions, class/constant coverage. Grew from 2 to 7 rules.
  • SQL Syntax Expansion: Added explicit keywords (CREATE/DROP/ALTER/control), all SQL functions (not just aggregates), table/column names, type names, and variables. Grew from 2 to 5 rules.
  • Go Generics: Added entity.name.type.parameter.go and entity.name.type.generic.go to the Go type rule so post-Go-1.18 generic type parameters render consistently with named types.

Changed

  • Toolchain Modernization: Upgraded to TypeScript 7.0.2 (native compiler) and bumped engines.vscode to ^1.95.0. Replaced the eslint + typescript-eslint + prettier stack with Biome 2.5.x (Rust-based, single tool for lint + format) because typescript-eslint v8 does not support TS 7 and TS 7 ships no programmatic API. Husky upgraded to 9.1.7 (the prepare script now runs husky instead of husky install). tsconfig.json now uses target/lib es2022, strict: true, skipLibCheck: true, and an explicit types: ["node"].
  • Workbench Refactor: Extracted the ~95% shared token map from material.ts/flat.ts/highContrast.ts into a new src/workbench/base.ts. Each style file is now a thin wrapper that calls getBaseWorkbenchTokens() and spreads its specific overrides. The highContrast config flag overlay is shared via applyHighContrastFlag().
  • Build-Time Deduplication: Removed the duplicated Utils class from src/hook/generateThemes.ts. Both runtime and build-time now share a single pure getThemeData() helper in the new src/themeData.ts.
  • Variant Validation: Variant-dispatching functions (getPalette, getWorkbench, getSelectionColors, getCursorColor, getWorkbenchVariantColors) now throw on unknown variants instead of silently falling back to light.
  • Palette Type Safety: Each palette export file is annotated satisfies Partial<Palette> so misspelled keys fail at compile time.
  • Explicit Return Types: All exported functions and methods across src/ now have explicit return-type annotations.

Fixed

  • Invalid Theme Colors: Removed stray } characters inside template literals in flat.ts (editorMarkerNavigation{Error,Warning,Info}.background) and highContrast.ts (same three plus chat.requestBorder). These produced invalid hex values like #da636280} that VS Code would reject.
  • Unhandled Async: index-client.ts now awaits theme regeneration and surfaces errors via window.showErrorMessage. The onDidChangeConfiguration subscription is pushed into context.subscriptions (was leaked previously). activate() now accepts an ExtensionContext.
  • isNewlyInstalled Race: Utils.isNewlyInstalled() is now async and awaits the flag-file write before returning, preventing repeated "newly installed" triggers.
  • italicComments Default: getSyntax() now defaults italicComments ?? true, matching the documented default when the config is unset.
  • tokenColors Typing: ThemeData.tokenColors is now typed SyntaxRule[] instead of unknown[].
  • Dead Syntax Rule: Removed the "TypeScript blue" rule in default.ts/italic.ts whose entity.name.type.module.ts scope shadowed the earlier "TypeScript white" rule. Also removed the dead "TSX white" rule shadowed by "TSX blue" for the same .tsx scope.
  • Misnamed Syntax Rules: "Scala grey"/"Scala red" (on .groovy scopes) renamed to "Groovy grey"/"Groovy red". "PHP blue" (on .cpp scopes) renamed to "C++ blue" and relocated from the PHP section to the C++ section.
  • Overbroad Scala Scope: The "Scala yellow" rule used the generic entity.name.class scope (no .scala suffix), which overrode class colors for ALL languages. Fixed to entity.name.class.scala.
  • Italic-Mode Go Regression: Restored the missing Go orange/Go yellow/Go green rules in italic.ts. Previously Go type names rendered blue in italic mode but yellow in default mode due to the missing Go yellow rule.
  • Modeline Typo: Fixed fmr={{{{,}}}}:fmr={{{,}}}: in highContrast.ts.

[0.2.2] - 2026-02-26

Added

  • Go Semantic Tokens: Added semantic token support for Go including namespace, type, struct, interface, function, method, variable, and parameter tokens.

Changed

  • Background Colors: Fixed inconsistent bg0/bg1/bg values in dark/medium palette - all three were identical (#1a1f1c) and are now distinct (#141814, #1a1f1c, #222822).
  • Theme Generation: Fixed async/await bug in generateThemes.ts where Promise.all was not being awaited, causing potential race conditions.
  • Type Safety: Added ThemeData and SyntaxRule interfaces for improved TypeScript type safety.

Fixed

  • Code Quality: Standardized file header format across all TypeScript source files.

[0.2.0] - 2026-02-18

Changed

  • Major Theme Refresh: Upgraded to 0.2.0 to mark significant visual improvements and codebase refactoring.
  • Go Syntax Highlighting: Added comprehensive syntax support for the Go programming language, including specific colors for keywords (go, chan, map), types, functions, and packages to match the Ravenwood palette.
  • Light Mode Consistency: Unified the panel and editor background colors in light mode to remove distracting contrast blocks.
  • Workbench Architecture: Modularized workbench logic for better maintainability.

Fixed

  • Critical Visual Bug: Resolved a syntax error in scrollbarSlider.background that caused the scrollbar to appear red in dark mode.
  • Build Process: Resolved build pipeline issues and cleaned up version history.

[0.1.3] - 2026-02-18

Added

  • Modular workbench architecture: centralized shared UI logic (selection, cursor, and diagnostic colors) in src/workbench/common.ts for better maintainability.

Changed

  • Refined the "Ravenwood Emerald" palette:
    • Deepened dark backgrounds for a more immersive forest feel.
    • Saturated dark mode foregrounds (Green, Yellow, Aqua, Blue, Purple) for better "pop".
    • Deepened light mode colors to improve cohesion and readability.
  • Standardized workbench UI:
    • Updated Checkbox, Dropdown, and Widget backgrounds to use consistent palette steps.
    • Improved input validation contrast for the light variant.
  • Removed the reload prompt: The extension now updates the theme dynamically and silently when configuration changes are detected, providing a more seamless experience.
  • Updated project description and metadata.

Fixed

  • Fixed critical syntax errors in workbench template strings that resulted in invalid color values.
  • Restored and corrected async theme generation logic in utility classes.

[0.1.2] - 2026-02-17

Added

  • Added custom logo to the extension
  • Added icon field to package.json for marketplace display
  • Added files array to properly include logo in package

[0.1.1] - 2026-02-17

Changed

  • Optimized light theme colors for better visibility:
    • Darkened foreground colors by ~30% for improved readability
    • Darkened grey UI colors by ~25% for better contrast
    • Applied changes across all light theme variants (soft, medium, hard)

Fixed

  • Updated copyright email addresses from i@sainnhe.dev to support@raythurman.dev
  • Fixed workflow artifact names from everforest to ravenwood

[0.1.0] - 2026-02-16

Added

  • Initial release of Ravenwood.
  • Custom "Ravenwood Emerald" color palette.
  • Deepened dark background contrast.
  • Forked and rebranded from Everforest.