diff options
Diffstat (limited to 'elisp')
| -rw-r--r-- | elisp/geiser-autodoc.el | 37 | 
1 files changed, 20 insertions, 17 deletions
| diff --git a/elisp/geiser-autodoc.el b/elisp/geiser-autodoc.el index c2746a0..e00f6b6 100644 --- a/elisp/geiser-autodoc.el +++ b/elisp/geiser-autodoc.el @@ -70,23 +70,26 @@ when `geiser-autodoc-display-module-p' is on."  (defun geiser-autodoc--get-signatures (funs &optional keep-cached)    (when funs -    (let ((missing) (cached)) -      (if (not geiser-autodoc--cached-signatures) -          (setq missing funs) -        (dolist (f funs) -          (let ((cf (assq f geiser-autodoc--cached-signatures))) -            (if cf (push cf cached) -              (push f missing))))) -      (unless (or cached keep-cached) -        (setq geiser-autodoc--cached-signatures nil)) -      (when missing -        (let ((res (geiser-eval--send/result `(:eval ((:ge autodoc) -                                                      (quote ,missing))) -                                             500))) -          (when res -            (setq geiser-autodoc--cached-signatures -                  (append res (if keep-cached geiser-autodoc--cached-signatures cached)))))) -      geiser-autodoc--cached-signatures))) +    (let ((fs (assq (car funs) geiser-autodoc--cached-signatures))) +      (if fs +          (list fs) +        (let ((missing) (cached)) +          (if (not geiser-autodoc--cached-signatures) +              (setq missing funs) +            (dolist (f funs) +              (let ((cf (assq f geiser-autodoc--cached-signatures))) +                (if cf (push cf cached) +                  (push f missing))))) +          (unless (or cached keep-cached) +            (setq geiser-autodoc--cached-signatures nil)) +          (when missing +            (let ((res (geiser-eval--send/result `(:eval ((:ge autodoc) +                                                          (quote ,missing))) +                                                 500))) +              (when res +                (setq geiser-autodoc--cached-signatures +                      (append res (if keep-cached geiser-autodoc--cached-signatures cached)))))) +          geiser-autodoc--cached-signatures)))))  (defun geiser-autodoc--insert-args (args current &optional pos)    (dolist (a args) | 
