diff --git a/pkgs/syntax-color-pkgs/syntax-color-lib/syntax-color/racket-lexer.rkt b/pkgs/syntax-color-pkgs/syntax-color-lib/syntax-color/racket-lexer.rkt index 6e1ba462ae..d338612c7b 100644 --- a/pkgs/syntax-color-pkgs/syntax-color-lib/syntax-color/racket-lexer.rkt +++ b/pkgs/syntax-color-pkgs/syntax-color-lib/syntax-color/racket-lexer.rkt @@ -402,14 +402,16 @@ (define racket-nobar-lexer/status (lexer/status nobar-identifier nobar-keyword nobar-bad-id)) (define (extend-error lexeme start end in) - (if (memq (peek-char-or-special in) - `(special #\newline #\return #\tab #\space #\vtab - #\" #\, #\' #\` #\( #\) #\[ #\] #\{ #\} #\; - ,eof)) + (define next (peek-char-or-special in)) + (if (or (char-whitespace? next) + (memq next + `(special + #\" #\, #\' #\` #\( #\) #\[ #\] #\{ #\} #\; + ,eof))) (ret lexeme 'error #f start end 'bad) (let-values (((rest end-pos) (get-chunk in))) (ret (string-append lexeme rest) 'error #f start end-pos 'bad)))) (define get-chunk (lexer - ((:+ (:~ identifier-delims)) (values lexeme end-pos)))) + [(:+ (:~ identifier-delims)) (values lexeme end-pos)])) diff --git a/pkgs/syntax-color-pkgs/syntax-color-test/tests/syntax-color/scheme-lexer.rkt b/pkgs/syntax-color-pkgs/syntax-color-test/tests/syntax-color/scheme-lexer.rkt index 098d01b976..5bc7ed2124 100644 --- a/pkgs/syntax-color-pkgs/syntax-color-test/tests/syntax-color/scheme-lexer.rkt +++ b/pkgs/syntax-color-pkgs/syntax-color-test/tests/syntax-color/scheme-lexer.rkt @@ -592,3 +592,5 @@ end-string (test "#:a|" "xxxx") (test "#:a#|" "xxxxx") (test "#:a||a|, a\n\"" "xxxxxxxxxxxx") + +(test "|\uA0x" "xxx")