🚀 在 VS Code 中

語言擴充功能概觀

Visual Studio Code 透過語言擴充功能,為不同的程式語言提供智慧編輯功能。VS Code 在核心編輯器中未提供內建的語言支援,但提供了一組 API,可啟用豐富的語言功能。

例如,HTML 擴充功能使用這些 API 來顯示 HTML 檔案的語法醒目提示。同樣地,當您輸入 console. 且 IntelliSense 中顯示 log 時,這是 Typescript 語言功能擴充功能在運作。

VS Code 將其中一些擴充功能與編輯器捆綁在一起,從一開始就為您提供豐富的語言支援。

語言功能大致可分為兩類

宣告式語言功能

宣告式語言功能定義於組態檔中。範例包括與 VS Code 捆綁的 htmlcsstypescript-basic 擴充功能,這些擴充功能提供以下宣告式語言功能的子集

  • 語法醒目提示
  • 程式碼片段完成
  • 括號配對
  • 括號自動關閉
  • 括號自動包圍
  • 註解切換
  • 自動縮排
  • 摺疊 (依標記)

我們提供了三份指南,用於撰寫提供宣告式語言功能的語言擴充功能。

  • 語法醒目提示指南:VS Code 使用 TextMate 文法進行語法醒目提示。本指南將引導您撰寫簡單的 TextMate 文法,並將其轉換為 VS Code 擴充功能。
  • 程式碼片段完成指南:本指南說明如何將一組程式碼片段捆綁到擴充功能中。
  • 語言組態指南:VS Code 允許擴充功能為任何程式語言定義語言組態。此檔案控制基本編輯功能,例如註解切換、括號配對/包圍和區域摺疊 (舊版)。

程式化語言功能

程式化語言功能包括自動完成、錯誤檢查和跳到定義。這些功能通常由語言伺服器提供支援,語言伺服器是一種分析您的專案以提供動態功能的程式。一個範例是 VS Code 中捆綁的 typescript-language-features 擴充功能。它利用 TypeScript 語言服務來提供程式化語言功能,例如

以下是 程式化語言功能的完整清單。

multi-ls

語言伺服器協定

透過標準化語言伺服器 (靜態程式碼分析工具) 和語言用戶端 (通常是原始碼編輯器) 之間的通訊,語言伺服器協定允許擴充功能作者編寫一個程式碼分析程式,並在多個編輯器中重複使用。

程式化語言功能清單中,您可以找到所有 VS Code 語言功能的清單,以及它們如何對應到語言伺服器協定規格

我們提供深入指南,說明如何在 VS Code 中實作語言伺服器擴充功能

multi-editor

特殊情況

多根工作區支援

當使用者開啟多根工作區時,您可能需要相應地調整您的語言伺服器擴充功能。本主題討論支援多根工作區的幾種方法。

嵌入式語言

嵌入式語言在 Web 開發中很常見。例如,HTML 內的 CSS/JavaScript,以及 JavaScript/TypeScript 內的 GraphQL。嵌入式語言主題討論如何讓語言功能適用於嵌入式語言。