Mercurial > emacs
changeset 66513:bfd70a868157
(help-url): New button type. Calls browse-url.
(help-xref-url-regexp): New regexp to recognize URLs in docstring.
Similar to Info nodes: URL `url'.
(help-make-xrefs): Create help-url buttons for help-xref-url-regexp
matches.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Fri, 28 Oct 2005 21:27:13 +0000 |
parents | 759df5a9dc3e |
children | 1ab4a8980046 |
files | lisp/ChangeLog lisp/help-mode.el |
diffstat | 2 files changed, 23 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Oct 28 21:03:35 2005 +0000 +++ b/lisp/ChangeLog Fri Oct 28 21:27:13 2005 +0000 @@ -1,3 +1,11 @@ +2005-10-28 Bill Wohler <wohler@newt.com> + + * help-mode.el (help-url): New button type. Calls browse-url. + (help-xref-url-regexp): New regexp to recognize URLs in docstring. + Similar to Info nodes: URL `url'. + (help-make-xrefs): Create help-url buttons for + help-xref-url-regexp matches. + 2005-10-29 Nick Roberts <nickrob@snap.net.nz> * tool-bar.el (tool-bar-add-item-from-menu)
--- a/lisp/help-mode.el Fri Oct 28 21:03:35 2005 +0000 +++ b/lisp/help-mode.el Fri Oct 28 21:27:13 2005 +0000 @@ -126,7 +126,12 @@ (define-button-type 'help-info :supertype 'help-xref 'help-function #'info - 'help-echo (purecopy"mouse-2, RET: read this Info node")) + 'help-echo (purecopy "mouse-2, RET: read this Info node")) + +(define-button-type 'help-url + :supertype 'help-xref + 'help-function #'browse-url + 'help-echo (purecopy "mouse-2, RET: view this URL in a browser")) (define-button-type 'help-customize-variable :supertype 'help-xref @@ -257,6 +262,10 @@ (purecopy "\\<[Ii]nfo[ \t\n]+\\(node\\|anchor\\)[ \t\n]+`\\([^']+\\)'") "Regexp matching doc string references to an Info node.") +(defconst help-xref-url-regexp + (purecopy "\\<[Uu][Rr][Ll][ \t\n]+`\\([^']+\\)'") + "Regexp matching doc string references to a URL.") + ;;;###autoload (defun help-setup-xref (item interactive-p) "Invoked from commands using the \"*Help*\" buffer to install some xref info. @@ -338,6 +347,11 @@ (unless (string-match "^([^)]+)" data) (setq data (concat "(emacs)" data)))) (help-xref-button 2 'help-info data)))) + ;; URLs + (save-excursion + (while (re-search-forward help-xref-url-regexp nil t) + (let ((data (match-string 1))) + (help-xref-button 1 'help-url data)))) ;; Mule related keywords. Do this before trying ;; `help-xref-symbol-regexp' because some of Mule ;; keywords have variable or function definitions.