Skip to content

v0.100.0

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Aug 14:06
· 11 commits to main since this release

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.
  • //SOURCES ownership 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 subdued local/remote/snapshot presentation.
  • Path completion and Ctrl/Cmd-click navigation for //SOURCES and //FILES (including
    target=source mappings and multiple entries per directive).
  • Catalog script-ref completion and navigation in jbang-catalog.json.
  • Exact diagnostics: unknown directives, malformed coordinates, duplicate //DEPS, unresolved
    dependencies, and missing //SOURCES///FILES resources 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 //JAVA JDK 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 .jbang file type (directive-only, not parsed as Java).
  • .jsh registered 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_OPTIONS and JAVA_OPTIONS aliases.
  • 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.xml was empty).
  • DependencyModifier (was return 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 @snippet Javadoc tags via JBang).
  • Live templates (jbang, jbang-build, jbang-sb) — replaced by CLI-backed templates.