Files
l0ng-ai ac71b7008e feat(plugins): Graphviz, Regex Tester, License Header and Harbor Night official plugins
- Graphviz: `.dot` / `.gv` files open beside a live preview (a web view
  rendering with Graphviz compiled to WebAssembly) in any layout engine,
  with zoom, pan, Fit and SVG / PNG export through the save dialog. What
  Graphviz reports goes from the page to the plugin's code, which publishes
  it as problems on the named line. A DOT language, file icons and a
  New Graphviz Graph template.
- Regex Tester: a tool window whose html view sends pattern, flags, text and
  replacement as you type; the plugin matches with Rust's regex (linear time)
  and answers with matches, groups and the replacement in UTF-16 offsets.
  Use Selection and Test Selection take the editor's selection.
- License Header: files without a copyright / SPDX header are reported when
  they open and on save; a quick fix and a command add one in the file's
  comment syntax (after a shebang or encoding line); a project scan in a
  background task reports the rest. Holder and license are settings.
- Harbor Night becomes an official plugin and the one source of the theme
  files: `openidea-plugin new --template theme`, the theme docs and tests
  start from it.
- Tool windows' renders and events carry the window's active editor, as
  commands do, so a view's buttons can act on what the user is editing.
- knip leaves plugins' web pages (projects of their own) alone.
2026-11-04 02:41:46 +08:00

26 lines
1.2 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Graphviz</title>
<link rel="stylesheet" href="./src/style.css" />
</head>
<body>
<div class="toolbar" role="toolbar" aria-label="Preview">
<select id="engine" title="Layout engine" aria-label="Layout engine"></select>
<span class="sep"></span>
<button id="zoom-out" title="Zoom out" aria-label="Zoom out">−</button>
<button id="zoom-reset" title="Actual size" aria-label="Actual size"><span id="zoom-label">100%</span></button>
<button id="zoom-in" title="Zoom in" aria-label="Zoom in">+</button>
<button id="zoom-fit" title="Fit to window" aria-label="Fit to window">Fit</button>
<span class="sep"></span>
<button id="export-svg" title="Export as SVG…">SVG</button>
<button id="export-png" title="Export as PNG…">PNG</button>
</div>
<div id="stage" class="stage"><div id="canvas" class="canvas"></div></div>
<div id="banner" class="banner" role="status" hidden></div>
<script type="module" src="./src/main.ts"></script>
</body>
</html>