Visual Studio Code 1.33 リリース! VSCode のロードマップを見てワクワクしてみる
こんにちは。
開発チームのワイルド担当、まんだいです。
Visual Studio Code (以下、 VSCode )の1.33がリリースされましたので、今回も新しい機能やアップデートされた内容を独自の切り口でお伝えしていきたいと思います。
お伝えしようと思ったんですが...。
今回のリリースでは、機能面で私の心に刺さった内容があまりなく、ソース管理画面に表示されているリポジトリの表示/非表示が切り替えられる、といった内容くらいしか興味が湧きませんでした(これはこれですごくいいと思います!)。
ただ、これだけだとお伝えできる内容が全くなく、それはそれで私も困ってしまうのです。
「おいおい、最近のアップデート内容は少し小粒じゃないのか?」
「概ね必要な機能は揃ってきたよね」
「サイトの説明には、 Visual Studio Code is a lightweight but powerful source code editor って書いてあるけど、最近のメモリの使い方はヘビーだよね」
色々皆さんも思うところはあるんじゃないでしょうか?
小粒なアップデート(失言)でお茶を濁している間も、きっとどデカいアップデートを用意しているに違いありません。
今回は ロードマップを読みながら、 VSCode の進化を想像してワクワクする、そういった内容でお届けしようと思います。
ロードマップってなんだ?
VSCode のロードマップは Roadmap · Microsoft/vscode Wiki にありますが、ここには VSCode の2019年で追加していく機能や、対応していくユーザーからのリクエストが書かれています。
どのタイミングでどういう機能が追加されていくのかは、技術的に越えなければいけない壁があったり、人的リソースであったりといった部分があるので明記されていませんが、新機能の追加やバグフィックスなど、ジャンルごとにまとめられていて見ているだけでワクワクしますね。
では、どんな機能が追加される予定なのか、見ていきたいと思います。
ユーザー投票第一位のフローティングウィンドウ
ユーザーからの要望で一番人気があったワークベンチのフローティング化。
ワークベンチがフローティングできるようになると、人によっては VSCode の使い方がガラッと変わるんじゃないでしょうか。
今は一枚のウィンドウの中で、ペインを切り替えたり、表示/非表示を巧みに操ってなんとか画面を整理しながら使っている感がありますが、フローティングできるようになれば、もっと画面を広々使えます。
コーディング環境の PC がマルチディスプレイだという方も多いと思いますが、フローティングできるようになれば、他の画面にターミナルを表示させてエディターを縦にいっぱい表示させられるようになり、作業が捗ること間違いなしです。
話の中でフローティングさせるワークベンチの要素だけでなく、ターミナルやエディタなども含んでいるような書き方になっているため、画面構成の自由度が一気に増すんじゃないかと思っています。
この機能の要望は、かなり前から目にはしていましたがなかなか実現される気配はありません。
どうやら VSCode というよりも、 VSCode の下で動いている Electron 、もしくは Electron が内包する Chromium に起因する問題が根底にある様子。
ざっくりいうと、ウィンドウを立ち上げることは可能だけれど、それぞれのウィンドウ同士でメモリを共有することはできないため、状況としては VSCode を複数立ち上げることを変わらないリソースを消費してしまうこと。
そうなると、 VSCode はいよいよ Lightweight なエディタではなくなってしまうぞ、ということ。
何らかの迂回策が見つかるのか、 Electron にこれを解決する API が追加されるのか、どちらにしてもウィンドウ間でのメモリ共有に関する部分は、 Chromium のブラウザとしてのセキュリティ機構にも関わってくる問題なので、なかなか実現までの道のりは遠いようです。
ですが、今までも私達がびっくりするような機能をどんどん追加してきた VSCode ですから、何らかの解決法が見つかって、マルチディスプレイで目一杯ウィンドウを並べて快適にコーディングする日はいつか来る、と私は確信しています。
ちなみにですが、ユーザーリクエストの2位がターミナルの分離で、3位が拡張機能を追加する際の再起動をなくす、いう順になっています。
拡張機能追加時の再起動については、前々回あたりのアップデートで無事反映されましたね。
拡張機能のお試しが気軽にできるようになって捗っています!
UX の改善
ワークベンチやエディタなど、メインの部分に目が行きがちですが UX も考えながら 細かい改善が行われているようです。
例えば VSCode では、複数のターミナルを同時に起動させることができますが、切り替えはドロップダウンメニュー方式になっています。
どうやらこれをタブ化する計画があるようです。
タブになれば、目的のタブをクリックするだけでターミナルを切り替えることが可能ですし、視認しやすくもなります。
心配な点があるとすれば、既にあるタブとの競合。
どうにかうまい解決法が見つかってもっと使いやすくなればいいなと思います!
拡張機能について
拡張機能を使う人にとっては、拡張機能を探すのもなかなか骨が折れる作業です。
先にもご紹介しましたが、拡張機能のインストールを再起動なしでできるようになって以来、試すという行動に対する心理的ハードルがグッと下がりましたが、良い拡張機能を探す、という部分にはまだまだ苦労することが多いなと感じます。
VSCode には、拡張機能のレコメンドがあるのですが、これの改善も計画されているようです。
何をどう改善する予定なのか、詳しいことまで書いてありませんでしたが新しい出会いがあるかも知れませんね。
拡張機能を導入することで少なからずセキュリティ面の心配もありますが、こちらについても色々と検討されている様子。
また、拡張機能の特定のバージョンだけをアンインストールする機能も予定にあるようです。
これはどういうことかというと、とある拡張機能のとあるバージョンで問題が発生した場合、拡張機能自体をアンインストールするのではなく、このバージョンの拡張機能をアンインストールし、問題が解決された場合、自動的に新しいバージョンの拡張機能をインストールした後自動的に有効化される、といった機能になるようです。
アンインストールというか、どちらかというと無効化に近い気もしますが、問題が解決した場合に新しいバージョンを自動的に導入するという部分は、何を持って解決とするか、またはそもそも何が原因だと認識するのか、こういった部分も機能が追加された際には色々見ていきたいなと思います。
コーディングに関する改善
VSCode をコードエディタとして利用される場合は多いと思いますが、コーディングに関する改善や機能追加も幾つかありますのでご紹介します。
まずは、選択範囲の拡張から。
選択範囲を拡張するコマンド( Shift + Alt + → ) に改善が行われるようです。
具体的にどのような改善が行われるのかというと、プログラム言語によって異なる文法や文脈の意味を理解して、意味のある単位できれいに選択範囲を拡張していくようになる、ということのようです。
また、プログラム言語を解析してコードヒントやフォーマットなど色々な機能を提供する上で必要な Language Server の機能追加も順調に進んでいるようです。
まとめ
1.33 のアップデート内容に衝撃を受けたのでロードマップまで引っ張り出してみましたが、いかがだったでしょうか?
他にも色々ありますが、まだまだ希望が持てるアップデートが目白押しでホッとしたなという気持ちでいっぱいです。
これからもバージョンアップの際は、私の独断と偏見でピックアップした追加機能や改善をまとめていきたいと思っていますので、どうぞよろしくお願いいたします。
以上です。