Context
The VS Code extension in this repository currently contributes the expressif language id and .expr / .expressif file associations itself, while the main Seddryck/Expressif repository already produces a dedicated syntax-only VS Code extension containing the same language registration plus the generated TextMate grammar.
The desired user experience has two tiers:
- a minimal syntax-only installation with immediate lexical highlighting and no language server footprint
- a full LanguageServer installation with semantic tokens, completion, diagnostics, hover, execution commands, etc.
To avoid duplicate ownership of language registration and grammar assets, the full LanguageServer extension should build on the syntax-only extension.
Blocked by
The syntax extension must have a stable Marketplace identity before this dependency can be declared reliably.
Proposal
Declare the syntax-only extension as a VS Code extension dependency:
"extensionDependencies": [
"seddryck.expressif-syntax-highlighting"
]
Then remove duplicate lexical-language ownership from this extension.
Required changes
- Add
seddryck.expressif-syntax-highlighting to extensionDependencies in vscode-extension/package.json.
- Remove the duplicated
contributes.languages entry from the LanguageServer extension once the dependency is in place.
- Do not bundle or download a separate TextMate grammar in this repository.
- Do not contribute a second grammar for
source.expressif.
- Continue activating on
onLanguage:expressif.
- Keep all LanguageServer-specific contributions here, including semantic tokens, completion, hover, diagnostics, signature help and execution commands.
- Ensure semantic highlighting continues to refine/override the lexical TextMate highlighting supplied by the syntax extension.
- Update the extension README to explain that installing the LanguageServer extension automatically installs the lightweight Expressif syntax extension.
- Make clear that users who only want syntax highlighting can install
seddryck.expressif-syntax-highlighting alone.
Resulting architecture
Expressif Syntax Highlighting
├── language id: expressif
├── .expr / .expressif
├── language configuration
└── TextMate grammar (source.expressif)
↑
│ extensionDependencies
│
Expressif Language Support
├── bundled language server
├── semantic tokens
├── completion / hover / diagnostics / signature help
└── run-expression commands
This preserves immediate syntax coloring from the TextMate grammar while allowing semantic tokens from the LanguageServer to refine the highlighting when the server becomes available.
Acceptance criteria
- Installing the LanguageServer VSIX/Marketplace extension automatically installs the syntax-only extension.
- The LanguageServer extension no longer owns duplicate
expressif language registration or TextMate grammar assets.
.expr and .expressif files receive lexical highlighting immediately from the syntax extension.
- Semantic token highlighting from the LanguageServer still works on top of the TextMate highlighting.
- The LanguageServer can still be developed/tested locally with the syntax extension dependency installed.
- Users can install only the syntax extension when they want the smallest possible VS Code footprint.
Context
The VS Code extension in this repository currently contributes the
expressiflanguage id and.expr/.expressiffile associations itself, while the mainSeddryck/Expressifrepository already produces a dedicated syntax-only VS Code extension containing the same language registration plus the generated TextMate grammar.The desired user experience has two tiers:
To avoid duplicate ownership of language registration and grammar assets, the full LanguageServer extension should build on the syntax-only extension.
Blocked by
The syntax extension must have a stable Marketplace identity before this dependency can be declared reliably.
Proposal
Declare the syntax-only extension as a VS Code extension dependency:
Then remove duplicate lexical-language ownership from this extension.
Required changes
seddryck.expressif-syntax-highlightingtoextensionDependenciesinvscode-extension/package.json.contributes.languagesentry from the LanguageServer extension once the dependency is in place.source.expressif.onLanguage:expressif.seddryck.expressif-syntax-highlightingalone.Resulting architecture
This preserves immediate syntax coloring from the TextMate grammar while allowing semantic tokens from the LanguageServer to refine the highlighting when the server becomes available.
Acceptance criteria
expressiflanguage registration or TextMate grammar assets..exprand.expressiffiles receive lexical highlighting immediately from the syntax extension.