Gemeinsame Funktionen
Gemeinsame Funktionen sind wichtige Bausteine für Ihre Erweiterungen. Fast alle Erweiterungen nutzen einige dieser Funktionalitäten. Hier erfahren Sie, wie Sie diese nutzen können.
Befehl
Befehle sind zentral für die Funktionsweise von VS Code. Sie öffnen die Befehlspalette, um Befehle auszuführen, weisen benutzerdefinierte Tastenkombinationen zu Befehlen zu und rufen Befehle über das Kontextmenü auf.
Eine Erweiterung kann
- Befehle mit der
vscode.commandsAPI registrieren und ausführen. - Befehle über den Beitragspunkt
contributes.commandsin der Befehlspalette verfügbar machen.
Erfahren Sie mehr über Befehle im Thema Erweiterungsleitfäden / Befehl.
Konfiguration
Eine Erweiterung kann erweiterungsspezifische Einstellungen mit dem Beitragspunkt contributes.configuration beitragen und diese mit der workspace.getConfiguration API lesen.
Tastenkombination
Eine Erweiterung kann benutzerdefinierte Tastenkombinationen hinzufügen. Lesen Sie mehr in den Themen contributes.keybindings und Tastenkombinationen.
Kontextmenü
Eine Erweiterung kann benutzerdefinierte Kontextmenüelemente registrieren, die an verschiedenen Stellen der VS Code-Benutzeroberfläche bei Rechtsklick angezeigt werden. Lesen Sie mehr im Beitragspunkt contributes.menus.
Datenspeicherung
Es gibt fünf Optionen zum Speichern von Daten
ExtensionContext.workspaceState: Ein Arbeitsbereichsspeicher, in den Sie Schlüssel/Wert-Paare schreiben können. VS Code verwaltet den Speicher und stellt ihn wieder her, wenn derselbe Arbeitsbereich erneut geöffnet wird.ExtensionContext.globalState: Ein globaler Speicher, in den Sie Schlüssel/Wert-Paare schreiben können. VS Code verwaltet den Speicher und stellt ihn bei jeder Aktivierung der Erweiterung wieder her. Sie können Schlüssel/Wert-Paare im globalen Speicher selektiv synchronisieren, indem Sie die Schlüssel für die Synchronisierung mit der MethodesetKeysForSyncaufglobalStatefestlegen.ExtensionContext.storageUri: Eine arbeitsbereichsspezifische Speicher-URI, die auf ein lokales Verzeichnis verweist, auf das Ihre Erweiterung Lese-/Schreibzugriff hat. Dies ist eine gute Option, wenn Sie große Dateien speichern müssen, die nur vom aktuellen Arbeitsbereich aus zugänglich sind.ExtensionContext.globalStorageUri: Eine globale Speicher-URI, die auf ein lokales Verzeichnis verweist, auf das Ihre Erweiterung Lese-/Schreibzugriff hat. Dies ist eine gute Option, wenn Sie große Dateien speichern müssen, die von allen Arbeitsbereichen aus zugänglich sind.ExtensionContext.secrets: Ein globaler Speicher für Geheimnisse (oder alle sensiblen Informationen), der verschlüsselt wird. Diese werden nicht über Maschinen hinweg synchronisiert. Für VS Code Desktop nutzt dies die safeStorage API von Electron. Für VS Code für das Web wird eine Double Key Encryption (DKE)-Implementierung verwendet.
Der Erweiterungskontext ist für die Funktion activate in der Erweiterungs-Einstiegsdatei verfügbar.
Beispiel für setKeysForSync
Wenn Ihre Erweiterung bestimmte Benutzereinstellungen über verschiedene Maschinen hinweg beibehalten muss, stellen Sie die Einstellungen über Einstellungen synchronisieren mithilfe von vscode.ExtensionContext.globalState.setKeysForSync bereit.
Sie können das folgende Muster verwenden
// on activate
const versionKey = 'shown.version';
context.globalState.setKeysForSync([versionKey]);
// later on show page
const currentVersion = context.extension.packageJSON.version;
const lastVersionShown = context.globalState.get(versionKey);
if (isHigher(currentVersion, lastVersionShown)) {
context.globalState.update(versionKey, currentVersion);
}
Das Teilen von Einstellungen über Maschinen hinweg kann helfen, das Problem zu vermeiden, dass Benutzer mehrere Instanzen einer Willkommens- oder Update-Seite sehen, indem abgewiesene oder angesehene Flags geteilt werden.
Benachrichtigungen anzeigen
Fast alle Erweiterungen müssen dem Benutzer zu einem bestimmten Zeitpunkt Informationen anzeigen. VS Code bietet drei APIs zum Anzeigen von Benachrichtigungsmeldungen unterschiedlicher Schweregrade
Schnellauswahl
Mit der vscode.QuickPick API können Sie Benutzereingaben einfach sammeln oder dem Benutzer eine Auswahl aus mehreren Optionen ermöglichen. Das QuickInput-Beispiel veranschaulicht die API.
Dateiauswahl
Erweiterungen können die window.showOpenDialog API verwenden, um den systemeigenen Dateiauswahldialog zu öffnen und Dateien oder Ordner auszuwählen.
Ausgabekanäle
Das Ausgabefenster zeigt eine Sammlung von OutputChannel an, die sich hervorragend für Protokollierungszwecke eignen. Sie können sie mit der window.createOutputChannel API einfach nutzen.
Fortschritts-API
Sie können die vscode.Progress API verwenden, um dem Benutzer Fortschrittsaktualisierungen zu melden.
Der Fortschritt kann mit der Option ProgressLocation an verschiedenen Stellen angezeigt werden
- Im Benachrichtigungsbereich
- In der Versionskontrollansicht
- Allgemeiner Fortschritt im VS Code-Fenster
Das Fortschrittsbeispiel veranschaulicht diese API.