Visual Studio CodeとPowerShellエクステンション

前回、PowerShell Coreの作業環境としてVisual Studio CodeとPowerShellエクステンションを紹介した。本格的にPowerShell Coreでスクリプトを組むことになると、こうした統合開発環境を使いたくなってくる。

前回はインストールする方法で終わったが、今回はPowerShellエクステンションがどのような機能を提供するのかを解説する。

なお、今回取り上げる内容はMicrosoftが提供しているドキュメント「PowerShell editing with Visual Studio Code」にも掲載されている。一通り操作して慣れてきたら、そちらも参照しながらステップアップしてもよいだろう。

PowerShellエクステンションを試してみよう

前回、Visual Studio CodeにPowerShellエクステンションをインストールしたわけだが、PowerShellエクステンションにはサンプルコードが含まれている。これを編集してPowerShellエクステンションの機能を試してみよう。

まず、メニューからフォルダオープンを選択し、ユーザのホーム以下の「.vscode/extensions/ms-vscode.powershell-*/examples」を選択する。*はバージョン番号になっている部分なので、適宜読み替えて欲しい。なお、macOSだとドットからはじまる隠しフォルダは見えないと思うので、その場合には選択ダイアログでCommand-Shift-.を押して隠しフォルダを表示させてから選択を行う。

.vscode/extensions/ms-vscode.powershell-*/examplesを開く

サンプルからファイルを選択すると、Visual Studio Codeの表示が次のように変わる。ここで注目したいのは、右下に「PoewrShell 6.2」といった表示が現れる点と、ターミナルが自動的に「PowerShell Integrated Console」に切り替わることだ。この段階ですでにPowerShellエクステンションが有効に動作している。

PowerShellエクステンションが有効になっており、ファイルを開くだけで準備が整う

なお、先に触れておくが、PowerShellエクステンションの動作そのものは設定から変更できるようになっている。メニューから設定を選択すると次のスクリーンショットのように「PowerShell Configuration」という項目があることを確認できる。ある程度PowerShellエクステンションの動作を把握したら、設定を探ってみるとよいだろう。

PowerShellエクステンションの振る舞いも設定できる

PowerShellエクステンションを有効にしておくと、PowerShellスクリプトを編集する最中もさまざまなヘルプが機能することがわかると思う。

たとえば、コマンドレットにマウスをホバーさせると、次のようにそのコマンドレットの使い方が表示される。

コマンドレットの使い方がホバー表示される

また、問題があるとされるコードには自動的に注意というか、波下線が表示されており、その部分にマウスをホバーさせるとその理由が表示されるようになる。次のサンプルの場合なら、「Excludeという変数が作成されているが、この変数は一度も使われていない」というメッセージが表示されている。

定義しているものの使われていない変数にワーニングが表示される

ある程度のサイズのスクリプトを作成するようになるとデバッグ機能が使いたくなってくる。PowerShellエクステンションを使うとデバッグも実施できる。

エディタ部分の左端にデバッグ用のブレークポイントを設定する領域があるので、ここをクリックしてからデバッグを実行すれば設定したブレークポイントで処理が停まるようになる。

デバッグ機能を使った動作例

PowerShellエクステンションは関数が使われている部分を表示する機能も提供されている。これもなかなか便利な機能だ。

たとえば、関数定義部分を見ると、次のスクリーンショットのように「数字 references」という表示があることを見つけることができる。

関数の被参照数

「数字 references」はクリックできるようになっており、クリックすると次のように関数が使われているコードがその場に表示されるようになる。なかなか便利な機能だ。

関数が使われている部分のコードが表示される

PowerShellエクステンションが提供している機能は、Visual Studio Codeのほかのプログラミング言語向けエクステンションが提供している機能とよく似ている。

PowerShellエクステンションが提供している特徴的な機能としてはこんなところだろう。シンタックスハイライトだけでもかなり便利なのだが、いろいろを自動的にヘルプしてくれるので助かる。

最初は戸惑う方もいるかもしれないが、Visual Studio Codeはとても便利なアプリケーションなのでぜひもと慣れて使っていってもらいたい。

参考資料