タイムライン機能がプレビューした! Visual Studio Code 1.42 アップデートまとめ
目次
こんにちは。
開発チームのワイルド担当、まんだいです。
今月も VSCode (以下、 Visual Studio Code )のアップデートが届きましたので、個人的にグッと来た機能をご紹介したいと思います。
未保存のエディタの挙動がかなり良くなった
早いところ、未保存の状態でもストアしておく機能を実装してもらいたいところですが、それはまだ先の話のようです(そんな機能予定にもない)。
今回改善されたポイントは2点あります。
まずは untitled となっているエディタタイトルに、コンテンツの冒頭部分が表示され識別しやすくなったこと。
一体どれだけ untitled なエディタを開くんだという疑問もありますが、これが1つ目の改善ポイント。
もう一つはデフォルトの言語モードに関する挙動の改善。
例えば私の場合、デフォルトの言語モードは Markdown に設定しています。
これは、メモを取りたくなった時すぐに取れる状態にしたいため。
メモを取りたい時はそれでいいですが、ファイルの内容をコピーしたい場合は、この設定が足かせになります。
そこで新しいオプションとして、 ${activeEditorLanguage} という文字列を設定することで直前に開いていたエディタの言語モードと同じ言語モードに設定された状態のエディタを作成することができるようになりました。
コードは TypeScript だけど、設定ファイルは json ファイルだったり yaml ファイルだったり、もしかすると .env だったりと、コンテンツによって最適な形のファイルフォーマットを選択するのが当たり前になっていて、色んなファイル形式が混在することが多いなら、この設定はアリじゃないかと思います。
この設定はワークスペースごとに設定できるため、開発用のワークスペースには ${activeEditorLanguage} を設定しておき、私のようにメモ書き用のワークスペースを作っている場合は、 Markdown を設定しておく、などしておくと更に効率が上がるのではないでしょうか。
パネルがエディタの左側にも移動可能に
従来、右側には移動できた(と記憶している)パネルですが、この度左側にも移動できるようになりました。
このパネルにはターミナルも含まれるため、ログを less しながら見る時は大変便利です(右側にあってもいいですが)。
こういうパネルの移動系はショートカットキーでちゃちゃっとやりたいところですが、ショートカット自体は設定されていますがキー割り当てされておらず、自分で設定する必要があります。
「 workbench.action.positionPanelLeft 」で検索して割り当ててみてください。
リネームプレビュー機能が追加されました
リファクタリングで気を使う作業といえば、クラス名の変更。
できれば変更しない方がいいけれど、クラスを細分化した結果、クラス名と実態に乖離が生じるといったことはよくあることだと思います。
テストでうまく見逃しが拾えればいいですが、そうでないこともあるので、なかなか勇気がいる作業。
そんな時リネームプレビューを使うと、プロジェクト内のクラス出現箇所をすべてリスト化して表示してくれるので、見逃しがかなり減るんじゃないかと思います。
ただ、この機能はインテリセンスの実装によるもののようで、 Language Server の実装に左右されるようです。
簡単にですが調べたところ、 JavaScript 、 TypeScript はデフォルトで対応していますが、その他の言語についてはインテリセンスが対応していれば、という感じのようです。
エディタで開く最大数の設定が可能に
使用している Language Server やコンテンツのサイズにもよりますが、概ね1つのエディタで 50MB 以上メモリを使用する計算で20枚もエディタを開くと 1GB くらいメモリを消費していく計算になります。
そこに開発用の動作環境などを足していくとメモリなんてあっという間になくなりますよね。
そこで VSCode で開くエディタの上限を設定する機能が追加されました。
こちらを使って VSCode が使用するメモリをある程度制限することが可能になりました。
- workbench.editor.limit.enabled
- workbench.editor.limit.perEditorGroup
- workbench.editor.limit.value
上記3つの設定項目が追加されていますので、それぞれの役割を確認したいと思います。
まずは、 workbench.editor.limit.enabled ですが、こちらはエディタの上限設定を有効にするかという項目です。
デフォルトでは off になっていて、無効化されています。
次に workbench.editor.limit.perEditorGroup です。
こちらはエディタの最大数の設定を、エディタグループ単位で適用するか、エディタグループ全体に適用するかという項目です。
エディタグループ単位だとリソース制限というより、エディタのタブが小さくなりすぎないようにという方向の制御のようにも思えますね。
最後は workbench.editor.limit.value ですが、これは開くエディタの最大数です。
デフォルトで10になっています。
Insiders エディションで新機能が続々お披露目されてます
現在のマイルストーンで明記されているタイムライン機能がプレビューになりました。
これはファイル単位でコミット履歴を確認する機能で、 gitlens のコミット履歴では追いにくかったファイルごとの過去の修正履歴が簡単に確認できるようになりました。
timeline API も既に追加されているようで、拡張機能で利用することもできるようです。
さらに検索機能も一新されるようで、新しい検索機能は、サイドバーやパネル上に表示されるものではなく、エディタとして表示されるものになるようです。
使ってみた感じで一番違うのは、検索結果がエディタに表示されるため、結果をファイルとして出力することができること。
複数の検索結果を保持できなかったのは、ずーっとこんな感じだったので既に不便とも思わなくなっていましたが、言われてみれば保存できた方がいい。
エディタになった分、表現の自由度は飛躍的に上がっていて、非常に見やすいなと思いました。
また、検索結果の場所まですぐに移動できるリンクがあるので、使用感はほぼ以前のままです。
以上の機能は本家ではなく、 Insiders で公開されています。
まとめ
今回は設定周りの機能追加が多かった印象でしたがいかがだったでしょうか?
紙幅の関係上紹介できなかった、保存時にコンフリクトした場合のデフォルト動作指定や、コードフォールディングされた行をハイライトする機能など細かい気の利いた機能の追加などもありますので試してみてください。
機能評価版という位置づけの Visual Studio Code Insiders はタイムラインや新しい検索機能など、今後楽しみな機能を先取りして試せるため、インストールしてみると楽しいと思います。
本当に一瞬困惑でした
双子に気を取られすぎて商品みてなかったんですが、4600yenですか...
以上です。