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 作業に注力してきましたが、それでもこのバージョンには、皆様に気に入っていただける多くのアップデートが含まれています。主なハイライトをいくつかご紹介します。
- インデントガイドのハイライト表示 - ソースコードのインデントを視覚化するのに役立ちます。
- 保存時にコードアクションを実行 - 保存時に「インポートの整理」などのアクションを実行します。
- NPM スクリプトエクスプローラー - プロジェクト内の NPM スクリプトをすばやく見つけて、実行、デバッグします。
- 問題ビューのフィルタリング - エラーと警告を表示するファイルを選択します。
- 中央マウスボタンによる列選択 - ドラッグ付きの中央マウスボタンで高速な列選択。
- CSS リージョンフォールディング - CSS/SCSS/Less コードにリージョンを作成して、便利なコードフォールディングを実現します。
- 新しいプロパティに対する CSS サポートの改善 - CSS の実験的プロパティに対するスマートな提案。
- Markdown ヘッダー検索 - ワークスペース全体で Markdown ヘッダーを検索します。
- カスタムアクティビティバービュー - 拡張機能の作成者は、独自のアクティビティバー項目を作成できます。
- 新しい Web サイトのデプロイチュートリアル - 静的 Web サイトを Azure Storage にデプロイする方法を学びます。
これらのリリースノートをオンラインで読みたい場合は、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 は、カーソルをさまざまなソースコードブロック間を移動させると、アクティブなインデントガイドをハイライト表示できるようになりました。
ハイライトの色名は 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.multiCursorModifier
をctrlCmd
に設定すると、修飾キーは Windows ではShift
キーとCtrl
キー、macOS ではShift
キーとCmd
キーになります。
UTF-16 エンコードファイルの処理の改善
VS Code は常にファイルの UTF-16 エンコードをサポートしていましたが、このエンコードを適切に検出するには BOM (バイトオーダーマーク) が必要でした。VS Code が BOM を検出しない場合、ファイルは開かれず、情報メッセージが表示されていました。
今回のリリースでは、このメッセージに、エディターでファイルをテキストとして開くための新しいアクションを追加しました。
ファイルを開いたら、エンコードを変更してテキストのデコードを試みることができます。
さらに、VS Code は BOM なしで UTF-16 を自動的に検出するヒューリスティックを使用するようになりました。このヒューリスティックは、ASCII 文字のみを含むすべての UTF-16 ファイルで動作するはずです。
エディターの位置の改善
エディタースクロール高を変更する場合 (折り返しエディターのサイズ変更、マウスホイールズームの使用、CodeLens の変更など)、エディターはビューポートの中央の行を維持しようとしていました。VS Code はビューポートの最初の行を維持するようになり、より安定した外観を提供します。
ワークベンチ
問題ビューのフィルタリング
フィルターを使用して、問題ビューにファイルを含めたり除外したりできるようになりました。
- フィルター入力ボックスで glob パターンを使用して、ファイルを含める/除外します。除外パターンには、プレフィックスとして
!
を付ける必要があります。たとえば、!*.js
は .js 拡張子を持つすべてのファイルを削除します。 - [ファイル除外設定を使用してフィルター] ボタンを使用すると、
files.exclude
設定に一致するすべてのファイルを削除できます。
以下の短いビデオでは、files.exclude
設定に基づいてプロジェクトの out
ディレクトリをフィルタリングし、フィルター入力ボックスに !**/node_modules/**
と入力してすべての node_modules
を無視する方法を示しています。
NPM スクリプトの実行
npm.enableScriptExplorer
設定を使用すると、ワークスペースで定義されているスクリプトを表示するエクスプローラーを有効にできます。
エクスプローラーは以下をサポートしています。
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 つの新しいオプションが追加されました。これは非常に多くの 👍 をいただいた要望であり、検索結果の共有またはエクスポートが容易になります。
検索の包含および除外入力ボックスの分離の復活
先月、検索ビューの包含および除外入力ボックスを統合して、簡素化および合理化を図ると同時に、わずかな垂直スペースを節約しようとしました。多くの方から、これは検索ビューの使用方法に合わないというご意見をいただきました。最終的に、変更を元に戻すことにしました。今回のリリースでは、1.22 より前にあったように、包含/除外ボックスを分離して戻しました。除外ボックスのパターンに !
を使用する必要はありません。
カスタムアクティビティバービュー
拡張機能の作成者は、独自に ビューコンテナをアクティビティバーに追加できるようになりました。インストールされている拡張機能によっては、更新後に、カスタムエクスプローラーがファイルエクスプローラーから新しいカスタムビューコンテナに移動するなどの UI が表示される場合があります。たとえば、以下では、Azure App Service および Azure Databases 拡張機能のエクスプローラーが専用の Azure ビューに移動したことがわかります。
実行中の Visual Studio Code プロセスを表示する
[開発者: プロセスエクスプローラーを開く] コマンドまたは [ヘルプ] > [プロセスエクスプローラーを開く] メニュー項目を使用して、実行中の VS Code プロセスに関する継続的に更新される情報を含む新しいウィンドウを開きます。プロセスは、CPU およびメモリ使用量、PID、およびフレンドリ名とともにリストされ、右クリックで表示されるコンテキストメニューから強制終了できます。
統合ターミナル
ターミナル分割のマルチルートサポート
マルチルートワークスペース内でターミナルを分割するフォルダーを選択できるようになりました。以前の動作は、workbench.action.terminal.splitInActiveWorkspace
コマンドをキーバインドすることで再度有効にできます。
言語
CSS リージョンフォールディング
/* #region */
および /* #endregion */
を使用して、CSS/SCSS/Less でリージョンを折りたたみ可能としてマークできるようになりました。SCSS/Less では、// #region
および // #endregion
を折りたたみマーカーとして使用することもできます。
新しいプロパティに対する CSS サポートの改善
以前は、VS Code は backdrop-filter
などの一部の実験的な CSS プロパティに対して「不明なプロパティ」エラーを表示していました。
CSS リントを完全にオフにするか、PostCSS などの CSS フレームワークを使用して実験的な CSS プロパティを使用している場合でも、このエラーに耐える必要がありました。
今回のリリースでは、Mozilla Developer Network から提供されたデータを使用して、VS Code は 87 個の新しい CSS プロパティを識別するようになりました。MDN で CSS プロパティを見つけることができれば、VS Code はそれを認識するはずです。
さらに、MDN からのデータを使用して、VS Code は CSS/SCSS/Less で強化された補完機能を提供し、各 CSS プロパティの構文とステータス値を表示します。
CSS プロパティ値の検証に対する組み込みサポートはまだありませんが、CSSTree validator 拡張機能も MDN からのデータを使用しており、値の定義構文に基づいて各プロパティ値のリントを提供します。
Markdown ワークスペースシンボル検索
Markdown でワークスペース シンボル検索がサポートされるようになりました。Markdown ファイルを初めて開いた後、(⌘T (Windows、Linux Ctrl+T)) を使用して、現在のワークスペース内のすべての Markdown ファイルのヘッダーを検索できます。
永続的な Markdown プレビュー
Markdown プレビューは、VS Code を再度開くと自動的に復元されるようになりました。
以前は、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 デバッグでログポイントを使用する場合、ログメッセージに埋め込まれた構造化オブジェクトは、デバッグコンソールで展開可能なオブジェクトとして表示されます。
-
Node.js デバッグのログポイントは、デバッグコンソールにソースの場所を表示するようになりました。
-
ログポイントとブレークポイントは、エディターのガター内のアイコンをクリックするだけで簡単に削除できるため、ログメッセージまたはブレークポイント条件を誤って失う可能性があります。これを防ぐために、VS Code は、ガターをクリックして条件またはログメッセージ付きのブレークポイントを削除しようとすると、プロンプトを表示するようになりました。アラートは、ブレークポイントを削除する代わりに無効にするオプションを提供します。
-
最後に、[新しいブレークポイント] > [ログポイント...] アクションが [デバッグ] メニューに追加されました。
拡張機能の作成
アクティビティバーへの貢献
ますます多くの拡張機能がカスタムビューを作成し、それらの大部分がファイルエクスプローラーに貢献しているため、エクスプローラーが煩雑になっていることに気付きました。スケールアップするために、VS Code はアクティビティバーに貢献する方法を提供するようになりました。例として、アクティビティバーに [テスト] の貢献があります。拡張機能は、独自の貢献を行うことができるようになりました。
テストビューコンテナ
拡張機能がテスト関連ビューを提供するために、新しいテスト貢献がアクティビティバーに提供されるようになりました。このテスト貢献は空でデフォルトでは非表示になっており、ビューが貢献されるたびに表示されます。この例は、mocha
カスタムビューがアクティビティバーの [テスト] アクティビティにどのように貢献しているかを示しています。
"contributes": {
"views": {
"test": [
{
"id": "mocha",
"name": "mocha"
}
]
}
}
カスタムビューコンテナ
拡張機能は、コントリビューションポイント 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"
}
]
}
}
アイコン仕様
-
サイズ:
アイコンは 50x40 の正方形の中央に配置された 24x24 です。 -
色:
アイコンは単色のモノクロカラーを使用する必要があります。 -
形式:
アイコンは SVG 形式にすることをお勧めしますが、任意の画像ファイルタイプを受け入れます。 -
状態:
すべてのアイコンは、次の状態スタイルを継承します。状態 不透明度 デフォルト 60% ホバー 100% アクティブ 100%
コマンドは、登録された各ビューコンテナを表示するために登録されます。上記のパッケージエクスプローラーの例では、[ビュー: パッケージエクスプローラーを表示] になります。コマンド [ビュー: ビューを開く...] を実行すると、リストされているすべてのビューコンテナも見つけることができます。
注: 各ビューにビューコンテナを作成するのではなく、関連するビューを単一のビューコンテナにグループ化することをお勧めします。
ソース管理のカスタムビュー
ソース管理関連のカスタムビューを、アクティビティバーのソース管理ビューコンテナに貢献できるようになりました。エクスプローラーと同様に、これらのビューを表示、非表示、並べ替えることができます。
"contributes": {
"views": {
"scm": [
{
"id": "git-compare",
"name": "Compare"
}
]
}
}
FileSystem Provider
拡張機能は、ftp サーバーなどの任意のソースからファイルとフォルダーを提供できるようになり、VS Code はそれらを通常のファイルと同様に処理します。これを行うには、拡張機能が ftp
などの URI スキームに関連付ける FileSystemProvider
インターフェイスを使用します。そのインターフェイスを使用すると、エディターはファイルとフォルダーを検出および管理 (作成、削除、読み取り、書き込み) できます。
VS Code は、FileSystem Provider によって提供される構成ファイル (settings.json
、tasks.json
、launch.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 が新しい [リファクタリング] および [ソースアクション] コンテキストメニューを有効にするために使用されます。たとえば、[リファクタリング] コンテキストメニューは、CodeActionProvider
が refactor.*
コードアクションを返すことを示す CodeActionProviderMetadata
で登録されている場合にのみ有効になります。
Webview API
Webview API を使用すると、拡張機能は VS Code 内で完全にカスタマイズ可能なビューを作成できます。たとえば、組み込みの Markdown 拡張機能は Webview を使用して Markdown プレビューをレンダリングします。Webview は、VS Code のネイティブ API がサポートする以上の複雑なユーザーインターフェイスを構築するためにも使用できます。
新しい拡張機能作成ページでは、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
は、実行中のすべてのタスクの実行オブジェクトのフェッチをサポートします。executeTask
、taskExecutions
、またはイベントの 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 設定をインポート] コマンドを使用します。
エンジニアリング
スモークテストの安定性の向上
VS Code には常にスモークテストがあり、品質を厳密に管理するために使用されてきました。スモークテストを自動化しましたが、安定させることができませんでした。今回のマイルストーンでは、スモークテストの安定性とパフォーマンスの向上に取り組みました。詳細については、プルリクエスト #47471 を参照してください。
新しいドキュメント
Azure Storage を使用した Web サイトのデプロイチュートリアル
Azure に静的 Web サイトをデプロイするチュートリアルを新たに用意しました。Azure Storage を使用して静的 Web サイトを作成およびデプロイする方法について説明します。
VS Code ブログ記事
VS Code ブログに最近 2 つの記事が投稿されました。
- VS Code での Bing を利用した設定検索 - Bing の自然言語サービスを使用して設定検索を改善します。
- テキストバッファの再実装 - 最適化されたテキストバッファ実装の開発について説明します。
注目すべき変更点
- 10663: 比較ビューでタブを切り替えるときにビューの状態を保持する
- 24634: macOS: ウィンドウの acceptsFirstMouse を有効にする設定を追加する
- 29549: マルチスレッドデバッグはスレッドの停止をサポートする必要がある
- 46785: ファイルがフォーカスされていない場合、"[Finder で表示]" はワークスペースのフォルダーを開く必要がある
- 47274: Node ログポイントがデバッグコンソールに VM ソースとして表示される
- 47478: インストールが不完全な拡張機能を検出する
- 48733: デバッグ中にホバープロバイダーの呼び出しを有効にする debug.enableAllHovers オプションを導入する
- 46414: ターミナルでの Node.js プロセスのデバッグで、デバッグコンソールに出力が表示されなくなった
謝辞
最後になりましたが、VS Code をさらに良くするためにご協力いただいた以下の皆様に、心から感謝申し上げます!
vscode
への貢献
- @alexglazkov9: ウィンドウにフォルダーがない場合、統合ターミナルが開かない PR #46518
- Brett Cannon (@brettcannon): Python でのフォールディングのために # と
region
の間にスペースを許可する PR #46885 - @cody: 結果が見つからなくても検索のクリアを有効にする PR #48324
- @costincaraivan: YAML に region/endregion のフォールドマーカーを追加する。 PR #47722
- David (@ddruker): 統合ターミナルで Escape キーを押して選択をクリアする PR #47042
- Dustin Campbell (@DustinCampbell): 最新のバグ修正で C# TextMate 文法を更新する PR #47520
- Florian Traber (@floriantraber): git 削除ポップアップをモーダルにする PR #47052
- Filip Malinowski (@fmal): 短縮形の宣言ではなく、background-color を明示的に設定する PR #47785
- @ivorhuang: デバッガーがまだ開始されていない場合は、[再起動] でデバッガーを開始する PR #47219
- Josh Goldberg (@JoshuaKGoldberg): ソースの isInsalled のタイプミスを修正する PR #47435
- @KarelCasier: 折りたたみ可能なカーソルを無効にする config パラメーターを追加する (#_37967) PR #38175
- Kenny Le (@kennyle1412): ワークスペースパスに基づいてターミナルを分割する PR #46461
- Laurel Williams (@lwillia): 拡張機能IDのトリプルクリックで余分な情報が選択される問題を修正 PR #47921
- Matt Acosta (@mattacosta): php関数を再生成。 PR #47865
- Dmitry Ignatovich (@mechatroner): 巨大なファイルパラメータをユーザー設定に移動 PR #44988
- Michael Klement (@mklement0): PowerShell Core shebang行をサポートするようにpackage.jsonを更新。 PR #44239
- Niklas Mollenhauer (@nikeee): Hover#rangeをオプションに変更 PR #48004
- Pascal Fong Kye (@pfongkye): フォーマット時の意味のある警告メッセージ PR #47919
- Yemi Bedu @ P&R (@pr-yemibedu): わずかなタイポグラフィの変更 PR #47451
- Pradeep Murugesan (@pradeepmurugesan)
- Benas Svipas (@svipben): ハイコントラスト用の異なるボーダースタイル PR #46956
- vincentLiu (@vincentLiuxiang): SymbolEntryをエクスポートしてQuickOpenを再利用 PR #47544
vscode-extension-samples
への貢献
- Niklas Mollenhauer (@nikeee):
client
フォルダーをlsp-sample
に変更 PR #59
language-server-protocol
への貢献
- Simon Marchi (@simark): TextDocumentSyncKindIncremental -> TextDocumentSyncKind.Increm... に変更 PR #419
- Adelar da Silva Queiróz (@adelarsq): 言語による言語サーバーのソート PR #424
- Geoffrey Gilmore (@ggilmore): 「textDocument/didOpen」の要件を明確化 PR #431
- Junfeng Li (@autozimu): タイプミス。 PR #434
- Niklas Mollenhauer (@nikeee):
undefined
をTextDocuments#get(uri: string)に追加 PR #339 - Caleb Lloyd (@caleblloyd): デスクトップでスティッキーサイドバーがページ外に出る問題を修正 PR #444
- Diego Berrocal (@CestDiego): PR #450
- Remy Suen (@rcjsuen):
vscode-languageserver-node
への貢献
vscode-chrome-debug
への貢献
- @digeff
- Alexey Velikiy (@jonyrock): コード内のフォーマット 'json' を 'javascript' に変更 PR #640
vscode-chrome-debug
への貢献
vscode-node-debug2
への貢献
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。