branch: elpa/magit
commit 0daafe08149b406ca0bf200a1ed0a8e4b1c1054a
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>
Clarify that commands run magit-section-movement-hook explicitly
Closes #5394.
---
docs/magit.org | 20 +++++++++++++++-----
docs/magit.texi | 20 +++++++++++++++-----
lisp/magit-log.el | 6 ++++--
lisp/magit-section.el | 5 ++++-
lisp/magit-stash.el | 3 ++-
lisp/magit-status.el | 9 ++++++---
6 files changed, 46 insertions(+), 17 deletions(-)
diff --git a/docs/magit.org b/docs/magit.org
index bcf81777db3..f5fe1756f1b 100644
--- a/docs/magit.org
+++ b/docs/magit.org
@@ -891,6 +891,12 @@ To move within a section use the usual keys (~C-p~, ~C-n~,
~C-b~, ~C-f~ etc),
whose global bindings are not shadowed. To move to another section use
the following commands.
+The section movement commands described here run the hook
+~magit-section-movement-hook~. Note that they explicitly run that hook
+and that aribrary other movement, defined in Emacs and other packages,
+do not run that hook. That hook, and hook functions that can be added
+to it, or are part of its default value, are described below.
+
- Key: p (magit-section-backward) ::
When not at the beginning of a section, then move to the beginning
@@ -931,8 +937,10 @@ remove function that haven't even been added yet, for
example:
- Variable: magit-section-movement-hook ::
- This hook is run by all of the above movement commands, after
- arriving at the destination.
+ This hook is run by all of the above section movement commands,
+ after arriving at the destination. It is *not* run by arbitrary other
+ movement commands (such as ~next-line~), which are provided by Emacs
+ or third-party packages.
- Function: magit-hunk-set-window-start ::
@@ -999,9 +1007,11 @@ remove function that haven't even been added yet, for
example:
Delay before automatically updating the other window.
- When moving around in certain buffers, then certain other buffers,
- which are being displayed in another window, may optionally be
- updated to display information about the section at point.
+ When moving around in certain buffers using Magit's own section
+ movement commands (but not other movement commands), then certain
+ other buffers, which are being displayed in another window, may
+ optionally be updated to display information about the section at
+ point.
When holding down a key to move by more than just one section, then
that would update that buffer for each section on the way. To
diff --git a/docs/magit.texi b/docs/magit.texi
index 112bb136bee..22ee57f5e5f 100644
--- a/docs/magit.texi
+++ b/docs/magit.texi
@@ -1080,6 +1080,12 @@ To move within a section use the usual keys (@code{C-p},
@code{C-n}, @code{C-b},
whose global bindings are not shadowed. To move to another section use
the following commands.
+The section movement commands described here run the hook
+@code{magit-section-movement-hook}. Note that they explicitly run that hook
+and that aribrary other movement, defined in Emacs and other packages,
+do not run that hook. That hook, and hook functions that can be added
+to it, or are part of its default value, are described below.
+
@table @asis
@item @kbd{p} (@code{magit-section-backward})
@kindex p
@@ -1126,8 +1132,10 @@ remove function that haven't even been added yet, for
example:
@end lisp
@defvar magit-section-movement-hook
-This hook is run by all of the above movement commands, after
-arriving at the destination.
+This hook is run by all of the above section movement commands,
+after arriving at the destination. It is @strong{not} run by arbitrary other
+movement commands (such as @code{next-line}), which are provided by Emacs
+or third-party packages.
@end defvar
@defun magit-hunk-set-window-start
@@ -1194,9 +1202,11 @@ in another window of the same frame.
@defopt magit-update-other-window-delay
Delay before automatically updating the other window.
-When moving around in certain buffers, then certain other buffers,
-which are being displayed in another window, may optionally be
-updated to display information about the section at point.
+When moving around in certain buffers using Magit's own section
+movement commands (but not other movement commands), then certain
+other buffers, which are being displayed in another window, may
+optionally be updated to display information about the section at
+point.
When holding down a key to move by more than just one section, then
that would update that buffer for each section on the way. To
diff --git a/lisp/magit-log.el b/lisp/magit-log.el
index 3c4ac21d9a1..28266d62548 100644
--- a/lisp/magit-log.el
+++ b/lisp/magit-log.el
@@ -1530,7 +1530,8 @@ exists mostly for backward compatibility reasons."
(defun magit-log-maybe-update-revision-buffer (&optional _)
"When moving in a log or cherry buffer, update the revision buffer.
-If there is no revision buffer in the same frame, then do nothing."
+If there is no revision buffer in the same frame, then do nothing.
+See also info node `(magit)Section Movement'."
(when (derived-mode-p 'magit-log-mode 'magit-cherry-mode 'magit-reflog-mode)
(magit--maybe-update-revision-buffer)))
@@ -1558,7 +1559,8 @@ If there is no revision buffer in the same frame, then do
nothing."
(defun magit-log-maybe-update-blob-buffer (&optional _)
"When moving in a log or cherry buffer, update the blob buffer.
-If there is no blob buffer in the same frame, then do nothing."
+If there is no blob buffer in the same frame, then do nothing.
+See also info node `(magit)Section Movement'."
(when (derived-mode-p 'magit-log-mode 'magit-cherry-mode 'magit-reflog-mode)
(magit--maybe-update-blob-buffer)))
diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index 5eac6753a9e..e162982a13d 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -106,7 +106,8 @@ similar defect.")
(defvar magit-section-movement-hook nil
"Hook run by `magit-section-goto'.
-That function in turn is used by all section movement commands.")
+That function in turn is used by all section movement commands.
+See also info node `(magit)Section Movement'.")
(defvar magit-section-set-visibility-hook
(list #'magit-section-cached-visibility)
@@ -874,6 +875,8 @@ If there is no previous sibling section, then move to the
parent."
(run-hook-with-args 'magit-section-movement-hook (magit-current-section)))
(defun magit-section-goto (arg)
+ "Run `magit-section-movement-hook'.
+See info node `(magit)Section Movement'."
(if (integerp arg)
(progn (forward-line arg)
(setq arg (magit-current-section)))
diff --git a/lisp/magit-stash.el b/lisp/magit-stash.el
index 4ceea526c32..1ca279db7ad 100644
--- a/lisp/magit-stash.el
+++ b/lisp/magit-stash.el
@@ -569,7 +569,8 @@ instead of \"Stashes:\"."
(defun magit-stashes-maybe-update-stash-buffer (&optional _)
"When moving in the stashes buffer, update the stash buffer.
-If there is no stash buffer in the same frame, then do nothing."
+If there is no stash buffer in the same frame, then do nothing.
+See also info node `(magit)Section Movement'."
(when (derived-mode-p 'magit-stashes-mode)
(magit--maybe-update-stash-buffer)))
diff --git a/lisp/magit-status.el b/lisp/magit-status.el
index 970d7274162..68c7ce050a5 100644
--- a/lisp/magit-status.el
+++ b/lisp/magit-status.el
@@ -500,19 +500,22 @@ Type \\[magit-commit] to create a commit.
(defun magit-status-maybe-update-revision-buffer (&optional _)
"When moving in the status buffer, update the revision buffer.
-If there is no revision buffer in the same frame, then do nothing."
+If there is no revision buffer in the same frame, then do nothing.
+See also info node `(magit)Section Movement'."
(when (derived-mode-p 'magit-status-mode)
(magit--maybe-update-revision-buffer)))
(defun magit-status-maybe-update-stash-buffer (&optional _)
"When moving in the status buffer, update the stash buffer.
-If there is no stash buffer in the same frame, then do nothing."
+If there is no stash buffer in the same frame, then do nothing.
+See also info node `(magit)Section Movement'."
(when (derived-mode-p 'magit-status-mode)
(magit--maybe-update-stash-buffer)))
(defun magit-status-maybe-update-blob-buffer (&optional _)
"When moving in the status buffer, update the blob buffer.
-If there is no blob buffer in the same frame, then do nothing."
+If there is no blob buffer in the same frame, then do nothing.
+See also info node `(magit)Section Movement'."
(when (derived-mode-p 'magit-status-mode)
(magit--maybe-update-blob-buffer)))