Skip to main content

add-command

Create new VS Code commands with all required boilerplate

Zur Installation springen

Quellinformationen

Repository
gitkraken/vscode-gitlens
Letzte Quellaktivität
9. September 2026 um 01:41
Erkannte Sprache von SKILL.md
Englisch
Sterne
9.936
Forks
1.801

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
add-command
description
Create new VS Code commands with all required boilerplate
# /add-command - Create New Command Scaffold a new VS Code command with all required boilerplate. ## Usage ``` /add-command [name] ``` ## Information Needed 1. **Command ID** — e.g., `myNewFeature` (becomes `gitlens.myNewFeature`) 2. **Label** — Display name in command palette 3. **Base class**: - `GlCommandBase` — No editor required (opening panels, showing pickers) - `ActiveEditorCommand` — Requires active editor - `ActiveEditorCachedCommand` — Like ActiveEditorCommand with "repeat last command" support 4. **Variants** (optional): `:views`, `:graph`, `:scm` suffixes for context menus ## Files to Create/Modify ### 1. Command File: `src/commands/{commandName}.ts` ```typescript import type { TextEditor, Uri } from 'vscode'; import type { Container } from '../container.js'; import { command } from '../system/-webview/command.js'; import { {BaseClass} } from './commandBase.js'; export interface {CommandName}CommandArgs { // Define args if needed } @command() export class {CommandName}Command extends {BaseClass} { constructor(private readonly container: Container) { super([ 'gitlens.{commandId}', // Add variants here ]); } async execute(editor?: TextEditor, uri?: Uri, args?: {CommandName}CommandArgs): Promise<void> { // TODO: Implement } } ``` ### 2. Import in `src/commands.ts` ```typescript import './commands/{commandName}.js'; ``` ### 3. Add to `contributions.json` Under `"commands"` key: ```json "gitlens.{commandId}": { "label": "{Label}", "category": "GitLens", "commandPalette": "gitlens:enabled" } ``` For `:views` variant: ```json "gitlens.{commandId}:views": { "label": "{Label}", "icon": "$(icon-name)", "menus": { "view/item/context": [{ "when": "viewItem =~ /gitlens:/ && gitlens:enabled", "group": "1_gitlens" }] } } ``` ### 4. Run Generation ```bash pnpm run generate:contributions && pnpm run generate:commandTypes ``` ## Common `when` Clauses - `gitlens:enabled` — Extension is enabled - `!gitlens:readonly` — Not in readonly mode - `!gitlens:untrusted` — Workspace is trusted - `gitlens:plus` — Pro features available - `viewItem =~ /gitlens:commit/` — On a commit node - `viewItem =~ /gitlens:branch/` — On a branch node ## Localization Every user-facing string in the new code (titles, notifications, quick pick items, placeholders, webview text, ARIA labels) must be a literal `l10n.t()` message — `{ l10n }` from `vscode` in host code, `* as l10n` from `@vscode/l10n` in webviews and packages. Run `pnpm run generate:l10n` afterward so the catalog check passes. Manifest text (command titles, view names) goes through `contributions.json` → `package.nls.json` as before. See `docs/localization.md`.
Auf GitHub ansehen