Commit 282d6eae authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

(next-error-follow-mode, next-error-follow-mode-post-command-hook):

New functions.
(next-error-follow-last-line): New defvar.
parent f5e9cb97
......@@ -249,6 +249,32 @@ If `fringe-arrow', indicate the locus by the fringe arrow."
(const :tag "Fringe arrow" 'fringe-arrow))
:group 'next-error
:version "21.4")
;;; Internal variable for `next-error-follow-mode-post-command-hook'.
(defvar next-error-follow-last-line nil)
(define-minor-mode next-error-follow-mode
"Minor mode for compilation, occur and diff modes.
When turned on, cursor motion in the compilation, occur or diff
buffer determines the cursor in the corresponding buffer to move
to the corresponding position. "
nil " Fol" nil
(if (not next-error-follow-mode)
(remove-hook 'post-command-hook 'next-error-follow-mode-post-command-hook t)
(add-hook 'post-command-hook 'next-error-follow-mode-post-command-hook nil t)
(make-variable-buffer-local 'next-error-follow-last-line)))
;;; Used as a `post-command-hook' by `next-error-follow-mode'
;;; for the *Compilation* *grep* and *Occur* buffers.
(defun next-error-follow-mode-post-command-hook ()
(unless (equal next-error-follow-last-line (line-number-at-pos))
(setq next-error-follow-last-line (line-number-at-pos))
(condition-case nil
(let ((compilation-context-lines nil))
(setq compilation-current-error (point))
(next-error-no-select 0))
(error t))))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment