Mercurial > vim
comparison runtime/syntax/swift.vim @ 19180:8edf0aeb71b9
Update runtime files.
Commit: https://github.com/vim/vim/commit/1d9215b9aaa120b9d78fee49488556f73007ce78
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 25 13:27:42 2020 +0100
Update runtime files.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 25 Jan 2020 13:30:05 +0100 |
parents | |
children | fab58304f77d |
comparison
equal
deleted
inserted
replaced
19179:539bca3da740 | 19180:8edf0aeb71b9 |
---|---|
1 " This source file is part of the Swift.org open source project | |
2 " | |
3 " Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors | |
4 " Licensed under Apache License v2.0 with Runtime Library Exception | |
5 " | |
6 " See https://swift.org/LICENSE.txt for license information | |
7 " See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors | |
8 " | |
9 " Vim syntax file | |
10 " Language: swift | |
11 " Maintainer: Joe Groff <jgroff@apple.com> | |
12 " Last Change: 2018 Jan 21 | |
13 " | |
14 " Vim maintainer: Emir SARI <bitigchi@me.com> | |
15 | |
16 if exists("b:current_syntax") | |
17 finish | |
18 endif | |
19 | |
20 let s:keepcpo = &cpo | |
21 set cpo&vim | |
22 | |
23 syn keyword swiftKeyword | |
24 \ associatedtype | |
25 \ break | |
26 \ catch | |
27 \ continue | |
28 \ defer | |
29 \ do | |
30 \ else | |
31 \ fallthrough | |
32 \ for | |
33 \ guard | |
34 \ if | |
35 \ in | |
36 \ repeat | |
37 \ return | |
38 \ switch | |
39 \ throw | |
40 \ try | |
41 \ where | |
42 \ while | |
43 syn match swiftMultiwordKeyword | |
44 \ "indirect case" | |
45 | |
46 syn keyword swiftImport skipwhite skipempty nextgroup=swiftImportModule | |
47 \ import | |
48 | |
49 syn keyword swiftDefinitionModifier | |
50 \ convenience | |
51 \ dynamic | |
52 \ fileprivate | |
53 \ final | |
54 \ internal | |
55 \ lazy | |
56 \ nonmutating | |
57 \ open | |
58 \ override | |
59 \ prefix | |
60 \ private | |
61 \ public | |
62 \ required | |
63 \ rethrows | |
64 \ static | |
65 \ throws | |
66 \ weak | |
67 | |
68 syn keyword swiftInOutKeyword skipwhite skipempty nextgroup=swiftTypeName | |
69 \ inout | |
70 | |
71 syn keyword swiftIdentifierKeyword | |
72 \ Self | |
73 \ metatype | |
74 \ self | |
75 \ super | |
76 | |
77 syn keyword swiftFuncKeywordGeneral skipwhite skipempty nextgroup=swiftTypeParameters | |
78 \ init | |
79 | |
80 syn keyword swiftFuncKeyword | |
81 \ deinit | |
82 \ subscript | |
83 | |
84 syn keyword swiftScope | |
85 \ autoreleasepool | |
86 | |
87 syn keyword swiftMutating skipwhite skipempty nextgroup=swiftFuncDefinition | |
88 \ mutating | |
89 syn keyword swiftFuncDefinition skipwhite skipempty nextgroup=swiftTypeName,swiftOperator | |
90 \ func | |
91 | |
92 syn keyword swiftTypeDefinition skipwhite skipempty nextgroup=swiftTypeName | |
93 \ class | |
94 \ enum | |
95 \ extension | |
96 \ protocol | |
97 \ struct | |
98 | |
99 syn keyword swiftTypeAliasDefinition skipwhite skipempty nextgroup=swiftTypeAliasName | |
100 \ typealias | |
101 | |
102 syn match swiftMultiwordTypeDefinition skipwhite skipempty nextgroup=swiftTypeName | |
103 \ "indirect enum" | |
104 | |
105 syn keyword swiftVarDefinition skipwhite skipempty nextgroup=swiftVarName | |
106 \ let | |
107 \ var | |
108 | |
109 syn keyword swiftLabel | |
110 \ get | |
111 \ set | |
112 \ didSet | |
113 \ willSet | |
114 | |
115 syn keyword swiftBoolean | |
116 \ false | |
117 \ true | |
118 | |
119 syn keyword swiftNil | |
120 \ nil | |
121 | |
122 syn match swiftImportModule contained nextgroup=swiftImportComponent | |
123 \ /\<[A-Za-z_][A-Za-z_0-9]*\>/ | |
124 syn match swiftImportComponent contained nextgroup=swiftImportComponent | |
125 \ /\.\<[A-Za-z_][A-Za-z_0-9]*\>/ | |
126 | |
127 syn match swiftTypeAliasName contained skipwhite skipempty nextgroup=swiftTypeAliasValue | |
128 \ /\<[A-Za-z_][A-Za-z_0-9]*\>/ | |
129 syn match swiftTypeName contained skipwhite skipempty nextgroup=swiftTypeParameters | |
130 \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>/ | |
131 syn match swiftVarName contained skipwhite skipempty nextgroup=swiftTypeDeclaration | |
132 \ /\<[A-Za-z_][A-Za-z_0-9]*\>/ | |
133 syn match swiftImplicitVarName | |
134 \ /\$\<[A-Za-z_0-9]\+\>/ | |
135 | |
136 " TypeName[Optionality]? | |
137 syn match swiftType contained skipwhite skipempty nextgroup=swiftTypeParameters | |
138 \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/ | |
139 " [Type:Type] (dictionary) or [Type] (array) | |
140 syn region swiftType contained contains=swiftTypePair,swiftType | |
141 \ matchgroup=Delimiter start=/\[/ end=/\]/ | |
142 syn match swiftTypePair contained skipwhite skipempty nextgroup=swiftTypeParameters,swiftTypeDeclaration | |
143 \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/ | |
144 " (Type[, Type]) (tuple) | |
145 " FIXME: we should be able to use skip="," and drop swiftParamDelim | |
146 syn region swiftType contained contains=swiftType,swiftParamDelim | |
147 \ matchgroup=Delimiter start="[^@]\?(" end=")" matchgroup=NONE skip="," | |
148 syn match swiftParamDelim contained | |
149 \ /,/ | |
150 " <Generic Clause> (generics) | |
151 syn region swiftTypeParameters contained contains=swiftVarName,swiftConstraint | |
152 \ matchgroup=Delimiter start="<" end=">" matchgroup=NONE skip="," | |
153 syn keyword swiftConstraint contained | |
154 \ where | |
155 | |
156 syn match swiftTypeAliasValue skipwhite skipempty nextgroup=swiftType | |
157 \ /=/ | |
158 syn match swiftTypeDeclaration skipwhite skipempty nextgroup=swiftType,swiftInOutKeyword | |
159 \ /:/ | |
160 syn match swiftTypeDeclaration skipwhite skipempty nextgroup=swiftType | |
161 \ /->/ | |
162 | |
163 syn match swiftKeyword | |
164 \ /\<case\>/ | |
165 syn region swiftCaseLabelRegion | |
166 \ matchgroup=swiftKeyword start=/\<case\>/ matchgroup=Delimiter end=/:/ oneline contains=TOP | |
167 syn region swiftDefaultLabelRegion | |
168 \ matchgroup=swiftKeyword start=/\<default\>/ matchgroup=Delimiter end=/:/ oneline | |
169 | |
170 syn region swiftParenthesisRegion contains=TOP | |
171 \ matchgroup=NONE start=/(/ end=/)/ | |
172 | |
173 syn region swiftString contains=swiftInterpolationRegion | |
174 \ start=/"/ skip=/\\\\\|\\"/ end=/"/ | |
175 syn region swiftInterpolationRegion contained contains=TOP | |
176 \ matchgroup=swiftInterpolation start=/\\(/ end=/)/ | |
177 syn region swiftComment contains=swiftComment,swiftLineComment,swiftTodo | |
178 \ start="/\*" end="\*/" | |
179 syn region swiftLineComment contains=swiftComment,swiftTodo | |
180 \ start="//" end="$" | |
181 | |
182 syn match swiftDecimal | |
183 \ /[+\-]\?\<\([0-9][0-9_]*\)\([.][0-9_]*\)\?\([eE][+\-]\?[0-9][0-9_]*\)\?\>/ | |
184 syn match swiftHex | |
185 \ /[+\-]\?\<0x[0-9A-Fa-f][0-9A-Fa-f_]*\(\([.][0-9A-Fa-f_]*\)\?[pP][+\-]\?[0-9][0-9_]*\)\?\>/ | |
186 syn match swiftOct | |
187 \ /[+\-]\?\<0o[0-7][0-7_]*\>/ | |
188 syn match swiftBin | |
189 \ /[+\-]\?\<0b[01][01_]*\>/ | |
190 | |
191 syn match swiftOperator skipwhite skipempty nextgroup=swiftTypeParameters | |
192 \ "\.\@<!\.\.\.\@!\|[/=\-+*%<>!&|^~]\@<!\(/[/*]\@![/=\-+*%<>!&|^~]*\|*/\@![/=\-+*%<>!&|^~]*\|->\@![/=\-+*%<>!&|^~]*\|[=+%<>!&|^~][/=\-+*%<>!&|^~]*\)" | |
193 syn match swiftOperator skipwhite skipempty nextgroup=swiftTypeParameters | |
194 \ "\.\.[<.]" | |
195 | |
196 syn match swiftChar | |
197 \ /'\([^'\\]\|\\\(["'tnr0\\]\|x[0-9a-fA-F]\{2}\|u[0-9a-fA-F]\{4}\|U[0-9a-fA-F]\{8}\)\)'/ | |
198 | |
199 syn match swiftTupleIndexNumber contains=swiftDecimal | |
200 \ /\.[0-9]\+/ | |
201 syn match swiftDecimal contained | |
202 \ /[0-9]\+/ | |
203 | |
204 syn match swiftPreproc | |
205 \ /#\(\<file\>\|\<line\>\|\<function\>\)/ | |
206 syn match swiftPreproc | |
207 \ /^\s*#\(\<if\>\|\<else\>\|\<elseif\>\|\<endif\>\|\<error\>\|\<warning\>\)/ | |
208 syn region swiftPreprocFalse | |
209 \ start="^\s*#\<if\>\s\+\<false\>" end="^\s*#\(\<else\>\|\<elseif\>\|\<endif\>\)" | |
210 | |
211 syn match swiftAttribute | |
212 \ /@\<\w\+\>/ skipwhite skipempty nextgroup=swiftType,swiftTypeDefinition | |
213 | |
214 syn keyword swiftTodo MARK TODO FIXME contained | |
215 | |
216 syn match swiftCastOp skipwhite skipempty nextgroup=swiftType | |
217 \ "\<is\>" | |
218 syn match swiftCastOp skipwhite skipempty nextgroup=swiftType | |
219 \ "\<as\>[!?]\?" | |
220 | |
221 syn match swiftNilOps | |
222 \ "??" | |
223 | |
224 syn region swiftReservedIdentifier oneline | |
225 \ start=/`/ end=/`/ | |
226 | |
227 hi def link swiftImport Include | |
228 hi def link swiftImportModule Title | |
229 hi def link swiftImportComponent Identifier | |
230 hi def link swiftKeyword Statement | |
231 hi def link swiftMultiwordKeyword Statement | |
232 hi def link swiftTypeDefinition Define | |
233 hi def link swiftMultiwordTypeDefinition Define | |
234 hi def link swiftType Type | |
235 hi def link swiftTypePair Type | |
236 hi def link swiftTypeAliasName Identifier | |
237 hi def link swiftTypeName Function | |
238 hi def link swiftConstraint Special | |
239 hi def link swiftFuncDefinition Define | |
240 hi def link swiftDefinitionModifier Operator | |
241 hi def link swiftInOutKeyword Define | |
242 hi def link swiftFuncKeyword Function | |
243 hi def link swiftFuncKeywordGeneral Function | |
244 hi def link swiftTypeAliasDefinition Define | |
245 hi def link swiftVarDefinition Define | |
246 hi def link swiftVarName Identifier | |
247 hi def link swiftImplicitVarName Identifier | |
248 hi def link swiftIdentifierKeyword Identifier | |
249 hi def link swiftTypeAliasValue Delimiter | |
250 hi def link swiftTypeDeclaration Delimiter | |
251 hi def link swiftTypeParameters Delimiter | |
252 hi def link swiftBoolean Boolean | |
253 hi def link swiftString String | |
254 hi def link swiftInterpolation Special | |
255 hi def link swiftComment Comment | |
256 hi def link swiftLineComment Comment | |
257 hi def link swiftDecimal Number | |
258 hi def link swiftHex Number | |
259 hi def link swiftOct Number | |
260 hi def link swiftBin Number | |
261 hi def link swiftOperator Function | |
262 hi def link swiftChar Character | |
263 hi def link swiftLabel Operator | |
264 hi def link swiftMutating Statement | |
265 hi def link swiftPreproc PreCondit | |
266 hi def link swiftPreprocFalse Comment | |
267 hi def link swiftAttribute Type | |
268 hi def link swiftTodo Todo | |
269 hi def link swiftNil Constant | |
270 hi def link swiftCastOp Operator | |
271 hi def link swiftNilOps Operator | |
272 hi def link swiftScope PreProc | |
273 | |
274 let b:current_syntax = "swift" | |
275 | |
276 let &cpo = s:keepcpo | |
277 unlet s:keepcpo |