diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-27 20:43:42 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-27 20:43:42 +0200 | 
| commit | 5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1 (patch) | |
| tree | 965ae5128797f3d42d78d02692e62d24a4596e19 /syntax/cpp.vim | |
| parent | 8148255ef1c416f414c3a78405eff08fe149d16e (diff) | |
| download | vim-polyglot-5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1.tar.gz vim-polyglot-5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1.zip  | |
Add syntax files from upstream vim repository
Diffstat (limited to '')
| -rw-r--r-- | syntax/cpp.vim | 81 | 
1 files changed, 81 insertions, 0 deletions
diff --git a/syntax/cpp.vim b/syntax/cpp.vim index 67e3e5ac..6fc00506 100644 --- a/syntax/cpp.vim +++ b/syntax/cpp.vim @@ -1,3 +1,84 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 +   +" Vim syntax file +" Language:	C++ +" Current Maintainer:	vim-jp (https://github.com/vim-jp/vim-cpp) +" Previous Maintainer:	Ken Shan <ccshan@post.harvard.edu> +" Last Change:	2017 Jun 05 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") +  finish +endif + +" Read the C syntax to start with +runtime! syntax/c.vim +unlet b:current_syntax + +" C++ extensions +syn keyword cppStatement	new delete this friend using +syn keyword cppAccess		public protected private +syn keyword cppModifier		inline virtual explicit export +syn keyword cppType		bool wchar_t +syn keyword cppExceptions	throw try catch +syn keyword cppOperator		operator typeid +syn keyword cppOperator		and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq +syn match cppCast		"\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1 +syn match cppCast		"\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$" +syn keyword cppStorageClass	mutable +syn keyword cppStructure	class typename template namespace +syn keyword cppBoolean		true false +syn keyword cppConstant		__cplusplus + +" C++ 11 extensions +if !exists("cpp_no_cpp11") +  syn keyword cppModifier	override final +  syn keyword cppType		nullptr_t auto +  syn keyword cppExceptions	noexcept +  syn keyword cppStorageClass	constexpr decltype thread_local +  syn keyword cppConstant	nullptr +  syn keyword cppConstant	ATOMIC_FLAG_INIT ATOMIC_VAR_INIT +  syn keyword cppConstant	ATOMIC_BOOL_LOCK_FREE ATOMIC_CHAR_LOCK_FREE +  syn keyword cppConstant	ATOMIC_CHAR16_T_LOCK_FREE ATOMIC_CHAR32_T_LOCK_FREE +  syn keyword cppConstant	ATOMIC_WCHAR_T_LOCK_FREE ATOMIC_SHORT_LOCK_FREE +  syn keyword cppConstant	ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE +  syn keyword cppConstant	ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE +  syn region cppRawString	matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell +endif + +" C++ 14 extensions +if !exists("cpp_no_cpp14") +  syn case ignore +  syn match cppNumber		display "\<0b[01]\('\=[01]\+\)*\(u\=l\{0,2}\|ll\=u\)\>" +  syn match cppNumber		display "\<[1-9]\('\=\d\+\)*\(u\=l\{0,2}\|ll\=u\)\>" contains=cFloat +  syn match cppNumber		display "\<0x\x\('\=\x\+\)*\(u\=l\{0,2}\|ll\=u\)\>" +  syn case match +endif + +" The minimum and maximum operators in GNU C++ +syn match cppMinMax "[<>]?" + +" Default highlighting +hi def link cppAccess		cppStatement +hi def link cppCast		cppStatement +hi def link cppExceptions		Exception +hi def link cppOperator		Operator +hi def link cppStatement		Statement +hi def link cppModifier		Type +hi def link cppType		Type +hi def link cppStorageClass	StorageClass +hi def link cppStructure		Structure +hi def link cppBoolean		Boolean +hi def link cppConstant		Constant +hi def link cppRawStringDelimiter	Delimiter +hi def link cppRawString		String +hi def link cppNumber		Number + +let b:current_syntax = "cpp" + +" vim: ts=8 + +endif  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c/c++') == -1  " Vim syntax file  | 
