From f2f7fd0b94088e2e1f361c3b8985dd145d2dcd0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Fri, 23 Oct 2015 17:59:04 +0200 Subject: [PATCH] ui.tools.listener: recall the last command on parse errors --- basis/ui/tools/listener/listener.factor | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/basis/ui/tools/listener/listener.factor b/basis/ui/tools/listener/listener.factor index 0366df74aa..b28e3db941 100644 --- a/basis/ui/tools/listener/listener.factor +++ b/basis/ui/tools/listener/listener.factor @@ -5,7 +5,7 @@ combinators.short-circuit concurrency.flags concurrency.mailboxes continuations destructors documents documents.elements fry hashtables help help.markup help.tips io io.styles kernel lexer listener locals math models models.arrow models.delay namespaces parser prettyprint -quotations sequences source-files.errors strings system threads +sequences source-files.errors strings system threads tools.errors.model ui ui.commands ui.gadgets ui.gadgets.editors ui.gadgets.glass ui.gadgets.labeled ui.gadgets.panes ui.gadgets.scrollers ui.gadgets.status-bar ui.gadgets.theme @@ -325,7 +325,11 @@ M: object accept-completion-hook 2drop ; over compute-restarts [ hide-glass ] "Error" debugger-color ; +: recall-on-lexer-error ( interactor error -- ) + dup lexer-error? [ over recall-previous go-to-error ] [ 2drop ] if ; + : debugger-popup ( interactor error continuation -- ) + 2over recall-on-lexer-error [ one-line-elt ] 2dip show-listener-popup ; : try-parse ( lines -- quot/f )