Files
openidea/plugins/official/test-runner
l0ng-ai a8036ce6fa feat(plugins): open two texts in the diff viewer (API 1.7) (#3055)
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.
2026-11-13 12:02:36 +08:00
..

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.