2016年10月 (バージョン 1.7)
1.7.2 リカバリービルド
本日、TypeScript Server の新バージョン (2.0.10) を含む 1.7.2 をリリースします。サーバーのアップデートにより、JavaScript ユーザー向けに自動型取得 (ATA) 機能がデフォルトで再度有効になります。この機能は JavaScript プロジェクトの IntelliSense を大幅に改善し、TypeScript 宣言ファイル (.d.ts ファイル) を手動でインストールする必要がなくなります。この機能は npmjs サービスへのクエリによって、使用されているモジュールの関連する宣言ファイルを取得します。この機能に関する詳細 (無効にする方法を含む) は、これらのリリースノートの関連セクションに記載されています。
1.7.2 リリースでは、最終的な 1.7 の翻訳も追加され、いくつかの重要な問題が修正されています。
ダウンロード: Windows | Mac | Linux 64-bit: .tar.gz .deb .rpm | Linux 32-bit: .tar.gz .deb .rpm
1.7.1 リカバリービルド
JavaScript の型定義ファイルの自動取得機能を無効にするための 1.7.1 リカバリービルドをリリースします。NPM レジストリへの不要な負荷を避けるために取得を調整する必要があり、TypeScript チームおよび npmjs.org チームと密接に連携しています。この機能は今後のリリースで有効になる予定です。
詳細にご興味がある方は、このイベントと NPM および VS Code の対策について説明したブログ投稿をご覧ください。
ダウンロード: Windows | Mac | Linux 64-bit: .tar.gz .deb .rpm | Linux 32-bit: .tar.gz .deb .rpm
10月リリース概要
Visual Studio Code の10月リリースへようこそ。このバージョンには、気に入っていただけるであろう多数の重要なアップデートがあり、主なハイライトは以下のとおりです。
- 水平レイアウト - エディターを垂直または水平グループに整理できます。
- キーボードショートカットリファレンス - 新しい印刷可能なキーボードショートカット PDF チートシート。
- HTML 内の CSS オートコンプリート - HTML に埋め込まれた CSS の豊富なオートコンプリートを取得できます。
- デバッグヒット数制御 - ブレークポイントのヒット数条件を設定できます。
- 簡素化された Node.js デバッグ - Node.js デバッグセッションを簡単に構成できます。
- Sublime および Atom 用のキーマップ - VS Code でこれらのよく知られたキーボードショートカットを使用できるようになりました。
- 拡張機能の無効化 - 拡張機能をグローバルに、または特定のワークスペースに対してすばやく無効にできます。
- TypeScript および JavaScript の文法改善 - Dark+ テーマで変数および関数参照が色付けされるようになりました。
- 拡張機能パック - 拡張機能の詳細で拡張機能パックの依存関係を直接表示できます。
リリースノートは、VS Codeの重点分野に関連する以下のセクションにまとめられています。さらに詳しい更新は以下の通りです。
- ワークベンチ - いくつかのビューの状態がユーザー設定に保持されるようになりました。クイックオープンから複数のファイルを開くことができます。
- エディター - キーボードショートカットリファレンス、より細かい書式設定制御。
- 言語 - JavaScript と CSS の改善。
- 拡張機能 - 検索を容易にするためのキーマップとフォーマッターの新しいカテゴリ。
- Node.js デバッグ - マルチターゲットデバッグサポート、新しいデバッグ設定。
- 拡張機能開発 - 拡張機能の CHANGELOG.md ファイルのサポート。エディタータブのコンテキストメニューに追加。
Workbench
水平レイアウト
エディターグループのレイアウトを垂直または水平に変更できるようになりました。どちらのレイアウトも以前と同様に機能し、エディターとエディターグループを移動したりサイズ変更したりできます。

現在のワークスペースで水平レイアウトを有効にするには、以下を使用します。
- View メニューの Toggle Editor Group Layout。
- コマンドパレットの Toggle Vertical/Horizontal Editor Group Layout。
- OPEN EDITORS ビューのヘッダーにあるアクション。

また、2つのレイアウトを素早く切り替えるためのキーボードショートカット (⌥⌘0 (Windows, Linux Shift+Alt+0)) もあります。
レイアウトを選択すると、現在のワークスペースに保持され、再起動後も復元されます。
最大化されたパネルの切り替え
パネルのサイズを最大化(全高さの80%)するグローバルワークベンチコマンドを導入しました。パネルが既に最大化されている場合、このコマンドはパネルを以前のサイズに縮小します。これは、多数の出力をすばやく確認する必要がある場合に非常に便利です。このコマンドは現在、どのキーボードショートカットにもバインドされていませんが、簡単に独自のキーバインディングを追加できます。
サイドバーの切り替えとステータスバーの非表示がユーザー設定に保持されるようになりました。
表示メニューの一部のトグルを変更し、状態をブラウザに保持する代わりにユーザー設定ファイルを更新するようにしました。これにより、設定ファイルをコピーすることで、別のマシンでも同じ状態を簡単に復元できるようになります。
表示メニューから変更すると、以下の設定がユーザー設定ファイルで変更されるようになりました。
workbench.sideBar.locationサイドバーの位置を制御 (左または右)workbench.statusBar.visibleステータスバーの表示/非表示を制御
さらに、表示メニューからズームレベルを変更すると、window.zoomLevelに書き込まれるようになりました。
クイックオープンから複数のファイルを開く
Will Prater (@wprater) のおかげで、クイックオープンから右矢印キーを押すだけで複数のファイルを開けるようになりました。これにより、現在選択されているファイルはバックグラウンドで開き、クイックオープンから引き続きファイルを選択できます。
Editor
キーボードショートカットリファレンス
ヘルプ > キーボードショートカットリファレンス を選択すると、VS Code のコマンドキーボードショートカットの印刷可能な PDF リファレンスシートが表示されます。このリファレンスを手元に置いておけば、すぐに VS Code のパワーユーザーになれるでしょう。
macOS 用はこちらです

以下に、3つのプラットフォーム固有バージョンのリンクがあります。
注: 入門ビデオへのメニューコマンドも追加しました (ヘルプ > 入門ビデオ)。
ドキュメントのフォーマット / 選択範囲のフォーマット
エディターに2つの明示的なフォーマットアクションが追加されました: Format Document (⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I)) と Format Selection (⌘K ⌘F (Windows, Linux Ctrl+K Ctrl+F)) です。

また、JavaScript、TypeScript、JSON、HTML のデフォルトのフォーマッターを有効/無効にする新しい設定オプションも追加しました。同じ言語のフォーマットを提供する別の拡張機能がインストールされている場合にこれらのオプションを使用してください。
マーケットプレイスに新しいFormattersカテゴリを追加しました。これにより、ソースコードフォーマット拡張機能を簡単に検索して見つけることができます。

言語
より良い JavaScript IntelliSense
注: この機能は 1.7.1 ビルドでは無効化されていました。今後のリリースで何が提供されるかについては引き続きお読みください。
VS Code は TypeScript 言語サーバーを使用して JavaScript ファイルで IntelliSense を提供します。以前は、jsconfig.json ファイルを作成する必要がありました。また、使用しているすべてのモジュールとライブラリの型定義 (型宣言) ファイルを手動でインストールする必要がありました。これは、特に純粋な JavaScript 開発者にとっては簡単な作業ではありませんでした。
TypeScript チームの友人たちと話し合った結果、「Automatic Type Acquisition (ATA)」が生まれました。ATA は型定義ファイルをほとんど意識させません。ATA が有効になっている TypeScript 言語サーバーは、package.json ファイルを監視し、すべての依存関係の型定義ファイルをファイルシステムのキャッシュに自動的にインストールします。また、よく知られているクライアント側ライブラリへの参照を見つけたときも同様に動作します。その後、IntelliSense を呼び出すと、TypeScript サーバーはキャッシュ内の型定義ファイルを使用します。このキャッシュはすべてのワークスペースで共有されます。jsconfig.json ファイルがない場合、TypeScript サーバーはワークスペース内のすべてが同じプロジェクトに属すると仮定します。
これはとても素晴らしい機能なので、できるだけ早く皆様にお届けしたいと考えました。ATA の統合はまだ完璧ではありませんが、デフォルトで有効にすることにしました。問題が発生した場合は、ユーザー設定で typescript.disableAutomaticTypeAcquisition を true に設定することで無効にできます。
ATA を使用する際に注意すべき点がいくつかあります
- ATA は後方互換性があります。
typingsフォルダがある場合、またはnpmを使用して型定義をインストールした場合、それらは自動的に取得された型定義ファイルよりも優先されます。 - ATA は、利用可能な最新バージョンの型定義ファイルを取得します。ライブラリやモジュールの古いバージョンに依存している場合、ライブラリやモジュールが公開する実際の API と型定義ファイルに記述されている API の間に不一致が生じる可能性があります。特定のバージョンの型定義ファイルが必要な場合は、
npm install @types/<module name>@x.y.zで手動でインストールできます。 - npm モジュールのバンドルされている型定義ファイルの数が増えています。つまり、型定義を取得する唯一の方法はモジュールをインストールすることです。ATA は npm モジュールをインストールしないため、自分でインストールする必要があります。
package.jsonファイルの依存関係に変更が加えられてから、対応する型定義ファイルが取得され IntelliSense で利用できるようになるまでに短い遅延があります。- 実装では、ATA 機能はまず、既知の宣言ファイルのリストを含むモジュールを npmjs に照会します。プロジェクトにこれらのモジュールのいずれかが含まれている場合、その宣言ファイルがプルダウンされ、グローバルキャッシュに追加されます。
HTML 内の CSS 補完
HTML に埋め込まれた CSS スタイルに対して、コード補完、検証、色注釈などの CSS 言語機能が利用できるようになりました。

TypeScript および JavaScript の文法改善
TypeScript と JavaScript のシンタックスハイライトは、TypeScript チームが作成したTypeScript textmate 文法に基づいています。最近数ヶ月で、この文法は完全に書き換えられました。
主な目的は、報告された問題の可能な限り多くに対処することでした。さらに、Atom 文法などの他の人気のある JavaScript 文法に近いスコープを生成することで、既存のカラーテーマでより良いエクスペリエンスを提供しつつ、JavaScript React 構文のような機能も引き続きサポートすることを目指しました。
この取り組みの結果、変数や関数参照の報告要求を含む100以上の問題が修正されました。新しいスコープを活用することにし、デフォルトのダークおよびライトプラスのテーマで変数や関数参照も色付けするようになりました。気に入っていただけると幸いです!
注: 最新の文法を最新の TypeScript および JavaScript 文法拡張機能を使用してテストにご協力いただいていた場合は、その拡張機能をアンインストールしても構いません。
Linter 拡張機能
vscode-eslint と vscode-tslint 拡張機能は、保存時に修正可能な警告を自動的に修正する設定を提供するようになりました。
{
"eslint.autoFixOnSave": true,
"tslint.autoFixOnSave": true
}
注: files.autoSave が afterDelay に設定されている場合、この設定は無視されます。
拡張機能
キーマップカテゴリ
キーボードショートカットは生産性にとって不可欠であり、キーボード習慣を変えるのは大変なことです。これを支援するため、2つの新しい拡張機能を追加し、マーケットプレイスに新しいカテゴリ Keymaps を導入しました。その目的は、新しいキーボードショートカットを覚える必要をなくすことで、エディター間の切り替えを容易にすることです。
Atom と Sublime Text 用の拡張機能を作成しました。最も人気のあるキーボードショートカットをいくつか見つけましたが、不足しているものについてご意見をお待ちしています。もしキーボードショートカットを見落としていた場合は、リポジトリで問題を開くか、PR を作成してください。

さらに、keybindings 貢献ポイントを使用して独自のキーマップ拡張機能を作成し、Keymaps カテゴリに追加できます。
フォーマッターカテゴリ
ソースコードのフォーマット機能を提供する拡張機能は多数存在します。最も人気のあるフォーマッターの中には、10万回以上インストールされているものもあります! フォーマッターを簡単に見つけられるように、マーケットプレイスに「Formatters」という新しいカテゴリを追加しました。マーケットプレイスで検索して、今日からFormatterをインストールしましょう。
私たちのお気に入りの中からいくつかご紹介します。
拡張機能の無効化
多くの場合、複数のワークスペースがあり、それらのワークスペースをサポートするために様々な拡張機能がインストールされています。ほとんどの場合、これらの拡張機能は単一のワークスペース専用であり、他のワークスペースでは必要ありません。例えば、JavaScript と Go 言語のワークスペースがある場合、Go ワークスペースでは JavaScript のリンティング拡張機能は不要であり、その逆も同様です。このリリースでは、ワークスペースに必要だと思う拡張機能のみを実行し、残りを無効にすることができます。また、拡張機能をアンインストールしたくないが実行したくもない場合は、VS Code アプリケーション全体に対して拡張機能を無効にすることもできます。

VS Code から数クリックで、すべての拡張機能を無効または有効にすることもできます。

拡張機能パック
前回のリリースで、他の拡張機能に依存する拡張機能である「拡張機能パック」を導入しました。今回のリリースでは、拡張機能エディターに新しいタブを追加し、パックのインストール時にインストールされるこれらの依存関係を表示するようにしました。

拡張機能パックをアンインストールすると、参照されているすべての依存拡張機能もアンインストールされます。
Node デバッグ
起動設定の簡素化
Node.js のデバッグ設定を可能な限り簡単にするために、初期の「launch.json」エクスペリエンスを簡素化しようとしました。
- 必須だがめったに変更されない属性は、最も一般的なシナリオでは変更する必要がないことをより明確にするために、灰色でレンダリングされるようになりました。
- 使用頻度の低い属性(良好なデフォルト値を持つ)は、初期設定から削除され、「ノイズ」を減らしました。これらの属性は、IntelliSense を使用して簡単に発見できます。
- コメントとオンラインドキュメントへのリンクが追加されました。
- オンラインデバッグのドキュメントが書き直され、改善されました。

注: VS Code の組み込み Node.js デバッガーのみを変更できるため、他のデバッグ拡張機能の作成者が同様の(必要に応じて)対応を行うことに依存しています。
ヒット数条件付きブレークポイント
VS Code は、ブレークポイントに「ヒット数条件」を設定することをサポートするようになりました(以前に導入された「式条件」に加えて)。「ヒット数条件」は、ブレークポイントが実行を「中断」するまでに何回ヒットする必要があるかを制御します。

「ヒット数条件」が尊重されるかどうか、および式の正確な構文は、使用されているデバッガー拡張機能に依存します。このマイルストーンでは、組み込みの Node.js デバッガーのみがヒット数をサポートしています(ただし、他のデバッガー拡張機能もすぐに追随することを期待しています)。
Node.js デバッガーがサポートするヒット数構文は、整数、または演算子 <、<=、=、>、>=、% のいずれかの後に続く整数です。
いくつかの例
>1010回ヒットした後、常に停止します<3最初の2回のみ停止します10>=10と同じです%22回に1回停止します
複数ターゲットデバッグ
10月リリースには、「マルチターゲットデバッグ」の初期実装が含まれています。これは、VS Code の単一インスタンス (および単一プロジェクトフォルダ) 内で複数のデバッグセッションを同時にアクティブにできる機能です。
この機能は、以下のシナリオで役立ちます。
- 拡張機能とそのデバッグアダプターおよび/または言語サーバーを同時にデバッグします。
- 単一のプロジェクトフォルダからクライアントとサーバーをデバッグします。
- クラスタリングされたプログラムをデバッグします。
注: このマイルストーンでは、マルチターゲットデバッグの内部抽象化を適切にすることに重点が置かれており、UI でこれをどのように表示するかについては重点が置かれていません。したがって、マルチターゲットデバッグの UI とその設定方法は非常に実験的であり、次のマイルストーンで間違いなく変更されます。
「マルチターゲットデバッグ」を有効にするには、composite 型の新しい起動設定を作成し、配列型属性 configurationNames を追加します。この属性の下に、並行して起動する他の起動設定の名前をリストします。
composite 設定を起動すると、個々のセッションが CALL STACK ビューのトップレベル要素として表示されます。アクション(フローティングデバッグウィジェット内のすべてのアクションなど)は、常に CALL STACK ビューで現在選択されているセッションに対して実行されます。

デバッグ設定
以下の新しい設定を導入しました。
debug.allowBreakpointsEverywhere- 任意のファイルにブレークポイントを設定できるようにします (明示的に登録されているファイルだけでなく)。これは、既存のデバッガー (たとえば Node.js デバッガー) を使用して新しい (トランスパイルされた) 言語をデバッグする場合に便利です。debug.openExplorerOnEnd- デバッグセッションの終了時にエクスプローラーを自動的に開くかどうかを制御します。
拡張機能の作成
破壊的変更: MarkedString[] セマンティクス
MarkedString | MarkedString[] を返す API 関連の実装のセマンティクスが変更されました。各 MarkedString は、水平線で他のものから視覚的に区切られます。HoverProvider と Decoration の両方の API がこの影響を受けます。
変更ログ
拡張機能の CHANGELOG.md を拡張機能の詳細ビューで直接表示できるようになりました。
拡張機能の作者は、既存の変更履歴を拡張機能の README.md から独立した CHANGELOG.md ファイルに移動することをお勧めします。README.md と同様に、CHANGELOG.md が拡張機能のワークスペースのルートに配置されている場合、vsce 公開ツールによって自動的に含まれます。
エディタータブのコンテキストメニューにメニューエントリを提供
拡張機能がメニューエントリを提供できる追加の場所、エディタータブのコンテキストメニュー(タブが無効な場合も機能します)を追加しました。ここに貢献するための関連メニューパスは editor/title/context です。
例
"commands": [{
"command": "doSomething",
"title": "Do Something"
}],
"menus": {
"editor/title/context": [
{
"command": "doSomething"
}
]
}
onDidChangeVisibleTextEditors イベント
表示されているエディターのリストが変更されるたびに発生するonDidChangeVisibleTextEditorsイベントを追加しました。
今すぐ更新: 最新の vscode.d.ts を使用する
これまでと同様に、拡張機能 API の最新バージョンは vscode.d.ts ファイルで定義されています。
注: 拡張機能を API バージョン 1.7.0 以降を使用するように更新する場合、vscode-node-module (^1.0.3) の最新バージョンを使用し、TypeScript 2.0 を使用していることを確認してください。
既存の拡張機能を最新の vscode モジュールに移行する方法については、こちらをお読みください。
新コマンド
| キー | コマンド | コマンド ID |
|---|---|---|
| ⌥⌘0 (Windows, Linux Shift+Alt+0) | エディターグループレイアウトの切り替え | workbench.action.toggleEditorGroupLayout |
未割り当て |
最大化されたパネルの切り替え | workbench.action.toggleMaximizedPanel |
| フォーマット | ||
| ⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I) | ドキュメントのフォーマット | editor.action.formatDocument |
| ⌘K ⌘F (Windows, Linux Ctrl+K Ctrl+F) | 選択範囲のフォーマット | editor.action.formatSelection |
| 統合ターミナル | ||
| ⌘Home (Windows Ctrl+Home, Linux Shift+Home) | 先頭までスクロール | workbench.action.terminal.scrollToTop |
| ⌘End (Windows Ctrl+End, Linux Shift+End) | 末尾までスクロール | workbench.action.terminal.scrollToBottom |
注目すべき変更
- 929: Windows 10: ウィンドウにフォーカスが当たらずタスクバーが点滅する
- 2814: Windows: Explorer で表示機能が Explorer ウィンドウを vscode の前に表示しなくなった
- 6466: cmder 使用時に [Open in Command Prompt] が cwd を開かない
- 10210: 例外メッセージなどのデバッグ要素の値をコピーできない
- 11334 & 13229: ターミナルの IME サポートの改善
- 11431: RPM パッケージに PATH にショートカットがない
- 12036: タッチスクリーンシステムで使用すると VS Code が非常にラグい
- 12260: ターミナルでこのコマンドを処理するための十分なストレージが利用できません
- 12969: HTML: スクリプトタグ内のコメントがスクリプト言語に影響されなくなった
- 13554: 統合ターミナルが時々一部の行を折り返す
- 14102: デフォルト設定をデフォルトで折りたたみ、エディタの状態を記憶する
13919 のため、Windows のファイル拡張子の関連付けが壊れていました。VS Code で開くには、ファイル拡張子の関連付けをリセットする必要があります。
これらはクローズされたバグであり、これらは1.7アップデートでクローズされた機能リクエストです。
拡張機能への貢献
私たちのチームは、多数の VS Code 拡張機能を維持または貢献しています。特に注目すべきは以下のとおりです。
謝辞
最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!
- @barakd: Git quick open は無効なブランチ名を修正すべき PR #12194
- Christian Alexander (@ChristianAlexander)
- Cliff Koh (@cliffkoh): スペルミスと一貫性の問題を修正 PR #14078
- Sergey Shakhnazarov (@daserge): 終了時の「write EPIPE process.send」エラーを回避 PR #13774
- xzper (@f111fei): #13670 を修正 PR #13739
- @greams: --list-extensions 引数のオプションを追加 PR #13131
- Kei Son (@heycalmdown): 現在のウィンドウのインジケータを追加 PR #13113
- Huachao Mao (@Huachao): ハンドルバーのブロックコメント記号を更新 PR #12271
- Michael Hudson (@Huddo121): IAction.isAction() のテストカバレッジを向上 PR #13992
- Yuki Ueda (@Ikuyadeu): ini #13648 を修正 PR #13923
- Jeong Woo Chang (@inspiredjw): プロパティ 'uri' of null エラーの修正 PR #13263
- Jess Chadwick (@jchadwick)
- Kai Wood (@kaiwood): 空の選択をコピーしない設定を追加 PR #13678
- Krzysztof Cieślak (@Krzysztof-Cieslak)
- Michael (@michaelchiche): 型定義のタイポを修正 PR #13159
- Michael Chou (@MikeChou): Linux 起動スクリプトでシンボリックリンクを再帰的にたどる PR #14046
- Denis Malinochkin (@mrmlnc)
- Renfred Harper (@renfredxh): 読み取り専用エディターの行ハイライトを有効にする PR #14022
- Robin Munn (@rmunn): LF の不正な ANSI エスケープコードを削除 PR #13345
- Sirisak Lueangsaksri (@spywhere): インストール済み拡張機能リストをソート PR #13399
- Tereza Tomcova (@the-ress)
- IPC 送信前に AllowSetForegroundWindow を呼び出す PR #13255
- ノードから渡される文字列をシステムコードページではなく UTF-8 を使用して変換する Issue #7727
- コマンドラインを作成する際に Windows の慣例に従う Issue #8429
- Ivan Samoylenko (@The-Smallest): project.json のタイポ PR #13461
- Will Prater (@wprater)
- Toru Nagashima (@mysticatea): ゼロ位置のサポートを修正 PR-ESLint #153
- Dario Fuzinato (@fussinatto): readme のタイポを修正 PR-ESLint #157
- Morton Fox (@mortonfox): ライセンスリンクを修正 PR-LSP #74
- Asad Saeeduddin (@masaeedu): プロトコルドキュメントのタイポを修正 PR-LSP #85
- Anton Kosyakov (@akosyakov)
- Microsoft/language-server-protocol #87 を修正 PR-LSP #90
- 問題 #72 と #78 を修正 PR-LSP #91
- Richard Lasjunies (@rlasjunies): TSLint エンジンが提供する修正のサポート PR #96
- Robert Stoll (@robstoll): 正規表現パターンを修正、違反ルールが不足していた PR #107