Skip to content

Releases: kkdev92/plantuml-local

v0.4.0 — rebuilt on vscode-ext-kit 3.x

Choose a tag to compare

@kkdev92 kkdev92 released this 08 Aug 08:18
f31c74d

Rebuilt on @kkdev92/vscode-ext-kit 3.x. Rendering, sanitisation, the worker
queue and the markdown-it plugin are untouched — what changed is how the
extension starts and stops. Diagrams render exactly as they did.

Breaking

  • VS Code 1.125 or later is now required, up from 1.101. The framework's
    minimum cascades here. Installations on older versions keep 0.3.0 and stop
    receiving updates.

  • plantumlLocal.logLevel is a floor, not the only filter. The output
    channel is a LogOutputChannel now, and VS Code decides what one of those
    shows — an extension cannot raise its own channel's level. The setting can
    still make the log quieter.

    To see debug, run Developer: Set Log Level and pick PlantUML Local.
    That is a per-channel level and it persists across restarts. In exchange the
    channel gains per-level colouring and the panel's own filter.

Changed

Activation is one declaration, validated before VS Code is touched: a duplicate
id or a missing dependency fails at import rather than half-registering at
runtime. The render worker and the debounced preview refresh are owned by the
framework and released on its single cleanup path, in reverse order, within a
shutdown budget.

extendMarkdownIt is declared rather than assembled by hand, which makes
activate asynchronous — VS Code awaits it before reading the contribution,
which is what the Markdown preview has always done.

Full changelog: https://github.com/kkdev92/plantuml-local/blob/main/CHANGELOG.md

v0.3.0

Choose a tag to compare

@kkdev92 kkdev92 released this 30 Jul 22:26
cd164e6

The minimum supported VS Code version is now 1.101 (from 1.96). This is the only change, and it is why this is a minor release rather than a patch.

Changed

VS Code 1.101 is the first release whose extension host runs Node 22 — it moved to Electron 35, which bundles Node 22.15, while 1.96 through 1.100 shipped Node 20.

engines.node has declared >=22.0.0 since 0.2.0 while engines.vscode still allowed 1.96, so that requirement was not actually satisfied by the oldest supported host. Raising the floor makes the declaration true rather than aspirational. The bundle target moves from node20 to node22 accordingly.

VS Code Released Electron Extension host Node
1.96 (old floor) 2024-12 32.2.6 20.18.1
1.100 2025-05 34.5.1 20.19.0
1.101 (new floor) 2025-06 35.5.1 22.15.1
1.125 (current) 2026-06 42.2.0 24.15.0

Upgrading

If you are on VS Code 1.101 or later — anything from June 2025 onward — nothing changes. Rendering, SVG sanitisation and the Markdown preview integration are identical to 0.2.1.

If you are on VS Code 1.96 through 1.100, this update will not be offered. Your existing 0.2.1 installation keeps working; update VS Code to receive newer releases.

Full changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@kkdev92 kkdev92 released this 30 Jul 15:22
d3dd4db

Documentation, third-party licence notices and build tooling. No functional changes — the rendering path, SVG sanitisation and Markdown preview integration are identical to 0.2.0.

Added

  • The VSIX now ships THIRD_PARTY_NOTICES.md and third-party/, carrying the copyright and licence texts of every bundled component: PlantUML, Viz.js, Graphviz (EPL-1.0, not MIT), Expat, happy-dom and its dependencies, and the extension kit. The licences of that code require their notices to travel with the package, and previously none shipped.
  • verify-vsix fails the build if a licence text is missing from the package or is unreferenced by the notices file, so a future bundled dependency cannot ship without its notice.

Changed

  • README and SECURITY.md now describe the local-rendering and network behaviour as design and implementation rather than as absolute guarantees. SECURITY.md gains a Non-goals section stating plainly that the render worker is an isolation boundary for JavaScript globals — not a process- or OS-level security sandbox — and that disabling browser-style network APIs is not the same as closing every network path available to Node.js.
  • README gains a Known Limitations section: !include, remote themes and images, external sprite libraries, approximate text metrics and the render timeout.
  • The Marketplace description and the repository description now match the README's wording.
  • SECURITY.md supported-versions table tracks the latest release instead of naming 0.1.x; CONTRIBUTING.md requires Node 22 to match engines.node and CI; the untrustedWorkspaces description no longer calls the worker "sandboxed".
  • Development moved to TypeScript 6.0 (from 5.9). Build tooling only — esbuild does the transpiling, so the shipped bundles are unaffected.

Fixed

  • The Marketplace badge in the README was dead: shields.io has retired its entire visual-studio-marketplace/* family, so it rendered as a grey "retired badge".

Full changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@kkdev92 kkdev92 released this 28 Jul 11:04
f150848

Migrates to @kkdev92/vscode-ext-kit 1.1.0. Rendering, sanitisation and the Markdown preview integration are unchanged; the work is in the extension's wiring.

Changed

  • The output channel is now a native LogOutputChannel: timestamps, level colours, the Output panel's level dropdown and Developer: Set Log Level all work. plantumlLocal.logLevel is applied on top of the panel's own level selector — raising the setting alone no longer guarantees that trace/debug lines are visible.
  • Settings are read through a validated schema, so a hand-edited settings.json falls back to the declared default instead of reaching the renderer as an unchecked value.
  • plantumlLocal.theme changes are observed per key rather than by filtering whole-configuration events.
  • Development now requires Node.js 22 or newer (Node 20 reached end of life on 2026-04-30). The shipped bundle still targets the Node 20 runtime of the VS Code 1.96 extension host, so the supported VS Code range is unchanged.

Fixed

  • Scratch files under work/ are no longer packaged into the VSIX.

Full changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@kkdev92 kkdev92 released this 27 Jul 09:47

First public release.

Added

  • Render ```plantuml fenced code blocks as inline SVG in the built-in
    Markdown preview, powered by @plantuml/core
    (PlantUML compiled to JavaScript/WebAssembly). No Java, no PlantUML server,
    no network access.
  • Rendering runs in a worker thread on the extension host; only sanitised SVG
    is injected into the preview.
  • Serialised rendering queue — many diagrams per page render correctly, and one
    failing diagram never blocks the others.
  • Syntax errors appear inline at the failing diagram; the rest of the page is
    unaffected.
  • Dark-mode rendering that follows the VS Code colour theme, with a
    plantumlLocal.theme setting (auto / light / dark) to pin the palette.
  • PlantUML Local: Clear Render Cache and Re-render command.
  • plantumlLocal.logLevel setting for the output channel.
  • Localised UI (English, Japanese).

Security

  • SVG output is sanitised in the worker (scripts, event handlers and non-fragment
    links are removed) before it reaches the preview.
  • URL-based !include / !theme directives are rejected with an inline message.
  • happy-dom's bundled self-signed TLS certificate (unused fetch machinery) is
    stripped from the worker bundle at build time.