mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 16:08:05 +00:00
- 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.
26 lines
1.2 KiB
HTML
26 lines
1.2 KiB
HTML
<!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>
|