mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-08 08:52:12 +00:00
Plugins can now ship a web page as the UI of a view or custom editor (`web = "web/index.html"`), so editors built on web libraries are plugins rather than part of the core. - Web views: every file under the page's directory is part of the package (checked, copied on install, covered by the digest and signature) and served through the `openidea-plugin` URL scheme, under a per-revision path with a CSP of its own, into an `<iframe sandbox="allow-scripts">`. An update or reinstall reloads open pages. - Frame bridge (`window.openidea`), shared by html bodies and web pages: theme, messages to the plugin's code, `document.get/edit/replace/onChange` (versioned edits that join the text editor's undo history, Save and dirty state), `saveFile`/`openFile` through the IDE's dialogs, and IDE shortcuts the page leaves alone. - Custom editor layouts: tab, split (Editor and X) or preview over the text editor, switchable from the tab's actions. - New points `fileIcons` and `fileTemplates`; new optional capability `clipboard` for web views. - Excalidraw official plugin: `.excalidraw` / `.excalidraw.json` open as an interactive canvas kept in step with the file's text, with self-hosted fonts, PNG/SVG export, images, file icons, a New Drawing template and JSON highlighting. Closes #732. - Fixes: a lock-order deadlock between listing plugins and refreshing project pins; the dev server ignored edits under `src/features/plugins`. - `plugins/build.sh` builds and checks web pages; CI typechecks and tests them. Co-authored-by: Deng Liu <[email protected]>
31 lines
643 B
JSON
31 lines
643 B
JSON
{
|
|
"$schema": "./node_modules/oxfmt/configuration_schema.json",
|
|
"printWidth": 120,
|
|
"semi": true,
|
|
"singleQuote": false,
|
|
"trailingComma": "all",
|
|
"sortPackageJson": false,
|
|
"ignorePatterns": [
|
|
"dist",
|
|
"target",
|
|
"src/bindings.ts",
|
|
"src/editor/core/cm/angular/parser*.ts",
|
|
"src/editor/core/cm/jsp/parser*.ts",
|
|
"docs/plugins/themes.md",
|
|
"pnpm-lock.yaml",
|
|
"**/*.toml",
|
|
"fixtures",
|
|
"plugins/*/web",
|
|
"plugins/official/*/web",
|
|
"crates/**/tests/fixtures"
|
|
],
|
|
"overrides": [
|
|
{
|
|
"files": ["**/*.md"],
|
|
"options": {
|
|
"embeddedLanguageFormatting": "off"
|
|
}
|
|
}
|
|
]
|
|
}
|