參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

2019 年 3 月 (版本 1.33)

更新 1.33.1:此更新解決了這些問題

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


歡迎使用 Visual Studio Code 2019 年 3 月版。此版本中有許多更新,希望您會喜歡,其中一些主要亮點包括:

如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
您還可以觀看由開發倡導者 Brian Clark 製作的 1.33 版本亮點影片

釋出說明按以下與 VS Code 重點領域相關的部分進行排列。以下是一些進一步的更新

  • 工作臺 - 改進的原始碼管理檢視,使用螢幕閱讀器更輕鬆地進行列表導航。
  • 整合終端 - ConPTY 在 Windows 上預設開啟,渲染效能改進。
  • 語言 - 停用 CSS 屬性值補全,TS 改進了推斷和 const 斷言。
  • 擴充套件創作 - 最終確定了智慧選擇 API,安裝擴充套件命令。
  • 工程 - 官方 Linux snap 包,使用 NPM 包快取加快 OSS 構建。

Insiders:想盡快看到新功能嗎?您可以下載每夜更新的 Insiders 構建版本,並第一時間嘗試最新的更新。有關最新的 Visual Studio Code 新聞、更新和內容,請在 Twitter 上關注我們 @code

工作臺

更輕鬆的顯示語言配置

執行配置顯示語言命令現在將開啟一個快速選擇器,其中列出根據您安裝的語言包可用的區域設定,而不是僅開啟 locale.json 檔案。當您做出選擇時,區域設定將自動更新,系統會提示您重新啟動 VS Code 以使更改生效。

Configure Display Language Quick Pick

改進的原始碼管理檢視

原始碼管理檢視已與其他檢視(如檔案資源管理器、除錯檢視等)的行為保持一致。現在可以使用上下文選單操作使儲存庫可見或隱藏。它們的順序和大小現在得以保留。您還可以使用上下文選單操作顯示或隱藏原始碼管理提供程式檢視。

Source Control view context menu

檢測到螢幕閱讀器時,列表可進行簡單的鍵盤導航

當 VS Code 檢測到正在使用螢幕閱讀器時,它會自動為列表開啟簡單的鍵盤導航。這使得使用螢幕閱讀器的使用者更容易進行列表鍵盤導航,因為每次按鍵都會導航到相應的專案。此行為適用於工作臺中的所有列表和樹,例如檔案資源管理器、開啟的編輯器和除錯檢視。

編輯器

IntelliSense 自定義

有新的設定控制 IntelliSense 顯示

  • editor.suggest.filteredTypes - 從 IntelliSense 篩選特定型別,例如,關鍵字透過以下方式篩選:{ "keyword": false }
  • editor.suggest.maxVisibleSuggestions - 控制 IntelliSense 一次顯示的條目數。
  • editor.suggest.showIcons - 啟用或停用在 IntelliSense 中顯示圖示。

下面是 TypeScript IntelliSense 的一個示例,其中關鍵字已過濾,沒有圖示,並且限制為八個建議

IntelliSense: no keywords, no icons, only eight entries

預設格式化程式選擇

我們的許多使用者從事不同的專案,通常不同的專案使用不同的文件格式化程式。這很難配置,我們添加了一個新設定 editor.defaultFormatter 來提供幫助。現在,當有多個格式化程式可用時,您可以定義一個作為預設格式化程式。事實上,VS Code 會鼓勵您選擇一個預設格式化程式。

Pick Default Formatter

這將更新您的配置(如下圖所示),以便在後續的儲存操作中,VS Code 知道選擇哪個格式化程式。我們還鼓勵您在專案的配置中設定此值。例如,如果您的專案團隊就某個格式化程式達成一致,那麼應該在專案設定檔案中明確指出。

"[javascript]": {
  "editor.defaultFormatter": "HookyQR.beautify"
}

定義預設格式化程式不會移除替代格式化程式。我們添加了使用以下方式格式化文件... 命令,它仍然允許您在格式化文件之前選擇格式化程式。如果需要,您還可以從下拉選單重新配置預設格式化程式。

轉到定義自定義

某些程式語言允許您在多個位置定義一個符號。這意味著像轉到定義這樣的功能必須一次轉到多個位置。VS Code 透過顯示包含所有位置的 Peek 檢視來支援此功能。此行為現在可以透過新設定 editor.gotoLocation.multiple 進行微調。

它可以設定為這些值

  • peek - 在當前位置開啟 Peek 檢視。這是預設值。
  • gotoAndPeek - 開啟主要位置(由擴充套件定義)並同時顯示 Peek 檢視。
  • goto - 僅開啟主要位置。

程式碼片段變數 $WORKSPACE_NAME

有一個新的程式碼片段變數,它解析為開啟的工作區/資料夾的名稱:$WORKSPACE_NAME

如下圖所示在程式碼片段中使用它

"header": {
  "scope": "javascript,typescript",
  "prefix": "workspace",
  "body": ["// the ${WORKSPACE_NAME}-project"],
  "description": "Log output to console"
}

整合終端

ConPTY 在 Windows build 18309+ 上預設開啟

對於支援的 Windows 10 Insider 版本,新的終端後端 ConPTY 將預設開啟。這應該會帶來更穩定的體驗,更接近原生終端,並增加 256 色支援。如果您遇到問題,請告知我們Windows 控制檯團隊。您始終可以使用此設定選擇退出

{
  "terminal.integrated.windowsEnableConpty": false
}

資料解析上限為 12 毫秒

以前,終端解析的資料量沒有得到適當的限制。這意味著在效能較低的硬體上,解析資料和渲染的時間會遠遠超過渲染一幀的理想時間,導致 UI 滯後或對於生成大量輸出的命令完全卡死。現在已設定上限,可防止此時間超過大約 12 毫秒,這應該可以避免這些問題。

語言

TypeScript 3.4

VS Code 現在附帶 TypeScript 3.4.1。此更新增加了對一些新的 TypeScript 語言功能的支援——例如改進的型別推斷和新的 const 斷言——並帶來了工具改進和錯誤修復。

轉換為解構引數重構

TypeScript 的新轉換為命名引數重構允許您透過將函式轉換為接受單個命名引數物件來快速組織長函式引數列表。

Cleaning up a long parameter list

停用 CSS 屬性值補全的選項

新設定 css.completion.triggerPropertyValueCompletion 允許您停用屬性值補全。例如,如果您從 p 中選擇 position 並且此設定設定為 false,VS Code 將不會觸發屬性值的 static | absolute | sticky | ... 補全。

如果您想使用 Tab/Shift + Tab 選擇上一個和下一個補全項,這將非常有用。

除錯

支援子會話

在此里程碑中,我們增加了對在偵錯程式 UI 中將除錯會話顯示為樹的支援。以前,除錯會話以平面列表的形式顯示,這使得難以理解會話之間的關聯。

由於此功能可透過新的擴充套件 API 獲得,因此需要偵錯程式擴展采用。在此里程碑中,唯一使用分層除錯會話的偵錯程式是 VS Code 的 Node.js 偵錯程式。

在 Node.js 叢集除錯中,叢集的所有子程序都註冊在主除錯會話下

Node.js subprocesses under main debug session

在“伺服器就緒功能”(見下文)中,自動啟動的 Chrome 瀏覽器會話註冊為伺服器除錯會話的子會話。

自動開啟 URI

上一個里程碑提供了“伺服器就緒”功能的預覽版,該功能允許您在檢測到特定程式輸出訊息後自動在 Web 瀏覽器中開啟 URL。此功能對於除錯 Web 伺服器原始碼非常有用,因為瀏覽器中開啟的 URL 可以在伺服器準備就緒後立即使伺服器命中斷點(所有這些都只需按一下 F5 鍵)。

在此里程碑中,我們已將此功能從預覽版移出。VS Code 不僅在除錯控制檯中查詢觸發訊息,還在整合終端中查詢。此外,我們還改進了錯誤處理。

請注意,由於技術原因,無法在外部終端中支援“伺服器就緒”功能。

擴充套件

安裝缺失的依賴項

當 VS Code 檢測到缺失的擴充套件依賴項時,我們改進了擴充套件啟用失敗通知,現在提供安裝缺失依賴項的操作。

Extension missing dependency warning

您還可以使用新的擴充套件:安裝缺失的依賴項命令安裝所有缺失的依賴項。

擴充套件的網路代理支援

我們現在從作業系統載入 SSL/TLS 證書,並在驗證擴充套件發起的 https 請求時包含它們。這支援使用自己的 SSL/TLS 證書的代理以及其他具有自定義證書的設定。

此外,擴充套件的 http/https 請求現在遵守 NO_PROXY 環境變數,該變數列出了以逗號分隔的域名,對於這些域名應忽略所有代理設定。

預覽功能

預覽功能尚未準備好釋出,但已足夠實用。我們歡迎您在這些功能開發期間提供早期反饋。

呼叫層次結構

呼叫層次結構檢視顯示從函式或到函式的所有呼叫,並允許您深入檢視呼叫者的呼叫者和呼叫的呼叫。下圖顯示函式 foobarbang 呼叫,然後 barbangfib 呼叫。

Call Hierarchy view

這是一個預覽功能,目前沒有任何擴充套件為其提供真實資料。但是,如果您是擴充套件作者,我們邀請您驗證我們提出的 API。如果您有興趣,有一個用於測試的示例擴充套件:https://github.com/jrieken/demo-callhierarchy。

擴充套件創作

智慧選擇 API

我們已經最終確定了與展開選擇 (⌃⇧⌘→ (Windows, Linux Shift+Alt+Right)) 和縮小選擇 (⌃⇧⌘← (Windows, Linux Shift+Alt+Left)) 命令一起使用的智慧選擇 API。透過此 API,擴充套件可以在編輯器中定義選擇的範圍。

安裝擴充套件命令

引入了一個新命令 workbench.extensions.installExtension,用於從 Marketplace 或 VSIX 安裝擴充套件。

要從 Marketplace 安裝擴充套件,您需要提供其識別符號。

vscode.commands.executeCommand('workbench.extensions.installExtension', 'ms-python.python');

要透過 VSIX 安裝,您需要提供其位置 URI。

vscode.commands.executeCommand(
  'workbench.extensions.installExtension',
  vscode.Uri.file('path-to-vsix')
);

除錯工具欄貢獻支援定位

現在可以在除錯工具欄中以任何順序定位貢獻的除錯命令。預設除錯命令使用組 navigation,因此如果您希望貢獻的命令與預設命令混合,請使用相同的組。有關組內排序的更多資訊,請參閱貢獻點文件

為保持一致性,我們正在棄用選單 ID debug/toolbar,轉而使用 debug/toolBar。在三月版中,我們將支援這兩個選單 ID,但在四月版中,對 debug/toolbar 選單 ID 的支援將被移除。

“sidebarVisible”上下文重新命名為“sideBarVisible”

為保持一致性,我們正在棄用上下文 sidebarVisible,轉而使用 sideBarVisible。在三月版中,這兩個上下文都將得到支援,但在四月版中,對 sidebarVisible 的支援將被刪除。

TerminalOptions.shellArgs 現在在 Windows 上接受字串

以前 TerminalOptions.shellArgs 僅支援 string[] 形式的引數列表。這可能會在 Windows 上引起問題,因為字串陣列需要轉換為命令列格式,並且對於複雜情況,轉換可能會出錯或難以正確實現。現在您可以透過直接使用命令列格式的 string 來繞過此轉換過程。

分層除錯會話

為了支援分層除錯會話,我們已將可選引數 parentSession 新增到 vscode.debug.startDebugging API。如果指定,VS Code 將以樹狀方式將 startDebugging 產生的除錯會話顯示為父會話的子會話。

移除 vscode.previewHtml 命令

在去年引入 webview API 之前,vscode.previewHtml 命令用於在編輯器中渲染 HTML 頁面。然而,vscode.previewHtml 命令存在一些重要的安全和相容性問題,我們認為無法在不破壞現有命令使用者的情況下解決這些問題。因此,我們沒有嘗試修復 vscode.previewHtml,而是選擇在 VS Code 1.33 中完全移除該命令。

我們已嘗試向所有使用 vscode.previewHtml 命令的擴充套件提供充分的警告,以便它們可以升級以使用 webview API。但是,可能仍有一些擴充套件仍在使用 vscode.previewHtml 命令,因此將不再工作。如果您正在使用其中一個擴充套件,請向其提交問題,或者更好的是,提交帶有修復的 PR。

建議的擴充套件 API

每個里程碑都附帶新的建議 API,擴充套件作者可以嘗試它們。一如既往,我們歡迎您的反饋。要嘗試建議的 API,您需要這樣做

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

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

自定義任務執行

除了 ProcessExecutionShellExecution 任務之外,現在還有一個 CustomExecution 任務。它不是啟動程序或執行指令碼,而是執行擴充套件提供的回撥。

let execution = new vscode.CustomExecution(
  (terminalRenderer, cancellationToken, args): Thenable<number> => {
    return new Promise<number>(resolve => {
      // This is the custom task callback!
      resolve(0);
    });
  }
);
const taskName = 'First custom task';
let task = new vscode.Task2(
  kind,
  vscode.TaskScope.Workspace,
  taskName,
  taskType,
  execution
);

這將為擴充套件提供的任務在執行時維護狀態提供更大的靈活性。它還提供對任務輸入和輸出的訪問。有關完整示例,請參閱測試項

評論 API

在過去兩個月裡,我們根據從 GitHub Pull Requests 擴充套件中學到的經驗教訓以及社群反饋,對評論相關功能進行了大量重構。新設計的評論 API 足夠通用和強大,可用於不同型別的用法。GitHub Pull Requests 擴充套件已遷移到新的評論 API。

新介面已在 VS Code Insiders 中提供,我們將在四月里程碑中調整和修改 API。舊的評論 API 也將在四月移除。您可以試用示例擴充套件,以更好地瞭解 API,或深入研究GitHub Pull Requests

WebviewOptions.portMapping

建議的 WebviewOptions.portMapping 設定允許擴充套件透明地定義 localhost 埠在 webview 內部的解析方式。

const panel = vscode.window.createWebviewPanel(
  'dog',
  'Dog Doodling',
  vscode.ViewColumn.One,
  {
    portMapping: [
      // Map localhost:3000 in the webview to localhost:4000 externally
      { port: 3000, resolvedPort: 4000 }
    ]
  }
);

panel.webview.html = `<!DOCTYPE html>
    <html lang="en">
    <head>
        <title>Dog Doodling</title>
    </head>
    <body>
        <!--
            With the above port mapping, this image will actually be resolved
            to localhost:4000 on the local machine
        -->
        <img src="https://:3000/canvas.png">
    </body>
    </html>`;

在隨機埠上啟動即時伺服器等服務被認為是良好的實踐。透過埠對映,webview 的 HTML 內容可以使用硬編碼埠,該埠對映到服務實際執行的動態開啟埠。

呼叫層次結構提供程式

有一個針對支援呼叫層次結構功能的 CallHierarchyItemProvider 的建議 API。請試用它,留下反饋,並幫助我們完善此 API。

工程

官方 Linux snap 包

我們現在完全支援將 Visual Studio Code 作為 snap 包分發。Snaps 適用於許多不同的 Linux 發行版,為更穩定的 VS Code 提供可靠的執行環境,並支援後臺更新。是的,沒錯,您現在可以像 Windows 和 macOS 使用者一樣在 Linux 上獲得產品內的自動更新。🎉

Snap store

安裝 snap 包就像這樣簡單

sudo snap install code --classic

您是內部人員嗎?快來跳轉到 Insiders snap 包,無需額外工作即可獲得每日更新

sudo snap install code-insiders --classic

快取 NPM 包

感謝 Microsoft DevLabs 的朋友們,我們能夠使用 Azure Pipelines 擴充套件加快我們的 OSS 構建,該擴充套件快取 NPM 包並加快整個 npm install 過程。如果您想了解更多資訊,可以閱讀 Ethan Dennis 的這篇部落格文章

VS Code 的嚴格空檢查

在此迭代中,我們做出了最後的巨大努力,為核心 VS Code 程式碼庫啟用了 TypeScript 的嚴格空檢查。嚴格空檢查有助於捕獲一些常見的程式設計錯誤,並使我們的程式碼庫更易於維護,以便我們能夠快速安全地前進。

為核心 VS Code 啟用嚴格空檢查是一項為期六個月的工作,涉及至少 40 位貢獻者,並觸及數萬行原始碼。您可以在問題 #60565 中瞭解我們如何逐步啟用嚴格空檢查。

對擴充套件的貢獻

GitHub 拉取請求

在此里程碑中,我們繼續致力於改進 GitHub Pull Requests 擴充套件。

以下是一些新功能

  • 新的 workbench.action.addCommentworkbench.action.submitComment 命令,用於自定義新增和提交評論的鍵盤快捷方式。
  • 完善了描述頁面中 GitHub 待辦事項列表的渲染。
  • 採用新的評論 API

Vetur

Vetur 擴充套件現在支援任何工作區版本的 TypeScript > 2.8,因此使用者在 *.vue*.js*.ts 檔案之間獲得更一致的語言支援。

除了提供新的 TypeScript 語言功能和錯誤修復外,Vetur 還改進了與 TypeScript 的整合,為 *.vue 檔案帶來了灰色未使用的變數、程式碼操作(自動修復)和自動匯入。

Vetur TypeScript features

Vetur 更新日誌中閱讀有關這些功能的更多資訊。

新文件

Node 遠端除錯

新的 Node.js 遠端除錯主題解釋瞭如何使用 Azure App Service 擴充套件將 VS Code 偵錯程式連線到在 Azure 上執行的 Node.js 應用程式。

Azure App Service extension

值得注意的修復

  • 27636:快速命令模糊搜尋不適用於括號中的文字
  • 66632:以 \t 開頭的行上的終端連結下劃線偏移
  • 70962:Console.WriteLine() 不再導致空行

感謝

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

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

vscode 的貢獻

vscode-css-languageservice 的貢獻

node-jsonc-parser 的貢獻

inno-updater 的貢獻

debug-adapter-protocol 的貢獻

localization 的貢獻

有超過 700 名雲 + AI 本地化社群成員使用 Microsoft 本地化社群平臺 (MLCP),其中約有 100 名活躍貢獻者參與 Visual Studio Code。

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

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

  • 波斯尼亞語: Ismar Bašanović。
  • 保加利亞語:Любомир Василев。
  • 捷克語:Jakub Stibůrek、David Jareš、Samuel Tulach、Jan Brudný。
  • 丹麥語:Lasse Stilvang、Alexander Matzen、Johan Fagerberg、Allan Kimmer Jensen。
  • 荷蘭語:Jos Verlinde、Hans Zoons、Eric Algera、Sujith Quintelier。
  • 英語(英國):YASHU MITTAL、Mohammad Idrees、Chris Dias。
  • 芬蘭語:Petri Niinimäki、Riku Riikonen、Valtteri Vatanen。
  • 法語:Corwin D'Ambre、Mohamed Sahbi、Antoine Griffard、Maxime Coquerel、Cédric M.、Steven Dugois、franto。
  • 德語:Frank Lindecke、Dejan Dinic、Jakob von der Haar、Mario Koschischek、Florian Berger、Hans Meiser、Carsten Kneip、Thorsten Hans、Sebastian Seidl。
  • 希臘語:Jim Spentzos、Stratos Kourtzanidis、John D、Δημήτρης Παπαϊωάννου。
  • 希伯來語:Shalom Craimer、Snir Broshi、Kyle Orin。
  • 印地語:Satish Yadav、Amit Gusain、Ashok Kumar Rathore、nirav adatiya、Rajeev Desai、shaswat rungta、Kumar Vaibhav、Jagjeet Singh、Pratishek PII、Chethana S、Dhanvi Kapila。
  • 簡體中文:丁婷怡、斌 項、feiyun0112 feiyun0112、劉瑞恆 劉瑞恆、建東 薛、YITING ZHU、Joel Yang、Junzhe Liu、Dave Young、昊宇 周、Tony Xia、Yu Zhang、XIANG ZUO、彥佐 劉、Edi Wang、少民 談、Zhiqiang Li、福永 葉、G.Y. Z、郝 虎、Pluwen、meng shao、Xiangrui Kong、Liam Kennedy、松陽 樊、Young Bige、Justin Liu、Jessica Zhang、Licheng Ren、馳 雷、sun qing、xiong Fu、Fan Su、Lynne Dong、吉姆 舒、zhao yu、遊 尤、劍秋 陶、Hanlin Yang、bh wu、Hanyu ZHANG、Y F、WangCG duoduobear、Jiang LI、越 鄭、ziqiang sun、正元 劉、peng wei、瑜 周、Simon Chan、仁松 陳、翼 張、Wang Weixuan、Ludi Fang、九鼎 譚。
  • 繁體中文:謝政廷、奕濬 潘、Winnie Lin、小克。
  • 匈牙利語:Péter Nagy、Levente Hallai Seiler、Richard Borcsik、Dániel Tar。
  • 印尼語:Laurensius Dede Suhardiman、Franky So、Rachmat Wahidi、Afnizar Nur Ghifari、Pradipta Hendri、Azhe Kun。
  • 義大利語:Alessandro Alpi、Bruni Luca、Andrea Dottor、Riccardo Cappello、Aldo Donetti、Michael Longo。
  • 日語:nh、EbXpJ6bp -、Hasefumi、Masakazu TENMYO、torisoup、Takayuki Fuwa、Yosuke Sano、Makoto Sakaguchi、裕子 知念、Rie Moriguchi、Koichi Makino、Fujio Kojima、Kazuya Ujihara、Yasuaki Matsuda。
  • 韓語:Jong Heun Shin、Kyunghee Ko、Jae Yong Kum、SeungJin Jeong。
  • 拉脫維亞語:kaspars bergs。
  • 挪威語:Andreas Rødland、Cookius Monsterius、Stephan Eriksen。
  • 波蘭語:Grzegorz Miros、Tomasz Świstak、Michal Szulc、Bartek PL、Szymon Seliga、Tomasz Chojnacki、Marcin Weksznejder、Piotr Grędowski、Artur Pelczar、Marcin Floryan、Jakub Jedryszek。
  • 葡萄牙語(巴西):Marcondes Alexandre、Albert Tanure、Marcelo Fernandes、Junior Galvão - MVP、Roberto Fonseca、Ray Carneiro、Renan Miguel、Lucas Miranda、Eduardo Moura、Bruno Talanski、Bruno Sonnino、Jucinei Pereira dos Santos、Emmanuel Gomes Brandão、Flávio Albuquerque Camilo、Pablo Garcia、José Rafael de Santana、Douglas Ivatiuk Martim、Giuliano Reginatto、Marcos Dias、Alan William、Lucas Nunes、Gabriel Schade、arthurdenner .、Mauricio Lima、Gabriel Barbosa、Victor Cavalcante、Letticia Nicoli、Fernando Val、Milton Camara、Felipe Scuissiatto、Alessandro Fragnani、Gustavo Bezerra、Cynthia Zanoni、Marcelo Guerra、Jhonathan Soares、Rafael Laranja、Swellington Soares。
  • 葡萄牙語(葡萄牙):Vitor Barbosa、João Carvalho。
  • 羅馬尼亞語:Mihai Marinescu。
  • 俄語:Andrey Veselov、michael v、Иван Лещенко。
  • 塞爾維亞語:Milos Zivkovic。
  • 西班牙語:Andy Gonzalez、Engel Aguilar、Alvaro Enrique Ruano、Carlos Mendible、José María Aguilar、julian3xl、Ing. Sergio Uziel Tovar Lemus、Mario Mendieta、Jorge Serrano Pérez。
  • 泰米爾語:Mani M、Krishna Pravin、Jeffin R P、Vetri ..
  • 土耳其語:Hüseyin Fahri Uzun、Okan Çetin、Muhammed Emin TİFTİKÇİ。
  • 烏克蘭語:Dmytro Kutianskyi、Did Kokos。
  • 越南語:Belikhun、Việt Anh Nguyễn。