1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: C++ 3*ac7bd638SBram Moolenaar" Current Maintainer: vim-jp (https://github.com/vim-jp/cpp-vim) 4*ac7bd638SBram Moolenaar" Previous Maintainer: Ken Shan <[email protected]> 5*ac7bd638SBram Moolenaar" Last Change: 2012 Jun 14 6071d4279SBram Moolenaar 7071d4279SBram Moolenaar" For version 5.x: Clear all syntax items 8071d4279SBram Moolenaar" For version 6.x: Quit when a syntax file was already loaded 9071d4279SBram Moolenaarif version < 600 10071d4279SBram Moolenaar syntax clear 11071d4279SBram Moolenaarelseif exists("b:current_syntax") 12071d4279SBram Moolenaar finish 13071d4279SBram Moolenaarendif 14071d4279SBram Moolenaar 15071d4279SBram Moolenaar" Read the C syntax to start with 16071d4279SBram Moolenaarif version < 600 17071d4279SBram Moolenaar so <sfile>:p:h/c.vim 18071d4279SBram Moolenaarelse 19071d4279SBram Moolenaar runtime! syntax/c.vim 20071d4279SBram Moolenaar unlet b:current_syntax 21071d4279SBram Moolenaarendif 22071d4279SBram Moolenaar 23*ac7bd638SBram Moolenaar" C++ extensions 24071d4279SBram Moolenaarsyn keyword cppStatement new delete this friend using 25071d4279SBram Moolenaarsyn keyword cppAccess public protected private 26071d4279SBram Moolenaarsyn keyword cppType inline virtual explicit export bool wchar_t 27071d4279SBram Moolenaarsyn keyword cppExceptions throw try catch 28071d4279SBram Moolenaarsyn keyword cppOperator operator typeid 29071d4279SBram Moolenaarsyn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq 30071d4279SBram Moolenaarsyn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1 31071d4279SBram Moolenaarsyn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$" 32071d4279SBram Moolenaarsyn keyword cppStorageClass mutable 33071d4279SBram Moolenaarsyn keyword cppStructure class typename template namespace 34071d4279SBram Moolenaarsyn keyword cppBoolean true false 35071d4279SBram Moolenaar 36*ac7bd638SBram Moolenaar" C++ 11 extensions 37*ac7bd638SBram Moolenaarif !exists("cpp_no_cpp11") 38*ac7bd638SBram Moolenaar syn keyword cppType override final 39*ac7bd638SBram Moolenaar syn keyword cppExceptions noexcept 40*ac7bd638SBram Moolenaar syn keyword cppStorageClass constexpr decltype 41*ac7bd638SBram Moolenaar syn keyword cppConstant nullptr 42*ac7bd638SBram Moolenaarendif 43*ac7bd638SBram Moolenaar 44071d4279SBram Moolenaar" The minimum and maximum operators in GNU C++ 45071d4279SBram Moolenaarsyn match cppMinMax "[<>]?" 46071d4279SBram Moolenaar 47071d4279SBram Moolenaar" Default highlighting 48071d4279SBram Moolenaarif version >= 508 || !exists("did_cpp_syntax_inits") 49071d4279SBram Moolenaar if version < 508 50071d4279SBram Moolenaar let did_cpp_syntax_inits = 1 51071d4279SBram Moolenaar command -nargs=+ HiLink hi link <args> 52071d4279SBram Moolenaar else 53071d4279SBram Moolenaar command -nargs=+ HiLink hi def link <args> 54071d4279SBram Moolenaar endif 55071d4279SBram Moolenaar HiLink cppAccess cppStatement 56071d4279SBram Moolenaar HiLink cppCast cppStatement 57071d4279SBram Moolenaar HiLink cppExceptions Exception 58071d4279SBram Moolenaar HiLink cppOperator Operator 59071d4279SBram Moolenaar HiLink cppStatement Statement 60071d4279SBram Moolenaar HiLink cppType Type 61071d4279SBram Moolenaar HiLink cppStorageClass StorageClass 62071d4279SBram Moolenaar HiLink cppStructure Structure 63071d4279SBram Moolenaar HiLink cppBoolean Boolean 64*ac7bd638SBram Moolenaar HiLink cppConstant Constant 65071d4279SBram Moolenaar delcommand HiLink 66071d4279SBram Moolenaarendif 67071d4279SBram Moolenaar 68071d4279SBram Moolenaarlet b:current_syntax = "cpp" 69071d4279SBram Moolenaar 70071d4279SBram Moolenaar" vim: ts=8 71