検索
ニュース

「Visual Studio Code」の「August 2021」リリース(バージョン1.60)が公開MLモデルを使ってプログラミング言語を自動検出

Microsoftはクロスプラットフォームエディタ「Visual Studio Code」の最新版「August 2021」リリース(バージョン1.60)を公開した。自動言語検出やブラケットペアの色分けなど、ワークベンチやエディタ、ターミナル、デバッグ、ノートブック、言語などの機能が強化されている。

Share
Tweet
LINE
Hatena

 Microsoftは2021年9月2日(米国時間)、WindowsやLinux、macOSに対応するクロスプラットフォームのエディタ「Visual Studio Code」(以下、VS Code)の最新版「August 2021」リリース(バージョン1.60)を公開した。

 VS Codeバージョン1.60では、ワークベンチやエディタ、ターミナル、デバッグ、ノートブック、言語などの機能が追加、改善されている。

言語の自動検出機能が規定値に

 VS Codeの前回のリリースでは、無題のファイルに対して、ファイル内容に基づいた言語モードを自動的に設定する実験的機能が導入された。

 この機能は、機械学習(ML)を用いてプログラミング言語を推測するものであり、MLモデルは完全にローカルで動作する。このMLモデルではオープンソースMLライブラリ「TensorFlow.js」と、ソースコードからプログラミング言語を推測するオープンソースディープラーニングソフトウェア「Guesslang」を利用している。

 今回のリリースでは、この自動言語検出機能が既定で有効になった他、ファイル拡張子がないファイルでも言語を検出できるように拡張された。さらにノートブックでも言語ピッカーを使って、言語検出を簡単に利用できるようになった。

 自動言語検出を活用できるシナリオの例を次に示す。


オンラインで入手したサンプルコードを、エディタで開いた無題のファイルに貼り付けたところ(出典:Microsoft、クリックして再生)

ノートブックの言語ピッカーにある自動検出オプション(出典:Microsoft、クリックして再生)

ブラケットペアを高いパフォーマンスで色分けする

 ブラケット(かっこ)ペアの色分けがネイティブにサポートされた。


ブラケットペアの色分けを有効化したところ(左)と無効化したところ(右)(出典:Microsoft

 ブラケットペアの色分けは、「"editor.bracketPairColorization.enabled": true」設定で有効にできる。全ての色をテーマ化でき、最大6色まで利用できる。

 この機能は、「Bracket Pair Colorizer」という有名な拡張機能のパフォーマンス問題に対処するために実装された。巨大なドキュメントに変更を加えた場合でも、直ちに反映されるようになっている。


大規模ファイルの先頭と末尾でブラケットの色分けがどの程度高速に反映されるか(出典:Microsoft、クリックして再生)

設定エディタでコードブロックの構文を強調表示

 設定記述におけるフェンスで囲まれたコードブロックにシンタックスハイライトが適用されるようになった。


設定エディタにおけるTypeScriptコードのシンタックスハイライト例(出典:Microsoft

ボックス描画文字とブロック要素文字のカスタムレンダリング

 ターミナルでGPUを利用してレンダリングを行う場合(「terminal.integrated.gpuAcceleration」設定で有効化する)、ボックス描画文字とブロック要素文字を表示する際、フォントを使う代わりに、ピクセルパーフェクトなカスタムグリフを使うようになった。

 例えば、ターミナルで行の高さや文字間隔を設定していても、ボックスがずれや切れ目なく表示される。


以前はターミナルでグリフのずれや切れ目が目立つ場合があった(出典:Microsoft

ターミナルでずれや切れ目のないグリフのレンダリングが可能になった(出典:Microsoft

 次の例は、ターミナルアプリケーション「Zenith」で使われている例だ。セクションを囲むボックス描画文字と図のブロック要素を示した。


ターミナルでのボックス描画文字とブロック要素のレンダリング(出典:Microsoft

ウォッチビューでの値の設定

 デバッグセッション時にウォッチビューで監視する式の値を、コンテキストメニューから設定できるようになった。


ウォッチビューでコンテキストメニューから[Set Value]を選択しているところ(出典:Microsoft

 使用するには、デバッグ拡張機能がこの機能をオプトインさせる必要がある。現時点では、JavaScriptデバッグ、C#、C++の拡張機能がこの機能をサポートしており、近いうちに他のデバッグ拡張機能もこれらに続く見通しだ。

ノートブックがMarkdownセル間のリンクをサポート

 ノートブックがMarkdownセル間のリンクをサポートするようになった。


他のノートブックのヘッダセルへのクリッカブルリンク(出典:Microsoft、クリックして再生)

 Markdownセルのヘッダへのリンクは、次のように作成する。

[Link text](#_header-slug)

 header-slugは、ヘッダのテキストを全て小文字にし、全てのスペースと特殊文字を「-」に置き換えたものだ。

ノートブックで大規模出力を処理する際のパフォーマンスが向上

 ノートブックで大規模出力を処理する方法を最適化したことで、パフォーマンスが大幅に向上した。

 これは、VS Codeが「Uint8Array」を使って、ノートブックの出力をバイナリデータとして保存することで可能になった。従来は、拡張ホストプロセスとレンダラプロセスの間で出力データを転送する場合、データをまず数値の配列に変換し、さらにJSONにシリアライズしていた。このことがパフォーマンスに悪影響を与えていた。

 新しい実装では、ノートブックの出力を、転送時もバイナリデータとして保持する。これにより、大規模出力を保存したノートブックのロードが大幅に改善され、ノートブックが実行時に大規模出力を生成する際のパフォーマンスも改善された。

JavaScriptとTypeScriptのインレイヒント

 VS Codeバージョン1.60は、最近リリースされたTypeScript 4.4に対応している。MicrosoftはTypeScript 4.4の最も重要な新しいツール機能として、インレイヒントのサポートを挙げている。インレイヒントはソースコードにインライン情報を追加するものであり、開発者がコードの動作を理解する際に役立つ。

 例えば、パラメーター名のインレイヒントは、関数呼び出しのパラメーターの名前を表示する。


パラメーター名のインレイヒント(出典:Microsoft

 このインレイヒントがあれば、各引数の意味を一目で理解しやすい。ブールフラグを取る関数や、紛らわしいパラメーターがある関数では特に便利だ。

 パラメーター名のインレイヒントを有効にするには、「javascript.inlayHints.parameterNames.enabled」または「typescript.inlayHints.parameterNames.enabled」設定を使用する。この設定には3つの値がある。

・none パラメーター名のヒントを無効にする

・literals リテラル引数に対してのみ、パラメーター名のヒントを有効にする

・all 全ての引数に対してパラメーター名のヒントを有効にする

 さらにVS Codeは、JavaScriptやTypeScriptコードの暗黙の型情報を示すインレイヒントも提供する。

 変数型のインレイヒントは、明示的な型注釈がない変数の型を示す。

 変数型のインレイヒントを有効にするには、「javascript.inlayHints.variableTypes.enabled」および「typescript.inlayHints.variableTypes.enabled」設定を使用する。


変数型のインレイヒント(出典:Microsoft

 プロパティ型のインレイヒントは、明示的な型注釈がないクラスプロパティの型を示す。

 プロパティ型のインレイヒントを有効にするには、「javascript.inlayHints.propertyDeclarationTypes.enabled」および「typescript.inlayHints.propertyDeclarationTypes.enabled」設定を使用する。


プロパティ型のインレイヒント(出典:Microsoft

 パラメーター型のインレイヒントは、暗黙的に型付けされたパラメーターの型を示す。

 パラメーター型のインレイヒントを有効にするには、「javascript.inlayHints.parameterTypes.enabled」および「typescript.inlayHints.parameterTypes.enabled」設定を使用する。


パラメーター型のインレイヒント(出典:Microsoft

 戻り値型のインレイヒントは、明示的な型注釈がない関数の戻り値型を示す。

 戻り値型のインレイヒントを有効にするには、「javascript.inlayHints.functionLikeReturnTypes.enabled」および「typescript.inlayHints.functionLikeReturnTypes.enabled」設定を使用する。


戻り値型のインレイヒント(出典:Microsoft

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る