Files
openidea/plugins/official/container-runner
l0ng-ai 2b80c75317 refactor(plugins): run only programs in plugin run targets (#2490)
Plugin run targets keep running programs, tests and package scripts inside
the target. Language servers and debuggers run on the host again:

- Remove the Language server targets settings page, the project-only
  `languageServerTargets` setting and the PHP / Node.js "Language server:
  run in target" option.
- Remove debugging through plugin targets; Debug on a plugin target is
  refused again. PHP Remote Debug and Python remote configurations with a
  path mapping debug programs in containers.
- Remove LSP / DAP message path mapping, read-only container documents and
  the `ide-core` path-mapping module that only these used.
- Run-target validation (API 1.5, unreleased) no longer has a `debug`
  operation, and debug start no longer takes a request id.
2026-11-10 15:27:31 +08:00
..
2026-11-09 08:40:40 +08:00

container-runner — API 1.4 example

Put this directory on PATH before installing/granting the plugin, so process:openidea-example-wrapper resolves to the included executable. Run Example: Register Container Wrapper in a trusted project. It registers a project run target, opens a keyed terminal, writes an Output channel and sets a window status item. The owned terminal-exited event updates that window. Disable withdraws the target; terminal/output lifetimes follow the host rules. The fake wrapper just executes argv locally and exits its demo terminal.

To adapt it to DDEV, declare process:ddev, change program to ddev, args to ["exec"], and use command overrides such as ("composer", ["composer"]). For Lando declare process:lando and supply its CLI's command prefixes. Only approved executables run; selecting one in Settings › Plugins reapproves/pins it. No shell command strings are evaluated. For mapped working directories set container_root and workdir_args using your wrapper's documented argv convention (for example --cwd {cwd}), or let the wrapper manage cwd. Environment forwarding also belongs to that wrapper.

Build from the repository root:

plugins/build.sh official/container-runner
cargo test --manifest-path plugins/official/container-runner/Cargo.toml
cargo run -p ide-host --bin openidea-plugin -- check plugins/official/container-runner

Install the built package folder through Settings › Plugins › Install from Disk. See the plugin guide and official/community policy.

On Windows, supply an equivalent approved executable; the included demo script requires a POSIX shell. The host API itself is cross-platform.