ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

Authoring Python Extensions

Hinweis: Wenn Sie neu in der VS Code-Extension-Entwicklung sind, sollten Sie zuerst das Tutorial Ihre erste Erweiterung lesen und versuchen, eine einfache Hello World-Erweiterung zu erstellen.

Die Python-Erweiterung bietet APIs, damit andere Erweiterungen mit Python-Umgebungen auf dem Computer des Benutzers arbeiten können. Schauen Sie sich das @vscode/python-extension npm-Modul an, das Typen und Hilfs-Utilities enthält, um von Ihrer Erweiterung auf diese APIs zuzugreifen.

Python-Erweiterungsvorlage

Die Python-Erweiterungsvorlage hilft Ihnen beim Erstellen einer Visual Studio Code-Erweiterung für Ihr bevorzugtes Python-Tool. Dies kann ein Linter, ein Formatter, eine Code-Analyse oder all dies zusammen sein. Die Vorlage bietet Ihnen die grundlegenden Bausteine, die Sie benötigen, um eine Erweiterung zu erstellen, die Ihr Tool in VS Code integriert, und sie hat bereits Zugriff auf die oben genannten Python-APIs.

Programmiersprachen und Frameworks

Die Erweiterungsvorlage besteht aus zwei Teilen: dem Erweiterungsteil und dem Sprachserverteil. Der Erweiterungsteil ist in TypeScript geschrieben, und der Sprachserverteil ist in Python über die pygls (Python Language Server)-Bibliothek geschrieben.

Sie werden hauptsächlich am Python-Teil des Codes arbeiten, wenn Sie diese Vorlage verwenden. Sie werden Ihr Tool mit dem Erweiterungsteil über das Language Server Protocol integrieren. pygls funktioniert derzeit mit der Version 3.16 von LSP.

Der TypeScript-Teil kümmert sich um die Arbeit mit VS Code und seiner Benutzeroberfläche. Die Erweiterungsvorlage enthält einige vordefinierte Einstellungen, die von Ihrem Tool verwendet werden können. Wenn Sie neue Einstellungen hinzufügen müssen, um Ihr Tool zu unterstützen, müssen Sie mit etwas TypeScript arbeiten. Die Erweiterungsvorlage enthält Beispiele für einige Einstellungen, und Sie können sich auch von unserem Team entwickelte Erweiterungen für einige der beliebten Tools ansehen.

Voraussetzungen

  1. VS Code 1.64.0 oder höher
  2. Python 3.7 oder höher
  3. node >= 14.19.0
  4. npm >= 8.3.0 (npm wird mit Node installiert. Überprüfen Sie die npm-Version. Verwenden Sie npm install -g npm@8.3.0 zum Aktualisieren.)
  5. Python-Erweiterung für VS Code

Sie sollten wissen, wie man Python-virtuelle Umgebungen erstellt und damit arbeitet.

Erste Schritte

Um zu beginnen, folgen Sie den Anweisungen in der README der Vorlage. Dort erfahren Sie, wie Sie die Vorlage zur Erstellung Ihres Repositorys verwenden und wie Sie die notwendigen Tools (z. B. den Task-Runner nox) und optionalen Abhängigkeiten (Testunterstützung) installieren.

Die README enthält die aktuellsten Anweisungen und beschreibt auch im Detail, wie Sie die Platzhalter in der package.json der Erweiterung anpassen (<pythontool-module>, <pythontool-display-name> usw.).

Funktionen der Vorlage

Nachdem Sie Ihre Erweiterung über die Vorlage erstellt haben, werden die folgenden Erweiterungsbeiträge enthalten sein. Angenommen, <pytool-module> wurde durch mytool und <pytool-display-name> durch My Tool ersetzt.

  1. Ein Befehl My Tool: Restart Server (Befehls-ID: mytool.restart).
  2. Folgende Einstellungen
    • mytool.logLevel
    • mytool.args
    • mytool.path
    • mytool.importStrategy
    • mytool.interpreter
    • mytool.showNotification
  3. Folgende Trigger für die Aktivierung der Erweiterung
    • Bei Sprache python.
    • Bei Datei mit der Erweiterung .py im geöffneten Workspace.
    • Bei Befehl mytool.restart.
  4. Ausgabekanal für die Protokollierung Ausgabe > My Tool.

Integration Ihres Tools

Die generierte Datei bundled/tool/server.py ist der Ort, an dem Sie die meisten Ihrer Änderungen vornehmen werden. TODO-Kommentare in der Datei weisen auf die verschiedenen Anpassungspunkte hin. Suchen Sie auch nach TODO-Kommentaren an anderen Stellen in der Vorlage, wie z. B. in anderen Python- und Markdown-Dateien. Sie sollten die LICENSE-Datei überprüfen, auch wenn Sie die MIT-Lizenz beibehalten möchten.

Beispiele

Es gibt mehrere Beispielimplementierungen, die aus der Vorlage erstellt wurden

  • Pylint - implementiert Linting und Code Actions bei Datei öffnen, speichern und schließen.
  • Flake8 - implementiert Linting und Code Actions.
  • Black Formatter - integriert den Black formatter.
  • autopep8 - integriert den autopep8 formatter.
  • isort - fügt Code Actions zum Sortieren von Imports hinzu.

Sie können auch die Language Server Protocol-Spezifikation einsehen, um die pygls-Sprachserverintegration besser zu verstehen.

Erweiterungsentwicklung

Die README der Vorlage beschreibt im Detail den Entwicklungszyklus-Support, der mit der Vorlage enthalten ist. Die Vorlage verfügt über Befehle und Konfigurationen, damit Sie Ihre Erweiterung erstellen, ausführen, debuggen und testen können.

Wenn Sie während der Entwicklung auf Probleme stoßen, gibt es einen Fehlerbehebungsbereich, der bei häufigen Problemen hilft.

Paketierung und Veröffentlichung

Bevor Sie Ihre Erweiterung veröffentlichen, müssen Sie die Felder der package.json der Erweiterung (wie publisher und license) für Ihre spezifische Erweiterung aktualisieren. Sie sollten auch die unterstützenden Markdown-Dateien (CODE_OF_CONDUCT.md, CHANGELOG.md usw.) aktualisieren.

Sobald Ihre Erweiterung zur Veröffentlichung bereit ist, gibt es eine nox build-package-Aufgabe, um eine .vsix-Datei zu erstellen, die Sie dann auf Ihre Erweiterungsverwaltungsseite hochladen können.

Wenn Sie neu in der Erstellung und Veröffentlichung von VS Code-Erweiterungen sind, empfehlen wir Ihnen, die Best Practices der Haupt-VS Code Erweiterungsentwicklung-Themen zu befolgen. Hier finden Sie Anleitungen, die Ihnen helfen, Ihre Erweiterung im Marketplace gut aussehen zu lassen und ein verifizierter Publisher zu werden, damit sich die Benutzer beim Installieren Ihrer Erweiterung sicher fühlen.

© . This site is unofficial and not affiliated with Microsoft.