summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elisp/geiser-autodoc.el14
-rw-r--r--elisp/geiser-doc.el16
-rw-r--r--elisp/geiser-edit.el10
-rw-r--r--elisp/geiser-syntax.el9
-rw-r--r--elisp/geiser-xref.el16
5 files changed, 35 insertions, 30 deletions
diff --git a/elisp/geiser-autodoc.el b/elisp/geiser-autodoc.el
index 7c61b33..8222e0b 100644
--- a/elisp/geiser-autodoc.el
+++ b/elisp/geiser-autodoc.el
@@ -59,7 +59,7 @@ when `geiser-autodoc-display-module-p' is on."
(defun geiser-autodoc--get-signatures (funs &optional keep-cached)
(when funs
- (let ((fs (assq (car funs) geiser-autodoc--cached-signatures)))
+ (let ((fs (assoc (car funs) geiser-autodoc--cached-signatures)))
(unless fs
(let ((missing) (cached))
(if (not geiser-autodoc--cached-signatures)
@@ -127,11 +127,11 @@ when `geiser-autodoc-display-module-p' is on."
(defun geiser-autodoc--insert-args (args pos prev)
(let ((cpos 1)
- (reqs (cdr (assoc 'required args)))
+ (reqs (cdr (assoc "required" args)))
(opts (mapcar (lambda (a)
(if (and (symbolp a) (not (eq a '...))) (list a) a))
- (cdr (assoc 'optional args))))
- (keys (cdr (assoc 'key args))))
+ (cdr (assoc "optional" args))))
+ (keys (cdr (assoc "key" args))))
(setq cpos
(geiser-autodoc--insert-arg-group reqs
cpos
@@ -155,10 +155,10 @@ when `geiser-autodoc-display-module-p' is on."
(defun geiser-autodoc--str (desc signature)
(let ((proc (car desc))
- (args (cdr (assoc 'args signature)))
- (module (cdr (assoc 'module signature))))
+ (args (cdr (assoc "args" signature)))
+ (module (cdr (assoc "module" signature))))
(if (not args)
- (geiser-autodoc--value-str proc module (cdr (assoc 'value signature)))
+ (geiser-autodoc--value-str proc module (cdr (assoc "value" signature)))
(save-current-buffer
(set-buffer (geiser-syntax--font-lock-buffer))
(erase-buffer)
diff --git a/elisp/geiser-doc.el b/elisp/geiser-doc.el
index e975484..9182bab 100644
--- a/elisp/geiser-doc.el
+++ b/elisp/geiser-doc.el
@@ -236,8 +236,8 @@ help (e.g. browse an HTML page) implementing this method.")
(newline)
(dolist (w lst)
(let ((name (car w))
- (signature (cdr (assoc 'signature w)))
- (info (cdr (assoc 'info w))))
+ (signature (cdr (assoc "signature" w)))
+ (info (cdr (assoc "info" w))))
(insert "\t- ")
(if module
(geiser-doc--insert-button name module impl signature)
@@ -294,9 +294,9 @@ help (e.g. browse an HTML page) implementing this method.")
(geiser-doc--with-buffer
(erase-buffer)
(geiser-doc--insert-title
- (geiser-autodoc--str* (cdr (assoc 'signature ds))))
+ (geiser-autodoc--str* (cdr (assoc "signature" ds))))
(newline)
- (insert (or (cdr (assoc 'docstring ds)) ""))
+ (insert (or (cdr (assoc "docstring" ds)) ""))
(geiser-doc--buttonize-modules impl)
(setq geiser-doc--buffer-link
(geiser-doc--history-push (geiser-doc--make-link symbol
@@ -327,10 +327,10 @@ With prefix argument, ask for the lookup symbol (with completion)."
symbol
(geiser-eval--get-module))))
-(defconst geiser-doc--sections '(("Procedures:" procs)
- ("Syntax:" syntax)
- ("Variables:" vars)
- ("Submodules:" modules t)))
+(defconst geiser-doc--sections '(("Procedures:" "procs")
+ ("Syntax:" "syntax")
+ ("Variables:" "vars")
+ ("Submodules:" "modules" t)))
(defconst geiser-doc--sections-re
(format "^%s\n" (regexp-opt (mapcar 'car geiser-doc--sections))))
diff --git a/elisp/geiser-edit.el b/elisp/geiser-edit.el
index 8fa979f..0fd3b89 100644
--- a/elisp/geiser-edit.el
+++ b/elisp/geiser-edit.el
@@ -47,23 +47,23 @@ or following links in error buffers.")
(t (find-file file))))
(defsubst geiser-edit--location-name (loc)
- (cdr (assoc 'name loc)))
+ (cdr (assoc "name" loc)))
(defsubst geiser-edit--location-file (loc)
- (cdr (assoc 'file loc)))
+ (cdr (assoc "file" loc)))
(defsubst geiser-edit--to-number (x)
(cond ((numberp x) x)
((stringp x) (string-to-number x))))
(defsubst geiser-edit--location-line (loc)
- (geiser-edit--to-number (cdr (assoc 'line loc))))
+ (geiser-edit--to-number (cdr (assoc "line" loc))))
(defsubst geiser-edit--location-column (loc)
- (geiser-edit--to-number (cdr (assoc 'column loc))))
+ (geiser-edit--to-number (cdr (assoc "column" loc))))
(defsubst geiser-edit--make-location (name file line column)
- `((name . ,name) (file . ,file) (line . ,line) (column . ,column)))
+ `(("name" . ,name) ("file" . ,file) ("line" . ,line) ("column" . ,column)))
(defconst geiser-edit--def-re
(regexp-opt '("define"
diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el
index ae1c3dd..17e0999 100644
--- a/elisp/geiser-syntax.el
+++ b/elisp/geiser-syntax.el
@@ -122,6 +122,11 @@ implementation-specific entries for font-lock-keywords.")
(defsubst geiser-syntax--read/elisp ()
(ignore-errors (read (current-buffer))))
+(defun geiser-syntax--read/symbol ()
+ (with-syntax-table scheme-mode-syntax-table
+ (when (re-search-forward "\\(\\sw\\|\\s_\\)+" nil t)
+ (make-symbol (match-string 0)))))
+
(defun geiser-syntax--read/matching (open close)
(let ((count 1)
(p (1+ (point))))
@@ -160,7 +165,7 @@ implementation-specific entries for font-lock-keywords.")
(?\( (geiser-syntax--read/token 'vectorb))
(?\< (geiser-syntax--read/unprintable))
((?' ?` ?,) (geiser-syntax--read/next-token))
- (t (let ((tok (geiser-syntax--read/elisp)))
+ (t (let ((tok (geiser-syntax--read/symbol)))
(if tok (cons 'atom (intern (format "#%s" tok)))
(geiser-syntax--read/next-token))))))
(?\' (geiser-syntax--read/token '(quote . quote)))
@@ -171,7 +176,7 @@ implementation-specific entries for font-lock-keywords.")
`(splice . ,backquote-splice-symbol))
`(unquote . ,backquote-unquote-symbol)))
(?\" (cons 'string (geiser-syntax--read/elisp)))
- (t (cons 'atom (geiser-syntax--read/elisp))))))
+ (t (cons 'atom (geiser-syntax--read/symbol))))))
(defsubst geiser-syntax--read/match (&rest tks)
(let ((token (geiser-syntax--read/next-token)))
diff --git a/elisp/geiser-xref.el b/elisp/geiser-xref.el
index 661c625..d8b46d0 100644
--- a/elisp/geiser-xref.el
+++ b/elisp/geiser-xref.el
@@ -54,12 +54,12 @@
geiser-xref-follow-link-method))))
(defun geiser-xref--insert-button (xref)
- (let* ((location (cdr (assoc 'location xref)))
+ (let* ((location (cdr (assoc "location" xref)))
(file (geiser-edit--location-file location))
- (signature (cdr (assoc 'signature xref)))
+ (signature (cdr (assoc "signature" xref)))
(signature-txt (and signature
(geiser-autodoc--str* signature)))
- (module (cdr (assoc 'module xref)))
+ (module (cdr (assoc "module" xref)))
(p (point)))
(when signature
(insert " - ")
@@ -76,11 +76,11 @@
(newline))))
(defun geiser-xref--module< (xr1 xr2)
- (let ((m1 (cdr (assoc 'module xr1)))
- (m2 (cdr (assoc 'module xr2))))
+ (let ((m1 (cdr (assoc "module" xr1)))
+ (m2 (cdr (assoc "module" xr2))))
(cond ((equal m1 m2)
- (string< (format "%s" (cdr (assoc 'signature xr1)))
- (format "%s" (cdr (assoc 'signature xr2)))))
+ (string< (format "%s" (cdr (assoc "signature" xr1)))
+ (format "%s" (cdr (assoc "signature" xr2)))))
((null m1) (not m2))
((null m2))
(t (string< (format "%s" m1) (format "%s" m2))))))
@@ -92,7 +92,7 @@
(newline)
(let ((last-module))
(dolist (xref (sort xrefs 'geiser-xref--module<))
- (let ((module (cdr (assoc 'module xref))))
+ (let ((module (cdr (assoc "module" xref))))
(when (not (equal module last-module))
(insert "\n In module ")
(geiser--insert-with-face (format "%s" module)