Rune DSL (.rosetta) Language Support

Full-featured IDE support for Rosetta domain models - FINOS CDM, DRR, ISO 20022, and custom financial models.
Rich language tooling for Rune DSL (.rosetta) files with interactive visualization, intelligent code navigation, and model exploration. Note this should not be confused with the 'Rosetta' (Regnosys Ltd) which is a fully featured SaaS Platform for working with Rune DSL files. This plugin is designed to complement use of this platform but does not require it.
To that end any mention of 'Rosetta' herein relates to the file extension, not the licensed platform.
Features at a Glance
| Feature |
Description |
| Graph Explorer |
Interactive D3 type visualization |
| Rune Explorer Sidebar |
Browse types/enums/functions hierarchically |
| Go to Definition |
Ctrl+Click to jump to type definitions |
| Find References |
Find all usages across the model |
| Inline Type Diagrams |
ASCII hierarchy diagrams on hover |
| Mermaid Export |
Generate diagrams for documentation |
| Syntax Highlighting |
Full TextMate grammar for .rosetta files |
| CodeLens |
Reference counts and graph links |
| Validation |
Deprecated type warnings with suggestions |
Screenshots
Graph Explorer
Interactive D3 visualization of type hierarchies with zoom, pan, and click-to-expand.
Hierarchical namespace tree with color-coded type icons.
Inline Type Diagrams
Hover over any type to see parent/child relationships.
Quick Start
For Pre-built Templates (Recommended)
If you're using a pre-built template (DRR, CDM, ISO 20022):
- Download your template from the platform
- Extract to a folder
- Open the folder in VS Code
- Install this extension
- Start coding - all features are ready to use!
Pre-built templates include the indices/ folder required for full LSP features.
For Custom Models
- Install this extension
- Create
.rosetta files in your workspace
- Syntax highlighting works immediately
- For full LSP features, add a
runeplugin.json configuration
Installation
From Extension Marketplace
Available on both VS Code Marketplace and Open VSX (for VSCodium users).
- Open VS Code or VSCodium
- Go to Extensions (
Ctrl+Shift+X)
- Search for "Rosetta Model Explorer"
- Click Install
Or via Quick Open (Ctrl+P):
ext install nicholas-moger.rune-dsl-language-support
From VSIX
- Download the
.vsix file from GitHub releases
- In VS Code/VSCodium: Extensions >
... menu > "Install from VSIX..."
- Select the downloaded file
Feature Details
Browse your entire model in a dedicated panel:
- Namespace Tree - Hierarchical view organized by package
- Type Icons - Color-coded: Types (blue), Enums (purple), Functions (green)
- Click to Navigate - Jump directly to any definition
- Search & Filter - Quickly find types across the model
Graph Explorer
Interactive D3 visualization in the sidebar or full editor window:
- Type Hierarchy - See parent types and inheritance chains
- Attribute Relationships - Visual connections between types
- Zoom & Pan - Navigate large graphs easily
- Pop-out Window - Open in full editor tab
- Click Navigation - Click any node to explore its relationships
Inline Type Diagrams
Hover over any type name to see an ASCII hierarchy diagram:
┌─────────────┐
│ Product │
└──────┬──────┘
│ extends
┌──────┴──────┐
──▶ │ Trade │ [type]
└──────┬──────┘
┌─────┴─────┐
EquityTrade FxTrade
Code Intelligence
| Feature |
Shortcut |
Description |
| Go to Definition |
Ctrl+Click / F12 |
Jump to type definitions |
| Find References |
Shift+F12 |
Find all usages of a type |
| Document Outline |
Ctrl+Shift+O |
Navigate file structure |
| Workspace Symbols |
Ctrl+T |
Search all symbols globally |
| Hover Information |
Hover |
View type documentation |
| Auto-completion |
Ctrl+Space |
Intelligent suggestions |
CodeLens
Above every type definition, see:
- Reference counts - How many times this type is used
- Graph link - Click to visualize in Graph Explorer
Validation
Real-time feedback using pre-built indices:
- Deprecated Types - Strikethrough with replacement suggestions
- Unknown Types - Warnings for missing references
- Problems Panel - All issues in one place (
Ctrl+Shift+M)
Mermaid Export
Generate Mermaid diagrams for documentation:
classDiagram
Product <|-- Trade
Trade <|-- EquityTrade
Trade <|-- FxTrade
class Trade {
+Date tradeDate
+Party[] parties
+Product product
}
Syntax Highlighting
Full TextMate grammar support including:
- Keywords (
type, enum, func, rule, namespace)
- Type references and attributes
- Documentation blocks (
<"...">)
- Annotations and conditions
Supported Models
| Model |
Description |
| FINOS CDM |
Common Domain Model for derivatives |
| DRR |
Digital Regulatory Reporting |
| ISO 20022 |
Financial messaging standard |
| Custom Models |
Any Rosetta-based domain model |
Requirements
Minimum
For Full Features
- Pre-built indices from Rune toolchain or pre-built template
- Templates (DRR, CDM, ISO 20022) include indices ready to use
| Platform |
Status |
| Windows 10/11 (x64) |
Fully supported |
| macOS |
Supported |
| Linux |
Supported |
| WSL |
Supported |
Configuration
Access settings via File > Preferences > Settings and search for "Rosetta".
Feature Toggles
| Setting |
Default |
Description |
rosetta.features.hover |
true |
Show type info on hover |
rosetta.features.goToDefinition |
true |
Enable Ctrl+Click navigation |
rosetta.features.findReferences |
true |
Enable Shift+F12 references |
rosetta.features.documentSymbols |
true |
Enable outline and symbol search |
rosetta.features.syntaxHighlighting |
true |
Enable syntax coloring |
Graphical Settings
| Setting |
Default |
Description |
rosetta.graphical.graphExplorer |
true |
Enable Graph Explorer panel |
rosetta.graphical.inlineDiagrams |
true |
Show type hierarchy on hover |
rosetta.graphical.codeLensGraph |
true |
Show Graph link in CodeLens |
rosetta.graphical.mermaidExport |
true |
Enable Mermaid diagram export |
Validation Settings
| Setting |
Default |
Description |
rosetta.validation.enabled |
true |
Enable inline validation |
rosetta.validation.unknownTypes |
true |
Warn about unknown type references |
rosetta.validation.deprecatedTypes |
true |
Show deprecated type warnings |
Commands
| Command |
Description |
Rune: Show Status |
Open status menu with feature info |
Rune: Refresh Explorer |
Reload the Rune Explorer tree |
Rune: Open Graph Explorer |
Focus the Graph Explorer panel |
Rune: Show Type in Graph |
Display type at cursor in Graph Explorer |
Rune: Copy as Mermaid Diagram |
Copy type hierarchy as Mermaid markdown |
Rune: Restart Language Server |
Restart the LSP server |
Status Bar
The status bar shows the current mode:
| Status |
Meaning |
| Rosetta ✓ |
Full LSP mode - all features enabled |
| Rosetta ⚠ |
Syntax-only mode - highlighting without LSP |
| Rosetta ○ |
Inactive - no Rosetta files detected |
Click the status bar item for detailed feature status.
Troubleshooting
Features Not Working
- Check the status bar - Click to see feature status
- Verify indices exist - Look for
indices/_tier1/manifest.json
- Try refreshing - Run
Rune: Refresh Explorer command
- Check Output - View > Output > Rosetta LSP for errors
Graph Explorer Empty
The Graph Explorer requires pre-built indices:
- Use a pre-built template (DRR, CDM, ISO 20022)
- Or build indices with the Rune toolchain
- Use pre-built templates for best performance
- Large models may have slower initial index loading
Known Limitations
- Uses offline mode with pre-built indices
- Live Java-based validation planned for future release
- Code generation features coming soon
Version History
6.0.1 (Current)
- Complete rewrite from version 5
- Initial marketplace release
- Graph Explorer with D3 visualization
- Inline type diagrams on hover
- Mermaid diagram export
- Rune Explorer sidebar
- CodeLens with Graph links
- Index-based validation
- Comprehensive settings
Roadmap
- Java LSP integration (live validation)
- Code generation support
- Advanced refactoring features
Attribution & Licensing
License: Apache 2.0 - See LICENSE for details.
This extension incorporates components from the open-source Rune DSL project maintained by FINOS.
Feedback & Issues
Disclaimer
This extension is provided "as-is" without warranty of any kind. Evaluate suitability before use in production environments.
This is a community extension and is not affiliated with, endorsed by, or sponsored by Regnosys Ltd, FINOS, or Microsoft.
Built with the Rune DSL toolchain and VS Code Extension API