[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-chez 04ab4387fe: doc browser: links to TSPL and Use
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/geiser-chez 04ab4387fe: doc browser: links to TSPL and User Manual in documentation window |
Date: |
Tue, 28 Feb 2023 17:59:26 -0500 (EST) |
branch: elpa/geiser-chez
commit 04ab4387fed68659f21377dbe74513edac2fd134
Author: jao <jao@gnu.org>
Commit: jao <jao@gnu.org>
doc browser: links to TSPL and User Manual in documentation window
---
geiser-chez.el | 44 +++++++++++++++++++++++++++++++++++++++++++-
src/geiser/geiser.ss | 3 ++-
2 files changed, 45 insertions(+), 2 deletions(-)
diff --git a/geiser-chez.el b/geiser-chez.el
index 170570d708..a96b357e5d 100644
--- a/geiser-chez.el
+++ b/geiser-chez.el
@@ -65,6 +65,27 @@ host."
(define-obsolete-variable-alias 'geiser-chez-debug-on-exception-p
'geiser-chez-debug-on-exception "0.18")
+(geiser-custom--defcustom geiser-chez-browse-function #'eww
+ "Function used to open HTML pages for the manuals."
+ :type 'function)
+
+(geiser-custom--defcustom geiser-chez-csug-url
+ "https://cisco.github.io/ChezScheme/csug9.5/";
+ "Base URL for the Chez Scheme User's Guide HTML documents.
+
+Set it to a local file URI such as
+'file:///usr/share/doc/chezscheme-doc/html/' for quicker offline
+access."
+ :type 'string)
+
+(geiser-custom--defcustom geiser-chez-tspl-url
+ "https://scheme.com/tspl4/";
+ "Base URL for the The Scheme Programming Languange HTML version.
+
+Set it to a local file URI such as
+'file:///usr/share/doc/tlsp/html/' for quicker offline access."
+ :type 'string)
+
(defconst geiser-chez-minimum-version "9.4")
;;; REPL support
@@ -273,6 +294,27 @@ Return its local name."
(with-output-to-file 1)
(with-output-to-string 0))
+;;; Documentation display
+(defun geiser-chez--insert-button (url label)
+ (insert-text-button label
+ 'button-data url
+ 'action geiser-chez-browse-function))
+
+(defun geiser-chez--display-docstring (res)
+ (when-let ((labels (cdr (assoc "labels" res))))
+ (insert (format "%s\n" (or (cdr (assoc "docstring" res)) "")))
+ (let* ((csug (cdr (assoc 'csug labels)))
+ (csug-url (and (stringp csug) (concat geiser-chez-csug-url csug)))
+ (tspl (cdr (assoc 'tspl labels)))
+ (tspl-url (and (stringp tspl) (concat geiser-chez-tspl-url tspl))))
+ (when csug-url
+ (insert "\n")
+ (geiser-chez--insert-button csug-url "· Chez Manual Entry"))
+ (when tspl-url
+ (insert "\n")
+ (geiser-chez--insert-button tspl-url "· TSLP Entry")))
+ t))
+
;;; Implementation definition:
(define-geiser-implementation chez
@@ -291,8 +333,8 @@ Return its local name."
(import-command geiser-chez--import-command)
(find-symbol-begin geiser-chez--symbol-begin)
(display-error geiser-chez--display-error)
+ (display-docstring geiser-chez--display-docstring)
;; (external-help geiser-chez--manual-look-up)
- ;; (check-buffer geiser-chez--guess)
(keywords geiser-chez--keywords)
(nested-definitions t)
(case-sensitive nil))
diff --git a/src/geiser/geiser.ss b/src/geiser/geiser.ss
index 87ff1a7497..98e03fd786 100644
--- a/src/geiser/geiser.ss
+++ b/src/geiser/geiser.ss
@@ -319,7 +319,8 @@
(let ((lib (symbol-lib id)))
(and lib
`(("docstring" . ,(docstr lib id))
- ("signature" . ,(id-autodoc id))))))
+ ("signature" . ,(id-autodoc id))
+ ("labels" . ,(symbol-labels id))))))
(define geiser:no-values void)
(define geiser:newline newline)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/geiser-chez 04ab4387fe: doc browser: links to TSPL and User Manual in documentation window,
ELPA Syncer <=