DAML and Canton tooling for JetBrains IDEs. The plugin wraps the official DAML language server (daml damlc ide / dpm damlc ide) through the IntelliJ Platform native LSP API and adds Script Results, run configurations, Canton file support, and managed local Canton sandbox tools.
v local-install beta. The repository builds a JetBrains plugin ZIP suitable for Settings / Preferences -> Plugins -> Gear -> Install Plugin from Disk.... Marketplace publishing is intentionally not wired into CI yet.
The repository and Gradle artifact are named daml-canton-jetbrains; the JetBrains plugin ID remains com.moonsonglabs.canton-jetbrains-plugin to preserve upgrade continuity.
- Syntax highlighting for
.damlfiles via a native lexer. - Diagnostics, hover, go-to-definition, completion, document symbols, and rename through the official DAML LSP.
- Local fallback navigation for DAML imports and explicit import-list symbols.
- Script Results explorer with Overview, Contracts, Tx Tree, Disclosure, Console, and Raw views.
daml.yamlandmulti-package.yamlJSON-schema completion.- DAML run configurations for build, test, script, and start.
- Canton config/script highlighting and run configurations for
.conf,.canton, and.canton.sc. - Managed Canton Sandboxes tool window for local multi-participant profiles, topology diagrams, endpoint consoles, and ledger activity exploration.
- Live templates for common DAML declarations and expressions.
- Per-project runtime settings for DAML SDK, DPM, Canton, logging, telemetry, extra args, and multi-package mode.
- Any JetBrains IDE 2026.1 or newer.
- JDK 21 for building the plugin.
dpmor the DAML assistant installed locally. The plugin can install DAML SDK3.4.11from settings.- Canton installed locally if you want Canton run configurations or managed sandbox workflows.
./gradlew --no-daemon --no-configuration-cache test
./gradlew --no-daemon --no-configuration-cache verifyPluginProjectConfiguration verifyPluginStructure
./gradlew --no-daemon --no-configuration-cache buildPluginThe plugin ZIP is written to:
build/distributions/daml-canton-jetbrains-<version>.zip
Generated build outputs are intentionally ignored. Releases should attach the ZIP generated by CI.
- Build the plugin ZIP.
- Open Settings / Preferences -> Plugins in a compatible JetBrains IDE.
- Click the gear icon and choose Install Plugin from Disk....
- Select
build/distributions/daml-canton-jetbrains-<version>.zip. - Restart the IDE if prompted.
- Open a DAML/Canton project folder.
- Open Settings -> Languages & Frameworks -> DAML and validate or install the local runtime.
Expected smoke-test signals:
- The IDE LSP widget shows the DAML Language Server as running.
.damlfiles show highlighting, diagnostics, hover, and navigation.- A DAML script exposes Script Results and opens the DAML Script Results tool window.
- The Managed Canton Sandboxes tool window opens from the right tool-window stripe.
- DAML and Canton run configurations execute and show output in the Run tool window.
The repository includes GitHub Actions for the normal JetBrains plugin lifecycle:
.github/workflows/build.yml: CI for pull requests and pushes tomain; runs tests, fast IntelliJ plugin configuration/structure verification, andbuildPlugin..github/workflows/build-release.yml: the only release-build workflow; runs onv*.*.*tags, builds the release ZIP, and creates a draft GitHub Release with the ZIP attached..github/dependabot.yml: keeps Gradle and GitHub Actions dependencies fresh.
Full binary compatibility verification is available through ./gradlew verifyPlugin, but it is not required in pull-request CI yet. Run it manually before Marketplace publication when the target IDE matrix is intentionally updated.
Apache License 2.0. Includes assets and behavior ported from digital-asset/daml, also Apache 2.0.