Perlモジュールのソースをその場で開くelisp
M-x describe-key RET C-xC-f が find-file-at-point になっていない人は、是非 .emacs に
(ffap-bindings)
を加えましょう。
さて、find-file-at-pointのperldoc用拡張です。
use DBIx::Class;
とある時、DBIx::Classの上でfind-file-at-pointを実行すると
Find file or URL: c:/Cygwin/lib/perl5/site_perl/5.8/DBIx/Class.pm
のように補完されます。
(defun ffap-cperl-mode (file) (if (string-match "::" file) (let ((real-file (shell-command-to-string (concat "perldoc -l " file)))) (string-match "\n*$" real-file) (ffap-locate-file (replace-match "" t t real-file) t) ))) (add-to-list 'ffap-alist '(cperl-mode . ffap-cperl-mode))
ただ、::が入ってないとダメだったり、::が入っててもうまく補完できないものがあったり、バグだらけです。
誰かが直してくれると嬉しい。