Mercurial > vim
annotate runtime/syntax/cpp.vim @ 32222:44ba07fe943e v9.0.1442
patch 9.0.1442: mapset() does not restore non-script context
Commit: https://github.com/vim/vim/commit/bfc7cbd1d44e53e844a079d8ad16ae990dad664d
Author: zeertzjq <zeertzjq@outlook.com>
Date: Fri Apr 7 22:09:46 2023 +0100
patch 9.0.1442: mapset() does not restore non-script context
Problem: mapset() does not restore non-script context.
Solution: Also accept negative sid. (closes https://github.com/vim/vim/issues/12132)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 07 Apr 2023 23:15:04 +0200 |
parents | d4faa2c5211b |
children | c62bca3b8d82 |
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> |
25700 | 5 " Last Change: 2021 Aug 23 |
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 | |
23666 | 12 " inform C syntax that the file was included from cpp.vim |
13 let b:filetype_in_cpp_family = 1 | |
14 | |
7 | 15 " 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
|
16 runtime! syntax/c.vim |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
17 unlet b:current_syntax |
7 | 18 |
4229 | 19 " C++ extensions |
7 | 20 syn keyword cppStatement new delete this friend using |
21 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
|
22 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
|
23 syn keyword cppType bool wchar_t |
7 | 24 syn keyword cppExceptions throw try catch |
25 syn keyword cppOperator operator typeid | |
26 syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq | |
27 syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1 | |
28 syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$" | |
29 syn keyword cppStorageClass mutable | |
30 syn keyword cppStructure class typename template namespace | |
31 syn keyword cppBoolean true false | |
6663 | 32 syn keyword cppConstant __cplusplus |
7 | 33 |
4229 | 34 " C++ 11 extensions |
35 if !exists("cpp_no_cpp11") | |
7228
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
36 syn keyword cppModifier override final |
10319
169a62d5bcb9
commit https://github.com/vim/vim/commit/b4ada79aa7d0d1e5da3a659b1a203d7cae9f7f59
Christian Brabandt <cb@256bit.org>
parents:
10051
diff
changeset
|
37 syn keyword cppType nullptr_t auto |
4229 | 38 syn keyword cppExceptions noexcept |
6663 | 39 syn keyword cppStorageClass constexpr decltype thread_local |
4229 | 40 syn keyword cppConstant nullptr |
6663 | 41 syn keyword cppConstant ATOMIC_FLAG_INIT ATOMIC_VAR_INIT |
42 syn keyword cppConstant ATOMIC_BOOL_LOCK_FREE ATOMIC_CHAR_LOCK_FREE | |
43 syn keyword cppConstant ATOMIC_CHAR16_T_LOCK_FREE ATOMIC_CHAR32_T_LOCK_FREE | |
44 syn keyword cppConstant ATOMIC_WCHAR_T_LOCK_FREE ATOMIC_SHORT_LOCK_FREE | |
45 syn keyword cppConstant ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE | |
46 syn keyword cppConstant ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE | |
24751 | 47 syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"\(sv\|s\|_[_a-zA-Z][_a-zA-Z0-9]*\)\=+ contains=@Spell |
18928 | 48 syn match cppCast "\<\(const\|static\|dynamic\)_pointer_cast\s*<"me=e-1 |
49 syn match cppCast "\<\(const\|static\|dynamic\)_pointer_cast\s*$" | |
4229 | 50 endif |
51 | |
7228
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
52 " C++ 14 extensions |
873eae260c97
commit https://github.com/vim/vim/commit/b4ff518d95aa57c2f8c0568c915035bef849581b
Christian Brabandt <cb@256bit.org>
parents:
6823
diff
changeset
|
53 if !exists("cpp_no_cpp14") |
24751 | 54 syn match cppNumbers display transparent "\<\d\|\.\d" contains=cppNumber,cppFloat |
55 syn match cppNumber display contained "\<0\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" | |
56 syn match cppNumber display contained "\<[1-9]\('\=\d\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" | |
57 syn match cppNumber display contained "\<0\o\+\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" | |
58 syn match cppNumber display contained "\<0b[01]\('\=[01]\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" | |
59 syn match cppNumber display contained "\<0x\x\('\=\x\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" | |
60 syn match cppFloat display contained "\<\d\+\.\d*\(e[-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" | |
61 syn match cppFloat display contained "\<\.\d\+\(e[-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" | |
62 syn match cppFloat display contained "\<\d\+e[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" | |
25700 | 63 syn region cppString start=+\(L\|u\|u8\|U\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"\(sv\|s\|_\i*\)\=+ end='$' contains=cSpecial,cFormat,@Spell |
18928 | 64 endif |
65 | |
66 " C++ 17 extensions | |
67 if !exists("cpp_no_cpp17") | |
68 syn match cppCast "\<reinterpret_pointer_cast\s*<"me=e-1 | |
69 syn match cppCast "\<reinterpret_pointer_cast\s*$" | |
24751 | 70 syn match cppFloat display contained "\<0x\x*\.\x\+p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" |
71 syn match cppFloat display contained "\<0x\x\+\.\=p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" | |
25700 | 72 |
73 " TODO: push this up to c.vim if/when supported in C23 | |
74 syn match cppCharacter "u8'[^\\]'" | |
75 syn match cppCharacter "u8'[^']*'" contains=cSpecial | |
76 if exists("c_gnu") | |
77 syn match cppSpecialError "u8'\\[^'\"?\\abefnrtv]'" | |
78 syn match cppSpecialCharacter "u8'\\['\"?\\abefnrtv]'" | |
79 else | |
80 syn match cppSpecialError "u8'\\[^'\"?\\abfnrtv]'" | |
81 syn match cppSpecialCharacter "u8'\\['\"?\\abfnrtv]'" | |
82 endif | |
83 syn match cppSpecialCharacter display "u8'\\\o\{1,3}'" | |
84 syn match cppSpecialCharacter display "u8'\\x\x\+'" | |
85 | |
24751 | 86 endif |
87 | |
88 " C++ 20 extensions | |
89 if !exists("cpp_no_cpp20") | |
90 syn match cppNumber display contained "\<0\(y\|d\)\>" | |
91 syn match cppNumber display contained "\<[1-9]\('\=\d\+\)*\(y\|d\)\>" | |
92 syn match cppNumber display contained "\<0\o\+\(y\|d\)\>" | |
93 syn match cppNumber display contained "\<0b[01]\('\=[01]\+\)*\(y\|d\)\>" | |
94 syn match cppNumber display contained "\<0x\x\('\=\x\+\)*\(y\|d\)\>" | |
95 syn keyword cppStatement co_await co_return co_yield requires | |
96 syn keyword cppStorageClass consteval constinit | |
97 syn keyword cppStructure concept | |
98 syn keyword cppType char8_t | |
99 syn keyword cppModule import module export | |
18928 | 100 endif |
101 | |
7 | 102 " The minimum and maximum operators in GNU C++ |
103 syn match cppMinMax "[<>]?" | |
104 | |
105 " Default highlighting | |
10051
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
106 hi def link cppAccess cppStatement |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
107 hi def link cppCast cppStatement |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
108 hi def link cppExceptions Exception |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
109 hi def link cppOperator Operator |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
110 hi def link cppStatement Statement |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
111 hi def link cppModifier Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
112 hi def link cppType Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
113 hi def link cppStorageClass StorageClass |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
114 hi def link cppStructure Structure |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
115 hi def link cppBoolean Boolean |
25700 | 116 hi def link cppCharacter cCharacter |
117 hi def link cppSpecialCharacter cSpecialCharacter | |
118 hi def link cppSpecialError cSpecialError | |
10051
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
119 hi def link cppConstant Constant |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
120 hi def link cppRawStringDelimiter Delimiter |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
121 hi def link cppRawString String |
24751 | 122 hi def link cppString String |
10051
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
123 hi def link cppNumber Number |
24751 | 124 hi def link cppFloat Number |
18928 | 125 hi def link cppModule Include |
7 | 126 |
127 let b:current_syntax = "cpp" | |
128 | |
129 " vim: ts=8 |