check the result of find-ls in the one place it wasn't being checked
probably closes 13404
This commit is contained in:
parent
07d5a9e385
commit
0e763f5b01
|
@ -1000,22 +1000,26 @@ added get-regions
|
||||||
(define/private (find-next-close-paren pos closers [adj? #t])
|
(define/private (find-next-close-paren pos closers [adj? #t])
|
||||||
(define next-pos (skip-whitespace pos 'forward #t))
|
(define next-pos (skip-whitespace pos 'forward #t))
|
||||||
(define ls (find-ls next-pos))
|
(define ls (find-ls next-pos))
|
||||||
(define ls-start (lexer-state-start-pos ls))
|
|
||||||
(define tree (lexer-state-tokens ls))
|
|
||||||
(send tree search! (- next-pos ls-start))
|
|
||||||
(define start-pos (+ ls-start (send tree get-root-start-position)))
|
|
||||||
(define end-pos (+ ls-start (send tree get-root-end-position)))
|
|
||||||
|
|
||||||
#;(printf "~a |~a| |~a|~n" (list pos next-pos start-pos end-pos (send tree get-root-data)) closers (get-text start-pos end-pos))
|
|
||||||
|
|
||||||
(cond
|
(cond
|
||||||
[(or (not (send tree get-root-data)) (<= end-pos pos))
|
[ls
|
||||||
(values #f #f #f #f)] ;; didn't find /any/ token ending after pos
|
(define ls-start (lexer-state-start-pos ls))
|
||||||
[(and (<= pos start-pos)
|
(define tree (lexer-state-tokens ls))
|
||||||
(member (get-text start-pos end-pos) closers)) ; token at start-pos matches
|
(send tree search! (- next-pos ls-start))
|
||||||
(values start-pos end-pos (get-text start-pos end-pos) adj?)]
|
(define start-pos (+ ls-start (send tree get-root-start-position)))
|
||||||
[else ; skip ahead
|
(define end-pos (+ ls-start (send tree get-root-end-position)))
|
||||||
(find-next-close-paren end-pos closers #f)]))
|
|
||||||
|
#;(printf "~a |~a| |~a|~n" (list pos next-pos start-pos end-pos (send tree get-root-data)) closers (get-text start-pos end-pos))
|
||||||
|
|
||||||
|
(cond
|
||||||
|
[(or (not (send tree get-root-data)) (<= end-pos pos))
|
||||||
|
(values #f #f #f #f)] ;; didn't find /any/ token ending after pos
|
||||||
|
[(and (<= pos start-pos)
|
||||||
|
(member (get-text start-pos end-pos) closers)) ; token at start-pos matches
|
||||||
|
(values start-pos end-pos (get-text start-pos end-pos) adj?)]
|
||||||
|
[else ; skip ahead
|
||||||
|
(find-next-close-paren end-pos closers #f)])]
|
||||||
|
[else
|
||||||
|
(values #f #f #f #f)]))
|
||||||
|
|
||||||
|
|
||||||
;; given end-pos, a position right after a closing parens,
|
;; given end-pos, a position right after a closing parens,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user