From 7f9629ce03deaa0c7b90f13368e3bc7d199f51e0 Mon Sep 17 00:00:00 2001 From: "Robert J. Chassell" Date: Mon, 25 Feb 2008 16:31:25 +0000 Subject: [PATCH] (describe-variable): Add phrases about initialization file with and without customization; use new button type help-info-variable. --- lisp/help-fns.el | 36 +++++++++++++++++++++++++++++------- lisp/help-mode.el | 6 ++++++ 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index d7886215880..b5172ec024b 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -636,8 +636,8 @@ it is displayed along with the global value." (terpri) (let* ((alias (condition-case nil - (indirect-variable variable) - (error variable))) + (indirect-variable variable) + (error variable))) (obsolete (get variable 'byte-obsolete-variable)) (safe-var (get variable 'safe-local-variable)) (doc (or (documentation-property variable 'variable-documentation) @@ -676,17 +676,39 @@ it is displayed along with the global value." (princ "Documentation:\n") (with-current-buffer standard-output (insert (or doc "Not documented as a variable.")))) - ;; Make a link to customize if this variable can be customized. - (when (custom-variable-p variable) - (let ((customize-label "customize")) + + (let ((customize-label "customize") + (initialization-file "initialization file")) + ;; All variables can be set; some can be customized + (when (and (symbolp variable) (not (custom-variable-p variable))) + (terpri) + (terpri) + (princ (concat "You can set this variable in your " + initialization-file ".")) + (with-current-buffer standard-output + (save-excursion + (re-search-backward + (concat "\\(" initialization-file "\\)") nil t) + (help-xref-button 1 'help-info-variable variable + "(emacs)Init File")))) + ;; Make a link to customize if this variable can be customized. + (when (custom-variable-p variable) (terpri) (terpri) - (princ (concat "You can " customize-label " this variable.")) + (princ (concat "You can " customize-label " this variable")) + (princ (concat " or set it in your " initialization-file ".")) (with-current-buffer standard-output (save-excursion (re-search-backward (concat "\\(" customize-label "\\)") nil t) - (help-xref-button 1 'help-customize-variable variable)))) + (help-xref-button 1 'help-customize-variable variable)) + (save-excursion + (re-search-backward + (concat "\\(" initialization-file "\\)") nil t) + (help-xref-button 1 'help-info-variable variable + "(emacs)Init File") + ) + )) ;; Note variable's version or package version (let ((output (describe-variable-custom-version-info variable))) (when output diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 95ae547f457..841ad8e2512 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -159,6 +159,12 @@ The format is (FUNCTION ARGS...).") 'help-function #'help-xref-go-forward 'help-echo (purecopy "mouse-2, RET: move forward to next help buffer")) +(define-button-type 'help-info-variable + :supertype 'help-xref + ;; the name of the variable is put before the argument to Info + 'help-function (lambda (a v) (info v)) + 'help-echo (purecopy "mouse-2, RET: read this Info node")) + (define-button-type 'help-info :supertype 'help-xref 'help-function #'info -- 2.39.5