2022/07/31

VSCode+Perl Navigator で Perl の lib path をよしなにする

Perl Navigator といういわゆる Perl の Language Server を使った VSCode extension があります。とても便利なので VSCode で Perl を書いている人にとっては必須の extension なのですが、Perl の lib path を皆さんどうしているのだろうという疑問があり、ブログを書くことにしました。

まず、自分の環境なんですが、WSL2 on Windows 10 + Ubuntu で VSCode を使っています。Perl App はもちろん Ubuntu 側にありますが、基本的に全部ローカルに収まっています。

さて、Perl Navigator は use されるモジュールのありかを探索するのに、perl -V で見える lib path を使っているようです(まあ、そらそうですよね)。なのですが、自分が編集している Perl App の場合、lib path 自体は App を起動時に解決するようにしているので、グローバルなターミナルでは lib path に追加されていないのです。なので、普通に VSCode を起動すると、use 行に軒並み波線がついてうっとおしい感じになってしまいます。

とはいえ、グローバルなところに App のためだけの lib path を追加しておくのも微妙です。自分の場合は、複数のアプリを扱っているので、lib path が無駄に大きくなるのも嫌なところです。

そこで、 code . するときに export PERL5LIB=$HOME/App/lib; code . という風にして、VSCode の起動時に lib path を渡すラッパーを書いてしのいでいます。一応これでやりたいことは満たされていてあまり不満はないのですが、これ以外に便利な方法はあるのかなと気になっています。

代案としては plenv とかでディレクトリごとの Perl version 切り替えにフックして lib path を解決するとかですかね?(できるか試してないですけど)

なんかいい方法あったら教えてください。

あと、Perl向けの extensionでは Better Perl Syntax がいい感じです。

明日からは8月です。暑すぎます。

【追記】

@AnaTofuZ さんに プロジェクト配下の .vscode ディレクトリに設定ファイル置くといいよ って教えてもらいました。感謝!

サイト内検索