adjust syntax browser to work better for literal hashes and vectors
closes PR 13537 original commit: 4b8813bb0e5ff5934c0ab1443fee7c245a757bb5
This commit is contained in:
parent
2d510cb940
commit
7cba5db017
|
@ -128,12 +128,22 @@ needed to really make this work:
|
||||||
(push!)
|
(push!)
|
||||||
(record val enclosing-stx)
|
(record val enclosing-stx)
|
||||||
(begin0
|
(begin0
|
||||||
(let lst-loop ([val (vector->list val)])
|
(apply
|
||||||
(cond
|
vector
|
||||||
[(pair? val)
|
(let lst-loop ([val (vector->list val)])
|
||||||
(cons (loop (car val) #f)
|
(cond
|
||||||
(lst-loop (cdr val)))]
|
[(pair? val)
|
||||||
[(null? val) '()]))
|
(cons (loop (car val) #f)
|
||||||
|
(lst-loop (cdr val)))]
|
||||||
|
[(null? val) '()])))
|
||||||
|
(pop!))]
|
||||||
|
[(hash? val)
|
||||||
|
(push!)
|
||||||
|
(record val enclosing-stx)
|
||||||
|
(begin0
|
||||||
|
(for/hash ([(k v) (in-hash val)])
|
||||||
|
(values (loop k #f)
|
||||||
|
(loop v #f)))
|
||||||
(pop!))]
|
(pop!))]
|
||||||
[else
|
[else
|
||||||
(push!)
|
(push!)
|
||||||
|
@ -241,11 +251,17 @@ needed to really make this work:
|
||||||
(small-newline info-port info-text)))
|
(small-newline info-port info-text)))
|
||||||
|
|
||||||
(define/private (replace-syntaxes obj)
|
(define/private (replace-syntaxes obj)
|
||||||
(cond
|
(let loop ([obj obj])
|
||||||
[(pair? obj) (cons (replace-syntaxes (car obj))
|
(cond
|
||||||
(replace-syntaxes (cdr obj)))]
|
[(pair? obj) (cons (loop (car obj)) (loop (cdr obj)))]
|
||||||
[(syntax? obj) (make-object syntax-snip% obj)]
|
[(syntax? obj) (make-object syntax-snip% obj)]
|
||||||
[else obj]))
|
[(hash? obj)
|
||||||
|
(for/hash ([(k v) (in-hash obj)])
|
||||||
|
(values (loop k) (loop v)))]
|
||||||
|
[(vector? obj)
|
||||||
|
(for/vector ([v (in-vector obj)])
|
||||||
|
(loop v))]
|
||||||
|
[else obj])))
|
||||||
|
|
||||||
(define/private (insert/bold str)
|
(define/private (insert/bold str)
|
||||||
(let ([pos (send info-text last-position)])
|
(let ([pos (send info-text last-position)])
|
||||||
|
@ -575,10 +591,10 @@ needed to really make this work:
|
||||||
`(pair ,(cons (marshall-object (car obj))
|
`(pair ,(cons (marshall-object (car obj))
|
||||||
(marshall-object (cdr obj))))]
|
(marshall-object (cdr obj))))]
|
||||||
[(or (symbol? obj)
|
[(or (symbol? obj)
|
||||||
(char? obj)
|
(char? obj)
|
||||||
(number? obj)
|
(number? obj)
|
||||||
(string? obj)
|
(string? obj)
|
||||||
(boolean? obj)
|
(boolean? obj)
|
||||||
(null? obj))
|
(null? obj))
|
||||||
`(other ,obj)]
|
`(other ,obj)]
|
||||||
[else (string->symbol (format "unknown-object: ~s" obj))]))
|
[else (string->symbol (format "unknown-object: ~s" obj))]))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user