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.el6
1 files changed, 4 insertions, 2 deletions
diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el
index 01dd151..f0148e2 100644
--- a/elisp/geiser-syntax.el
+++ b/elisp/geiser-syntax.el
@@ -76,6 +76,8 @@
(forward-sexp arg)
(delete-region p (point))))
+(defconst geiser-syntax--placeholder (format "___%s___" (random 100)))
+
(defun geiser-syntax--complete-partial-sexp (buffer begin end)
(geiser-syntax--with-buffer
(erase-buffer)
@@ -87,14 +89,14 @@
(when p ;; inside a comment or string
(let ((str (nth 3 (syntax-ppss))))
(delete-region p (point-max))
- (when str (insert "XXXpointXXX")))))
+ (when str (insert geiser-syntax--placeholder)))))
(when (cond ((eq (char-after (1- (point))) ?\)) (geiser-syntax--del-sexp -1) t)
((eq (char-after (point)) ?\() (delete-region (point) (point-max)) t)
((memq (char-after (1- (point))) (list ?. ?@ ?, ?\' ?\` ?\# ?\\))
(skip-syntax-backward "^-(")
(delete-region (point) (point-max))
t))
- (insert "XXXpointXX"))
+ (insert geiser-syntax--placeholder))
(let ((depth (nth 0 (parse-partial-sexp (point-min) (point)))))
(unless (zerop depth) (insert (make-string depth ?\)))))
(when (< (point-min) (point))