summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elisp/geiser-completion.el7
-rw-r--r--elisp/geiser-eval.el13
2 files changed, 11 insertions, 9 deletions
diff --git a/elisp/geiser-completion.el b/elisp/geiser-completion.el
index 8b58b2b..dd0c33c 100644
--- a/elisp/geiser-completion.el
+++ b/elisp/geiser-completion.el
@@ -169,9 +169,8 @@ terminates a current completion."
;;; Completion functionality:
-(defun geiser-completion--symbol-list (prefix)
- (geiser-eval--retort-result
- (geiser-eval--send/wait `(:gs ((:ge completions) ,prefix)))))
+(defsubst geiser-completion--symbol-list (prefix)
+ (geiser-eval--send/result `(:gs ((:ge completions) ,prefix))))
(defvar geiser-completion--symbol-list-func
(completion-table-dynamic 'geiser-completion--symbol-list))
@@ -204,7 +203,7 @@ terminates a current completion."
Perform completion similar to Emacs' complete-symbol."
(interactive)
(let* ((end (point))
- (beg (save-excursion (beginning-of-sexp) (point)))
+ (beg (save-excursion (skip-syntax-backward "^-()") (point)))
(prefix (buffer-substring-no-properties beg end))
(result (geiser-completion--complete prefix nil))
(completions (car result))
diff --git a/elisp/geiser-eval.el b/elisp/geiser-eval.el
index ee04139..38b1f7f 100644
--- a/elisp/geiser-eval.el
+++ b/elisp/geiser-eval.el
@@ -79,6 +79,12 @@
(defun geiser-eval--set-sync-retort (s)
(setq geiser-eval--sync-retort (geiser-eval--log s)))
+(defsubst geiser-eval--send (code cont &optional buffer)
+ (geiser-con--send-string (geiser-eval--proc)
+ (geiser-eval--code-str code)
+ `(lambda (s) (,cont (geiser-eval--log s)))
+ buffer))
+
(defun geiser-eval--send/wait (code &optional timeout buffer)
(setq geiser-eval--sync-retort nil)
(geiser-con--send-string/wait (geiser-eval--proc)
@@ -88,11 +94,8 @@
buffer)
geiser-eval--sync-retort)
-(defsubst geiser-eval--send (code cont &optional buffer)
- (geiser-con--send-string (geiser-eval--proc)
- (geiser-eval--code-str code)
- `(lambda (s) (,cont (geiser-eval--log s)))
- buffer))
+(defsubst geiser-eval--send/result (code &optional timeout buffer)
+ (geiser-eval--retort-result (geiser-eval--send/wait code timeout buffer)))
;;; Retort parsing: