Kater — DSL Intelligence for VSCode
Real-time validation, autocomplete, navigation, and refactoring for the Kater YAML DSL.
Features
Real-Time Validation
See validation errors and warnings inline as you type — no more switching to the terminal to run kater validate.
Context-Aware Autocomplete
Type ref( and get suggestions for all views, measures, dimensions, and filters scoped to your connection. Suggestions are filtered by context — inside a measures: block, only measures appear.
Go-to-Definition
Cmd+Click on any ref(), expr(), or var() to jump directly to the definition. Works with all qualifier forms: ref(name), ref(meas:name), ref(VIEW.DIM).
Find All References
Shift+F12 to find every usage of an object across the connection. Code lens shows reference counts above each definition.
Rename Symbol
F2 to rename an object and update every ref() usage across the connection — including qualified forms. Preview all changes before applying.
Quick Fixes
Typos in ref() get "Did you mean X?" suggestions. One-click fix to correct invalid references.
Signature Help
Inline parameter hints for expr() showing parameter names, allowed kinds, and data types.
Schema-Aware Completion
YAML key suggestions based on the object type you're defining. Smart snippets scaffold new objects with auto-generated UUIDs.
Semantic Highlighting
ref(), expr(), var(), and param() rendered with distinct colors inside YAML strings.
Unused Object Warnings
Objects defined but never referenced get a warning diagnostic to keep your model clean.
Getting Started
After installation, the Welcome to Kater walkthrough guides you through the extension's key features. You can re-open it anytime via the Command Palette: "Welcome: Open Walkthrough".
Installation
Install from the VSCode Marketplace. No additional setup required.
The extension bundles a standalone language server binary. No Python installation needed.
Requirements
- VSCode ^1.95.0
- Kater repository with a
kater.config.yaml file
- Connection folders follow the
*_connection/ naming convention
How It Works
The extension activates automatically when it detects a kater.config.yaml in your workspace. It indexes all YAML files across connection folders and provides real-time semantic analysis powered by the Kater compiler.
All features are scoped per connection — navigation, autocomplete, references, and rename operate within the connection containing your current file.
Configuration
| Setting |
Default |
Description |
kater.server.path |
"" |
Custom language server binary path (for development) |
kater.server.logLevel |
"warning" |
Server log level: debug, info, warning, error |
kater.diagnostics.debounceMs |
300 |
Delay before re-validating after a change |
kater.trace.server |
"off" |
Trace LSP communication for debugging |
Known Limitations
V1 focuses on authoring intelligence — real-time validation, navigation, and refactoring within the editor:
- No SQL preview — Compiled SQL output is not yet available in the editor
- No query execution — Running queries requires the Kater CLI or API
- No lineage graph — Visual dependency graphs are planned for a future release
- No API integration — The extension works offline with local YAML files only
Troubleshooting
Extension not activating?
- Ensure your workspace contains a
kater.config.yaml file
- Check that connection folders follow the
*_connection/ naming convention
Server failed to start?
- Check the Output panel (View → Output → select "Kater" from dropdown)
- Try "Kater: Restart Language Server" from the Command Palette
Status bar shows "Server failed"?
- Click the status bar item to restart manually
- If the issue persists, check the Output panel for error details
Feedback & Issues
Found a bug or have a feature request? File an issue on the Kater GitHub repository. Include the Output panel logs when reporting bugs.
License
See the project license for details.