Syntax highlighting for sbt-dependencies configuration files (dependencies.conf). Works with both VS Code and Cursor.
Features
Syntax highlighting for dependency strings (organization, artifact, version, configuration including :sbt-plugin and :compiler-plugin)
Support for both simple and advanced group formats
Syntax highlighting for advanced group settings (scala-version, scala-versions, java-version)
Support for object format with notes ({ dependency = "...", note = "..." }), the overrides = true flag (collapsed to // overrides next to the dependency) and the cross-version annotation for compiler plugins
Version marker highlighting (=, ^, ~) and BOM-managed * versions, validated the way the plugin does (* cannot be combined with the bom/sbt-plugin configuration or a full/patch cross-version)
Variable reference highlighting ({{name}})
Resolved versions shown inline for * and {{variable}} dependencies, with the pinning BOM (or variable) revealed on hover — read from the target/sbt-dependencies/.sbt-resolutions file the plugin writes on load (requires a plugin version that emits it), and refreshed on each sbt reload. A (stale) marker appears when the buffer has been edited since the last reload
Quick-fixes to switch a hardcoded or {{variable}} version a BOM manages to * — one line at a time or all at once (also available from the palette as Replace All BOM-Managed Versions With *) — and to materialize a * back into its resolved version
HOCON comment support (//, #, /* */)
CodeLens navigation between build.sbt and dependencies.conf: jump from a project definition to its dependency group and vice versa
CodeLens hint on pinned dependencies without a note, with a quick action to add one
Import prompts when dependencies.conf changes after the last sbt import: a status bar indicator plus a notification offering to run Metals' Import build (requires the Metals extension; the notification can be disabled with the sbt-dependencies.buildImportPrompt setting)
Development
Press F5 in VS Code or Cursor to launch a development Extension Host with the extension loaded.
Packaging
npm run package
This creates a .vsix file that can be installed with: