xref: /vim-8.2.3635/runtime/syntax/cpp.vim (revision 071d4279)
1*071d4279SBram Moolenaar" Vim syntax file
2*071d4279SBram Moolenaar" Language:	C++
3*071d4279SBram Moolenaar" Maintainer:	Ken Shan <[email protected]>
4*071d4279SBram Moolenaar" Last Change:	2002 Jul 15
5*071d4279SBram Moolenaar
6*071d4279SBram Moolenaar" For version 5.x: Clear all syntax items
7*071d4279SBram Moolenaar" For version 6.x: Quit when a syntax file was already loaded
8*071d4279SBram Moolenaarif version < 600
9*071d4279SBram Moolenaar  syntax clear
10*071d4279SBram Moolenaarelseif exists("b:current_syntax")
11*071d4279SBram Moolenaar  finish
12*071d4279SBram Moolenaarendif
13*071d4279SBram Moolenaar
14*071d4279SBram Moolenaar" Read the C syntax to start with
15*071d4279SBram Moolenaarif version < 600
16*071d4279SBram Moolenaar  so <sfile>:p:h/c.vim
17*071d4279SBram Moolenaarelse
18*071d4279SBram Moolenaar  runtime! syntax/c.vim
19*071d4279SBram Moolenaar  unlet b:current_syntax
20*071d4279SBram Moolenaarendif
21*071d4279SBram Moolenaar
22*071d4279SBram Moolenaar" C++ extentions
23*071d4279SBram Moolenaarsyn keyword cppStatement	new delete this friend using
24*071d4279SBram Moolenaarsyn keyword cppAccess		public protected private
25*071d4279SBram Moolenaarsyn keyword cppType		inline virtual explicit export bool wchar_t
26*071d4279SBram Moolenaarsyn keyword cppExceptions	throw try catch
27*071d4279SBram Moolenaarsyn keyword cppOperator		operator typeid
28*071d4279SBram Moolenaarsyn keyword cppOperator		and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq
29*071d4279SBram Moolenaarsyn match cppCast		"\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1
30*071d4279SBram Moolenaarsyn match cppCast		"\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$"
31*071d4279SBram Moolenaarsyn keyword cppStorageClass	mutable
32*071d4279SBram Moolenaarsyn keyword cppStructure	class typename template namespace
33*071d4279SBram Moolenaarsyn keyword cppNumber		NPOS
34*071d4279SBram Moolenaarsyn keyword cppBoolean		true false
35*071d4279SBram Moolenaar
36*071d4279SBram Moolenaar" The minimum and maximum operators in GNU C++
37*071d4279SBram Moolenaarsyn match cppMinMax "[<>]?"
38*071d4279SBram Moolenaar
39*071d4279SBram Moolenaar" Default highlighting
40*071d4279SBram Moolenaarif version >= 508 || !exists("did_cpp_syntax_inits")
41*071d4279SBram Moolenaar  if version < 508
42*071d4279SBram Moolenaar    let did_cpp_syntax_inits = 1
43*071d4279SBram Moolenaar    command -nargs=+ HiLink hi link <args>
44*071d4279SBram Moolenaar  else
45*071d4279SBram Moolenaar    command -nargs=+ HiLink hi def link <args>
46*071d4279SBram Moolenaar  endif
47*071d4279SBram Moolenaar  HiLink cppAccess		cppStatement
48*071d4279SBram Moolenaar  HiLink cppCast		cppStatement
49*071d4279SBram Moolenaar  HiLink cppExceptions		Exception
50*071d4279SBram Moolenaar  HiLink cppOperator		Operator
51*071d4279SBram Moolenaar  HiLink cppStatement		Statement
52*071d4279SBram Moolenaar  HiLink cppType		Type
53*071d4279SBram Moolenaar  HiLink cppStorageClass	StorageClass
54*071d4279SBram Moolenaar  HiLink cppStructure		Structure
55*071d4279SBram Moolenaar  HiLink cppNumber		Number
56*071d4279SBram Moolenaar  HiLink cppBoolean		Boolean
57*071d4279SBram Moolenaar  delcommand HiLink
58*071d4279SBram Moolenaarendif
59*071d4279SBram Moolenaar
60*071d4279SBram Moolenaarlet b:current_syntax = "cpp"
61*071d4279SBram Moolenaar
62*071d4279SBram Moolenaar" vim: ts=8
63