[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser a81969a527 7/7: Replace a button type with two new
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/geiser a81969a527 7/7: Replace a button type with two new types |
Date: |
Sat, 6 Jul 2024 18:59:51 -0400 (EDT) |
branch: elpa/geiser
commit a81969a5271f155d2d1e389ccbe47e1c7ec36ae7
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>
Replace a button type with two new types
That results in less code and less confusing indirection.
---
elisp/geiser-doc.el | 38 ++++++++++++++++----------------------
1 file changed, 16 insertions(+), 22 deletions(-)
diff --git a/elisp/geiser-doc.el b/elisp/geiser-doc.el
index 4c04cd6e1c..14350627c0 100644
--- a/elisp/geiser-doc.el
+++ b/elisp/geiser-doc.el
@@ -176,6 +176,12 @@ value if the default action should be skipped.")
'geiser-link link
'help-echo help)))
+(define-button-type 'geiser-doc-source
+ 'action 'geiser-doc-goto-source
+ 'face 'geiser-font-lock-doc-button
+ 'help-echo "Go to definition"
+ 'follow-link t)
+
(defun geiser-doc-goto-source ()
"Go to the definition of this item."
(interactive)
@@ -185,6 +191,12 @@ value if the default action should be skipped.")
(geiser-edit-symbol target nil (point-marker))
(geiser-edit-module (geiser-doc--link-module link))))))
+(define-button-type 'geiser-doc-manual
+ 'action 'geiser-doc-goto-manual
+ 'face 'geiser-font-lock-doc-button
+ 'help-echo "Look up in Scheme manual"
+ 'follow-link t)
+
(defun geiser-doc-goto-manual ()
"Go to the manual for this item."
(interactive)
@@ -194,29 +206,11 @@ value if the default action should be skipped.")
(impl (geiser-doc--link-impl link)))
(geiser-doc--external-help impl (or tm mod) mod))))
-(defun geiser-doc--xbutton-action (button)
- (let ((k (button-get button 'x-kind)))
- (cond ((eq 'source k) (geiser-doc-goto-source))
- ((eq 'manual k) (geiser-doc-goto-manual)))))
-
-(define-button-type 'geiser-doc--xbutton
- 'action 'geiser-doc--xbutton-action
- 'face 'geiser-font-lock-doc-button
- 'follow-link t)
-
-(defun geiser-doc--insert-xbutton (&optional manual)
- (let ((label (if manual "[manual]" "[source]"))
- (help (if manual "Look up in Scheme manual" "Go to definition")))
- (insert-text-button label
- :type 'geiser-doc--xbutton
- 'help-echo help
- 'x-kind (if manual 'manual 'source))))
-
-(defun geiser-doc--insert-xbuttons (impl)
+(defun geiser-doc--insert-doc-buttons (impl)
(when (geiser-impl--method 'external-help impl)
- (geiser-doc--insert-xbutton t)
+ (insert-text-button "[manual]" :type 'geiser-doc--xbutton)
(insert " "))
- (geiser-doc--insert-xbutton))
+ (insert-text-button "[source]" :type 'geiser-doc-source))
(defun geiser-doc--insert-nav-button (next)
(let* ((lnk (if next (geiser-doc--history-next-link)
@@ -269,7 +263,7 @@ value if the default action should be skipped.")
(defun geiser-doc--insert-footer (impl)
(newline 2)
- (geiser-doc--insert-xbuttons impl)
+ (geiser-doc--insert-doc-buttons impl)
(let* ((prev (and (geiser-doc--history-previous-p) 8))
(nxt (and (geiser-doc--history-next-p) 10))
(len (max 1 (- (window-width)
- [nongnu] elpa/geiser updated (410a3a50d7 -> a81969a527), ELPA Syncer, 2024/07/06
- [nongnu] elpa/geiser 9197acbdbd 3/7: Define geiser--feature-list as a variable, ELPA Syncer, 2024/07/06
- [nongnu] elpa/geiser e3dd43e247 1/7: Define ring-member immediately if necessary, ELPA Syncer, 2024/07/06
- [nongnu] elpa/geiser 67f7278558 5/7: Define autoloads how that is normally done, ELPA Syncer, 2024/07/06
- [nongnu] elpa/geiser f74612686b 6/7: Buttons live in their own namespace, ELPA Syncer, 2024/07/06
- [nongnu] elpa/geiser de52f0e36f 4/7: Cleanup library headers, ELPA Syncer, 2024/07/06
- [nongnu] elpa/geiser a81969a527 7/7: Replace a button type with two new types,
ELPA Syncer <=
- [nongnu] elpa/geiser b57fdc8fde 2/7: geiser-elisp-dir: Fallback to buffer-file-name, ELPA Syncer, 2024/07/06