[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master e3029ea: * lisp/help-fns.el: Make hyperlink for the
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] master e3029ea: * lisp/help-fns.el: Make hyperlink for the "first release" info |
Date: |
Sun, 2 Jun 2019 11:52:48 -0400 (EDT) |
branch: master
commit e3029eaadf967e9c753c79d91a65f38a744bf4e4
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
* lisp/help-fns.el: Make hyperlink for the "first release" info
* lisp/help-fns.el (help-fns--first-release): Return a "button".
(help-fns--mention-first-release): Preserve the string's text-properties.
* lisp/help-mode.el (help-news): New button type.
---
lisp/help-fns.el | 31 ++++++++++++++++++-------------
lisp/help-mode.el | 12 +++++++++---
2 files changed, 27 insertions(+), 16 deletions(-)
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index de69168..47bbefb 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -592,6 +592,7 @@ FILE is the file where FUNCTION was probably defined."
(let* ((name (symbol-name symbol))
(re (concat "\\_<" (regexp-quote name) "\\_>"))
(news (directory-files data-directory t "\\`NEWS.[1-9]"))
+ (place nil)
(first nil))
(with-temp-buffer
(dolist (f news)
@@ -600,17 +601,20 @@ FILE is the file where FUNCTION was probably defined."
(goto-char (point-min))
(search-forward "\n*")
(while (re-search-forward re nil t)
- (save-excursion
- ;; Almost all entries are of the form "* ... in Emacs NN.MM."
- ;; but there are also a few in the form "* Emacs NN.MM is a bug
- ;; fix release ...".
- (if (not (re-search-backward "^\\*.* Emacs \\([0-9.]+[0-9]\\)"
- nil t))
- (message "Ref found in non-versioned section in %S"
- (file-name-nondirectory f))
- (let ((version (match-string 1)))
- (when (or (null first) (version< version first))
- (setq first version))))))))
+ (let ((pos (match-beginning 0)))
+ (save-excursion
+ ;; Almost all entries are of the form "* ... in Emacs NN.MM."
+ ;; but there are also a few in the form "* Emacs NN.MM is a bug
+ ;; fix release ...".
+ (if (not (re-search-backward "^\\*.* Emacs \\([0-9.]+[0-9]\\)"
+ nil t))
+ (message "Ref found in non-versioned section in %S"
+ (file-name-nondirectory f))
+ (let ((version (match-string 1)))
+ (when (or (null first) (version< version first))
+ (setq place (list f pos))
+ (setq first version)))))))))
+ (make-text-button first nil 'type 'help-news 'help-args place)
first))
(add-hook 'help-fns-describe-function-functions
@@ -620,8 +624,9 @@ FILE is the file where FUNCTION was probably defined."
(defun help-fns--mention-first-release (object)
(let ((first (if (symbolp object) (help-fns--first-release object))))
(when first
- (princ (format " Probably introduced at or before Emacs version %s.\n"
- first)))))
+ (with-current-buffer standard-output
+ (insert (format " Probably introduced at or before Emacs version
%s.\n"
+ first))))))
(defun help-fns-short-filename (filename)
(let* ((abbrev (abbreviate-file-name filename))
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 6cc3f0d..dc2992c 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -287,12 +287,12 @@ The format is (FUNCTION ARGS...).")
(define-button-type 'help-theme-def
:supertype 'help-xref
- 'help-function 'find-file
+ 'help-function #'find-file
'help-echo (purecopy "mouse-2, RET: visit theme file"))
(define-button-type 'help-theme-edit
:supertype 'help-xref
- 'help-function 'customize-create-theme
+ 'help-function #'customize-create-theme
'help-echo (purecopy "mouse-2, RET: edit this theme file"))
(define-button-type 'help-dir-local-var-def
@@ -302,7 +302,13 @@ The format is (FUNCTION ARGS...).")
;; local variable was defined.
(find-file file))
'help-echo (purecopy "mouse-2, RET: open directory-local variables file"))
-
+(define-button-type 'help-news
+ :supertype 'help-xref
+ 'help-function
+ (lambda (file pos)
+ (pop-to-buffer (find-file-noselect file))
+ (goto-char pos))
+ 'help-echo (purecopy "mouse-2, RET: show corresponding NEWS announcement"))
(defvar bookmark-make-record-function)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master e3029ea: * lisp/help-fns.el: Make hyperlink for the "first release" info,
Stefan Monnier <=