現已釋出!閱讀關於 11 月新增功能和修復的內容。

2019 年 4 月(版本 1.34)

下載:Windows:x64 | Mac:Intel | Linux 64 位:deb rpm tarball snap | 32 位:deb rpm tarball

歡迎使用 2019 年 4 月釋出的 Visual Studio Code。在 4 月份,我們忙於釋出 遠端開發 擴充套件的預覽版。這些擴充套件允許你在遠端計算機或虛擬機器上透過 SSH 使用 VS Code,在 Windows Subsystem for Linux (WSL) 中,或在 Docker 容器內使用 VS Code。你可以閱讀使用 Visual Studio Code 進行遠端開發部落格文章以瞭解更多資訊。

此版本中仍有許多我們希望你會喜歡的更新,以及許多社群貢獻。

如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。

編輯器

穩定的 CodeLens

VS Code 現在會樂觀地快取 CodeLens 位置,並在切換編輯器後立即恢復它們。這解決了切換編輯器時 CodeLens 行會略微移動的問題。

Stable CodeLens

語言

帶有供應商字首的 CSS 屬性值排名較低

帶有破折號 '-' 字首的 CSS 屬性值(例如 -moz-grid-ms-grid),現在在自動完成中位於 grid 之後。

除錯

debug.showSubSessionsInToolBar

我們引入了設定 debug.showSubSessionsInToolBar,它控制除錯子會話是否顯示在除錯工具欄中。當此設定為 false 時,子會話上的停止命令也將停止父會話。此設定預設為 false。

任務

終止所有任務

如果正在執行多個任務,任務:終止任務 命令現在有一個新選項來終止所有任務。如果這是一個你經常執行的操作,你可以為帶有 terminateAll 引數的命令建立鍵盤快捷方式。

{
  "key": "ctrl+k t",
  "command": "workbench.action.tasks.terminate",
  "args": "terminateAll"
}

自動顯示問題面板

新的 revealProblems 任務屬性允許你自動顯示問題面板。屬性值包括 alwaysneveronProblem

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "npm",
      "script": "watch",
      "problemMatcher": "$tsc-watch",
      "isBackground": true,
      "presentation": {
        "reveal": "always",
        "revealProblems": "onProblem"
      }
    }
  ]
}

對擴充套件的貢獻

預覽版:遠端開發

注意: 遠端開發擴充套件 需要 Visual Studio Code Insiders

Visual Studio Code 遠端開發 允許你使用容器、遠端計算機或 Windows Subsystem for Linux (WSL) 作為功能齊全的開發環境。

遠端開發擴充套件包 中的擴充套件在遠端工作區的上下文中執行,而 VS Code 的感覺就像你在本地執行一樣。

Vetur

Vetur 擴充套件現在為 Vue 模板插值區域內的 JavaScript 表示式提供語義診斷、懸停資訊、跳轉到定義和查詢引用

Vetur JavaScript support in interpolations

你可以在 Vetur 文件中閱讀有關此功能的更多資訊。

其他改進包括減少記憶體使用和匯入路徑完成。你可以在 Vetur 更改日誌中瞭解更多資訊。

擴充套件創作

多擴充套件除錯

在此里程碑中,我們添加了對同時除錯多個擴充套件的支援。如果你正在開發一組緊密耦合或相互依賴的擴充套件,這將非常有用。

以前,此功能僅透過 VS Code 的命令列介面公開,現在引數 --extensionDevelopmentPath 可以指定多次。通常 --extensionDevelopmentPath 用於擴充套件的啟動配置中。當開發多個擴充套件時,我們建議將單個擴充套件專案組合到一個多資料夾工作區中,並建立一個新的啟動配置(儲存在工作區 .code-workspace 檔案中),該配置對單個擴充套件使用多個 --extensionDevelopmentPath 引數。

這是一個工作區 .code-workspace 檔案示例,其中包含兩個擴充套件 hello1hello2,以及這兩個擴充套件的單個啟動配置

{
  "folders": [{ "path": "hello1" }, { "path": "hello2" }],
  "launch": {
    "configurations": [
      {
        "type": "extensionHost",
        "request": "launch",
        "name": "Launch Two Extensions",
        "args": [
          "--extensionDevelopmentPath=${workspaceFolder:hello1}",
          "--extensionDevelopmentPath=${workspaceFolder:hello2}"
        ],
        "outFiles": [
          "${workspaceFolder:hello1}/out/**/*.js",
          "${workspaceFolder:hello2}/out/**/*.js"
        ]
      }
    ]
  }
}

請注意,在此版本中,無法透過組合單個擴充套件專案的 preLaunchTask 來建立構建兩個擴充套件的 preLaunchTask

以前總是可以透過語法 [link name](http://link) 在通知訊息中包含連結,但這僅適用於在瀏覽器中開啟的連結。現在你還可以使用語法 [link name](command:<command id>) 從連結呼叫命令。當用戶單擊連結時,將觸發具有給定識別符號的命令。

你現在可以向通知中的連結新增標題,當用戶將滑鼠懸停在連結上時會顯示該標題。語法是 [link name](link "<the title>")

建議的擴充套件 API

每個里程碑都附帶新的提議 API,擴充套件作者可以試用它們。一如既往,我們渴望您的反饋。以下是試用提議 API 所需的操作:

  • 您必須使用 Insiders 版本,因為提議的 API 經常更改。
  • 您的擴充套件的 package.json 檔案中必須包含以下行:"enableProposedApi": true
  • 將最新版本的 vscode.proposed.d.ts 檔案複製到您的專案中。

請注意,您不能釋出使用提議 API 的擴充套件。我們很可能會在下一個版本中進行破壞性更改,我們絕不希望破壞現有擴充套件。

vscode.workspace.workspaceFile

有一個新的工作區屬性返回工作區檔案的位置。例如:對於未命名且尚未儲存的工作區,返回 file:///Users/name/Development/myProject.code-workspaceuntitled:1555503116870

根據開啟的工作區,該值將是:

  • 當未開啟工作區或單個資料夾時為 undefined
  • 工作區檔案的路徑作為 Uri

如果工作區是未命名的,則返回的 URI 將使用 untitled: 方案。

工作區檔案位置的一個用途是呼叫 vscode.openFolder 命令,以便在關閉後再次開啟工作區

vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);

注意: 不建議使用 workspace.workspaceFile 位置直接將配置資料寫入檔案。你可以使用 workspace.getConfiguration().update(),它在開啟單個資料夾以及未命名或已儲存工作區時都有效。

特定於機器的設定

如果你有允許使用者自定義可執行檔案路徑的設定,並且這些路徑需要限定在其執行的機器上,你現在可以將此類設定歸類為 machine 範圍。擴充套件作者在貢獻 configuration 擴充套件點時設定 scope 屬性。特定於機器的設定只能為使用者設定配置。

"configuration": {
  "title": "Git",
  "properties": {
   "git.path": {
      "type": [
        "string",
        "null"
      ],
      "markdownDescription": "Path and filename of the git executable.",
      "default": null,
      "scope": "machine"
    }
  }
}

工程

本地檔案重寫的 filesystem provider

擴充套件能夠為自定義資源提供自己的檔案系統實現(在此處閱讀更多資訊)。然而,VS Code 自己的本地檔案實現沒有使用相同的擴充套件 API 實現。這導致在處理本地檔案資源時與來自擴充套件的資源相比存在細微差別。在過去的兩個里程碑中,我們重寫了我們的本地檔案系統提供程式,以使用擴充套件 API 來保持一致性。

新文件

Python Azure Functions

有一個新的將 Python 部署到 Azure Functions教程,描述瞭如何建立和部署 Python 無伺服器 Azure Functions。

雜項

語言伺服器協議

Language Server Protocol 提出了對以下新功能的支援

  • 選擇範圍:計算位置陣列的選擇範圍。從客戶端傳送到伺服器。
  • 呼叫層次結構:計算給定符號的呼叫層次結構。從客戶端傳送到伺服器。
  • 進度:從伺服器發起進度報告。從伺服器傳送到客戶端。

新功能在 vscode-languageclientvscode-languageserver npm 模組的下一個版本中提供。

值得注意的修復

  • 48259: Explorer 遵守 FileSystemProvider 的垃圾箱功能
  • 68276: 呼叫堆疊“在斷點處暫停”UI 對長執行緒名稱不可見
  • 69603: 終端視窗在 Mac OS 中崩潰
  • 72110: 除錯控制檯渲染不必要的換行符
  • 71737: 除錯視窗中的滾動行為怪異
  • 71588: 在資源管理器中顯示檔案時出錯
  • 70492: “執行擴充套件”上的“報告問題”按鈕導致數十個重複問題

感謝

最後但同樣重要的是,衷心感謝!以下幫助使 VS Code 變得更好的各位:

我們問題跟蹤的貢獻。如果您想幫助我們管理傳入的問題,請參閱我們的社群問題跟蹤頁面。

vscode 的貢獻

vscode-css-languageservice 的貢獻

vscode-html-languageservice 的貢獻

node-jsonc-parser 的貢獻

language-server-protocol 的貢獻

vscode-languageserver-node 的貢獻

vscode-eslint 的貢獻

vscode-lsif-extension 的貢獻

vscode-textmate 的貢獻

vscode-recipes 的貢獻

vscode-vsce 的貢獻

localization 的貢獻

有超過 800 名 Cloud + AI Localization 社群成員在使用 Microsoft Localization Community Platform (MLCP),其中有大約 100 名活躍貢獻者為 Visual Studio Code 做出貢獻。

我們感謝您的貢獻,無論是提供新翻譯、對翻譯投票,還是提出流程改進建議。

這是貢獻者的快照。有關專案詳細資訊,包括貢獻者姓名列表,請訪問專案網站:https://aka.ms/vscodeloc

  • 波斯尼亞語: Ismar Bašanović。
  • 捷克語: Daniel Padrta, David Jareš, Jan Hajek, Jiří Hofman。
  • 丹麥語: Allan Kimmer Jensen, Thomas Larsen。
  • 荷蘭語: Maxim Van Damme, Sven Klaasen。
  • 英語(英國): Martin Littlecott, Tobias Collier, William Wood, Giorgi Jambazishvili。
  • 法語: Antoine Griffard, Thierry DEMAN-BARCELÒ, Mohamed Sahbi, Steven Dugois, Michael VAUDIN。
  • 德語: Christof Opresnik。
  • 印地語: Abhirav Kushwaha, Pramit Das。
  • 簡體中文: paul cheung, 斌 項, Fan Su, Justin Liu, Horie Yuan, 王文傑, 趙暢暢, anson zhang, Wang Debang, Pluwen, Yiting Zhu, Joel Yang, Michael Zhang, 擎 鍾, 濤 徐, 少民 談, 偉 全, panda small, Array Zhang, LI ZHAO。
  • 繁體中文: 謝政廷, 煾 雪。
  • 匈牙利語: Levente Hallai Seiler。
  • 印度尼西亞語: Laurensius Dede Suhardiman。
  • 義大利語: Alessandro Alpi, Luigi Bruno, Emanuele Meazzo, Marco Dal Pino。
  • 日語: EbXpJ6bp -, nh, Kyohei Uchida, Yoshihisa Ozaki, Seiji Momoto, Hasefumi, 迪人 熊本, Koichi Makino, Kyohei Moriyama, 美穂 山本, Aya Tokura。
  • 韓語: 형섭 이, Youngjae Kim, siin lee, Keunyop Lee。
  • 拉脫維亞語: Kaspars Bergs。
  • 立陶宛語: Augustas Grikšas。
  • 波蘭語: Wojciech Maj, Marek Biedrzycki, Igor 05, Marcin Weksznejder, Szymon Seliga, Paweł Modrzejewski, ‎Michał Stojke, Artur Zdanowski。
  • 葡萄牙語(巴西): Alessandro Trovato, Judson Santiago, Roberto Fonseca, Marcelo Fernandes, Lucas Miranda, Ray Carneiro, Loiane Groner, Daniel Luna, Lucas Santos, Saymon Damásio。
  • 葡萄牙語(葡萄牙): Ana Rebelo, Pedro Teixeira, João Carvalho, Tiago Antunes。
  • 羅馬尼亞語: Alexandru Staicu。
  • 俄語: Andrey Veselov, Дмитрий Кирьянов, nata kazakova, Валерий Батурин。
  • 西班牙語: Andy Gonzalez, Carlos Mendible, José María Aguilar, Alvaro Enrique Ruano。
  • 泰米爾語: Boopesh Kumar, Karunakaran Samayan, Merbin J Anselm。
  • 土耳其語: mehmetcan gun, Sinan Açar, S. Ferit Arslan。
  • 烏克蘭語: Sviatoslav Ivaskiv, George Molchanyuk。
  • 越南語: Khôi Phạm, Spepirus Shouru, Việt Anh Nguyễn。
© . This site is unofficial and not affiliated with Microsoft.