The fork shipped renamed binary/bundle but the product name "Zed" was still
shown everywhere in the UI. Rename the display name to "Joule" (tagline
"Energy-metered agentic coding") while preserving every load-bearing reference.
Display renames (105 .rs files): release_channel display_name, welcome +
onboarding + ai_onboarding, macOS app menu (About/Hide/Quit), window titles,
About panel, settings UI, notifications, update/collab messages, system specs.
Bundle display name (crates/zed/Cargo.toml) -> "Joule" so CFBundleName / the
menu-bar name and the .app are "Joule" (identifier science.transaction.AgentJoule
and the agent-joule binary are unchanged).
Docs (223 .md): product prose Zed -> Joule, fence-aware (code blocks untouched).
Embedded assets (12 JSONC): // comments only.
Legal (4 files): product -> Joule, entity "Zed Industries, Inc." -> "Transaction
Science, Inc.", domain zed.dev -> openie.dev. NOTE: these are structurally Zed's
inherited terms and need a real legal review, not just a rename.
Deliberately PRESERVED (renaming would break the app): font aliases ("Zed Plex
Sans"/".ZedMono" in text_system + assets), HTTP header names (X-Zed-Predict-*),
zed:: action ids, app/bundle identifiers (dev.zed.Zed*, Zed-Editor-* product ids),
zed.dev URLs, ZED_* env vars, crate/package names, "Zed Industries" in non-legal
attribution, and the {zed,Zed} config-dir glob.
Signed + notarized + stapled as Joule.app, installed to /Applications, verified
(Gatekeeper: Notarized Developer ID, FH93XC2VRR). Caveat: test-code string
literals were renamed too, so some `cargo test` assertions may need updating.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
256 lines
6.5 KiB
JSON
256 lines
6.5 KiB
JSON
// Default semantic token rules for Joule (read-only).
|
|
//
|
|
// These rules map LSP semantic token types to syntax theme styles.
|
|
// To customize, add rules to "semantic_token_rules" in your settings.json.
|
|
// User-defined rules are prepended and take highest precedence.
|
|
// Extension language rules are applied next.
|
|
// These built-in defaults are applied last.
|
|
//
|
|
// Each rule has the following properties:
|
|
// - `token_type`: The LSP semantic token type to match. If omitted, matches all types.
|
|
// - `token_modifiers`: A list of LSP semantic token modifiers to match. All must be present.
|
|
// - `style`: A list of syntax theme styles to try. The first one found is used.
|
|
// - `foreground_color`: Override foreground color in hex format (e.g., "#ff0000").
|
|
// - `background_color`: Override background color in hex format.
|
|
// - `underline`: Boolean or color to underline with. If `true`, uses text color.
|
|
// - `strikethrough`: Boolean or color. If `true`, uses text color.
|
|
// - `font_weight`: One of "normal", "bold".
|
|
// - `font_style`: One of "normal", "italic".
|
|
//
|
|
// See the VSCode docs [1] and the LSP Spec [2] for reasoning behind these defaults.
|
|
//
|
|
// [1]: https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide#standard-token-types-and-modifiers
|
|
// [2]: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#semanticTokenTypes
|
|
[
|
|
// Types
|
|
{
|
|
"token_type": "namespace",
|
|
"token_modifiers": [],
|
|
"style": ["namespace", "module", "type"],
|
|
},
|
|
{
|
|
"token_type": "class",
|
|
"token_modifiers": ["declaration"],
|
|
"style": ["type.class.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "class",
|
|
"token_modifiers": ["definition"],
|
|
"style": ["type.class.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "class",
|
|
"token_modifiers": [],
|
|
"style": ["type.class", "class", "type"],
|
|
},
|
|
{
|
|
"token_type": "enum",
|
|
"token_modifiers": ["declaration"],
|
|
"style": ["type.enum.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "enum",
|
|
"token_modifiers": ["definition"],
|
|
"style": ["type.enum.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "enum",
|
|
"token_modifiers": [],
|
|
"style": ["type.enum", "enum", "type"],
|
|
},
|
|
{
|
|
"token_type": "interface",
|
|
"token_modifiers": ["declaration"],
|
|
"style": ["type.interface.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "interface",
|
|
"token_modifiers": ["definition"],
|
|
"style": ["type.interface.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "interface",
|
|
"token_modifiers": [],
|
|
"style": ["type.interface", "interface", "type"],
|
|
},
|
|
{
|
|
"token_type": "struct",
|
|
"token_modifiers": ["declaration"],
|
|
"style": ["type.struct.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "struct",
|
|
"token_modifiers": ["definition"],
|
|
"style": ["type.struct.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "struct",
|
|
"token_modifiers": [],
|
|
"style": ["type.struct", "struct", "type"],
|
|
},
|
|
{
|
|
"token_type": "typeParameter",
|
|
"token_modifiers": ["declaration"],
|
|
"style": ["type.parameter.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "typeParameter",
|
|
"token_modifiers": ["definition"],
|
|
"style": ["type.parameter.definition", "type.definition"],
|
|
},
|
|
{
|
|
"token_type": "typeParameter",
|
|
"token_modifiers": [],
|
|
"style": ["type.parameter", "type"],
|
|
},
|
|
{
|
|
"token_type": "type",
|
|
"token_modifiers": ["declaration"],
|
|
"style": ["type.definition"],
|
|
},
|
|
{
|
|
"token_type": "type",
|
|
"token_modifiers": ["definition"],
|
|
"style": ["type.definition"],
|
|
},
|
|
{
|
|
"token_type": "type",
|
|
"token_modifiers": [],
|
|
"style": ["type"],
|
|
},
|
|
// References
|
|
{
|
|
"token_type": "parameter",
|
|
"token_modifiers": ["declaration"],
|
|
"style": ["variable.parameter"]
|
|
},
|
|
{
|
|
"token_type": "parameter",
|
|
"token_modifiers": ["definition"],
|
|
"style": ["variable.parameter"]
|
|
},
|
|
{
|
|
"token_type": "parameter",
|
|
"token_modifiers": [],
|
|
"style": ["variable"],
|
|
},
|
|
{
|
|
"token_type": "variable",
|
|
"token_modifiers": ["defaultLibrary", "constant"],
|
|
"style": ["constant.builtin"],
|
|
},
|
|
{
|
|
"token_type": "variable",
|
|
"token_modifiers": ["defaultLibrary"],
|
|
"style": ["variable.builtin"],
|
|
},
|
|
{
|
|
"token_type": "variable",
|
|
"token_modifiers": ["constant"],
|
|
"style": ["constant"],
|
|
},
|
|
{
|
|
"token_type": "variable",
|
|
"token_modifiers": [],
|
|
"style": ["variable"],
|
|
},
|
|
{
|
|
"token_type": "property",
|
|
"token_modifiers": [],
|
|
"style": ["property"],
|
|
},
|
|
{
|
|
"token_type": "enumMember",
|
|
"token_modifiers": [],
|
|
"style": ["type.enum.member", "type.enum", "variant"],
|
|
},
|
|
{
|
|
"token_type": "decorator",
|
|
"token_modifiers": [],
|
|
"style": ["function.decorator", "function.annotation", "attribute"],
|
|
},
|
|
// Declarations in the docs, but in practice, also references
|
|
{
|
|
"token_type": "function",
|
|
"token_modifiers": ["defaultLibrary"],
|
|
"style": ["function.builtin"],
|
|
},
|
|
{
|
|
"token_type": "function",
|
|
"token_modifiers": [],
|
|
"style": ["function"],
|
|
},
|
|
{
|
|
"token_type": "method",
|
|
"token_modifiers": ["defaultLibrary"],
|
|
"style": ["function.builtin"],
|
|
},
|
|
{
|
|
"token_type": "method",
|
|
"token_modifiers": [],
|
|
"style": ["function.method", "function"],
|
|
},
|
|
{
|
|
"token_type": "macro",
|
|
"token_modifiers": [],
|
|
"style": ["function.macro", "function"],
|
|
},
|
|
{
|
|
"token_type": "label",
|
|
"token_modifiers": [],
|
|
"style": ["label"],
|
|
},
|
|
// Tokens
|
|
{
|
|
"token_type": "comment",
|
|
"token_modifiers": ["documentation"],
|
|
"style": ["comment.documentation", "comment.doc"],
|
|
},
|
|
{
|
|
"token_type": "comment",
|
|
"token_modifiers": [],
|
|
"style": ["comment"],
|
|
},
|
|
{
|
|
"token_type": "string",
|
|
"token_modifiers": ["documentation"],
|
|
"style": ["string.doc"],
|
|
},
|
|
{
|
|
"token_type": "string",
|
|
"token_modifiers": [],
|
|
"style": ["string"],
|
|
},
|
|
{
|
|
"token_type": "keyword",
|
|
"token_modifiers": [],
|
|
"style": ["keyword"],
|
|
},
|
|
{
|
|
"token_type": "number",
|
|
"token_modifiers": [],
|
|
"style": ["number"],
|
|
},
|
|
{
|
|
"token_type": "regexp",
|
|
"token_modifiers": [],
|
|
"style": ["string.regexp", "string"],
|
|
},
|
|
{
|
|
"token_type": "operator",
|
|
"token_modifiers": [],
|
|
"style": ["operator"],
|
|
},
|
|
// Not in the VS Code docs, but in the LSP spec.
|
|
{
|
|
"token_type": "modifier",
|
|
"token_modifiers": [],
|
|
"style": ["keyword.modifier"],
|
|
},
|
|
// C#
|
|
{
|
|
"token_type": "event",
|
|
"token_modifiers": [],
|
|
"style": ["type.event", "type"],
|
|
},
|
|
]
|