branch: elpa/slime commit d105c0c71bff39131e15345b55a6bc1241fd555d Author: Stas Boukarev <stass...@gmail.com> Commit: Stas Boukarev <stass...@gmail.com>
Supply :company-doc-buffer --- contrib/slime-c-p-c.el | 7 ++++++- slime.el | 9 +++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/contrib/slime-c-p-c.el b/contrib/slime-c-p-c.el index 12601fda282..45d0a40df1e 100644 --- a/contrib/slime-c-p-c.el +++ b/contrib/slime-c-p-c.el @@ -70,7 +70,12 @@ :company-docsig (lambda (x) (let ((sym (get-text-property 0 'slime-symbol x))) (when sym - (slime-eval `(swank:describe-symbol ,sym))))) + (slime-eval `(swank:operator-arglist ,sym ,(slime-current-package)))))) + :company-doc-buffer (lambda (x) + (let ((sym (get-text-property 0 'slime-symbol x))) + (when sym + (slime-eval-describe `(swank:describe-symbol ,sym) nil) + (slime-buffer-name :description)))) :annotation-function (lambda (x) (let ((kind (get-text-property 0 'slime-kind x))) diff --git a/slime.el b/slime.el index fad1a975b3f..b03396e4130 100644 --- a/slime.el +++ b/slime.el @@ -4085,22 +4085,23 @@ inserted in the current buffer." (kill-new string) (message "Evaluation finished; pushed result to kill ring.")))))) -(defun slime-eval-describe (form) +(cl-defun slime-eval-describe (form &optional (select slime-description-autofocus)) "Evaluate FORM in Lisp and display the result in a new buffer." - (slime-eval-async form (slime-rcurry #'slime-show-description + (slime-eval-async form (slime-rcurry (lambda (string package) + (slime-show-description string package select)) (slime-current-package)))) (defvar slime-description-autofocus nil "If non-nil select description windows on display.") -(defun slime-show-description (string package) +(cl-defun slime-show-description (string package &optional (select slime-description-autofocus)) ;; So we can have one description buffer open per connection. Useful ;; for comparing the output of DISASSEMBLE across implementations. ;; FIXME: could easily be achieved with M-x rename-buffer (let ((bufname (slime-buffer-name :description))) (slime-with-popup-buffer (bufname :package package :connection t - :select slime-description-autofocus) + :select select) (princ string) (goto-char (point-min)))))