A Language Server for Hydra configuration files, written in Rust.
- ✅ YAML Parsing: Extracts
_target_references and their parameters - ✅ Hover Support: Shows rich information when hovering over
_target_values:- Function signatures with parameter details
- Class information and docstrings
- Type annotations
- ✅ Go to Definition: Jump from YAML
_target_to Python source file - ✅ Diagnostics: Parameter validation including:
- Unknown parameters (unless
**kwargspresent) - Missing required parameters
- Basic
_target_format validation
- Unknown parameters (unless
- ✅ Semantic Tokens: Rich syntax highlighting for Hydra configurations:
- Module path components (namespace tokens)
- Class and function names
- Parameter keys (parameter tokens)
- Values (string, number, and property tokens)
- ✅ Signature Help: Shows parameter information while typing function arguments
For a list of planned features and enhancements, see the issues page.
In addition to the language server, this project provides a standalone CLI tool for diagnosing Hydra YAML configuration files. This is useful for:
- Debugging why a
_target_is not being resolved - CI/CD pipeline validation
- Quick command-line checks without an IDE
# Basic usage
hydra-check config.yaml
# Specify workspace root for local module resolution
hydra-check config.yaml -w /path/to/project
# Specify Python interpreter for site-packages resolution
hydra-check config.yaml -p /path/to/venv/bin/python
# Enable detailed resolution tracing for debugging
hydra-check config.yaml --trace-resolution
# Change verbosity level (error, warn, info, debug, trace)
hydra-check config.yaml -v debug
# Output in different formats (pretty, json, compact)
hydra-check config.yaml -f json| Option | Description |
|---|---|
-w, --workspace <PATH> |
Working directory for resolving Python modules |
-p, --python <PATH> |
Path to Python interpreter for module resolution |
-v, --verbosity <LEVEL> |
Logging verbosity: error, warn, info, debug, trace |
-f, --format <FORMAT> |
Output format: pretty (default), json, compact |
--trace-resolution |
Show detailed resolution steps for each target |
0: No errors found1: One or more errors found2: Fatal error (file not found, parse error, etc.)
This project is licensed under the MIT License - see the LICENSE file for details.