@@ -107,15 +107,6 @@ public final class IndexStoreDB {
107
107
}
108
108
}
109
109
110
- @discardableResult public func forEachRelation(
111
- of occurrence: SymbolOccurrence ,
112
- body: @escaping ( SymbolRelation ) -> Bool
113
- ) -> Bool {
114
- return indexstoredb_symbol_occurrence_relations ( occurrence. value) { relation in
115
- body ( SymbolRelation ( relation) )
116
- }
117
- }
118
-
119
110
}
120
111
121
112
public final class SymbolRelation {
@@ -168,13 +159,91 @@ public struct SymbolRole: OptionSet {
168
159
}
169
160
}
170
161
162
+ public enum IndexSymbolKindEnum : Int {
163
+ case unknown = 0 ,
164
+ module,
165
+ namespace,
166
+ namespaceAlias,
167
+ macro,
168
+ `enum`,
169
+ `struct`,
170
+ `class`,
171
+ `protocol`,
172
+ `extension`,
173
+ union,
174
+ `typealias`,
175
+ function,
176
+ variable,
177
+ field,
178
+ enumConstant,
179
+ instanceMethod,
180
+ classMethod,
181
+ staticMethod,
182
+ instanceProperty,
183
+ classProperty,
184
+ staticProperty,
185
+ constructor,
186
+ destructor,
187
+ conversionFunction,
188
+ parameter,
189
+ using
190
+
191
+ case commentTag = 1000
192
+
193
+ public init ? ( cValue: indexstoredb_symbol_kind_t ) {
194
+ self . init ( rawValue: Int ( cValue. rawValue) )
195
+ }
196
+ }
197
+
198
+ public struct IndexSymbolKind : RawRepresentable {
199
+ public var rawValue : Int
200
+
201
+ public static let unknown : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_UNKNOWN)
202
+ public static let module : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_MODULE)
203
+ public static let namespace : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_NAMESPACE)
204
+ public static let namespaceAlias : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_NAMESPACEALIAS)
205
+ public static let macro : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_MACRO)
206
+ public static let `enum` : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_ENUM)
207
+ public static let `struct` : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_STRUCT)
208
+ public static let `class` : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_CLASS)
209
+ public static let `protocol` : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_PROTOCOL)
210
+ public static let `extension` : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_EXTENSION)
211
+ public static let union : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_UNION)
212
+ public static let `typealias` : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_TYPEALIAS)
213
+ public static let function : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_FUNCTION)
214
+ public static let variable : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_VARIABLE)
215
+ public static let field : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_FIELD)
216
+ public static let enumConstant : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_ENUMCONSTANT)
217
+ public static let instancMmethod : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_INSTANCEMETHOD)
218
+ public static let classmMethod : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_CLASSMETHOD)
219
+ public static let staticMethod : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_STATICMETHOD)
220
+ public static let instanceProperty : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_INSTANCEPROPERTY)
221
+ public static let classProperty : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_CLASSPROPERTY)
222
+ public static let staticProperty : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_STATICPROPERTY)
223
+ public static let constructor : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_CONSTRUCTOR)
224
+ public static let destructor : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_DESTRUCTOR)
225
+ public static let conversionFunction : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_CONVERSIONFUNCTION)
226
+ public static let parameter : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_PARAMETER)
227
+ public static let using : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_USING)
228
+
229
+ public static let commentTag : IndexSymbolKind = IndexSymbolKind ( rawValue: INDEXSTOREDB_SYMBOL_KIND_COMMENTTAG)
230
+
231
+ public init ( rawValue: Int ) {
232
+ self . rawValue = rawValue
233
+ }
234
+
235
+ public init ( rawValue: indexstoredb_symbol_kind_t ) {
236
+ self . rawValue = Int ( rawValue. rawValue)
237
+ }
238
+ }
239
+
171
240
public final class Symbol {
172
241
173
242
let value : indexstoredb_symbol_t
174
243
175
244
public lazy var usr : String = String ( cString: indexstoredb_symbol_usr ( value) )
176
245
public lazy var name : String = String ( cString: indexstoredb_symbol_name ( value) )
177
- public lazy var kind = indexstoredb_symbol_kind ( value)
246
+ public lazy var kind = IndexSymbolKind ( rawValue : indexstoredb_symbol_kind ( value) )
178
247
179
248
init ( _ value: indexstoredb_symbol_t ) {
180
249
self . value = value
@@ -225,12 +294,20 @@ public final class SymbolOccurrence {
225
294
226
295
private func getRelations( ) -> [ SymbolRelation ] {
227
296
var relations : [ SymbolRelation ] = [ ]
228
- indexstoredb_symbol_occurrence_relations ( value ) { relation in
229
- relations. append ( SymbolRelation ( relation) )
297
+ forEachRelation { relation in
298
+ relations. append ( relation)
230
299
return true
231
300
}
232
301
return relations
233
302
}
303
+
304
+ @discardableResult public func forEachRelation(
305
+ body: @escaping ( SymbolRelation ) -> Bool
306
+ ) -> Bool {
307
+ return indexstoredb_symbol_occurrence_relations ( value) { relation in
308
+ body ( SymbolRelation ( relation) )
309
+ }
310
+ }
234
311
}
235
312
236
313
public protocol IndexStoreLibraryProvider {
0 commit comments