Erweiterungen und Ökosystem-Unterstützung

Eines der Hauptziele von Visual Studio Live Share ist, damit Entwickler, mit dem Komfort ihrer Favoriten, zusammenarbeiten und hochgradig anpassbare Tools. Auf diese Weise in vielen Fällen möglich, Ad-hoc-Interaktionen sind während des Bestehens der visuell vertraut und ergonomische, unabhängig davon, ob was mit hilfreich. Zu diesem Zweck ist es wichtig, dass Teilnehmer innerhalb einer zusammenarbeitssitzung sind auch weiterhin Erweiterungen, die unterstützen ihre persönliche Einstellungen und Workflows (z. B. Farbsymbole/Designs, tastaturzuordnungen, -Editor Produktivitätssteigerung).

Darüber hinaus werden um machen das Act eine zusammenarbeitssitzung als verknüpfen instant wie möglich bleibt dabei sehr produktive, das Ziel von Visual Studio Live Share aktivieren die Gäste automatisch die projektspezifische Tools nutzen, die dem Host freigegeben haben. Auf diese Weise können Sie einfach auf einen Link klicken, starten Sie Ihr bevorzugtes Tool und zusammenarbeiten, ohne zusätzliche Einrichtung. Um dies zu erreichen, ist es wichtig, Erweiterungen, die power den Kern bearbeiten, erstellen und Debuggen von Workflows, sind vom Host zum Gast, transparent "Remote", sodass automatischer Vervollständigung, Gehe zu Definition wie, und das Debuggen " Arbeiten Sie einfach"ein.

Dieses Dokument behandelt die aktuelle bekannte Zustand für das Ökosystem der vast-Erweiterung sowie eine "Scorecard" für die oben genannten Ziele. Wenn eine Erweiterung, die diese Kriterien nicht erfüllen, und ist wichtig, Ihre persönlichen Workflows auftritt, bitte lassen Sie uns wissen!

Benutzer-spezifische Erweiterungen

Erweiterungen, die benutzerspezifische Anpassungen unterstützen muss für den Host, Geschäfts- und sollte für alle Gäste funktionieren. Wenn eine Erweiterung nicht ordnungsgemäß für den Host funktioniert, wäre eine Regression, und ist wahrscheinlich ein Fehler in Visual Studio Live Share (bitte ein Problem , wenn Sie eine finden Sie unter!). Wenn eine Erweiterung nicht für eine gastanwendung erwartungsgemäß verhält, ist möglicherweise eine Änderungen in die Erweiterung selbst, und wir arbeiten mit dem Ökosystem zu Adresse/diese Szenarien zu verbessern.

Visual Studio Code

Kategorie Beispiele für Guest-Supported? Zusammenarbeit?
Farbdesigns Ein dunkles Pro, Ausgabe Farbauswahl, Rainbow Zeichenfolge, gefärbt Regionen, eingerückt Block Hervorhebung, TODO-Hervorhebung, Klammer Paar Farbauswahl N/V
Symbolsätze Vscode-Symbole, Klassische Symbole mit Visual Studio N/V
Tastenbindungen VIM, IntelliJ IDEA Keybindings, Emacs-freundliche Tastaturlayout N/V
Codeausschnitte Angular v5 Codeausschnitte, HTML-Ausschnitte, SVG-Symbole, Header-Datei N/V 1
Organisation Einstellungssynchronisierung, Projektmanager, beschränken, Prüfpunkte, TODO-Parser, Favoriten (❌), Lesezeichen (❌) 2 N/V 3
Produktivität GitLens, automatisch umbenennen Tag, Code Gliederung, Farbe der Hervorhebung, erhöhen Sie die Auswahl, Bracketeer, Bildvorschau, JSON-Hilfsprogramm (zeigen), Farbwähler, Kopieren von Word im Cursor, CodeMetrics (CodeLens) Git-Co-Autoren, JavaScript weiter zu steigern (CodeActions), Turbo Konsolenprotokoll, Gehe zum nächsten/vorherigen Element, AutoBildlauf-, NPM-Import-Version (❌), importieren Kosten (❌) 2 3
REPLs REST-Client, Code Runner, Quokka.js, R 4 3
Ressourcen-Manager MSSQL, ftp-Simple-, Azure Functions, Docker, Brew-Dienste 5 3

1 , sofern ein Benutzer bereits mit einem Codeausschnitt vertraut sind wurde, wäre nicht erwarten, dass zur Verfügung stehen, und daher, sodass sie die freigegebene nicht unbedingt sinnvoll.

2 dieser Erweiterung Kategorien sind so vielfältig, dass es unmöglich zu sagen ist. sie funktionieren. Allerdings in der Theorie werden, und den Schlüssel, die nicht nachverfolgt.

3 dieser Erweiterung Kategorien von gemeinsamen Erfahrungen profitieren können, und daher benötigen wir wissen, dass die Endbenutzer-Feedback!

4 diese erfordern, dass den Gast die Common Language Runtime Clienttools installiert haben (z. B. Node.js), und arbeiten, indem Sie Code lokal ausführen.

5 diese arbeiten, indem Sie eine Verbindung mit einem Server irgendeiner Art und können mit beiden zentralisierten Server, Server, die der Gast freigegeben haben arbeiten.

Visual Studio

Demnächst.

Projekt-spezifische Erweiterungen

Host installierten Erweiterungen, die den Kern bearbeiten, erstellen und Debuggen einer Anwendung zu unterstützen, und beziehen sich auf eine Sprache/Plattform/Library/SDK, sollte automatisch für Gäste verfügbar sein, ohne dass diese etwas installieren. Auf diese Weise Hosts können Einrichten ihrer Umgebung zur Unterstützung der Produktivität der Entwicklung eines Projekts und ermöglichen ihren Gästen, sofort ohne zusätzlichen Voraussetzungen zu verknüpfen. Da projektspezifischen Erweiterungen subjektive oder persönliche in keiner Weise nicht sind, können diese deterministisch vom Host und Gast, gemeinsam genutzt werden ohne Beeinträchtigung der vertrauten Umgebung in den Köpfen der Entwickler.

Darüber hinaus zur Unterstützung von projektspezifischen Erweiterungen, die ein Gast installiert sind, aber der Host nicht, sie würden im Idealfall benutzerfreundlichkeit beeinträchtigt, noch funktionsfähig (z. B. Einzeldatei IntelliSense-Meldungen erhalten, dass Sie ein Dokument formatieren).

Kategorie Beispiele für geteilt? Guest-Supported?
Grammatiken / syntaxhervorhebung Shell Fischen, Nginx, Vetur, DotEnv, ES6-Zeichenfolge HTML, Todo +, Rainbow CSV
Sprachdienste YAML, Path Intellisense, ARM 1 2
JSON-Schemas Azure Functions
Linter ESLint, Markdownlint, Code Rechtschreibprüfung, PHPCS 2
Formatierungsprogramme Schönere, verschönern 2
Debugger Python, Debugger for Chrome 3 4
Test Runner Java-Testprogramm, Mocha-Randleiste, Postman Runner, Jest Runner, Neptune 5 2
Benutzerdefinierte Datei Vorschauen SVG-Vorschau, GraphViz, Markdown-Bildgröße
Datei oder eines Projekts Generatoren Azure Functions, C-/C++-Projekt-Generator 6
Quellcodeverwaltungsanbieter SVN, Hg

1 derzeit nur C# und JavaScript/TypeScript mit mehr Unterstützung in Kürze verfügbar.

2 unterstützt nur das aktuelle Dokument, da Gäste nicht über den Zugriff auf lokale Dateien verfügen.

3 die Core-Debuggen wird freigegeben, jedoch keine gestarteten Server werden nicht automatisch weitergeleitet.

4 Gäste keine haben eine lokale Kopie der app, und daher die ausgeführte app und alle Debugsitzungen, auf dem Computer des Hosts zu starten.

5 die Ausgabe eines Testlaufs müsste, dass alle sich ergebenden Terminals, Ausgabebereiche und Fehler auch für Gäste freigegeben wurden.

6 Verwenden dieser Node.js fs Modul direkt auf Dateien zu erstellen, die funktionieren würde.

Visual Studio

Demnächst.

Bekannte Probleme

Im folgenden sind aktuell bekannte Erweiterung Probleme, die können verhindern, dass diese Arbeiten für Gäste innerhalb des Kontexts einer zusammenarbeitssitzung (zusammen mit deren umgehungen aufgelistet), und daher können Workflow auswirken:

Visual Studio Code

Problem Grund Problemumgehung
Verwenden das Node.js fs Modul erkennen/lesen-Dateien (z. B. eine Config-Datei) oder das Auflisten von Verzeichnissen (und Sie keinen Sprachdienst). Gäste, die Zugriff auf lokale Dateien haben keine. 1. Die Benutzeroberfläche Ihre Anforderungen ordnungsgemäß herabstufen (sofern möglich).

2. Verwenden der openTextDocument und findFiles Arbeitsbereich-APIs zum Lesen und Auflisten von Dateien.
Verwenden das Node.js fs Modul zu erstellen oder Schreiben von Dateien Wie oben N/v können Sie die openTextDocument(Uri) -API zum Erstellen einer untitled -Datei, aber Sie können nicht gespeichert werden sie direkt in das Dateisystem, in einem bestimmten Pfad.
Abhängig von einer Bibliothek gebündelt mit dem Projekt oder einem tool Wie oben 1. Bündeln Sie eine alternative Version der Abhängigkeit mit der Erweiterung

2. Unterstützt globale Installation, die Gäste zu entsperren, wenn sie ihn ausdrücklich installieren möchten.

3. Remote-der Status/Aktion, wenn möglich, da der Host die richtigen Abhängigkeiten verfügbar aufweisen würden.
Verwenden das Node.js fs Modul zum Erstellen eines Verzeichnisses Wie oben N/V
Einschränken von Funktionen für Dokumente, verwenden die file Schema. Dateien für das Gastbetriebssystem Seite Verwendung die vsls Schema. Hinzufügen von Unterstützung für vsls Dokumente (Beispiel)
Mithilfe der Uri.file Methode bzw. Uri.fsPath / TextDocument.fileName Member beim Serialisieren und Analysieren von URIs Wie oben Verwendung Uri.parse und Url.toString() stattdessen die verwalten, und berücksichtigen Sie die Datei-Schemas (Beispiel)
Mithilfe der workspace.openTextDocument -Methode mit einem Dateipfad anstelle von einem Uri Wie oben Geben Sie einen Uri Instanz statt mit einer Rohdatendatei-Pfadzeichenfolge (Beispiel)
Mithilfe der workspace.rootPath Eigenschaft zum Erkennen des Vorhandenseins eines Arbeitsbereichs Die workspace.rootPath eigenschaftsaufrufen Uri.fsPath auf der ersten workspaceFolder in die workspace, die über das gleiche Problem mit dem oben genannten verfügt Verwenden der workspace.workspaceFolders Eigenschaft, um das Vorhandensein eines Arbeitsbereichs stattdessen erkennen und bei Bedarf betrachten workspaceFolderdes Uri.scheme zu bestimmen, ob sie lokal oder nicht ist
Ein Dokument-Schema nicht angeben, wenn Sie Sprachdienste registrieren (entweder über eine LanguageClient, oder die languages.register* Methoden) Gäste erhalten die Language-Service-Ergebnisse aus ihrer lokalen Erweiterungen und dem Host, und daher, wenn beide Teilnehmer die gleiche Sprache-Service-Erweiterung installiert haben, Gäste sehen doppelte Einträge für bestimmte Vorgänge (z. B. automatische Vervollständigung, code Aktionen) Beschränken Sie die Sprachdienste nur file und untitled Schemas (Beispiel)
Keine Überprüfung des Dokuments Uri.scheme vor dem Auffüllen einer DiagnosticCollection dafür Wie oben Generieren Sie nur Diagnostics für documents , deren Uri.scheme === file (Beispiel)
Keine Überprüfung für Arbeitsbereich Schema, bei der Rückgabe Tasks aus einem benutzerdefinierten TaskProvider Gäste alle lokale und remote-Aufgaben anzeigen und aus diesem Grund würde Duplikate angezeigt, wenn beide Teilnehmer Erweiterung installiert haben Nur zurückgeben Tasks für WorkspaceFolders, dessen Uri.scheme === file (Beispiel)

Visual Studio

Demnächst.

Siehe auch

Gibt es Probleme? Lesen Sie Troubleshooting oder Feedback geben.