【Visual Studio Code】リリースノート 1.11 を日本語意訳しました

皆さん、こんにちは。戸倉彩です。

皆さんはソフトウェアのリリースノートを読んでいますか？
「リリースノート」とは、新しいソフトウェアをリリース(公開)する時に提供される機能強化された内容や不具合に関する修正履歴、利用上の注意点などの情報がまとめられている文章のことです。

今回は、Visual Studio Code version1.11リリースノートを日本語に意訳しました。参考にしていただければ幸いです。
※過去の分と合わせて [github/ayatokura] (https://github.com/ayatokura/JP-VSCode-Docs/tree/master/release-notes)にも公開中です。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/0dded1d3-3fa7-1556-a320-b0383f52bab4.png" width="500">

---
Order: 20
TOCTitle: March 2017
PageTitle: Visual Studio Code March 2017
MetaDescription: See what is new in the Visual Studio Code March 2017 Release (1.11)
MetaSocialImage: 1_11_release-highlights.png
---
# March 2017 (version 1.11)

## 1.11.2 アップデート (1.11.2 Update)

VS Code 1.11 へ翻訳を加え、いくつかの[問題](https://github.com/Microsoft/vscode/milestone/41?closed=1)に対応するために 1.11.2 アップデートをリリースしました。

Downloads: [Windows](https://vscode-update.azurewebsites.net/1.11.2/win32/stable) | [Mac](https://vscode-update.azurewebsites.net/1.11.2/darwin/stable) | Linux 64-bit: [.tar.gz](https://vscode-update.azurewebsites.net/1.11.2/linux-x64/stable) [.deb](https://vscode-update.azurewebsites.net/1.11.2/linux-deb-x64/stable) [.rpm](https://vscode-update.azurewebsites.net/1.11.2/linux-rpm-x64/stable) | Linux 32-bit: [.tar.gz](https://vscode-update.azurewebsites.net/1.11.2/linux-ia32/stable) [.deb](https://vscode-update.azurewebsites.net/1.11.2/linux-deb-ia32/stable) [.rpm](https://vscode-update.azurewebsites.net/1.11.2/linux-rpm-ia32/stable)

## 1.11.1 アップデート
## 1.11.1 Update

1.11.1 アップデートにより、これらの[問題](https://github.com/Microsoft/vscode/milestone/40?closed=1)を修正しました。

### トラブルシューティング
### Troubleshooting

ユーザーから、新しい[Git 統合](＃git-extension-enabled)と[キーボードレイアウトのサポート](#improved-keyboard-layout-support)における問題が報告されています。
もし、以前の動作に戻す必要がある場合は、次の回避策を適用できます:

* Git 統合 - **`SCM: Disable Preview SCM`** コマンドを実行してください
* キーボードレイアウト - `"keyboard.dispatch": "keyCode"` の設定を使用してください

## 3 月版のリリースサマリー
## March Release Summary

Visual Studio Code の 2017 年 3 月リリースへようこそ。 このリリースではいくつかの重要な更新があり、ハイライトは次のとおりです:

* **[Preview: ワークベンチのテーマ](#preview-workbench-theming)** - VS Code ワークベンチのカラー設定をカスタマイズ可能にする仕組みに取り組んでいます
* **[キーボードショートカットエディタ](#keyboard-shortcuts-editor)** - 好みのショートカットにコマンドを簡単に再割り当て可能な新しいキーボードショートカットエディタ
* **[高速な検索](#text-search-improvements)** - より高速なテキスト検索と `.gitignore` ファイルとの連携
* **[パネルの最大化とリストア](#maximize-and-restore-the-panel-size)** - パネル(出力、ターミナル、デバッグコンソール)をフルサイズですばやく開く
* **[ドラッグ & ドロップによるコピー](#drag-and-drop-improvements)** - エディタ上でのドラッグアンドドロップ時、コピーまたはカットを選択可能に
* **[ターミナルリンクの検証](#integrated-terminal)** - 統合ターミナルにおけるリンクの検証と新しいカスタマイズ設定
* **[TypeScript CodeLens の実装](#implementation-codelens-for-typescript)** - CodeLens ウィンドウによりインタフェースまたは抽象クラスの実装を参照可能に
* **[新しいデバッグメニュー](#debug-menu)** - メインメニューから直接デバッグコマンドを実行可能に
* **[非同期呼び出しスタック](#async-call-stacks)** - 非同期 JavaScript 呼び出しスタックをデバッガに表示可能に
* **[ソース管理 API の公開](#source-control)** - ソース管理 API が公開となり、新しい SCM プロバイダーが利用可能に

VS Code の重要な更新に関連するアップデート情報は、リリースノートの次のセクションに配置されています。その他のアップデートは、次のとおりです:

* **[エディタ](#editor)** -  新しい Git SCM プロバイダーをデフォルトで有効に、ファイルエンコーディングの自動検出、デフォルトの言語モード設定
* **[ワークベンチ](#workbench)** -  ビュー間の素早い移動とリサイズ、同一ファイルの複数オープンを制御
* **[言語](#languages)** -  TypeScript 2.2.2、単純化された TypeScript サーバログ収集、Objective-C++ のサポート
* **[デバッグ](#debugging)** -  カラムブレークポイントの改善、追加の例外情報
* **[Node.js デバッグ](#node-debugging)** -  コールスタックは非同期フレームを表示可能に、ロードされたスクリプトにアクセス可能に
* **[タスク](#tasks)** - カスタムタスクとプロブレムマッチャーを拡張機能でも提供可能に
* **[拡張機能のオーサリング](#extension-authoring)** -デバッグ拡張機能の改良、拡張機能サイズの拡大

>**ヒント:** できるだけ早く新しい機能を試してみたいですか？ それならば、毎晩アップデートされる Insiders [build](https://code.visualstudio.com/insiders) をご利用ください。常に最新のアップデートが利用可能になり、最新の機能をいち早く試してみることが可能です

## ワークベンチ
## Workbench

### プレビュー: Workbench テーマ
### Preview: Workbench theming

現在、ワークベンチテーマに関する取り組みの最初の結果が見えてきています。組み込みのテーマである **Abyss**, **Quiet Light**, **Solarized Dark** は、新しいカラーテーマを利用する仕組みに変更されています。

 ![Abyss theme with more colors](https://code.visualstudio.com/images/1_11_abyss-theme.png)

まだ、いくつかのギャップがあり、新しいテーマファイルフォーマットとして確定させていません。そのため、ドキュメントの提供はなく、まだ新しいテーマフォーマットを使用しないようにテーマ作成者に呼びかけています。しかしながら、新しい配色を試してみる事も可能であり、`workbench.experimental.colorCustomizations` 設定を使って、現在選択されているテーマをカスタマイズできます。

 ![color customization](https://code.visualstudio.com/images/1_11_color-settings.gif)

### キーボードショートカットエディタ
### Keyboard shortcuts editor

本リリースの VS Code では、新しい**キーボードショートカット**エディタを採用し、リッチで簡単なキーボードショートカット編集操作を提供します。コマンドを見つけて、キーバインドを簡単に変更/削除/リセットすることができますが、最も重要なのは、以前の JSON ベースのキーバインドエディタによる、キーをキーボードレイアウトへマッピングするのではなく、キーボードレイアウトに応じてキーバイドを確認できるという点です。キーバインドを入力するダイアログでは、キーボードレイアウトに適した正しいキーバインドと希望のキーバインドが割り当てられます。

![Keyboard Shortcuts](https://code.visualstudio.com/images/1_11_keyboard-shortcuts.gif)

**注意：** キーバインドの `when` 句のコンテキストを編集するなど、より高度なカスタマイズを行う場合は、以前と同様に `keybindings.json` ファイルを開いて編集する必要があります。

### キーボードレイアウトサポートの強化
### Improved keyboard layout support

Windows と macOS では、VS Code 実行中にキーボードレイアウトが切り替わったことを検出し、すべてのキーボードショートカットを適切に更新します。

Linux と macOS では、キーボードショートカットのディスパッチ方法を新しい [`KeyboardEvent.code`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code) を使用するよう、大幅に変更されました。この新しいディスパッチロジックにより、米国以外の標準的なキーボードレイアウトにおけるデフォルトのキーボードショートカットが変更されます。残念ながら、このようなプラットフォームでは `KeyboardEvent.keyCode` の不確定性のため、正確に変更されたキーバインディングを確認してリストを提示することができない場合があります。ほとんどの場合、影響を及ぼすのは、次のビルトイン・アクションに限定されていると考えています:

* `Toggle Integrated Terminal` (統合端末の切り替え)
* `Create New Integrated Terminal` (新しい統合端末の作成)
* `Zoom in`, `Zoom out` (拡大, 縮小)
* `Indent Line`, `Outdent Line` (行のインデント, 行のインデントの削除)
* `Fold`, `Unfold` (折りたたみ, 折りたたみの展開)
* `Split Editor` (エディタの分割)
* `Toggle Line Comment` (行コメント切り替え)

[開発チームの wiki](https://github.com/Microsoft/vscode/wiki/Keybindings) または[計画されている項目](https://github.com/Microsoft/vscode/issues/17521)で詳細を確認することがでいます。

> 注意: macOS や Linux で新しい `KeyboardEvent.code` に基づくディスパッチで問題が発生した場合は、`"keyboard.dispatch": "keyCode"` を設定することで、強制的に以前の実装である `KeyboardEvent.keyCode` にディスパッチさせるよう変更することができます

### テキスト検索の改善
### Text search improvements

検索は Andrew Gallant([@BurntSushi](https://github.com/BurntSushi)) の優れたツール [ripgrep](https://github.com/BurntSushi/ripgrep) によって行われるようになり、以前よりはるかに高速になるはずです。
問題が発生し、以前の検索手法に戻す必要がある場合は、オプション `"search.useRipgrep": false` を設定してください。

ripgrep ベースの検索は、`.gitignore` ファイルに記載されるファイルなどを対象外とすることも可能です。検索ビューで新しい **Use Ignore Files** ボタンをクリックするか、常に有効にするには `"search.useIgnoreFilesByDefault": true` (デフォルトは無効)を設定してください。

![gitignore](https://code.visualstudio.com/images/1_11_search-viewlet.png)

その隣にある、新しく追加された歯車アイコンでは、`files.exclude` と `search.exclude` 設定で指定されたパターンを検索時に無視するかどうか切り替えることが可能です。

### パネルサイズの最大化と復元
### Maximize and restore the panel size

パネルのタイトルエリアに、最大化と復元ボタンを新たに追加しました:

![Panel](https://code.visualstudio.com/images/1_11_panel.gif)

### ファイルを削除してもエディタを開いたままにする新しい設定の追加
### New setting to keep editor open even when file is deleted

ファイルが削除されるか、何らかのプロセスによって名前を変更された場合に、ファイルを開いているエディターを自動的に閉じるかどうかを制御できる新しい設定 `workbench.editor.closeOnFileDelete` を追加しました。この設定を `false` に設定することで、エディターは開かれたままになります。アプリケーション内で削除すると、必ずエディターは閉じられ、ダーティファイルは閉じられることがなく、データは保存されないことに注意してください。

![Deleted File](https://code.visualstudio.com/images/1_11_file-deleted.png)

**注意**: VS Code のエクスプローラからファイルが削除された場合は、エディタは閉じられます。

### 2 つのエディタグループを結合
### Join editors of two groups

新しいコマンド (`workbench.action.joinTwoGroups`) が追加され、2 つのエディタグループで開かれているエディタを左側の 1 つのグループに統合することが可能になります。これにより、開いているエディタグループの数をすばやく減らすことが可能となり、エディタ内で開かれているエディタを失うことはありません。

### ビュー間の移動
### Navigate between views

表示されているビュー間を移動するための新しいコマンドが追加されました。たとえば、フォーカスが最初のエディタグループ内にある場合、`workbench.action.navigateLeft` は、サイドバーに移動します。同様に、`workbench.action.navigateDown` はフォーカスをパネルに移動します。(default のキーバインドなし)

### キーボードによるビューのリサイズ
### Resize a view with keyboard

フォーカスを持つビューのサイズをキーボードで変更するための新しいコマンドが追加されました。`workbench.action.increaseViewSize` と `workbench.action.decreaseViewSize` を使ってビューサイズを増分で変更してください。

### エディタが開かれた場合にそれを表示する新しい設定
### New setting to reveal editor if opened

新しい設定 `workbench.editor.revealIfOpen` を有効にすると、任意の表示グループが開かれた場合に、そこにエディターを表示するかどうかを制御します。無効にした場合、エディターは現在のアクティブなエディターグループに優先して開かれます。有効にした場合は、現在のアクティブなエディターグループにもう一度開くのではなく、既に開いているエディターが表示され、ファイルが既に開かれている場合に別のグループの同じファイルを開くことを防ぐことができます。

この設定に関連する一般的なシナリオは、ファイルピッカー(クイックオープン)です: デフォルトでは、現在アクティブなエディタグループ内にファイルが開きます。この設定を変更すると、すでにファイルが開いている場合には、他のグループで同一のファイルを開いても複数のエディタで開かれることはありません。
特定のグループ内や現在アクティブなグループの横に強制的にエディターを開いた場合などに、この設定が無視される場合もあることにご注意ください。

**注**: 複数のグループで同じエディタを開く方法はあります(たとえば、分割エディタのアクションをクリックするなど)

## エディタ
## Editor

### ドラッグアンドドロップの改善
### Drag and drop improvements

選択したテキストを、ドラッグアンドドロップで移動するのではなく、コピーすることが可能になりました。ユーザーが利用しているプラットフォームで提供される操作方法と同じとなり、macOSでは、`Option` キーを押しながら、Windowsでは `kbstyle(Ctrl)` キーを押しながら、Linuxでは `kbstyle(Alt)`キーを押しながらドラッグアンドドロップを行うことでコピーされます。

テキストのコピーの有無にかかわらずドラッグアンドドロップ操作により、マウスポインタのスタイルが変更されます。コピーの場合は `+` (プラス)画像が表示されます。

 ![dnd](https://code.visualstudio.com/images/1_11_dnd.gif)

### Git 拡張機能がデフォルトで有効に
### Git extension enabled

[新しい Git ソースコントロール拡張機能](https://code.visualstudio.com/updates/v1_10#_contributable-scm-providers)がデフォルトで有効になりました。この Git の統合は、サードパーティの SCM プロバイダと同じ[拡張機能ポイント](＃source-control)を介して行われます。また、引き続き Git 拡張機能の開発に取り組んでいます。以前のバージョンに戻したい場合は、**SCM: Disable Preview SCM** コマンドを実行することで元に戻すことができます。

**Activity Bar** アイコンを見れば、Git拡張機能が有効になっているかどうかをすぐに知ることができます。新しい SCM プロバイダの統合では、Git アイコンの代わりにマージアイコンが表示されるようになります:

![scm provider icon](https://code.visualstudio.com/images/1_11_scm-provider-icon.png)

### 出現箇所の強調表示をオフにする
### Turn off occurrences highlight

新しいオプションである `editor.occurrencesHighlight` に `false` をセットすることで、カーソルが置かれた単語や選択された単語の強調表示をオフにすることが可能です。

### ファイルエンコーディングの自動推測

ファイルエンコーディングの自動推測をサポートしました。この機能を利用するには、新しい `files.autoGuessEncoding` 設定で `true` (defulat: false) にする必要があります。有効にした場合は、ファイル内容からエンコーディングを推測し、適切なエンコーディングが検出された場合はその情報を適用します。

**注**: エンコーディングが誤って検出されるか、まったく検出されない場合があります。ワークスペースのエンコーディングを完全に制御するには、代わりに `files.encoding` 設定を使用してください。

さらに、ファイルのエンコーディング・ピッカーを選択してエンコーディングを変更する際に、(もしあれば)そのリストの先頭に推測されたエンコーディングが表示されます。ファイルの内容は正しく表示されないが、ファイル内容からエンコーディングを検出できる場合に簡単に適切なエンコーディングを選択することができます：

 ![encoding](https://code.visualstudio.com/images/1_11_encoding.png)

**注**: エンコーディングは推測であり、間違っている可能性があります。ファイルの内容からエンコーディングを判定する正確な方法は 100％ ありません。唯一の例外としては、UTF-8 または UTF-16 ファイルに BOM (バイトオーダーマーク)を使用することです。

### ファジーマッチングの強化 (More Fuzzy Matching)

フィルタリングとサジェスチョンのスコアリングを改善しました。プリフィックスとキャメルケースのマッチングに加えて、連続した部分文字列マッチングがサポートされました。

![dnd](https://code.visualstudio.com/images/1_11_fuzzy-score.png)

### コメント入力における Intellisens
### IntelliSense in comments

コメントや文字列の入力時には、IntelliSense の機能は必要とされません。`kbstyle(Ctrl + Space)` で補完を要求することはできますが、"24x7 IntelliSense" とも呼ばれるクイックサジェストは、コメントや文字列の入力時には無効(デフォルト)になっています。`editor.quickSuggestions` 設定により、サジェストの振る舞いをユーザーのニーズに合わせて、より詳細に制御することが可能です:

```json
"editor.quickSuggestions": {
    "comments": false, // <- コメントに 24x7 IntelliSense は利用されませんが、
    "strings": true, // 文字列やソースファイルの他の部分には利用されます
    "other": true,
}
```

### 新しいファイルのデフォルト言語モードを設定する
### Set the default language for new files

新しい設定 `files.defaultLanguage` を使用して、Untitled や未保存の新しいファイルへ言語モードを設定することができます。この設定を利用することで、同じファイルタイプで作業することが多い場合に、新しいファイルを開くたびに言語を選択する必要がなくなります。

## 統合ターミナル
## Integrated Terminal

### リンクの改善
### Link improvements

VS Code 1.10 で導入されたターミナル内でのリンク機能は、このバージョンでさらに改善されました。挙動はエディタと同様になり、プラットフォームに応じて、`kbstyle(Ctrl)` や `kbstyle(Cmd)` が必要になります。

![Terminal link hints](https://code.visualstudio.com/images/1_11_terminal-link-hint.png)

また、すべてのリンクが検証されるため、実際に正しいリンクとして判断されたものだけがユーザーのアクションに反応するリンクとして生成されます。

### Window における起動エクスペリエンスの向上
### Improved start experience on Windows

`SHELL` 環境変数を持つ macOS や Linux とは異なり、Windows は本当に信頼できる代替手段を持っていません。`COMSPEC` がありますが、残念ながら、デフォルトでは常にコマンドプロンプトの 32ビット 版にデフォルト設定されており、まれにしか変更されません。この問題を回避するために、Windows 上で端末が最初に起動されたときに、マシン上で検出された一連のシェルから選択できるようにするメッセージを導入しました。

![Terminal shell selector](https://code.visualstudio.com/images/1_11_terminal-shell-selector.png)

### ワークスペースシェルのカスタム設定
### Custom workspace shell settings

悪意を持って潜在的に悪用される可能性があるため、VS Code v1.9 からワークスペース設定でターミナルシェルを設定することを許可していませんでした。これを再度許可するようにしましたが、設定を選択する前に、各ワークスペースに対して明示的なユーザーオプトインを要求します。

![Terminal workspace settings warning](https://code.visualstudio.com/images/1_11_terminal-workspace-warn.png)

### アクティブなターミナルセッションがある場合に終了の確認ダイアログを表示
### Warn when closing window with active terminal sessions

アクティブなターミナルセッションがある場合に終了の確認ダイアログを表示するための新しい設定 `terminal.integrated.confirmOnExit` が追加されました。これはデフォルトで無効になっています。

### 水平方向のサイズ変更によりデータが破棄されなくなりました
### Resizing horizontally no longer discards data

[Lucian Buzzo](https://github.com/LucianBuzzo) の [upstream PR](https://github.com/sourcelair/xterm.js/pull/616) により、ターミナルプロンプトを水平方向にリサイズしてもデータが破棄されなくなりました。

### タスク
## Tasks

今回のリリースでは、拡張機能からのコントリビューションのためのタスクの拡張に取りかかりました。これにより、拡張機能の `package.json` ファイルを介して `problemMatchers` と `pattern` を提供することができます。これらのコントリビューションは、出力パネルランナーと(まだデフォルトではない)新しい端末ランナーの両方で機能します。次の例は、gcc コンパイラの `problemMatchers` を拡張機能に提供する例です:

```ts
{
  "contributes": {
    "problemMatchers": [
      {
          // the name of the problem matcher
          "name": "gcc",
          // The problem is owned by the cpp language service.
          "owner": "cpp",
          // The file name for reported problems is relative to the opened folder.
          "fileLocation": ["relative", "${workspaceRoot}"],
          // The actual pattern to match problems in the output.
          "pattern": {
              // The regular expression. Example to match: helloWorld.c:5:3: warning: implicit declaration of function ‘prinft’ [-Wimplicit-function-declaration]
              "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
              // The first match group matches the file name which is relative.
              "file": 1,
              // The second match group matches the line on which the problem occurred.
              "line": 2,
              // The third match group matches the column at which the problem occurred.
              "column": 3,
              // The fourth match group matches the problem's severity. Can be ignored. Then all problems are captured as errors.
              "severity": 4,
              // The fifth match group matches the message.
              "message": 5
          }
      }
    ]
  }
}
```

この `problemMatchers` は、名前参照: `$gcc` を介して tasks.json で使用できるようになりました。例は次のようになります:


```ts
{
    "version": "0.1.0",
    "command": "gcc",
    "args": ["-Wall", "helloWorld.c", "-o", "helloWorld"],
    "problemMatcher": "$gcc"
}
```

また、拡張機能がプログラムの `Run Task` クイックピックリストにタスクを提供できるようにしました。拡張機能が特定のビルドシステムのサポートを追加し、対応するタスクを提供したいというユースケースでは、VS Code が開きます。例として、`package.json` で定義されたスクリプトをタスクとして VS Code にプログラムで提供できる npm 拡張があります。

次の制限に注意してください:

 - 提供されたタスクは、新しい端末ランナーでのみ実行できます。端末ランナーを有効にするには、 `"version": "2.0.0"` を `tasks.json` ファイルに追加してください。
 - タスク API は現在、提案段階となります。

API の使用例については、VS Code の [gulp extension](https://github.com/Microsoft/vscode/tree/master/extensions/gulp)、または、提案されているAPI [ファイル](https://github.com/Microsoft/vscode/blob/master/src/vs/vscode.proposed.d.ts)を参照してください。


## 言語サポート
## Languages

### TypeScript 2.2.2

VS Code 1.11 には、TypeScript 2.2.2 が付属しています。このリリースには、いくつかの重要なバグ修正とパフォーマンス改善が含まれています。変更点に関する完全なリストは[こちら](https://github.com/Microsoft/TypeScript/milestone/40?closed=1)を参照してください。

### TypeScript における CodeLens 実装
### Implementation CodeLens for TypeScript

TypeScript コード内に実装されるインターフェイスおよび抽象クラスの実装数を示す情報が TypeScript CodeLens に追加されました。

![TypeScript Implementations CodeLens](https://code.visualstudio.com/images/1_11_ts-implementations-lens.png)

CodeLens をクリックすることで、すべての実装のリストが表示されます。

![TypeScript Implementations CodeLens](https://code.visualstudio.com/images/1_11_ts-implementations-lens-expanded.png)

この機能はデフォルトで無効になっています。有効にするには、TypeScript 2.2.1 以降が必要となり、 `"typescript.implementationsCodeLens.enabled": true` を設定に追加してください。

### シンプルな TypeScript サーバーのログ収集
### Simplified TypeScript server log collection

VS Code の TypeScript と JavaScript 言語サポートを強化する TypeScript サーバーからのログ収集を簡単にするための新しい `"typescript.tsserver.log"` 設定を追加しました。これらのログは、JS および TS 言語サポートの問題をデバッグしたり、Issue として調査を行う場合などに情報として簡単に提供するために使用できます。

新しいロギング機能は、TypeScript 2.2.2以降でサポートされています。 `"typescript.tsserver.log": "verbose"` を設定し、VS Code をリロードしてファイルへのロギングを有効にします。エディタでログファイルを開くには `"TypeScript: Open TS Server log"` コマンドを実行します。

### Object C++ サポートの改善
### Improved support for Objective C++

Objective-C++ を扱うための `objective-cpp` 言語モードが新たに追加されました。以前のリリースでは `.mm` ファイルは、通常の C++ として扱われていました。このリリースでは、Objective-C++ ファイルにおける構文の強調表示も改善されています。

### デバッグ
## Debugging

### デバッグメニュー
### Debug Menu

一般的に利用するデバッグコマンドを含むトップレベルのデバッグメニューを追加しました。

![Debug Menu](https://code.visualstudio.com/images/1_11_debug-menu.png)

**注**: デバッガ拡張機能を検索するための拡張機能ビューを表示する新しいコマンド(**Install Additional Debuggers...**) を追加しました

### カラムブレークポイントの改善
### Column Breakpoints Improvements

余白マージンから呼び出すコンテキストメニューから複数のブレークポイントを直接編集することが可能になりました。これとは別に、行に複数のブレークポイントがある問題が修正されました。

![Editable Column Breakpoints](https://code.visualstudio.com/images/1_11_column-breakpoints.png)

### より詳細な例外の取り扱い
### More detailed exception experience

エディタの "Peek UI" が thrown された例外の追加情報を表示するように拡張されました。たとえば、VS Code に組み込まれた Node.js デバッガではスタックトレースが表示されます:

![Exception Peek UI show Stack Trace](https://code.visualstudio.com/images/1_11_exception-peekui.png)

この機能は、デバッガ拡張機能への採択努力を必要とするため、すぐに他のデバッガ拡張機能にこの機能が実装されることは想定しないでください。

## Node のデバッグ
## Node Debugging

### "inspector" プロトコルへの移行
### Transitioning to the "inspector" protocol

2 月のマイルストーンでは、2 つの Node.js デバッガ('node' と 'node2')を単一の Node.js デバッグエクスペリエンスから利用できるように、使用するプロトコルを制御する新しい起動設定属性 `protocol`を導入しました。 [2 月版リリースノートのセクション](https://code.visualstudio.com/updates/v1_10#_node2-transitioning)を参照してください。
このマイルストーンでは、`protocol` のデフォルト値を `legacy` から `auto` に変更されています。したがって、起動構成設定で `protocol` を明示的に指定しなかった場合は、VS Code における Node.js デバッグはターゲットのランタイムにより、自動的に使用されるプロトコルの検出が試みられます。新しい `inspector` プロトコルへ積極的に切り替えることはしたくないため、Node.js 8.x バージョン以降に対してのみ使用されます。

この自動プロトコル切り替えで問題が発生した場合は、`protocol` を `legacy` に明示的に設定することで古い動作に戻すことが可能です。

### 非同期呼び出しスタック
### Async call stacks

Node.js または Chrome で非同期 JavaScript をデバッグする際に、非同期呼び出しにおける現在の呼び出しスタックにつながった非同期フレームを表示するようになりました。これは、現在のところ、`"protocol": "inspector"` を介して[inspector プロトコル](https://code.visualstudio.com/updates/v1_10#_node2-transitioning)でデバッグする場合にのみサポートされています。また、起動構成設定で `"showAsyncStacks": false` を設定することで無効にすることができます。

例:

このコードスニペットに含まれる、`fetchData` は、プロミスを返す非同期関数です。非同期スタックがなければ、Promise が解決される前に発生した呼び出しは表示されません:

![Async Frames in Call Stack](https://code.visualstudio.com/images/1_11_async-stack-before.png)

しかし、非同期呼び出しスタックでは、非同期呼び出しを生成した完全な呼び出しスタックを見ることができます:

![Async Frames in Call Stack](https://code.visualstudio.com/images/1_11_async-stack-after.png)

### 読み込まれたスクリプトへのアクセス
### Access Loaded Scripts

JavaScript ランタイムの読み込まれたスクリプトにアクセスできるようになりました。これは、ワークスペースの一部ではないスクリプトにブレークポイントを設定する必要があるため、通常の VS Code ファイルブラウジングで簡単に見つけて開くことができない場合に便利です。これが必要となる典型的なシナリオは、リモートデバッグセッションです: リモートの Node.js プログラムにアタッチしますが、ローカルに利用可能なコードはありません。この機能の強化を後押した他のシナリオについては、issue [＃20355](https://github.com/Microsoft/vscode/issues/20355) を参照してください。

**Debug: Open Loaded Script** アクション (`kb(extension.node-debug.pickLoadedScript)`)は、デバッグセッションがアクティブな間にロードされたスクリプトにアクセスできるようにします。クイックピックでは、開くスクリプトをフィルタリングして選択することができます。スクリプトは、その後、ブレークポイントを設定できる読み取り専用エディタにロードされます。これらのブレークポイントはデバッグセッション間で記憶されますが、デバッグセッションが実行されている間のみスクリプトの内容にアクセスすることが可能す。

![Opening Loaded Script with Quick Pick](https://code.visualstudio.com/images/1_11_loaded-scripts.gif)

## 拡張機能のオーサリング
## Extension Authoring

### ソース管理 (Source Control)

安定したソース管理 API をリリースすることができたため、VS Code に統合されたソース管理拡張機能を作成可能になりました。この機能の全容については、[Source Control in VS Code](https://code.visualstudio.com/docs/extensionAPI/api-scm) のドキュメントページで学ぶことができます。

一部の拡張機能の開発者は、既にこの API を採用し始めています:

- [Visual Studio Team Services Extension for VS Code](https://github.com/Microsoft/vsts-vscode)
- [vscode-perforce](https://github.com/stef-levesque/vscode-perforce)

### API の改善
### API Improvements

* ドキュメントが使用する行末のシーケンス (`crlf` または `lf`) は、`TextDocument＃eol` で公開されます。また、`TextEdit` はドキュメントの EOL シーケンスを変更することが可能です。

* 新しい補完アイテムの種類を追加しました： `Constant`,` Struct`, そして `EnumMember` は既存の ` Enum`を補完します。

### デバッグ拡張機能
### Debug Extensions

* **VS Code で ExceptionInfoRequest が使用されます**
* **ExceptionInfoRequest now used by VS Code**

デバッグアダプタが偽の `supportsExceptionInfoRequest` 特性を返す場合、VS Code は例外の追加情報を得るために `ExceptionInfoRequest` を使います。現在、`exceptionId`, ` exception`,  `breakMode`, ` details.stackTrace` の属性は、VS Code の例外 Peek UI に表示されます。

* **デバッグアダプタのサーバーモード**
* **Server mode for debug adapters**

VS Code は、常にサーバーモードでデバッグアダプタを実行することをサポートしていました。しかしこれは、本番環境での実行ではなく、デバッグアダプタの開発でのみサポートされていました。今回のリリースから、"サーバーモード" をデバッグアダプタの公式な "実行モード" としてサポートします。この機能の使用方法の詳細は、元の[機能要求](https://github.com/Microsoft/vscode/issues/22080#issuecomment-286068943)で確認してください。

* **`StoppedEvent.reason` の意味を変更**
* **Changed semantics of `StoppedEvent.reason`**

`StoppedEvent` の `reason` 属性の意味が少し変更されました。以前は reason 属性が UI に表示されていました(その結果、異なる言語に翻訳する必要がありました)。これにより、VS Code が `reason` 属性を堅牢な方法で解釈することが不可能になります。このリリースから、VS Code は UI で "停止" 理由を表示する必要がある場合に新しい属性 `description` を使用し、理由を解釈するために `reason` 属性を使用します。`description` がなければ、VS Code は、以前の振る舞いに戻ります。

* **`StackFrame` 型の新しい属性 `presentationHint`**
* **New attribute `presentationHint` for `StackFrame` type**

新しいオプション属性 `presentationHint` が `StackFrame` 型に追加されました。この型は、クライアントが UI でスタックフレームをレンダリングする方法を制御するために使用できます。

* **例外設定 API の使用例**
* **Usage example for exception configuration API**

VS Code [Mono debugger extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.mono-debug)は、例外キャッチポイントを構成するための `SetExceptionBreakpointsRequest` で、最近導入された `exceptionOptions` 属性を使用するように拡張されています。

![Configuring Exceptions](https://code.visualstudio.com/images/1_11_config-exceptions.gif)

[実装](https://github.com/Microsoft/vscode-mono-debug/blob/master/src/typescript/extension.ts#L90)は、汎用 VS Code デバッガ UI で提供されていない特定の機能を追加するために、拡張機能のデバッグアダプタプロトコル(DAP = debug adapter protocol)を使用するサンプルとしても役立ちます。

### 拡張機能のサイズ上限を増やす
### Increase Extension Size Limit

Visual Studio Marketplace とのコラボレーションにおいて、Marketplace にアップロードできる拡張機能のサイズ制限を 20MB から 100MB に拡大しました。これを利用するには Visual Studio Code Extension Manager を `vsce@1.20.0` 以降に更新する必要があります。

## その他
## Miscellaneous

### スタートアップのプロファイリング
### Startup profiling for everyone

VS Code の起動をプロファイルするための新しいコマンドラインオプションが追加されました。この `code --prof-startup` のように VS Code を実行すると、メインプロセスとレンダラープロセス用のプロファイルが作成されます。これらのプロファイルはホームディレクトリに保存され、Issue などで共有することができ、それをお勧めします。社外環境でのパフォーマンスは当社のマシンと大きく異なり、より多くの洞察を得ることができるため、VS Code の改善に役立ちます。

### 近日中に予定: コミュニテイによるローカライゼーションサポート
### Coming Soon: Support for community localization

現在、VS Code は、[9 言語](https://code.visualstudio.com/docs/getstarted/locales): フランス語、イタリア語、ドイツ語、スペイン語、ロシア語、繁体字および簡体字中国語、日本語および韓国語をサポートしています。3 月のリリースでは、現在の内部で実施されているローカリゼーションプロセスを [Transifex](https://www.transifex.com/) と呼ばれるオープンな翻訳プラットフォームでサポートするように移行しました。

この仕組みを利用することにより、作業が完了したら、[バグを提出](https://github.com/Microsoft/vscode/issues/5405)するのではなく、コミュニティからの翻訳結果を直接受け入れることができるようになります。この仕組みにより、コミュニティで VS Code を[ポルトガル語](https://github.com/Microsoft/vscode/issues/15077)や[ポーランド語](https://github.com/Microsoft/vscode/issues/14241)にローカライズすることができるようになります。
すでに、チェコ語、オランダ語、ハンガリー語、ポーランド語、ポルトガル語(ブラジルとポルトガル語)、スウェーデン語、トルコ語の 8 言語の翻訳が開始されています。

自身の母国語にローカライズされた高品質な VS Code を提供することに情熱を持てるならば、ぜひ、私たちを助けてください！ [Visual Studio Code Community Localization Project](https://github.com/Microsoft/Localization/wiki/Visual-Studio-Code-Community-Localization-Project) で詳細を確認できます。

## 新しいコマンド
## New Commands

Key|Command|Command id
---|-------|----------
`kb(workbench.action.openGlobalSettings)`| ユーザー設定を開く (Open User Settings) |`openGlobalSettings`
`kb(workbench.action.revertAndCloseActiveEditor)`| 元に戻してエディターを閉じる (Revert and Close Active Editor) |`workbench.action.revertAndCloseActiveEditor`
`kb(workbench.action.joinTwoGroups)`|2 つのグループのエディタを統合 (Join Editors of Two Groups)|`workbench.action.joinTwoGroups`
`kb(workbench.action.navigateUp)`| 上のビュー部分に移動 (Move to the View Part Above) |`workbench.action.navigateUp`
`kb(workbench.action.navigateDown)`| 下のビュー部分に移動 (Move to the View Part Below) |`workbench.action.navigateDown`
`kb(workbench.action.navigateLeft)`| 左のビュー部分に移動 (Move to the View Part to the Left) |`workbench.action.navigateLeft`
`kb(workbench.action.navigateRight)`| 右のビュー部分に移動 (Move to the View Part to the Right)|`workbench.action.navigateRight`
`kb(workbench.action.increaseViewSize)`| 現在のビューのサイズの拡大 (Increase View Size) |`workbench.action.increaseViewSize`
`kb(workbench.action.decreaseViewSize)`| 現在のビューのサイズの縮小 (Decrease View Size) |`workbench.action.decreaseViewSize`

## 注目すべき変更
## Notable Changes

* [12077](https://github.com/Microsoft/vscode/issues/12077): File does not reload in editor when quickly changed externally after making modifications
* [13001](https://github.com/Microsoft/vscode/issues/13001): Keep scroll position stable when closing a tab
* [13665](https://github.com/Microsoft/vscode/issues/13665): Improve VS Code when working with network drives
* [19841](https://github.com/Microsoft/vscode/issues/19841): Node debug Step Over/Into hangs in 1.9
* [20074](https://github.com/Microsoft/vscode/issues/20074): VS Code default language extensions override custom language extensions
* [21948](https://github.com/Microsoft/vscode/issues/21948): Auto save no longer works
* [22900](https://github.com/Microsoft/vscode/issues/22900): CPU usage even when idle (due to cursor rendering)
* [22971](https://github.com/Microsoft/vscode/issues/22971): Run the terminal as a login shell by default on macOS
* [22997](https://github.com/Microsoft/vscode/issues/22997): Execute Node.js application in external terminal throws error
* [23494](https://github.com/Microsoft/vscode/issues/23494): Debugger does not work with electron v1.6.x

[クローズされたバグ一覧](https://github.com/Microsoft/vscode/issues?q=is%3Aissue+label%3Abug+milestone%3A%22March+2017%22+is%3Aclosed)と、1.11 アップデートにて[クローズされた機能のリクエスト一覧](https://github.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22March+2017%22+is%3Aclosed+label%3Afeature-request)です。

## 拡張機能への貢献
## Contributions to Extensions

私たちのチームは、いくつかの VS Code 拡張機能の提供とメンテナンスに貢献しています。注目すべき拡張機能は：

* [Go](https://marketplace.visualstudio.com/items?itemName=lukehoban.Go)
* [TSLint](https://marketplace.visualstudio.com/items?itemName=eg2.tslint)
* [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
* [Docker](https://marketplace.visualstudio.com/items?itemName=PeterJausovec.vscode-docker)
* [Debugger for Chrome](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome)
* [Mono Debug](https://marketplace.visualstudio.com/items?itemName=ms-vscode.mono-debug)
* [VSCodeVim](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim)

## Thank You

最後になりましたが、VS Code をより良いものにするために協力してくれた次の方々に多大なる感謝を込めて:

`vscode` への貢献:

* [David Wilson (@daviwil)](https://github.com/daviwil):  Add new "files.defaultLanguage" configuration setting. [PR #23220](https://github.com/Microsoft/vscode/pull/23220)
* [Mackenzie McClane (@Aarilight)](https://github.com/Aarilight):  Add typescript and javascript format.insertSpaceBeforeFunctionParenthesis [PR #21712](https://github.com/Microsoft/vscode/pull/21712)
* [Anand Dyavanapalli (@adyavanapalli)](https://github.com/adyavanapalli):  TypeScript should use double quotes for string in import snippet. [PR #22255](https://github.com/Microsoft/vscode/pull/22255)
* [Adrian Perez (@aperezdc)](https://github.com/aperezdc):  Make more descriptive appdata summary field [PR #22965](https://github.com/Microsoft/vscode/pull/22965)
* [Christopher Leidigh (@cleidigh)](https://github.com/cleidigh):  Feature/part resize: Add key bindings to resize focused view [PR #22861](https://github.com/Microsoft/vscode/pull/22861)
(https://github.com/Microsoft/vscode/pull/10676)
* [@cristianhosu](https://github.com/cristianhosu):  Feature #22768 [PR #23049](https://github.com/Microsoft/vscode/pull/23049)
* [Drazen Dotlic (@ddotlic)](https://github.com/ddotlic):  Add option to always reuse open editors [PR #21815](https://github.com/Microsoft/vscode/pull/21815)
* [Dustin Campbell (@DustinCampbell)](https://github.com/DustinCampbell):  Update to latest C# TextMate grammar [PR #23179](https://github.com/Microsoft/vscode/pull/23179)
* [Felipe Sateler (@fsateler)](https://github.com/fsateler):  Add gnupg and apt to depends [PR #20988](https://github.com/Microsoft/vscode/pull/20988)
* [Cody Hoover (@hoovercj)](https://github.com/hoovercj)
  *  quickopen and quickoutline will now show the field icon for field symbols [PR #21318](https://github.com/Microsoft/vscode/pull/21318)
  *  Add backwards search to preferences view [PR #22556](https://github.com/Microsoft/vscode/pull/22556)
  *  Follow up to PR #22021 to respond to feedback [PR #22178](https://github.com/Microsoft/vscode/pull/22178)
  *  Add ability to open untitled document with initial content [PR #22021](https://github.com/Microsoft/vscode/pull/22021)
* [Anton Vildyaev (@hun1ahpu)](https://github.com/hun1ahpu):  Add 'Focus to terminal X' action [PR #20862](https://github.com/Microsoft/vscode/pull/20862)
* [Ong Heng Le (@initialshl)](https://github.com/initialshl):  Implement join editors command [PR #22389](https://github.com/Microsoft/vscode/pull/22389)
* [katainaka (@katainaka0503)](https://github.com/katainaka0503)
  *  Refactor to fix compile error with noImplicitAny [PR #22460](https://github.com/Microsoft/vscode/pull/22460)
  *  Auto guess encoding [PR #21416](https://github.com/Microsoft/vscode/pull/21416)
  *  Refactor to use Promise [PR #21582](https://github.com/Microsoft/vscode/pull/21582)
* [Phawin Khongkhasawan (@lifez)](https://github.com/lifez):  Provide "terminal.integrated.enableBold" setting connected to #22422 [PR #22465](https://github.com/Microsoft/vscode/pull/22465)
* [Mark Pearce (@markwpearce)](https://github.com/markwpearce):  Checks integrated terminal output for more types of relative paths [PR #22602](https://github.com/Microsoft/vscode/pull/22602)
* [Soo Jae Hwang (@misoguy)](https://github.com/misoguy)
  *  Add Command for navigating around visible editors/viewlets/repl [PR #22005](https://github.com/Microsoft/vscode/pull/22005)
  *  Add API to force quit with the ability to revert changes silently [PR #21593](https://github.com/Microsoft/vscode/pull/21593)
* [Paul Daniel Faria (@Nashenas88)](https://github.com/Nashenas88):  Fix borderRadius for decorations [PR #22186](https://github.com/Microsoft/vscode/pull/22186)
* [Nick Snyder (@nicksnyder)](https://github.com/nicksnyder)
  *  Remove duplicate calls to URI.toString() [PR #21283](https://github.com/Microsoft/vscode/pull/21283)
  *  Avoid request id collisions in pendingRPCReplies [PR #21406](https://github.com/Microsoft/vscode/pull/21406)
* [Jonas Luebbers (@nonphoto)](https://github.com/nonphoto):  Make overview ruler border less obtrusive [PR #21459](https://github.com/Microsoft/vscode/pull/21459)
* [Richard Min (@richardmin)](https://github.com/richardmin):  Support `...` terminating Yaml FrontMatter [PR #23195](https://github.com/Microsoft/vscode/pull/23195)
* [@rpjproost](https://github.com/rpjproost):  Fixed keybinding json for backslash [PR #21969](https://github.com/Microsoft/vscode/pull/21969)
* [Naveen Kumar (@timbanaveen)](https://github.com/timbanaveen):  Adding check of full folder name instead of suffix [PR #22532](https://github.com/Microsoft/vscode/pull/22532)
* [Peter V (@vp2177)](https://github.com/vp2177):  Exclude CVS directories [PR #22024](https://github.com/Microsoft/vscode/pull/22024)
* [@vsobotka](https://github.com/vsobotka):  Fixed typo - fourth instead if forth [PR #22967](https://github.com/Microsoft/vscode/pull/22967)
* [Wissam Abirached (@wabirached)](https://github.com/wabirached):  Correctly duplicate files with numbers in filename [PR #22907](https://github.com/Microsoft/vscode/pull/22907)
* [Nicolas Ramz (@warpdesign)](https://github.com/warpdesign):  Fixed typo [PR #22921](https://github.com/Microsoft/vscode/pull/22921)
* [Wim Spaargaren (@wimspaargaren)](https://github.com/wimspaargaren):  proposal to fix issue 21600 [PR #21859](https://github.com/Microsoft/vscode/pull/21859)

`vscode-chrome-debug-core` への貢献:

* [Manoj Patel (@nojek)](https://github.com/nojvek)
  * Support source mapping of stack traces in the Debug Console (and exception widget) [PR #190](https://github.com/Microsoft/vscode-chrome-debug-core/pull/190)
  * Nicer error messages when a source map fails to parse [PR #188](https://github.com/Microsoft/vscode-chrome-debug-core/pull/188)
* [Daniel Lebu (@dlebu)](https://github.com/dlebu): Allowing upper case drive letters when handling script URLs. [PR #176](https://github.com/Microsoft/vscode-chrome-debug-core/pull/176)

`language-server-protocol` への貢献:

* [Lucian Wischik (@ljw1004)](https://github.com/ljw1004): DidChange might only have new text [PR #168](https://github.com/Microsoft/language-server-protocol/pull/198)

`vscode-languageserver-node` への貢献:

* [Guillaume Martres (@smarter)](https://github.com/smarter): client: Pass all arguments to ExecuteCommandRequest [PR #172](https://github.com/Microsoft/vscode-languageserver-node/pull/172)
* [Hyo Jeong (@asiandrummer)](https://github.com/asiandrummer): export SocketMessage reader/writer [PR #185](https://github.com/Microsoft/vscode-languageserver-node/pull/185)

`vscode-generator-code` への貢献:

* [@rakkarage](https://github.com/rakkarage):  Update vsc-extension-quickstart.md [PR #67](https://github.com/Microsoft/vscode-generator-code/pull/67)
* [John Lianoglou (@prometheas)](https://github.com/prometheas):  Making 'Folder name' prompt optional [PR #70](https://github.com/Microsoft/vscode-generator-code/pull/70)

<!-- In-product release notes styles.  Do not modify without also modifying regex in gulpfile.common.js -->
<a id="scroll-to-top" role="button" aria-label="scroll to top" href="#"><span class="icon"></span></a>
<link rel="stylesheet" type="text/css" href="css/inproduct_releasenotes.css"/>
## Have a nice Geek Life♪
※Twitterで最新情報発信中 @ayatokura