$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

Emacsで今編集しているPerlコードの無駄なuseを見つける

blog.shibayu36.org

昨日作成したこの機能だが、結局やりたいことは今リファクタリングしたファイルで無駄な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のようなツールでエラーが出ると便利そうなのでそういう感じにしたい。