mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-14 16:07:52 +00:00
Plugins read problems from a host-owned snapshot that records every Diagnostics event per file and producer, instead of the UI-reported Problems reports, so what a plugin sees no longer depends on window lifetime or the invoking window. Adds the problems-changed workbench event (plugin API 1.8.0, gated at needs_api 8), editor focus events for files of other windows, severity style previews in plugin settings, and lays plugin annotations on the line-end chain before code-vision hints and inline blame. Components and fixtures are rebuilt for API 1.8.0. Co-authored-by: muutot <92625353+muutot@users.noreply.github.com>
27 lines
1.8 KiB
Plaintext
27 lines
1.8 KiB
Plaintext
package openidea:plugin@1.8.0;
|
|
|
|
/// Editor and project-tree decorations (API 1.4). Requires project.read. An editor set
|
|
/// follows its file: the file's own project, or the nearest one when it is outside them all.
|
|
/// Tree sets are rooted in an open project. Sets belong to the plugin and disappear when it stops.
|
|
/// Styles: highlight, search, added, modified, removed, warning, error, info,
|
|
/// typo, weak, underline, strikethrough, muted. Unknown styles are ignored. Theme tokens only.
|
|
interface decorations {
|
|
use types.{error, range};
|
|
/// An editor annotation; after is plain text shown after the range.
|
|
record decoration { range: range, style: string, hover: option<string>, after: option<string> }
|
|
/// A project-tree annotation; badge is at most two Unicode characters.
|
|
record file-decoration { badge: option<string>, style: string, tooltip: option<string> }
|
|
/// Replace this set for a file. At most 10,000 items/file and 50 editor sets/plugin.
|
|
/// Metadata is bounded to 4 MiB per plugin. Unknown styles are ignored.
|
|
set: func(path: string, set-id: string, items: list<decoration>) -> result<_, error>;
|
|
/// Remove this editor set from every file/project.
|
|
clear: func(set-id: string) -> result<_, error>;
|
|
/// Replace this set's tree annotation for a file; at most 50 tree sets/plugin.
|
|
set-file: func(path: string, set-id: string, item: file-decoration) -> result<_, error>;
|
|
/// Remove this tree set from every file/project.
|
|
clear-file: func(set-id: string) -> result<_, error>;
|
|
/// Replace this set's tree annotation for a file with a note shown after its name (API 1.7):
|
|
/// one line of at most 200 characters, with an optional tooltip.
|
|
set-file-note: func(path: string, set-id: string, note: string, tooltip: option<string>) -> result<_, error>;
|
|
}
|