78 lines
2.4 KiB
Racket
78 lines
2.4 KiB
Racket
#lang racket/gui
|
|
|
|
(require framework/private/color-local-member-name
|
|
syntax-color/racket-lexer
|
|
2d/lexer
|
|
framework)
|
|
|
|
(define f (new frame% [label ""] [width 400] [height 600]))
|
|
(define t (new (class racket:text%
|
|
(define/override (tokenizing-give-up-early)
|
|
(when (zero? (random 2))
|
|
(do-something))
|
|
#t)
|
|
(super-new))))
|
|
(define ec (new editor-canvas% [parent f] [editor t]))
|
|
|
|
(define count 0)
|
|
|
|
(define (do-something)
|
|
(queue-callback (λ ()
|
|
(set! count (+ count 1))
|
|
(cond
|
|
[(< count 100)
|
|
(cond
|
|
[(send t find-string "-" 'forward 0)
|
|
=>
|
|
(λ (x)
|
|
(send t delete x (+ x 1)))]
|
|
[else
|
|
;; these two numbers are dependent
|
|
;; on the string constant below
|
|
(define n (+ 36 (random 448)))
|
|
(define howmany (+ 1 (random 2)))
|
|
(for ([x (in-range howmany)])
|
|
(send t insert "-" n n))])]
|
|
[else
|
|
(send tmr stop)
|
|
(send f show #f)]))))
|
|
|
|
(define tmr (new timer% [notify-callback do-something] [interval 100]))
|
|
|
|
(send f show #t)
|
|
|
|
(send t insert
|
|
#<<---
|
|
#lang 2d racket/base
|
|
|
|
#2dx
|
|
╔═══╦═══╦═══╦═══╗
|
|
║ 1 ║ 2 ║ 3 ║ 4 ║
|
|
╠═══╬═══╩═══╩═══╣
|
|
║ 5 ║("abcdef") ║
|
|
╠═══╣(|zz zzz|) ║
|
|
║ 6 ║(31415926) ║
|
|
╠═══╬═══╦═══╦═══╣
|
|
║ 7 ║ 8 ║ 9 ║ 0 ║
|
|
╠═══╬═══╬═══╬═══╣
|
|
║ A ║ B ║ C ║ D ║
|
|
╠═══╬═══╩═══╩═══╣
|
|
║ E ║("ghijkl") ║
|
|
╠═══╣(|xx xxx|) ║
|
|
║ F ║(27182818) ║
|
|
╠═══╬═══╦═══╦═══╣
|
|
║ G ║ H ║ I ║ J ║
|
|
╠═══╬═══╬═══╬═══╣
|
|
║ K ║ L ║ M ║ N ║
|
|
╠═══╬═══╩═══╩═══╣
|
|
║ O ║("mnopqs") ║
|
|
╠═══╣(|yy yyy|) ║
|
|
║ P ║(whatever) ║
|
|
╠═══╬═══╦═══╦═══╣
|
|
║ Q ║ R ║ S ║ T ║
|
|
╚═══╩═══╩═══╩═══╝
|
|
|
|
---
|
|
)
|
|
|