Mercurial > vim
annotate runtime/syntax/cpp.vim @ 22552:0296c106ec8b
Added tag v8.2.1824 for changeset 86a115a802625b1642c9d19a7cc30d1eea4715b2
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 10 Oct 2020 19:15:05 +0200 |
parents | 180a1c5175f6 |
children | 96206643bd9f |
rev | line source |
---|---|
7 | 1 " Vim syntax file |
2 " Language: C++ | |
6663 | 3 " Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp) |
4229 | 4 " Previous Maintainer: Ken Shan <ccshan@post.harvard.edu> |
18928 | 5 " Last Change: 2019 Dec 18 |
7 | 6 |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
7 " quit when a syntax file was already loaded |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
8 if exists("b:current_syntax") |
7 | 9 finish |
10 endif | |
11 | |
12 " Read the C syntax to start with | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
13 runtime! syntax/c.vim |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
14 unlet b:current_syntax |
7 | 15 |
4229 | 16 " C++ extensions |
7 | 17 syn keyword cppStatement new delete this friend using |
18 syn keyword cppAccess public protected private | |
7228
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
19 syn keyword cppModifier inline virtual explicit export |
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
20 syn keyword cppType bool wchar_t |
7 | 21 syn keyword cppExceptions throw try catch |
22 syn keyword cppOperator operator typeid | |
23 syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq | |
24 syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1 | |
25 syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$" | |
26 syn keyword cppStorageClass mutable | |
27 syn keyword cppStructure class typename template namespace | |
28 syn keyword cppBoolean true false | |
6663 | 29 syn keyword cppConstant __cplusplus |
7 | 30 |
4229 | 31 " C++ 11 extensions |
32 if !exists("cpp_no_cpp11") | |
7228
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
33 syn keyword cppModifier override final |
10319
169a62d5bcb9
commit https://github.com/vim/vim/commit/b4ada79aa7d0d1e5da3a659b1a203d7cae9f7f59
Christian Brabandt <cb@256bit.org>
parents:
10051
diff
changeset
|
34 syn keyword cppType nullptr_t auto |
4229 | 35 syn keyword cppExceptions noexcept |
6663 | 36 syn keyword cppStorageClass constexpr decltype thread_local |
4229 | 37 syn keyword cppConstant nullptr |
6663 | 38 syn keyword cppConstant ATOMIC_FLAG_INIT ATOMIC_VAR_INIT |
39 syn keyword cppConstant ATOMIC_BOOL_LOCK_FREE ATOMIC_CHAR_LOCK_FREE | |
40 syn keyword cppConstant ATOMIC_CHAR16_T_LOCK_FREE ATOMIC_CHAR32_T_LOCK_FREE | |
41 syn keyword cppConstant ATOMIC_WCHAR_T_LOCK_FREE ATOMIC_SHORT_LOCK_FREE | |
42 syn keyword cppConstant ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE | |
43 syn keyword cppConstant ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE | |
6823 | 44 syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell |
18928 | 45 syn match cppCast "\<\(const\|static\|dynamic\)_pointer_cast\s*<"me=e-1 |
46 syn match cppCast "\<\(const\|static\|dynamic\)_pointer_cast\s*$" | |
4229 | 47 endif |
48 | |
7228
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
49 " C++ 14 extensions |
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
50 if !exists("cpp_no_cpp14") |
10319
169a62d5bcb9
commit https://github.com/vim/vim/commit/b4ada79aa7d0d1e5da3a659b1a203d7cae9f7f59
Christian Brabandt <cb@256bit.org>
parents:
10051
diff
changeset
|
51 syn case ignore |
169a62d5bcb9
commit https://github.com/vim/vim/commit/b4ada79aa7d0d1e5da3a659b1a203d7cae9f7f59
Christian Brabandt <cb@256bit.org>
parents:
10051
diff
changeset
|
52 syn match cppNumber display "\<0b[01]\('\=[01]\+\)*\(u\=l\{0,2}\|ll\=u\)\>" |
11473 | 53 syn match cppNumber display "\<[1-9]\('\=\d\+\)*\(u\=l\{0,2}\|ll\=u\)\>" contains=cFloat |
10319
169a62d5bcb9
commit https://github.com/vim/vim/commit/b4ada79aa7d0d1e5da3a659b1a203d7cae9f7f59
Christian Brabandt <cb@256bit.org>
parents:
10051
diff
changeset
|
54 syn match cppNumber display "\<0x\x\('\=\x\+\)*\(u\=l\{0,2}\|ll\=u\)\>" |
169a62d5bcb9
commit https://github.com/vim/vim/commit/b4ada79aa7d0d1e5da3a659b1a203d7cae9f7f59
Christian Brabandt <cb@256bit.org>
parents:
10051
diff
changeset
|
55 syn case match |
7228
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
56 endif |
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
57 |
18928 | 58 " C++ 20 extensions |
59 if !exists("cpp_no_cpp20") | |
60 syn keyword cppStatement co_await co_return co_yield requires | |
61 syn keyword cppStorageClass consteval constinit | |
62 syn keyword cppStructure concept | |
63 syn keyword cppType char8_t | |
64 syn keyword cppModule import module export | |
65 endif | |
66 | |
67 " C++ 17 extensions | |
68 if !exists("cpp_no_cpp17") | |
69 syn match cppCast "\<reinterpret_pointer_cast\s*<"me=e-1 | |
70 syn match cppCast "\<reinterpret_pointer_cast\s*$" | |
71 endif | |
72 | |
7 | 73 " The minimum and maximum operators in GNU C++ |
74 syn match cppMinMax "[<>]?" | |
75 | |
76 " Default highlighting | |
10051
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
77 hi def link cppAccess cppStatement |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
78 hi def link cppCast cppStatement |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
79 hi def link cppExceptions Exception |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
80 hi def link cppOperator Operator |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
81 hi def link cppStatement Statement |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
82 hi def link cppModifier Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
83 hi def link cppType Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
84 hi def link cppStorageClass StorageClass |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
85 hi def link cppStructure Structure |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
86 hi def link cppBoolean Boolean |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
87 hi def link cppConstant Constant |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
88 hi def link cppRawStringDelimiter Delimiter |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
89 hi def link cppRawString String |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
90 hi def link cppNumber Number |
18928 | 91 hi def link cppModule Include |
7 | 92 |
93 let b:current_syntax = "cpp" | |
94 | |
95 " vim: ts=8 |