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
This commit is contained in:
parent
5302353055
commit
9888c7f496
|
@ -472,16 +472,15 @@ added get-regions
|
||||||
(set-lexer-state-up-to-date?! ls #f)
|
(set-lexer-state-up-to-date?! ls #f)
|
||||||
(update-lexer-state-observers)
|
(update-lexer-state-observers)
|
||||||
(queue-callback (λ () (colorer-callback)) #f)))
|
(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)
|
(let-values (((tok-start tok-end valid-tree invalid-tree orig-data)
|
||||||
(split-backward ls (lexer-state-invalid-tokens ls) edit-start-pos)))
|
(split-backward ls (lexer-state-invalid-tokens ls) edit-start-pos)))
|
||||||
(set-lexer-state-invalid-tokens! ls invalid-tree)
|
(set-lexer-state-invalid-tokens! ls invalid-tree)
|
||||||
(set-lexer-state-invalid-tokens-start!
|
(set-lexer-state-invalid-tokens-start!
|
||||||
ls
|
ls
|
||||||
(+ (lexer-state-invalid-tokens-start ls) tok-end change-length))
|
(+ (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)))
|
(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)))))
|
|
||||||
((> edit-start-pos (lexer-state-current-pos ls))
|
((> edit-start-pos (lexer-state-current-pos ls))
|
||||||
(set-lexer-state-invalid-tokens-start!
|
(set-lexer-state-invalid-tokens-start!
|
||||||
ls
|
ls
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
(define f (new frame% [label ""] [width 400] [height 600]))
|
(define f (new frame% [label ""] [width 400] [height 600]))
|
||||||
(define t (new (class racket:text%
|
(define t (new (class racket:text%
|
||||||
(define/override (tokenizing-give-up-early)
|
(define/override (tokenizing-give-up-early)
|
||||||
(when (zero? (random 4))
|
(when (zero? (random 2))
|
||||||
(do-something))
|
(do-something))
|
||||||
#t)
|
#t)
|
||||||
(super-new))))
|
(super-new))))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user