mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-07 10:16:03 -10:00
Renamed before API 1.3 ships, so tree and list views outside Services can reuse the pane (#1950); behaviour unchanged.
51 lines
1.6 KiB
Plaintext
51 lines
1.6 KiB
Plaintext
package openidea:[email protected];
|
|
|
|
/// What the pane beside the Services tree shows for a plugin's node.
|
|
interface detail-types {
|
|
/// A switch above a log; when on, `args` are appended and the program
|
|
/// starts again.
|
|
record log-toggle {
|
|
id: string,
|
|
label: string,
|
|
args: list<string>,
|
|
}
|
|
|
|
/// A program the IDE runs, its output followed in a log (ANSI stripped,
|
|
/// the last 5000 lines) until it exits or the pane closes. Needs the
|
|
/// plugin's `process:<program>` grant; runs in the project root.
|
|
record process-log {
|
|
program: string,
|
|
args: list<string>,
|
|
toggles: list<log-toggle>,
|
|
}
|
|
|
|
/// The body of a tab.
|
|
variant pane {
|
|
/// A centred message: an empty state or why there is nothing to show.
|
|
message(string),
|
|
/// Read-only text the user can select and copy, at most 1 MiB.
|
|
text(string),
|
|
log(process-log),
|
|
}
|
|
|
|
/// A tab of a node's pane; the IDE switches tabs without calling the plugin.
|
|
record tab {
|
|
id: string,
|
|
label: string,
|
|
body: pane,
|
|
}
|
|
}
|
|
|
|
/// The detail pane of the nodes of a plugin's `location = "services"` views.
|
|
/// The nodes themselves, the toolbar and their events come from
|
|
/// `view-provider` (`render` / `handle` of the view).
|
|
interface detail-provider {
|
|
use types.{error};
|
|
use invocation.{invocation};
|
|
use detail-types.{tab};
|
|
|
|
/// The tabs of node `key` of view `view` (at most 8), rendered when the
|
|
/// node is selected and again after `views.refresh(view)`.
|
|
detail: func(view: string, key: string, ctx: borrow<invocation>) -> result<list<tab>, error>;
|
|
}
|