Advanced IDE support for Google Cloud Dataform projects —
syntax highlighting, intelligent completion, BigQuery SQL validation, and full multi-language
support for .sqlx files.
- Syntax highlighting — dedicated highlighting for
config,js,pre_operations,post_operations, SQL blocks, and template expressions${...} - Multi-language injection — each block is parsed by its native language engine:
config { }→ JavaScript (with full TypeScript type inference)js { }→ JavaScript- SQL body /
pre_operations/post_operations→ BigQuery SQL dialect ${...}template expressions → JavaScript
- Config block — property names and enum values inferred from the Dataform proto schema,
exposed as a TypeScript
.d.tsdeclaration file (auto-generated in.dataform/types/) - Dataform built-in functions —
ref(),resolve(),self(),assert(), etc., with signatures and documentation - JavaScript symbols — variables and functions declared in
js { }blocks andincludes/files are available across the project - Workflow settings — completion and navigation for properties defined in
workflow_settings.yaml - BigQuery SQL — native dialect completion inside SQL blocks
Ctrl+Click/Ctrl+Bonref("table_name")→ navigates to the target.sqlxfile- Jump to function declarations in
includes/files - Workflow settings property references
workflow_settings.yaml— JSON schema validation with auto-generated schema from the Dataform proto definition- Config block — TypeScript type checking via
.d.ts(updated automatically when the Dataform core package changes)
- New project wizard — creates a ready-to-use Dataform project structure
- Dataform CLI integration — automatic installation and detection of the
@dataform/corenpm package - Framework detector — auto-detects existing Dataform projects on import
| Requirement | Version |
|---|---|
| IntelliJ IDEA | 2025.3.2 or later |
| Java | 21 or later |
| Node.js | LTS recommended |
| Dataform CLI | Auto-installed by the plugin |
- Open Settings → Plugins → Marketplace
- Search for Google Cloud Dataform
- Click Install and restart IntelliJ IDEA
- Download the
.zipfrom GitHub Releases - Settings → Plugins → ⚙ → Install Plugin from Disk…
- File → New → Project → Dataform
- Configure your GCP project and dataset defaults
- The plugin installs
@dataform/coreand initializes the project structure
Open any folder containing a workflow_settings.yaml — the plugin detects it automatically
and activates all features.
- Use Ctrl+Space for completion anywhere in the file
- Each block has independent language support — the
config { }block behaves like a JavaScript object with full type awareness - Navigate to referenced tables with Ctrl+Click on
ref("...")
IntelliJ highlights injected language fragments with a colored background by default. To disable it: Settings → Editor → Color Scheme → General → Code → Injected language fragment → uncheck Background.
# Build
./gradlew build
# Run in a sandboxed IDE instance
./gradlew runIde
# Run tests
./gradlew testsrc/main/java/io/github/rejeb/dataform/
├── language/
│ ├── completion/ # Completion contributors (JS symbols, config, workflow settings)
│ ├── highlight/ # Syntax highlighter, annotators, highlight filters
│ ├── injection/ # Multi-language injectors (SQL, JS, config, template)
│ ├── lexer/ # JFlex-based SQLX lexer
│ ├── parser/ # SQLX parser definition and PSI elements
│ ├── psi/ # PSI node types and manipulators
│ ├── reference/ # Reference contributors (ref(), includes, workflow settings)
│ ├── schema/
│ │ ├── dts/ # TypeScript .d.ts generator for config block types
│ │ ├── json/ # JSON schema generator (proto → JSON Schema)
│ │ └── sql/ # BigQuery dry-run schema extractor
│ └── service/ # Core index, compilation, workflow settings services
├── projectWizard/ # New project wizard and framework detector
└── setup/ # Dataform CLI installer and interpreter manager
Licensed under the Apache License, Version 2.0.
Issues and pull requests are welcome on the GitHub repository.
rbenrejeb · @rejeb