дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 11:15:40 +02: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.
148 рядки
4.7 KiB
JSON
148 рядки
4.7 KiB
JSON
// Harbor Night: UI theme. Keys are the CSS variables of src/styles/tokens.css,
|
|
// grouped like its Islands Light block. Delete a line to keep the built-in value
|
|
// of the base named by "kind". Comments are allowed (// and /* */).
|
|
// Full reference: docs/plugins/themes.md.
|
|
{
|
|
"id": "harbor-night",
|
|
"name": "Harbor Night",
|
|
"kind": "dark",
|
|
"tokens": {
|
|
// Surfaces
|
|
"--bg-app": "#14171c",
|
|
"--bg-elev": "#1b2027",
|
|
"--bg-popup": "#1f252e",
|
|
"--bg-floating-toolbar": "#1f252e",
|
|
"--bg-hover": "#262c33",
|
|
"--bg-selected": "#22484b",
|
|
"--bg-selected-strong": "#285a5d",
|
|
"--bg-current-line": "#191e25",
|
|
"--bg-debug-line": "#245a5c",
|
|
"--bg-backdrop": "#1f252e",
|
|
"--bg-input": "#14171c",
|
|
|
|
// Lines
|
|
"--border": "#1f252e",
|
|
"--border-popup": "#2a333f",
|
|
"--border-strong": "#36414f",
|
|
"--border-window": "#36414f",
|
|
"--control-off": "#515f72",
|
|
|
|
// Text
|
|
"--fg-strong": "#d9dfe6",
|
|
"--fg-emphasis": "#c9d1dc",
|
|
"--fg": "#c9d1dc",
|
|
"--fg-secondary": "#919fb1",
|
|
"--fg-muted": "#7c8ca0",
|
|
"--fg-subtle": "#637287",
|
|
"--fg-faint": "#515f72",
|
|
"--fg-gutter": "#3f4d60",
|
|
"--fg-icon": "#c6ced9",
|
|
|
|
// Accent
|
|
"--accent": "#2b9e93",
|
|
"--link": "#5cc8bd",
|
|
"--link-hover": "#8adcd3",
|
|
|
|
// Charts
|
|
"--chart-series": "#e07a7c",
|
|
|
|
// Status
|
|
"--danger": "#f57e84",
|
|
"--warning": "#d59637",
|
|
"--success": "#6db083",
|
|
"--db-connected": "#2fe02f",
|
|
"--db-connected-ring": "#1d6b1d",
|
|
"--info": "#4fb0d0",
|
|
|
|
// Vcs
|
|
"--vcs-modified": "#82ede6",
|
|
"--vcs-added": "#73bd79",
|
|
"--vcs-deleted": "#5f6f85",
|
|
"--vcs-untracked": "#e88f89",
|
|
"--vcs-ignored": "#d69a6b",
|
|
"--vcs-conflict": "#de6a66",
|
|
"--gutter-modified": "#469e98",
|
|
"--gutter-added": "#549159",
|
|
"--gutter-deleted": "#75869d",
|
|
"--diff-modified": "#2f4f63",
|
|
"--diff-inserted": "#294436",
|
|
"--diff-deleted": "#43494f",
|
|
|
|
// Shadows and window controls
|
|
"--shadow-popup": "0 6px 20px rgba(0, 0, 0, 0.45)",
|
|
"--shadow-dialog": "0 0 0 0.5px rgba(0, 0, 0, 0.6), 0 10px 24px rgba(0, 0, 0, 0.35), 0 24px 72px rgba(0, 0, 0, 0.45)",
|
|
"--traffic-close": "#ff5f57",
|
|
"--traffic-close-border": "#e0443e",
|
|
"--traffic-close-pressed": "#bf4942",
|
|
"--traffic-glyph": "#4d0000",
|
|
"--traffic-off": "#404955",
|
|
"--traffic-off-border": "#363e49",
|
|
|
|
// Additive
|
|
"--bg-tooltip": "#2a333f",
|
|
"--fg-tooltip": "#c9d1dc",
|
|
"--border-tooltip": "#2a333f",
|
|
"--bg-control": "#1f252e",
|
|
"--bg-control-hover": "#2a333f",
|
|
"--bg-active": "#36414f",
|
|
"--bg-scrim": "rgba(0, 0, 0, 0.45)",
|
|
"--fg-on-accent": "#ffffff",
|
|
"--shadow-tooltip": "0 4px 12px rgba(0, 0, 0, 0.4)",
|
|
"--shadow-balloon": "0 8px 24px rgba(0, 0, 0, 0.45)",
|
|
|
|
// Islands contract
|
|
"--bg-frame": "#1f252e",
|
|
"--bg-island": "#14171c",
|
|
"--bg-stripe-hover": "#ffffff17",
|
|
"--bg-stripe-selected": "#ffffff29",
|
|
"--fg-stripe-selected-active": "#ffffff",
|
|
"--fg-stripe-label": "#919fb1",
|
|
"--bg-tab-selected": "#1e3d40",
|
|
"--border-tab-selected": "#2b9e93",
|
|
"--bg-tab-selected-inactive": "#1f252e",
|
|
"--border-tab-selected-inactive": "#36414f",
|
|
"--bg-tab-hover": "#ffffff17",
|
|
"--border-editor-tabs": "#1f252e",
|
|
"--bg-tree-selected": "#22484b",
|
|
"--bg-tree-selected-inactive": "#2a333f",
|
|
"--bg-tree-hover": "#ffffff10",
|
|
"--bg-toolbar-hover": "#ffffff17",
|
|
"--bg-toolbar-pressed": "#ffffff29",
|
|
"--bg-toolbar-selected": "#285a5d",
|
|
"--bg-toolbar-selected-hover": "#2f6b6e",
|
|
"--bg-button-primary-hover": "#40a8a1",
|
|
"--fg-button-primary": "#ffffff",
|
|
"--bg-button": "transparent",
|
|
"--border-button": "#36414f",
|
|
"--bg-field": "#14171c",
|
|
"--bg-checkbox": "#14171c",
|
|
"--border-checkbox": "#515f72",
|
|
"--bg-toggle-on": "#338555",
|
|
"--fg-toggle-on": "#ffffff",
|
|
"--bg-toggle-off": "#14171c",
|
|
"--fg-toggle-off": "#637287",
|
|
"--border-toggle": "#515f72",
|
|
"--bg-toggle-knob": "#515f72",
|
|
"--focus-ring-soft": "#467c78",
|
|
"--scrollbar-thumb": "#ffffff33",
|
|
"--scrollbar-thumb-hover": "#ffffff59",
|
|
"--bg-search-match": "#ba9752",
|
|
"--bg-search-match-current": "#f2c55c",
|
|
"--fg-search-match": "#14171c",
|
|
"--bg-dialog": "#14171c",
|
|
"--bg-popup-inline": "#1f252e",
|
|
"--bg-popup-advertiser": "#1f252e",
|
|
"--bg-feedback-info": "#2a514f",
|
|
"--border-feedback-info": "#397e79",
|
|
"--bg-feedback-error": "#56272b",
|
|
"--border-feedback-error": "#80383e",
|
|
"--bg-feedback-warning": "#44321d",
|
|
"--border-feedback-warning": "#694820",
|
|
"--bg-feedback-success": "#203b2a",
|
|
"--border-feedback-success": "#29583c",
|
|
"--bg-counter": "#637287",
|
|
"--fg-counter": "#000000",
|
|
"--bg-progress-track": "#36414f"
|
|
}
|
|
}
|