A VS Code extension providing rich language support for Hydra config files and OmegaConf interpolation syntax.
Enhanced YAML highlighting for Hydra-specific constructs:
- OmegaConf interpolations:
${foo.bar},${oc.env:HOME}, nested${${dynamic}} - Hydra special keys:
_target_,_recursive_,_convert_,_partial_,_args_ - Package directives:
# @package _global_ - Defaults list:
defaults:block withoptional,override,_self_, package@targets - Missing values:
???highlighted as mandatory markers - Built-in resolvers:
oc.env,oc.decode,oc.select,now,hydra,python_version, etc. - Escaped interpolations:
\${not.interpolated}
Jump to config file definitions from:
- Defaults list entries:
- db: mysql→ opensconf/db/mysql.yaml _target_values:_target_: my_app.Trainer→ opens the Python source file- Interpolation paths:
${db.host}→ jumps to wherehostis defined
Hover over elements to see:
- Interpolation values: Shows the resolved value of
${...}references - Resolver documentation: Built-in docs for
oc.env,oc.select,now, etc. - Special key docs: Explains
_target_,_recursive_, etc. ???markers: Explains the OmegaConf MISSING value concept@packagedirectives: Documentation for package placement
Real-time error and warning highlighting:
- Unclosed interpolations: Missing
}in${...}expressions - Unresolvable references: Interpolation paths that can't be found in indexed configs
- Unknown resolvers: Hints when a resolver is not a known built-in
- Missing value markers: Warnings for
???values that need to be set
| Setting | Default | Description |
|---|---|---|
hydra.configSearchPaths |
["conf", "config", "configs"] |
Directories to search for Hydra config files |
hydra.enableDiagnostics |
true |
Enable lint diagnostics for OmegaConf errors |
hydra.enableHover |
true |
Enable hover information for interpolations |
# Install dependencies
npm install
# Compile
npm run compile
# Run unit tests
npm run test:unit
# Lint
npm run lint
# Package extension
npm run packageThe extension has comprehensive tests covering:
- Interpolation parser: 25+ tests for
${...}parsing, nested interpolations, resolvers, edge cases - YAML parser: 25+ tests for flattening, key path extraction, defaults list parsing
- TextMate grammar: 18+ structural tests validating completeness of all grammar patterns
- Test fixtures: Complete Hydra config workspace with realistic configs
Apache 2.0