]> gitweb.factorcode.org Git - factor.git/commitdiff
ui.tools.listener: recall the last command on parse errors
authorBjörn Lindqvist <bjourne@gmail.com>
Fri, 23 Oct 2015 15:59:04 +0000 (17:59 +0200)
committerBjörn Lindqvist <bjourne@gmail.com>
Fri, 23 Oct 2015 15:59:04 +0000 (17:59 +0200)
basis/ui/tools/listener/listener.factor

index 0366df74aa1f187ee830d551128c6c730c866bad..b28e3db941de7808edcd305689479e127aff0f99 100644 (file)
@@ -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 ] <debugger>
     "Error" debugger-color <framed-labeled> ;
 
+: 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 <debugger-popup> show-listener-popup ;
 
 : try-parse ( lines -- quot/f )