Add vc-annotate-goto-line.
* vc/vc-annotate.el (vc-annotate-goto-line): New command. Based on a previous implementation by Juanma Barranquero (Bug#8366). (vc-annotate-mode-map): Bind it to RET.
This commit is contained in:
parent
7031be6d49
commit
3ba7869ce8
2 changed files with 38 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-04-24 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* vc/vc-annotate.el (vc-annotate-goto-line): New command. Based
|
||||
on a previous implementation by Juanma Barranquero (Bug#8366).
|
||||
(vc-annotate-mode-map): Bind it to RET.
|
||||
|
||||
2011-04-24 Uday S Reddy <u.s.reddy@cs.bham.ac.uk> (tiny change)
|
||||
|
||||
* progmodes/etags.el (next-file): Don't use set-buffer to change
|
||||
|
|
|
@ -128,6 +128,8 @@ List of factors, used to expand/compress the time scale. See `vc-annotate'."
|
|||
(define-key m "p" 'vc-annotate-prev-revision)
|
||||
(define-key m "w" 'vc-annotate-working-revision)
|
||||
(define-key m "v" 'vc-annotate-toggle-annotation-visibility)
|
||||
(define-key m "v" 'vc-annotate-toggle-annotation-visibility)
|
||||
(define-key m "\C-m" 'vc-annotate-goto-line)
|
||||
m)
|
||||
"Local keymap used for VC-Annotate mode.")
|
||||
|
||||
|
@ -673,6 +675,36 @@ The annotations are relative to the current time, unless overridden by OFFSET."
|
|||
;; Pretend to font-lock there were no matches.
|
||||
nil)
|
||||
|
||||
(defun vc-annotate-goto-line ()
|
||||
"Go to the line corresponding to the current VC Annotate line."
|
||||
(interactive)
|
||||
(unless (eq major-mode 'vc-annotate-mode)
|
||||
(error "Not in a VC-Annotate buffer"))
|
||||
(let ((line (save-restriction
|
||||
(widen)
|
||||
(line-number-at-pos)))
|
||||
(rev vc-annotate-parent-rev))
|
||||
(pop-to-buffer
|
||||
(or (and (buffer-live-p vc-parent-buffer)
|
||||
vc-parent-buffer)
|
||||
(and (file-exists-p vc-annotate-parent-file)
|
||||
(find-file-noselect vc-annotate-parent-file))
|
||||
(error "File not found: %s" vc-annotate-parent-file)))
|
||||
(save-restriction
|
||||
(widen)
|
||||
(goto-char (point-min))
|
||||
(forward-line (1- line))
|
||||
(recenter))
|
||||
;; Issue a warning if the lines might be incorrect.
|
||||
(cond
|
||||
((buffer-modified-p)
|
||||
(message "Buffer modified; annotated line numbers may be incorrect"))
|
||||
((not (eq (vc-state buffer-file-name) 'up-to-date))
|
||||
(message "File is not up-to-date; annotated line numbers may be incorrect"))
|
||||
((not (equal rev (vc-working-revision buffer-file-name)))
|
||||
(message "Annotations were for revision %s; line numbers may be incorrect"
|
||||
rev)))))
|
||||
|
||||
(provide 'vc-annotate)
|
||||
|
||||
;;; vc-annotate.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue