前回はVisual Studio CodeでPowerShell Coreのソースコードを編集する簡単なサンプルを紹介した。PowerShellエクステンションを使うことでコーディング支援機能が動作し、リッチな編集が可能になることを取り上げた。今回はもっと基本的な使い方、ファイルを作成して一からコーディングしていく場合にどういった操作が行われるのか、そのあたりを取り上げる。

Visual Studio Codeで一からPowerShell Coreファイルを作っていく

Visual Studio Codeを起動してもっともペインというかビューが少ない状態にすると、次のようになる。

Visual Studio Codeを起動

この状態でファイルを新規作成する。メニューから「New File」を選択すればよい。次のようにファイル名がついていない状態(Untitled-1)の編集画面が表示されるはずだ。

ファイル名をつけていない状態のエディタ

この状態でウィンドウの右下に注目してみよう。編集モードが「Plain Text」になっている。まずはこれをPowerShellに変更する。Plain Textをクリックすると次のスクリーンショットのように種類の候補が表示されるので、その中から「PowerShell」を選択する。

編集モードをPlain TextからPowerShellへ変更

次に、ファイル名を指定してファイルを保存する。このとき、保存するファイルの拡張子を.ps1など、PowerShellスクリプトとして認識される拡張子にしておく。すると、次のように右下の編集モードの横に[□ 6.2]といった表示があらわれる。これは実行に使われるPowerShellのバージョンが表示されたものだ。これで実行まで準備が整ったことになる。

PowerShellスクリプトの拡張子を指定してファイルを保存し、実行可能な状態にする

あとはエディタからPowerShell Coreのコードを書いていけばよい。随時Visual Studio Codeが補完を行ってくれるので、慣れてしまうとこれなしにはコードが書けなくなってしまうかもしれない。

まず、何かしらの入力を行うと次のようにリアルタイムに補完候補が表示される。

リアルタイムに補完候補が表示される

この状態でタブを押すと、次のように補完候補のもっとも上になった対象が入力される。

タブを押した結果補完候補が入力された

補完はずっと機能し続ける。コマンドレットを入力したあとは、そのコマンドレットの使い方がツールチップ的に表示される。

コマンドレットの説明が表示されている

次のスクリーンショットは{を入力した後のものだ。閉じカッコとなる}が自動的に入力されていることがわかる。

閉じカッコが自動入力されている

カーソルの存在しているコンテキストでメインとなるコマンドレットの説明が表示され続けながら、さらにカレントカーソルのコマンドレットに対する入力補完が表示されている。

対象コンテキストでメインのコマンドレットの使う方を表示しつつ、さらにカレントカーソルの補完候補も表示

補完候補はオプションにも適用される。-を入力すると、コンテキストを加味して該当するオプション候補を表示してくれる。

オプションについても補完表示

次のスクリーンショットは入力を完了したところだ。この短いコードを入力するだけだが、Visual Studio Codeからはこれでもかと補完候補が表示されたり、コマンドレットの使い方が表示されたりする。

入力が完了した状態

この状態でコードを実行またはデバッグを開始すると、次のようにターミナルで作成したPowerShell Coreのスクリプトが実行される。

作成したコードを実行中

ためしにこの状態でシステムで動作しているプロセスを調べると、次のようにPowerShell Core (pwsh)が実行されていることを確認できる。

実行中はpwshが実行されてることを確認

実行が完了すると結果が統合ターミナルに出力されることも確認できる。

実行結果が統合ターミナルに出力される

こんな感じで、基本的にVisual Studio Codeがあれば開発、デバッグ、実行がひととおりまかなえるようになっている。ターミナルから同じようなことをする場合にはターミナルウィンドウを複数立ち上げるかいったんエディタを終了してからPowerShell Coreスクリプトを実行することになるが、Visual Studio Codeだとそのあたりの切り替えがスムーズになる。

どの環境であれ、ある程度は慣れの問題なので慣れてしまえばどの環境も快適なものだが、Visual Studio Codeはそれでもやっぱり便利な環境といえる。連載の範囲を超えてしまうが、ここで取り上げたような機能はPowerShell Coreのみならずほかのプログラミング言語でも提供されており、一旦操作を身につけてしまえば他のプログラミング言語を扱う場合にも応用できる。使い方を習得しておいて損のないアプリケーションだ。

参考資料