2019 年 7 月 (1.37 版)
更新 1.37.1:此更新解決了這些 問題。
下載:Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap
歡迎使用 Visual Studio Code 2019 年 7 月版本。此版本中有許多我們希望您會喜歡的更新,其中一些主要亮點包括:
- 產品圖示全面更新 - VS Code 中的所有圖示都煥然一新。
- 在設定 UI 中編輯字串陣列 - 直接從設定編輯器新增字串陣列。
- 在檔案資源管理器中顯示搜尋結果 - 快速跳轉到檔案資源管理器中的檔案位置。
- 在選中內容中顯示空格 - 僅顯示選中文字中的空格字元。
- 查詢和替換保留大小寫 - 替換文字而不丟失字母大小寫。
- 終端搜尋使用者體驗改進 - 終端的搜尋順序更加直觀,從下往上。
- 改進的 SCSS @import 導航 - VS Code 現在會檢查更多 SCSS 檔案位置。
- 遠端開發教程 - 關於透過 SSH 和在 WSL 中工作的新教程。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
您還可以觀看由開發者倡導者 Brian Clark 製作的 1.37 版本 亮點影片。
Insiders:想盡快看到新功能嗎?您可以下載每夜更新的 Insiders 構建版本,並第一時間嘗試最新的更新。有關最新的 Visual Studio Code 新聞、更新和內容,請在 Twitter 上關注我們 @code!
工作臺
新產品圖示
我們已將所有產品圖示更新為風格、顏色和大小統一。我們經歷了 多次迭代,社群在整個過程中提供了有益的反饋。
注意:這不包括我們使用的 Octicons 圖示,這些圖標出現在狀態列和快速選擇中。
設定編輯器對字串陣列的支援
設定編輯器現在允許編輯字串陣列設定。新增項按鈕將彈出一個輸入框以新增新的字串。
擴充套件作者可以透過 提供具有 type
和 items
鍵的配置 來啟用此支援。
{
"type": "array",
"items": {
"type": "string"
}
}
已從設定檔案中移除警告
您將不再在 settings.json
檔案中看到未知或不受支援的設定警告。相反,非活動設定將變暗,類似於未使用的原始碼,滑鼠懸停時會解釋原因。此外,您將不會看到來自當前已停用擴充套件的設定警告。
在資源管理器中顯示搜尋結果
搜尋檢視中的檔案上下文選單現在包含一個在資源管理器中顯示命令,用於在檔案資源管理器中導航到該檔案。
搜尋正則表示式功能
在 1.29 版本中,我們添加了設定 search.usePCRE2
,使搜尋使用 PCRE2 正則表示式引擎。這使得可以使用一些高階正則表示式功能進行搜尋,例如 反向引用 和 先行斷言。得益於 ripgrep 中的一些上游工作,您現在無需啟用特殊設定即可使用這些功能。如果正則表示式使用 Rust 正則表示式引擎不支援的功能,ripgrep 將自動回退到 PCRE2 引擎,並且 search.usePCRE2
現在已棄用。提醒一下,VS Code 僅支援 JavaScript 中有效的正則表示式,因為開啟的編輯器仍使用編輯器的基於 JavaScript 的搜尋進行搜尋。
NPM Scripts Explorer 預設可見
以前,您必須啟用設定 npm.enableScriptExplorer
才能使 NPM Scripts Explorer 可見,這很難發現。現在,當工作區根目錄中存在 package.json
檔案時,NPM Scripts Explorer 會在檔案資源管理器中摺疊顯示。
如果您的工作區根目錄中沒有 package.json
檔案,您仍然可以使用該設定來啟用 NPM Scripts Explorer。如果您想隱藏資源管理器,可以右鍵單擊其標題並從上下文選單中選擇隱藏。
focusedView 上下文鍵
有一個新的鍵繫結 when
子句上下文鍵 focusedView
,用於在給定檢視獲得焦點時顯示或啟用命令。
"when": "focusedView == nodeDependencies"
輔助功能改進
我們修復了整個工作臺的輔助功能問題。可以在 GitHub 上找到已修復問題的完整列表,帶有 'accessibility' 標籤。
樹檢視中採用新的樹控制元件
貢獻樹檢視的擴充套件現在將獲得 新的樹控制元件 體驗。樹控制元件提供更好的效能以及改進的鍵盤導航、篩選、自定義縮排、水平滾動等。如果您喜歡的擴充套件具有自定義樹檢視,您應該會看到與內建 VS Code 資源管理器中早期新增的相同使用者體驗改進。
編輯器
在選中內容中顯示空格
editor.renderWhitespace
設定現在支援 selection
選項。啟用此選項後,空格字元將僅顯示在選中的文字上。
這對於快速檢查空格而無需填充整個編輯器非常方便。
改進了縮圖搜尋結果可見性
在上一個版本中,我們在縮圖(程式碼大綱)中引入了搜尋裝飾。這些裝飾很難看到,因此在此次迭代中,我們努力提高了它們的可見性。現在,整行將在縮圖中以低透明度突出顯示,實際匹配以高透明度顯示。
您還可以使用新的 minimap.findMatchHighlight
主題顏色更改裝飾的顏色。
查詢和替換中保留大小寫
您現在可以在編輯器的“查詢”小部件中進行替換時保留大小寫。當編輯器的“替換”輸入框中的“保留大小寫”選項(AB 按鈕)開啟時,此功能將啟用。
目前 VS Code 僅支援保留全部大寫、全部小寫和標題大小寫。
查詢小部件中按鈕切換的活動狀態
我們更新了查詢小部件按鈕切換的活動狀態,使其具有填充背景,以便您現在可以輕鬆判斷何時聚焦於活動切換。這出現在搜尋檢視、查詢和替換以及終端查詢中。
在此更新中,我們引入了一個新的主題顏色 inputOption.activeBackground
,用於控制切換活動狀態的背景顏色。此顏色重新使用了 focusBorder
,因此預設情況下它與主題更好地配合。我們還將 inputOption.activeBorder
的預設值設定為透明,以便邊框僅用於焦點。
更新的資訊顏色
在 統一警告顏色 之後,我們還更新了 editorInfoForeground
和 editorInfoBorder
,使其與其餘的資訊診斷顏色匹配。您將在“窺視錯誤”檢視和編輯器波浪線中看到此更新的顏色。
整合終端
搜尋使用者體驗改進
以前,在終端中搜索會從終端視口的頂部開始向下搜尋。當到達底部時,它會迴繞到頂部。新的行為與許多其他終端模擬器一致,從緩衝區底部開始向上搜尋,從而大大減少了方向不清的體驗。
終端輔助功能改進
當使用螢幕閱讀器時,終端現在具有行導航模式,可以透過 和 方便地導航行。可以使用 退出該模式。
如果您想 自定義鍵繫結,這些是新命令:
workbench.action.terminal.navigationModeExit
workbench.action.terminal.navigationModeFocusNext
workbench.action.terminal.navigationModeFocusPrevious
還進行了其他輔助功能改進:
- 現在,空白行使用不間斷空格字元而不是顯式字串,允許螢幕閱讀器正確播報。
- 螢幕閱讀器現在會在鍵入和移除字元時播報。在某些情況下這不起作用,但大多數情況都已涵蓋。
設定中已解析的變數
變數現在可以在以下設定中使用:
terminal.integrated.cwd
terminal.integrated.shell.<platform>
terminal.integrated.shellArgs.<platform>
例如,您不再需要擴充套件來在當前檔案所在的資料夾中開啟終端,只需新增此設定:
"terminal.integrated.cwd": "${fileDirname}"
改進的錯誤報告和診斷
以前,當終端以錯誤的配置啟動時,它只會指示程序以錯誤程式碼退出。現在提供了更好的錯誤訊息,指導使用者解決幾種常見情況。
語言
改進 SCSS @import 導航
VS Code 以前是靜態解析 SCSS 匯入的。例如,@import './foo'
會解析為 _foo.scss
。然而,SCSS 在解析匯入方面更加靈活,允許 ./foo
解析為以下五個位置之一:
foo.scss
_foo.scss
foo/index.scss
foo/_index.scss
foo.css
如果解析的檔案存在於磁碟上,VS Code 現在會將 @import './foo'
解析為這些位置之一。請注意,如果連結以 /
結尾,它將只解析為 /index.scss
或 /_index.scss
。如果連結以 .css
或 .scss
等字尾結尾,VS Code 將不會嘗試其他檔案位置。
改進的 CSS 屬性值完成
CSS 補全現在為另外 754 個 CSS 屬性值提供詳細文件,包括不常用的值。
更快地使用 JavaScript 和 TypeScript 的純語法功能
上個版本,我們添加了一個實驗性設定,它將為 VS Code 的 JavaScript 和 TypeScript 語言功能提供支援的 TypeScript 伺服器拆分為單獨的語法和語義伺服器。
在 VS Code 1.37 中,拆分伺服器現在預設啟用。這意味著對於大型 JavaScript 和 TypeScript 專案,基於語法的操作(例如程式碼摺疊或文件大綱)應該會更快地可用。
任務
TypeScript 檢測到的任務警告
上一個版本中,TypeScript 任務自動檢測將 tsconfig
路徑中使用的作業系統特定路徑分隔符從 \
更改為更跨平臺友好的 /
。如果 tsconfig 路徑中存在 \
,VS Code 現在會顯示警告。
{
"type": "typescript",
"tsconfig": "src\\tsconfig.json", // This will cause a warning to show. It should be "tsconfig": "src/tsconfig.json"
"option": "watch",
"problemMatcher": [
"$tsc-watch"
]
}
任務和除錯配置的 ${relativeFileDirname} 變數
新的變數 ${relativeFileDirname}
解析為當前開啟檔案目錄相對於工作區資料夾的路徑。該變數可用於任務和除錯配置(tasks.json
和 launch.json
)。
支援 resolveTask
任務提供程式現在可以實現 resolveTask
以減少擴充套件提供任務的開銷。resolveTask
在 provideTasks
之後呼叫,因此如果您的擴充套件有一個設定可以關閉 provideTasks
和自動檢測(例如內建的 gulp 擴充套件),但使用者仍然在 tasks.json
中引用您的一個任務,那麼 resolveTask
將被呼叫,並且您的擴充套件可以返回該單個任務。
對擴充套件的貢獻
遠端開發(預覽版)
我們繼續在 遠端開發 擴充套件上開展工作,這些擴充套件允許您將容器、遠端機器或 適用於 Linux 的 Windows 子系統 (WSL) 用作功能齊全的開發環境。您可以在 遠端開發釋出說明 中瞭解新的擴充套件功能和錯誤修復。
您還可以閱讀最近的兩篇部落格文章,描述:
Java 支援智慧選擇
Microsoft Java 擴充套件 現在支援 智慧語義選擇。您可以根據原始碼中插入符位置的語義資訊擴充套件或縮小選擇範圍。
- 要擴充套件選擇,請使用 ⌃⇧⌘→ (Windows、Linux Shift+Alt+Right)。
- 要縮小選擇,請使用 ⌃⇧⌘← (Windows、Linux Shift+Alt+Left)。
擴充套件創作
vscode.workspace.fs
有一個新的 API,供擴充套件讀取、寫入和管理檔案和資料夾。這是 Node.js fs 檔案系統模組的替代方案,更重要的是,它允許訪問來自貢獻的檔案系統中的檔案,例如 SSH 或 WSL 遠端檔案系統。
以下程式碼片段展示瞭如何寫入檔案,更多使用示例可在 fsconsumer-sample 中找到。
const writeStr = '1€ is 1.12$ is 0.9£';
const writeBytes = Buffer.from(writeStr, 'utf8');
await vscode.workspace.fs.writeFile(someUri, writeBytes);
號召性用語:如果您的擴充套件目前正在使用 Node.js 的 fs
模組,請考慮遷移到新的 vscode.workspace.fs
API。
DiagnosticsTag.Deprecated
診斷標籤使擴充套件作者能夠豐富編輯器中診斷的表示形式。此版本添加了 DiagnosticTag.Deprecated
,編輯器將以刪除線呈現。
上面圖片中的診斷由下面顯示的 validate
函式建立。行 diag.tags = [vscode.DiagnosticTag.Deprecated];
添加了棄用標籤。
let diagnostics = vscode.languages.createDiagnosticCollection('Sample Errors');
let validate = (editor: vscode.TextEditor | undefined) => {
if (!editor) {
return;
}
let result: vscode.Diagnostic[] = [];
for (let line = 0; line < editor.document.lineCount; line++) {
let pos = 0;
while ((pos = editor.document.lineAt(line).text.indexOf('guys', pos)) >= 0) {
let diag = new vscode.Diagnostic(
new vscode.Range(line, pos, line, pos + 'guys'.length),
'This is deprecated, use "folks", "people", or "you all" instead.'
);
diag.severity = vscode.DiagnosticSeverity.Warning;
diag.tags = [vscode.DiagnosticTag.Deprecated];
result.push(diag);
pos += 'guys'.length;
}
}
diagnostics.set(editor.document.uri, result);
};
vscode.workspace.workspaceFile
現在有一個新的工作區屬性 workspace.workspaceFile
,它返回工作區檔案的位置。例如:file:///Users/name/Development/myProject.code-workspace
或 untitled:1555503116870
(對於未命名且尚未儲存的工作區)。
根據開啟的工作區,該值將是:
- 當未開啟工作區或單個資料夾時為
undefined
。 - 工作區檔案的路徑為
Uri
。
如果工作區是未命名的,則返回的 URI 將使用 untitled:
方案。
工作區檔案位置的一個用途是呼叫 vscode.openFolder
命令,以便在關閉後再次開啟工作區。
vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);
注意:不建議使用 workspace.workspaceFile
位置直接將配置資料寫入檔案。請改用 workspace.getConfiguration().update()
方法,該方法在開啟單個資料夾以及未命名或已儲存的工作區時都適用。
vscode.env.shell
提議的 vscode.env.shell
API 現在已穩定。這應該用於獲取終端的預設 shell,而不是 terminal.integrated.shell.<platform>
設定。
const shell = vscode.env.shell;
if (shell.search(/(powershell|pwsh)/i) !== -1) {
// Do something special that PowerShell needs
}
when 子句中對 OR 的支援
現在可以在需要 when
子句的各種貢獻點中使用邏輯 OR (||
)。
例如,新增選單貢獻時:
"contributes": {
"menus": {
"editor/title": [{
"command": "showPreviewToSide",
"when": "editorLangId == markdown || editorLangId == html",
"group": "navigation"
}]
}
}
AND &&
運算子的優先順序高於 OR ||
。
活動輸入選項的新主題顏色
一個新的顏色 inputOption.activeBackground
允許您控制輸入欄位中啟用選項的背景顏色。此顏色重複使用 focusBorder
,因此它預設與主題更好地配合。我們還將 inputOption.activeBorder
的預設值設定為透明,以便邊框僅用於焦點。
在執行擴充套件整合測試之前安裝擴充套件
使用 vscode-test@1.1.0
,擴充套件作者可以解析下載的 VS Code 副本的 CLI 路徑,並使用該路徑進行擴充套件管理。
例如
const cp = require('child_process');
const { downloadAndUnzipVSCode, resolveCliPathFromExecutablePath } = require('vscode-test');
(async () => {
const vscodeExecutablePath = await downloadAndUnzipVSCode('1.36.0');
const cliPath = resolveCliPathFromExecutablePath(vscodeExecutablePath);
cp.spawnSync(cliPath, ['--install-extension', '<EXTENSION-ID-OR-PATH-TO-VSIX>'], {
encoding: 'utf-8',
stdio: 'inherit'
});
})();
在更新的 測試擴充套件文件 中閱讀更多內容。
更新了用於在 Linux 上執行擴充套件整合測試的 Travis CI 指令碼
以下推薦的擴充套件整合測試配置(見下文)可能無法在最新的 Travis CI Linux 環境中工作。
if [ $TRAVIS_OS_NAME == "linux" ]; then
export CXX="g++-4.9" CC="gcc-4.9" DISPLAY=:99.0;
sh -e /etc/init.d/xvfb start;
sleep 3;
fi
您現在可以使用下面的 Xvfb 指令碼代替:
if [ $TRAVIS_OS_NAME == "linux" ]; then
export DISPLAY=':99.0'
/usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
fi
在更新的 持續整合文件 中閱讀更多內容。
建議的擴充套件 API
每個里程碑都附帶新的提議 API,擴充套件作者可以試用它們。一如既往,我們渴望您的反饋。以下是試用提議 API 所需的操作:
- 您必須使用 Insiders 版本,因為提議的 API 經常更改。
- 您的擴充套件的
package.json
檔案中必須包含以下行:"enableProposedApi": true
。 - 將最新版本的 vscode.proposed.d.ts 檔案複製到您的專案中。
請注意,您不能釋出使用提議 API 的擴充套件。我們很可能會在下一個版本中進行破壞性更改,我們絕不希望破壞現有擴充套件。
擴充套件終端
去年引入的 proposed TerminalRenderer API 經過重大修改,現已棄用,取而代之的是“擴充套件終端”。新的 API 更符合終端的實際工作方式,擴充套件現在實現了 Pseudoterminal
物件,類似於 *nix 風格的 pty。
這是當前的提案:
export namespace window {
export function createTerminal(options: ExtensionTerminalOptions): Terminal;
}
export interface ExtensionTerminalOptions {
name: string;
pty: Pseudoterminal;
}
interface Pseudoterminal {
onDidWrite: Event<string>;
onDidOverrideDimensions?: Event<TerminalDimensions | undefined>;
onDidClose?: Event<void>;
open(initialDimensions: TerminalDimensions | undefined): void;
close(): void;
handleInput?(data: string): void;
setDimensions?(dimensions: TerminalDimensions): void;
}
以下是一些重大變化:
- 現在,擴充套件終端的建立方式與常規終端大致相同,只是使用了不同的選項物件。這也消除了透過
TerminalRenderer.terminal
訪問Terminal
物件的混亂。 - 作業系統程序的概念已消失,也不再需要返回退出程式碼。
Pseudoterminal
可以簡單地關閉終端,所有錯誤顯示/通知都由擴充套件程式驅動。 - 如果初始尺寸可用(終端面板之前已顯示),則呼叫
Pseudoterminal.open
並帶上初始尺寸。
這是一個簡單的例子,說明您如何建立一個簡單的終端,回顯您的輸入:
const writeEmitter = new vscode.EventEmitter<string>();
let line = '';
const pty = {
onDidWrite: writeEmitter.event,
open: () => writeEmitter.fire('Type and press enter to echo the text\r\n\r\n'),
close: () => {},
handleInput: (data: string) => {
if (data === '\r') {
writeEmitter.fire(`\r\necho: "${line}"\r\n\n`);
line = '';
} else {
line += data;
writeEmitter.fire(data);
}
}
};
const terminal = vscode.window.createTerminal({ name: `My Extension REPL`, pty });
terminal.show();
我們希望相對快速地穩定此功能並移除已棄用的終端渲染器,可能在 v1.38 到 v1.39 之間。
vscode.CustomExecution2
此 API 是 vscode.CustomExecution
的演進。它使用新的改進的 vscode.Pseudoterminal
允許任務提供程式建立任務,使擴充套件內的程式碼能夠完全控制終端,而不僅僅是執行指令碼或程序。
export class CustomExecution2 {
/**
* @param process The [Pseudoterminal](#_Pseudoterminal) to be used by the task to display output.
* @param callback The callback that will be called when the task is started by a user.
*/
constructor(callback: (thisArg?: any) => Thenable<Pseudoterminal>);
/**
* The callback used to execute the task. Cancellation should be handled using
* [Pseudoterminal.close](#_Pseudoterminal.close). When the task is complete fire
* [Pseudoterminal.onDidClose](#_Pseudoterminal.onDidClose).
*/
callback: (thisArg?: any) => Thenable<Pseudoterminal>;
}
vscode.commands.onDidExecuteCommand
現在有一個新事件,每當執行命令時就會觸發,並且事件的有效負載會標識命令和引數。
export interface CommandExecutionEvent {
command: string;
arguments: any[];
}
export namespace commands {
/**
* An event that is emitted when a [command](#_Command) is executed.
*/
export const onDidExecuteCommand: Event<CommandExecutionEvent>;
}
Webview.toWebviewResource 和 Webview.cspSource
之前提議的 Webview.resourceRoot API 已經過重新設計。
Webview 上現在有兩個提議的屬性:
-
Webview.toWebviewResource
- 將本地檔案系統的 URI 轉換為可在 Webview 內部使用的 URI。對於桌面版 VS Code,這將把
file:
URI 轉換為vscode-resource:
URI。 -
Webview.cspSource
- Webview 資源的內容安全策略源。對於桌面版 VS Code,這將是字串
vscode-resource:
。
const panel = vscode.window.createWebviewPanel(
CatCodingPanel.viewType,
'Cat Coding',
vscode.ViewColumn.One,
{
// Restrict the webview to only loading local content from our extension's `media` directory.
localResourceRoots: [vscode.Uri.file(path.join(extensionPath, 'media'))]
}
);
const imagePath = vscode.Uri.file(path.join(extensionPath, 'media'));
panel.html = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src ${
panel.webview.cspSource
} https:;">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cat Coding</title>
</head>
<body>
<img src="${panel.webview.toWebviewResource(imagePath)}/cat.gif" width="300" />
</body>
</html>`;
工程
移除 VS Code 程式碼庫中的 suppressImplicitAnyIndexErrors
當我們 為 VS Code 的原始碼啟用嚴格的 null 檢查 時,我們還在 TypeScript 編譯器中打開了 "suppressImplicitAnyIndexErrors": true
。此設定允許對值使用括號訪問器,即使值的型別沒有明確的索引訪問簽名。
這有問題,因為它很容易隱藏 TypeScript 本來可以捕獲的錯誤:
const map = new Map()
map.set('property', true);
...
if (map['property']) { // This is not an TS error but it does not do what you want!
doImportantStuff();
}
此次迭代,我們移除了 suppressImplicitAnyIndexErrors
變通方法,並修復了它抑制的大約 250 個錯誤。最常見的兩種修復是新增顯式索引簽名,以及將使用物件字面量儲存對映切換為使用適當的 Map
型別。
基於網格的工作臺佈局進展
在此里程碑中,我們繼續了幾個里程碑前開始的關於工作臺基於網格佈局的工作。一旦我們的初始解決方案完成,新版本的工作臺的功能應該類似,但它在新增新的佈局選項和功能方面將更加靈活。
我們正在測試的一個新行為是能夠將終端一直向上拖動,完全隱藏編輯器。目前,該佈局仍然受 workbench.useExperimentalGridLayout
標誌的限制。在上一個里程碑期間,我們在 Insiders 中預設啟用了它,並且在下一個里程碑中也將繼續啟用。
持續探索基於 iframe 的 Webview
我們繼續探索使用普通 iframe 來託管 VS Code 的 Webview。作為此項工作的一部分,我們現在支援在唯一的源中載入每個基於 iframe 的 Webview。這確保了來自多個擴充套件的 Webview 不能相互影響。
您現在還可以透過設定:"webview.experimental.useExternalEndpoint": true
在桌面版 VS Code 中啟用基於 iframe 的 Webview。請注意,使用基於 iframe 的 Webview 目前需要網際網路連線。雖然基於 iframe 的 Webview 仍處於實驗階段,但我們非常感謝 Webview 擴充套件作者提供有關您的擴充套件在使用基於 iframe 的 Webview 執行時不起作用部分的反饋。
新文件
遠端開發教程
有新的入門教程,將指導您使用遠端開發擴充套件執行 Visual Studio Code。
- 透過 SSH 遠端連線 - 透過 SSH 將 Visual Studio Code 連線到遠端和虛擬機器。
- 在 WSL 中工作 - 在適用於 Linux 的 Windows 子系統中執行 Visual Studio Code。
- 開發容器 - 在 Docker 容器中執行 Visual Studio Code。
值得注意的修復
- 422:恢復最大化視窗時保留視窗大小
- 70371:Emmet 製表符補全在大型檔案中速度慢
- 76922:側邊欄檢視的順序在所有視窗中都保持不變
- 76989:停用擴充套件不適用於擴充套件除錯
- 77110:除錯整合終端支援未獲取預設終端
- 77926:有時鍵入 "string;" 會插入 "strings;"
感謝
最後但同樣重要的是,衷心感謝!以下幫助使 VS Code 變得更好的各位:
對 vscode
的貢獻
- kaoru (@0x6b):選單項“Checking For Updates...”中的“For”小寫 PR #77972
- Akshita Agarwal (@akshita31):修改 dotnet 構建模板 PR #76318
- Angelo (@angelozerr)
- Brett Cannon (@brettcannon)
- Shiva Prasanth (@cedric05):在多個 git 儲存庫工作區中,無法在
原始碼管理提供程式檢視
中透過按下向上箭頭和回車鍵檢視/聚焦更改 PR #73139 - Christian Oliff (@coliff):修復“Untitled”拼寫錯誤 PR #78272
- Connor Peet (@connor4312):修復 (sash):在包含 iframe 的擴充套件中拖動困難 PR #77121
- Connor Shea (@connorshea):新增 .rbi 副檔名作為 Ruby 檔案型別 PR #75155
- Daniel Schildt (@d2s):修復:拼寫錯誤糾正 PR #77618
- Dave Alongi (@dalongi):配置 + UI 以記住允許處理 URI 的擴充套件 PR #70844
- Eric Amodio (@eamodio)
- Gabriel DeBacker (@GabeDeBacker):為自定義執行使用正確的已解析 TDO 和任務 PR #77759
- George Batalinski (@georgebatalinski):搜尋小部件 (aria-live) 結果狀態 PR #77031
- Haneef Mohammed (@haneefdm):在除錯變數檢視中保留樹狀態 PR #76476
- Harry Hedger (@hedgerh):onDidExecuteCommand API PR #72345
- 洪宏偉 (@hwhung0111)
- @ironyman:在 HC 的選項卡和麵包屑之間新增邊框 PR #76157
- Julien Brianceau (@jbrianceau)
- Jean Pierre (@jeanp413)
- Joel Day (@joelday):新增對 TaskProvider.resolveTask 的支援 PR #71027
- Malige Julien (@JulienMalige):#42382 搜尋和替換時保留大小寫 PR #60311
- Justin Grant (@justingrant):修復 JSDoc 拼寫錯誤:“beginPattern”->“beginsPattern” PR #73141
- Kamran Ayub (@kamranayub)
- Kostya Bushuev (@kostyabushuev):已修復 #71134 PR #71500
- Maik Riechert (@letmaik):修復 cpuUsage.sh 中變數的遞增 PR #77512
- Leonardo Carreiro (@lmcarreiro):修復 #48403 markdown 影像中 UNC 路徑損壞的問題 PR #74332
- Mason Liu (@masliu):為預覽儲存 resourceColumn,修復 #74008 PR #76647
- Mathieu Plourde (@matpl):為 isInDOM 函式新增 shadow root 支援 PR #72313
- @mflan48:針對問題 #71683 的拉取請求 PR #72381
- @Neonit:在 Markdown 預覽中將程式碼製表符大小調整為 4 PR #77745
- Ryo Nishimura (@niharu):修復 transitionDisposables 拼寫錯誤 PR #76723
- Orta (@orta):更新 seti-ui 的最新圖示主題 PR #76890
- Dima Ovcharenko (@ovcharenko-di):將 id 更改為 displayName,修復 #77141 PR #77147
- @pi1024e
- Robert Ancell (@robert-ancell):snapcaft.yaml:在 Snap 元資料中設定 AppStream ID PR #76432
- @sharkykh:重新命名時將當前 git 分支名稱作為值 PR #72957
- Prabhanjan S Koushik (@skprabhanjan)
- 修復 #72650 - Shell 路徑在啟動前應進行驗證,以防止模糊錯誤 - $Path 檢查 PR #76349
- 修復 #75259 - 與搜尋結果中的檔案互動 PR #78337
- 修復 #76141 在影像預覽中影像周圍新增邊框 PR #76387
- 修復 #76662 將 *.hpp.in 新增到 vscode 的 file.associations 中 PR #76680
- 修復 #74281 標準主題強制 SourceControlResourceGroup 標題為大寫 PR #76286
- 修復 #73341 從擴充套件頁面“安裝”按鈕安裝擴充套件時,右下角會一直顯示通知氣球 PR #74795
- 修復 #75259 - 與搜尋結果中的檔案互動 PR #76828
- 修復 #76315 將 *.podspec 新增到檔案關聯 PR #76447
- @tomkv:將 sk 新增到需要區域設定的區域 PR #77942
- Tony Xia (@tony-xia)
- Alexander (@usernamehw):回滾“新增 CLI 標誌以停用 Webview 中的平滑滾動” PR #76944
- Vanessa Phipps (@vlmphipps):替換:全部替換時遵守 preserveCase PR #78003
- Wesley Wigham (@weswigham):在構建資料夾中使用較新版本的 @types/node 以匹配所有其他資料夾 PR #77784
- Xhulio Hasani (@xuhas):tab 標題中的 git HEAD 資訊 PR #76329
- Zero (@ZhangDezhi):避免使用 extensionTestsLocationURI.fsPath,因為它會規範化路徑(針對 #69… PR #74214
對我們問題跟蹤的貢獻
- John Murray (@gjsjohnmurray)
- Alexander (@usernamehw)
- Eric Amodio (@eamodio)
- Jean Pierre (@jeanp413)
- Danny Tuppeny (@DanTup)
如果您想幫助我們管理傳入問題,請參閱我們的社群問題跟蹤頁面。
對 language-server-protocol
的貢獻
對 debug-adapter-protocol
的貢獻
- Pierson Lee (@pieandcakes):更新 C/C++ 資料 PR #64
- Jonah Graham (@jonahgraham):更新版本以匹配更新日誌的最新條目 PR #67
對 vscode-generator-code
的貢獻
- Tomáš Hübelbauer (@TomasHubelbauer):使此生成器與 require.resolve 配合使用 PR #179
- Yoichi Kawasaki (@yokawasa):更新 ext-command-ts 模板的快速入門頁面 PR #178
對 vscode-vsce
的貢獻
- Eric Amodio (@eamodio):尊重 prepublish 步驟的 --yarn 標誌 PR #376
- Leo Hanisch (@HaaLeo):支援 GitHub 問題連結 PR #345
- James George (@jamesgeorge007):微重構以實現簡潔的程式碼 PR #370
對 inno-updater
的貢獻
- Ta Thanh Dinh (@tathanhdinh):使用 is_null 方法檢查指標是否為 null PR #10
對 localization
的貢獻
有超過 800 名 雲 + AI 本地化 社群成員使用 Microsoft 本地化社群平臺 (MLCP),其中約有 100 名活躍貢獻者為 Visual Studio Code 做出貢獻。我們感謝您的貢獻,無論是提供新翻譯、對翻譯投票還是提出流程改進建議。
這是貢獻者的快照。有關專案詳細資訊,包括貢獻者姓名列表,請訪問專案網站:https://aka.ms/vscodeloc。
- 波斯尼亞語:Ismar Bašanović, Ernad Husremovic。
- 保加利亞語: Hristiqn Hristov, Ivan Ivanov, Lyubomir Vasilev, Gheorghi Penkov。
- 捷克語: Tadeáš Cvrček, Daniel Padrta, David Jareš, Jan Hajek, Jakub Stibůrek, Michal Franc, Jan Kos, Radim Hampl, Jiří Hofman, Samuel Tulach, Jan Brudný。
- 丹麥語: René Pape, Lasse Stilvang, Allan Kimmer Jensen, Lars Vange Jørgensen, Alexander Matzen, Martin Liversage, Johan Fagerberg, Thomas Larsen, Anders Lund, Anton Ariens。
- 荷蘭語: Leroy Witteveen, Maxim Janssens, Luc Sieben, Hans Zoons, Jos Verlinde, Eric Algera, Damien van Gageldonk, Maxim Van Damme, Sven Klaasen, Tom Meulemans, Sujith Quintelier。
- 英語(英國): Martin Littlecott, Alexander Ogilvie, Tobias Collier, William Wood, Fabio Zuin, Mohit Nain, Dan Jacobs, Sulkhan Ninidze, Giorgi Jambazishvili, alshyab wa3ed, YASHU MITTAL, Tejas kale, Mohammad Idrees, Chris Dias。
- 芬蘭語: Petri Niinimäki, Kiti Suupohja, Lasse Leppänen, Sebastian de Mel, Riku Riikonen, Valtteri Vatanen。
- 法語: Antoine Griffard, Thierry DEMAN-BARCELÒ, Corwin D'Ambre, Mohamed Sahbi, Rodolphe NOEL, Maxime Coquerel, Steven Dugois, Cédric M., Michael VAUDIN, Bastien Boussouf, franto。
- 德語: Julian Pritzi, Jakob von der Haar, Frank Lindecke, Dejan Dinic, Florian Erbs, Patrick Burke, Mario Koschischek, Florian Berger, Christof Opresnik, Hans Meiser, Carsten Kneip, Ettore Atalan, Thorsten Hans, Meghana Garise, Sebastian Seidl。
- 希臘語: Δημήτρης Παπαϊωάννου, Sotiris Koukios-Panopoulos, Jim Spentzos, Θοδωρής Τσιρπάνης, Stratos Kourtzanidis, Charalampos Fanoulis, John D, Vassilis Vouvonikos。
- 希伯來語: חיים לבוב, Shalom Craimer, Matan Amos, Eyal Ellenbogen, Snir Broshi, Kyle Orin。
- 印地語: Satish Yadav, Amit Gusain, Sanyam Jain, Abhirav Kushwaha, Ashok Kumar Rathore, nirav adatiya, Rajeev Desai, shaswat rungta, Kumar Vaibhav, Pramit Das, Jagjeet Singh, Pratishek PII, Kiren Paul, Chethana S, Kishan K, Dhanvi Kapila。
- 匈牙利語: Levente Borbély, Péter Nagy, Levente Hallai Seiler, Dániel Tar, Richard Borcsik, Boldi Kemény。
- 簡體中文: Tingting Yi, 斌 項, paul cheung, Yiting Zhu, 建東 薛, feiyun0112 feiyun0112, Joel Yang, 劉瑞恆 劉瑞恆, Edi Wang, Junzhe Liu, Dave Young, 張銳, Yizhi Gu, Fan Su, 昊宇 周, Justin Liu, Pluwen, Tony Xia, Yu Zhang, XIANG ZUO, 少民 談, 彥佐 劉, Zhiqiang Li, 福永 葉, G.Y. Z, Hao Hu, 志樂 龔, meng shao, Horie Yuan, Xiangrui Kong, Liam Kennedy, 王文傑, 趙暢暢, 松陽 樊, anson zhang, Young Bige, Shi Liu, Wang Debang, Jessica Zhang, Licheng Ren, 馳 雷, sun qing, xiong Fu, Lynne Dong, zhao yu, 吉姆 舒, 紅東 黃, 遊 尤, 劍秋 陶, Hanlin Yang, , bh wu, Bravo Yeung, Michael Zhang, Hanyu ZHANG, Y F, WangCG duoduobear, ziqiang sun, 越 鄭, 正元 劉, Jiang LI, 擎 鍾, peng wei, 濤 徐, 逍遙 許, Charles Lee, 瑜 周, WL, 偉 全, rsy iridescent, Simon Chan, 海龍 黃, 仁松 陳, Jieting Xu, panda small, 翼 張, Chen Yang, Wang Weixuan, 舜傑 楊, Ludi Fang, 雨齊 劉, 建 周, 濤 羅, cuibty wong, 立飛 李, LI ZHAO, 九鼎 譚。
- 繁體中文: 謝政廷, Winnie Lin, LikKee 瀝祺 Richie, Martin Lau, Jeremy, 奕濬 潘, 小克, 煾 雪。
- 印度尼西亞語: Jakka Prihatna, Septian Adi, Arif Fahmi, Laurensius Dede Suhardiman, maziyank, Heston Sinuraya, Hendra Widjaja, Don Nisnoni, Rachmat Wahidi, Franky So, Bervianto Leo Pratama, Eriawan Kusumawardhono, Rifani Arsyad, Afnizar Nur Ghifari, Christian Elbrianno, Pradipta Hendri, Azhe Kun。
- 義大利語: Alessandro Alpi, Bruni Luca, Luigi Bruno, Andrea Dottor, Riccardo Cappello, Aldo Donetti, andrea falco, Emanuele Meazzo, Michael Longo, Marco Dal Pino。
- 日語: EbXpJ6bp -, nh, Kyohei Uchida, Yoshihisa Ozaki, Hasefumi, TENMYO Masakazu, Takayuki Fuwa, Michihito Kumamoto, Koichi Makino, Seiji Momoto, Aya Tokura, Yosuke Sano, Makoto Sakaguchi, Kyohei Moriyama, 裕子 知念, Rie Moriguchi, Fujio Kojima, 美穂 山本, taniokae, 太郎 西岡, Hiroomi Kurosawa, Kazuya Ujihara, Yasuaki Matsuda。
- 韓語: Hongju, 우현 조, Jong Heun Shin, 형섭 이, Kyunghee Ko, Youngjae Kim, siin lee, Jae Yong Kum, Hoyeon Han, Kevin Lee, SeungJin Jeong, Hong Kwon。
- 拉脫維亞語:Kaspars Bergs, Andris Vilde。
- 立陶宛語: Andrius Svylas, Augustas Grikšas, Tautvydas Derzinskas, Karolis Kundrotas, Martynas J.。
- 挪威語: Andreas Rødland, Cookius Monsterius, Dag H. Baardsen, Ole Kristian Losvik, Stephan Eriksen。
- 波蘭語: Warchlak, Wojciech Maj, Marcin Weksznejder, Rafał Całka, Tomasz Świstak, Tomasz Wiśniewski, Marek Biedrzycki, Szymon Seliga, Michal Szulc, Jakub Żmidziński, Bartek PL, Igor 05, Rafał Wolak, Tomasz Chojnacki, Piotr Grędowski, Czech Kaczmarek, Artur Pelczar, Marcin Floryan, Paweł Modrzejewski, Jakub Jedryszek, Michał Stojke, Artur Zdanowski。
- 葡萄牙語(巴西): Alessandro Trovato, Thiago Dupin Ugeda, Weslei A. de T. Marinho, Rafael Lima Teixeira, Gerardo Magela Machado da Silva, Marcos Albuquerque, Loiane Groner, Alessandro Fragnani, Judson Santiago, Andrei Bosco, Fábio Corrêa, Roberto Fonseca, Fabio Lux, Emmanuel Gomes Brandão, Guilherme Pais, Rodrigo Vieira, André Gama。
- 葡萄牙語(葡萄牙): Ana Rebelo, Nuno Carapito, Pedro Daniel, Pedro Teixeira, João Carvalho, Diogo Barros, José Rodrigues, Sandro Pereira, Vitor Barbosa, Tiago Antunes。
- 羅馬尼亞語: Mihai Marinescu, Stefan Gabos, Alexandru Staicu。
- 俄語: Andrey Veselov, Дмитрий Кирьянов, michael v, Иван Лещенко, nata kazakova, Анатолий Калужин, Валерий Батурин, Эдуард Тихонов。
- 塞爾維亞語: Milos Zivkovic, Radovan Skendzic。
- 西班牙語: Andy Gonzalez, Alvaro Enrique Ruano, Engel Aguilar, Carlos Mendible, José María Aguilar, David Fernández Aldana, Ricardo Rubio, Thierry DEMAN, julian3xl, Ing. Sergio Uziel Tovar Lemus, Mario Mendieta, Jorge Serrano Pérez, Ricardo Estrada Rdez。
- 瑞典語:Johan Spånberg, Notetur Nomen。
- 泰米爾語: Merbin J Anselm, Kondasamy Jayaraman, Mani M, Boopesh Kumar, Vignesh Rajendran, Jeyanthinath Muthuram, Jaganathan B, Nithun Harikrishnan, Purusothaman Ramanujam, Krishna Pravin, Jeffin R P, Karunakaran Samayan, Vetri ..
- 土耳其語: Meryem Aytek, BlueAngel-MG, Fıratcan Sucu, Ahmetcan Aksu, Ömer Sert, Mehmet Yönügül, Anıl MISIRLIOĞLU, Sinan Açar, Misir Jafarov, Umut Can Alparslan, Yakup Ad, Hüseyin Fahri Uzun, S. Ferit Arslan, Mesut Pişkin, Okan Çetin, Bruh Moment, Muhammed Emin TİFTİKÇİ, Burak Göksel。
- 烏克蘭語: Dmytro Kutianskyi, Arthur Murauskas, Sviatoslav Ivaskiv, Yaroslav Y, George Molchanyuk, Did Kokos, Alexander Varchenko, Вадим Шашков, Евгений Коростылёв。
- 越南語: Khôi Phạm, Van-Tien Hoang, Belikhun, Việt Anh Nguyễn, Spepirus Shouru, Vuong Bui, Chủ Tất。