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

2018年4月 (バージョン 1.23)

Update 1.23.1: この更新では、これらの問題が解決されています。

ダウンロード: Windows: x64 | Mac: Intel | Linux 64-bit: deb rpm tarball | 32-bit: deb rpm tarball


Visual Studio Code 2018年4月版へようこそ。今回のマイルストーンでは、VS Code チームは拡張機能の作成者をサポートするための API 作業に注力してきましたが、このバージョンには、皆様に気に入っていただける多数の更新が含まれています。主なハイライトは次のとおりです。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新 にアクセスしてください。
Cloud Developer Advocate のBrian Clarkによるこの 1.23 リリースハイライトビデオもご確認ください。

リリースノートは、VS Codeの重点分野に関連する以下のセクションにまとめられています。さらに詳しい更新は以下の通りです。

  • エディター - Unicode ファイルサポートの改善、より安定したエディターの配置。
  • ワークベンチ - 検索結果のコピー、Git クローンワークフローの改善、VS Code プロセスエクスプローラー。
  • デバッグ - ログポイント式がスマートな補完と構造化されたオブジェクトの表示をサポート。
  • 言語 - JavaScript/TypeScript のインポート整理アクション、永続的な Markdown プレビュー。
  • 拡張機能の作成 - 新しい Webview および FileSystem Provider API、'Source' ファイルレベルのアクション。

Insiders: 新しい機能をいち早く試したいですか?毎晩リリースされるInsidersビルドをダウンロードして、最新のアップデートが利用可能になり次第お試しください。

エディター

強調表示されるインデントガイド

VS Code は、カーソルをさまざまなソースコードブロック間で移動させると、アクティブなインデントガイドを強調表示できるようになりました。

Highlighted indent guides

強調表示の色名はeditorIndentGuide.activeBackgroundで、これはworkbench.colorCustomizations設定で変更できます。

"workbench.colorCustomizations": {
    "editorIndentGuide.activeBackground": "#ff0000"
}

保存時にコードアクションを実行

新しいeditor.codeActionsOnSave設定により、ファイルを保存するときに実行されるコードアクションのセットを構成できます。たとえば、JavaScript、TypeScript、およびインポート整理コードアクションを提供するその他の拡張機能の場合、設定することで、保存時にインポート整理を有効にできます。

"editor.codeActionsOnSave": {
     "source.organizeImports": true
}

また、言語固有の設定を使用して、言語ごとに保存時に実行されるコードアクションを有効または無効にすることもできます。以下の設定は、TypeScript ファイルのみで保存時にインポート整理を有効にします。

"[typescript]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
},
"[typescriptreact]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
}

マウスの中ボタンでの列選択

VS Code では、ShiftAltを押しながらマウスの左ボタンを使用することで、列(ボックス)選択を追加できます。今回、マウスの中ボタンも列選択の作成に使用できるようになりました。

Editor column selection

注: editor.multiCursorModifierctrlCmdに設定した場合、修飾キーは Windows ではShiftCtrl、macOS ではShiftCmdになります。

UTF-16 エンコードファイルの処理を改善

VS Code は常にファイルの UTF-16 エンコーディングをサポートしていましたが、このエンコーディングを正しく検出するためには BOM (バイトオーダーマーク) が必要でした。VS Code が BOM を見つけられなかった場合、ファイルは開かれず、ユーザーには情報メッセージが表示されていました。

このリリースでは、このメッセージにファイルをエディターでテキストとして開くための新しいアクションを追加しました。

Open binary file message

開かれたら、エンコーディングを変更してテキストをデコードを試すことができます。

さらに、VS Code は BOM なしで UTF-16 を自動的に検出するヒューリスティックを使用するようになりました。このヒューリスティックは、ASCII 文字のみを含むすべての UTF-16 ファイルで機能するはずです。

エディターの配置を改善

エディターのスクロール高さが変更される特定のケース (折り返しエディターのサイズ変更、マウスホイールズームの使用、CodeLens の変更など) では、エディターはビューポートの中央にある行を維持しようとしていました。VS Code はビューポートの最初の行を維持するようになり、より安定した表示を提供します。

Improved editor stability

ワークベンチ

「問題」ビューのフィルタリング

フィルターを使用して、「問題」ビューでファイルをインクルードまたはエクスルードできるようになりました。

  • フィルター入力ボックスでグロブパターンを使用してファイルをインクルード/エクスルードします。エクスルードパターンには!をプレフィックスとして付ける必要があります。たとえば、!*.jsは .js 拡張子を持つすべてのファイルを削除します。
  • files.exclude設定に一致するすべてのファイルを削除するためのファイル除外設定を使用したフィルターボタンがあります。

以下の短いビデオは、files.exclude設定に基づいてプロジェクトのoutディレクトリをフィルタリングし、フィルター入力ボックスに!**/node_modules/**と入力してすべてのnode_modulesを無視する方法を示しています。

Filter problems

NPM スクリプトの実行

npm.enableScriptExplorer設定を使用すると、ワークスペースで定義されているスクリプトを表示するエクスプローラーを有効にできます。

NPM script explorer

エクスプローラーは以下をサポートします。

  • package.jsonファイルまたはpackage.jsonファイル選択時にscriptsセクション内のスクリプトを開きます。これはスクリプト選択時のデフォルトアクションです。
  • 統合ターミナルに出力を表示して、スクリプトをタスクとして実行します。
  • スクリプトをデバッグします。Node デバッガーを起動するには、スクリプトで--inspect-brkのような Node デバッグオプションを定義する必要があります (参照)。

特定のフォルダーに含まれるpackage.jsonファイル内のスクリプトを除外するには、npm.exclude設定を使用します。

Git クローンの改善

Git クローンワークフローにいくつかの改善が加えられました。Git: Clone コマンドを実行すると

  • リポジトリの場所を選択するためにネイティブダイアログが使用されます。
  • 新しい通知進捗 API が使用され、操作のステータス報告が改善されます。
  • VS Code は、クローンしたリポジトリをワークスペースに追加するか、直接開くかを確認します。

Git 拡張機能は、システムワイド URI を処理するための新しい提案された API も採用し、特定の URI で Git クローンを呼び出します。以下は、https://github.com/microsoft/vscode-vsce.gitをクローンする URI の例です。

vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git

試したい場合は

  • Windows: コマンドプロンプトで、次のように入力します: explorer "vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git"
  • macOS: シェルで、次のように入力します: open vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git

検索コンテキストメニューから結果をコピー

検索結果ツリーのコンテキストメニューに、コピーパスをコピーすべてコピーの3つの新しいオプションが追加されました。これは高評価の多かったリクエストであり、検索結果の共有やエクスポートが容易になります。

Copy search

検索のインクルードおよびエクスルード入力ボックスの分離の復活

先月、私たちは検索ビューのインクルードとエクスルードの入力ボックスを統合し、それを簡素化して合理化しつつ、わずかな垂直スペースを節約しようとしました。しかし、多くの方々から、これが検索ビューの使い方に合わないという意見をいただきました。最終的に、私たちは変更を元に戻すことに決定し、このリリースでは 1.22 以前のようにインクルード/エクスルードボックスを分離することになりました。なお、エクスルードボックスのパターンには!を使用する必要はありません

include exclude

カスタムアクティビティバービュー

拡張機能の作成者は、独自にビューコンテナーをアクティビティバーに追加できるようになりました。インストールされている拡張機能によっては、更新後に、カスタムエクスプローラーなどの UI がファイルエクスプローラーから新しいカスタムビューコンテナーに移動しているのが見えるかもしれません。たとえば、以下では、Azure App Service および Azure Databases 拡張機能のエクスプローラーが専用の Azure ビューに移動したことがわかります。

Azure view in the Activity Bar

実行中の Visual Studio Code プロセスを表示

開発者: プロセスエクスプローラーを開く コマンド、またはヘルプ > プロセスエクスプローラーを開く メニュー項目を使用して、実行中の VS Code プロセスに関する情報が継続的に更新される新しいウィンドウを開きます。プロセスは CPU 使用率、メモリ使用量、PID、および表示名と共にリストされ、右クリックで表示されるコンテキストメニューから強制終了できます。

Process Explorer

統合ターミナル

ターミナル分割のマルチルートサポート

マルチルートワークスペース内でターミナルを分割する際に、分割するフォルダーを選択できるようになりました。以前の動作は、workbench.action.terminal.splitInActiveWorkspaceコマンドにキーバインドすることで再度有効にできます。

言語

CSS 領域の折りたたみ

CSS/SCSS/Less で、/* #region *//* #endregion */ を使用して領域を折りたたみ可能としてマークできるようになりました。SCSS/Less では、// #region// #endregion も折りたたみマーカーとして使用できます。

Improved CSS Folding

CSS の新プロパティサポートを改善

以前は、VS Code はbackdrop-filterのような一部の実験的な CSS プロパティに対して「不明なプロパティ (Unknown Property)」エラーを表示していました。

CSS Unknown Property

これは、PostCSS のように実験的な CSS プロパティの使用を許可する CSS フレームワークを使用している場合でも、CSS リンティングを完全にオフにするか、このエラーを我慢する必要があることを意味していました。

このリリースでは、Mozilla Developer Network からの情報をもとに、VS Code が 87 の新しい CSS プロパティを認識するようになりました。MDN で CSS プロパティを見つけられる場合、VS Code はそれを認識するはずです。

さらに、MDN からの情報により、VS Code は CSS/SCSS/Less での補完機能を強化し、各 CSS プロパティの構文とステータス値を表示するようになりました。

CSS Support powered by MDN data

CSS プロパティ値の検証に対する組み込みサポートはまだありませんが、CSSTree バリデーター拡張機能も MDN のデータを使用しており、各プロパティ値の値定義構文に基づいたリンティングを提供します。

CSSTree

Markdown はワークスペースシンボル検索をサポートするようになりました。初めて Markdown ファイルを開いた後、(⌘T (Windows, Linux Ctrl+T)) を使用して、現在のワークスペース内のすべての Markdown ファイルのヘッダーを検索できます。

Markdown workspace symbol in the VS Code docs repo

永続的な Markdown プレビュー

VS Code を再度開くと、Markdown プレビューが自動的に復元されるようになりました。

A Markdown preview automatically being reopened when VS Code restarts

以前は、VS Code を再起動するたびにプレビューを再度開く必要がありました。

TypeScript 2.8.3

VS Code は TypeScript 2.8.3 を搭載するようになりました。このリリースでは、多くの重要なバグが修正されています。

JavaScript および TypeScript のインポート整理

JavaScript および TypeScript のインポート整理機能はプレビュー段階を終了しました。インポートの整理 (Organize Imports) (⇧⌥O (Windows, Linux Shift+Alt+O)) を実行すると、未使用のインポートを素早く削除し、残りのインポートを JavaScript および TypeScript のソースコード内でソートできます。

また、新しいeditor.codeActionsOnSave設定を使用して、保存時にインポート整理が実行されるように設定できるようになりました。TypeScript ファイルで保存時にインポート整理を有効にする設定は以下の通りです。

"[typescript]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
},
"[typescriptreact]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
}

デバッグ

ログポイントの改善

ログポイントは前回のリリースで導入されましたが、その使いやすさと有用性が向上しました。

  • ログメッセージや条件付きブレークポイントに埋め込まれた式に対して、IntelliSense (スマートな補完) が追加されました。

  • Node.js のデバッグでログポイントを使用する場合、ログメッセージに埋め込まれた構造化オブジェクトは、デバッグコンソールで展開可能なオブジェクトとして表示されます。

    IntelliSense for Logpoint expressions

  • Node.js デバッグにおけるログポイントは、デバッグコンソールでそのソース位置を表示するようになりました。

    Logpoint location

  • ログポイントやブレークポイントは、エディターのガターにあるアイコンをクリックすることで簡単に削除できるため、誤ってログメッセージやブレークポイントの条件を失う可能性があります。これを防ぐため、VS Code はガターをクリックして条件またはログメッセージを持つブレークポイントが削除された際にプロンプトを表示するようになりました。このアラートでは、ブレークポイントを削除する代わりに無効にするオプションが提供されます。

  • 最後に、デバッグメニューに新しいブレークポイント > ログポイント... アクションを追加しました。

拡張機能の作成

アクティビティバーへの貢献

カスタムビューを作成する拡張機能が増え、その大部分がファイルエクスプローラーに提供されるにつれて、エクスプローラーが煩雑になっていることに気づきました。拡張性を高めるため、VS Code はアクティビティバーへの貢献方法を提供するようになりました。例として、アクティビティバーにテスト貢献が追加されました。拡張機能は独自に貢献できるようになりました。

テストビューコンテナー

拡張機能がテスト関連ビューを貢献するための新しいテスト貢献が、アクティビティバーで提供されるようになりました。このテスト貢献はデフォルトでは空で非表示ですが、ビューが貢献されると表示されます。この例では、mochaカスタムビューがアクティビティバーのテストアクティビティにどのように貢献されるかを示しています。

"contributes": {
    "views": {
        "test": [
            {
                "id": "mocha",
                "name": "mocha"
            }
        ]
    }
}

Test views container

カスタムビューコンテナー

拡張機能は、貢献ポイントviewsContainersを使用して、アクティビティバーに追加のアクティビティを定義できるようになりました。

"contributes": {
        "viewsContainers": {
            "activitybar": [
                {
                    "id": "package-explorer",
                    "title": "Package Explorer",
                    "icon": "resources/package-explorer.svg"
                }
            ]
        },
        "views": {
            "package-explorer": [
                {
                    "id": "package-dependencies",
                    "name": "Dependencies"
                },
                {
                    "id": "package-outline",
                    "name": "Outline"
                }
            ]
        }
}

Custom views container

アイコンの仕様

  • サイズ: アイコンは 50x40 の正方形の中央に配置された 24x24 です。

  • 色: アイコンは単一のモノクローム色を使用する必要があります。

  • フォーマット: アイコンは SVG であることが推奨されますが、任意の画像ファイル形式が受け入れられます。

  • 状態: すべてのアイコンは、次の状態スタイルを継承します。

    状態 不透明度
    既定値 60%
    ホバー 100%
    アクティブ 100%

登録された各ビューコンテナーを表示するためのコマンドが登録されます。上記のパッケージエクスプローラーの例では、表示: パッケージエクスプローラーを表示 となります。また、表示: ビューを開く... コマンドを実行すると、すべてのビューコンテナーがリスト表示されます。

Open View

注: 各ビューごとにビューコンテナーを作成するのではなく、関連するビューを単一のビューコンテナーにまとめることをお勧めします。

ソース管理のカスタムビュー

ソース管理関連のカスタムビューをアクティビティバーのソース管理ビューコンテナーに提供できるようになりました。これらのビューはエクスプローラーと同様に表示、非表示、並べ替えが可能です。

"contributes": {
    "views": {
        "scm": [
            {
                "id": "git-compare",
                "name": "Compare"
            }
        ]
    }
}

SCM Custom views

ファイルシステムプロバイダー

拡張機能は、ftp サーバーのような任意のソースからファイルやフォルダーを提供できるようになり、VS Code はそれらを通常のファイルと同様に扱います。これを行うには、拡張機能がftpのような URI スキームに関連付けるFileSystemProviderインターフェースを使用します。このインターフェースにより、エディターはファイルやフォルダーを検出および管理(作成、削除、読み取り、書き込み)できます。

Files and Folders from a filesystem provider

VS Code は、FileSystem Providers によって提供される設定ファイル(settings.jsontasks.jsonlaunch.json)を読み取り、変更することもできます。

言語識別子とドキュメントセレクター

FileSystem Providers の追加は、すべてのファイルがディスク上に存在するわけではないことを意味し、拡張機能はこのことを認識している必要があります。手短に言えば、しかし重要なこととして、すべてのドキュメントがディスク上に存在するわけではなく、拡張機能がディスクアクセスに依存している場合、最初にスキームを確認しなければなりません

認識を高めるため、ドキュメントフィルターではなく言語識別子のみを使用して言語機能を登録した場合に表示される情報メッセージを追加しました。詳細については、ドキュメントセレクターのトピックを参照してください。

最後に、テストに使用できるサンプル拡張機能があります。これはすべてをメモリに保持するファイルシステムを実装しており、ディスク上には何も存在しないため、それに対して言語機能をテストできます。拡張機能はこちらで入手できます。

注意: TextDocument.isUntitled

FileSystem Providers の追加により、TextDocument.isUntitled のセマンティクスを、新しく作成されたドキュメント(untitled スキームを使用)の場合にのみ true となるように調整しました。以前は、ディスクからではないすべてのドキュメントは「untitled」として扱われていました。この変更は、特に untitled ではないドキュメントがディスクに保存されていると仮定する拡張機能の動作を変更する可能性があります。

診断の読み取り

診断を読み取り、診断が変更されたときに通知を受け取る新しい API があります。languages.getDiagnostics および languages.onDidChangeDiagnostics を参照してください。たとえば、SCM 拡張機能は、チームと変更を共有する前にエラーがないことを確認できるようになりました。

RenameProvider の改良

RenameProvider API を改良し、オプションでprepareRenameという新しい関数を実装できるようになりました。この関数により、プロバイダーは VS Code が名前を変更するシンボルを解決し、検証するのに役立ちます。

ドキュメント変更イベントにオフセットベースの情報を含める

TextDocumentContentChangeEvent に新しいプロパティrangeOffsetが追加されました。これはrangeLengthと共に、拡張機能がテキストドキュメントの変更を追跡するために(オフセット,長さ)座標を使用することを可能にします。

ソースコードアクションの種類

CodeActionKind.Sourceは、ファイル全体に適用されるコードアクションを識別します。インポートの整理は、ファイル内の任意の位置からトリガーできるため、Sourceコードアクションの良い例です。

Sourceコードアクションは、通常のクイックフィックスの電球メニューには表示されません。これらはeditor.action.sourceActionコマンドを使用して明示的に要求する必要があります。Sourceコードアクションは、新しいソースアクションコンテキストメニューにも表示されます。

インポート整理コードアクション

Sourceコードアクションを基盤として、新たに追加されたCodeActionKind.SourceOrganizeImportsは、インポート整理コードアクションを識別します。これらのアクションはeditor.action.organizeImportsを使用してトリガーでき、標準のキーボードショートカットがあります: ⇧⌥O (Windows, Linux Shift+Alt+O)

拡張機能がすでにインポート整理を実装している場合は、ユーザーが言語間でより一貫したエクスペリエンスを得られるように、CodeActionKind.SourceOrganizeImportsを使用するように移行することを強くお勧めします。

CodeActionProviderMetadata

registerCodeActionsProviderは、オプションのCodeActionProviderMetadata引数を受け取るようになりました。これにより、拡張機能はCodeActionProviderが提供するコードアクションの種類を VS Code に伝えることができます。この情報は、VS Code が新しいリファクタリングおよびソースアクションコンテキストメニューを有効にするために使用されます。たとえば、リファクタリングコンテキストメニューは、CodeActionProviderrefactor.*コードアクションを返すことを示すCodeActionProviderMetadataで登録されている場合にのみ有効になります。

Webview API

Webview API を使用すると、拡張機能は VS Code 内で完全にカスタマイズ可能なビューを作成できます。たとえば、組み込みの Markdown 拡張機能は webview を使用して Markdown プレビューをレンダリングします。Webview は、VS Code のネイティブ API がサポートする範囲を超えた複雑なユーザーインターフェースを構築するためにも使用できます。

A webview showing a cat gif

Webview API については、新しい拡張機能作成ページで説明されています。Webview API 拡張機能の例はこちらにあります。拡張機能の作成者がこの強力な新しい API をどのように活用するかを見るのが楽しみです。

アプリケーションスコープ設定

設定をアプリケーションレベルで適用し、ウィンドウまたはリソースレベルで上書きされないようにしたい場合は、applicationスコープを使用することでそれが可能になりました。

"configuration": {
    "properties": {
        "git.path": {
            "type": "string",
            "description": "Path to the git executable",
            "scope": "application"
        }
    }
}

注: isExecutableプロパティは、同じ目的のために使用されていたため、applicationスコープの使用を推奨して非推奨になりました。

提案された拡張API

今回のマイルストーンでは、いくつかの新しい提案された拡張機能 API を追加しました。これらの API は、十分な確信が得られ次第、今後のマイルストーンで安定版に追加する予定です。これらの API がお客様の拡張機能でどのように機能するかについて、フィードバックを歓迎します。

注: これらの API はまだ提案段階であるため、使用するにはpackage.json"enableProposedApi": trueを追加してオプトインし、vscode.proposed.d.tsを拡張機能プロジェクトにコピーする必要があります。また、enableProposedApi属性を使用する拡張機能を Marketplace に公開することはできません。

統合ターミナル API

統合ターミナル API には、拡張機能の作成者がすべてのターミナルにアクセスできるようにし、異なるマシン間でターミナルの多重化も可能にするいくつかの提案された機能があります。以前は拡張機能が作成したターミナルしかアクセスできませんでしたが、すべてのターミナルが API を介してアクセスできるようになりました。

console.log(window.terminals);

これに対応するイベントがあります。

window.onDidOpenTerminal(terminal => {
  console.log('New terminal: ' + terminal.name);
});

ANSI エスケープシーケンスを含む、ターミナルのプロセスから来る生データストリームにフックすることもできます。

const terminal = window.createTerminal();
terminal.onData(data => {
  console.log('Terminal data: ' + data);
});

タスク API

タスク API は、拡張機能からのタスクのクエリと実行に関してさらに磨きがかかりました。新しくサポートされる API は次のとおりです。

  • fetchTasks はタスクのサブセットのみをクエリするためのフィルターを受け取ります。
  • taskExecutions は、実行中のすべてのタスクの実行オブジェクトのフェッチをサポートします。
  • executeTasktaskExecutions、またはイベントのいずれかを介して提供されるTaskExecutionオブジェクトは、===を使用して比較できます。

この API はまだ提案段階です。

プロトコルハンドラー API

プロトコルハンドラー API を使用すると、拡張機能はシステムワイド URI を処理できます。この機能は、他のアプリケーションが特定の拡張機能に URI を送信できるため、アプリケーション間の統合に役立ちます。

export interface ProtocolHandler {
  handleUri(uri: Uri): void;
}

export namespace window {
  /**
   * Registers a protocol handler capable of handling system-wide URIs.
   */
  export function registerProtocolHandler(handler: ProtocolHandler): Disposable;
}

プロトコルハンドラー登録の例を以下に示します。

function activate() {
  registerProtocolHandler({
    handleUri(uri: Uri) {
      console.log('Received URI', uri.toString());
    }
  });
}

この API では、URI オーソリティとそれを処理する拡張機能との間に厳密な関係があります。URI オーソリティは拡張機能の ID(publisher.name)である必要があります。たとえば、以下の URI を見てください。

 vscode://vscode.git/clone?url=foobar
 \____/   \________/ \___/ \_________/
   |           |        |       |
scheme    authority    path   query

この URI のオーソリティはvscode.gitであるため、vscode.git拡張機能がプロトコルハンドラーを適切に登録していれば、VS Code はそれをその拡張機能に転送します。

拡張機能が登録される前に URI が開かれる可能性があるため、新しいonUriアクティベーションイベントも導入されました。これにより、拡張機能に向けられた URI が開かれるたびに拡張機能がアクティブ化されます。

注: URI 処理はLinux ではまだサポートされていません

折りたたみプロバイダー API

リリース 1.22 で提案された折りたたみ範囲プロバイダーが更新され、正式な API となりました。言語拡張機能は、構文を認識する折りたたみ範囲を提供できるようになりました。

/**
 * Register a folding range provider.
 *
 * Multiple providers can be registered for a language. In that case providers are asked in
 * parallel and the results are merged.
 * If multiple folding ranges start at the same position, only the range of the first registered provider is used.
 * If a folding range overlaps with an other range that has a smaller position, it is also ignored.
 *
 * A failing provider (rejected promise or exception) will
 * not cause a failure of the whole operation.
 *
 * @param selector A selector that defines the documents this provider is applicable to.
 * @param provider A folding range provider.
 * @return A [disposable](#_Disposable) that unregisters this provider when being disposed.
 */
export function registerFoldingRangeProvider(
  selector: DocumentSelector,
  provider: FoldingRangeProvider
): Disposable;

拡張機能への貢献

私たちのチームは、いくつかの VS Code 拡張機能を維持または貢献しています。特に今月は以下です。

Sublime Text キーマップ拡張機能

Sublime Text キーマップ拡張機能が Sublime から設定をインポートできるようになりました。

拡張機能が初めて起動されると、インポート可能なすべての Sublime 設定を表示するプロンプトが表示されます。後で設定をインポートしたい場合は、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) からSublime Text Keymap: Sublime Text 設定をインポート コマンドを使用します。

Sublime Settings Importer

エンジニアリング

スモークテストの安定性を改善

VS Code には常にスモークテストがあり、これは品質を厳密に管理するために使用されていました。私たちはスモークテストを自動化しましたが、安定させることに失敗していました。今回のマイルストーンでは、スモークテストの安定性とパフォーマンスの向上に取り組みました。詳細については、プルリクエスト #47471 を参照してください。

新しいドキュメント

Azure Storage を使用した Web サイトデプロイチュートリアル

Azure Storage を使用して静的 Web サイトを作成およびデプロイするための新しい静的 Web サイトを Azure にデプロイチュートリアルを公開しました。

VS Code のブログ記事

最近、VS Code ブログに 2 つの投稿がありました。

注目すべき変更

  • 10663: 比較ビューでタブを切り替える際にビューの状態を保持する
  • 24634: macOS: ウィンドウの acceptsFirstMouse を有効にする設定を追加する
  • 29549: マルチスレッドデバッグはスレッド停止をサポートするべき
  • 46785: ファイルにフォーカスがない場合、「Finder で表示」はワークスペースのフォルダーを開くべき
  • 47274: Node のログポイントがデバッグコンソールで VM ソースとして表示される
  • 47478: 不完全にインストールされた拡張機能を検出する
  • 48733: デバッグ中にホバープロバイダーへの呼び出しを有効にするオプション debug.enableAllHovers を導入する
  • 46414: ターミナルでの Node.js プロセスのデバッグがデバッグコンソールに出力を表示しなくなった

謝辞

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

vscodeへの貢献者

vscode-extension-samplesへの貢献

language-server-protocolへの貢献者

vscode-languageserver-nodeへの貢献者

  • Remy Suen (@rcjsuen):
    • workspace/didChangeWatchedFiles の登録パラメーターを修正 PR #320
    • textDocument/publishDiagnostics を傍受するミドルウェアを追加 PR #322
    • CompletionItem と SymbolInformation に非推奨の boolean プロパティを追加 PR #332
    • データフィールドを導入して documentLink/resolve を修正 PR #336
    • Travis ビルドでのシンボリックリンクを npm スクリプトに置き換え PR #338
  • Niklas Mollenhauer (@nikeee): #340 を解決 PR #341

vscode-chrome-debugへの貢献

vscode-chrome-debugへの貢献

  • @digeff
    • 不明なスクリプトの解決された bp を無視 PR #325
    • スタックトレースをサニタイズして、完全なファイルパスを含まないようにする PR #322
    • 通知を最新バージョンに更新 PR #320

vscode-node-debug2 への貢献

  • @digeff
    • -core 4.1.4 に更新 PR #187
    • スタックトレースを持つエラーで拒否するようになりました PR #185

localizationへの貢献

Transifex のVS Code プロジェクトチームには 800 人以上のメンバーがおり、毎月約 100 人のアクティブな貢献者がいます。新しい翻訳の提供、翻訳への投票、プロセス改善の提案など、皆様の貢献に感謝いたします。

このリリースに貢献してくださった方々のスナップショットを以下に示します。貢献者リストを含むプロジェクトの詳細については、プロジェクトサイトhttps://aka.ms/vscodelocをご覧ください。

  • フランス語: Antoine Griffard, Adrien Clerbois, Thierry DEMAN-BARCELO, Jean Cuteaux, Quentin BRETON.
  • イタリア語: Alessandro Alpi, Andrea Dottor, Aldo Donetti, Marco Dal Pino, Riccardo Cappello.
  • ドイツ語: J.M., Levin Rickert.
  • スペイン語: Andy Gonzalez, Alejandro Medina, Alberto Poblacion, Thierry DEMAN-BARCELO, Eickhel Mendoza.
  • 日本語: Shunya Tajima, Yuichi Nukiyama, Yosuke Sano, Seiji Momoto, Satoshi Kajiura, Toshinori Sugita.
  • 中国語 (簡体字): Joel Yang, YF, pluwen.
  • 中国語 (繁体字): Winnie Lin, Duran Hsieh, Ryan Tseng, Alan Tsai, alantea, Will 保哥.
  • 韓国語: ChangJoon Lee, HANSEULMARO KIM.
  • ロシア語: Michel Ace, Ivan.
  • ブルガリア語: Любомир Василев.
  • ハンガリー語: Tar Dániel.
  • ポルトガル語 (ブラジル): Alessandro Fragnani, Roberto Fonseca, Marcelo Fernandes, Rodrigo Crespi, Matheus Palu, Bruno Sonnino, Douglas Eccker, douglas.martim.
  • ポルトガル語 (ポルトガル): Hugo Martins, Daniel Correia, Isac Van Dunem, Tiago Costa, João Mata.
  • トルコ語: Adem Coşkuner, Burak Karahan, Özgür Öktem, Ömer Büyükçelik.
  • ボスニア語: Muharem Basanovic, Bahrudin Hrnjica, Ismar Bašanović, Almir Vuk.
  • チェコ語: Vít Staniček, Vojtěch Habarta, m_fr, Frantisek Veris, Jakub Skořepa, Michal Zobec, Ferdinand Prantl, Ľubomír Kováč, Jan Brudný.
  • オランダ語: Marco van den Hout, Maarten van Stam, Gerald Versluis.
  • フィンランド語: Petri Niinimäki, Feetu Nyrhinen.
  • ヒンディー語: Brahma Dev.
  • インドネシア語: Febrian Setianto (Feber), Wildan Mubarok, Adrian M. R., G-RiNe Project, Joseph Aditya P G, Mulia Arifandi Nasution, Herman Prawiro.
  • ラトビア語: kozete, Pēteris Kļaviņš, Edgars, Simone Chiaretta.
  • ポーランド語: Joanna Skurzyńska, Mateusz Wyczawski.
  • ルーマニア語: Schiriac Robert.
  • セルビア語: Jean Cuteaux.
  • タイ語: ภูมิไผท จันทรศรีวงศ์.
  • ウクライナ語: Dmytro Kyrychuk, Borys Lebeda.
  • エスペラント語: Andy Hampton.