diff options
author | Profpatsch <mail@profpatsch.de> | 2014-09-15 16:49:47 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2014-09-23 03:22:51 +0200 |
commit | 354b09ca1d7e1f830bbe3875f1a0a7fc24b14b4d (patch) | |
tree | f84339197dcfcec9373740b9e0b9db17772cc9ac /elisp/geiser-company.el | |
parent | 270e94ec59594a9ca43d09e4e841528e030129ff (diff) | |
download | geiser-chez-354b09ca1d7e1f830bbe3875f1a0a7fc24b14b4d.tar.gz geiser-chez-354b09ca1d7e1f830bbe3875f1a0a7fc24b14b4d.tar.bz2 |
company: implement --doc-buffer
Diffstat (limited to 'elisp/geiser-company.el')
-rw-r--r-- | elisp/geiser-company.el | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/elisp/geiser-company.el b/elisp/geiser-company.el index 101cbbd..1c4b5f0 100644 --- a/elisp/geiser-company.el +++ b/elisp/geiser-company.el @@ -15,6 +15,7 @@ (require 'geiser-completion) (require 'geiser-edit) (require 'geiser-base) +(require 'geiser-doc) (eval-when-compile (require 'cl)) @@ -40,7 +41,16 @@ (let ((help (geiser-autodoc--autodoc `((,id 0))))) (and help (substring-no-properties help)))))) -(defsubst geiser-company--doc-buffer (id) nil) +(defun geiser-company--doc-buffer (id) + (let* ((impl geiser-impl--implementation) + (module (geiser-doc-module (geiser-eval--get-module) impl)) + (symbol (make-symbol id)) + (ds (geiser-doc--get-docstring symbol module))) + (if (or (not ds) (not (listp ds))) + (message "No documentation available for '%s'" symbol) + (with-current-buffer (get-buffer-create "*company-documentation*") + (geiser-doc-symbol--fill-current-buffer ds symbol module impl) + (current-buffer))))) (defun geiser-company--location (id) (ignore-errors |