Skip to content

Vendor srcery-textmate tokenColors and align workbench palette#44

Draft
MindTooth wants to merge 6 commits into
masterfrom
claude/srcery-vscode-color-sync-424fb7
Draft

Vendor srcery-textmate tokenColors and align workbench palette#44
MindTooth wants to merge 6 commits into
masterfrom
claude/srcery-vscode-color-sync-424fb7

Conversation

@MindTooth

Copy link
Copy Markdown
Member

Summary

  • Builds a scripts/sync-tmtheme.mjs vendoring pipeline (fetches srcery.tmTheme from srcery-colors/srcery-textmate, defaults to master, accepts a ref/SHA argument for a pinned re-fetch) and replaces the hand-maintained inline tokenColors array in themes/Srcery-color-theme.json with a "./srcery.tmTheme" path reference
  • Vendors current upstream master, which includes PR Bump lodash from 4.17.15 to 4.17.19 #3 (palette sync with srcery-vim) plus a same-day follow-up fix that makes JSON object keys actually render bright_blue
  • Updates .vscodeignore (excludes scripts/**, pnpm-lock.yaml, pnpm-workspace.yaml, docs/**; themes/srcery.tmTheme still ships) and CHANGELOG.md
  • Separately aligns the workbench colors section with the srcery palette v2: fixes a drifted "bright_black" hex used in 20+ places, three Monokai leftover colors, consolidates three inconsistent olive selection greens into two new named colors, and moves editor.background to true black

Each change is its own commit (vendoring pipeline / packaging / workbench palette) so they're independently revertable. Full design rationale and the exact 34-value replacement table are in docs/superpowers/plans/2026-07-10-post-pr3-tmtheme-sync.md.

Test plan

  • Vendored themes/srcery.tmTheme parses as valid plist (plistlib), 308 settings entries, 0 [OVERRIDE] rules, 0 drift hexes
  • themes/Srcery-color-theme.json parses as strict JSON; colors section has 163 keys; tokenColors is "./srcery.tmTheme"
  • pnpm exec vsce ls confirms themes/srcery.tmTheme ships, scripts//docs//pnpm workspace files excluded
  • All 34 workbench color replacements verified present with exact old→new values (case and alpha-suffix exact)
  • Static check: JSON-key rule (meta.mapping.key.json#68A8E4) and Python-operator rule (source.python keyword.operator.*#FCE8C3) both present in vendored plist
  • Manual: F5 Extension Development Host — open a .json, .py, and .sh file; confirm JSON keys render bright_blue, Python operators render plain foreground (not white), editor background is true black, and selection highlight is the new dim green. Not run in this session (no GUI available) — please verify before merging.

🤖 Generated with Claude Code

Replaces the inline 35-entry tokenColors array with a path reference to
a vendored srcery.tmTheme, fetched from srcery-textmate master (includes
PR #3's palette sync with srcery-vim plus a follow-up JSON-key fix).
Re-run node scripts/sync-tmtheme.mjs <ref> to pin a specific revision.
Exclude scripts/, docs/, and pnpm workspace files from the .vsix;
document the vendoring change in the changelog.
Replace drifted bright_black (#918175), Monokai leftovers (#75715E,
#272822, #3B3A32), and inconsistent olive selection greens with
canonical palette values; move editor.background to true black
(#121110) and fix terminal.ansiWhite/ansiBrightCyan/list.invalidItemForeground.
The vendoring layer and override-patch layer never existed in this
repo prior to this branch (per the plan's Task 1 note), so "replacing
... the local override-patch layer" misdescribed history. Also
resolved a dangling "(see below)" reference.
Documents the design decisions behind the sync pipeline and the 34
workbench color replacements for future reference.
@MindTooth MindTooth self-assigned this Jul 11, 2026
@MindTooth MindTooth marked this pull request as draft July 11, 2026 10:27
@MindTooth MindTooth requested a review from roosta July 11, 2026 10:27
@MindTooth

Copy link
Copy Markdown
Member Author

@roosta now that TextMate is "up2date". We can look at actually using it here. I still need to verify that it's working as it should. Claude mentioned that some of the syntax will be overridden when using an LSP.

semanticTokenColors — the sleeper issue: LSP semantic highlighting silently overrides TextMate rules in TS/Rust/Python, so the aligned tmTheme may not even be visible in the most-used languages

Will dedicate more time on this going forward as textmate is merged.

@MindTooth

Copy link
Copy Markdown
Member Author

@gagbo if you have the time: Thoughts about using textmate directly? And if you have the time to test, please do.

Off-topic: I see that you still have a fork listed on the marketplace, do you know if it's possible to be archived and redirected to the upstream one?

@roosta

roosta commented Jul 12, 2026

Copy link
Copy Markdown
Member

thats great, very nice that we could merge those two themes like that. I'll also verify when I get the chance, I'll let you know my findings.

@roosta roosta left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran through the filetypes in syntax tester, as as with bat it looks spot on, couldn't really find any notable issues. Keep up the good work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants