branch: master
commit 1f93f406ecd464aea17896679d726db013557ac1
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
counsel.el (counsel-cl): New command
* counsel.el (counsel--el-action): Add `with-ivy-window' wrapper.
---
counsel.el | 31 ++++++++++++++++++++++---------
1 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/counsel.el b/counsel.el
index a7c0471..7474060 100644
--- a/counsel.el
+++ b/counsel.el
@@ -81,18 +81,31 @@
:initial-input str
:action #'counsel--el-action)))
+;;;###autoload
+(defun counsel-cl ()
+ "Common Lisp completion at point."
+ (interactive)
+ (setq counsel-completion-beg (slime-symbol-start-pos))
+ (setq counsel-completion-end (slime-symbol-end-pos))
+ (ivy-read "Symbol name: "
+ (car (slime-contextual-completions
+ counsel-completion-beg
+ counsel-completion-end))
+ :action #'counsel--el-action))
+
(defun counsel--el-action (symbol)
"Insert SYMBOL, erasing the previous one."
(when (stringp symbol)
- (when counsel-completion-beg
- (delete-region
- counsel-completion-beg
- counsel-completion-end))
- (setq counsel-completion-beg
- (move-marker (make-marker) (point)))
- (insert symbol)
- (setq counsel-completion-end
- (move-marker (make-marker) (point)))))
+ (with-ivy-window
+ (when counsel-completion-beg
+ (delete-region
+ counsel-completion-beg
+ counsel-completion-end))
+ (setq counsel-completion-beg
+ (move-marker (make-marker) (point)))
+ (insert symbol)
+ (setq counsel-completion-end
+ (move-marker (make-marker) (point))))))
(declare-function deferred:sync! "ext:deferred")
(declare-function jedi:complete-request "ext:jedi-core")