私が歌川です

@utgwkk が書いている

VSCodeでPerlのpackage宣言を挿入してくれるperl-insert-packageっていう拡張機能を出した

Perlでモジュールを書くとたいてい先頭に

package Hoge::Fuga::Piyo::Payo;

のような宣言を書くことになると思います*1。 最初のうちはいいけど、名前空間がだんだん複雑になっていくと、これは単に写してるだけでは?? となってきます。

ところで、ファイルパスからパッケージ名への変換は、たいていの場合すごく素朴に行えるのではないでしょうか。

  • 先頭の lib/ を消す
  • 拡張子の .pm を消す
  • /:: に変換する

ということでそれをコマンド1つで実行してカーソルの位置に挿入してくれる拡張機能を作って出しました。ご活用お待ちしております。

marketplace.visualstudio.com

利用方法は以下の動画が全てを物語っています。

2019/10/29追記: このたび、コマンドだけでなく補完にも対応しました。よりストレスフリーにパッケージ宣言ができるようになりました。

2019/10/29追記: このたび、 packa と打つまで補完されないようにしました。何を打ってもどこでも補完されるとさすがにうっとおしいし、 pack という組み込み関数とかぶるからです。

Image from Gyazo

Image from Gyazo

動機

VSCodeスニペットにはVariable Transformsという機能があって、ファイルパスが入った変数に対して正規表現でエイヤッと置換したスニペットを吐く機能があります。 それだけでできるのではと思ったけど、微妙に表現力が足りなかったので拡張機能にしました。

これぐらい単純なのだともうあるのでは、と思ったけどmarketplaceで探した限り見つからなかったので、公開しました。

*1:Perl歴が浅いので間違ってたら誰か教えてください