VS Codeのエージェントモードを拡張するには、を試してください!

2020年1月 (バージョン 1.42)

バージョン 1.42.1 の更新内容: この更新プログラムでは、これらの問題に対処しています。

ダウンロード: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap


Visual Studio Code 2020年1月リリースへようこそ。このバージョンには、皆さんに気に入っていただけるようないくつかの更新が含まれており、主要なハイライトの一部には次のものがあります。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新 にアクセスしてください。

Insiders: 新しい機能をいち早く見たいですか? 毎晩の Insiders ビルドをダウンロードして、最新の更新プログラムが利用可能になったらすぐに試すことができます。 最新の Visual Studio Code のニュース、更新、コンテンツについては、Twitter @code をフォローしてください!

ワークベンチ

名前変更プレビュー

Visual Studio Code では、名前変更の変更をプレビューできるようになりました。 名前変更時に、⌘Enter (Windows、Linux Ctrl+Enter) で新しい名前を確定し、リファクタリングプレビューパネルを確認できます。 これにより、差分エディターで保留中の変更が表示され、個々の変更のチェック/チェック解除ができます。 名前変更が適用 (または中止) されると、差分エディターとプレビューパネルが閉じ、現在のエディターに戻ります。

Rename preview

テーマ: GitHub Sharp、フォント: FiraCode

開いているエディターの数を制限する

一度に開くエディターの最大数を制限するための新しい設定があります。

  • workbench.editor.limit.enabled: この機能を有効にします (既定ではオフ)。
  • workbench.editor.limit.perEditorGroup: 制限をエディターグループごとに適用するか、すべてのグループに適用するか。
  • workbench.editor.limit.value: 開くエディターの最大数 (既定では 10)。

有効にすると、新しいエディターを開くときに、VS Code は最後に使用されたエディターを閉じます。

以下に、制限が 3 に設定されている場合の動作を示します。

Open editor limit

テーマ: Nord

注: ダーティエディター (保存されていない変更のあるファイル) は自動的に閉じられることはありませんが、開いているエディターの総数には含まれます。

無題のエディターの改善

VS Code の無題のエディターは、まだディスクに保存されていないテキストバッファーです。好きなだけ開いたままにしておくことができ、すべてのテキストコンテンツは再起動後も保存され、復元されます。

無題のエディターのタイトル

これまで、無題のエディターには `Untitled-1` のように番号が振られた一般的な名前が付けられていました。このリリースでは、無題のエディターはドキュメントの最初の行の内容をエディターのタイトルとして使用し、一般的な名前を説明として含めます。

Untitled file title using first line of text

テーマ: Nord

注: 最初の行が空であるか、単語を含まない場合、タイトルは以前と同様に `Untitled-*` に戻ります。

既定の言語モード

既定では、無題のファイルには特定の言語モードが設定されていません。VS Code には、無題のファイルの既定の言語を設定するための設定 `files.defaultLanguage` があります。このリリースでは、この設定に新しい値 `{activeEditorLanguage}` を指定できるようになり、固定された既定値の代わりに、現在アクティブなエディターの言語モードを動的に使用します。

さらに、テキストを無題のエディターにコピーして貼り付けると、テキストが VS Code エディターからコピーされた場合、VS Code は無題のエディターの言語モードを自動的に変更するようになりました。

Untitled file language mode dynamically set

テーマ: One Dark Pro

注: 無題のエディターにすでに言語モードが指定されている場合、テキストを貼り付けても変更されません。

最近使用したエディターに移動する

このリリースでは、すべてのエディターグループにわたって、最近使用した (MRU) エディターのリストが用意されました。エディターは、アクティブなエディターとして開かれるか、すでに開かれている場合に新しいアクティブなエディターになると、最近使用されたと見なされます。エディターが閉じられると、このリストから削除されます。

このリストのアプリケーションの1つは、新しいビュー: 最近使用したすべてのエディターを表示 (`workbench.action.showAllEditorsByMostRecentlyUsed`) コマンドで開くことができる新しい `edt mru` ピッカーです。

MRU editor list

マウスを使わずにこのピッカー内で素早く移動するためのキーボードショートカットを追加できます。たとえば、以下は、Ctrl+TabCtrl+Shift+Tab がすべてのグループのエディター間を移動するようにするキーバインドです(既定のキーバインドのようにアクティブなグループ内のみではありません)。

[
  {
    "key": "ctrl+tab",
    "command": "workbench.action.quickOpenPreviousRecentlyUsedEditor",
    "when": "!inEditorsPicker"
  },
  {
    "key": "ctrl+shift+tab",
    "command": "workbench.action.quickOpenLeastRecentlyUsedEditor",
    "when": "!inEditorsPicker"
  }
]

ピッカーを使用せずにリストを移動したい場合は、新しいコマンドがあります。

  • ビュー: 次の最近使用したエディターを開く (`workbench.action.openNextRecentlyUsedEditor`)
  • ビュー: 前の最近使用したエディターを開く (`workbench.action.openPreviousRecentlyUsedEditor`)

どのエディターナビゲーションコマンドがピッカーで動作し、どれが動作しないかを区別するために、いくつかの既存のコマンドの動作が変更されました。具体的には、グループ内の最近使用したエディターコマンドはピッカーを使用しなくなりました。

  • ビュー: グループ内の次の最近使用したエディターを開く (`workbench.action.openNextRecentlyUsedEditorInGroup`)
  • ビュー: グループ内の前の最近使用したエディターを開く (`workbench.action.openPreviousRecentlyUsedEditorInGroup`)

ピッカーベースのナビゲーションには以下を使用します

  • ビュー: グループ内で直前に使用したエディターをクイックオープン (`workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup`)
  • ビュー: グループ内で最も使用頻度の低いエディターをクイックオープン (`workbench.action.quickOpenLeastRecentlyUsedEditorInGroup`)

パネルの移動

出力、デバッグコンソール、ターミナル、問題ペインを保持するパネルを、エディターの左側に移動できるようになりました。

コマンドビュー: パネル位置の切り替え (`workbench.action.togglePanelPosition`) は、以下の新しいコマンドに置き換えられました。

  • ビュー: パネルを左に移動 (`workbench.action.positionPanelLeft`)
  • ビュー: パネルを右に移動 (`workbench.action.positionPanelRight`)
  • ビュー: パネルを下部に移動 (`workbench.action.positionPanelBottom`)

再起動時にすべてのウィンドウを復元

VS Code の起動時のウィンドウ復元設定は、既定ですべてのウィンドウを復元するように変更されました。以前の動作に戻したい場合は、"window.restoreWindows": "one" を設定して、単一のウィンドウのみを開くようにします。

保存時の競合解決

VS Code には、VS Code の外部や他のプログラム (Git など) によって変更されたダーティファイルを保存しようとすると、通知を表示する組み込みメカニズムがあります。

Save conflict dialog with overwrite

これは、ファイルがダーティになった後もファイルが変更されたにもかかわらず、保存によってディスク上のコンテンツが上書きされることを通知するためです。比較ボタンを選択すると、自分の変更とディスク上のバージョンを確認し、ファイルを上書きするか元に戻すかを選択できます。

ディスク上の変更を上書きできると分かっている場合、通知に直接上書きボタンが表示されるようになりました。また、この動作を完全に無効にするには、files.saveConflictResolution をグローバル、ワークスペースごと、またはファイルタイプごとに設定できます。オプションは、askUser (既定) または overwriteFileOnDisk です。

遅い保存操作の処理

VS Code では、ファイルをディスクに保存する際に、拡張機能がファイルの内容を変更できます。保存時のフォーマット保存時の修正などの機能がその例です。ただし、保存は重要な操作であり、保存中に処理を行う拡張機能は、実際の保存操作が続行できるように迅速に完了する必要があります。「迅速に」はこれまで VS Code によって強制されており、VS Code はタイムアウト後に拡張機能の保存操作をキャンセルしていました。この強制により、迅速な保存が保証されましたが、予期された処理が行われない場合があるため、不満を感じることもありました。

このリリースでは、タイムアウトベースのアプローチを放棄し、代わりに保存に参加する拡張機能をキャンセルできる進行状況通知を表示するようにしました(「保存参加者」)。この通知は、保存操作が実行中であることを知らせ、保存参加者が完了するのを待つかどうかを決定できます。

Save Participant notification

テーマ: ライト+

ソース管理入力

ソース管理ビューの入力ボックスが、Monaco Editor を使用するようになりました。Monaco Editor は、複数のカーソルや行の移動/コピーコマンドなど、便利な機能をサポートしています。

マルチルートエクスプローラーでの2段階折りたたみ

マルチルートワークスペースを使用している場合、ファイルエクスプローラーのフォルダーの折りたたみボタンに2段階の動作が追加されました。1回クリックすると各トップレベル内のすべてのフォルダーが折りたたまれ、2回クリックするとトップレベルのフォルダーが折りたたまれます。検索ビューにはすでにこの動作があります。

Two-step File Explorer collapse button

テーマ: Monokai

OSカラースキームに基づくテーマの自動切り替え

Windows と macOS はライトおよびダークのカラースキームをサポートしています。新しい設定 `window.autoDetectColorScheme` が追加され、VS Code が OS のカラースキームの変更を監視し、それに応じて一致するテーマに切り替えるように指示します。

カラースキームが変更されたときに使用されるテーマをカスタマイズするには、以下の設定で好みのライトテーマとダークテーマを設定できます。

  • workbench.preferredLightColorTheme
  • workbench.preferredDarkColorTheme

エディター

ピークビューのフォーカス制御

ピークビューが最初にフォーカスをどこに置くかを制御する新しい設定とコマンドがあります。デフォルトでは、ピークは右側のツリーにフォーカスを合わせるため、参照にすばやく移動できます。ツリーへの初期フォーカスは、エディターで簡単なコード変更を行いたい人には最適ではありません。editor.peekWidgetDefaultFocus 設定で好みを定義できるようになり、editor または tree に設定できます。また、ピークエディターとツリーの間でフォーカスを移動できる新しいコマンド togglePeekWidgetFocus (⌘K F2 (Windows、Linux Ctrl+K F2)) もあります。

折りたたまれた領域のハイライト

折りたたまれたコード領域は、背景のハイライトが追加されたことで、より見つけやすくなりました。

Fold highlight color

テーマ: ダーク+

この機能は `editor.foldingHighlight` 設定によって制御され、色は `editor.foldBackground` 色でカスタマイズできます。

  "workbench.colorCustomizations": {
    "editor.foldBackground": "#355000"
  }

折りたたみ機能の改善

折りたたみインジケータを1回Shift + クリックすると、まず内部範囲が折りたたまれます。すでにすべての内部範囲が折りたたまれているときに、再度Shift + クリックすると、親が折りたたまれます。再度Shift + クリックすると、すべてが展開されます。

Folding with Shift + Click

既に折りたたまれた範囲で折りたたみコマンド (⌥⌘[ (Windows、Linux Ctrl+Shift+[)) を使用すると、次に展開されていない親範囲が折りたたまれます。

新しい折り返しオプション

デフォルトでは、エディターはすべての文字が同じ幅であると仮定して、単語の折り返し位置を計算します。この仮定により、デフォルトのアルゴリズムは高速になりますが、非モノスペースフォントを使用している場合や、文字の幅が異なるスクリプトでテキストを作成している場合には、その結果は不十分です。新しい設定 `editor.wrappingStrategy` が追加され、これを `advanced` に設定すると、エディターは単語の折り返し位置の計算をブラウザに委任します。

アクセシビリティ

サジェストウィジェットの改善

サジェストウィジェットがARIEアラートを使用しなくなり、スクリーンリーダーにフォーカスが当たっていることを適切に示せるようになりました。これにより、スクリーンリーダーが誤って邪魔になるのを防ぐことができます。

スクリーンリーダー検出時に editor.accessibilityPageSize を 160 に設定

editor.accessibilityPageSize 設定は、スクリーンリーダーが一度に読み上げることができるエディターの行数を制御します。ただし、大きな値を使用するとパフォーマンスに影響があります。スクリーンリーダーを検出した場合 (NVDA のバグにより、それ以上は設定しません) は、自動的に値を 160 行に設定することにしました。

Orca を使用した Linux アクセシビリティ

Orca スクリーンリーダーを使用して Linux で VS Code をアクセシブルにするための調査を開始しました。ただし、この作業には Electron 7 が必要であるため、次の安定版リリースでさらに進展すると予想されます。それまでの間、Linux アクセシビリティについては、Insiders バージョンを使用し、フィードバックを提供することができます。

統合ターミナル

スクロール感度

ターミナルのスクロール感度は、新しい設定を使用してエディターとは独立して設定できるようになりました。

  • terminal.integrated.mouseWheelScrollSensitivity - マウスホイールのスクロール乗数(デフォルトは 1)。
  • terminal.integrated.fastScrollSensitivity - Altキーを押したときの高速スクロール乗数(デフォルトは 5)。

デバッグ

簡素化された初期デバッグビュー

デバッグビューでの開始を簡素化するために、VS Code は「実行とデバッグ」ボタンを1つだけ表示するようになりました。「デバッグなしで実行」アクション (すべてのデバッガーでサポートされているわけではありません) は、デバッグメインメニューで引き続き利用できます。

ユーザーからのフィードバックに基づき、ブレークポイントが1つ以上設定されている場合、ブレークポイントペインが開始ビューに表示されます。

Simplified initial Debug view

デバッグコンソールの改善

デバッグコンソール入力

デバッグコンソール入力は、現在アクティブなエディターの言語モードを使用するようになりました。これにより、デバッグコンソール入力は、構文の色付け、インデント、引用符の自動閉じ、およびその他の言語機能をサポートします。

Debug Console input with syntax coloring

入力/出力の表示

デバッグコンソールでの入力と出力の表示を調整し、区別しやすくしました。VS Code は、入力式にのみ矢印を表示します。

Debug Console input with arrow display

デバッグコンソールの入力履歴の候補

デバッグコンソールの入力ボックスが、以前に入力したエントリを自動的に提案するようになりました。テキストアイコンは、履歴の候補を他の IntelliSense エントリと区別するために使用されます。

Debug console history

デバッグ後にデバッグコンソールを非表示にする

デバッグが停止した後にデバッグコンソールを自動的に閉じるかどうかを制御する新しい設定 `debug.console.closeOnEnd` が追加されました。

console.table(...) のサポート

デバッグコンソールで Node.js の console.table(...) API からの出力を表示できるようになりました。

Debug Console table output

読み込み済みスクリプトビューの改善

読み込まれたスクリプトビューがVS Codeの新しいツリービューを使用するように更新されました。これで、VS Codeのファイルエクスプローラーと同じコンパクトな形式で単一の子フォルダーがレンダリングされます。さらに、入力中にツリーを検索して展開できるようになりました。

Expand as you type in Loaded Scripts view

次のリリースでは、デバッグ: 読み込まれたスクリプトを開くコマンドを削除する予定です。これは、ツリーの「入力中に検索して展開する」機能と重複するためです。

起動構成の並べ替えとグループ化

起動構成と複合構成が、新しい構造化属性 presentation をサポートするようになりました。ordergrouphidden 属性を使用すると、デバッグ構成ドロップダウンとデバッグクイックピックで構成と複合構成を並べ替え、グループ化、非表示にできます。

たとえば、launch.json の起動構成には、次の presentation フィールドを含めることができます。

"presentation": {
    "group": "5_tests",
    "order": 10,
    "hidden": false
}

例として、VS Code 自身の起動構成の一部にプレゼンテーションを追加し、より意味のある方法でグループ化したり、複合起動構成の一部に過ぎない構成を非表示にしたりしました。

Debug view context menu

デバッグアクティビティバーアイコンと装飾

ユーザーからのフィードバックに基づき、アクティビティバーのデバッグアイコンを更新し、「実行とデバッグ」をより適切に表現するようにしました。また、デバッグ中は、デバッグアイコンに数値の装飾が表示され、アクティブなデバッグセッションの数を示します。

Debug Activity Bar icon showing two debug sessions

タスク

ユーザーレベルのタスク

tasks.json で宣言されたタスクが、ユーザー設定レベルでサポートされるようになりました。多くのプロジェクトで共通して使用するビルドスクリプトがある場合や、プロジェクトフォルダーにタスクを置きたくない場合は、ユーザーの tasks.json ファイルにタスクを追加できます。タスク: ユーザーのタスクを開くコマンドを実行してユーザーレベルのタスクを作成すると、これらのタスクはすべてのフォルダーとワークスペースで使用できるようになります。ここでは、shell および process タスクタイプのみがサポートされています。

入力 pickString ラベル

タスクの `inputs` を使用する場合、`pickString` 入力の `options` に分かりやすいラベルを追加できます。

"inputs": [
  {
      "id": "pickAnInputValue",
      "description": "Pick a Value",
      "type": "pickString",
      "options": [
          "first-value",
          {
              "label": "Second Value",
              "value": "second-long-value-that-can-be-simplified-for-display"
          }
      ],
      "default": "first-value"
  }
]

ラベルは次のように表示されます

Task pickString input with label

言語

TypeScript 3.7.5

バンドルされている TypeScript のバージョンを 3.7.5 に更新しました。このマイナーアップデートには、Windows の C: ドライブに保存されていないプロジェクトの IntelliSense の修正など、いくつかの重要なバグ修正が含まれています。

HTML ミラーカーソルがデフォルトでオフに

HTML のミラーカーソルは、オプトイン機能になりました。次期イテレーションでは、この機能がより理解しやすく、より多くの言語で利用できるように、その実装の改善を続けます。html.mirrorCursorOnMatchingTag をオンにすることで、この機能を引き続き使用できます。

プレビュー機能

プレビュー機能はリリース準備ができていませんが、使用できる程度には機能しています。開発段階での皆様の早期フィードバックをお待ちしております。

タイムラインビュー

このマイルストーンでは、新しいタイムラインビューの作業を進め、早期プレビューを共有しています。これは、リソース (ファイル、フォルダー) の時系列イベント (Git コミット、ファイルの保存、テストの実行など) を視覚化するための統合ビューです。タイムラインビューを有効にするには、Insiders エディションを使用し、次の設定を追加する必要があります。

"timeline.showView": true

以下は、ファイルの Git コミット履歴を表示するタイムラインビューです。

Timeline view

テーマ: Dark Amethyst

この早期プレビューでは、タイムラインビューはアクティブなドキュメントの Git コミット履歴を表示し、現在32項目に制限されています。これらのコミットのいずれかを選択すると、そのコミットによって導入された変更の差分ビューが開きます。拡張機能も独自のタイムラインソースを寄稿できるようになり、これらはこの統合されたタイムラインビューに表示されます。最終的には、ビューに表示するソースを選択(フィルタリング)できるようにもなります。

この新機能については、さらに多くの情報を用意していますので、ご期待ください。issue #84297を購読し、'timeline'ラベルが付けられたissueを監視することで、進捗状況を追跡できます。このビューで他にどのような種類の情報を見たいかアイデアがあれば、ぜひお知らせください!

検索エディター

新しい検索エディターの作業を継続し、今回のイテレーションでは検索エディターが主要な検索エクスペリエンスとなることを目指しています。そのため、検索エディターのクエリを設定するためのUIを実装しました。

Search Editor UI

テーマ: Noctis Lilac、フォント: Hasklig

検索エディターにはいくつかのコマンドがあり、お好みのキーボードショートカットにバインドできます。

  • search.action.openNewEditor: アクティブなエディターグループで新しい検索エディターを開く。
  • search.action.openInEditor: 現在の検索結果を新しい検索エディターにコピーする。

検索エディターの詳細と今後の更新については、issue #23931 を参照してください。

注: 検索エディターは Insiders ではデフォルトで有効になっており、Stable では search.enableSearchEditorPreviewtrue に設定することで有効にできます。

TypeScript & JavaScript のセマンティックハイライト

TypeScript と JavaScript のセマンティックハイライトのサポートは開発中であり、デフォルトではまだ有効になっていません。以下の設定を追加することで試すことができます。

"editor.semanticHighlighting.enabled": true

有効にすると、一部の識別子が新しい色とスタイルを持ち、解決された型に従って強調表示されるようになります。デフォルトの構文 (TextMate) ハイライターは多くのトークンを `variables` として分類しますが、これらは現在、名前空間、クラス、パラメーターなどに解決されます。

これはインポートセクションで最もよく確認できます。各インポートされたシンボルがシンボルの型で色付けされるようになりました。

TypeScript semantic highlighting

各場所で計算される意味論的トークンと構文トークンを検査するには、開発者: エディターのトークンとスコープを検査コマンドを使用できます。

新しいJavaScriptデバッガー

Node.js と Chrome 用の新しいデバッガーを開発中です。これは Insiders にはデフォルトでインストールされており、VS Code Stable ではMarketplace からインストールできます。既存の起動構成で debug.javascript.usePreview 設定を有効にすることで、すぐに使用を開始できます。今月追加した新機能の一部を以下に示します。

新しいJSデバッガーは、新しいJavaScriptデバッグターミナルで実行するコマンドを自動的にデバッグします。このターミナルは、デバッグ: JavaScriptデバッグターミナルを作成コマンドで開くことができます。

JavaScript debug terminal

テーマ: Earthsong、フォント: Fira Code

新しいデバッガーは、package.json の `scripts` セクションにデバッグ CodeLens も提供し、追加の構成なしでスクリプトを実行およびデバッグできます。

JavaScript debug CodeLens

debug.javascript.codelens.npmScripts 設定を使用して、CodeLens の表示と位置 (上部またはインライン) を構成できます。

ぜひお試しください!新しいデバッガーで問題が発生した場合は、vscode-js-debug リポジトリに問題を報告できます。

サイドバーからパネルへのビューの移動

VS Code のレイアウトをカスタマイズしやすくするための作業が積極的に行われています。設定で進行状況をテストできます。

"workbench.view.experimental.allowMovingToNewContainer": true

設定を有効にすると、一部のビューにサイドバーとパネルの間でビューを移動するための新しいコンテキストメニューエントリが表示されます。現在、この設定はエクスプローラーのアウトラインビューと拡張機能によって提供されるビューにのみ影響します。また、サイドバーのようにこれらのビューをパネルで組み合わせることはできません。

Outline view moving to panel and back

テーマ: LaserWave、フォント: Cascadia Code

これは機能のプレビューにすぎず、上記の制限を含む多くの側面が変更される可能性があります。ぜひInsidersバージョンで今後の進捗状況をご確認ください。

検索に関する注記: ビューを移動する新しい汎用的な方法により、古い検索ビュー設定 search.location とコマンド 検索: 検索ビューの位置を切り替える (search.action.toggleSearchViewPosition) は非推奨になります。設定は自動的に移行されるはずですが、今後検索ビューを移動するには、新しい汎用的な方法を使用する必要があります。新しいコンテキストメニューエントリで検索ビューを移動するために、上記の実験的なプレビュー設定を有効にする必要はありません。

TypeScript 3.8 ベータ版のサポート

VS Code は来月の正式リリースまで TypeScript 3.8 をバンドルしませんが、今回のイテレーションでは、エキサイティングな新しい TypeScript 3.8 ベータ版の全機能のサポートを追加しました。

これらには以下が含まれます。

  • JavaScript および TypeScript ファイルにおけるプライベートフィールドの IntelliSense と構文ハイライト。
  • JavaScript と TypeScript の呼び出し階層サポート。
  • テンプレート文字列への変換のリファクタリング!

TypeScript Nightly 拡張機能をインストールすることで、これらすべての新しい TypeScript 3.8 機能を今すぐ簡単に試すことができます。TypeScript 3.8 ベータ版でバグに遭遇した場合は、フィードバックを共有してお知らせください!

拡張機能への貢献

Java デバッガーがデータブレークポイントをサポート

Debugger for Java 拡張機能は、VS Code 1.38 で導入されたデータブレークポイントをサポートするようになりました。この機能により、変数の値が変更されたときにヒットするブレークポイントを作成できます。

以下に、Owner.telephone 文字列が変更されたときにデバッガーが中断する様子を示します。

Java Data Breakpoints

Java 呼び出し階層ビュー

Language Support for Java 拡張機能が呼び出し階層ビューをサポートするようになりました。これは、関数からのすべての呼び出し、または関数へのすべての呼び出しを表示し、呼び出し元の呼び出し元や呼び出しの呼び出しにドリルダウンできます。

シンボルを右クリックし、ピーク > 呼び出し階層のピークを選択して、呼び出し階層を表示します。

Java Call Hierarchy view

リモート開発

引き続きリモート開発拡張機能の作業が進められています。これにより、コンテナ、リモートマシン、またはLinux 用 Windows サブシステム (WSL) をフル機能の開発環境として使用できます。

1.42 の機能ハイライトは以下の通りです。

  • リモート - SSH: 自動OS検出を含むWindowsサーバーのサポートが改善されました。
  • WSL: WSL リソースの Windows エクスプローラーを開くエクスプローラーで表示のサポート。
  • 開発コンテナ: Git や zsh などの依存関係を含む、事前に構築されたコンテナイメージ。
  • 転送ポートビュー: SSH およびコンテナポートのマッピング、表示、再利用。

新しい拡張機能の機能とバグ修正については、リモート開発リリースノートで確認できます。

拡張機能作成

再利用可能なCodicons

ほとんどのVS Codeアイコンには、codiconアイコンフォントが使用されています。拡張機能は、これらのアイコンをシンプルで宣言的な方法で再利用できるようになりました。

  • vscode.ThemeIcon 型は、codicon の名前でインスタンス化できるようになりました。たとえば、new vscode.ThemeIcon("zap")
  • vscode.MarkdownString 型は、$(<name>) インライン構文をサポートするようになりました。たとえば、myMdString.appendMarkdown('Hello $(globe)');MarkdownString 内で codicon を使用するには、supportThemeIcons コンストラクター引数を有効にする必要があることに注意してください。
  • 拡張機能のpackage.jsonファイルで定義されたcommandsは、アイコンにcodiconを使用できるようになりました。例えば"icon": "$(zap)"のように、インライン構文を使用します。

All available codicons displayed in a hover

テーマ: ライト+

上記のホバーの例は、利用可能なすべてのcodiconをレンダリングしています。このホバーは以下のスニペットで作成されましたが、読みやすさのために、ほとんどのcodicon名はall定数から削除されています。

vscode.languages.registerHoverProvider(
  '*',
  new (class implements vscode.HoverProvider {
    provideHover(doc: vscode.TextDocument, pos: vscode.Position) {
      const all = `$(activate-breakpoints)$(add)...$(zoom-out)`;
      const md = new vscode.MarkdownString(all, true);
      return new vscode.Hover(md, doc.getWordRangeAtPosition(pos));
    }
  })()
);

完了項目に対する挿入と置換

単語の末尾でトリガーされる補完は、通常その単語を置き換えます。しかし、単語の途中で補完がトリガーされる場合、単語の末尾を置き換えるべきかどうかが不明確です。拡張機能の作成者の好みに応じて、ユーザーは一方または他方の動作を得ます。これは理想的ではないため、補完項目の挿入範囲と置換範囲を表現するAPIが追加されました。

そのため、CompletionItem#range に新しい OR 型を追加しました。

export class CompletionItem {
  range?: Range | { inserting: Range; replacing: Range };

  //...
}
  1. 範囲が undefined の場合、VS Code は現在の単語範囲を置換に使用し、カーソル位置で切り取られた同じ範囲を挿入に使用します。
  2. 範囲が単純な vscode.Range の場合、VS Code は挿入または置換の場所が1つだけであることを認識します。
  3. 範囲が insertingreplacing 範囲を持つオブジェクトの場合、VS Code はそれらを直接使用します。

この情報は、ユーザーが好みを定義できる editor.suggest.insertMode 設定と組み合わせて使用されます。次のリリースで挿入と置換の動作をより視覚的にするように計画しているため、拡張機能の作成者にはこの API を迅速に採用するようお願いしています。

CallHierarchyProvider の洗練

CallHierarchyProvider#prepareCallHierarchy に小さな変更を加え、1つまたは複数の CallHierarchyItem 要素を返すことができるようになりました。many オプションは、複数のオーバーロードを持つ要素の呼び出し階層を要求する場合に便利です。

ターミナルで作成オプションを公開

Terminal オブジェクトに新しい creationOptions プロパティが追加され、拡張機能がターミナルの作成方法を識別できるようになりました。

言語固有の設定

拡張機能が、新しい構成スコープ language-overridable を使用して、言語オーバーライド可能な設定を寄与できるようになりました。

"contributes": {
    "configuration": {
        "title": "sample",
        "properties": {
            "sample.languageSetting": {
                "type": "boolean",
                "scope": "language-overridable"
            }
        }
    }
}

Configuration API はこれらの設定をサポートするように拡張されています。必要な languageId を渡すことで、API を使用してこれらの設定を読み取り、更新できます。

/**
 * Read language configuration.
 */
const textDocumentConfiguration = vscode.workspace.getConfiguration('sample', {resource, languageId});
textDocumentConfiguration.get('languageSetting');

/**
 * Override configuration under language
 */
textDocumentConfiguration.update('languageSetting', false, ConfigurationTarget.Global, true);

/**
 * Listen language configuration changes
 */
workspace.onDidChangeConfiguration(e => {
    if(e.affectsConfiguration('sample.languageSetting',  {resource, languageId}) {
    }
});

詳細については、Configuration APIを参照してください。

拡張機能ビューのコンテキストメニュー

新しいメニューロケーション extension/context を使用して、拡張機能ビューで拡張機能のコンテキストメニューにコマンドを寄与できるようになりました。

"contributes": {
    "commands": [
        {
            "command": "extension.helloWorld",
            "title": "Hello World"
        }
    ],
    "menus": {
        "extension/context": [
            {
                "command": "extension.helloWorld",
                "group": "2_configure",
                "when": "extensionStatus==installed",
            }
        ]
    }
}

Extensions view context menu

コマンドの実行時に、拡張機能の ID が引数として渡されます。

vscode.commands.registerCommand('extension.helloWorld', extensionId => {
  vscode.window.showInformationMessage(extensionId);
});

以下の事前定義されたコンテキストがサポートされており、コマンドの when 条件で使用できます。

  • extensionStatus==installed
  • isBuiltinExtension

置換変数にアクセスするための DebugConfigurationProvider フック

デバッグ用の拡張機能APIは、DebugConfigurationProvider上にresolveDebugConfigurationというフックを提供しており、これはデバッグアダプターに渡される前にデバッグ構成を検証するために使用できます。このフックは変数が置換される前に呼び出されるため、検証コードはデバッグ構成にさらに変数を簡単に追加し、それらを時間内に置換させることができます。

このアプローチでは、resolveDebugConfiguration フックで解決された変数値を使用するのが困難になる場合があります。たとえば、拡張機能にのみ存在する機能(置換された値が利用可能なデバッグアダプターでは存在しない機能)を検証または実装する場合などです。issue #85206に例があります。一部の拡張機能は、独自に変数を置換し始めていますが(すべてのケースをカバーしていないため、多くの場合不完全です)。

ユーザーの視点からすると、これは混乱を招きます。デバッグ構成では、一部の属性変数を使用できます(置換後にデバッグアダプターで処理されるため)が、一部の属性変数は使用できません(置換がまだ行われていない拡張機能で処理されるため)。問題 #87450 は後者の問題の好例です。

このマイルストーンでは、DebugConfigurationProvider に2番目のフック resolveDebugConfigurationWithSubstitutedVariables を追加することでこの問題に対処しました。このフックは、すべての変数が置換されたデバッグ構成を受け取ります。

この新しい API の利用が可能になったことを受け、すべてのデバッグ拡張機能作成者に対し、DebugConfigurationProvider.resolveDebugConfiguration の現在の実装を注意深く見直し、新しい変数を導入しないが、置換された変数で実行されるとメリットがあるすべてのコードを新しいメソッド resolveDebugConfigurationWithSubstitutedVariables に移動するようお願いしています。

拡張機能内にデバッグアダプターを実装する

既存のデバッグ拡張機能APIは、いくつかの方法でデバッグアダプターを実行するためのDebugAdapterDescriptorFactoryの登録をサポートしています。

外部プロセスとして

vscode.debug.registerDebugAdapterDescriptorFactory('mock', {
  createDebugAdapterDescriptor: _session => {
    return new vscode.DebugAdapterExecutable('mockDebug.exe');
  }
});

ネットワークセッションとして

vscode.debug.registerDebugAdapterDescriptorFactory('mock', {
  createDebugAdapterDescriptor: _session => {
    return new vscode.DebugAdapterServer(12345, 'localhost');
  }
});

このマイルストーンでは、デバッグアダプターの「インライン」実装を提供できる3番目のバリアントを追加しました。

vscode.debug.registerDebugAdapterDescriptorFactory('mock', {
  createDebugAdapterDescriptor: _session => {
    return new vscode.DebugAdapterInlineImplementation(new InlineDebugAdapter());
  }
});

これにより、ストリームベースのメカニズムを介したアダプターとの通信の必要がなくなり、アダプターが拡張機能内で実行され、VS Codeの拡張機能デバッグの一部として簡単にデバッグできるため、開発が簡素化されます。

インライン実装(例えば、上記のInlineDebugAdapter)は、デバッグアダプタープロトコルを実装する必要があります。VS Codeの拡張機能APIに完全なデバッグアダプタープロトコルを含めることは望ましくないため、そのプロトコルの最小限のサブセットを導入しました。vscode.DebugAdapterインターフェースには、アダプターにDAPメッセージを渡すメソッド(handleMessage)と、アダプターから受信したDAPメッセージをリッスンするメソッド(onDidSendMessage)の2つのメソッドしかありません。

このインターフェースに基づいて、デバッグアダプターの実装は、このソースコードから開始されます。

class InlineDebugAdapter implements vscode.DebugAdapter {
  private sendMessage = new vscode.EventEmitter<DebugProtocol.ProtocolMessage>();
  private sequence: 1;

  readonly onDidSendMessage: vscode.Event<DebugProtocol.ProtocolMessage> = this.sendMessage
    .event;

  handleMessage(message: DebugProtocol.ProtocolMessage): void {
    switch (message.type) {
      case 'request':
        const request = <DebugProtocol.Request>message;
        switch (request.command) {
          case 'initialize':
            const response: DebugProtocol.Response = {
              type: 'response',
              seq: this.sequence++,
              success: true,
              request_seq: request.seq,
              command: request.command
            };
            this.sendMessage.fire(response);
            break;
          // many more requests needs to be handled here...
          default:
            break;
        }
        break;
      case 'response':
        break;
      case 'event':
        break;
    }
  }

  dispose() {
    // clean up resources
  }
}

デバッグアダプタープロトコル(nodeモジュールvscode-debugprotocolとして利用可能)はvscode.DebugAdapterインターフェースの互換性のあるスーパーセットであるため、完全なプロトコルが必要で、自分でデバッグアダプターを実装したい場合は、モジュールをインポートできます。

もっと簡単な代替手段は、ノードモジュールvscode-debugadapterとして利用可能な、我々のデフォルトのデバッグアダプター実装を(引き続き)使用することです。バージョン1.38.0-pre.4以降、このモジュールで導入されたDebugSession(またはLoggingDebugSession)は、拡張機能APIで定義されているインターフェースvscode.DebugAdapterと互換性があります。

このAPIを使用すると、既存のデバッグアダプター実装を次のように簡単に使用できます。

vscode.debug.registerDebugAdapterDescriptorFactory('mock', {
  createDebugAdapterDescriptor: _session => {
    return new vscode.DebugAdapterInlineImplementation(new MockDebugSession());
  }
});

詳細については、Mock debugの例を参照してください。

注意: このリリースでは、デバッグアダプターを作成するための拡張機能APIを完了しました。そのため、3月のリリースでdebuggers貢献ポイントの2つの非推奨属性のサポートを削除することを発表します。

  • adapterExecutableCommand - 代わりに拡張機能API vscode.DebugAdapterDescriptorFactoryvscode.DebugAdapterExecutable を使用してください。Mock debug の例は、API の使用方法を示しています。
  • enableBreakpointsFor - 代わりに breakpoints 貢献ポイントを使用してください。変換は package.json で行う必要があります。

現在の(非推奨の)JSONがこのようになっている場合

"contributes": {
  "debuggers": [{
    "type": "csharp",
    // ...
    "enableBreakpointsFor": [ "csharp", "razor" ]
    // ...
  }]

変換は次のようになります。

"contributes": {
  "breakpoints": [
    { "language": "csharp" },
    { "language": "razor" }
  ],
  "debuggers": [{
    "type": "csharp",
    // ...
  }]

影響を受ける拡張機能は、2月中に新しいAPIに実装を適応させることを推奨します。これにより、3月までに問題を修正する十分な時間が確保されます。

提案された拡張API

すべてのマイルストーンには新しい提案APIが付属しており、拡張機能の作成者はそれらを試すことができます。いつものように、皆様からのフィードバックをお待ちしております。提案APIを試すには、次の手順を実行する必要があります。

  • 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
  • 拡張機能のpackage.jsonファイルに次の行が必要です: "enableProposedApi": true
  • 最新バージョンのvscode.proposed.d.tsファイルをプロジェクトのソース場所にコピーします。

提案APIを使用する拡張機能は公開できないことに注意してください。次のリリースで破壊的変更がある可能性があり、既存の拡張機能を壊したくありません。

ワークスペース編集メタデータの追加

VS Code に搭載されたリファクタリングプレビューサポートには、新しいオプションの API 提案が付属しています。これにより、ワークスペース編集の変更を分類できます。たとえば、変更にユーザーの確認が必要かどうかを定義したり、「文字列とコメントの名前変更」などの説明を追加したりできます。この提案はissue #77728で追跡されており、現在の設計はWorkspaceEditMetadataインターフェースを中心に展開されています。

セマンティックハイライト

言語にセマンティックハイライトを追加することに興味がある場合は、Semantic Highlighting Overviewに概念と新しいAPIの概要がまとめられています。

認証プロバイダー

一部の拡張機能は、他のサービスへの認証を必要とします。issue #88309の提案により、拡張機能が認証プロバイダーを登録し、他の拡張機能からアクセスできるようにすることで、認証を実行するための共通のメカニズムが提供されるようになります。

タイムラインプロバイダー

拡張機能はまもなく、新しいタイムラインビューに独自のソースを寄与できるようになります。独自のタイムラインソースの追加に興味がありますか?issue #84297でこの初期提案をチェックし、フィードバックを提供してください。

Documentation.Refactoring 寄稿ポイント

提案されている `documentation.refactoring` 貢献ポイントにより、拡張機能はリファクタリングのドキュメントを提供できます。ユーザーはリファクタリングを要求する際に、このドキュメントを閲覧することを選択できます。

Refactoring documentation

提案されている貢献ポイントは、コマンドを使用してドキュメントの表示方法を拡張機能に制御させます。

"contributes": {
  "documentation": {
    "refactoring": [
      {
        "title": "Learn more about JS/TS refactorings",
        "when": "typescript.isManagedFile",
        "command": "_typescript.learnMoreAboutRefactorings"
      }
    ]
  }
}
  • title — ユーザーに表示されるドキュメントアクションのラベル。
  • when — ドキュメントを表示する時期のWhen句
  • command — ドキュメントを表示するコマンド。たとえば、このコマンドはウェブページを開いたり、VS Code内で直接ドキュメントを表示したりできます。

問題 #86788 は提案の状況を追跡しています。

カスタムエディターのバックアップとホット終了フック

今回のイテレーションでも、提案されているカスタムエディターAPIの改善を続けました。今月の主な調査は、カスタムエディターでホット終了を有効にする方法でした。問題 #88719では、ホット終了をサポートするために直面した課題と検討したいくつかのアプローチについて説明しています。

この調査の結果、WebviewCustomEditorEditingDelegate インターフェースに新しいオプションの backup メソッドが追加されました。このメソッドは、リソースが変更されてから約1秒後に VS Code によって呼び出されます。backup メソッド内では、拡張機能は現在の状態のリソースを永続化する必要があります。多くの場合、これはリソースをワークスペースストレージフォルダーに書き込むことを意味します。その後、エディターが再ロードされると、ワークスペース自体からリソースをロードする前に、永続化されたバックアップが存在するかどうかを確認する必要があります。

次回のイテレーションでも、カスタムエディターAPIの改良を続けます。

複雑な補完ラベル

CompletionItem API は、修飾名、インポートパス、戻り値の型、その他の情報を提供する必要がある複雑な補完項目に対応するために進化しています。この情報は事前に提供され、後で解決されることはありません。提供された情報は、提案ウィジェットにインラインで表示されます。次回のイテレーションでは、現在の提案を反復処理します。一方、UI と発見性の課題の一部を解決するために、提案ウィジェットにステータスバーを追加することを検討しています。API に関するフィードバックをお待ちしております。

Complex completion label

テーマ: Nord、フォント: Input Mono

診断エラーにエラーコードに関連付けられたリンクを設定できるようになりました。リンクが提供されている場合、問題パネル、インラインエラービュー、診断エラーホバーに表示されます。次期イテレーションでこの機能の作業を継続するにあたり、issue #11847でフィードバックを提供できます。

Diagnostic with link

言語サーバープロトコル

言語サーバープロトコルのバージョン3.15が利用可能になりました。VS Code LSPクライアントおよびNode.jsで書かれたLSPサーバーに対応するnpmモジュールもリリースしました。最新バージョンのライブラリには、セマンティックトークンの提案仕様と実装が含まれています。

LSP の Web サイトでは、Language Server Index Format 仕様の暫定版と、対応するLSIF 概要が公開されています。

ブラウザーのサポート

ファイルをエディターにドラッグアンドドロップ

ブラウザで VS Code を使用している場合、ローカルファイルをエディターエリアにドラッグアンドドロップして、ファイルの内容を含むダーティ(未保存)ファイルとして開くことができるようになりました。

In-browser support for drag and drop

新コマンド

キー コマンド コマンドID
パネルを左に移動 workbench.action.positionPanelLeft
パネルを右に移動 workbench.action.positionPanelRight
パネルを下に移動 workbench.action.positionPanelBottom
次の最近使用したエディターを開く workbench.action.openNextRecentlyUsedEditor
以前使用したエディターを開く workbench.action.openPreviousRecentlyUsedEditor
グループ内の次に最近使用したエディターを開く workbench.action.openNextRecentlyUsedEditorInGroup
グループ内の以前使用したエディターを開く workbench.action.openPreviousRecentlyUsedEditorInGroup
最近使用したエディターのピッカーを開く workbench.action.showAllEditorsByMostRecentlyUsed
ピッカー経由で以前使用したエディターを開く workbench.action.quickOpenPreviousRecentlyUsedEditor
⌃Tab (Windows, Linux Ctrl+Tab) ピッカー経由でグループ内の以前使用したエディターを開く workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup
ピッカー経由で最も使用頻度の低いエディターを開く workbench.action.quickOpenLeastRecentlyUsedEditor
⌃⇧Tab (Windows, Linux Ctrl+Shift+Tab) ピッカー経由でグループ内の最も使用頻度の低いエディターを開く workbench.action.quickOpenLeastRecentlyUsedEditorInGroup
開発者: 拡張ホストを再起動 workbench.action.restartExtensionHost

エンジニアリング

TSLint から ESLint への移行

VS Code は主に TypeScript で書かれています。コンパイラに加えて、特定のスタイルとエンジニアリングルールを強制するためにリンティングを使用しています。以前は TSLint を使用していましたが、約1年前に TSLint のメンテナーは ESLint を支持してその非推奨化を発表しました

このマイルストーンでは、ESLint に移行しました。これには、私たちのlint 構成と、私たちのカスタムルールが含まれます。最後に、新しい TypeScript 拡張機能も ESLint でチェックされるように、yo code 拡張機能ジェネレーターも更新しました。

ご自身のプロジェクトで TSLint を使用している場合は、ESLint に切り替えるのに役立つTSLint から ESLint への移行ガイドを作成しました。

TypeScript 3.8 ベータ版による VS Code のビルド

VS Code は、TypeScript 3.8 ベータ版リリースを使用してビルドされるようになりました。

Shadow DOM 内での Monaco Editor ホスティングのサポート

マウスの処理と動的 CSS に関する様々な問題を修正し、Monaco Editor がShadow DOM API のシャドウルート内にホストできるようになりました。

新しいドキュメント

コンテナ

Microsoft Docker 拡張機能によるコンテナーの作成に関する新しい記事が公開されました。Node.js および ASP.NET Core アプリケーションのコンテナー化、コンテナーレジストリへのプッシュ、およびクラウドへのコンテナーのデプロイに関するチュートリアルがあります。

Docker extension

注目すべき修正点

  • 12058: シャットダウン時の損失を防ぐため、UI 状態を定期的に保存する
  • 79205: 大文字小文字を区別しないプラットフォーム上で大文字小文字を区別するファイルシステムに接続されている場合、エクスプローラーツリーが正しいコンテンツを表示しない
  • 83543: デバッグプログラムの場所がアクティブセッションのみに表示される
  • 85057: カスタムダイアログのダイアログ詳細を説明行に移動する
  • 86445: ホットキーで複数のウォッチデバッグ変数を同時に削除できない
  • 88240: 多くのウォッチドロップダウン式を作成するのが遅い
  • 89057: 読み取り専用エディターに問題を表示させる
  • 89405: テキストファイル: 読み取り専用モデルのダーティを報告しない

ありがとうございます

最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!

問題追跡への貢献者

vscodeへの貢献者

vscode-eslintへの貢献者

language-server-protocolへの貢献者

vscode-languageserver-nodeへの貢献者

debug-adapter-protocolへの貢献者

vscode-vsceへのコントリビューション

vscode-js-debugへの貢献者

vscode-generator-codeへの貢献者

vscode-azurecli への貢献

vscode-emmet-helperへの貢献

localizationへの貢献

Microsoft Localization Community Platform (MLCP) を使用している Cloud + AI Localization コミュニティメンバーは800人以上おり、そのうち約170人が Visual Studio Code のアクティブなコントリビューターです。新しい翻訳の提供、翻訳への投票、プロセス改善の提案など、皆様の貢献に感謝いたします。

コントリビューターの概要はこちらです。コントリビューター名リストを含むプロジェクトの詳細については、プロジェクトサイト https://aka.ms/vscodeloc をご覧ください。

  • ボスニア語 (ラテン、ボスニア・ヘルツェゴビナ): Sead Mulahasanović, Adnan Rizvan, Ismar Bašanović.
  • ブルガリア語: Andreyka Lechev.
  • チェコ語: Michal Černík.
  • デンマーク語: Lasse Stilvang.
  • オランダ語: Philip Denys, Lemuel Gomez, Dennis Hummel, Gideon van de Laar.
  • 英語 (イギリス): Martin Littlecott, Alexander Ogilvie, Krishna Regar, Alonso Calderon, Daniel Imms, Kamalsinh Solanki.
  • フィンランド語: Tuula P.
  • フランス語: Antoine Griffard, Thierry DEMAN-BARCELÒ, Edouard Choinière, Joel Monniot, Rodolphe NOEL, Lucas A., Alain, BUFERNE, Xavier Laffargue, Mohamed Sahbi, DJ Dakta.
  • ドイツ語: Pascal Wiesendanger, Marvin Heilemann, jan-nitsche, Jakob von der Haar, Michael Richter.
  • ギリシャ語: Valantis Kamayiannis, Θοδωρής Τσιρπάνης.
  • ヘブライ語: Ariel Bachar.
  • ヒンディー語: Kiren Paul, Niraj Kumar, Preeti Madhwal, Jaadu Jinn, Mahtab Alam.
  • ハンガリー語: József Cserkó, Kiss Attila Csaba, Krisztián Papp.
  • 中国語 (簡体字): Yizhi Gu, Tingting Yi, Justin Liu, ick, Charles Dong, Peng Zeng, Tony Xia, 斌 项, 普鲁文, paul cheung, 张锐, Zhiqiang Li, Yixing Zheng, AlexiZz Nakido, 冉 耀隆, Chow David, Sheng Jiang, yungkei fan, Yao Rui, Joel Yang, 钟越, Chenglong Wei, 一斤瓜子, Yiting Zhu, Alexander ZHANG, YanJun Sun, Libing Yang, ZHENGCHENG CHEN, 张 任飞, 光宇 朴, 石岩 詹, 舜杰 杨, WJ Wang, Siam Chen.
  • 中国語 (繁体字): Winnie Lin, 船長, Alan Tsai, TingWen Su.
  • インドネシア語: Eriawan Kusumawardhono, Aldila, Arif Fahmi, Laurensius Dede Suhardiman, Mychael Go, Christian Elbrianno, Septian Adi.
  • イタリア語: Alessandro Alpi, Luigi Bruno.
  • 日本語: 布和 隆之, 有我 誠一, 牧野 浩一, 尾崎 義久, 内田 貴康, 石井 俊, 内田 恭平, 天明 雅和, 戸倉 彩.
  • 韓国語: Hongju.
  • ラトビア語: Andris Vilde.
  • ノルウェー語: Frode Aarebrot, Anders Stensaas, Thomas Ødegård, Thomas Isaksen.
  • ポーランド語: Makabeus Orban, Mateusz Redynk, Kacper Łakomski, Piotr Rysak, Wojciech Maj, Oskar Janczak, Szymon Seliga, Franx Bar, Marcin Anonimus.
  • ポルトガル語 (ブラジル): Marcelo Fernandes, Arthur Lima, Albert Tanure, Loiane Groner, Nylsinho Santos, Alessandro Trovato, Pudda, Matheus Vitti Santos, Rodrigo Crespi, Wellington OStemberg, Roberto Fonseca, Felipe Galante, Rodrigo Tavares, Alessandro Fragnani, Felipe Nascimento, Alexis Lopes.
  • ポルトガル語 (ポルトガル): Francisco Osorio, Luís Chaves, Ricardo Sousa Vieira, João Fernandes.
  • ルーマニア語: Tiberiu Frățilă, LaServici, Dan Ichim.
  • ロシア語: Vadim Svitkin, Николай Соколовский, Дмитрий Кирьянов, Baturin Valery.
  • セルビア語 (キリル文字): Dusan Milojkovic.
  • スペイン語: José María Aguilar, Ricardo Estrada Rdez, JOSE AHIAS LOPEZ PORTILLO, Gustavo Gabriel Gonzalez, Camilo Sasía.
  • スウェーデン語: Pelle Alstermo.
  • タミル語: Rajesh Waran, MUTHU VIJAY, Sankar Raj, Kadhireshan S, saravanan ramesh, Aravindh JANAKIRAMAN, Pandidurai R, Madhu Chakravarthy, Madhu Maha.
  • トルコ語: Mehmet Yönügül, Özgür ERSOY, mehmetcan Gün, Misir Jafarov, Isa Inalcik, Fırat Eşki, Gökberk Nur, Safa Selim.
  • ウクライナ語: Serhii Shulhin, Arthur Murauskas, Oleksandr Krasnokutskyi, Фомін Тарас.
  • ベトナム語: Dat Nguyen, Vương, Van-Tien Hoang, Dao Ngo, ng-hai.