diff options
-rw-r--r-- | elisp/geiser-syntax.el | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el index 6be186a..c961105 100644 --- a/elisp/geiser-syntax.el +++ b/elisp/geiser-syntax.el @@ -202,7 +202,7 @@ (save-excursion (geiser-syntax--skip-comment/string) (let* ((fst (symbol-at-point)) - (path (and fst (list (list fst 0))))) + (path)) (while (not (zerop (geiser-syntax--nesting-level))) (let ((boundary (1+ (point)))) (backward-up-list) @@ -216,7 +216,10 @@ (push `(,(car form) ,len-1 ,@(and prev (symbolp prev) (list prev))) path)))))) - (nreverse path)))) + (let ((path (nreverse path))) + (if (or (not fst) (eq fst (caar path))) + path + (cons (list fst 0) path)))))) (defun geiser-syntax--scan-locals (form partial locals) (flet ((if-symbol (x) (and (symbolp x) x)) |