Perlでモジュールを書くとたいてい先頭に
package Hoge::Fuga::Piyo::Payo;
のような宣言を書くことになると思います*1。 最初のうちはいいけど、名前空間がだんだん複雑になっていくと、これは単に写してるだけでは?? となってきます。
ところで、ファイルパスからパッケージ名への変換は、たいていの場合すごく素朴に行えるのではないでしょうか。
- 先頭の
lib/
を消す - 拡張子の
.pm
を消す /
を::
に変換する
ということでそれをコマンド1つで実行してカーソルの位置に挿入してくれる拡張機能を作って出しました。ご活用お待ちしております。
利用方法は以下の動画が全てを物語っています。
2019/10/29追記: このたび、コマンドだけでなく補完にも対応しました。よりストレスフリーにパッケージ宣言ができるようになりました。
2019/10/29追記: このたび、 packa
と打つまで補完されないようにしました。何を打ってもどこでも補完されるとさすがにうっとおしいし、 pack
という組み込み関数とかぶるからです。
動機
VSCodeのスニペットにはVariable Transformsという機能があって、ファイルパスが入った変数に対して正規表現でエイヤッと置換したスニペットを吐く機能があります。 それだけでできるのではと思ったけど、微妙に表現力が足りなかったので拡張機能にしました。
これぐらい単純なのだともうあるのでは、と思ったけどmarketplaceで探した限り見つからなかったので、公開しました。