Static [[contributes.fileIcons]] entries match file names only, so a plugin could not tell a Helm chart folder, its templates or a Kustomize overlay from any other YAML file or folder. API 1.8 adds decorations.set-file-icon and the batched set-file-icons (up to 10,000 paths per set, requires project.read): a plugin assigns one of its declared file icons to an exact file or plain-folder path, shown in the project tree and editor tabs after the user's own file type icons. Under engines.openidea = "^1.8" a fileIcons entry may omit patterns, for icons used only this way. Both WIT copies, the SDK (host functions and mock), the plugins README and the bundled components are updated. Co-authored-by: dengliu <5108773+dengliu@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.