summaryrefslogtreecommitdiff
path: root/elisp/geiser-autodoc.el
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2011-06-23 00:32:27 +0200
committerjao <jao@gnu.org>2011-06-23 00:32:27 +0200
commit830a0036f43341b2c5e1451ef1d7ed09b70768ec (patch)
treec252ed4afbbd6dcaa22b2203a00a28bf510109e3 /elisp/geiser-autodoc.el
parent2efa614b7de69a3dc4de66f81f0de3fb48110524 (diff)
downloadgeiser-guile-830a0036f43341b2c5e1451ef1d7ed09b70768ec.tar.gz
geiser-guile-830a0036f43341b2c5e1451ef1d7ed09b70768ec.tar.bz2
Avoid (read) breakage (fixes #33090)
Autodoc was firing while the REPL was waiting for input of a (read) call, causing all kinds of misbehaviour. We now inhibit autodoc on sending a form for evaluation and re-inhibit it once a prompt is read back again.
Diffstat (limited to 'elisp/geiser-autodoc.el')
-rw-r--r--elisp/geiser-autodoc.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/elisp/geiser-autodoc.el b/elisp/geiser-autodoc.el
index 88b94a1..550cb16 100644
--- a/elisp/geiser-autodoc.el
+++ b/elisp/geiser-autodoc.el
@@ -1,6 +1,6 @@
;; geiser-autodoc.el -- autodoc mode
-;; Copyright (C) 2009, 2010 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010, 2011 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
@@ -180,6 +180,12 @@ when `geiser-autodoc-display-module-p' is on."
(and geiser-autodoc--inhibit-function
(funcall geiser-autodoc--inhibit-function)))
+(defsubst geiser-autodoc--inhibit-autodoc ()
+ (setq geiser-autodoc--inhibit-function (lambda () t)))
+
+(defsubst geiser-autodoc--disinhibit-autodoc ()
+ (setq geiser-autodoc--inhibit-function nil))
+
(defsubst geiser-autodoc--autodoc-at-point ()
(geiser-autodoc--autodoc (geiser-syntax--scan-sexps)))