0001 // 0002 // ObjCDeclarationKind.swift 0003 // SourceKitten 0004 // 0005 // Created by JP Simard on 7/15/15. 0006 // Copyright © 2015 SourceKitten. All rights reserved. 0007 // 0008 0009 #if SWIFT_PACKAGE 0010 import Clang_C 0011 #endif 0012 0013 /** 0014 Objective-C declaration kinds. 0015 More or less equivalent to `SwiftDeclarationKind`, but with made up values because there's no such 0016 thing as SourceKit for Objective-C. 0017 */ 0018 public enum ObjCDeclarationKind: String { 0019 /// `category`. 0020 case Category
Clang+SourceKitten.swift:77 func objCKind() -> ObjCDeclarationKind {Clang+SourceKitten.swift:78 return ObjCDeclarationKind.fromClang(kind)ObjCDeclarationKind.swift:54 public static func fromClang(kind: CXCursorKind) -> ObjCDeclarationKind {SourceDeclaration.swift:33 let type: ObjCDeclarationKind= "sourcekitten.source.lang.objc.decl.category" 0021 /// `class`. 0022 case Class
Clang+SourceKitten.swift:97 } else if let usrNSString = usr() as NSString? where type == .Category {ObjCDeclarationKind.swift:56 case CXCursor_ObjCCategoryDecl.rawValue: return .Category= "sourcekitten.source.lang.objc.decl.class" 0023 /// `constant`. 0024 case Constant
ObjCDeclarationKind.swift:57 case CXCursor_ObjCInterfaceDecl.rawValue: return .Class= "sourcekitten.source.lang.objc.decl.constant" 0025 /// `enum`. 0026 case Enum
ObjCDeclarationKind.swift:65 case CXCursor_VarDecl.rawValue: return .Constant= "sourcekitten.source.lang.objc.decl.enum" 0027 /// `enumcase`. 0028 case Enumcase
Clang+SourceKitten.swift:90 if let usrString = usr() where spelling.isEmpty && type == .Enum {ObjCDeclarationKind.swift:58 case CXCursor_EnumDecl.rawValue: return .Enum= "sourcekitten.source.lang.objc.decl.enumcase" 0029 /// `initializer`. 0030 case Initializer = "sourcekitten.source.lang.objc.decl.initializer" 0031 /// `method.class`. 0032 case MethodClass
ObjCDeclarationKind.swift:59 case CXCursor_EnumConstantDecl.rawValue: return .Enumcase= "sourcekitten.source.lang.objc.decl.method.class" 0033 /// `method.instance`. 0034 case MethodInstance
Clang+SourceKitten.swift:111 } else if type == .MethodClass {ObjCDeclarationKind.swift:60 case CXCursor_ObjCClassMethodDecl.rawValue: return .MethodClass= "sourcekitten.source.lang.objc.decl.method.instance" 0035 /// `property`. 0036 case Property
Clang+SourceKitten.swift:109 } else if type == .MethodInstance {ObjCDeclarationKind.swift:61 case CXCursor_ObjCInstanceMethodDecl.rawValue: return .MethodInstance= "sourcekitten.source.lang.objc.decl.property" 0037 /// `protocol`. 0038 case `Protocol`
ObjCDeclarationKind.swift:62 case CXCursor_ObjCPropertyDecl.rawValue: return .PropertySourceDeclaration.swift:63 assert(type == .Property)SourceDeclaration.swift:109 $0.type == .Property= "sourcekitten.source.lang.objc.decl.protocol" 0039 /// `typedef`. 0040 case Typedef
ObjCDeclarationKind.swift:63 case CXCursor_ObjCProtocolDecl.rawValue: return .Protocol= "sourcekitten.source.lang.objc.decl.typedef" 0041 /// `function`. 0042 case Function
ObjCDeclarationKind.swift:64 case CXCursor_TypedefDecl.rawValue: return .Typedef= "sourcekitten.source.lang.objc.decl.function" 0043 /// `mark`. 0044 case Mark
ObjCDeclarationKind.swift:66 case CXCursor_FunctionDecl.rawValue: return .Function= "sourcekitten.source.lang.objc.mark" 0045 /// `struct` 0046 case Struct
String+SourceKitten.swift:417 return SourceDeclaration(type: .Mark, location: location, extent: (location, location), name: markString,= "sourcekitten.source.lang.objc.decl.struct" 0047 /// `field` 0048 case Field
ObjCDeclarationKind.swift:67 case CXCursor_StructDecl.rawValue: return .Struct= "sourcekitten.source.lang.objc.decl.field" 0049 /// `ivar` 0050 case Ivar
ObjCDeclarationKind.swift:68 case CXCursor_FieldDecl.rawValue: return .Field= "sourcekitten.source.lang.objc.decl.ivar" 0051 /// `ModuleImport` 0052 case ModuleImport
ObjCDeclarationKind.swift:69 case CXCursor_ObjCIvarDecl.rawValue: return .Ivar= "sourcekitten.source.lang.objc.module.import" 0053 0054 public static func fromClang
ObjCDeclarationKind.swift:70 case CXCursor_ModuleImportDecl.rawValue: return .ModuleImport(kind: CXCursorKind) -> ObjCDeclarationKind { 0055 switch kind.rawValue { 0056 case CXCursor_ObjCCategoryDecl.rawValue: return .Category 0057 case CXCursor_ObjCInterfaceDecl.rawValue: return .Class 0058 case CXCursor_EnumDecl.rawValue: return .Enum 0059 case CXCursor_EnumConstantDecl.rawValue: return .Enumcase 0060 case CXCursor_ObjCClassMethodDecl.rawValue: return .MethodClass 0061 case CXCursor_ObjCInstanceMethodDecl.rawValue: return .MethodInstance 0062 case CXCursor_ObjCPropertyDecl.rawValue: return .Property 0063 case CXCursor_ObjCProtocolDecl.rawValue: return .Protocol 0064 case CXCursor_TypedefDecl.rawValue: return .Typedef 0065 case CXCursor_VarDecl.rawValue: return .Constant 0066 case CXCursor_FunctionDecl.rawValue: return .Function 0067 case CXCursor_StructDecl.rawValue: return .Struct 0068 case CXCursor_FieldDecl.rawValue: return .Field 0069 case CXCursor_ObjCIvarDecl.rawValue: return .Ivar 0070 case CXCursor_ModuleImportDecl.rawValue: return .ModuleImport 0071 default: fatalError("Unsupported CXCursorKind: \(clang_getCursorKindSpelling(kind))") 0072 } 0073 } 0074 } 0075
Clang+SourceKitten.swift:78 return ObjCDeclarationKind.fromClang(kind)