Complete rewrite of the JBang IntelliJ plugin. The plugin now uses jbang info tools as its
single source of truth and overlays dependencies as synthetic libraries — Gradle, Maven, and
IntelliJ module models are never modified.
Added
- Multi-root classpath isolation: each JBang root script keeps its own resolved dependencies,
declared sources, and requested Java version. - Active-root switching via the status bar widget, with an option to open the selected root file.
//SOURCESownership and element finder: declared sources resolve in the editor and inherit
the owning root's classpath. Sibling sources from other roots remain isolated.- Run and Debug support with JDWP auto-attach, gutter icons, context menu actions, and
terminal execution mode (with Windows PTY fallback). - Expanded run configuration: JBang options, quoted arguments, environment variables, and
working directory. - Local and remote Maven coordinate completion for
//DEPS, with cancellable time-bounded
central lookups and subduedlocal/remote/snapshotpresentation. - Path completion and Ctrl/Cmd-click navigation for
//SOURCESand//FILES(including
target=sourcemappings and multiple entries per directive). - Catalog
script-refcompletion and navigation injbang-catalog.json. - Exact diagnostics: unknown directives, malformed coordinates, duplicate
//DEPS, unresolved
dependencies, and missing//SOURCES///FILESresources highlighted on the failing token. - Visible synchronization:
syncing…,(synced), and(sync failed: N errors)in the status
bar; detailed errors in tooltips and notifications; explicit Sync JBang Project action with
automatic save. - Per-root
//JAVAJDK registration and standalone project SDK assignment (Gradle/Maven SDKs
are never overwritten). - CLI-backed New → JBang Script with smart filename suggestions from
jbang template list. - Own
.jbangfile type (directive-only, not parsed as Java). .jshregistered as JShell.- JSON Schema for
jbang-catalog.json. - Navigate from External Libraries back to the owning root script (F4/Enter).
- All 19 official JBang directives plus
JAVAC_OPTIONSandJAVA_OPTIONSaliases. - Settings: JBang path, auto-sync toggle, and root-open prompt with "Do not ask again" support.
- Cross-platform CI: tests on Linux, Windows, and macOS; Plugin Verifier in the build pipeline.
- Documentation with full screenshot walkthrough and contract tests.
Changed
- Synchronization is now overlay-based: dependencies appear under External Libraries as synthetic
JBang libraries. No module dependencies, Gradle mirroring, or project-model mutation. - Run/Debug context actions are always visible for JBang scripts (not hidden inside source roots).
Removed
- Module builder/wizard — just open a folder containing JBang scripts.
- Gradle dependency mirroring (
jbang-withGradle.xmlwas empty). DependencyModifier(wasreturn false— never functional).- Tool window with dependency list — replaced by status bar widget and External Libraries.
- File-based index — replaced by in-memory root cache.
JavaSnippetLineMarkerProvider(ran@snippetJavadoc tags via JBang).- Live templates (
jbang,jbang-build,jbang-sb) — replaced by CLI-backed templates.