Plugins could not rely on each other: nothing said "this plugin needs that one", and a plugin had no way to let others extend it. Plugin API 1.5 adds both. - `[[depends]]` in `plugin.toml` (version range, `optional`). A plugin whose required dependency is missing, disabled, the wrong version, cyclic or unable to run is shown as Blocked with the reason and starts once the dependency can run again. Plugins start in dependency order; disabling a plugin others need asks first. Granting or revoking a dependency's permissions also settles its dependents. - `[[extension-points]]` declares points with typed fields. Dependents contribute to them from `plugin.toml` (checked at install time); the owner reads them through the read-only `extensions` interface (`host::extension_contributions`) and hears changes through the `extensions-changed` event. The plugin details page shows what a plugin requires, who requires it, and its extension points with their contributors. Covered by the `ext-owner` fixture and `plugin_dependencies.rs`. Co-authored-by: ntbang0901 <121003585+ntbang0901@users.noreply.github.com>
test-runner — API 1.4 example
Put this directory on PATH before installing/granting the plugin, so
process:openidea-example-tests resolves to the included executable. Copy
example.tests to a trusted project. Its presence enables the dynamic
run-configurations export. Open it as plain text and click a gutter run
button, or use Example: Run Tests / the Run selector for all tests.
The gutter command appends the test name as a filter to run.start. The fake
executable prints a deliberately tiny start NAME / pass NAME protocol;
test-results.parse retains split lines and emits stable test ids. Replace
that protocol/parser and executable to integrate a real framework. This is an
API example for integrating a test framework.
Build from the repository root:
plugins/build.sh official/test-runner
cargo test --manifest-path plugins/official/test-runner/Cargo.toml
cargo run -p ide-host --bin openidea-plugin -- check plugins/official/test-runner
Install the built package folder through Settings › Plugins › Install from Disk. See the plugin guide and official/community policy.
test-results.select-tests returns the selected names as the complete argv for
openidea-example-tests, enabling Rerun Failed Tests and Run from the test tree.
It returns None for unknown configurations or paths this example cannot filter.