しばたテックブログ

気分で書いている技術ブログです。

Visual Studio Code PowerShell拡張の設定まとめ

前回のエントリでコードフォーマットに関する設定をまとめましたが、折角なのでほかの設定もまとめてみました。

stknohg.hatenablog.jp

今回説明する設定はすべてsettings.jsonの項目になります。

1. 拡張機能に関する設定

最初に拡張機能そのものに関する設定について記載します。

powershell.startAutomatically (Ver.0.11より)

PowerShellのスクリプトファイルを開いた際にPowerShell拡張を自動的に開始するか否かを設定します。
デフォルトtrueです。

この設定をfalseにした場合、

> PowerShell: Restart Current Session

コマンドを明示的に実行しないと拡張が有効になりません。

このオプションはマシンスペックの低い環境や、拡張の起動よりもファイルの内容を参照することを優先させたい場合に使う事を想定しているそうです。

powershell.useX86Host (Ver.0.5より)

64bit OSの環境で32bit版の拡張機能を利用するか否かを設定します。
デフォルトfalseです。

32bit OSの環境でこのパラメーターを設定しても何も起きません。

powershell.enableProfileLoading (Ver.0.6より)

Powershell拡張の起動時にプロファイル(profile.ps1Microsoft.VSCode_profile.ps1)をロードするか否かを設定します。
Ver.0.6.1からデフォルト値がtrueになっています。(Issue #180)

プロファイルについての詳細は、

stknohg.hatenablog.jp

のエントリを参考にしてください。

なお、デバッガはこの設定の影響を受けません。

powershell.developer.powerShellExePath (Ver.0.7.1より)

デフォルトでないPowerShellを使う場合にその実行ファイルのパスを指定します。
デフォルト値は""(デフォルトのPowerShellを使う)です。

このパラメーターはVer.1.4.0よりpowershell.powerShellExePathに移行され、非推奨となりました。

powershell.powerShellExePath (Ver.1.4.0より)

デフォルトでないPowerShellを使う場合にその実行ファイルのパスを指定します。
デフォルト値は""(デフォルトのPowerShellを使う)です。

powershell.developer.editorServicesLogLevel (Ver.0.4より)

PowerShell Editor Servicesのログレベルを設定します。
設定可能な値はVerboseNormalWarningErrorで、デフォルト値はNormalです。

この設定はPowerShell拡張でエラーが出た場合の調査用ですので、通常この内容を変える必要はありません。

ちなみにログフォルダは、

> PowerShell: Open PowerShell Extension Logs Folder

コマンドで開くことができます。

2. Integrated Terminal(Integrated Console)に関する設定

PowerShell拡張Ver.0.10より統合ターミナル(Integrated Terminal)にPowershell拡張独自のコンソール(Integrated Console)が使える様になりました。
ここではIntegrated Consoleに関わる設定について記載します。

powershell.integratedConsole.showOnStartup (Ver.0.11より)

PowerShell拡張の起動時にIntegrated Consoleを起動するか否かを設定します。
デフォルトtrueです。

powershell.integratedConsole.focusConsoleOnExecute (Ver.0.11より)

スクリプト実行時にIntegrated Consoleにフォーカスを移すか否かを設定します。
デフォルトtrueです。

3. コード支援に関する設定

PowerShell Script Analyzer等のコード支援機能にかかわる設定について記載します。

powershell.scriptAnalysis.enable (Ver.0.2より)

PowerShell Script Analyzerによるリアルタイムコード分析を有効にするか否かを設定します。
デフォルトtrueです。

powershell.scriptAnalysis.settingsPath (Ver.0.6より)

ユーザー独自のPowerShell Script Analyzer設定ファイルを指定します。
デフォルト""です。

この設定により既定の動作を上書きできる様になります。
設定例についてはこちらをご覧ください。

4. その他の設定

最後にその他の、おもに中の人向けの設定について記載します。

ここで説明する内容ついては自信の無い部分もありますので、もし間違いがあればご指摘いただけると助かります。

powershell.developer.editorServicesWaitForDebugger (Ver.0.2より)

この設定をtrueにするとPowerShell Editor Serviceを/waitForDebuggerパラメーター付きで起動します。
細かいところはよくわからないのですが、ざっとソースを調べた限りではこのパラメーターが指定されるとPowerShell Editor Serviceの起動時にデバッガからアタッチされるのを待ち続ける様です。

おそらく中の人向けの機能だと思われます。

powershell.developer.bundledModulesPath (Ver.0.7.1より)

リリースノートに明記されていないのですが、コミットログを追う限りVer.0.7.1から導入されている様です。

もともとはPowerShell拡張で使われるモジュール(PowerShell Editor ServicesPowerShell Script AnalyzerPlasterなど)のパスを設定するものだったのですが、Ver.0.10から中の人向けの機能になった様です。

デフォルト値は"../modules/"から""に変更されています。

powershell.developer.featureFlags (Ver.0.11より)

PowerShell拡張で実験的な機能を有効にするためのフラグを設定するそうです。
デフォルト値は空の配列です。

ただ、現時点でここに設定可能なフラグはない様で今後のリリースで増えていくものと思われます。
この設定はStart-EditorServices.ps1-FeatureFlagsパラメーターとしてPowerShell Editor Serviceに渡されるのですが、ソースを見ればわかりますが、現時点ではスクリプト内で全く使われていません。

powershell.developer.powerShellExeIsWindowsDevBuild (Ver.0.9より)

実行しているPowerShellが開発者向けビルドであることを明示するための設定です。
デフォルトfalseです。

完全に中の人向けの設定で、この設定により何が起こるのかは全くわかりません。

最後に

ざっとですがPowerShell拡張の設定をまとめてみました。
フォーマットに関する設定同様このエントリの内容は随時更新していきたいと思います。