@@ -54,6 +54,7 @@ syn keyword swiftDefinitionModifier
54
54
\ internal
55
55
\ private
56
56
\ public
57
+ \ rethrows
57
58
\ static
58
59
\ throws
59
60
@@ -64,20 +65,50 @@ syn keyword swiftIdentifierKeyword
64
65
\ self
65
66
\ super
66
67
67
- syn keyword swiftFuncKeyword nextgroup =swiftTypeParameters
68
- \ deinit
68
+ syn keyword swiftFuncKeywordGeneral skipwhite nextgroup =swiftTypeParameters
69
69
\ init
70
+
71
+ syn keyword swiftFuncKeyword
72
+ \ deinit
70
73
\ subscript
71
74
72
75
syn keyword swiftScope
73
76
\ autoreleasepool
74
77
75
- syn keyword swiftTypeDefinition class extension protocol struct typealias enum skipwhite nextgroup =swiftTypeName
76
-
77
- syn match swiftTypeName / \< [A-Za-z_][A-Za-z_0-9\. ]*\> [!?]\? / contained nextgroup =swiftTypeParameters
78
- syn region swiftArrayType start =/ \[ / end =/ \] / contained skipwhite nextgroup =swiftTypeName
78
+ syn keyword swiftTypeDefinition skipwhite nextgroup =swiftTypeName
79
+ \ class
80
+ \ enum
81
+ \ extension
82
+ \ protocol
83
+ \ struct
84
+ \ typealias
79
85
80
- syn region swiftTypeParameters start =" <" end =" >" contained
86
+ syn keyword swiftNew skipwhite nextgroup =swiftTypeName
87
+ \ new
88
+
89
+ syn match swiftTypeName contained nextgroup =swiftTypeParameters
90
+ \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>/
91
+
92
+ " TypeName[Optionality]?
93
+ syn match swiftType contained nextgroup =swiftTypeParameters
94
+ \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/
95
+ " [Type:Type] (dictionary) or [Type] (array)
96
+ syn region swiftType contained contains =swiftTypePair,swiftType
97
+ \ start = /\[/ end = /\]/
98
+ syn match swiftTypePair contained nextgroup =swiftTypeParameters,swiftTypeDeclaration
99
+ \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/
100
+ " (Type[, Type]) (tuple)
101
+ syn region swiftType contained contains =swiftType,swiftParamDelim
102
+ \ start = " [^@](" end = " )"
103
+ syn match swiftParamDelim contained
104
+ \ /,/
105
+ " <Generic Clause> (generics)
106
+ syn region swiftTypeParameters contained contains =swiftArchetype,swiftConstraint
107
+ \ start = " <" end = " >"
108
+ syn match swiftArchetype contained skipwhite nextgroup =swiftTypeDeclaration
109
+ \ /\<[A-Za-z_][A-Za-z_0-9]*\>/
110
+ syn keyword swiftConstraint contained
111
+ \ where
81
112
82
113
syn keyword swiftMutating mutating skipwhite nextgroup =swiftFuncDefinition
83
114
syn keyword swiftFuncDefinition func skipwhite nextgroup =swiftFuncName,swiftOperator
@@ -89,11 +120,8 @@ syn match swiftVarName /\<[A-Za-z_][A-Za-z_0-9]*\>/ contained
89
120
90
121
syn match swiftImplicitVarName / \$\< [A-Za-z_0-9]\+\> /
91
122
92
- syn match swiftTypeDeclaration / :/ skipwhite nextgroup =swiftTypeName
93
- syn match swiftTypeDeclaration / ->/ skipwhite nextgroup =swiftTypeName
94
-
95
-
96
- syn keyword swiftNew new skipwhite nextgroup =swiftTypeName
123
+ syn match swiftTypeDeclaration / :/ skipwhite nextgroup =swiftType
124
+ syn match swiftTypeDeclaration / ->/ skipwhite nextgroup =swiftType
97
125
98
126
syn keyword swiftBoolean true false
99
127
@@ -117,32 +145,39 @@ syn keyword swiftLabel get set
117
145
syn match swiftPreproc / ^\s *#\(\< if\>\|\< else\>\|\< elseif\>\|\< endif\>\) /
118
146
syn region swiftPreprocFalse start =" ^\s *#\< if\>\s\+\< false\> " end =" ^\s *#\(\< else\>\|\< elseif\>\|\< endif\>\) "
119
147
120
- syn match swiftAttribute / @\<\w\+\> /
148
+ syn match swiftAttribute / @\<\w\+\> / skipwhite nextgroup = swiftType
121
149
122
150
syn keyword swiftTodo TODO FIXME contained
123
151
syn keyword swiftNil nil
124
152
125
- syn match swiftCastOp " \< as\> [!?]\? " skipwhite nextgroup =swiftTypeName,swiftArrayType
153
+ syn match swiftCastOp " \< as\> [!?]\? " skipwhite nextgroup =swiftType
126
154
127
155
syn match swiftNilOps " ??"
128
156
157
+ syn region swiftReservedIdentifier oneline
158
+ \ start = /`/ end = /`/
159
+
129
160
hi def link swiftImport Include
130
161
hi def link swiftImportModule Title
131
162
hi def link swiftImportComponent Identifier
132
163
hi def link swiftKeyword Statement
133
164
hi def link swiftTypeDefinition Define
134
- hi def link swiftTypeName Type
135
- hi def link swiftArrayType Type
136
- hi def link swiftTypeParameters Special
165
+ hi def link swiftType Type
166
+ hi def link swiftTypePair Type
167
+ hi def link swiftTypeName Function
168
+ hi def link swiftArchetype Identifier
169
+ hi def link swiftConstraint Special
137
170
hi def link swiftFuncDefinition Define
138
171
hi def link swiftDefinitionModifier Define
139
172
hi def link swiftFuncName Function
140
173
hi def link swiftFuncKeyword Function
174
+ hi def link swiftFuncKeywordGeneral Function
141
175
hi def link swiftVarDefinition Define
142
176
hi def link swiftVarName Identifier
143
177
hi def link swiftImplicitVarName Identifier
144
178
hi def link swiftIdentifierKeyword Identifier
145
179
hi def link swiftTypeDeclaration Delimiter
180
+ hi def link swiftTypeParameters Delimiter
146
181
hi def link swiftBoolean Boolean
147
182
hi def link swiftString String
148
183
hi def link swiftInterpolation Special
0 commit comments