Skip to content

Commit 1490601

Browse files
committed
fix: incorrect syntax highlighting of literals (fixes vim-jp#62)
1 parent fd95282 commit 1490601

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

syntax/cpp.vim

+9-10
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,20 @@ if !exists("cpp_no_cpp14")
5555
syn match cppNumber display contained "\<0\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
5656
syn match cppNumber display contained "\<[1-9]\('\=\d\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
5757
syn match cppNumber display contained "\<0\o\+\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
58-
syn match cppNumber display contained "\<0b[01]\('\=[01]\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
59-
syn match cppNumber display contained "\<0x\x\('\=\x\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
60-
syn match cppFloat display contained "\<\d\+\.\d*\(e[-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
61-
syn match cppFloat display contained "\<\.\d\+\(e[-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
62-
syn match cppFloat display contained "\<\d\+e[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
58+
syn match cppNumber display contained "\<0[bB][01]\('\=[01]\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
59+
syn match cppNumber display contained "\<0[xX]\x\('\=\x\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
60+
syn match cppFloat display contained "\<\d\+\.\d*\([eE][-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
61+
syn match cppFloat display contained "\<\.\d\+\([eE][-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
62+
syn match cppFloat display contained "\<\d\+[eE][-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
6363
syn region cppString start=+\(L\|u\|u8\|U\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"\(sv\|s\|_\i*\)\=+ end='$' contains=cSpecial,cFormat,@Spell
6464
endif
6565

6666
" C++ 17 extensions
6767
if !exists("cpp_no_cpp17")
6868
syn match cppCast "\<reinterpret_pointer_cast\s*<"me=e-1
6969
syn match cppCast "\<reinterpret_pointer_cast\s*$"
70-
syn match cppFloat display contained "\<0x\x*\.\x\+p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
71-
syn match cppFloat display contained "\<0x\x\+\.\=p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
70+
syn match cppFloat display contained "\<0[xX]\x*\.\x\+p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
71+
syn match cppFloat display contained "\<0[xX]\x\+\.\=p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
7272

7373
" TODO: push this up to c.vim if/when supported in C23
7474
syn match cppCharacter "u8'[^\\]'"
@@ -82,16 +82,15 @@ if !exists("cpp_no_cpp17")
8282
endif
8383
syn match cppSpecialCharacter display "u8'\\\o\{1,3}'"
8484
syn match cppSpecialCharacter display "u8'\\x\x\+'"
85-
8685
endif
8786

8887
" C++ 20 extensions
8988
if !exists("cpp_no_cpp20")
9089
syn match cppNumber display contained "\<0\(y\|d\)\>"
9190
syn match cppNumber display contained "\<[1-9]\('\=\d\+\)*\(y\|d\)\>"
9291
syn match cppNumber display contained "\<0\o\+\(y\|d\)\>"
93-
syn match cppNumber display contained "\<0b[01]\('\=[01]\+\)*\(y\|d\)\>"
94-
syn match cppNumber display contained "\<0x\x\('\=\x\+\)*\(y\|d\)\>"
92+
syn match cppNumber display contained "\<0[bB][01]\('\=[01]\+\)*\(y\|d\)\>"
93+
syn match cppNumber display contained "\<0[xX]\x\('\=\x\+\)*\(y\|d\)\>"
9594
syn keyword cppStatement co_await co_return co_yield requires
9695
syn keyword cppStorageClass consteval constinit
9796
syn keyword cppStructure concept

0 commit comments

Comments
 (0)