1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00

(bug-reference-map): Bind down-mouse-1 rather than mouse-1.

(bug-reference-url-format): Autoload safe if string.
(bug-reference-bug-regexp): Make space after "bug" optional.
(bug-reference-fontify): Save match data.
This commit is contained in:
Glenn Morris 2008-06-21 20:13:48 +00:00
parent a86a16098e
commit bffc65597f

View file

@ -32,7 +32,7 @@
(defvar bug-reference-map
(let ((map (make-sparse-keymap)))
(define-key map [mouse-1] 'bug-reference-push-button)
(define-key map [down-mouse-1] 'bug-reference-push-button)
(define-key map (kbd "C-c RET") 'bug-reference-push-button)
map)
"Keymap used by bug reference buttons.")
@ -43,8 +43,11 @@
The bug number is supplied as a string, so this should have a single %s.
There is no default setting for this, it must be set per file.")
;;;###autoload
(put 'bug-reference-url-format 'safe-local-variable 'stringp)
(defconst bug-reference-bug-regexp
"\\(?:[Bb]ug #\\|PR [a-z-+]+/\\)\\([0-9]+\\)"
"\\(?:[Bb]ug ?#\\|PR [a-z-+]+/\\)\\([0-9]+\\)"
"Regular expression which matches bug references.")
(defun bug-reference-set-overlay-properties ()
@ -74,17 +77,18 @@ There is no default setting for this, it must be set per file.")
;; Remove old overlays.
(bug-reference-unfontify beg-line end-line)
(goto-char beg-line)
(while (and (< (point) end-line)
(re-search-forward bug-reference-bug-regexp end-line 'move))
(when (or (not bug-reference-prog-mode)
;; This tests for both comment and string syntax.
(nth 8 (syntax-ppss)))
(let ((overlay (make-overlay (match-beginning 0) (match-end 0)
nil t nil)))
(overlay-put overlay 'category 'bug-reference)
(overlay-put overlay 'bug-reference-url
(format bug-reference-url-format
(match-string-no-properties 1)))))))))
(save-match-data
(while (and (< (point) end-line)
(re-search-forward bug-reference-bug-regexp end-line 'move))
(when (or (not bug-reference-prog-mode)
;; This tests for both comment and string syntax.
(nth 8 (syntax-ppss)))
(let ((overlay (make-overlay (match-beginning 0) (match-end 0)
nil t nil)))
(overlay-put overlay 'category 'bug-reference)
(overlay-put overlay 'bug-reference-url
(format bug-reference-url-format
(match-string-no-properties 1))))))))))
;; Taken from button.el.
(defun bug-reference-push-button (&optional pos use-mouse-action)