Skip to content

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.

CapabilityDescription
DiagnosticsReports parser, compiler, and lint issues while you type
CompletionSuggests keywords, node IDs, schema types, and built-in functions
HoverExplains keywords, functions, nodes, schemas, and durations
DefinitionNavigates to node, schema, or transform definitions
FormattingRewrites 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

bash
cd bloge-vscode
npm install
npm run build
npm run watch

To 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.ts

The 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