" ADAM C++ vim syntax after extensions syn match cxxObjects "\<[A-Z][A-Za-z0-9_]*[a-z][A-Za-z0-9_]*\>" "syn match cxxMetaFunction "\<[a-z][a-z0-9]*_[a-z0-9_]*[a-z0-9]\>" syn keyword cppType noexcept decltype " I dislike the exception highlighting for these control statements. syn keyword cppStatement try throw catch " Assert is kinda like a statement -- as a macro it's a kinda dangerous name, so call it out. syn keyword cppStatement assert "syn keyword cppStatement static_assert syn keyword cxxConstants nullptr syn keyword cxxExportNamespace exports syn match cxxModuleNamespace "\<[a-zA-Z][A-Za-z0-9_]*_m\>" syn match cxxConstants "\<\(C::[A-Za-z_]\|k[A-Z]\)[A-Z_a-z0-9]*\>" syn keyword cxxExceptionNames Exception Exception syn keyword cxxConditionNames Condition syn keyword cxxNotificationNames Notification syn keyword cxxErrorNames Error syn keyword cxxCriticalNames Critical CriticalError syn keyword cxxViolationNames Violation syn match cxxExceptionNames "\<[A-Z][A-Za-z0-9_]*Exception\>" syn match cxxConditionNames "\<[A-Z][A-Za-z0-9_]*Condition\>" syn match cxxNotificationNames "\<[A-Z][A-Za-z0-9_]*Notification\>" syn match cxxErrorNames "\<[A-Z][A-Za-z0-9_]*Error\>" syn match cxxCriticalNames "\" syn match cxxCriticalNames "\<[A-Z][A-Za-z0-9_]*CriticalError\>" syn match cxxViolationNames "\<[A-Z][A-Za-z0-9_]*Violation\>" syn match cxxTagName "\<[a-zA-Z_][A-Za-z0-9_]*_tag\>" syn match cxxCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*\(<\)\@=" syn cluster cxxLibraryBits contains=cxxStlKeywords,cxxStlFunctions,cxxStlService,cxxStlTypes,cxxStlConstant,cxxStlExceptionNames syn cluster cxxIgnoreCGroupingErrors contains=NONE syn cluster cParenGroup add=@cxxIgnoreCGroupingErrors syn cluster cxxIgnoreCGroupingErrors add=@cxxLibraryBits "syn cluster cxxLibrary contains=cxxStlLibrary,cxxBoostLibrary "syn region cxxStlLibrary start="\" "syn match "::" containedin=@cxxLibrary contained "end="::\(.*\)\@>\>" syn region cxxAttribute matchgroup=cxxAttributeBracing start="\[\[" end="]]" syn keyword cxxStlKeywords contained containedin=cxxAttribute noreturn carries_dependency deprecated fallthrough nodiscard maybe_unused " Broken? "syn region cxxStlLibrary start="\(\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn match cxxTestingCall "\" syn region cxxNestedInCommentL containedin=cCommentL matchgroup=Comment start=+`+ end=+`+ keepend contains=@cxxInComment syn region cxxNestedInComment containedin=cComment matchgroup=Comment start=+`+ end=+`+ keepend contains=@cxxInComment syn match nestedCommentStar "^[ ]*\*" contained containedin=cxxNestedInComment " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_cxx_syntax_inits") if version < 508 let did_cxx_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif "HiLink cxxStlLibrary cxxLibPrefix "HiLink cxxBoostLibrary cxxLibPrefix HiLink nestedCommentStar Comment HiLink cxxObjects Object HiLink cxxCast cxxStatement HiLink cxxStatement Statement " The exception breakdown: HiLink cxxExceptionNames Throwable HiLink cxxConditionNames Condition HiLink cxxNotificationNames Notification HiLink cxxErrorNames Exception HiLink cxxCriticalNames Critical HiLink cxxViolationNames Violation HiLink cxxStlExceptionNames Exception HiLink cxxStlNothrow Nothrow HiLink cxxStlNothrowObject NothrowObject HiLink cxxDebug Debug HiLink cxxConstants Constant HiLink cxxNamedConstant Constant HiLink cxxStlService Service HiLink cxxStlConstant Constant HiLink cxxStlTypes Object HiLink cxxStlKeywords cppType HiLink cxxStlFunctions cppStatement HiLink cxxStlFreeFunctions cppStatement HiLink cxxLibStatement cppStatement HiLink cxxAttributeBracing cppStatement HiLink cxxTestingCall TestCall HiLink cxxLibPrefix Caller HiLink cxxLibLiterals Literals HiLink cxxExportNamespace cppModule HiLink cxxModuleNamespace Module HiLink cxxStlTraits MetaFunction HiLink cxxMetaFunction MetaFunction HiLink cxxLibMetaFunction cxxMetaFunction HiLink cxxStlDangerousFunction Dangerous HiLink cxxTagName Tag delcommand HiLink endif