19180
|
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: sil
|
|
11 "
|
|
12 " Vim maintainer: Emir SARI <bitigchi@me.com>
|
|
13
|
|
14 if exists("b:current_syntax")
|
|
15 finish
|
|
16 endif
|
|
17
|
|
18 let s:keepcpo = &cpo
|
|
19 set cpo&vim
|
|
20
|
|
21 syn keyword silStage skipwhite nextgroup=silStages
|
|
22 \ sil_stage
|
|
23 syn keyword silStages
|
|
24 \ canonical
|
|
25 \ raw
|
|
26
|
|
27 syn match silIdentifier skipwhite
|
|
28 \ /@\<[A-Za-z_0-9]\+\>/
|
|
29
|
|
30 syn match silConvention skipwhite
|
|
31 \ /$\?@convention/
|
|
32 syn region silConvention contained contains=silConventions
|
|
33 \ start="@convention(" end=")"
|
|
34 syn keyword silConventions
|
|
35 \ block
|
|
36 \ c
|
|
37 \ method
|
|
38 \ objc_method
|
|
39 \ thick
|
|
40 \ thin
|
|
41 \ witness_method
|
|
42
|
|
43 syn match silFunctionType skipwhite
|
|
44 \ /@\(\<autoreleased\>\|\<callee_guaranteed\>\|\<callee_owned\>\|\<error\>\|\<guaranteed\>\|\<in\>\|\<in_constant\>\|\<in_guaranteed\>\|\<inout\>\|\<inout_aliasable\>\|\<noescape\>\|\<out\>\|\<owned\>\)/
|
|
45 syn match silMetatypeType skipwhite
|
|
46 \ /@\(\<thick\>\|\<thin\>\|\<objc\>\)/
|
|
47
|
|
48 " TODO: handle [tail_elems sil-type * sil-operand]
|
|
49 syn region silAttribute contains=silAttributes
|
|
50 \ start="\[" end="\]"
|
|
51 syn keyword silAttributes contained containedin=silAttribute
|
|
52 \ abort
|
|
53 \ deinit
|
|
54 \ delegatingself
|
|
55 \ derivedself
|
|
56 \ derivedselfonly
|
|
57 \ dynamic
|
|
58 \ exact
|
|
59 \ init
|
|
60 \ modify
|
|
61 \ mutating
|
|
62 \ objc
|
|
63 \ open
|
|
64 \ read
|
|
65 \ rootself
|
|
66 \ stack
|
|
67 \ static
|
|
68 \ strict
|
|
69 \ unknown
|
|
70 \ unsafe
|
|
71 \ var
|
|
72
|
|
73 syn keyword swiftImport import skipwhite nextgroup=swiftImportModule
|
|
74 syn match swiftImportModule /\<[A-Za-z_][A-Za-z_0-9]*\>/ contained nextgroup=swiftImportComponent
|
|
75 syn match swiftImportComponent /\.\<[A-Za-z_][A-Za-z_0-9]*\>/ contained nextgroup=swiftImportComponent
|
|
76
|
|
77 syn region swiftComment start="/\*" end="\*/" contains=swiftComment,swiftTodo
|
|
78 syn region swiftLineComment start="//" end="$" contains=swiftTodo
|
|
79
|
|
80 syn match swiftLineComment /^#!.*/
|
|
81 syn match swiftTypeName /\<[A-Z][a-zA-Z_0-9]*\>/
|
|
82 syn match swiftDecimal /\<[-]\?[0-9]\+\>/
|
|
83 syn match swiftDecimal /\<[-+]\?[0-9]\+\>/
|
|
84
|
|
85 syn match swiftTypeName /\$\*\<\?[A-Z][a-zA-Z0-9_]*\>/
|
|
86 syn match swiftVarName /%\<[A-z[a-z_0-9]\+\(#[0-9]\+\)\?\>/
|
|
87
|
|
88 syn keyword swiftKeyword break case continue default do else for if in static switch repeat return where while skipwhite
|
|
89
|
|
90 syn keyword swiftKeyword sil internal thunk skipwhite
|
|
91 syn keyword swiftKeyword public hidden private shared public_external hidden_external skipwhite
|
|
92 syn keyword swiftKeyword getter setter allocator initializer enumelt destroyer globalaccessor objc skipwhite
|
|
93 syn keyword swiftKeyword alloc_global alloc_stack alloc_ref alloc_ref_dynamic alloc_box alloc_existential_box alloc_value_buffer dealloc_stack dealloc_box dealloc_existential_box dealloc_ref dealloc_partial_ref dealloc_value_buffer skipwhite
|
|
94 syn keyword swiftKeyword debug_value debug_value_addr skipwhite
|
|
95 syn keyword swiftKeyword load load_unowned store assign mark_uninitialized mark_function_escape copy_addr destroy_addr index_addr index_raw_pointer bind_memory to skipwhite
|
|
96 syn keyword swiftKeyword strong_retain strong_release strong_retain_unowned ref_to_unowned unowned_to_ref unowned_retain unowned_release load_weak store_unowned store_weak fix_lifetime autorelease_value set_deallocating is_unique is_escaping_closure skipwhite
|
|
97 syn keyword swiftKeyword function_ref integer_literal float_literal string_literal global_addr skipwhite
|
|
98 syn keyword swiftKeyword class_method super_method witness_method objc_method objc_super_method skipwhite
|
|
99 syn keyword swiftKeyword partial_apply builtin skipwhite
|
|
100 syn keyword swiftApplyKeyword apply try_apply skipwhite
|
|
101 syn keyword swiftKeyword metatype value_metatype existential_metatype skipwhite
|
|
102 syn keyword swiftKeyword retain_value release_value retain_value_addr release_value_addr tuple tuple_extract tuple_element_addr struct struct_extract struct_element_addr ref_element_addr skipwhite
|
|
103 syn keyword swiftKeyword init_enum_data_addr unchecked_enum_data unchecked_take_enum_data_addr inject_enum_addr skipwhite
|
|
104 syn keyword swiftKeyword init_existential_addr init_existential_value init_existential_metatype deinit_existential_addr deinit_existential_value open_existential_addr open_existential_box open_existential_box_value open_existential_metatype init_existential_ref open_existential_ref open_existential_value skipwhite
|
|
105 syn keyword swiftKeyword upcast address_to_pointer pointer_to_address pointer_to_thin_function unchecked_addr_cast unchecked_ref_cast unchecked_ref_cast_addr ref_to_raw_pointer ref_to_bridge_object ref_to_unmanaged unmanaged_to_ref raw_pointer_to_ref skipwhite
|
|
106 syn keyword swiftKeyword convert_function thick_to_objc_metatype thin_function_to_pointer objc_to_thick_metatype thin_to_thick_function unchecked_ref_bit_cast unchecked_trivial_bit_cast bridge_object_to_ref bridge_object_to_word unchecked_bitwise_cast skipwhite
|
|
107 syn keyword swiftKeyword objc_existential_metatype_to_object objc_metatype_to_object objc_protocol skipwhite
|
|
108 syn keyword swiftKeyword unconditional_checked_cast unconditional_checked_cast_addr unconditional_checked_cast_value skipwhite
|
|
109 syn keyword swiftKeyword cond_fail skipwhite
|
|
110 syn keyword swiftKeyword unreachable return throw br cond_br switch_value select_enum select_enum_addr select_value switch_enum switch_enum_addr dynamic_method_br checked_cast_br checked_cast_value_br checked_cast_addr_br skipwhite
|
|
111 syn keyword swiftKeyword project_box project_existential_box project_value_buffer project_block_storage init_block_storage_header copy_block mark_dependence skipwhite
|
|
112
|
|
113 syn keyword swiftTypeDefinition class extension protocol struct typealias enum skipwhite nextgroup=swiftTypeName
|
|
114 syn region swiftTypeAttributes start="\[" end="\]" skipwhite contained nextgroup=swiftTypeName
|
|
115 syn match swiftTypeName /\<[A-Za-z_][A-Za-z_0-9\.]*\>/ contained nextgroup=swiftTypeParameters
|
|
116
|
|
117 syn region swiftTypeParameters start="<" end=">" skipwhite contained
|
|
118
|
|
119 syn keyword swiftFuncDefinition func skipwhite nextgroup=swiftFuncAttributes,swiftFuncName,swiftOperator
|
|
120 syn region swiftFuncAttributes start="\[" end="\]" skipwhite contained nextgroup=swiftFuncName,swiftOperator
|
|
121 syn match swiftFuncName /\<[A-Za-z_][A-Za-z_0-9]*\>/ skipwhite contained nextgroup=swiftTypeParameters
|
|
122 syn keyword swiftFuncKeyword subscript init destructor nextgroup=swiftTypeParameters
|
|
123
|
|
124 syn keyword swiftVarDefinition var skipwhite nextgroup=swiftVarName
|
|
125 syn keyword swiftVarDefinition let skipwhite nextgroup=swiftVarName
|
|
126 syn match swiftVarName /\<[A-Za-z_][A-Za-z_0-9]*\>/ skipwhite contained
|
|
127
|
|
128 syn keyword swiftDefinitionModifier static
|
|
129
|
|
130 syn match swiftImplicitVarName /\$\<[A-Za-z_0-9]\+\>/
|
|
131
|
|
132 hi def link swiftImport Include
|
|
133 hi def link swiftImportModule Title
|
|
134 hi def link swiftImportComponent Identifier
|
|
135 hi def link swiftApplyKeyword Statement
|
|
136 hi def link swiftKeyword Statement
|
|
137 hi def link swiftTypeDefinition Define
|
|
138 hi def link swiftTypeName Type
|
|
139 hi def link swiftTypeParameters Special
|
|
140 hi def link swiftTypeAttributes PreProc
|
|
141 hi def link swiftFuncDefinition Define
|
|
142 hi def link swiftDefinitionModifier Define
|
|
143 hi def link swiftFuncName Function
|
|
144 hi def link swiftFuncAttributes PreProc
|
|
145 hi def link swiftFuncKeyword Function
|
|
146 hi def link swiftVarDefinition Define
|
|
147 hi def link swiftVarName Identifier
|
|
148 hi def link swiftImplicitVarName Identifier
|
|
149 hi def link swiftIdentifierKeyword Identifier
|
|
150 hi def link swiftTypeDeclaration Delimiter
|
|
151 hi def link swiftBoolean Boolean
|
|
152 hi def link swiftString String
|
|
153 hi def link swiftInterpolation Special
|
|
154 hi def link swiftComment Comment
|
|
155 hi def link swiftLineComment Comment
|
|
156 hi def link swiftDecimal Number
|
|
157 hi def link swiftHex Number
|
|
158 hi def link swiftOct Number
|
|
159 hi def link swiftBin Number
|
|
160 hi def link swiftOperator Function
|
|
161 hi def link swiftChar Character
|
|
162 hi def link swiftLabel Label
|
|
163 hi def link swiftNew Operator
|
|
164
|
|
165 hi def link silStage Special
|
|
166 hi def link silStages Type
|
|
167 hi def link silConvention Special
|
|
168 hi def link silConventionParameter Special
|
|
169 hi def link silConventions Type
|
|
170 hi def link silIdentifier Identifier
|
|
171 hi def link silFunctionType Special
|
|
172 hi def link silMetatypeType Special
|
|
173 hi def link silAttribute PreProc
|
|
174
|
|
175 let b:current_syntax = "sil"
|
|
176
|
|
177 let &cpo = s:keepcpo
|
|
178 unlet s:keepcpo
|