From 9888c7f496bbb48978f46cf91fe2638a93b2c68b Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sat, 17 Aug 2013 07:52:00 -0500 Subject: [PATCH] on second thought 5aeca646 is probably wrong and this is probably the right fix The keys.ss framework test suite seems to confirm this fix, altho I'm not sure how exactly. Also tweak the stress test --- pkgs/gui-pkgs/gui-lib/framework/private/color.rkt | 7 +++---- .../unstable-test/tests/unstable/2d/lexer-stress-test.rkt | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/gui-pkgs/gui-lib/framework/private/color.rkt b/pkgs/gui-pkgs/gui-lib/framework/private/color.rkt index 6dfdd9fdb3..01d54b9c22 100644 --- a/pkgs/gui-pkgs/gui-lib/framework/private/color.rkt +++ b/pkgs/gui-pkgs/gui-lib/framework/private/color.rkt @@ -472,16 +472,15 @@ added get-regions (set-lexer-state-up-to-date?! ls #f) (update-lexer-state-observers) (queue-callback (λ () (colorer-callback)) #f))) - ((>= edit-start-pos (lexer-state-invalid-tokens-start ls)) + ((and (>= edit-start-pos (lexer-state-invalid-tokens-start ls)) + (> edit-start-pos (lexer-state-current-pos ls))) (let-values (((tok-start tok-end valid-tree invalid-tree orig-data) (split-backward ls (lexer-state-invalid-tokens ls) edit-start-pos))) (set-lexer-state-invalid-tokens! ls invalid-tree) (set-lexer-state-invalid-tokens-start! ls (+ (lexer-state-invalid-tokens-start ls) tok-end change-length)) - (set-lexer-state-invalid-tokens-mode! ls (and orig-data (data-lexer-mode orig-data))) - (when (<= edit-start-pos (lexer-state-current-pos ls)) - (set-lexer-state-current-pos! ls (+ (lexer-state-current-pos ls) change-length))))) + (set-lexer-state-invalid-tokens-mode! ls (and orig-data (data-lexer-mode orig-data))))) ((> edit-start-pos (lexer-state-current-pos ls)) (set-lexer-state-invalid-tokens-start! ls diff --git a/pkgs/unstable-pkgs/unstable-test/tests/unstable/2d/lexer-stress-test.rkt b/pkgs/unstable-pkgs/unstable-test/tests/unstable/2d/lexer-stress-test.rkt index 94357c26cb..be905169e5 100644 --- a/pkgs/unstable-pkgs/unstable-test/tests/unstable/2d/lexer-stress-test.rkt +++ b/pkgs/unstable-pkgs/unstable-test/tests/unstable/2d/lexer-stress-test.rkt @@ -8,7 +8,7 @@ (define f (new frame% [label ""] [width 400] [height 600])) (define t (new (class racket:text% (define/override (tokenizing-give-up-early) - (when (zero? (random 4)) + (when (zero? (random 2)) (do-something)) #t) (super-new))))