docs(sdk): feedback visible via windows.open + séparation Codex skills documentées — commands-and-feedback (surface normative + exemple), layouts-react (type↔contributes.layouts, capacité ui), manifest (exemple complet menu+layout+ui), windows (contrat ui, retour structuré), packaging-distribution (idea_plugin_install_from_directory, sémantique plugin_reloaded/ESM), nouveau codex-skills-and-idea-plugins, README (lien) — #280 QA verte
This commit is contained in:
@ -147,6 +147,61 @@ development loop.
|
||||
contribution can be mounted inside an IdeA layout cell or opened in a detached OS
|
||||
window. Do not add a separate manifest contribution type for windows.
|
||||
|
||||
For a command that opens a visible plugin window, declare both the menu command
|
||||
and the layout type:
|
||||
|
||||
```json
|
||||
{
|
||||
"ideaPluginManifestVersion": 1,
|
||||
"id": "com.example.unity-plugin",
|
||||
"displayName": "Unity Developer Tools",
|
||||
"publisher": "Example",
|
||||
"version": "0.1.0",
|
||||
"description": "Unity integration for IdeA.",
|
||||
"main": "dist/index.js",
|
||||
"engines": {
|
||||
"idea": ">=0.1.0"
|
||||
},
|
||||
"trustLevel": "full",
|
||||
"capabilities": ["ui", "tooling"],
|
||||
"activationScope": "app",
|
||||
"contributes": {
|
||||
"menus": [
|
||||
{
|
||||
"id": "unity-plugin.menu",
|
||||
"label": "Unity Developer Tools",
|
||||
"topLevel": true,
|
||||
"order": 100
|
||||
}
|
||||
],
|
||||
"menuItems": [
|
||||
{
|
||||
"id": "unity-plugin.health.item",
|
||||
"targetMenuId": "unity-plugin.menu",
|
||||
"label": "Health",
|
||||
"command": "unity-plugin.health",
|
||||
"order": 10,
|
||||
"when": "projectOpen"
|
||||
}
|
||||
],
|
||||
"layouts": [
|
||||
{
|
||||
"type": "unity-plugin.health",
|
||||
"label": "Unity Health",
|
||||
"component": "UnityHealth",
|
||||
"order": 10
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`capabilities: ["ui"]` is required when a plugin relies on layouts or windows as
|
||||
human-facing UI. Add `"tooling"` when the same plugin uses workspace, task,
|
||||
tooling or terminal services. The `contributes.layouts[].type` value is the
|
||||
public id used by both `ctx.layouts.register({ type, component })` and
|
||||
`ctx.services.windows.open({ layoutType })`.
|
||||
|
||||
Contribution ids are part of the runtime contract:
|
||||
|
||||
- commands can only register ids declared by `contributes.menuItems[*].command`;
|
||||
|
||||
Reference in New Issue
Block a user