読者です 読者をやめる 読者になる 読者になる

$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

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

tech

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のようなツールでエラーが出ると便利そうなのでそういう感じにしたい。