;;;; Flymake support for PerlySense (require 'flymake) (defun flymake-perlysense-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list "perly_sense" (list "flymake_file" (format "--file=%s" local-file))))) (setq flymake-allowed-file-name-masks (append '(("\\.pl\\'" flymake-perlysense-init)) '(("\\.pm\\'" flymake-perlysense-init)) '(("\\.t\\'" flymake-perlysense-init)) flymake-allowed-file-name-masks)) (add-hook 'cperl-mode-hook 'flymake-mode t) (defun ps/flymake-display-err-for-current-line () "Display a menu/message (depending on display capabilities and customization) with errors/warnings for current line if it has errors and/or warnings." (interactive) (if (and (display-popup-menus-p) (not ps/flymake-prefer-errors-in-minibuffer)) (flymake-display-err-menu-for-current-line) (ps/flymake-display-err-message-for-current-line) ) ) (defun ps/flymake-display-err-message-for-current-line () "Display a message with errors/warnings for current line if it has errors and/or warnings." (interactive) (let ((err (get-char-property (point) 'help-echo))) (when err (message err))) ) (global-set-key (format "%ssn" ps/key-prefix) 'flymake-goto-next-error) (global-set-key (format "%ssp" ps/key-prefix) 'flymake-goto-prev-error) (global-set-key (format "%sss" ps/key-prefix) 'ps/flymake-display-err-for-current-line) ;;END