VS Code Extension
The BLOGE VS Code extension brings the DSL toolchain directly into the editor. It combines a TextMate grammar for syntax highlighting with the bloge-lsp language server for semantic features.
Features
- syntax highlighting for keywords, strings, numbers, comments, operators, and built-in functions
- language configuration for brackets, comments, and folding
- real-time diagnostics from lexer, parser, compiler, and lint rules
- context-aware auto-completion
- hover documentation
- go-to-definition for nodes, schemas, and related symbols
- document formatting
LSP capabilities
The bloge-lsp server powers the editor experience and understands the BLOGE language model.
| Capability | Description |
|---|---|
| Diagnostics | Reports parser, compiler, and lint issues while you type |
| Completion | Suggests keywords, node IDs, schema types, and built-in functions |
| Hover | Explains keywords, functions, nodes, schemas, and durations |
| Definition | Navigates to node, schema, or transform definitions |
| Formatting | Rewrites documents through the DSL code generator |
Built-in lint guidance
The language server and lint CLI share common rules such as:
- duplicate node IDs
- duplicate schema names
- unresolved dependencies
- unresolved branch targets
- cycle detection
- missing timeouts
- missing documentation comments
- excessive fan-out
Development commands
cd bloge-vscode
npm install
npm run build
npm run watchTo test locally, open the extension folder in VS Code and press F5 to launch an extension host.
Architecture
bloge-vscode/
├── package.json
├── language-configuration.json
├── syntaxes/bloge.tmLanguage.json
└── src/extension.tsThe extension activates on .bloge files and starts the language server as a child process using stdio transport.
Why editor tooling matters
The DSL becomes much easier to scale when node IDs, schemas, transforms, and branch targets are all validated as you type. This helps teams keep external workflow assets trustworthy instead of treating them like weakly checked configuration files.
Next steps
- Add build-time checks with Maven Plugin & Lint
- Explore visual editing in Bloge Studio
- Learn the full language in Full Specification