昨日作成したこの機能だが、結局やりたいことは今リファクタリングしたファイルで無駄なuseをしているものを消したいので、サクッと無駄なuseを抽出したいということだった。
ということで現在編集中のファイルに対して、無駄なuseをしているものを探すEmacsの関数を作った。
quickrunを入れておくと使える
(defun git-root-directory () (cond ((git-project-p) (chomp (shell-command-to-string "git rev-parse --show-toplevel"))) (t ""))) (defun check-perl-used-modules () (interactive) (let* ((topdir (git-root-directory))) (quickrun :source `((:command . "perl") (:default-directory . ,topdir) (:exec . ("PERL5LIB=lib:local/lib/perl5:$PERL5LIB %c -MTest::UsedModules -MTest::More -e 'used_modules_ok(\"%s\");done_testing()'"))))))
こんな感じで使える。リファクタリングしてすぐに無駄なuse見つけられて便利。
さらにflycheckのようなツールでエラーが出ると便利そうなのでそういう感じにしたい。