;;;; perl-setup.el ;;; Time-stamp: <2006-01-23 16:46:19 john> (add-hook 'perl-mode-hook 'sidebrain-read-todo-from-comments) (makunbound 'perl-address-regexp) (defvar perl-address-regexp " \\(at\\|file\\) `?\\([^ `']+\\)'? line \\([0-9]+\\)" "Pattern to find perl's output indicating a point in a program.") (defun perl-warning-find-file (filename) "A find-file-at-point-hooks function for finding the line of perl mentioned. The argument is ignored, and data around point used instead. If the line containing point does not contain a match for perl-address-regexp, nil is returned." (let ((line-start (point-at-bol)) (line-end (point-at-eol))) (if (or (looking-at perl-address-regexp) (save-excursion (goto-char line-start) (re-search-forward perl-address-regexp line-end t) ) (save-excursion (goto-char line-end) (re-search-backward perl-address-regexp line-start t) )) (let ((filename (match-string 2)) (line-number (string-to-int (match-string 3)))) (message "perl-warning-find-file got file=%s line=%d" filename line-number) (cons filename line-number)) nil))) ;; (add-hook 'find-file-at-point-hooks 'perl-warning-find-file) ;;; end of perl-setup.el