summaryrefslogtreecommitdiff
path: root/elisp/geiser-syntax.el
diff options
context:
space:
mode:
Diffstat (limited to 'elisp/geiser-syntax.el')
-rw-r--r--elisp/geiser-syntax.el16
1 files changed, 7 insertions, 9 deletions
diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el
index c961105..4c2623d 100644
--- a/elisp/geiser-syntax.el
+++ b/elisp/geiser-syntax.el
@@ -199,10 +199,9 @@
(if (cdr (last p)) (1+ (safe-length p)) (length p)))
(defun geiser-syntax--scan-sexps ()
- (save-excursion
- (geiser-syntax--skip-comment/string)
- (let* ((fst (symbol-at-point))
- (path))
+ (let ((path))
+ (save-excursion
+ (geiser-syntax--skip-comment/string)
(while (not (zerop (geiser-syntax--nesting-level)))
(let ((boundary (1+ (point))))
(backward-up-list)
@@ -215,11 +214,10 @@
(geiser-syntax--read/keyword-value prev))))
(push `(,(car form)
,len-1 ,@(and prev (symbolp prev) (list prev)))
- path))))))
- (let ((path (nreverse path)))
- (if (or (not fst) (eq fst (caar path)))
- path
- (cons (list fst 0) path))))))
+ path)))))))
+ (if path (nreverse path)
+ (let ((fst (symbol-at-point)))
+ (and fst `((,fst 0)))))))
(defun geiser-syntax--scan-locals (form partial locals)
(flet ((if-symbol (x) (and (symbolp x) x))