Files
zed/assets/settings/default_semantic_token_rules.json
Mohamad Khani b72a46db68
Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
logiguard fork: GPUI xdg-activation keyboard-focus serial fix
Single-commit orphan branch: full zed-industries/zed @ 8c74db0 source tree
with a 3-file patch applied (no upstream history).

Patch (crates/gpui_linux/src/linux/wayland/):
  - serial.rs: add SerialKind::KeyboardEnter
  - client.rs: store wl_keyboard.enter serial; add latest_serial_of()
  - window.rs: activate() uses keyboard-enter serial (Mutter focus gate)

Mutter honors window activation only when the token carries the keyboard-
focus serial from wl_keyboard.enter; GPUI used a stale mouse-press serial.
See docs/tray-window-focus-wayland.md in logiguard.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 02:22:17 +03:30

257 lines
6.5 KiB
JSON

// Default semantic token rules for Zed (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"],
},
]