summaryrefslogtreecommitdiff
path: root/elisp/geiser-repl.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2010-01-28 14:53:33 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2010-01-28 14:53:33 +0100
commitbdda30e6f263f7142f2f33a8be2545d3061fb598 (patch)
tree7373d0e4bc2cb2fffd35296cecfa07b74c59e59b /elisp/geiser-repl.el
parentdd0ef53303074c1217363d363c1cccc6fcad6dc7 (diff)
downloadgeiser-chez-bdda30e6f263f7142f2f33a8be2545d3061fb598.tar.gz
geiser-chez-bdda30e6f263f7142f2f33a8be2545d3061fb598.tar.bz2
Generic support for debugging prompts in the REPL
Diffstat (limited to 'elisp/geiser-repl.el')
-rw-r--r--elisp/geiser-repl.el14
1 files changed, 11 insertions, 3 deletions
diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el
index da6eca1..9bff115 100644
--- a/elisp/geiser-repl.el
+++ b/elisp/geiser-repl.el
@@ -1,6 +1,6 @@
;;; geiser-repl.el --- Geiser's REPL
-;; 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
@@ -132,6 +132,11 @@ arguments to be used when invoking the scheme binary.")
"A variable (or thunk returning a value) giving the regular
expression for this implementation's scheme prompt.")
+(geiser-impl--define-caller
+ geiser-repl--debugger-prompt-regexp debugger-prompt-regexp ()
+ "A variable (or thunk returning a value) giving the regular
+expression for this implementation's debugging prompt.")
+
(geiser-impl--define-caller geiser-repl--startup startup ()
"Function taking no parameters that is called after the REPL
has been initialised. All Geiser functionality is available to
@@ -143,14 +148,16 @@ you at that point.")
(let ((binary (geiser-repl--binary impl))
(args (geiser-repl--arglist impl))
(prompt-rx (geiser-repl--prompt-regexp impl))
+ (deb-prompt-rx (geiser-repl--debugger-prompt-regexp impl))
(cname (geiser-repl--repl-name impl)))
(unless (and binary prompt-rx)
(error "Sorry, I don't know how to start a REPL for %s" impl))
(set (make-local-variable 'comint-prompt-regexp) prompt-rx)
- (apply 'make-comint-in-buffer `(,cname ,(current-buffer) ,binary nil ,@args))
+ (apply 'make-comint-in-buffer
+ `(,cname ,(current-buffer) ,binary nil ,@args))
(geiser-repl--wait-for-prompt 10000)
(geiser-repl--history-setup)
- (geiser-con--setup-connection (current-buffer) prompt-rx)
+ (geiser-con--setup-connection (current-buffer) prompt-rx deb-prompt-rx)
(add-to-list 'geiser-repl--repls (current-buffer))
(geiser-repl--set-this-buffer-repl (current-buffer))
(geiser-repl--startup impl)))
@@ -305,6 +312,7 @@ If no REPL is running, execute `run-geiser' to start a fresh one."
(set-syntax-table scheme-mode-syntax-table)
(setq geiser-eval--get-module-function 'geiser-repl--module-function)
(when geiser-repl-autodoc-p (geiser-autodoc-mode 1))
+ (setq geiser-autodoc--inhibit-function 'geiser-con--is-debugging)
(geiser-company--setup geiser-repl-company-p)
;; enabling compilation-shell-minor-mode without the annoying highlighter
(compilation-setup t))