擴充功能和生態系統支援

Visual Studio Live Share 的主要目標之一,就是讓開發人員從自己的最愛和高度自訂的工具共同作業。 如此一來,就可以經常進行臨機操作互動,同時以視覺上熟悉的方式人體工學,而不論您所做的協助。 為了達成此目標,共同作業會話中的參與者必須能夠繼續使用支援其 個人喜好設定和工作流程 的任何延伸模組, (例如色彩/圖示主題、按鍵系結、編輯器生產力應有盡有) 。

此外,為了讓共同作業會話的運作盡可能立即進行,而維持高生產力,Visual Studio Live Share 的目標是讓來賓自動利用其主機所共用的專案特定工具。 如此一來,您就可以直接按一下連結、啟動您選擇的工具,然後開始共同作業,而不需要進行任何額外的設定。 為了達成此目的,您必須將延伸模組(強大的核心 編輯、組建和偵測工作流程)透明地從主機「遠端」到「來賓」,如此一來,自動完成、「移至定義」和「只工作」這類的功能就很重要。

本檔涵蓋大型延伸系統的目前已知狀態,以及適用于上述目標的「計分卡」。 如果您遇到不符合此準則的延伸模組,而且對您的個人工作流程而言很重要,請 讓我們知道!

User-Specific 擴充功能

支援使用者特定自訂的延伸模組 必須 適用于主機,而且 應該 適用于所有來賓。 如果延伸模組無法正常運作,則這會是回歸,而且可能是 Visual Studio Live Share 中的錯誤 (如果您看到一個! ) ,請提出問題。 如果延伸模組未如預期般運作,則可能需要延伸模組 本身的變更,而且我們會與生態系統合作來解決/改善這些情況。

Visual Studio Code

類別 範例 (s) 支援來賓嗎? 協同?
色彩主題 一個深色 Pro輸出著色器彩虹字串彩色區域縮排的區塊反白顯示、Todo 醒目提示、括弧配對著色器 N/A
圖示集 vscode-圖示Visual Studio 傳統圖示 N/A
按鍵繫結關係 VimIntelliJ 構想 Keybindings.jsonEmacs 易記快速鍵 N/A
程式碼片段 Angular v5 程式碼片段HTML 程式碼片段SVG 圖示、檔案標頭 N/A1
組織 設定同步Project 管理員timeit.exe檢查點TODO剖析器、我的最愛 (❌) 、書簽 (❌) 2 N/A3
生產力 GitLens自動重新命名標記、程式 代碼大綱色彩醒目提示、 遞增選取範圍Bracketeer影像預覽JSON 協助程式 (停留) 、 色彩選擇器在游標處複製文字CodeMetrics (CodeLens) 、 Git 共同作者JavaScript 增強 程式 (CodeActions) 、 Turbo 主控台記錄、移 至下一個/上一個成員自動滾動NPM 匯入版本 (❌) ,匯 入成本 (❌) 2 3
Repl REST 用戶端、程式 代碼執行器、 Quokka.jsR 3
資源管理員 mssqlftp-simpleAzure FunctionsDockerBrew Services .5 3

1除非使用者已熟悉程式碼片段,否則他們不會預期它可以使用,因此,讓它們共用並不一定合理。

2這些擴充功能類別有很大的不同,因此不可能說它們都能正常運作。不過,理論上,它們應該是,我們會追蹤不是的金鑰。

3這些擴充功能類別可受益于共同作業體驗,因此我們需要使用者意見反應才能知道!

4這些要求的來賓必須安裝執行時間工具 (例如 Node.js) ,並在本機執行程式碼來運作。

5這些都是藉由連接到某種伺服器來運作,而且可以使用已共用的集中式伺服器和伺服器。

Visual Studio

即將推出。

Project-Specific 擴充功能

主機安裝的擴充功能,可支援應用程式的核心編輯、建立和偵測,以及語言/平臺/程式庫/SDK 專屬的擴充功能,而不需要安裝任何專案。 如此一來,主機可以設定其環境,以支援專案的生產環境開發,並允許其來賓立即加入這些專案,而不需要額外的先決條件。 由於專案專屬的延伸模組不會以任何方式進行主觀或個人,因此可以從主機對來賓進行決定性的共用,而不會影響任何人熟悉的環境。

此外,為了支援來賓已安裝但主機沒有的專案專屬延伸模組,在理想的情況下,它們會提供降級但功能豐富的體驗 (例如取得單一檔案 intellisense、能夠將檔案格式化) 。

類別 範例 (s) 共用? 支援來賓嗎?
語法/反白顯示 魚 ShellNginxVetur>dotenvES6 String HTMLTodo +彩虹 CSV
語言服務 YAML路徑 IntellisenseARM 1 2
JSON 架構 Azure Functions
Linter ESLintMarkdownlint、程式 代碼拼寫檢查PHPCS 2
美化美化 2
偵錯工具 Python適用于 Chrome 的偵錯工具 3
測試測試器 JAVA Test RunnerMocha 提要欄位、 Postman執行器、 Jest執行器、 Neptune .5 2
自訂檔案預覽 SVG PreviewGraphVizMarkdown 影像大小
File/Project 產生器 Azure Functionsc/c + + Project產生器 6
原始檔控制提供者 SVNHg

1目前僅限 c # 和 JavaScript/TypeScript,即將推出更多支援。

2只支援目前的使用中檔,因為來賓沒有本機檔案存取權。

3核心的偵錯工具體驗是共用的,但是任何啟動的伺服器都不會自動轉寄。

4來賓沒有應用程式的本機複本,因此執行中的應用程式和任何的偵測會話都必須在主機的電腦上啟動。

5測試回合的輸出會要求任何產生的終端機、輸出窗格和錯誤也都與來賓共用。

6上述幾乎全部都是直接使用 Node.js fs 模組來建立檔案,而這種方式並不適用。

Visual Studio

即將推出。

已知問題

以下是目前已知的擴充功能問題,這些問題可能會讓他們無法在共同作業會話的內容中使用來賓 (以及其因應措施) ,因此可能會影響其工作流程:

Visual Studio Code

問題 原因 因應措施
使用 Node.js fs 模組來偵測/讀取檔案 (例如) 的設定檔,或列舉目錄 (,而且您不是語言服務) 。 來賓沒有本機檔案存取權。 1. 適當地降低使用者體驗 (可能的) 。

2. 使用 openTextDocumentfindFiles 工作區 api 來讀取和列舉檔案。
使用 Node.js fs 模組建立或寫入檔案 與上述相同 N/A 您可以使用 openTextDocument(Uri) API 來建立 untitled 檔案,但是無法將它直接儲存到檔案系統的特定路徑。
視專案配套的程式庫或工具而定 與上述相同 1. 將相依性的回溯版本與擴充功能配套

2. 支援全域安裝來解除封鎖來賓(如果他們選擇明確安裝)。

3. 如果可能的話,請遠端執行狀態/動作,因為主機會有正確的相依性。
使用 Node.js fs 模組建立目錄 與上述相同 N/A
限制使用 file 配置之檔的功能。 來賓端上的檔案會使用 vsls 配置。 (範例中新增檔的 vsls 支援)
Uri.file使用方法和/或 Uri.fsPath/TextDocument.fileName 成員序列化/剖析 uri 與上述相同 改為使用 Uri.parseUrl.toString() 維護檔案配置 (範例)
workspace.openTextDocument使用方法搭配檔案路徑,而不是Uri 與上述相同 Uri提供實例,而非原始檔案路徑字串 (範例)
workspace.rootPath使用屬性來偵測工作區是否存在 workspace.rootPath屬性會在中 workspace 的第一個 workspaceFolder 呼叫 Uri.fsPath ,這具有上述相同問題 workspace.workspaceFolders您可以使用屬性來偵測工作區是否存在,並在需要時查看每個 workspaceFolderUri.scheme 工作區,以判斷其是否為本機
註冊 language services (LanguageClient 透過或 languages.register* 方法時,不指定檔配置) 來賓會從其本機延伸模組和主機接收語言服務的結果,因此,如果兩個參與者都安裝相同的語言服務延伸模組,來賓會看到特定專案的重複專案 (例如自動完成、程式碼動作) 將語言服務限制為僅限 fileuntitled 配置 (範例)
在填入檔之前,不先 DiagnosticCollection 檢查檔 Uri.scheme 與上述相同 只產生 DiagnosticsdocumentsfileUri.scheme === (範例)
從自訂傳回時 Tasks ,不檢查工作區配置 TaskProvider 來賓會顯示所有的遠端和本機工作,因此,如果兩個參與者都已安裝相同的延伸模組,則會顯示重複專案 只傳回 (範例的 s fileUri.scheme === ) TasksWorkspaceFolder

Visual Studio

即將推出。

另請參閱

有問題嗎? 請參閱疑難排解提供意見反應