# HG changeset patch # User Luc Teirlinck # Date 1066535923 0 # Node ID 64833a41c107e3458cc3efc938fbd028cd150e2f # Parent 34db8be1fba80699411d3f26b3234fb299d10ea4 (help-xref-symbol-regexp): Treat newlines as whitespace. (help-make-xrefs): Only make cross-references for faces if preceded or followed by the word `face'. Do not make a cross-reference for variables without variable documentation, unless preceded by the word `variable'. Update doc string accordingly. diff -r 34db8be1fba8 -r 64833a41c107 lisp/help-mode.el --- a/lisp/help-mode.el Sun Oct 19 03:56:15 2003 +0000 +++ b/lisp/help-mode.el Sun Oct 19 03:58:43 2003 +0000 @@ -213,7 +213,8 @@ "\\(function\\|command\\)\\|" "\\(face\\)\\|" "\\(symbol\\)\\|" - "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)\\s-+\\)?" + "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)" + "[ \t\n]+\\)?" ;; Note starting with word-syntax character: "`\\(\\sw\\(\\sw\\|\\s_\\)+\\)'")) "Regexp matching doc string references to symbols. @@ -278,7 +279,10 @@ references for selection with `help-follow'. Cross-references have the canonical form `...' and the type of reference may be disambiguated by the preceding word(s) used in -`help-xref-symbol-regexp'. +`help-xref-symbol-regexp'. Faces only get cross-referenced if +preceded or followed by the word `face'. Variables without +variable documentation do not get cross-referenced, unless +preceded by the word `variable'. If the variable `help-xref-mule-regexp' is non-nil, find also cross-reference information related to multilingual environment @@ -342,11 +346,11 @@ (sym (intern-soft data))) (if sym (cond - ((match-string 3) ; `variable' &c + ((match-string 3) ; `variable' &c (and (boundp sym) ; `variable' doesn't ensure ; it's actually bound (help-xref-button 8 'help-variable sym))) - ((match-string 4) ; `function' &c + ((match-string 4) ; `function' &c (and (fboundp sym) ; similarly (help-xref-button 8 'help-function sym))) ((match-string 5) ; `face' @@ -354,23 +358,27 @@ (help-xref-button 8 'help-face sym))) ((match-string 6)) ; nothing for `symbol' ((match-string 7) -;; this used: -;; #'(lambda (arg) -;; (let ((location -;; (find-function-noselect arg))) -;; (pop-to-buffer (car location)) -;; (goto-char (cdr location)))) +;;; this used: +;;; #'(lambda (arg) +;;; (let ((location +;;; (find-function-noselect arg))) +;;; (pop-to-buffer (car location)) +;;; (goto-char (cdr location)))) (help-xref-button 8 'help-function-def sym)) ((and (boundp sym) (fboundp sym)) ;; We can't intuit whether to use the ;; variable or function doc -- supply both. (help-xref-button 8 'help-symbol sym)) - ((boundp sym) + ((and + (boundp sym) + (documentation-property sym + 'variable-documentation)) (help-xref-button 8 'help-variable sym)) ((fboundp sym) (help-xref-button 8 'help-function sym)) ((facep sym) - (help-xref-button 8 'help-face sym))))))) + (if (save-match-data (looking-at "[ \t\n]+face\\W")) + (help-xref-button 8 'help-face sym)))))))) ;; An obvious case of a key substitution: (save-excursion (while (re-search-forward