docs(sdk): feedbacks menu host génériques — #329 ; README + docs commands-and-feedback/menus/services : failed/skipped sans message Git codé en dur ni payload brut, opened/alreadyOpen succès silencieux, logs host pluginId/commandId/status/reason/message, vue de diagnostic reste accessible quand Git/ADB/Gradle ou autre outil optionnel manque, workspace.execTool rappelé ; QA verte : npm run check, git diff --check
This commit is contained in:
@ -33,7 +33,10 @@ Then register the command id:
|
||||
```ts
|
||||
export function activate(ctx: ActivateContext): void {
|
||||
const disposable = ctx.commands?.registerCommand("hello-plugin.open", async () => {
|
||||
await ctx.services?.windows.open({ layoutType: "hello-plugin.dashboard" });
|
||||
const win = await ctx.services?.windows.open({ layoutType: "hello-plugin.dashboard" });
|
||||
return win
|
||||
? { status: "opened", alreadyOpen: win.alreadyOpen }
|
||||
: { status: "skipped", reason: "ui-service-unavailable", message: "UI service unavailable." };
|
||||
});
|
||||
if (disposable) ctx.subscriptions.push(disposable);
|
||||
}
|
||||
@ -47,9 +50,16 @@ export function activate(ctx: ActivateContext): void {
|
||||
- A missing command handler is surfaced by the host as a retryable reload error;
|
||||
menu clicks must never fail silently.
|
||||
- A registered handler's rejected promise is not swallowed: the host logs the
|
||||
plugin id, command id and reason, then presents a retryable error. In
|
||||
plugin id, command id, status, reason and message, then presents a generic
|
||||
retryable error without raw payloads. In
|
||||
particular, return/await `services.windows.open(...)` so native-window
|
||||
failures follow this path.
|
||||
- An open/focus handler returns `status: "opened"` whether `alreadyOpen` is
|
||||
`false` (new window) or `true` (existing window focused). Neither success
|
||||
produces an alert.
|
||||
- Keep diagnostic views reachable when optional executables such as Git, ADB or
|
||||
Gradle are missing. Let the view explain that degraded state instead of
|
||||
skipping the menu action before opening it.
|
||||
- A handler owns precondition checks and feedback. See
|
||||
[Commands And Feedback](commands-and-feedback.md).
|
||||
- Menu item `when` expressions are evaluated by the host; unsupported or false
|
||||
|
||||
Reference in New Issue
Block a user