Rozszerzenia i ekosystemu pomocy technicznej

Jednym z celów głównej programu Visual Studio funkcja udostępniania na żywo jest umożliwienie deweloperom i Współpracuj z innymi, przy użyciu swoich ulubionych i wysoko dostosowanego narzędzia. W ten sposób interakcji ad-hoc może występować często, pozostając wizualnie znanych i komfort niezależnie od tego co jest udzielana pomoc przy użyciu. Aby to osiągnąć, jest krytyczny, że uczestnicy w ramach sesji współpracy będą mogli kontynuować korzystanie z jakichkolwiek rozszerzeń, które obsługują ich osobistych preferencji i przepływów pracy (np. ikon koloru/motywy, powiązania klawiszy, edytora czynniki polepszające wydajność).

Ponadto aby czynność dołączenie do sesji pracy zespołowej, jako błyskawiczne, jak to możliwe, pozostając — wydajna, celem programu Visual Studio funkcja udostępniania na żywo jest umożliwienie gości, aby automatycznie korzystać z narzędzi specyficznych dla projektu, który udostępnił ich host. W ten sposób możesz można po prostu kliknąć link, uruchom narzędzie wyboru i rozpocząć współpracę, bez konieczności dodatkowej konfiguracji. Aby to osiągnąć, ważne jest tego rozszerzenia, które power podstawowe Edytuj, twórz i Debuguj przepływu pracy, są przezroczyste "zdalny" z hosta do gościa, dzięki czemu elementy, takie jak automatyczne uzupełnianie, przejdź do definicji i debugowania " po prostu działają".

W tym dokumencie opisano bieżący znany stan dla ekosystemu ogromna rozszerzenia, a także "ocena" do wymienionych celów. Jeśli napotkasz rozszerzenia, które nie spełniają te kryteria i mają kluczowe znaczenie dla osobistych przepływu pracy, należy następnie Daj nam znać!

Rozszerzenia poszczególnych użytkowników

Rozszerzenia, które obsługują dostosowania specyficzne dla użytkownika musi nadają się do hosta, a powinien nadają się do wszystkich gości. Jeśli rozszerzenie nie działa prawidłowo dla hosta, który będzie regresji i prawdopodobnie jest to błąd w Visual Studio funkcja udostępniania na żywo (Sprawdź zgłosić problem Jeśli zostanie wyświetlony!). Jeśli rozszerzenie nie zachowują się zgodnie z oczekiwaniami dla gościa, mogą wymagać zmiany w rozszerzeniu, sama, i firma Microsoft będzie działać z ekosystemem usprawniających adres/tych scenariuszy.

Visual Studio Code

Kategoria Przykłady zapytań zakończonych Obsługiwane gościa? Zespołowe?
Motywy kolorów Jeden Pro ciemny, danych wyjściowych Colorizer, ciąg tęczowego, pokolorowane regionów, wcięty bloku wyróżnianie, Wyróżnij ToDo, Colorizer parę nawiasów N/D
Zestawy ikon ikony programu vscode, ikony klasyczne usługi Visual Studio N/D
Powiązania klawiszy VIM, IntelliJ IDEA Keybindings, Keymap przyjazne Emacs N/D
Fragmenty kodu Fragmentów kodu angular v5, fragmenty kodu HTML, ikony SVG, nagłówek pliku N/D 1
Organizacja Synchronizacja ustawień, Menedżer projektu, Timeit, punktów kontrolnych, zadań do wykonania Parser, Ulubione (❌) zakładki (❌) 2 N/D 3
Produktywność GitLens, automatyczna zmiana nazw tagów, kodu konspektu, kolor wyróżnienia, zwiększyć wybór, Bracketeer, Podgląd obrazu, pomocnika JSON (wskaźnik), kolor z selektora, kopiowanie programu Word w kursor, CodeMetrics (CodeLens) współautorzy Git, zestawu wspomagającego JavaScript (CodeActions) dziennika konsoli Turbo, Przejdź do następnego/poprzedniego elementu członkowskiego, automatyczne przewijanie, wersji importu NPM (❌) zaimportować koszt (❌) 2 3
REPLs Klient REST, kodu modułu uruchamiającego, Quokka.js, języka R 4 3
Menedżerowie zasobów MSSQL, prosty ftp, usługi Azure Functions, Docker, Brew usług 5 3

1 chyba że użytkownik został już znasz fragment, nie spełniają oczekiwane powinien być dostępny, a w związku z tym, co ich udostępnionego nie zawsze ma sensu.

2 kategorie te rozszerzenia są tak różnorodne, czy jest możliwe, że wszystkie metody działają. Jednak teoretycznie powinny, i będziesz Śledzimy klucza, które nie.

3 tych kategorii rozszerzenia mogą korzystać z funkcji współpracy, a więc potrzebujemy opinie użytkowników końcowych, aby poinformować, że!

4 wymagają one gościa zostały zainstalowane narzędzia środowiska uruchomieniowego (np. Node.js) i działa, uruchamiając kod lokalnie.

5 tych działa, nawiązując połączenie z serwerem pewnego rodzaju i pracować z albo scentralizowane serwery, serwery, które udostępnił gościa.

Visual Studio

Wkrótce.

Specyficzne dla projektu rozszerzenia

Host zainstalowany rozszerzenia, które obsługują core, edytowania, kompilowania i debugowania aplikacji i są specyficzne dla języka/platformy/biblioteki/zestaw SDK, należy automatycznie dostępne dla gości, bez konieczności niczego instalować. W ten sposób hostów można skonfigurować ich środowiska do obsługi efektywne programowanie projektu i ich gościom połączyć natychmiast, bez dodatkowych wymagań wstępnych. Ponieważ subiektywna lub osobiste w jakikolwiek sposób, nie są specyficzne dla projektu rozszerzenia, mogą być sposób deterministyczny współużytkowane z hosta do gościa, bez wywierania wpływu na środowisko znanych osób.

Ponadto w celu obsługi rozszerzeń specyficznych dla projektu, które gościa został zainstalowany, ale host nie, najlepiej zapewni obniżonej wydajności, jeszcze funkcjonalne środowisko (np. wprowadzenie pojedynczy plik intellisense, możliwość formatowanie dokumentu).

Kategoria Przykłady zapytań zakończonych Udostępnione? Obsługiwane gościa?
Gramatyki / wyróżnianie składni Połowy powłoki, Nginx, Vetur, DotEnv, ES6 ciąg HTML, Todo +, Tęczowego CSV
Usługi języka YAML, Intellisense ścieżki, ARM 1 2
Schematów JSON Azure Functions
Linterów ESLint, Markdownlint, kod modułu sprawdzania pisowni, PHPCS 2
Programy formatujące Prettier, upiększanie 2
Debugery Python, debuger dla Chrome 3 4
Test Runner Java Test Runner, Mocha Sidebar, Postman Runner, Jest Runner, Neptune 5 2
Niestandardowy plik podglądy Podgląd SVG, GraphViz, rozmiar obrazu języka znaczników Markdown
Generatory pliku/projektu Usługa Azure Functions, Generator projektu języka C/C++ 6
Dostawcy kontroli źródła SVN, (Hg)

1 obecnie C# i języka JavaScript/TypeScript nadchodząca obsługa więcej.

2 będzie obsługują tylko bieżącego aktywnego dokumentu, ponieważ goście nie mają dostępu do pliku lokalnego.

3 podstawowe środowisko debugowania jest udostępniony, jednak nie są automatycznie przekazywane serwerom wprowadzona na rynek.

4 goście nie mają lokalnej kopii aplikacji i dlatego uruchomionej aplikacji i innych sesji debugowania trzeba uruchomić na komputerze hosta.

5 dane wyjściowe przebiegu testu wymagałoby, że wszelkie terminale wynikowe, okienka danych wyjściowych i błędów zostały również udostępnione gości.

6 prawie wszystkie z nich użyć Node.js fs modułu do tworzenia plików, które nie działa.

Visual Studio

Wkrótce.

Znane problemy

Poniżej przedstawiono obecnie znanym rozszerzeniem problemów, które może uniemożliwić ich pracy dla gości w kontekście sesji współpracy (wraz z ich rozwiązania) i dlatego może mieć wpływ na ich przepływu pracy:

Visual Studio Code

Problem Przyczyna Obejście
Przy użyciu środowiska Node.js fs modułu, aby wykryć/odczyt plików (np. plik konfiguracji) lub wyliczanie katalogów (i nie ma usługi językowej). Goście nie mają dostępu do pliku lokalnego. 1. Bezpiecznie zmniejszyć środowisko użytkownika (jeśli jest to możliwe).

2. Użyj openTextDocument i findFiles interfejsów API, aby odczytywać i Wyliczanie plików w obszarze roboczym.
Przy użyciu środowiska Node.js fs modułu do utworzenia lub zapisywać pliki Jak wyżej N/d można użyć openTextDocument(Uri) interfejsu API, aby utworzyć untitled plik, ale nie można zapisać go bezpośrednio do systemu plików, w określonej ścieżce.
W zależności od biblioteki powiązane projektu lub narzędzie Jak wyżej 1. Pakiet rezerwowego wersję zależności z rozszerzeniem

2. Obsługuje globalnego instalacji, aby odblokować gości, jeśli zdecydują się jawnie go zainstalować.

3. Zdalne stan/AKCJA Jeśli jest to możliwe, ponieważ host miałby odpowiednie zależności dostępne.
Przy użyciu środowiska Node.js fs moduł służący do tworzenia katalogu Jak wyżej N/D
Ograniczenie funkcji do dokumenty, które używają file schematu. Pliki przy użyciu po stronie gościa vsls schematu. Dodano obsługę vsls dokumentów (przykład)
Za pomocą Uri.file metody i/lub Uri.fsPath / TextDocument.fileName członków do serializacji/analizy identyfikatory URI Jak wyżej Użyj Uri.parse i Url.toString() zamiast tego, którego obsługa i przestrzegać systemów plików (przykład)
Za pomocą workspace.openTextDocument metoda ze ścieżką pliku zamiast Uri Jak wyżej Podaj Uri wystąpieniem, a nie plik nieprzetworzony ciąg ścieżki (przykład)
Za pomocą workspace.rootPath właściwości do wykrycia obecności obszaru roboczego workspace.rootPath Wywołaniach właściwości Uri.fsPath pierwszego workspaceFolder w workspace, który ma ten sam problem, o których wspomniano powyżej Użyj workspace.workspaceFolders właściwości zamiast wykryć obecność obszar roboczy, a jeśli to konieczne, Przyjrzyj się workspaceFolderfirmy Uri.scheme ustalenie, jeśli jest ono kontem lokalnym czy nie
Brak określenia schematu dokumentu, podczas rejestrowania usług językowych (za pośrednictwem LanguageClient, lub languages.register* metody) Goście otrzymywać wyniki usługi w języka ich rozszerzenia lokalne i hosta, a w związku z tym, jeśli oba uczestników ma ten sam zainstalowane rozszerzenie usługi w języka, goście będą widzieć zduplikowanych wpisów dla niektórych ustawień (np. automatyczne uzupełnianie, kod działania) Ogranicz usług językowych tylko file i untitled schematów (przykład)
Nie sprawdza dokumentu Uri.scheme przed wypełnianie DiagnosticCollection dla niego Jak wyżej Generuj tylko Diagnostics dla documents którego Uri.scheme === file (przykład)
Nie sprawdza schematu obszaru roboczego, gdy zwracany jest Tasks z niestandardowego TaskProvider Goście wyświetlenie wszystkich zadań zdalnych i lokalnych i w związku z tym, zostanie wyświetlony duplikaty, jeśli obie uczestników miały to samo rozszerzenie, które są zainstalowane Zwraca tylko Tasks dla WorkspaceFolders którego Uri.scheme === file (przykład)

Visual Studio

Wkrótce.

Zobacz także

Masz problemy? Przejdź do strony rozwiązywania problemów lub przekaż opinię.