From 4257f514dff18d5dfbc35e75e7ad049b506002d6 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Mon, 6 Sep 2010 01:50:24 +0200 Subject: Autodoc: clean cache upon evaluation --- elisp/geiser-autodoc.el | 6 ++++-- elisp/geiser-compile.el | 7 +++++-- elisp/geiser-debug.el | 2 ++ elisp/geiser-reload.el | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/elisp/geiser-autodoc.el b/elisp/geiser-autodoc.el index 90295b7..628b408 100644 --- a/elisp/geiser-autodoc.el +++ b/elisp/geiser-autodoc.el @@ -54,6 +54,9 @@ when `geiser-autodoc-display-module-p' is on." (make-variable-buffer-local (defvar geiser-autodoc--cached-signatures nil)) +(defsubst geiser-autodoc--clean-cache () + (setq geiser-autodoc--cached-signatures nil)) + (defun geiser-autodoc--get-signatures (funs &optional keep-cached) (when funs (let ((fs (assq (car funs) geiser-autodoc--cached-signatures))) @@ -65,8 +68,7 @@ when `geiser-autodoc-display-module-p' is on." (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)) + (unless (or cached keep-cached) (geiser-autodoc--clean-cache)) (when missing (let ((res (geiser-eval--send/result `(:eval ((:ge autodoc) (quote ,missing))) diff --git a/elisp/geiser-compile.el b/elisp/geiser-compile.el index 8260b34..41ca4bd 100644 --- a/elisp/geiser-compile.el +++ b/elisp/geiser-compile.el @@ -1,6 +1,6 @@ ;; geiser-compile.el -- compile/load scheme files -;; Copyright (C) 2009 Jose Antonio Ortega Ruiz +;; Copyright (C) 2009, 2010 Jose Antonio Ortega Ruiz ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the Modified BSD License. You should @@ -12,6 +12,7 @@ (require 'geiser-debug) +(require 'geiser-autodoc) (require 'geiser-eval) (require 'geiser-base) @@ -38,8 +39,10 @@ (path (cdr b/p)) (msg (format "%s %s ..." msg path))) (message msg) + (geiser-autodoc--clean-cache) (geiser-compile--display-result - msg (geiser-eval--send/wait `(,(if compile-p :comp-file :load-file) ,path))))) + msg (geiser-eval--send/wait + `(,(if compile-p :comp-file :load-file) ,path))))) ;;; User commands: diff --git a/elisp/geiser-debug.el b/elisp/geiser-debug.el index 4c1f93e..909dffb 100644 --- a/elisp/geiser-debug.el +++ b/elisp/geiser-debug.el @@ -11,6 +11,7 @@ +(require 'geiser-autodoc) (require 'geiser-impl) (require 'geiser-eval) (require 'geiser-menu) @@ -103,6 +104,7 @@ non-null value.") (ret (geiser-eval--send/wait code)) (res (geiser-eval--retort-result-str ret)) (err (geiser-eval--retort-error ret))) + (geiser-autodoc--clean-cache) (when and-go (funcall and-go)) (when (not err) (message "%s" res)) (geiser-debug--display-retort str ret res))) diff --git a/elisp/geiser-reload.el b/elisp/geiser-reload.el index 0e52083..d6c72fd 100644 --- a/elisp/geiser-reload.el +++ b/elisp/geiser-reload.el @@ -26,13 +26,13 @@ geiser-repl geiser-xref geiser-doc + geiser-compile geiser-debug geiser-impl geiser-company geiser-edit geiser-completion geiser-autodoc - geiser-compile geiser-eval geiser-connection geiser-syntax -- cgit v1.2.3