From afa7fb40739992e22c7b4fd520ac6fac3d8e69c7 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Sat, 4 Sep 2010 21:17:12 +0200 Subject: REPL: (optionally) forget old errors on new expressions --- elisp/geiser-guile.el | 3 +++ elisp/geiser-repl.el | 13 +++++++++++++ 2 files changed, 16 insertions(+) (limited to 'elisp') diff --git a/elisp/geiser-guile.el b/elisp/geiser-guile.el index 8d8c4f3..6086dd8 100644 --- a/elisp/geiser-guile.el +++ b/elisp/geiser-guile.el @@ -18,6 +18,8 @@ (require 'geiser-edit) (require 'geiser) +(require 'compile) + ;;; Customization: @@ -125,6 +127,7 @@ This function uses `geiser-guile-init-file' if it exists." (when (eq key 'geiser-debugger) (let ((bt-cmd (format ",%s\n" (if geiser-guile-debug-show-bt-p "bt" "fr")))) + (compilation-forget-errors) (goto-char (point-max)) (comint-send-string nil "((@ (geiser emacs) ge:newline))\n") (comint-send-string nil ",error-message\n") diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index dd85808..b8bb86d 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -79,6 +79,16 @@ implementation name gets appended to it." :type 'boolean :group 'geiser-repl) +(geiser-custom--defcustom geiser-repl-forget-old-errors-p t + "Whether to forget old errors upon entering a new expression. + +When on (the default), every time a new expression is entered in +the REPL old error messages are flushed, and using [[next-error]] +afterwards will jump only to error locations produced by the new +expression, if any." + :type 'boolean + :group 'geiser-repl) + ;;; Geiser REPL buffers and processes: @@ -402,6 +412,9 @@ module command as a string") (pmark (and proc (process-mark proc))) (intxt (and pmark (buffer-substring pmark (point))))) (when intxt + (when (and geiser-repl-forget-old-errors-p + (not (geiser-con--is-debugging))) + (compilation-forget-errors)) (comint-send-input) (when (string-match "^\\s-*$" intxt) (comint-send-string proc -- cgit v1.2.3