fix all-string-snips? predicate
This commit is contained in:
parent
1d22f69ba6
commit
f91ec3df28
|
@ -4509,19 +4509,22 @@ designates the character that triggers autocompletion
|
||||||
[(is-a? s string-snip%) (loop (send s next))]
|
[(is-a? s string-snip%) (loop (send s next))]
|
||||||
[else #f])))
|
[else #f])))
|
||||||
|
|
||||||
(define/augment (after-insert start end)
|
(define/augment (after-insert start len)
|
||||||
(inner (void) after-insert start end)
|
(inner (void) after-insert start len)
|
||||||
|
(define end (+ start len))
|
||||||
(when (equal? all-string-snips-state #t)
|
(when (equal? all-string-snips-state #t)
|
||||||
(let loop ([s (find-snip start 'after-or-none)]
|
(define init-i (box 0))
|
||||||
[i start])
|
(define init-s (find-snip start 'after-or-none init-i))
|
||||||
|
(let loop ([s init-s]
|
||||||
|
[i (unbox init-i)])
|
||||||
(cond
|
(cond
|
||||||
[(not s) (void)]
|
[(not s) (void)]
|
||||||
[(not (< i end)) (void)]
|
[(not (< i end)) (void)]
|
||||||
[(is-a? s string-snip%)
|
[(is-a? s string-snip%)
|
||||||
(define size (send s get-count))
|
(define size (send s get-count))
|
||||||
(loop (send s next) (+ i size))]
|
(loop (send s next) (+ i size))]
|
||||||
[else (set! all-string-snips-state #f)]))))
|
[else
|
||||||
|
(set! all-string-snips-state #f)]))))
|
||||||
|
|
||||||
(define/augment (on-delete start end)
|
(define/augment (on-delete start end)
|
||||||
(inner (void) on-delete start end)
|
(inner (void) on-delete start end)
|
||||||
|
|
|
@ -344,6 +344,17 @@
|
||||||
(send t delete 2 4)
|
(send t delete 2 4)
|
||||||
(send t all-string-snips?)))))
|
(send t all-string-snips?)))))
|
||||||
|
|
||||||
|
(test
|
||||||
|
'all-string-snips<%>.9
|
||||||
|
(λ (x) (equal? x #f))
|
||||||
|
(λ ()
|
||||||
|
(queue-sexp-to-mred
|
||||||
|
'(let ()
|
||||||
|
(define t (new (text:all-string-snips-mixin text%)))
|
||||||
|
(send t insert "abcdef\n")
|
||||||
|
(send t insert (new snip%) (send t last-position))
|
||||||
|
(send t all-string-snips?)))))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;
|
;;
|
||||||
;; print-to-dc
|
;; print-to-dc
|
||||||
|
|
Loading…
Reference in New Issue
Block a user