Workspace Trust 大幅調整入りました。 VisualStudioCode 1.5.8 リリース
目次
こんにちは。
開発チームのワイルド担当、まんだいです。
前回のバージョンアップで急に「このフォルダー内のファイルの作成者を信頼しますか?」と出てくるようになった Visual Studio Code (以下、VSCode) ですが、先日 1.58 がリリースされました。
しばらくぶりではありますが、1.58 の主要なアップデート内容をリリースノートからご紹介していきたいと思います。
やっぱり調整が入った Workspace Trust
やっぱりな、という気がしなくもないですが、冒頭でもご紹介した「このフォルダー内のファイルの作成者を信頼しますか?」を表示するか挙動を調整できるようになりました。
そもそもこれはなに?という方は Visual Studio Code Workspace Trust security に詳しいことが書かれているのでご覧いただきたいのですが、VSCode の開発者たちは "we believe it is important that developers can safely browse code" という感じで、この機能が我々のセキュリティリスクの低減に一役買っていることを信じてやまないようです。
とはいえ新しいプロジェクトを開くたびにこのダイアログを見たくない!という人たちが一定数存在するのは容易に想像できますので、調整項目を作ったよ!という形ですね。
ちなみに制限モードで開いてもコードの読み書きは問題なくできるようですが、以下の制限が掛かります。
- タスクの実行(実行できなくなる)
- デバッグの実行(デバッグ起動できなくなる)
- ワークスペースの設定の一部が無効化
- 拡張機能の一部が無効化
得体の知れないオープンソースのコードを github からクローンするといったことを行う場合は制限モードで開くとリスクは減らせるなと思います。
設定画面から「trust」で検索すると幾つか項目が出てきますので少し見ていきましょう。
Banner
この設定で制限モードに移行するか選択するダイアログの表示を制御できます。
- デフォルトは untilDismissed で信頼するかしないか選択すれば、以降はダイアログが表示されません
- always を選択すると、信頼しないを選択した場合、毎回ダイアログが表示されます
- never を選択するとダイアログは表示されません
ダイアログが出なくなるだけで機能は有効のままです。
Empty Window
ワークスペースではない空のウィンドウの場合、 Workspace Trust を有効化するかを設定します。
このオプションを有効化した上で、後述する Untrusted Files と合わせて使うことで空のウィンドウでダイアログを表示させずに信頼したワークスペースと同様の扱いができます。
Enabled
Workspace Trust の機能を有効化 / 無効化します。
変更を有効化するために再起動が必要です。
Startup Prompt
起動時に Workspace Trust のダイアログを表示するタイミングを調整します。
always
信頼していないワークスペースを開く際、起動時に毎回確認のダイアログを表示します。
once
初回のみダイアログを表示し、2回目以降は表示しません。
never
ダイアログは表示しません。
Untrusted Files
ややこしいですが信頼されたワークスペース上でワークスペース外のファイル(これが信頼されていないファイルにあたる)を開く場合の振る舞いを設定します。
デフォルトは Workspace Trust のダイアログを開く「prompt」になっており、ダイアログを表示させずに開く「open」と、新しいウィンドウでファイルを開く「newWindow」があります。
Support Untrusted Workspace
信頼されていないワークスペースでの拡張機能を制御します。
このオプションは、 settings.json を直接編集する必要があり、拡張機能ごとにワークスペースが信頼されているかに合わせて有効化する設定を記載します。
導入している拡張機能の数によってはまぁまぁな作業量を必要としますので、挫けそうですね。
"eamodio.gitlens": { "supported": true "version": "11.6.0" },
上記の JSON は settings.json から抜粋した一部ですが、拡張機能の Unique Identifier をキーとした値を2つ取るオブジェクトが拡張機能1つに対する設定です。
supported は信頼されていないワークスペースでどう起動させるかで、 true の場合は無条件で有効化され、 false の場合は無効化されます。
limited という値もあり、これは拡張機能自体は有効化されますが、拡張機能が持つ信頼を必要とする機能(例えばファイルの実行など)に関しては、対象ファイルの拡張子に合わせて非表示となります。
Transient workspaces ってなんですか?
Transient という見慣れない単語が出てきましたが Transient workspaces もワークスペースの一種のようです。
通常のワークスペースとの違いは2点あるようです。
- VSCode をリスタートやリロードした場合、ワークスペースの再オープンを行わない
- Transient workspaces と設定されたワークスペースは最近使用した項目に表示されない
使い所は局所的ですが、見られると恥ずかしいワークスペースが履歴に出てこなくなる、ブラウザで言うところのプライベートタブ的な扱いができるのかなと思いました。
ターミナルをエディタ扱いできる日が来ました
ターミナルをエディタエリアに移動させられるようになり、より自由度の高いレイアウトが組めるようになりました。
今まではパネルを最大化表示したり、分割レイアウトしたりとあくまでもパネル内での調整しかできなかったターミナルですが、ここに来てエディタ領域へ進出。
やり方は、ターミナルパネルの右側から開いているターミナルを右クリックし、 Move into Editor Area を選択、もしくはドラッグアンドドロップでエディタへ移動させます。
移動させたターミナルのレイアウトの操作感は通常のエディタを変わらず、ターミナルの中の操作感も今までのターミナルと変わらず、といった形なので自然に使えますね。
複数のターミナルをエディタとして並べて表示できるのですが、オペミスにはくれぐれもご注意を。
スクロールバーのサイズ調整ができるようになりました
今までできなかったんだ、と逆に思ってしまった設定ですが、スクロールバーを太くしたり細くしたりといった調整ができるようになりました。
ちょっと調整してみましたが太くしすぎると表示領域が狭まるし、細くするとマウス操作のストレスになるし。
結局デフォルトがいいと思いました。
Markdown プレビューで数式の表示ができるようになりました
Markdown で KaTeX の数式を書くと、正しくプレビューしてくれるようになりました。
まとめ
前回のバージョンアップで Workspace Trust が導入された際に詳しくご紹介できなかったのが悔やまれる今回の記事ですが、ちょうど色々と調整が入ったこともあって合わせてご紹介できてよかったのかなと思いました。
エディタでセキュリティって「どういうことやねん」と思いましたが、導入の経緯を見れば見るほど悪意のあるプログラムは「あやしいリンクを踏むだけではなく github にも存在してしまう時代になってしまったんだな」ということを痛感しました。
Workspace Trust に紙幅をかなり使いましたが、サーバーサイドエンジニア目線でいうと、ターミナルがエディタ扱いできるようになったというのは外せません。
エディタ化できたということは、フローティングできるようになるのももうすぐなの……かも。
最後に
私が所属するシステム開発のサービスサイト「SEKARAKU Lab(セカラク ラボ)」を開設しました。
ビヨンドは、サーバーの設計・構築から運用までをワンストップでお任せいただけますので、サーバーサイド開発でお困りの方はお気軽にお問い合わせください。
SEKARAKU Lab:[https://sekarakulab.beyondjapan.com/](https://sekarakulab.beyondjapan.com/)
以上です。