🚀 VS Code で しましょう!

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

アップデート 1.23.1: このアップデートでは、これらのissueに対処しています。

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


Visual Studio Code 2018年4月リリースへようこそ。今回のマイルストーンでは、VS Code チームは拡張機能作成者向けの API 作業に注力してきましたが、それでもこのバージョンには、皆様に気に入っていただける多くのアップデートが含まれています。主なハイライトをいくつかご紹介します。

これらのリリースノートをオンラインで読みたい場合は、Updates (code.visualstudio.com) をご覧ください。
また、Cloud Developer Advocate の Brian Clark によるこの 1.23 リリースのハイライトビデオもご覧いただけます。

リリースノートは、VS Code の注力分野に関連する以下のセクションで構成されています。さらにいくつかのアップデートをご紹介します。

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

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 では、Shift キーと Alt キーを押しながら左マウスボタンを使用することで、列 (ボックス) 選択を追加できます。中央マウスボタンも列選択の作成に使用できるようになりました。

Editor column selection

注: editor.multiCursorModifierctrlCmd に設定すると、修飾キーは Windows では Shift キーと Ctrl キー、macOS では Shift キーと Cmd キーになります。

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

ワークベンチ

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

フィルターを使用して、問題ビューにファイルを含めたり除外したりできるようになりました。

  • フィルター入力ボックスで glob パターンを使用して、ファイルを含める/除外します。除外パターンには、プレフィックスとして ! を付ける必要があります。たとえば、!*.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.js デバッガーを起動するには、スクリプトで --inspect-brk のような Node.js デバッグオプションを定義する必要があります (こちらも参照)。

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

Git クローンの改善

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

  • ネイティブダイアログを使用して、リポジトリの場所を選択します。
  • 新しい通知進行状況 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 リージョンフォールディング

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

Improved CSS Folding

新しいプロパティに対する CSS サポートの改善

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

CSS Unknown Property

CSS リントを完全にオフにするか、PostCSS などの 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 validator 拡張機能も MDN からのデータを使用しており、値の定義構文に基づいて各プロパティ値のリントを提供します。

CSSTree

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

Markdown workspace symbol in the VS Code docs repo

永続的な Markdown プレビュー

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

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 のインポート整理機能がプレビューから正式版になりました。[インポートの整理] (⇧⌥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

FileSystem Provider

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

Files and Folders from a filesystem provider

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

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

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

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

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

注意: TextDocument.isUntitled

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

診断の読み取り

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

洗練された RenameProvider

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

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

TextDocumentContentChangeEvent には、新しいプロパティ rangeOffset があります。これは、rangeLength とともに、拡張機能が (offset,length) 座標を使用してテキストドキュメントの変更を追跡できるようにします。

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

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"
        }
    }
}

注: 同じ目的で使用することを意図していたため、application スコープを使用することを優先して、非推奨の isExecutable プロパティ。

提案された拡張機能 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、またはイベントの 1 つを介して提供される 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 であるため、VS Code はそれを vscode.git 拡張機能に転送します (プロトコルハンドラーが適切に登録されている場合)。

拡張機能が登録される前に 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 Keymap 拡張機能

Sublime Text Keymap 拡張機能は、Sublime から設定をインポートできるようになりました。

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

Sublime Settings Importer

エンジニアリング

スモークテストの安定性の向上

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

新しいドキュメント

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

Azure に静的 Web サイトをデプロイするチュートリアルを新たに用意しました。Azure Storage を使用して静的 Web サイトを作成およびデプロイする方法について説明します。

VS Code ブログ記事

VS Code ブログに最近 2 つの記事が投稿されました。

注目すべき変更点

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

謝辞

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

vscode への貢献

vscode-extension-samplesへの貢献

language-server-protocolへの貢献

vscode-languageserver-nodeへの貢献

  • Remy Suen (@rcjsuen):
    • workspace/didChangeWatchedFilesの登録パラメータを修正 PR #320
    • textDocument/publishDiagnosticsをインターセプトするミドルウェアを追加 PR #322
    • deprecated booleanプロパティをCompletionItemおよびSymbolInformationに追加 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には800人以上のメンバーがいます VS Codeプロジェクト チームには、毎月約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。