commit b4e0d832da972dfc5b4b65526da9c996d1453e5e parent 5de2c07566179b7d6f998b564d286200918b4e58 Author: Matthew Flatt <mflatt@racket-lang.org> Date: Sun, 16 Jan 2011 18:35:03 -0700 fix `codeblock' interaction with reader macros Closes PR 11386 original commit: 090f82cc0b22077664ddf1174cc219694a55e0c7 Diffstat:
| M | collects/scribble/private/manual-code.rkt | | | 34 | +++++++++++++++++++++------------- |
1 file changed, 21 insertions(+), 13 deletions(-)
diff --git a/collects/scribble/private/manual-code.rkt b/collects/scribble/private/manual-code.rkt @@ -68,7 +68,11 @@ [(and (identifier? e) (syntax-original? e)) (let ([pos (sub1 (syntax-position e))]) - (list (list (to-element e) + (list (list (lambda (str) + (to-element (syntax-property + e + 'display-string + str))) pos (+ pos (syntax-span e)) 1)))] @@ -142,18 +146,22 @@ [(null? tokens) (split-lines default-color (substring* bstr pos))] [(eq? (caar tokens) 'white-space) (loop pos (cdr tokens))] [(= pos (cadar tokens)) - (append (let ([style (caar tokens)]) - (if (symbol? style) - (let ([scribble-style - (case style - [(symbol) symbol-color] - [(parenthesis) paren-color] - [(constant string) value-color] - [(comment) comment-color] - [else default-color])]) - (split-lines scribble-style - (substring* bstr (cadar tokens) (caddar tokens)))) - (list (caar tokens)))) + (append (let ([style (caar tokens)] + [get-str (lambda () + (substring* bstr (cadar tokens) (caddar tokens)))]) + (cond + [(symbol? style) + (let ([scribble-style + (case style + [(symbol) symbol-color] + [(parenthesis) paren-color] + [(constant string) value-color] + [(comment) comment-color] + [else default-color])]) + (split-lines scribble-style (get-str)))] + [(procedure? style) + (list (style (get-str)))] + [else (list style)])) (loop (caddar tokens) (cdr tokens)))] [(> pos (cadar tokens)) (loop pos (cdr tokens))]