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

アップデート 1.42.1: このアップデートでは、以下のissueに対処しています。

ダウンロード: 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+Tab および Ctrl+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

テーマ: Light+

ソース管理の入力

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

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

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

Two-step File Explorer collapse button

テーマ: Monokai

OS の配色に基づいてテーマを自動的に切り替え

Windows と macOS は、ライトおよびダーク配色をサポートするようになりました。OS の配色への変更をリッスンし、それに応じて一致するテーマに切り替えるように VS Code に指示する新しい設定 window.autoDetectColorScheme があります。

配色が変更されたときに使用されるテーマをカスタマイズするには、次の設定で推奨されるライトテーマとダークテーマを設定できます。

  • workbench.preferredLightColorTheme
  • workbench.preferredDarkColorTheme

エディター

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

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

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

折りたたまれたコード領域が、背景のハイライトの追加によって、より見つけやすくなりました。

Fold highlight color

テーマ: Dark+

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

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

折りたたみの改良

折りたたみインジケーターを Shift + クリック すると、最初に内側の範囲が折りたたまれます。Shift + クリック をもう一度 (すべての内側の範囲がすでに折りたたまれている場合) すると、親が折りたたまれます。Shift + クリック をもう一度すると、すべて展開されます。

Folding with Shift + Click

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

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

デフォルトでは、エディターはすべての文字が同じ幅を持つと仮定して、ワードラップブレークを計算します。この仮定により、デフォルトのアルゴリズムは高速になりますが、非等幅フォントを使用する場合、または文字の幅が異なるスクリプトでテキストを作成する場合、その結果は不十分です。新しい設定 editor.wrappingStrategy があり、advanced に設定して、エディターにワードラップブレーク計算をブラウザーに委任させることができます。

ユーザー補助機能

提案ウィジェットの改善

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

スクリーンリーダーが検出された場合、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 がサポートされるようになりました。ordergroup、および hidden 属性を使用すると、デバッグ構成ドロップダウンとデバッグクイックピックで構成と複合構成を並べ替え、グループ化、非表示にすることができます。

たとえば、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 アイテムに制限されています。これらのコミットの 1 つを選択すると、そのコミットによって導入された変更の差分ビューが開きます。拡張機能は、独自のタイムラインソースを提供 することもでき、この統合タイムラインビューに表示されます。最終的には、ビューに表示するソースを選択 (フィルター) することもできるようになります。

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

検索エディター

新しい検索エディターの開発を継続しており、今回のイテレーションの目標は、検索エディターを主要な検索エクスペリエンスにすることです。そのために、検索エディターのクエリを構成するための UI を実装しました。

Search Editor UI

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

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

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

検索エディターの詳細および今後のアップデートについては、issue #23931 を参照してください。

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

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

CodeLens の表示/非表示と場所 (上部またはインライン) は、debug.javascript.codelens.npmScripts 設定で構成できます。

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

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

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

リモート開発

リモート開発拡張機能 の開発が継続されています。これにより、コンテナー、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。

1.42 の機能のハイライトには、以下が含まれます。

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

新しい拡張機能の機能とバグ修正については、リモート開発リリースノート を参照してください。

拡張機能の作成

再利用のための Codicon

ほとんどの 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

テーマ: Light+

上記のホバーの例では、使用可能なすべての 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. 範囲が inserting および replacing 範囲を持つオブジェクトの場合、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 を参照してください。一部の拡張機能は独自に変数を置換し始めていますが(すべてのケースを網羅しているわけではないため、不完全な場合が多いです)。

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

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

この新しい 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 など)は、Debug Adapter Protocol を実装する必要があります。VS Code の拡張機能 API に Debug Adapter Protocol 全体を組み込みたくないため、そのプロトコルの最小限のサブセットを導入しました。インターフェース 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 インターフェースと互換性のあるスーパーセットであるため、完全なプロトコルが必要で、デバッグアダプターをすべて自分で実装したい場合は、モジュールをインポートできます。

はるかに簡単な代替手段は、node モジュール 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 contribution point の2つの非推奨属性のサポートを削除することを発表します。

  • adapterExecutableCommand - 代わりに拡張機能 API vscode.DebugAdapterDescriptorFactory および vscode.DebugAdapterExecutable を使用してください。Mock debug の例 API の使用方法を示しています
  • enableBreakpointsFor - 代わりに breakpoints contribution point を使用してください。変換は 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 インターフェースを中心に展開されています。

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

言語にセマンティックハイライトを追加することに関心がある場合は、セマンティックハイライトの概要 に、概念と新しい API の概要が記載されています。

認証プロバイダー

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

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

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

Documentation.Refactoring contribution point

提案された documentation.refactoring contribution point を使用すると、拡張機能はリファクタリングのドキュメントを提供できます。ユーザーは、リファクタリングを要求するときにこのドキュメントを表示することを選択できます。

Refactoring documentation

提案された contribution point により、拡張機能はコマンドを使用してドキュメントの表示方法を制御できます。

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

Issue #86788 で提案のステータスを追跡できます。

カスタムエディターのバックアップとホットイグジットフック

このイテレーションでは、提案された カスタムエディター API のイテレーションを継続しました。今月の主な調査は、カスタムエディターの ホットイグジット を有効にする方法でした。Issue #88719 では、ホットイグジットをサポートするために直面した課題と、検討したアプローチの一部について説明しています。

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

次のイテレーションでもカスタムエディター API のイテレーションを継続します。

複雑な補完ラベル

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

Complex completion label

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

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

Diagnostic with link

Language Server Protocol

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

LSP Web サイトで、Language Server Index Format specification の予備バージョンと、対応する LSIF overview がホストされるようになりました。

ブラウザーのサポート

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

ブラウザーで 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 を支持して TSLint の非推奨を発表 しました。

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

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

TypeScript 3.8-beta での VS Code のビルド

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

Shadow DOM での Monaco Editor のホストのサポート

マウス処理と動的 CSS に関するさまざまな問題を修正し、Monaco Editor を Shadow DOM API shadow root 内でホストできるようになりました。

新しいドキュメント

コンテナ

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

Docker extension

注目すべき修正

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

謝辞

最後になりましたが、VS Code をさらに良くするためにご協力いただいた以下の皆様に、心から感謝申し上げます!

issue 追跡への貢献

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 への貢献

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

こちらはコントリビューターのスナップショットです。コントリビューター名リストを含むプロジェクトの詳細については、プロジェクトサイト (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.
  • 日本語: Takayuki Fuwa, Seiichi Ariga, Koichi Makino, Yoshihisa Ozaki, 貴康 内田, Ishii Shun, Kyohei Uchida, TENMYO Masakazu, Aya Tokura.
  • 韓国語: 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.