Commit 040b2fa3 authored by Luc Teirlinck's avatar Luc Teirlinck
Browse files

(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.
parent a4a6aad0
......@@ -213,7 +213,8 @@ Commands:
"\\(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 @@ Find cross-reference information in a buffer and activate such cross
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 @@ that."
(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 @@ that."
(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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment