aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/cpp.vim
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2026-09-15 08:43:48 +0800
committerzeertzjq <zeertzjq@outlook.com>2026-09-15 08:43:54 +0800
commitaf2837c7bc44d6e83067043ecd8c8b8e0503c2c0 (patch)
treecf98ad2305cf86ad5926dac5ae8d2e7f3a102d80 /runtime/syntax/cpp.vim
parenta612e63a5f28bd3142e65d9546995a1e3f7f4471 (diff)
downloadrneovim-af2837c7bc44d6e83067043ecd8c8b8e0503c2c0.tar.gz
rneovim-af2837c7bc44d6e83067043ecd8c8b8e0503c2c0.tar.bz2
rneovim-af2837c7bc44d6e83067043ecd8c8b8e0503c2c0.zip
vim-patch:8e2e8e7: runtime(cpp): add C++23 suffix z (size_t)
closes: vim/vim#21281 https://github.com/vim/vim/commit/8e2e8e749021d0ac406cae67712bbcc0c0fd5152 Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Diffstat (limited to 'runtime/syntax/cpp.vim')
-rw-r--r--runtime/syntax/cpp.vim14
1 files changed, 12 insertions, 2 deletions
diff --git a/runtime/syntax/cpp.vim b/runtime/syntax/cpp.vim
index 121eab2c6f..87b043473e 100644
--- a/runtime/syntax/cpp.vim
+++ b/runtime/syntax/cpp.vim
@@ -8,6 +8,7 @@
" 2026 Jan 06 by Vim Project orphaning announcement
" 2026 Jan 08 by Vim Project highlight capital letter prefixes for numbers
" 2026 May 29 by Vim Project add C++23 stdfloat types (#16498)
+" 2026 Sep 14 by Vim Project support number suffix uz for C++23 (#21281)
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -73,8 +74,8 @@ endif
if !exists("cpp_no_cpp17")
syn match cppCast "\<reinterpret_pointer_cast\s*<"me=e-1
syn match cppCast "\<reinterpret_pointer_cast\s*$"
- syn match cppFloat display contained "\<0[Xx]\x*\.\x\+p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
- syn match cppFloat display contained "\<0[Xx]\x\+\.\=p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
+ syn match cppFloat display contained "\<0[Xx]\(\x\('\=\x\+\)*\)\=\.\x\('\=\x\+\)*[Pp][-+]\=\d\('\=\d\+\)*\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
+ syn match cppFloat display contained "\<0[Xx]\x\('\=\x\+\)*\.\=[Pp][-+]\=\d\('\=\d\+\)*\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
" TODO: push this up to c.vim if/when supported in C23
syn match cppCharacter "u8'[^\\]'"
@@ -107,6 +108,15 @@ endif
" C++ 23 extensions
if !exists("cpp_no_cpp23")
+ syn match cppNumber display contained "\<0\([Zz][Uu]\=\|[Uu][Zz]\)\>"
+ syn match cppNumber display contained "\<[1-9]\('\=\d\+\)*\([Zz][Uu]\=\|[Uu][Zz]\)\>"
+ syn match cppNumber display contained "\<0\o\('\=\o\+\)*\([Zz][Uu]\=\|[Uu][Zz]\)\>"
+ syn match cppNumber display contained "\<0[Bb][01]\('\=[01]\+\)*\([Zz][Uu]\=\|[Uu][Zz]\)\>"
+ syn match cppNumber display contained "\<0[Xx]\x\('\=\x\+\)*\([Zz][Uu]\=\|[Uu][Zz]\)\>"
+ syn match cppFloat display contained "\<\d\%('\=\d\+\)*\.\%(\d\%('\=\d\+\)*\)\=\%([Ee][-+]\=\d\%('\=\d\+\)*\)\=\%([Ff]\%(16\|32\|64\|128\)\|\%(BF\|bf\)16\)\>"
+ syn match cppFloat display contained "\.\d\%('\=\d\+\)*\%([Ee][-+]\=\d\%('\=\d\+\)*\)\=\%([Ff]\%(16\|32\|64\|128\)\|\%(BF\|bf\)16\)\=\>"
+ syn match cppFloat display contained "\<0[Xx]\%(\x\%('\=\x\+\)*\)\=\.\x\%('\=\x\+\)*[Pp][-+]\=\d\%('\=\d\+\)*\%([Ff]\%(16\|32\|64\|128\)\|\%(BF\|bf\)16\)\=\>"
+ syn match cppFloat display contained "\<0[Xx]\x\%('\=\x\+\)*\.\=[Pp][-+]\=\d\%('\=\d\+\)*\%([Ff]\%(16\|32\|64\|128\)\|\%(BF\|bf\)16\)\=\>"
syn keyword cppType float16_t float32_t float64_t float128_t bfloat16_t
endif