この文章は引用したものです : https://github.com/ayatokura/JP-VSCode-Docs/blob/master/release-notes/v1_8_ja.md
1.8.1 Recovery Build
年末までにいくつかの重要な問題 に取り組むために、1.8.1 リカバリビルドをリリースしました。早期に問題発見いただきありがとうございました。
- Fixed scrolling in large minified files (#17208)
- Resolved an issue with Copy command in certain contexts (#17232)
- Fixed an issue with saving files on a mounted drive (#17345)
- Fixed Quick Outline in Default Keyboard Shortcuts (#17376)
- Removed ‘Focus Default Settings’ command from Command Palette (#17468)
VS Code は自動的に 1.8.1 にアップデートされますが、以下のリンクから直接リリースをダウンロードすることも可能です:
Downloads: Windows | Mac | Linux 64-bit: .tar.gz .deb .rpm | Linux 32-bit: .tar.gz .deb .rpm
11 月リリース版の概要 (November Release Summary)
Visual Studio Code 11 月リリース版へようこそ。 このリリースではいくつかの重要な更新があり、ハイライトは次のとおりです:
- Hot Exit - 未保存のファイル変更を失うことが無くなりました
- Focus on Your Code - 禅モード、設定可能なアクティビティバーなどの機能強化
- Settings improvements - VS Code を設定するための新しい設定画面
- New Selection menu - エディタ上での選択コマンドをメニューに配置
- Faster Text Search - プロジェクトの規模に関わらず、より高速にコードを検索可能に
- Snippet authoring - コードスニペットで変数を使用可能に
- Keyboard shortcuts - コマンド引数を使用したカスタムショートカットを作成可能、人気のキーマップ拡張機能をメニューからアクセス可能に
- JavaScript IntelliSense in HTML - HTML ファイルで JavaScript 言語をフルサポート可能に
- UI for Multitarget Debugging - 複数のデバッグセッションを実行可能に
- TypeScript 2.1 - 最新の TypeScript アップデート採用による言語サポートの改善
- JavaScript - Object Rest/Spread をサポート
VS Code の重要な更新に関連するアップデート情報は、リリースノートの次のセクションに配置されています。その他のアップデートは、次のとおりです:
- Workbench - 新しいビューピッカー、統合ターミナルの改良、macOS ではウィンドウタイトルへテーマを反映可能に
- Settings - 設定項目の検索、値編集の簡易化、キーマップ拡張機能の検索
- Editor - Git クローン、新しいエディタ設定、Sublime Text 機能との互換性
- Languages - CSS の apply ルール、Markdown プレビューのカスタマイズ、TSLint と ESLint 拡張機能をアップデート
- Debugging - IntelliSense により、スニペットとして簡単に launch configurations を追加可能に
- Node.js Debugging - Just My Code、ファイルから環境変数を読み込み、sourcemap のヘルプ
- Extension Authoring - 厳密な Null チェック、スニペット補完、デバッガ拡張機能の更新
ワークベンチ (Workbench)
Hot Exit
VS Code は、終了時に未保存のファイルの変更も記憶するようになり、これは Hot Exit
と呼ばれる機能があらたに追加されました。Hot Exit が有効になるのは次のような時です:
- すべてのウィンドウ (インスタンス) が閉じられたとき
- Mac 上で、アプリケーションを終了したとき
- ウィンドウの再読込 (Reload Windows) これで、拡張機能をリロードするための保存が不要になります!
Hot Exit 後に VS Code を次に起動すると、バックアップされたすべてのワークスペースおよびファイルがリストアされます。 Hot Exitの有効/無効 (files.hotExit
設定) にかかわらず、VS Code がクラッシュした場合にファイルを復元する機能もあります。Hot Exit の実装や背景および将来の予定などについては、ブログの記事を参照してください。
ビュー・ピッカー (View Picker)
ビュー、パネル、出力チャンネル、およびターミナルを表示するための新しいピッカーが追加され、隠れているビューを簡単に開くことができるようになりました。Open View コマンドを使用するか、Quick Open 上で view
を入力したあとに space
(単語ではなく空白のスペース)を入力することで開くことができます。
Windows と Mac では、Ctrl+Q を押すとピッカーが表示されます。 Linux では、必要に応じてキーバインドを再割り当てする必要があります(Linux 上で Ctrl+Q がアプリケーションの終了などに割り当てられている可能性がある場合) Ctrl+Q を押し、Ctrl キーを押したままにし、Q を押すと、リストから項目にジャンプし、キーを離した後に選択したビューを開くことができます。
統合ターミナルの改善 (Terminal improvements)
統合ターミナルにいくつかの改良が行われました:
- Windows におけるターミナル上でのコピーと貼り付けのキーバインディングは、それぞれ Ctrl+C(テキストが選択されている場合)および Ctrl+V に変更されました
- スクロールアップさせている際、ターミナルが出力を受け取っても最下部にスクロールしなくなりました
- ターミナルがフォーカスを持っている場合、Cmd+K によりターミナルをクリアできるようになりました
- 新しい
terminal.integrated.scrollback
設定により、ターミナル上でスクロールバック可能な行数を変更することが可能になりました
Mac: タイトルバーにもテーマを反映 (Mac: Custom themed title)
macOS 版の VS Code では、テーマのカラーをタイトルバーにも反映できるように、独自のカスタムタイトルバーを内部的に生成するようになりました。この動作は、新しいwindow.titleBarStyle
設定で変更することができ、デフォルトは custom
が設定されていますが、値を native
に設定し再起動することで従来と同じタイトルバーに変更することができます。
コードに集中するための機能 (Focus on your code)
このリリースでは、コーディングに集中するために役立つ機能を追加しました。
禅モード (Zen Mode)
あるユーザーからのリクエストにより、VS Code に 禅 (Zen) モード
を追加しました。 Zen モードでは、エディタ以外のすべての UI (アクティビティバー、ステータスバー、サイドバー、パネルを表示しない) を隠し、フルスクリーン表示にすることで、コーディングに集中することができます。Zen モードへの切り替えは、表示 メニュー、コマンドパレット、または ⌘K Z (Windows, Linux Ctrl+K Z) ショートカットを使用することで可能になります。
設定可能なアクティビティバー (Configurable Activity Bar)
左側に配置されるアクティビティバーは、VS Code で提供されているすべてのビューへアクセスするためのホーム(ファイルエクスプローラ、検索、デバッグなど)となり、多くのユーザーは、ビューを素早く切り替えたり、ビューに関する情報を表示したりするために使用しています。 (例えば、Git ビューアイコンには push で送信されるファイル数がバッジとして表示されます)
今回のリリースでは、アクティビティバーにいくつかの新機能を追加しました。まず、アイコンをドラッグアンドドロップすることでビューを並べ替えることが可能になり、並び順は、VS Code の再起後も保持されます。更に、アクティビティバーそのものを隠したり、特定のビューに提供されるコンテキストメニューを使用したりして、アクティビティバー上からビューアイコンを削除することも可能です。
アクティビティバーから削除されたビューが開かれるとアクティビティバー上にビューアイコンが表示されますが、別のビューに切り替えるとそのアイコンの表示はされなくなります。これは、アプリケーションドックのような、一般的な機能の動作に似ており、アプリケーションを停止するとアプリケーションアイコンが表示されなくなり、アプリケーションを常に表示または固定解除するようピン留めする機能に似ています。
また、VS Code のウィンドウサイズが極端に小さくなり、すべてのビューアイコンを表示するスペースを確保できないような場合は、新しいオーバーフローメニューが自動で追加され、表示できないビューはドロップダウンに表示されるようになります:
アクティビティバーを非表示にする (Hide the Activity Bar)
新しく追加された workbench.activityBar.visible
設定を使用することで、アクティビティバーを隠すことができます。
また、View メニューと Command Palette に関連するメニューとコマンド id workbench.action.toggleActivityBarVisibility
を追加しました。
タブ上の閉じるボタンを非表示にするための新しい設定 (New setting to hide Close buttons on Tabs)
タブ上の閉じるボタンを非表示にする workbench.editor.showTabCloseButton
設定を新たに追加しました。 ダーティー・インジケータ (まだ、ファイルに保存されていないエディタを現すインジケータ)は同一の場所に表示されますが、使用中のタブをマウス操作により誤って閉じることはなくなります。
設定 (Settings)
VS Code のカスタマイズモデルは、settings.json
ファイルを編集する形式となり、非常に簡単な操作で動作を設定することが可能です。 ユーザーが使用可能な設定を見つけるために、Default Settings を別のエディタで表示し、グローバルまたはワークスペース設定をもう一つのエディタで開き、IntelliSense による設定の追加を提供してきました。しかしながら、ユーザーからのフィードバックとユーザビリティの調査から、このような設定方法には、まだ、問題を抱えていることがわかりました。今回のリリースでは、設定を変更するために、設定項目を探す方法の可能性とユーザーエクスペリエンスを向上させるためのいくつかの調査を行った結果、次のような改善が実施しました。
設定の検索 (Search settings)
Default Settings を表示している大きな理由の 1 つとして、ユーザーが設定を検索および検出できるようにすることです。これを容易にするために、Default Settings エディタには、簡単に設定を検索できる大きな検索バーを追加しました。検索条件に一致する設定の表示および強調表示に加えて、一致しない設定は除外されます。これにより、設定項目をすばやく簡単に見つけることが可能になります。
設定グループ (Settings groups)
Default Settings グループの視覚的表現を強化し、設定のナビゲーションをより使いやすくしました。 また、最も一般的に使用される設定を表示する新しいグループを導入しています。
クイックエディット (Quick Edit)
Default Settings と settings.json
エディタ内で、設定をすばやくコピーまたは更新するのに役立つアクションを導入しました。あらかじめ選択可能な値を持っている項目については、値をキーボードから入力することなく選択で入力することが可能です。
設定エディタのグループ化 (One Side by Side Settings editor)
紹介が最後になりましたが、これも重要な改善になりますが、Default Settings と settings.json
エディタをサイドエディタでグループ化することで、2 つの設定用エディタを個別に管理しなければならなかった問題に対処しました。
エディタには様々な改善が続けられて行きます…次のリリース計画に注目してくださいね
キーボードショートカット (Keyboard shortcuts)
キーバインディングコマンドの引数 (Key binding command arguments)
keybindings.json
設定ファイルにて、引数を持つコマンドを呼び出すためのサポートが追加されました。これは、特定のファイルやフォルダに対して同じ操作を繰り返し実行する場合などに便利な機能となります。カスタムキーボードショートカットを追加するだけで、必要な操作を正確に実行できます。
以下は、Enter の入力によりテキスト Hello World
を表示するように、既存の Enter キーを上書きする例です:
|
"command": "type"
により、Enter キーが入力されると {"text": "Hello World"}
を最初の引数として受け取り、”Hello World” をエディタに出力する動作となります。
推奨されるキーマップ拡張 (Recommended keymap extensions)
一般的なエディタや IDE で採用されているフルセットのキーバインディングを VS Code でも利用可能になるキーマップ拡張機能リストを表示するコマンドを追加しました。
リストを表示するには、File > Preferences > Keymap Extensions を使用します。
エディタ (Editor)
選択範囲メニューの追加 (Selection menu)
メニューバーに “選択範囲” メニューを追加し、良く利用される選択操作と複数選択操作に容易にアクセスできるようにしました。
テキスト検索のパフォーマンス向上 (Text search performance)
複数のプロセスで検索コードを並行して実行することにより、フルテキスト検索のパフォーマンスを向上させました。 特に大規模なワークスペースでは、検索がより高速に完了するはずです。
Git clone
Git リポジトリをクローンし、VS Code で開くための新しいコマンドが追加されました。Command Palette から、Git:Clone
を検索することで実行することができます。
新しく追加されたエディタ設定 (New editor settings)
window.showFullPath
- ウィンドウタイトルに、ワークスペースの相対パスではなく、開いているファイルのフルパスを表示しますfiles.insertFinalNewline
- ファイル保存時、ファイルの最後に改行を自動的に追加します
editor.renderLineHighlight
設定に新しいオプションが追加されました:
line
- エディタで現在の行をハイライト表示するgutter
- 現在の行の左側にあるガターの行番号をハイライト表示するall
- ガターとラインの両方をハイライト表示するnone
- 現在の行をハイライト表示しない
diff エディタのアクセシビリティを向上 (Accessibility improvements of diff editor)
diff エディタに変更をあらわす +
と -
のインジケータを追加することで、diff エディタのアクセシビリティを強化しました。この機能はデフォルトで有効ですが、diffEditor.renderIndicators
を false
に設定することで無効にすることもできます。
Sublime Text との互換性 (Sublime Text compatibility)
Sublime Text ユーザーがよく利用する 4 つの新しいコマンドを追加しました。
- 行をつなげる (Join Lines) -
editor.action.joinLines
- カーソルの周囲の文字列を入れ替える (Transpose characters around the cursor) -
editor.action.transpose
- 大文字に変換 (Transform to Uppercase) -
editor.action.transformToUppercase
- 小文字に変換 (Transform to Lowercase) -
editor.action.transformToLowercase
これらのコマンドは、デフォルトではキーボードショートカットにバインドされていませんが、Command Palette から呼び出すことも可能です。
スニペット (Snippets)
スニペット変数 (Snippet Variables)
カスタムスニペットで、変数を使用できるようになりました。 変数の構文は、単純な変数の場合は $name
となり、デフォルト値を持つ変数の場合は ${name:default}
のようになります。変数の中が空の文字列、または、値が存在する場合は、それらがデフォルト値として評価されます。変数が不明な場合は、その変数をプレースホルダとして挿入します。
次の変数を使用できます:
TM_SELECTED_TEXT
- 現在選択されているテキストまたは空の文字列TM_CURRENT_LINE
- 現在の行の内容TM_CURRENT_WORD
- カーソルが置かれている単語の内容または空の文字列TM_LINE_INDEX
- zero-index に基づく行番号TM_LINE_NUMBER
- one-index に基づく行番号TM_FILENAME
- 現在のドキュメントのファイル名TM_DIRECTORY
- 現在のドキュメントのディレクトリTM_FILEPATH
- 現在のドキュメントの完全なファイルパス
以下は、選択したテキストをシングルクォートで囲むスニペットの例です。テキストが選択されていない場合は、type_here
-プレースホルダが挿入されます。
|
JSON スキーマのスニペット (Snippets in JSON schemas)
JSON 言語サービスでは、JSON スキーマを使用して JSON ドキュメントの検証と補完を行います。JSON スキーマにおける VS Code 固有の拡張機能として、より利便性を向上させるためにスキーマにスニペットの提案を指定できるようになりました。スニペットの提案は追加の補完提案として表示され、スニペット構文を使用してプレースホルダを指定します。
詳細については、JSON ドキュメントを参照してください。
Languages
HTML での JavaScript 言語サポート (JavaScript language support in HTML)
HTML に埋め込まれた JavaScript のコーディング支援機能が復活しました!コード補完、DOM の署名ヘルプ、JQuery API、検証、ホバー、参照の検索と定義への移動、シンボルの強調表示と概要 (Ctrl + Shift + o)、フォーマットなどの機能を利用できます。この言語サポートは同じファイル内の定義のみに有効なことに注意してください。
CSS の改善 (CSS improvements)
CSS 言語サポートでは、新しい @apply ルール を処理できるようになりました。
特に属性で定義されたスタイルを持つ HTML での CSS サポートも改善されています。
TypeScript Update
JavaScript と TypeScript 言語サポートに TypeScript 2.1 を採用しています。 TypeScript 2.1 は、多くの新しい言語機能とツーリング機能を提供しています。詳細は、TypeScript 2.1 の新機能についてを参照してください。
JavaScript
VS Code における JavaScript サポートは TypeScript によって強化されています。また、VS Code には最新の TypeScript バージョンがバンドルされ、JavaScript サポートのためのいくつかの改良が施されています:
- Object Rest と Spread のサポート。これは React を利用している JS 開発者から要望の多いリクエストでした。Object Spread/Rest を使用する際、JavaScript の検証を無効にする必要はなくなりました。
- jsconfig.json ファイル構成の継承
- IntelliSense による
import
およびrequire
に必要なパスの補完
Markdown プレビューの改善 (Markdown preview improvements)
Markdown プレビューを改善するためのいくつかの新しい設定が追加されました。
markdown.previewFrontMatter
- デフォルトの動作として、Markdown プレビュー時に YAML front matter セクションを隠すようになりました。YAML front matter もあわせてプレビュー上で確認したい場合はshow
に設定してください
Markdown プレビューで使用されるフォントファミリ、サイズ、行の高さを制御します。
markdown.preview.fontFamily
markdown.preview.fontSize
markdown.preview.lineHeight
リンター拡張機能 (Linter Extensions)
vscode-tslint
vscode-tslint 拡張機能が TSLint 4.0 をサポートしました。TSLint 4.0 では、警告関するクイックフィックスや JavaScript ファイルのリンティングのサポートが追加されています。さらに、vscode-tslint
では、次の行の TSLint ルールを無効にするためのクイックフィックスを追加します。 TSLint のアップデート詳細については CHANGELOG を参照してください。
vscode-eslint
vscode-eslint
拡張機能は、JavaScript 以外のファイルタイプの検証をサポートしました。この機能を有効にするには、次の操作が必要です:
- 検証を有効にするには、追加のプラグインを使用して ESLint を設定する必要があります。たとえば、HTML ファイルを検証するには、まず、
npm install eslint-plugin-html
を実行し、eslint-plugin-html
インストールします。その後、eslint 設定ファイル (.eslintrc.jsonファイル) に"plugin": [ "html" ]
を追加します - さらに、対応する言語識別子を
"eslint.validate": [ "javascript", "javascriptreact", "html" ]
のようにeslint.validate
設定に追加します。この設定がされない場合のデフォルト値は["javascript", "javascriptreact"]
となります。
デバッグ (Debugging)
マルチターゲットデバッグ (Multitarget debugging)
マルチターゲットデバッグは、以前のマイルストーンで実装されました。今回のマイルストーンでは、新たにユーザインタフェースを追加し、マルチターゲットデバッグはもはや実験的な機能ではなくなりました。
マルチターゲットデバッグの使用は非常に簡単です: 最初のデバッグセッションを開始した後、別のセッションの起動をブロックすることはなくなり、2 つ目のセッションを起動することで UI が multi-target mode に切り替わります:
- 個々のデバッグセッションは、CALL STACK ビューのトップレベル要素として表示されるようになりました。
- フローティングデバッグウィジェットは、現在アクティブなデバッグセッションを表示します (他すべての稼働しているセッションには、ドロップダウンメニューから選択可能です)
- デバッグアクション(たとえば、フローティングデバッグウィジェットのすべてのアクション)は、アクティブセッションで実行されます。アクティブセッションの切り替えは、フローティングデバッグウィジェットのドロップダウンメニューから選択するか、CALL STACK ビューで対象となる要素を選択して変更することができます。
- セッションが停止するたびに(たとえば、ブレークポイントまたは例外がヒットしたときなど)、そのセッションは、アクティブなセッションに切り替わり、’F5’ キーを押すだけで簡単にデバッグセッションを開始することができます。
複数のデバッグセッションを開始する別の方法として提供されるのが、compound launch configuration を使用する方法です。compound launch configuration を実現するには、並列に起動する 2 つ以上の起動構成の名前をリストする必要があり、launch configuration ドロップダウンメニューに表示されます。
|
この blog では、Node.js バックエンドとブラウザフロントエンドの複合設定を構成する方法について詳しく説明しています。
個々の起動構成の追加 (Adding individual Launch Configurations)
IntelliSense によるスニペット候補の選択をサポートすることで、既存の launch.json
へ新しい設定を追加する操作をより便利にできないか検討しました。
IntelliSense によるスニペットの呼び出しは、カーソルが configurations
アレイ内にある場合に使用できるほか、Add Configuration ボタンを押して、IntelliSense を呼び出し、スニペットをアレイの先頭に挿入することも可能です。
インストールされたすべてのデバッグ拡張機能で提供される起動設定スニペットが IntelliSense により一覧表示されます。これにより、さまざまなデバッガ (Chrome や Node など)の起動設定を 1 つの launch.json
として簡単に組み合わせることが可能になります。
デバッグ拡張機能は、この新機能の採用を選択する必要があり、すべてのデバッガがこの機能を利用できるまでは、しばらく時間を必要とします。VS Code 11月 リリースでは、ビルトインの Node.js デバッガだけが利用可能です。
洗練されたいくつかのユーザインタフェース (Some UI Polish)
ユーザーのリクエスト により、ドラッグアンドドロップによってウォッチ式の順序を並べ替えることが可能になりました。
また、スタートボタンとドロップダウンメニューをグループ化することにより、デバッグ開始アクションUIの外観を洗練させました:
BREAKPOINTS ビューに表示されるソースと行番号情報は、CALL STACK ビューの情報に合わせ、より良く整列するように再配置されます。
Node.js のデバッグ (Node Debugging)
このセクションでは、VS Code に組み込まれている 2つの Node.js デバッガである node
および node2
の機能について説明します。これら 2 つのデバッガで同等の機能を維持しようと試みていますが、新しいテクノロジ (Chrome Debugger Protocol) が急速に進化するのに対して、node
(V8 Debugger Protocol)の技術が非推奨(事実上、開発が凍結)となったため、ますます難しくなっています。このような理由から、我々は、各機能のヘッダの括弧内にサポートされているデバッガのタイプをリストします。
Node.js バージョンが 6.3 より古い場合は、古い
デバッガである node
を使用し、6.3 または、より新しいバージョンを利用する場合は、新しいデバッガとなる node2
を使用します。
Note: Node.js アプリケーションで ES6 Proxy を使用している場合、古いデバッガで Node.js v7.x 実行環境をデバッグするとクラッシュする可能性があります。 これは、新しいデバッガ
node2
では発生しません。この問題は、 Microsoft/vscode#12749 で調査されています
“マイ コードのみ” (Just My Code (node and node2))
ステップ実行したくないコードを回避するための機能が追加されました。これは、Visual Studio でも提供される Just My Code に良く似た機能です。
この機能は、起動設定の skipFiles
設定で有効にすることができ、skipFiles
はスキップするスクリプトパスのグロブパターン配列を設定します。
使用例:
|
この設定では、node_modules
および lib
フォルダ内に配置される全てのコードがスキップされます。
正確なルールは次のとおりです:
- スキップ対象となるファイルにステップインした場合、そこで停止することはありません。スキップされたファイルにない次の実行されたラインで停止します
- スローされた例外を破棄するオプションを設定した場合、スキップ対象となるファイルからスローされた例外は中断されることはありません
- スキップ対象となるファイルにブレークポイントを設定した場合、そのブレークポイントで停止し、そのブレークポイントからステップアウトするまでステップを進めることができます。このポイントから通常のスキップ動作が再開されます。
この機能は、node
、 node2
および Chrome デバッガで使用できます。
Note: 古いデバッガ (
node
) はネガティブグロブパターンをサポートしていますが、ポジティブパターンに従わなければなりません: ポジティブパターンはスキップ対象となるファイルのセットに追加され、ネガティブパターンはそのセットから削除されます。
次の例では、’math’ モジュールを除くすべてのモジュールがスキップされます:
|
Note: 古いデバッガ (
node
) では、V8 Debugger Protocol をネイティブにサポートしていないため、Just My Code 機能をエミュレートする必要があります。そのため、ステッピング実行が遅くなる可能性があります。
外部ファイルから環境変数をロード (node) (Load environment variables from external file (node))
VS Code の Node デバッガは、ファイルから環境変数をロードし Node ランタイムに渡す機能をサポートしました。
この機能を使用するには、envFile
属性を launch configration に追加し、環境変数を含むファイルへの絶対パスを指定します:
|
env
ディクショナリで指定された環境変数は、ファイルからロードされた変数を上書きします。
‘.env’ファイルの例は次のようになります:
|
ソースマップの問題診断(node2)(Diagnostics for Source Map Problems (node2))
Node.js アプリケーションをデバッグすると、”Source map problem?” というメッセージが表示され、ブレークポイントがグレーになっていることがあります。 このような問題を理解しやすくするために、新しい node2
デバッグアダプタでは 2 つの新機能を提供します。
デバッグセッション中、デバッグコンソールに .scripts
と入力することで、アダプタは、ロードされたスクリプトとその sourcemap に関するすべての情報を出力します。
また、起動設定の sourceMapPathOverrides
オプションを使用すると、デバッグアダプタがディスク上の正しいソースファイルを見つけるのに十分な情報が sourcemap ファイルに含まれていない場合に、sourcemap ファイル内のパスを書き換えることが可能です。これらの機能の詳細については、node2
README を参照してください。
時間を遡ったデバッグ (Back in time Debugging (node))
この UI は、Chakra ベースの Node.js ランタイムを利用している場合に限り自動的に表示されます。 詳細はこのブログを参照してください。
node
デバッガの Reverse Continue
アクションを拡張することにより、Back In Time Debugging をサポートしています。
拡張機能のオーサリング (Extension Authoring)
厳密な Null チェックサポート (Strict Null Checks supported)
型が undefined
(未定義) または null
の場合、明示的に記入しなければならないよう vscode.d.ts
の型定義をアップデートしました。このアップデートは、より良い型チェックを得るために、TypeScript の strictNullChecks
-feature を利用しています。
スニペット補完候補 (Snippet Completions)
completion item プロバイダは、スニペットとして挿入された補完候補を返すようになりました。 アイテムを作成するときは、insertText
が SnippetString
であることを確認してください。 これを選択すると、エディタはスニペットモードに移行し、プレースホルダとカーソル位置を制御できます。
構成の検査 (Inspect Configurations)
新しい inspect
-function を利用することで、設定値やデフォルト値の定義箇所を知ることが可能になります。
TextDocument#getWordRangeAt
text document では、指定された位置からの word-range (単語の範囲)を得ることができます。 VS Code は、どのような単語かを知るために、それぞれの言語の word-pattern (単語パターン)を使用しますが、それだけでは十分ではないため、代替として使用される正規表現を提供できるようになりました。
デバッガ拡張機能のオーサリング (Debugger Extension Authoring)
launch.json
における、トップレベルの debugServer
属性が廃止されました (サポートは、2月のマイルストーンで削除される予定です)。代わりに、debugServer
属性を起動設定ごとに指定する必要があります。 詳細については、こちらで確認してください。
デバッガ拡張機能は、launch.json
で launch configuration スニペットを提供するようになりました。詳細については、”個々の起動設定の追加” を参照してください。
これは VS Code でスニペットを提供するために利用される通常の構文を使用して行うことができますが、package.json
の debuggers
セクション内の configurationSnippets
属性にスニペットを記述することも可能です。Mock Debug がデバッグ設定スニペットにどのように設定しているかの例は、ここを参照してください。
VS Code Debug Protocol
OutputEvent
タイプは、構造化オブジェクトをデバッグコンソールに送信する機能としてサポートされ、VS Code で拡張オブジェクトとしてレンダリングされるようになりました。詳細はこちらをご覧ください。
新しい RestartRequest
がデバッグプロトコルに追加されました。VS Code デバッガ UI に、デバッグアダプタを終了および再起動する Restart
アクションの実装が必要なくなり、代わりに RestartRequest
をアダプタに送信します。 詳細はこちらをご覧ください。
その他 (Miscellaneous)
Electron のアップデート (Electron update)
今回のリリースでは、Electron を 1.3.x から 1.4.x にアップデートしました。これにより、Chrome はバージョン 52 から 53 へアップデートされます。また、このアップデートによりは、100% 以上の DPI で VS Code が動作している場合、Windows におけるフォントレ表示のぼやけが軽減されるとユーザーから報告を受けています。
アップデートのもう 1 つの利点として、Windows が高コントラストモードで動作していることを検出したときに VS Code でも高コントラストテーマを自動的に有効にできることです。 VS Code は、Windows がそのように設定されている場合はハイコントラストモードで起動し、動作中の VS Code は、Windows のコントラストモードを変更することでハイコントラストモードに切り替わります。
Language Server Protocol
LSP でも VS Code API と同様に、全てのアイテムをスニペットでサポートされるようになりました。さらに、クライアント側でプロバイダの動的登録をサポートするための 2 つの新しいリクエストが導入されています。また、LSP NPM Node モジュールは、TypeScript 2.0 にアップグレードされました。 詳細については、https://github.com/Microsoft/language-server-protocol および https://github.com/Microsoft/vscode-languageserver-node を参照してください。
新しく追加されたコマンド (New Commands)
NOTE: プラットフォームによってキーの表記が変わりますので、テーブルの内容については、https://code.visualstudio.com/updates#_new-commands にて確認してください。
Key | Command | Command id |
---|---|---|
⌃Q (Windows Ctrl+Q, Linux ) | Quick Open ビュー (Quick Open View) | workbench.action.quickOpenView |
グループ内で次のエディタを開く (Open Next Editor in Group) | workbench.action.nextEditorInGroup | |
グループ内で前のエディタを開く (Open Previous Editor in Group) | workbench.action.previousEditorInGroup | |
⌘K Z (Windows, Linux Ctrl+K Z) | Zen Mode の切り替え (Enable Zen Mode) | workbench.action.toggleZenMode |
Escape Escape | Leave Zen Mode | workbench.action.exitZenMode |
Close active Panel | workbench.action.closePanel | |
Clone from a Git URL | workbench.action.git.clone | |
Toggle Visibility of Activity Bar | workbench.action.toggleActivityBarVisibility | |
⌘Q (Windows , Linux Ctrl+Q) | Quit VS Code | workbench.action.quit |
⌃J (Windows, Linux ) | Join Lines | editor.action.joinLines |
Transpose characters around the cursor | editor.action.transpose | |
Transform to Uppercase | editor.action.transformToUppercase | |
Transform to Lowercase | editor.action.transformToLowercase |
重要な変更 (Notable Changes)
- 16330: Use cached data to speed up script parsing
- 16065: First https request is responsible for 18% of windows startup time
- 15111: External file watcher fails for editors that do atomic saves
- 14951: Download vscode very slow in China
- 13104: Windows: selected tree item not accessible
- 13527: Text is super blurry now
- 15741: Allow code to open directories in nautilus file manager
クローズされたバグ一覧と、1.8 アップデートにてクローズされた機能のリクエスト一覧です。
拡張機能への貢献 (Contributions to Extensions)
私たちのチームは、いくつかの VS Code 拡張機能の提供とメンテナンスに貢献しています。注目すべき拡張機能は:
Thank You
最後になりましたが、VS Code をより良いものにするために協力してくれた次の方々に多大なる感謝を込めて:
- @anantoghosh: Fix Incorrect links in “vscode namespace API” Doc PR #15904
- Christian Alexander (@ChristianAlexander): Fix #14135 - Allow files with merge status to be staged PR #14788
- Faustino Aguilar (@faustinoaq): Support HTML comments in Markdown PR #14573
- Felix Becker (@felixfbecker)
- Sanders Lauture (@golf1052): Provide an option to hide the activity bar PR #14940
- Huachao Mao (@Huachao)
- Michael Hudson (@Huddo121): Add tests for zoom level functionality PR #14737
- Yuichi Tanikawa (@itiut): Add .zsh-theme to shellscript extensions PR #15489
- Kai Wood (@kaiwood): Fix focus and configuration handling of the integrated terminal PR #15958
- Matt King (@KattMingMing): Support opening files through URL handling (fixes #4883) PR #15320
- Jonathan Carter (@lostintangent): Adding Docker 1.12 instructions to its grammar PR #16476
- Pine (@octref): Declarative contribution of custom Tree Explorer PR #14048
- Munir Mastalic (@polygotdev): add conditional to rpm spec to test for arch, fixes 13616 PR #15128
- scheakur (@scheakur): Remove duplicate test code PR #16061
- Sean Kelly (@xconverge): fixes #16553 PR #16689
- Yuya Tanaka (@ypresto): Fix backslash is not escaped by define key binding PR #16108
- Tamas Kiss (@kisstkondoros): Standardize cursor movement with home and end keys PR #17027
vscode-tslint
への貢献:
- Eric Anderson (@ericanderson): Detect 4.0.0 for -dev versions of TSLint PR #141
- Richard Lasjunies (@rlasjunies): fix most of the autoFix issues using TSLint 4.0 PR #138
- Robert Stoll (@robstoll): reverts #107, seems like rule name was removed PR #140
- Yuichi Nukiyama (@YuichiNukiyama)
vscode-debugadapter-node
への貢献:
- Richard Stanton (@richardstanton): Allow requests to specify formatting hints. PR #82
language-server-protocol
への貢献:
- Vlad Dumitrescu (@vladdu):
- Guillaume Martres (@smarter): Correct minor issue in ParameterInformation doc PR #108
- Peter Burns (@rictic): [minor] Fix a couple PR #103
vscode-languageserver-node
への貢献:
- CJ Bell (@siegebell): CancellationToken.is does not check for undefined PR #121
- Gama11 (@Gama11): Typo fix: “hove” -> “hover” PR #109
vscode-css-languageservice
への貢献: