- Themes: a plugin theme is an `appearance.theme` value
(`plugin:<id>/<theme>`), offered by Settings › Appearance (and the
preferred themes of Sync with OS), Quick Switch, the toolbar gear menu and
Welcome › Customize. The project window selects it in the plugin host;
picking a built-in theme clears it. While its plugin is off, the built-in
theme of its kind shows and the choice is kept.
- File icon themes: chosen in Settings › Appearance › File icon theme and
kept in `appearance.fileIconTheme`, so every window follows.
- Keymap: plugins' default shortcuts show in Settings › Keymap as the
defaults of their actions: removable, changeable, resettable and part of
conflict checks.
- Problems: a plugin's problems are withdrawn when it stops, fails, is
disabled or uninstalled. Settings › Inspections lists them under Plugins by
plugin name; stored overrides of `plugin:` producers parse correctly.
- Status bar items of plugins are named in the status bar menu and can be
hidden.
- Languages added or removed by plugins refresh Override File Type, the
Code Style pages and Inspections without a restart.
- Uninstalling a plugin deletes the secrets it declared.
- The Settings window follows plugin changes made elsewhere.
- The plugin system is marked Preview (Settings › Plugins, README); Harbor
Night is versioned 0.1.0 like the other official plugins.
- Release: the official plugins are packed, signed (secret
PLUGIN_SIGNING_KEY) and indexed into the release as
`plugins-index.json`; released builds use it as the default marketplace.
Without the key the step is skipped.
- 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.