diff options
Diffstat (limited to 'elisp')
-rw-r--r-- | elisp/geiser-completion.el | 7 | ||||
-rw-r--r-- | elisp/geiser-eval.el | 13 |
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: |