Skip to content

Commit 32d5688

Browse files
committed
Support underscores in Unicode escapes
Rust gained this in rust-lang/rust#43716.
1 parent b4ff947 commit 32d5688

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

syntax/rust.vim

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustPanic
140140

141141
syn match rustEscapeError display contained /\\./
142142
syn match rustEscape display contained /\\\([nrt0\\'"]\|x\x\{2}\)/
143-
syn match rustEscapeUnicode display contained /\\u{\x\{1,6}}/
143+
syn match rustEscapeUnicode display contained /\\u{\%(\x_*\)\{1,6}}/
144144
syn match rustStringContinuation display contained /\\\n\s*/
145145
syn region rustString start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation
146146
syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell
@@ -170,7 +170,7 @@ syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE
170170
syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)"
171171

172172
" For the benefit of delimitMate
173-
syn region rustLifetimeCandidate display start=/&'\%(\([^'\\]\|\\\(['nrt0\\\"]\|x\x\{2}\|u{\x\{1,6}}\)\)'\)\@!/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
173+
syn region rustLifetimeCandidate display start=/&'\%(\([^'\\]\|\\\(['nrt0\\\"]\|x\x\{2}\|u{\%(\x_*\)\{1,6}}\)\)'\)\@!/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
174174
syn region rustGenericRegion display start=/<\%('\|[^[cntrl:][:space:][:punct:]]\)\@=')\S\@=/ end=/>/ contains=rustGenericLifetimeCandidate
175175
syn region rustGenericLifetimeCandidate display start=/\%(<\|,\s*\)\@<='/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
176176

@@ -181,7 +181,7 @@ syn match rustCharacterInvalid display contained /b\?'\zs[\n\r\t']\ze'/
181181
" The groups negated here add up to 0-255 but nothing else (they do not seem to go beyond ASCII).
182182
syn match rustCharacterInvalidUnicode display contained /b'\zs[^[:cntrl:][:graph:][:alnum:][:space:]]\ze'/
183183
syn match rustCharacter /b'\([^\\]\|\\\(.\|x\x\{2}\)\)'/ contains=rustEscape,rustEscapeError,rustCharacterInvalid,rustCharacterInvalidUnicode
184-
syn match rustCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u{\x\{1,6}}\)\)'/ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustCharacterInvalid
184+
syn match rustCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u{\%(\x_*\)\{1,6}}\)\)'/ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustCharacterInvalid
185185

186186
syn match rustShebang /\%^#![^[].*/
187187
syn region rustCommentLine start="//" end="$" contains=rustTodo,@Spell

0 commit comments

Comments
 (0)