diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-08-26 00:58:36 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-08-26 00:58:36 +0200 |
commit | 69643a0d6d214a164117a49696b08073cfbe58e5 (patch) | |
tree | f2948ee9c13da8cdf410304ce5b87a3549599121 | |
parent | fd316e2c5b7b2868d7e5ba571af90de258d005f6 (diff) | |
download | geiser-69643a0d6d214a164117a49696b08073cfbe58e5.tar.gz geiser-69643a0d6d214a164117a49696b08073cfbe58e5.tar.bz2 |
Slightly faster autodoc.
-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) |