Each element is a list of words where the first word is the standard Emacs
term, and the rest of the words are alternative terms.")
+(defvar apropos--current nil
+ "List of current Apropos function followed by its arguments.
+Used by `apropos--revert-buffer' to regenerate the current
+Apropos buffer. Each Apropos command should ensure it is set
+before `apropos-mode' makes it buffer-local.")
+
\f
;;; Button types used by apropos
"Return t if DOC is really matched by the current keywords."
(apropos-true-hit doc apropos-all-words))
+(defun apropos--revert-buffer (_ignore-auto noconfirm)
+ "Regenerate current Apropos buffer using `apropos--current'.
+Intended as a value for `revert-buffer-function'."
+ (when (or noconfirm (yes-or-no-p "Revert apropos buffer? "))
+ (apply #'funcall apropos--current)))
+
(define-derived-mode apropos-mode special-mode "Apropos"
"Major mode for following hyperlinks in output of apropos commands.
-\\{apropos-mode-map}")
+\\{apropos-mode-map}"
+ (make-local-variable 'apropos--current)
+ (setq-local revert-buffer-function #'apropos--revert-buffer))
(defvar apropos-multi-type t
"If non-nil, this apropos query concerns multiple types.
(if (or current-prefix-arg apropos-do-all)
"command or function" "command"))
current-prefix-arg))
+ (setq apropos--current (list #'apropos-command pattern do-all var-predicate))
(apropos-parse-pattern pattern)
(let ((message
(let ((standard-output (get-buffer-create "*Apropos*")))
Returns list of symbols and documentation found."
(interactive (list (apropos-read-pattern "symbol")
current-prefix-arg))
+ (setq apropos--current (list #'apropos pattern do-all))
(apropos-parse-pattern pattern)
(apropos-symbols-internal
(apropos-internal apropos-regexp
libs))
libs)))
(list (completing-read "Describe library: " libs nil t))))
+ (setq apropos--current (list #'apropos-library file))
(let ((symbols nil)
;; (autoloads nil)
(provides nil)
Returns list of symbols and values found."
(interactive (list (apropos-read-pattern "value")
current-prefix-arg))
+ (setq apropos--current (list #'apropos-value pattern do-all))
(apropos-parse-pattern pattern)
(or do-all (setq do-all apropos-do-all))
(setq apropos-accumulator ())
Optional arg BUFFER (default: current buffer) is the buffer to check."
(interactive (list (apropos-read-pattern "value of buffer-local variable")))
(unless buffer (setq buffer (current-buffer)))
+ (setq apropos--current (list #'apropos-local-value pattern buffer))
(apropos-parse-pattern pattern)
(setq apropos-accumulator ())
(let ((var nil))
;; output, but I cannot see that that is true.
(interactive (list (apropos-read-pattern "documentation")
current-prefix-arg))
+ (setq apropos--current (list #'apropos-documentation pattern do-all))
(apropos-parse-pattern pattern)
(or do-all (setq do-all apropos-do-all))
(setq apropos-accumulator () apropos-files-scanned ())