1" Vim syntax file 2" Language: C++ 3" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp) 4" Previous Maintainer: Ken Shan <[email protected]> 5" Last Change: 2016 Jul 07 6 7" quit when a syntax file was already loaded 8if exists("b:current_syntax") 9 finish 10endif 11 12" Read the C syntax to start with 13runtime! syntax/c.vim 14unlet b:current_syntax 15 16" C++ extensions 17syn keyword cppStatement new delete this friend using 18syn keyword cppAccess public protected private 19syn keyword cppModifier inline virtual explicit export 20syn keyword cppType bool wchar_t 21syn keyword cppExceptions throw try catch 22syn keyword cppOperator operator typeid 23syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq 24syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1 25syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$" 26syn keyword cppStorageClass mutable 27syn keyword cppStructure class typename template namespace 28syn keyword cppBoolean true false 29syn keyword cppConstant __cplusplus 30 31" C++ 11 extensions 32if !exists("cpp_no_cpp11") 33 syn keyword cppModifier override final 34 syn keyword cppType nullptr_t 35 syn keyword cppExceptions noexcept 36 syn keyword cppStorageClass constexpr decltype thread_local 37 syn keyword cppConstant nullptr 38 syn keyword cppConstant ATOMIC_FLAG_INIT ATOMIC_VAR_INIT 39 syn keyword cppConstant ATOMIC_BOOL_LOCK_FREE ATOMIC_CHAR_LOCK_FREE 40 syn keyword cppConstant ATOMIC_CHAR16_T_LOCK_FREE ATOMIC_CHAR32_T_LOCK_FREE 41 syn keyword cppConstant ATOMIC_WCHAR_T_LOCK_FREE ATOMIC_SHORT_LOCK_FREE 42 syn keyword cppConstant ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE 43 syn keyword cppConstant ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE 44 syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell 45endif 46 47" C++ 14 extensions 48if !exists("cpp_no_cpp14") 49 syn match cppNumber display "\<0b[01]\+\(u\=l\{0,2}\|ll\=u\)\>" 50endif 51 52" The minimum and maximum operators in GNU C++ 53syn match cppMinMax "[<>]?" 54 55" Default highlighting 56hi def link cppAccess cppStatement 57hi def link cppCast cppStatement 58hi def link cppExceptions Exception 59hi def link cppOperator Operator 60hi def link cppStatement Statement 61hi def link cppModifier Type 62hi def link cppType Type 63hi def link cppStorageClass StorageClass 64hi def link cppStructure Structure 65hi def link cppBoolean Boolean 66hi def link cppConstant Constant 67hi def link cppRawStringDelimiter Delimiter 68hi def link cppRawString String 69hi def link cppNumber Number 70 71let b:current_syntax = "cpp" 72 73" vim: ts=8 74