【Visual Studio Code】緊急修正リリースした1.5.1版のリリースノート意訳しました


皆さん、こんにちは。テクニカルエバンジェリストの戸倉です。

恒例の月に1回アップデートするVisual Studio Code Stable版が、今月も最新バージョン1.5として提供開始しましたのでお知らせします。

また、問題を緊急修正したリカバリービルド1.5.1が今日現在の最新版となっています。

今回も意訳をしてみましたので、よろしければ参考にしてください。


VSC

August 2016 (version 1.5) リリースノート
1.5.1 Recovery Build リカバリービルド

editor.fontSize
が 0 に設定されている場合に何も表示されなくなる問題を解決するために、1.5.1 リカバリービルドをリリースしました。

Downloads: Windows | OS X | Linux 64-bit: .tar.gz .deb .rpm | Linux 32-bit: .tar.gz .deb .rpm


2016/8 月版のリリースまとめ (August Release Summary)

VS Code チームの 8 月は、とても大変なひと月でしたが、おかげで素晴らしいリリースを提供することができました。主要なアップデートは UI の更新、拡張機能サポート、デバッグ機能、拡張性を提供する API のサポートです。

本リリースのハイライトは次のとおりです:

  • Workbench: ファイルアイコンテーマの実装により、ファイルエクスプローラがより便利になります。 VS Code には、2 つのアイコンテーマが含まれていますが、マーケットプレースからより多くのテーマが提供されます
  • Debugging: デバッグコンソールにおける [REPL(Read-Eval-Print-Loop) 対話的に実行して結果を確認する手段] を効率良く実行するために、IntelliSense をサポートしました(現時点では Node.js のみ)。デバッガプロトコルを利用することにより、他のデバッグ拡張機能でも IntelliSense をサポートすることが可能になります。また、複数行の入力をサポート
  • Extensions:
    • インストール済み、または、マーケットプレイス上にある拡張機能のコントリビューション(コマンド、設定、言語 ID)を VS Code 上から参照することが可能に
    • インストール回数や評価の並べ替えでマーケットプレイスの拡張機能を検索することが可能に
    • インストール済みの拡張機能の自動更新および、更新可能な全ての拡張機能を一度にアップデートすることが可能に
  • Editor: ワードラップと自動保存を制御する新しい設定を追
  • Quick Open: 大規模なプロジェクトのためにクイックオープンのパフォーマンスを向上
  • Extension Authoring: VIM 拡張機能のためにエディタ・コマンド API を拡張

Note: 完全に翻訳された 1.5 を提供する予定でしたが、残念ながら、翻訳に関連するいくつかの遅延が発生し、このリリースでは計画を見送ることにしました。近く、これらの成果を含んだアップデートを提供する予定です

Workbench

ファイルアイコンテーマ (File Icon Themes)

ファイルエクスプローラは、ファイルとフォルダのアイコンを表示することが可能になりました。ファイルアイコンを有効にするには、File Icon Theme を選択してください:

  • グローバルメニューから設定する方法: File(ファイル) > Preferences(基本設定) > File Icon Theme (Mac では、 Code の配下にある Preferences (基本設定) メニュー内にあります)
  • コマンドパレット (Win, Linux: Ctrl+Shift+P, Mac: ⇧⌘P) から呼びす Preferences: File Icon Theme コマンド

デフォルトでは、ファイルアイコンセットが設定されていないため、ファイルエクスプローラにアイコンは表示されません。 アイコンテーマが選択されると、テーマが適用され、再起動後も有効になります。

このリリースでは、ファイルとフォルダのアイコンのみがファイルエクスプローラに表示されますが、今後、エディタタブや他の場所でもファイルアイコンを使用できるようにする予定です。

VS Code 1.5 には 2 つのアイコンテーマが含まれていますが、コミュティから多くのテーマが提供されることに期待しています。

     None (デフォルト)                  Minimal File Icons                  Seti File Icons

None/Standard Icon ThemeMinimal Icon ThemeSeti Icon Theme

Jesse Weed が作成した Seti UI テーマ、Roberto Huertas によるアイコン拡張機能の実装により、この機能を望んでいた多くのユーザーにとても素晴らしい Seti UI アイコンテーマを提供することが可能になりました。

統合ターミナル内のキーバインディングサポート (Key binding support within the Integrated Terminal)

新しい terminal.integrated.commandsToSkipShell 設定には、シェルに送信したくない VS Code のコマンド ID を指定します。この設定により、ターミナルがフォーカスされている場合でも、指定されたキーバインドはシェルに渡されず、VS Code のコマンドアクションを使用することができます。

例: フォーカスがターミナルにあっても、F1 などの機能を実行することを可能にします。

Editor

エディタの設定 (Editor settings)

このリリースではいくつか便利なエディタの設定が追加されました:

  • editor.renderLineHighlight – 現在の行のハイライトを無効にします
  • editor.fontWeight – エディタのフォントの太さをカスタマイズします (normal, bold).
  • editor.wordWrapeditor.wrappingColumn 設定をベースに、ワードラップを切り替えます。
アプリケーションがフォーカスを失った時に自動保存 (Auto Save when application loses focus)

ウィンドウの切り替えをトリガーに、ファイルを自動保存(files.autoSave setting)する、新しい onWindowChange設定を追

より高速になったクイックオープン (Quick Open got a lot quicker)

過去 2 回の Iteration に渡り、大規模なワークスペース (‘大規模’ とは ‘Chromium-repository-large’のようなワークスペース)のために行った改修においてクイックオープンの動作が高速化されました。新しくクローニングされた Chromium リポジトリには、220,000 以上のファイルが含まれています。 我々の開発マシンにおけるクイックオープンでは、バージョン 1.3 の約 30 秒から、バージョン 1.5 では約 3 から 4 秒程度(もちろん、プラットフォームに依存します) になりました。 これは、キャッシュを利用していない時のパフォーマンスですが、キャッシュの使用を前提に 0.5 秒台の結果を得るようにしました。

ユーザーがクイックオープンを呼び出すときに、すぐにキャッシュの更新を開始し、キャッシュから読み込まれたときに UI スレッドをブロックすることはなく、0.5秒と言う値は、キャッシュが期限切れであったとしても、エンド・ユーザーが気づくパフォーマンスです。 上で述べたように、これは Chromium リポジトリのためのものであり、あなたのプロジェクトが小さい場合は、遅延は全く見られないでしょう。

フォーカスに影響されないクイックオープン (Keep Quick Open visible even when focus is outside)

フォーカスの移動に影響されるクイックオープンウィジェットの開閉を制御することが可能な、新しいworkbench.quickOpen.closeOnFocusLost 設定を追加しました。 デフォルトでは、フォーカスが移動するとクイックオープンは閉じますが、false を設定することにより、それを開いたままにすることが可能になります。

ファイルクイックオープンの結果に含まれるシンボル結果 (Include symbol results in file Quick Open results)

ファイル検索のクイックオープンに表示されるシンボルを抑制するための新しい設定search.quickOpen.includeSymbols を追加しました。 以前のリリースでは、一般的なファイルピッカー内にシンボルの結果を含んでいましたが、問題を抱えているためこれをオプションにしました。 シンボルを含む以前の動作に戻す必要がある場合は、このオプションを true に設定してください。 この設定を有効にするとグローバルシンボルの結果を返すための検索に時間を必要とします。そのため、全体的なファイル検索速度が遅くなることに注意してください。

Note: Show All Symbols (Win, Linux: Ctrl+T, Mac: ⌘T) コマンドを使用して、グローバルシンボルを検索することができます。

エディタグループ内で左または右にタブを移動するための新しいアクション(New actions to move Tabs left or right within a group)

エディタのグループ内にて、タブ(タブのヘッダ)を右または左に移動するための新しいアクションが追加されました。 追加された 2 つのアクションとそれらのデフォルトキーバインドは次のとおりです:

アクション

コマンドパレット

キーバインディング

workbench.action.moveEditorLeftInGroup エディタを左へ移動 (Move Editor Left) (Win, Linux: Ctrl+Shift+PageUp,
Mac: ⌘K ⇧⌘←)
workbench.action.moveEditorRigtInGroup
エディタを右へ移動 (Move Editor Right) (Win, Linux: Ctrl+Shift+PageDown,
Mac: ⌘K ⇧⌘→)

以前のインデックスで再開されるエディタアクション (Closed editors reopen at their previous index)

直前に閉じられたエディタを再呼び出しするアクション workbench.action.reopenClosedEditor (Win, Linux: Ctrl+Shift+T, Mac: ⇧⌘T) を新たに提供します。 このリリースでは、エディタはクローズされる前と同じ順序を維持し、同じインデックスで再開されます。

Mac OS: Cmd+E によるクイックオープンの廃止 (Mac OS: Cmd+E no longer opens Quick Open)

ファイル検索のためのクイックオープンを起動する(ドキュメント化されていない)キーバインドを削除することを決めました。 kbstyle(Cmd+E) の動作を以前のバージョンに戻したい場合は、キーバインディングの構成を設定します:

{ "key": "cmd+e", "command": "workbench.action.quickOpen" }

この変更の背後にある理由として、Mac OS における kbstyle(Cmd+E) には、現在アクティブなファイル内の検索を実行する機能が主として割り当てられているためです。

Languages

TypeScript

Visual Studio Code には TypeScript の正式にリリースされたバージョンがバンドルされており、8月のリリースでは、バージョン 1.8.10 となります。また、9月中に、バージョン 2.0 が利用可能になる予定ですが、npm install -g typescript@rc を実行することにより、リリース候補版をインストールすることもできます。

異なる TypeScript バージョンを VS Code 上またはコマンドラインツールから利用すると、バージョンに依存したエラーによりビルドツールが混乱してしまいます。当然ですが、2.0 でサポートされた機能は 1.8.1 では利用できません。もし、VS Code 上で TypeScript の新しいバージョンを使用したい場合は、typescript.tsdk 設定を使用します。詳細は マニュアル を参照してください。

VS Code は、ワークスペースフォルダに任意の TypeScript バージョンが含まれていることを検知します。(npm install typescript@x.x.x 経由でインストールされたもの)

VS Code は、ワークスペースにインストールされた TypeScript を検出かつ typescript.tsdk 設定が使用されていない場合、VS Code にバンドルされる TypeScript バージョンをユーザに通知し、バンドルバージョンを使用するかどうかを尋ねます。

TypeScript Version Check

More Information アクションは、常にローカルにインストールされた TypeScript のバージョンを使用するよう VS Code を設定する方法のドキュメントを表示します。VS Code では、TypeScript 言語サーバがグローバルにインストールされている tsc コンパイラと差異があるかをチェックします。異なる場合は、対応する情報メッセージが示されます。

HTML

組み込みのコード補完プロバイダをアクティブにするかを制御するために、新しい設定が追加されました。対応するサジェスチョンを参照したくない場合は、これらの設定を使用します。

// Configures if the built-in HTML language suggests Angular V1 tags and properties. "html.suggest.angular1": true, // Configures if the built-in HTML language suggests Ionic tags, properties and values. "html.suggest.ionic": true, // Configures if the built-in HTML language suggests HTML5 tags, properties and values. "html.suggest.html5": true

LESS

LESS 構文の検証は、最近 LESS に追加された機能の一部をサポートするために、最新のものを取り込んでいます。次のものが含まれます:

  • Named Parameters in Mixins
  • Mixins as functions
  • Passing Rulesets to Mixins
  • CSS Guards
  • Merge

これらの機能の詳細については、LESS ドキュメントを参照してください。

言語のための Emmet 設定 (Settings to enable/disable Emmet for languages)

新しく追加された emmet.syntaxProfiles 設定を利用することで、他の言語と既存の Emmet 構文プロファイル (例えば htmlcss など) を関連付けることができます。設定は、言語 ID を受け取り、Emmet プロファイルに関連付けます。

例えば、JavaScript で Emmet HTML 略語を使用するには次のように設定します:

{ "emmet.syntaxProfiles": { "javascript": "html" } }

emmet.excludeLanguages 設定を使用して特定の言語における Emmet 略語の使用を無効にすることができます。 次の設定は、PHP ファイル編集時に Emmet を無効にします:

{ "emmet.excludeLanguages": [ "php" ] }

リンター拡張機能 (Linter Extensions)

vscode-eslintvscode-tslint 拡張機能を、ファイル保存時に実行する新しい設定を追加しました。

{ "tslint.run": "onSave" }

Extensions

より簡単な更新 (Easier Updates)

すべての拡張機能を更新するためのアクションが用意されました。

Extension update all

さらに、extensions.autoUpdate 設定を true に設定すると、ユーザーの介入なしに拡張機能を自動更新できるようになります。

拡張機能のコントリビューション詳細ビュー (Extension Contribution Details View)

拡張機能をインストールする前に、各拡張機能のコントリビューション・ポイントを表示する Contributions セクションを VS Code の拡張機能閲覧で参照することが可能になりました。

Extension Details

拡張機能一覧のソート (Extension Sorting)

拡張機能ビューは、インストールカウント以外の方法で拡張機能を並べ替えることができるようになりました。

Extension sort

マーケットプレースのパフォーマンス改善 (Marketplace Performance Improvements)

マーケットプレースは、ダウンロードにおけるダウンロード時間と拡張クエリの可用性を改善するため、CDN に刷新されました。

Debugging

デバッグコンソールでの サジェスチョン機能 (Suggestions in Debug Console)

デバッグコンソール で、入力中の内容に関するサジェスチョンを示すことが可能になりました。現時点では、この機能は Node.js デバッグのためにのみ利用可能ですが、他のデバッガではデバッガ・プロトコルを通してサジェスチョン機能を実装することが可能です。

Debug Console Suggest

デバッグコンソールへの複数行入力 (Multi-Line Debug Console Input)

デバッグコンソールへの複数行にまたがる入力が可能になりました。複数行の入力は、Shift + Enter で行うことが可能です。

Debug Console Multiline

マルチレベルの変数ページング (Multi-Level Variable Paging)

子供の数が多いデータ構造は、マルチレベルのチャンクにより表示されます。これは、より良いパフォーマンスをもたらす他、簡単に多数の子を横断することができます。

Variable Multi Level Paging

Node Debugging

統合ターミナル上でのデバッグターゲット実行 (Launch debug target in Integrated Terminal)

Integrated Terminal で Node.js デバッグターゲットを起動できるようになりました。対話型端末からの読み取りやそれらが実行されている端末上の出力を制御する必要があるような Node.jsベースのコマンドラインアプリケーションを開発する際に役立ちます。Node.js プログラムを実行するために 3 つのオプション (Debug Console, Integrated Terminal, 外部コンソール)を提供してきましたが、このリリースから launch.jsonexternalConsole アトリビュートを非推奨とし、新しいアトリビュート console を導入し、次の値を設定できるようにしました: internalConsole,integratedTerminal, externalTerminal

New launch attribute Attribute console

Note: VS Code は、internalConsoleOptions 属性に構成されたオプションに応じて、統合ターミナル を非表示にして Debug Console を開きます。 これを避けるには、 internalConsoleOptionsneverOpen を設定してください。

Note: このリリースでは、すべてのデバッグセッションは、新しい統合ターミナルを作成します。次のリリースでは、可能な場合は、既存の統合ターミナルを再利用する実装を予定しています。

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

Note: VS Code 8月のリリース版では、TypeScript 1.8.10 の正式版がバンドルされ、拡張機能の開発は、このバージョンを使用して行われるべきです。将来のリリースにおいて、拡張機能の開発のために TypeScript2.0.x をサポートする予定です。

エディタコマンド (Editor Commands)

VIM 拡張機能ロードマップを実現するために、特にウィンドウのスクロールや折り畳みに関連する新しい API をエディタに追加しました:

  • Scroll editor: エディタ画面の上下スクロール – See 9609.

commands.executeCommand('editorScroll', {to: 'up', by: 'page', value: '1'})

  • Reveal line: エディタ上で異なる論理位置とラインを明確にする – See 9609.

commands.executeCommand('revealLine', {lineNumber: '10', at: 'top'})

  • Fold: 現在のカーソルの上または下または n レベルでエディタのコンテンツを折りたたみます。

commands.executeCommand('editor.fold', {levels: '2', up: false})

  • Unfold: 現在のカーソルの上または下または n レベルでエディタの折りたたまれているコンテンツを展開します。

commands.executeCommand('editor.unfold', {levels: '2'})

補完機能の強化 (Powerful Completion Items)

Completion Item は、追加のテキスト編集や追加のコマンドをサポートしました。

これらを使用すると、さらに高度な補完が可能になります:

  • シンボルを補完したときに import 文を追
  • 補完後、プロジェクトにライブラリを追加
安定した入力ボックスとクイックオープン (Stable Input Box and Quick Open)

クイックオープンが開いているか何か入力を求められているときに、フォーカスが VS Code または他のウィンドウの別の部分に移動してもダイアログが閉じないよう制御する、新しい ignoreFocusOut オプションが追加されました。 また、キャンセルトークンを使用してそれらをプログラムから閉じることができます。

新しいコンテキストメニューキー (New context menu keys)

キーバインディングとメニュー項目をより細かく制御するための新しいコンテキストキーを追加しました:

  • explorerResourceIsFolder – エクスプローラ上でファイルまたはフォルダが選択された場合に反映されます
  • resourceFilename – エディタ/エクスプローラで現在アクティブなファイルの名前
新しいテーマ設定 (New Theme Settings)

このリリースでは、TextMate のテーマの設定として、以下の内部の色を公開すると共に、テーマの作成者は、これらをカスタマイズすることが可能になります。

  • rangeHighlight: 範囲の背景色を強調します。これは、クイックオープンと検索機能で利用されます。
  • selectionHighlight: 選択によりハイライトされたリージョンの背景色
  • inactiveSelection: フォーカスされていない選択された領域の背景色
  • wordHighlight: 変数を読み取るような読み取りアクセス中のシンボルの背景色
  • wordHighlightStrong: 変数への書き込みのような書き込みアクセス時のシンボルの背景色
  • findMatchHighlight: 検索条件に一致するリージョンの背景色
  • currentFindMatchHighlight: 検索条件に一致する現在の領域の背景色
  • findRangeHighlight: 検索のために選択された領域の背景色
  • activeLinkForeground: アクティブリンクの色
  • hoverHighlight: ホバーの背景色
  • referenceHighlight: 参照時に全ての参照を見つけた時の背景色
  • guide: 入れ子のレベルを示すインデントガイドの色
統合ターミナル API (Integrated Terminal API)

ターミナル(複数可)を作成し、それらにテキストを送信するような、統合端末を超えた基本的な制御が可能となるいくつかの拡張を API に追加しました。API の詳細な説明については、window API reference page を参照してください。

デバッグプロトコルへの機能追加 (Additions to the Debug Protocol)

debug protocol は、次のエリア(とVSコードが既に対応する提供済みの UI)に拡張されています:

  • IntelliSense Support for the Debug Console: デバッグアダプタは、Debug Console で IntelliSense によるサジェスチョンを提供するために、completions リクエストを実装することができます。VS Code でこの機能を有効にするには、 デバッグアダプタが持つ supportsCompletionsRequest 機能に true を設定する必要があります。

  • Run in Terminal Request: デバッグアダプタは runInTerminal リクエスト経由で、簡単に VS Code の統合ターミナル上にてデバッグターゲットを実行することができます。(これは、VS Code のデバッグアダプタから最初のリクエストとして呼び出されることで利用できます) Integrated Terminal は、Debug Console の代替となり、対話型端末からの読み取りおよび/またはそれらが実行されている端末上で、出力を制御する必要があるコマンドラインアプリケーションのより良い開発をサポートします。フロントエンドクライアントは、runInTerminal が呼び出される前に、 initialize リクエストに含まれるsupportsRunInTerminalRequest アトリビュートとその値が true であることを検証することでサポートします。

Engineering

もともとは Manoj Patel (@nojvek) からの PR #9791 が発端となり、ビルド毎に更新された TypeScript ファイルのテストカバレッジを持つようにしました。

Notable Changes

  • 6602: Add scroll bar to integrated terminal
  • 8499: Cannot distinguish different files with the same path.filename(x)
  • 8983: Closing a dirty split editor (existing OR untitled) should not affect the initial editor
  • 9405: Resizing terminal only resizes the active terminal instance
  • 9589: Save: Flush to disk after writing to file
  • 9675: Undo/Redo adds a stop in between CHN Characters
  • 9822: Terminal IME composition view appears on top of text when at the bottom of the screen
  • 9937: Increase rule stack protection limit – Syntax highlighting broken in JS with multiple nested functions
  • 9962: Explorer can freeze for large folders and many glob patterns
  • 10100: Terminal cursor does not invert text color
  • 10148: After updating to 1.4.0 the react-native extension no longer accepted as a debugger
  • 10302: Support standard keybindings for scrolling terminal by one line on each platform
  • 10360: File rename can close editors
  • 10586: TabCompletionController causes severe perf hit

クローズされたバグ一覧と、1.5アップデートにてクローズされた機能のリクエスト一覧です。

Monaco Editor 0.6.0

VS Code と同様の間隔で、”Monaco” エディタを毎月リリースします。変更履歴は こちらで参照することができます。

Downloads

Thank You

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

 

Have a nice Code♪


Comments (0)

Skip to main content