mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-14 16:07:52 +00:00
Plugins could show their own content in an editor tab (open-content-tab) but
could open the diff viewer only as the reply to one of that tab's actions. A
review plugin (a merge request's files, say) had no way to show a file's
before and after.
views.open-diff opens two texts in the invoking window's diff viewer, with
optional labels and title and a file name that picks the syntax highlighting;
web views send { op: "open-diff", ... }. The SDK wraps it as host::open_diff
with a mock. The plugin API moves to 1.7.0 (1.6.0 is released) and the checked-in
components are rebuilt.
35 lines
1.8 KiB
Plaintext
35 lines
1.8 KiB
Plaintext
package openidea:plugin@1.7.0;
|
||
|
||
/// Plugin-owned project data sources. Requires database.sources and project trust.
|
||
/// Runs on the Database subsystem's host, including on remote project servers.
|
||
interface database {
|
||
use types.{error};
|
||
use workspace.{project};
|
||
/// Non-secret connection settings. Id is private to this plugin (1–128 bytes).
|
||
/// Drivers: sqlite, postgres, mysql, sqlServer, clickhouse, oracle.
|
||
/// SQLite uses database as its file path, or a sqlite: URL. Options are driver properties.
|
||
/// URLs and options must not contain passwords, tokens or other credentials.
|
||
record data-source {
|
||
id: string,
|
||
name: string,
|
||
driver: string,
|
||
host: option<string>,
|
||
port: option<u16>,
|
||
database: option<string>,
|
||
user: option<string>,
|
||
url: option<string>,
|
||
options: list<tuple<string, string>>,
|
||
}
|
||
/// Creates or replaces only this plugin's source; unrelated file entries are preserved.
|
||
upsert-source: func(project: borrow<project>, source: data-source) -> result<_, error>;
|
||
/// Removes an owned source and its credentials; not-found for every other id.
|
||
remove-source: func(project: borrow<project>, id: string) -> result<_, error>;
|
||
/// Lists only this plugin's private ids, never connection settings or credentials.
|
||
sources: func(project: borrow<project>) -> result<list<string>, error>;
|
||
/// Writes an owned source's password directly to the Database secure store. Never readable.
|
||
set-credential: func(project: borrow<project>, id: string, password: string) -> result<_, error>;
|
||
/// Requests the project's usual connection/introspection in the invoking window.
|
||
/// Invalid outside a command/event of that project's window.
|
||
connect: func(project: borrow<project>, id: string) -> result<_, error>;
|
||
}
|