Visual Studio Code
ここしばらくは今後利用の増加が見込まれるMicrosoftのターミナルアプリケーション「Windows Terminal」について取り上げてきた。これまでPowerShell Coreの使用はターミナルアプリケーションで入力して実行するスタイルを中心的に取り上げてきているので、利用するターミナルアプリケーションは重要だ。
これからはPowerShell Coreをシェルスクリプトの形で利用するスタイルも取り上げていく。そういった場合にはエディタというか開発環境が欲しくなってくるのだが、ここでは最近特に人気のある「Visual Studio Code」を取り上げようと思う。
Visual Studio CodeはMicrosoftが開発を進めているオープンソースソフトウェアのエディタであり開発環境。WindowsのみならずmacOSやLinuxでも動作し、高い人気を誇っている。提供する機能はモダンで軽量、サクサクと動作しかゆいところに手が届くものをデフォルトで提供している。エクステンションで機能を拡張することができ、ラインナップも充実している。今後もしばらくはスタンダードのひとつであり続ける勢いだ。
Windowsで動作するVisual Studio CodeであればWindows PowerShellには対応している。しかし、PowerShell Coreに対応させる場合、ちょっと設定を変更する必要がある。今回はこのあたりを説明しておく。
Visual Studio CodeとPowerShell Core
Visual Studio Codeにはターミナル機能が統合されてる。このため、実は、Visual Studio Codeをターミナルアプリケーションの代わりに利用することもできる。エディタとターミナルの双方の機能が提供されており、開発者にとって合理的なアプリケーションだ。
この統合ターミナルを起動すると、次のようにシステムごとにデフォルトのシェルが実行される。たとえばmacOSなら次のようにbash (/bin/bash)が実行される。
ここからpwshコマンドを実行すれば、統合ターミナルでPowerShell Coreを使用することができる。連載でこれまでに取り上げてきた使い方は主にこの方法だ。しかし、Visual Studio Codeではデフォルトで実行されるシェルを変更することができる。インタラクティブシェルとしてもPowerShell Coreしか使わない、ということであれば、デフォルトのシェルをPowerShell Coreに変更してしまう方法が利用できる。
デフォルトのシェルを変更するには、Visual Studio Codeの設定パネルを起動し、検索キーワードに「terminal.integrated.shell」と入力して候補を絞り込み、「The path of the shell that the terminal uses on プラットフォーム名」となっている項目の「Edit in settings.json」をクリックする。プラットフォーム名はWindows、Osx、Linuxのどれかになっていると思う。
次のようにusers.jsonの編集画面が表示される。次のスクリーンショットは編集後の様子だ。
編集内容は次のようにしておく。これはmacOS MojaveでPowerShell Core 6を実行する場合の例だ。Linuxの場合にはosxとなっている部分をlinuxに、Windowsではosxとなっている部分をwindowsと書く必要があるほか、pwshのパスをそれぞれ適切なものに書き換える必要がある。
編集内容 (macOSの場合)
{
"terminal.integrated.shell.osx": "/usr/local/bin/pwsh"
"terminal.integrated.shellArgs.osx": []
}
settings.jsonを編集したあとに保存し、統合ターミナルを新しく起動すると、次のようにデフォルトのシェルとしてPowerShell Coreが起動することを確認できる。
このようにしておけばVisual Studio CodeのターミナルをPowerShell Coreの環境として使用することができる。PowerShell Coreの使用に特化しているならこうした設定もありだろう。
PowerShellエクステンション
MicrosoftはVisual Studio Code向けのPowerShellエクステンションの開発も行っている。PowerShell Coreのシェルスクリプトを書く場合など、ぜひインストールしておきたいエクステンションだ。インストールする場合、Visual Studio Codeのエクステンション検索で「powershell」と検索し、Microsoftの提供しているエクステンションを探し出してインストールすればよい。
MicrosoftのPowerShellエクステンションはVisual Studio Codeに対して次の機能を提供している。
- シンタックスハイライト
- コードスニペット
- コマンドレットおよびそれ以外に対するIntelliSense
- ルールベースの分析機能
- コマンドレットおよび変数の定義へのジャンプ機能
- コマンドレットおよび変数の参照を見つける機能
- ドキュメントシンボル探索機能
- ワークスペースシンボル探索機能
- F8キーによるPowerShellコード選択実行機能
- Ctrl-F1によるカーソル下シンボルのオンラインヘルプ表示
- ローカルスクリプトデバッグ機能
PowerShell Coreを使うにあたってPowerShellエクステンションは必ず使わなければならないというわけではない。しかし、コードの補完入力など、慣れてしまえば強力なツールになることは間違いのないところだ。使ったことがないのであれば、ぜひ一度試しておきたい。