summaryrefslogtreecommitdiff
path: root/elisp/geiser-autodoc.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-08-26 00:58:36 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-08-26 00:58:36 +0200
commit69643a0d6d214a164117a49696b08073cfbe58e5 (patch)
treef2948ee9c13da8cdf410304ce5b87a3549599121 /elisp/geiser-autodoc.el
parentfd316e2c5b7b2868d7e5ba571af90de258d005f6 (diff)
downloadgeiser-69643a0d6d214a164117a49696b08073cfbe58e5.tar.gz
geiser-69643a0d6d214a164117a49696b08073cfbe58e5.tar.bz2
Slightly faster autodoc.
Diffstat (limited to 'elisp/geiser-autodoc.el')
-rw-r--r--elisp/geiser-autodoc.el37
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)