vim/after/syntax/cpp.vim

30 lines
1.3 KiB
VimL

" Language: C++
" Description: Additional C++ syntax file.
" Author: Kenneth Benzie (Benie) k.benzie83@gmail.com
" Last Modified: September 04, 2016
" Match delimiter expressions: <expr>, ex::pr
" ^ ^ ^^
syn match cppDelimiter '\(<\|>\|::\)'
" Match keyword logic operators
syn keyword cppOperator and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq
" Match keyword operators
syn keyword cppOperator new delete alignas alignof decltype
" Match single character operators if they are surrounded by white space: / < >
" ^ ^ ^
syn match cppOperator '\(\s\zs\/\s\ze\|\s\zs<\s\ze\|\s\zs>\s\ze\)'
" Match nested namespace expressions: expr::
" ^^^^
syn match cppNestedNameSpecifier '\w[A-Za-z0-9_]*\ze::'
" " Match multi character operators, override cppDelimiter matches for < >
" " ^ ^
syn match cppOperator '\(<<\ze\s\|\s\zs>>\|>>=\|<<=\|<=\|>=\|->\*\|->\)'
" Define additional highlight groups
hi default link cppDelimiter Delimiter
" Override default highlight groups
hi link cppCast Operator
hi link cppModifier Statement
hi link cppNestedNameSpecifier Include