Re: EmacsでPerl開発する上で必須な設定 #2 - flymake - antipop

EmacsでPerl開発する上で必須な設定 #2 - flymake - Kentaro Kuribayashi's blog
Catalystで、C::E::HTTP::Restarterを使ってると、flymakeが作ったFoo_flymake.pmを検出して勝手に再起動しまくるので超困る。
C::E::HTTP::RestarterがFoo_flymake.pmを認識できなくなればいいのですが、生成ディレクトリを変えてしまうとINCのパスがあわなくなってしまうので、ファイル名が*.pmにならないようにして使ってます。

 (defun flymake-perl-init ()
-  (let* ((temp-file (flymake-init-create-temp-buffer-copy
-                     'flymake-create-temp-inplace))
+  (let* ((buffer-file-name (concat buffer-file-name ".flymake"))
+         (temp-file (flymake-init-create-temp-buffer-copy
          (local-file (file-relative-name
                       temp-file
                       (file-name-directory buffer-file-name))))
     (list "perl" (list "-wc" local-file))))

あーでもmyapp_server.plのrestartregexオプションを設定した方がいいかも。どちらかをお好みでどうぞ。

% perl ./myapp_server.pl -restartregex='^.*(?<!_flymake)\.pm$' -d -r


何にせよ、id:antipop++