1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Show watchpoints when describing variables

* src/data.c (Fget_variable_watchers): New function.
* lisp/help-fns.el (describe-variable): Use it to detect watching
functions.
This commit is contained in:
Noam Postavsky 2016-11-19 16:50:34 -05:00
parent 227213164e
commit 459a23444e
2 changed files with 18 additions and 0 deletions

View file

@ -918,6 +918,7 @@ it is displayed along with the global value."
(indirect-variable variable)
(error variable)))
(obsolete (get variable 'byte-obsolete-variable))
(watchpoints (get-variable-watchers variable))
(use (car obsolete))
(safe-var (get variable 'safe-local-variable))
(doc (or (documentation-property
@ -967,6 +968,12 @@ if it is given a local binding.\n"))))
(t ".")))
(terpri))
(when watchpoints
(setq extra-line t)
(princ " Calls these functions when changed: ")
(princ watchpoints)
(terpri))
(when (member (cons variable val)
(with-current-buffer buffer
file-local-variables-alist))

View file

@ -1463,6 +1463,16 @@ SYMBOL (or its aliases) are set. */)
return Qnil;
}
DEFUN ("get-variable-watchers", Fget_variable_watchers, Sget_variable_watchers,
1, 1, 0,
doc: /* Return a list of SYMBOL's active watchers. */)
(Lisp_Object symbol)
{
return (SYMBOL_TRAPPED_WRITE_P (symbol) == SYMBOL_TRAPPED_WRITE)
? Fget (Findirect_variable (symbol), Qwatchers)
: Qnil;
}
void
notify_variable_watchers (Lisp_Object symbol,
Lisp_Object newval,
@ -3874,4 +3884,5 @@ syms_of_data (void)
DEFSYM (Qset_default, "set-default");
defsubr (&Sadd_variable_watcher);
defsubr (&Sremove_variable_watcher);
defsubr (&Sget_variable_watchers);
}