diff --git a/Source/SourceKittenFramework/Module.swift b/Source/SourceKittenFramework/Module.swift index fc8951e3..37ab01a5 100755 --- a/Source/SourceKittenFramework/Module.swift +++ b/Source/SourceKittenFramework/Module.swift @@ -50,7 +50,7 @@ public struct Module { return nodeModuleName == spmName } let inputs = node["inputs"]?.array(of: String.self) ?? [] - return inputs.allSatisfy({ !$0.contains(".build/checkouts/") }) && !nodeModuleName.hasSuffix("Tests") + return inputs.allSatisfy({ !$0.contains(".build\\checkouts\\") }) && !nodeModuleName.hasSuffix("Tests") } guard let moduleCommand = commands.first(where: matchModuleName) else { @@ -92,7 +92,7 @@ public struct Module { */ public init?(spmArguments: [String], spmName: String? = nil, inPath path: String = FileManager.default.currentDirectoryPath) { fputs("Running swift build\n", stderr) - let buildResults = Exec.run("/usr/bin/env", ["swift", "build"] + spmArguments, currentDirectory: path, stderr: .merge) + let buildResults = Exec.run("C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\bin\\swift.exe", ["build"] + spmArguments, currentDirectory: path, stderr: .merge) guard buildResults.terminationStatus == 0 else { let file = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("swift-build-\(UUID().uuidString).log") _ = try? buildResults.data.write(to: file) diff --git a/Source/SourceKittenFramework/library_wrapper.swift b/Source/SourceKittenFramework/library_wrapper.swift index 13c91d46..be76f5b6 100644 --- a/Source/SourceKittenFramework/library_wrapper.swift +++ b/Source/SourceKittenFramework/library_wrapper.swift @@ -1,16 +1,62 @@ import Foundation +#if os(Windows) +import WinSDK + +@_transparent +internal func MAKELANGID(_ p: WORD, _ s: WORD) -> DWORD { + return DWORD((s << 10) | p) +} + +struct WindowsError { + public let code: DWORD +} + +extension WindowsError: CustomStringConvertible { + public var description: String { + let dwFlags: DWORD = DWORD(FORMAT_MESSAGE_ALLOCATE_BUFFER) + | DWORD(FORMAT_MESSAGE_FROM_SYSTEM) + | DWORD(FORMAT_MESSAGE_IGNORE_INSERTS) + let dwLanguageId: DWORD = + MAKELANGID(WORD(LANG_NEUTRAL), WORD(SUBLANG_DEFAULT)) + + var buffer: UnsafeMutablePointer? + let dwResult = withUnsafeMutablePointer(to: &buffer) { + $0.withMemoryRebound(to: WCHAR.self, capacity: 2) { + FormatMessageW(dwFlags, nil, code, dwLanguageId, $0, 0, nil) + } + } + guard dwResult > 0, let message = buffer else { return "Unknown error" } + defer { LocalFree(message) } + return String(decodingCString: message, as: UTF16.self) + } +} +#endif // MARK: - Shared Types & Functions struct DynamicLinkLibrary { - fileprivate let handle: UnsafeMutableRawPointer +#if os(Windows) + typealias HandleType = HMODULE? +#else + typealias HandleType = UnsafeMutableRawPointer +#endif + + fileprivate let handle: HandleType func load(symbol: String) -> T { +#if os(Windows) + if let sym = GetProcAddress(handle, symbol) { + return unsafeBitCast(sym, to: T.self) + } + let error = WindowsError(code: GetLastError()) + fatalError("Finding symbol \(symbol) failed: \(error)") +#else if let sym = dlsym(handle, symbol) { return unsafeBitCast(sym, to: T.self) } let errorString = String(validatingUTF8: dlerror()) fatalError("Finding symbol \(symbol) failed: \(errorString ?? "unknown error")") +#endif } } @@ -23,9 +69,15 @@ struct Loader { // try all fullPaths that contains target file, // then try loading with simple path that depends resolving to DYLD for fullPath in fullPaths + [path] { +#if os(Windows) + if let handle = fullPath.withCString(encodedAs: UTF16.self, LoadLibraryW) { + return DynamicLinkLibrary(handle: handle) + } +#else if let handle = dlopen(fullPath, RTLD_LAZY) { return DynamicLinkLibrary(handle: handle) } +#endif } fatalError("Loading \(path) failed") @@ -101,6 +153,16 @@ let toolchainLoader = Loader(searchPaths: [ linuxDefaultLibPath ].compactMap({ $0 })) +#elseif os(Windows) + +// MARK: - Windows + +let toolchainLoader = Loader(searchPaths: [ + "C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\bin", +].compactMap { + FileManager.default.fileExists(atPath: $0) ? $0 : nil +}) + #else // MARK: - Darwin diff --git a/Tests/SourceKittenFrameworkTests/ClangTranslationUnitTests.swift b/Tests/SourceKittenFrameworkTests/ClangTranslationUnitTests.swift index 4869dd45..1f57b0ee 100644 --- a/Tests/SourceKittenFrameworkTests/ClangTranslationUnitTests.swift +++ b/Tests/SourceKittenFrameworkTests/ClangTranslationUnitTests.swift @@ -30,8 +30,14 @@ class ClangTranslationUnitTests: XCTestCase { } private func compare(clangFixture fixture: String) { - let unit = ClangTranslationUnit(headerFiles: [fixturesDirectory + fixture + ".h"], - compilerArguments: ["-x", "objective-c", "-isysroot", sdkPath(), "-I", fixturesDirectory]) + let path = URL(fileURLWithPath: fixturesDirectory + fixture + ".h") + .standardizedFileURL + .withUnsafeFileSystemRepresentation { String(cString: $0!) } + let includes = URL(fileURLWithPath: fixturesDirectory) + .standardizedFileURL + .withUnsafeFileSystemRepresentation { String(cString: $0!) } + let unit = ClangTranslationUnit(headerFiles: [path], + compilerArguments: ["-x", "objective-c", "-isysroot", sdkPath(), "-I", includes]) compareJSONString(withFixtureNamed: (fixture as NSString).lastPathComponent, jsonString: unit) } diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/CursorInfoUSR@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/CursorInfoUSR@swift-5.9.json new file mode 100644 index 00000000..c7865f63 --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/CursorInfoUSR@swift-5.9.json @@ -0,0 +1,18 @@ +{ + "key.annotated_decl" : "struct DocumentedStruct<\/Declaration>", + "key.column" : 8, + "key.decl_lang" : "source.lang.swift", + "key.doc.full_as_xml" : "DocumentedStruct<\/Name>s:7DocInfo16DocumentedStructV<\/USR>struct DocumentedStruct<\/Declaration>A documented struct<\/Para><\/Abstract><\/CommentParts><\/Class>", + "key.filepath" : "DocInfo.swift", + "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> DocumentedStruct<\/decl.name><\/decl.struct>", + "key.kind" : "source.lang.swift.decl.struct", + "key.length" : 16, + "key.line" : 28, + "key.modulename" : "DocInfo", + "key.name" : "DocumentedStruct", + "key.offset" : 416, + "key.reusingastcontext" : false, + "key.typename" : "DocumentedStruct.Type", + "key.typeusr" : "$s7DocInfo16DocumentedStructVmD", + "key.usr" : "s:7DocInfo16DocumentedStructV" +} diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/Extension@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/Extension@swift-5.9.json new file mode 100644 index 00000000..27cf5fc4 --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/Extension@swift-5.9.json @@ -0,0 +1,361 @@ +{ + "Extension.swift" : { + "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", + "key.length" : 504, + "key.offset" : 0, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "class Base<\/Declaration>", + "key.bodylength" : 166, + "key.bodyoffset" : 29, + "key.column" : 7, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 7, + "key.doc.comment" : "Doc for Base", + "key.doc.declaration" : "class Base", + "key.doc.file" : "Extension.swift", + "key.doc.full_as_xml" : "Base<\/Name>s:9Extension4BaseC<\/USR>class Base<\/Declaration>Doc for Base<\/Para><\/Abstract><\/CommentParts><\/Class>", + "key.doc.line" : 2, + "key.doc.name" : "Base", + "key.doc.type" : "Class", + "key.doclength" : 17, + "key.docoffset" : 0, + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "class<\/syntaxtype.keyword> Base<\/decl.name><\/decl.class>", + "key.kind" : "source.lang.swift.decl.class", + "key.length" : 179, + "key.line" : 2, + "key.modulename" : "Extension", + "key.name" : "Base", + "key.namelength" : 4, + "key.nameoffset" : 23, + "key.offset" : 17, + "key.parsed_declaration" : "class Base", + "key.parsed_scope.end" : 14, + "key.parsed_scope.start" : 2, + "key.reusingastcontext" : false, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "typealias Base<\/Type>.Index = Int<\/Type><\/Declaration>", + "key.column" : 15, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 15, + "key.doc.comment" : "Doc for Base.Index", + "key.doc.declaration" : "typealias Extension.Base.Index = Int", + "key.doc.file" : "Extension.swift", + "key.doc.full_as_xml" : "Index<\/Name>s:9Extension4BaseC5Indexa<\/USR>typealias Extension.Base.Index = Int<\/Declaration>Doc for Base.Index<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 5, + "key.doc.name" : "Index", + "key.doc.type" : "Other", + "key.doclength" : 23, + "key.docoffset" : 35, + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> Base<\/ref.class>.Index<\/decl.name> = Int<\/ref.struct><\/decl.typealias>", + "key.kind" : "source.lang.swift.decl.typealias", + "key.length" : 21, + "key.line" : 5, + "key.modulename" : "Extension", + "key.name" : "Index", + "key.namelength" : 5, + "key.nameoffset" : 72, + "key.offset" : 62, + "key.parsed_declaration" : "typealias Index = Int", + "key.parsed_scope.end" : 5, + "key.parsed_scope.start" : 5, + "key.reusingastcontext" : false, + "key.typename" : "Int.Type", + "key.typeusr" : "$sSimD", + "key.usr" : "s:9Extension4BaseC5Indexa" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "func f(index: Index<\/Type>)<\/Declaration>", + "key.bodylength" : 5, + "key.bodyoffset" : 134, + "key.column" : 10, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 10, + "key.doc.comment" : "Doc for Base.f", + "key.doc.declaration" : "func f(index: Index)", + "key.doc.file" : "Extension.swift", + "key.doc.full_as_xml" : "f(index:)<\/Name>s:9Extension4BaseC1f5indexySi_tF<\/USR>func f(index: Index)<\/Declaration>Doc for Base.f<\/Para><\/Abstract><\/CommentParts><\/Function>", + "key.doc.line" : 8, + "key.doc.name" : "f(index:)", + "key.doc.type" : "Function", + "key.doclength" : 19, + "key.docoffset" : 89, + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> f<\/decl.name>(index<\/decl.var.parameter.argument_label>: Index<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", + "key.kind" : "source.lang.swift.decl.function.method.instance", + "key.length" : 28, + "key.line" : 8, + "key.modulename" : "Extension", + "key.name" : "f(index:)", + "key.namelength" : 15, + "key.nameoffset" : 117, + "key.offset" : 112, + "key.parsed_declaration" : "func f(index: Index)", + "key.parsed_scope.end" : 9, + "key.parsed_scope.start" : 8, + "key.reusingastcontext" : false, + "key.substructure" : [ + + ], + "key.typename" : "(Base) -> (Int) -> ()", + "key.typeusr" : "$s5indexySi_tcD", + "key.usr" : "s:9Extension4BaseC1f5indexySi_tF" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "class Base<\/Type>.Nested<\/Declaration>", + "key.bodylength" : 5, + "key.bodyoffset" : 188, + "key.column" : 11, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 11, + "key.doc.comment" : "Doc for Base.Nested", + "key.doc.declaration" : "class Extension.Base.Nested", + "key.doc.file" : "Extension.swift", + "key.doc.full_as_xml" : "Nested<\/Name>s:9Extension4BaseC6NestedC<\/USR>class Extension.Base.Nested<\/Declaration>Doc for Base.Nested<\/Para><\/Abstract><\/CommentParts><\/Class>", + "key.doc.line" : 12, + "key.doc.name" : "Nested", + "key.doc.type" : "Class", + "key.doclength" : 24, + "key.docoffset" : 146, + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "class<\/syntaxtype.keyword> Base<\/ref.class>.Nested<\/decl.name><\/decl.class>", + "key.kind" : "source.lang.swift.decl.class", + "key.length" : 20, + "key.line" : 12, + "key.modulename" : "Extension", + "key.name" : "Nested", + "key.namelength" : 6, + "key.nameoffset" : 180, + "key.offset" : 174, + "key.parsed_declaration" : "class Nested", + "key.parsed_scope.end" : 13, + "key.parsed_scope.start" : 12, + "key.reusingastcontext" : false, + "key.typename" : "Base.Nested.Type", + "key.typeusr" : "$s9Extension4BaseC6NestedCmD", + "key.usr" : "s:9Extension4BaseC6NestedC" + } + ], + "key.typename" : "Base.Type", + "key.typeusr" : "$s9Extension4BaseCmD", + "key.usr" : "s:9Extension4BaseC" + }, + { + "key.annotated_decl" : "class Base<\/Declaration>", + "key.bodylength" : 155, + "key.bodyoffset" : 214, + "key.column" : 7, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 7, + "key.doc.declaration" : "class Base", + "key.doc.file" : "Extension.swift", + "key.doc.full_as_xml" : "Base<\/Name>s:9Extension4BaseC<\/USR>class Base<\/Declaration>Doc for Base<\/Para><\/Abstract><\/CommentParts><\/Class>", + "key.doc.line" : 2, + "key.doc.name" : "Base", + "key.doc.type" : "Class", + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "class<\/syntaxtype.keyword> Base<\/decl.name><\/decl.class>", + "key.kind" : "source.lang.swift.decl.extension", + "key.length" : 172, + "key.line" : 2, + "key.modulename" : "Extension", + "key.name" : "Base", + "key.namelength" : 4, + "key.nameoffset" : 208, + "key.offset" : 198, + "key.parsed_declaration" : "extension Base", + "key.parsed_scope.end" : 24, + "key.parsed_scope.start" : 16, + "key.reusingastcontext" : false, + "key.substructure" : [ + { + "key.annotated_decl" : "typealias ExtendedIndex = Double<\/Type><\/Declaration>", + "key.column" : 15, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 15, + "key.doc.comment" : "Doc for Base.ExtendedIndex", + "key.doc.declaration" : "typealias ExtendedIndex = Double", + "key.doc.file" : "Extension.swift", + "key.doc.full_as_xml" : "ExtendedIndex<\/Name>s:9Extension4BaseC13ExtendedIndexa<\/USR>typealias ExtendedIndex = Double<\/Declaration>Doc for Base.ExtendedIndex<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 19, + "key.doc.name" : "ExtendedIndex", + "key.doc.type" : "Other", + "key.doclength" : 31, + "key.docoffset" : 220, + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ExtendedIndex<\/decl.name> = Double<\/ref.struct><\/decl.typealias>", + "key.kind" : "source.lang.swift.decl.typealias", + "key.length" : 32, + "key.line" : 19, + "key.modulename" : "Extension", + "key.name" : "ExtendedIndex", + "key.namelength" : 13, + "key.nameoffset" : 265, + "key.offset" : 255, + "key.parsed_declaration" : "typealias ExtendedIndex = Double", + "key.parsed_scope.end" : 19, + "key.parsed_scope.start" : 19, + "key.reusingastcontext" : false, + "key.typename" : "Double.Type", + "key.typeusr" : "$sSdmD", + "key.usr" : "s:9Extension4BaseC13ExtendedIndexa" + }, + { + "key.annotated_decl" : "func extendedF(index: ExtendedIndex<\/Type>)<\/Declaration>", + "key.bodylength" : 5, + "key.bodyoffset" : 362, + "key.column" : 10, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 10, + "key.doc.comment" : "Doc for Base.extendedF", + "key.doc.declaration" : "func extendedF(index: ExtendedIndex)", + "key.doc.file" : "Extension.swift", + "key.doc.full_as_xml" : "extendedF(index:)<\/Name>s:9Extension4BaseC9extendedF5indexySd_tF<\/USR>func extendedF(index: ExtendedIndex)<\/Declaration>Doc for Base.extendedF<\/Para><\/Abstract><\/CommentParts><\/Function>", + "key.doc.line" : 22, + "key.doc.name" : "extendedF(index:)", + "key.doc.type" : "Function", + "key.doclength" : 27, + "key.docoffset" : 293, + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> extendedF<\/decl.name>(index<\/decl.var.parameter.argument_label>: ExtendedIndex<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", + "key.kind" : "source.lang.swift.decl.function.method.instance", + "key.length" : 44, + "key.line" : 22, + "key.modulename" : "Extension", + "key.name" : "extendedF(index:)", + "key.namelength" : 31, + "key.nameoffset" : 329, + "key.offset" : 324, + "key.parsed_declaration" : "func extendedF(index: ExtendedIndex)", + "key.parsed_scope.end" : 23, + "key.parsed_scope.start" : 22, + "key.reusingastcontext" : false, + "key.substructure" : [ + + ], + "key.typename" : "(Base) -> (Double) -> ()", + "key.typeusr" : "$s5indexySd_tcD", + "key.usr" : "s:9Extension4BaseC9extendedF5indexySd_tF" + } + ], + "key.typename" : "Base.Type", + "key.typeusr" : "$s9Extension4BaseCmD", + "key.usr" : "s:9Extension4BaseC" + }, + { + "key.annotated_decl" : "class Base<\/Type>.Nested<\/Declaration>", + "key.bodylength" : 1, + "key.bodyoffset" : 436, + "key.column" : 11, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 11, + "key.doc.declaration" : "class Extension.Base.Nested", + "key.doc.file" : "Extension.swift", + "key.doc.full_as_xml" : "Nested<\/Name>s:9Extension4BaseC6NestedC<\/USR>class Extension.Base.Nested<\/Declaration>Doc for Base.Nested<\/Para><\/Abstract><\/CommentParts><\/Class>", + "key.doc.line" : 12, + "key.doc.name" : "Nested", + "key.doc.type" : "Class", + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "class<\/syntaxtype.keyword> Base<\/ref.class>.Nested<\/decl.name><\/decl.class>", + "key.kind" : "source.lang.swift.decl.extension", + "key.length" : 25, + "key.line" : 12, + "key.modulename" : "Extension", + "key.name" : "Base.Nested", + "key.namelength" : 11, + "key.nameoffset" : 423, + "key.offset" : 413, + "key.parsed_declaration" : "extension Base.Nested", + "key.parsed_scope.end" : 29, + "key.parsed_scope.start" : 28, + "key.reusingastcontext" : false, + "key.typename" : "Base.Nested.Type", + "key.typeusr" : "$s9Extension4BaseC6NestedCmD", + "key.usr" : "s:9Extension4BaseC6NestedC" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "class 🐽<\/Declaration>", + "key.bodylength" : 25, + "key.bodyoffset" : 452, + "key.column" : 7, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "class<\/syntaxtype.keyword> 🐽<\/decl.name><\/decl.class>", + "key.kind" : "source.lang.swift.decl.class", + "key.length" : 38, + "key.line" : 31, + "key.modulename" : "Extension", + "key.name" : "🐽", + "key.namelength" : 4, + "key.nameoffset" : 446, + "key.offset" : 440, + "key.parsed_declaration" : "class 🐽", + "key.parsed_scope.end" : 34, + "key.parsed_scope.start" : 31, + "key.reusingastcontext" : false, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "struct 🐽<\/Type>.🐧<\/Declaration>", + "key.bodylength" : 5, + "key.bodyoffset" : 470, + "key.column" : 12, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> 🐽<\/ref.class>.🐧<\/decl.name><\/decl.struct>", + "key.kind" : "source.lang.swift.decl.struct", + "key.length" : 19, + "key.line" : 32, + "key.modulename" : "Extension", + "key.name" : "🐧", + "key.namelength" : 4, + "key.nameoffset" : 464, + "key.offset" : 457, + "key.parsed_declaration" : "struct 🐧", + "key.parsed_scope.end" : 33, + "key.parsed_scope.start" : 32, + "key.reusingastcontext" : false, + "key.typename" : "🐽.🐧.Type", + "key.typeusr" : "$s9Extension004ipIhC004voIhVmD", + "key.usr" : "s:9Extension004ipIhC004voIhV" + } + ], + "key.typename" : "🐽.Type", + "key.typeusr" : "$s9Extension004ipIhCmD", + "key.usr" : "s:9Extension004ipIhC" + }, + { + "key.annotated_decl" : "struct 🐽<\/Type>.🐧<\/Declaration>", + "key.bodylength" : 1, + "key.bodyoffset" : 501, + "key.column" : 12, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Extension.swift", + "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> 🐽<\/ref.class>.🐧<\/decl.name><\/decl.struct>", + "key.kind" : "source.lang.swift.decl.extension", + "key.length" : 23, + "key.line" : 32, + "key.modulename" : "Extension", + "key.name" : "🐽.🐧", + "key.namelength" : 9, + "key.nameoffset" : 490, + "key.offset" : 480, + "key.parsed_declaration" : "extension 🐽.🐧", + "key.parsed_scope.end" : 37, + "key.parsed_scope.start" : 36, + "key.reusingastcontext" : false, + "key.typename" : "🐽.🐧.Type", + "key.typeusr" : "$s9Extension004ipIhC004voIhVmD", + "key.usr" : "s:9Extension004ipIhC004voIhV" + } + ] + } +} \ No newline at end of file diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/Subscript@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/Subscript@swift-5.9.json new file mode 100644 index 00000000..74d442d4 --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/Subscript@swift-5.9.json @@ -0,0 +1,75 @@ +{ + "Subscript.swift" : { + "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", + "key.length" : 134, + "key.offset" : 0, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "struct VoidStruct<\/Declaration>", + "key.bodylength" : 113, + "key.bodyoffset" : 19, + "key.column" : 8, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Subscript.swift", + "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> VoidStruct<\/decl.name><\/decl.struct>", + "key.kind" : "source.lang.swift.decl.struct", + "key.length" : 133, + "key.line" : 1, + "key.modulename" : "Subscript", + "key.name" : "VoidStruct", + "key.namelength" : 10, + "key.nameoffset" : 7, + "key.offset" : 0, + "key.parsed_declaration" : "struct VoidStruct", + "key.parsed_scope.end" : 7, + "key.parsed_scope.start" : 1, + "key.reusingastcontext" : false, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "subscript(key: String<\/Type>) -> () { get set }<\/Declaration>", + "key.bodylength" : 46, + "key.bodyoffset" : 84, + "key.column" : 5, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 5, + "key.doc.comment" : "Returns or sets Void.", + "key.doc.declaration" : "subscript(key: String) -> () { get set }", + "key.doc.file" : "Subscript.swift", + "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:9Subscript10VoidStructVyySScip<\/USR>subscript(key: String) -> () { get set }<\/Declaration>Returns or sets Void.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 3, + "key.doc.name" : "subscript(_:)", + "key.doc.type" : "Other", + "key.doclength" : 26, + "key.docoffset" : 24, + "key.filepath" : "Subscript.swift", + "key.fully_annotated_decl" : "subscript<\/syntaxtype.keyword>(key<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>", + "key.kind" : "source.lang.swift.decl.function.subscript", + "key.length" : 77, + "key.line" : 3, + "key.modulename" : "Subscript", + "key.name" : "subscript(_:)", + "key.namelength" : 22, + "key.nameoffset" : 54, + "key.offset" : 54, + "key.parsed_declaration" : "subscript(key: String) -> ()", + "key.parsed_scope.end" : 6, + "key.parsed_scope.start" : 3, + "key.reusingastcontext" : false, + "key.setter_accessibility" : "source.lang.swift.accessibility.internal", + "key.substructure" : [ + + ], + "key.typename" : "(String) -> ()", + "key.typeusr" : "$syySScD", + "key.usr" : "s:9Subscript10VoidStructVyySScip" + } + ], + "key.typename" : "VoidStruct.Type", + "key.typeusr" : "$s9Subscript10VoidStructVmD", + "key.usr" : "s:9Subscript10VoidStructV" + } + ] + } +} diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/WindowsBicycle@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsBicycle@swift-5.9.json new file mode 100644 index 00000000..fc89aee5 --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsBicycle@swift-5.9.json @@ -0,0 +1,831 @@ +{ + "Bicycle.swift" : { + "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", + "key.length" : 2472, + "key.offset" : 0, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "class NSString : NSObject<\/Type>, NSCopying<\/Type>, NSMutableCopying<\/Type>, NSSecureCoding<\/Type>, NSCoding<\/Type><\/Declaration>", + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.public", + "key.length" : 6, + "key.offset" : 134 + }, + { + "key.attribute" : "source.decl.attribute.available", + "key.length" : 88, + "key.offset" : 45 + } + ], + "key.bodylength" : 0, + "key.bodyoffset" : 161, + "key.decl_lang" : "source.lang.swift", + "key.doc.comment" : "Deprecated extension.", + "key.doclength" : 26, + "key.docoffset" : 19, + "key.fully_annotated_decl" : "class<\/syntaxtype.keyword> NSString<\/decl.name> : NSObject<\/ref.class>, NSCopying<\/ref.protocol>, NSMutableCopying<\/ref.protocol>, NSSecureCoding<\/ref.protocol>, NSCoding<\/ref.protocol><\/decl.class>", + "key.is_system" : true, + "key.kind" : "source.lang.swift.decl.extension", + "key.length" : 21, + "key.modulename" : "Foundation", + "key.name" : "NSString", + "key.namelength" : 8, + "key.nameoffset" : 151, + "key.offset" : 141, + "key.parsed_declaration" : "public extension NSString", + "key.parsed_scope.end" : 5, + "key.parsed_scope.start" : 5, + "key.reusingastcontext" : false, + "key.typename" : "NSString.Type", + "key.typeusr" : "$s10Foundation8NSStringCmD", + "key.usr" : "s:10Foundation8NSStringC" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "public class Bicycle<\/Declaration>", + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.public", + "key.length" : 6, + "key.offset" : 226 + } + ], + "key.bodylength" : 2222, + "key.bodyoffset" : 248, + "key.column" : 14, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 14, + "key.doc.comment" : "🚲 A two-wheeled, human-powered mode of transportation.", + "key.doc.declaration" : "public class Bicycle", + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "Bicycle<\/Name>s:7BicycleAAC<\/USR>public class Bicycle<\/Declaration>🚲 A two-wheeled, human-powered mode of transportation.<\/Para><\/Abstract><\/CommentParts><\/Class>", + "key.doc.line" : 8, + "key.doc.name" : "Bicycle", + "key.doc.type" : "Class", + "key.doclength" : 62, + "key.docoffset" : 164, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Bicycle<\/decl.name><\/decl.class>", + "key.kind" : "source.lang.swift.decl.class", + "key.length" : 2238, + "key.line" : 8, + "key.modulename" : "Bicycle", + "key.name" : "Bicycle", + "key.namelength" : 7, + "key.nameoffset" : 239, + "key.offset" : 233, + "key.parsed_declaration" : "public class Bicycle", + "key.parsed_scope.end" : 93, + "key.parsed_scope.start" : 8, + "key.reusingastcontext" : false, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "public enum Bicycle<\/Type>.Style<\/Declaration>", + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.public", + "key.length" : 6, + "key.offset" : 473 + } + ], + "key.bodylength" : 49, + "key.bodyoffset" : 492, + "key.column" : 17, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 17, + "key.doc.comment" : "Frame and construction style.\n\n- Road: For streets or trails.\n- Touring: For long journeys.\n- Cruiser: For casual trips around town.\n- Hybrid: For general-purpose transportation.", + "key.doc.declaration" : "public enum Bicycle.Bicycle.Style", + "key.doc.discussion" : [ + { + "List-Bullet" : "" + } + ], + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "Style<\/Name>s:7BicycleAAC5StyleO<\/USR>public enum Bicycle.Bicycle.Style<\/Declaration>Frame and construction style.<\/Para><\/Abstract>Road: For streets or trails.<\/Para><\/Item>Touring: For long journeys.<\/Para><\/Item>Cruiser: For casual trips around town.<\/Para><\/Item>Hybrid: For general-purpose transportation.<\/Para><\/Item><\/List-Bullet><\/Discussion><\/CommentParts><\/Other>", + "key.doc.line" : 17, + "key.doc.name" : "Style", + "key.doc.type" : "Other", + "key.doclength" : 215, + "key.docoffset" : 253, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Bicycle<\/ref.class>.Style<\/decl.name><\/decl.enum>", + "key.kind" : "source.lang.swift.decl.enum", + "key.length" : 62, + "key.line" : 17, + "key.modulename" : "Bicycle", + "key.name" : "Style", + "key.namelength" : 5, + "key.nameoffset" : 485, + "key.offset" : 480, + "key.parsed_declaration" : "public enum Style", + "key.parsed_scope.end" : 19, + "key.parsed_scope.start" : 17, + "key.reusingastcontext" : false, + "key.substructure" : [ + { + "key.kind" : "source.lang.swift.decl.enumcase", + "key.length" : 35, + "key.offset" : 501, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "case Road<\/Declaration>", + "key.column" : 14, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Road<\/decl.name><\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 4, + "key.line" : 18, + "key.modulename" : "Bicycle", + "key.name" : "Road", + "key.namelength" : 4, + "key.nameoffset" : 506, + "key.offset" : 506, + "key.parsed_declaration" : "case Road", + "key.parsed_scope.end" : 18, + "key.parsed_scope.start" : 18, + "key.reusingastcontext" : false, + "key.typename" : "(Bicycle.Style.Type) -> Bicycle.Style", + "key.typeusr" : "$sy7BicycleAAC5StyleOADmcD", + "key.usr" : "s:7BicycleAAC5StyleO4RoadyA2DmF" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "case Touring<\/Declaration>", + "key.column" : 20, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Touring<\/decl.name><\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 7, + "key.line" : 18, + "key.modulename" : "Bicycle", + "key.name" : "Touring", + "key.namelength" : 7, + "key.nameoffset" : 512, + "key.offset" : 512, + "key.parsed_declaration" : "case Road, Touring", + "key.parsed_scope.end" : 18, + "key.parsed_scope.start" : 18, + "key.reusingastcontext" : false, + "key.typename" : "(Bicycle.Style.Type) -> Bicycle.Style", + "key.typeusr" : "$sy7BicycleAAC5StyleOADmcD", + "key.usr" : "s:7BicycleAAC5StyleO7TouringyA2DmF" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "case Cruiser<\/Declaration>", + "key.column" : 29, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Cruiser<\/decl.name><\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 7, + "key.line" : 18, + "key.modulename" : "Bicycle", + "key.name" : "Cruiser", + "key.namelength" : 7, + "key.nameoffset" : 521, + "key.offset" : 521, + "key.parsed_declaration" : "case Road, Touring, Cruiser", + "key.parsed_scope.end" : 18, + "key.parsed_scope.start" : 18, + "key.reusingastcontext" : false, + "key.typename" : "(Bicycle.Style.Type) -> Bicycle.Style", + "key.typeusr" : "$sy7BicycleAAC5StyleOADmcD", + "key.usr" : "s:7BicycleAAC5StyleO7CruiseryA2DmF" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "case Hybrid<\/Declaration>", + "key.column" : 38, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Hybrid<\/decl.name><\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 6, + "key.line" : 18, + "key.modulename" : "Bicycle", + "key.name" : "Hybrid", + "key.namelength" : 6, + "key.nameoffset" : 530, + "key.offset" : 530, + "key.parsed_declaration" : "case Road, Touring, Cruiser, Hybrid", + "key.parsed_scope.end" : 18, + "key.parsed_scope.start" : 18, + "key.reusingastcontext" : false, + "key.typename" : "(Bicycle.Style.Type) -> Bicycle.Style", + "key.typeusr" : "$sy7BicycleAAC5StyleOADmcD", + "key.usr" : "s:7BicycleAAC5StyleO6HybridyA2DmF" + } + ] + } + ], + "key.typename" : "Bicycle.Style.Type", + "key.typeusr" : "$s7BicycleAAC5StyleOmD", + "key.usr" : "s:7BicycleAAC5StyleO" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "public enum Bicycle<\/Type>.Gearing<\/Declaration>", + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.public", + "key.length" : 6, + "key.offset" : 712 + } + ], + "key.bodylength" : 60, + "key.bodyoffset" : 733, + "key.column" : 17, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 17, + "key.doc.comment" : "Mechanism for converting pedal power into motion.\n\n- Fixed: A single, fixed gear.\n- Freewheel: A variable-speed, disengageable gear.", + "key.doc.declaration" : "public enum Bicycle.Bicycle.Gearing", + "key.doc.discussion" : [ + { + "List-Bullet" : "" + } + ], + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "Gearing<\/Name>s:7BicycleAAC7GearingO<\/USR>public enum Bicycle.Bicycle.Gearing<\/Declaration>Mechanism for converting pedal power into motion.<\/Para><\/Abstract>Fixed: A single, fixed gear.<\/Para><\/Item>Freewheel: A variable-speed, disengageable gear.<\/Para><\/Item><\/List-Bullet><\/Discussion><\/CommentParts><\/Other>", + "key.doc.line" : 27, + "key.doc.name" : "Gearing", + "key.doc.type" : "Other", + "key.doclength" : 159, + "key.docoffset" : 548, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Bicycle<\/ref.class>.Gearing<\/decl.name><\/decl.enum>", + "key.kind" : "source.lang.swift.decl.enum", + "key.length" : 75, + "key.line" : 27, + "key.modulename" : "Bicycle", + "key.name" : "Gearing", + "key.namelength" : 7, + "key.nameoffset" : 724, + "key.offset" : 719, + "key.parsed_declaration" : "public enum Gearing", + "key.parsed_scope.end" : 30, + "key.parsed_scope.start" : 27, + "key.reusingastcontext" : false, + "key.substructure" : [ + { + "key.kind" : "source.lang.swift.decl.enumcase", + "key.length" : 10, + "key.offset" : 742, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "case Fixed<\/Declaration>", + "key.column" : 14, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Fixed<\/decl.name><\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 5, + "key.line" : 28, + "key.modulename" : "Bicycle", + "key.name" : "Fixed", + "key.namelength" : 5, + "key.nameoffset" : 747, + "key.offset" : 747, + "key.parsed_declaration" : "case Fixed", + "key.parsed_scope.end" : 28, + "key.parsed_scope.start" : 28, + "key.reusingastcontext" : false, + "key.typename" : "(Bicycle.Gearing.Type) -> Bicycle.Gearing", + "key.typeusr" : "$sy7BicycleAAC7GearingOADmcD", + "key.usr" : "s:7BicycleAAC7GearingO5FixedyA2DmF" + } + ] + }, + { + "key.kind" : "source.lang.swift.decl.enumcase", + "key.length" : 27, + "key.offset" : 761, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.public", + "key.annotated_decl" : "case Freewheel(speeds: Int<\/Type>)<\/Declaration>", + "key.column" : 14, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Freewheel<\/decl.name>(speeds<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 22, + "key.line" : 29, + "key.modulename" : "Bicycle", + "key.name" : "Freewheel(speeds:)", + "key.namelength" : 22, + "key.nameoffset" : 766, + "key.offset" : 766, + "key.parsed_declaration" : "case Freewheel(speeds: Int)", + "key.parsed_scope.end" : 29, + "key.parsed_scope.start" : 29, + "key.reusingastcontext" : false, + "key.substructure" : [ + + ], + "key.typename" : "(Bicycle.Gearing.Type) -> (Int) -> Bicycle.Gearing", + "key.typeusr" : "$sy7BicycleAAC7GearingOSi_tcADmcD", + "key.usr" : "s:7BicycleAAC7GearingO9FreewheelyADSi_tcADmF" + } + ] + } + ], + "key.typename" : "Bicycle.Gearing.Type", + "key.typeusr" : "$s7BicycleAAC7GearingOmD", + "key.usr" : "s:7BicycleAAC7GearingO" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "enum Bicycle<\/Type>.Handlebar<\/Declaration>", + "key.bodylength" : 47, + "key.bodyoffset" : 1009, + "key.column" : 10, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 10, + "key.doc.comment" : "Hardware used for steering.\n\n- Riser: A casual handlebar.\n- Café: An upright handlebar.\n- Drop: A classic handlebar.\n- Bullhorn: A powerful handlebar.", + "key.doc.declaration" : "enum Bicycle.Bicycle.Handlebar", + "key.doc.discussion" : [ + { + "List-Bullet" : "" + } + ], + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "Handlebar<\/Name>s:7BicycleAAC9HandlebarO<\/USR>enum Bicycle.Bicycle.Handlebar<\/Declaration>Hardware used for steering.<\/Para><\/Abstract>Riser: A casual handlebar.<\/Para><\/Item>Café: An upright handlebar.<\/Para><\/Item>Drop: A classic handlebar.<\/Para><\/Item>Bullhorn: A powerful handlebar.<\/Para><\/Item><\/List-Bullet><\/Discussion><\/CommentParts><\/Other>", + "key.doc.line" : 40, + "key.doc.name" : "Handlebar", + "key.doc.type" : "Other", + "key.doclength" : 188, + "key.docoffset" : 800, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> Bicycle<\/ref.class>.Handlebar<\/decl.name><\/decl.enum>", + "key.kind" : "source.lang.swift.decl.enum", + "key.length" : 64, + "key.line" : 40, + "key.modulename" : "Bicycle", + "key.name" : "Handlebar", + "key.namelength" : 9, + "key.nameoffset" : 998, + "key.offset" : 993, + "key.parsed_declaration" : "enum Handlebar", + "key.parsed_scope.end" : 42, + "key.parsed_scope.start" : 40, + "key.reusingastcontext" : false, + "key.substructure" : [ + { + "key.kind" : "source.lang.swift.decl.enumcase", + "key.length" : 33, + "key.offset" : 1018, + "key.substructure" : [ + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "case Riser<\/Declaration>", + "key.column" : 14, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Riser<\/decl.name><\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 5, + "key.line" : 41, + "key.modulename" : "Bicycle", + "key.name" : "Riser", + "key.namelength" : 5, + "key.nameoffset" : 1023, + "key.offset" : 1023, + "key.parsed_declaration" : "case Riser", + "key.parsed_scope.end" : 41, + "key.parsed_scope.start" : 41, + "key.reusingastcontext" : false, + "key.typename" : "(Bicycle.Handlebar.Type) -> Bicycle.Handlebar", + "key.typeusr" : "$sy7BicycleAAC9HandlebarOADmcD", + "key.usr" : "s:7BicycleAAC9HandlebarO5RiseryA2DmF" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "case Café<\/Declaration>", + "key.column" : 21, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Café<\/decl.name><\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 5, + "key.line" : 41, + "key.modulename" : "Bicycle", + "key.name" : "Café", + "key.namelength" : 5, + "key.nameoffset" : 1030, + "key.offset" : 1030, + "key.parsed_declaration" : "case Riser, Café", + "key.parsed_scope.end" : 41, + "key.parsed_scope.start" : 41, + "key.reusingastcontext" : false, + "key.typename" : "(Bicycle.Handlebar.Type) -> Bicycle.Handlebar", + "key.typeusr" : "$sy7BicycleAAC9HandlebarOADmcD", + "key.usr" : "s:7BicycleAAC9HandlebarO007Caf_dmayA2DmF" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "case Drop<\/Declaration>", + "key.column" : 28, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Drop<\/decl.name><\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 4, + "key.line" : 41, + "key.modulename" : "Bicycle", + "key.name" : "Drop", + "key.namelength" : 4, + "key.nameoffset" : 1037, + "key.offset" : 1037, + "key.parsed_declaration" : "case Riser, Café, Drop", + "key.parsed_scope.end" : 41, + "key.parsed_scope.start" : 41, + "key.reusingastcontext" : false, + "key.typename" : "(Bicycle.Handlebar.Type) -> Bicycle.Handlebar", + "key.typeusr" : "$sy7BicycleAAC9HandlebarOADmcD", + "key.usr" : "s:7BicycleAAC9HandlebarO4DropyA2DmF" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "case Bullhorn<\/Declaration>", + "key.column" : 34, + "key.decl_lang" : "source.lang.swift", + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> Bullhorn<\/decl.name><\/decl.enumelement>", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.length" : 8, + "key.line" : 41, + "key.modulename" : "Bicycle", + "key.name" : "Bullhorn", + "key.namelength" : 8, + "key.nameoffset" : 1043, + "key.offset" : 1043, + "key.parsed_declaration" : "case Riser, Café, Drop, Bullhorn", + "key.parsed_scope.end" : 41, + "key.parsed_scope.start" : 41, + "key.reusingastcontext" : false, + "key.typename" : "(Bicycle.Handlebar.Type) -> Bicycle.Handlebar", + "key.typeusr" : "$sy7BicycleAAC9HandlebarOADmcD", + "key.usr" : "s:7BicycleAAC9HandlebarO8BullhornyA2DmF" + } + ] + } + ], + "key.typename" : "Bicycle.Handlebar.Type", + "key.typeusr" : "$s7BicycleAAC9HandlebarOmD", + "key.usr" : "s:7BicycleAAC9HandlebarO" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "let style: Style<\/Type><\/Declaration>", + "key.column" : 9, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 9, + "key.doc.comment" : "The style of the bicycle.", + "key.doc.declaration" : "let style: Style", + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "style<\/Name>s:7BicycleAAC5styleAB5StyleOvp<\/USR>let style: Style<\/Declaration>The style of the bicycle.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 45, + "key.doc.name" : "style", + "key.doc.type" : "Other", + "key.doclength" : 30, + "key.docoffset" : 1063, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> style<\/decl.name>: Style<\/ref.enum><\/decl.var.type><\/decl.var.instance>", + "key.kind" : "source.lang.swift.decl.var.instance", + "key.length" : 16, + "key.line" : 45, + "key.modulename" : "Bicycle", + "key.name" : "style", + "key.namelength" : 5, + "key.nameoffset" : 1101, + "key.offset" : 1097, + "key.parsed_declaration" : "let style: Style", + "key.parsed_scope.end" : 45, + "key.parsed_scope.start" : 45, + "key.reusingastcontext" : false, + "key.typename" : "Bicycle.Style", + "key.typeusr" : "$s7BicycleAAC5StyleOD", + "key.usr" : "s:7BicycleAAC5styleAB5StyleOvp" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "let gearing: Gearing<\/Type><\/Declaration>", + "key.column" : 9, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 9, + "key.doc.comment" : "The gearing of the bicycle.", + "key.doc.declaration" : "let gearing: Gearing", + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "gearing<\/Name>s:7BicycleAAC7gearingAB7GearingOvp<\/USR>let gearing: Gearing<\/Declaration>The gearing of the bicycle.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 48, + "key.doc.name" : "gearing", + "key.doc.type" : "Other", + "key.doclength" : 32, + "key.docoffset" : 1119, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> gearing<\/decl.name>: Gearing<\/ref.enum><\/decl.var.type><\/decl.var.instance>", + "key.kind" : "source.lang.swift.decl.var.instance", + "key.length" : 20, + "key.line" : 48, + "key.modulename" : "Bicycle", + "key.name" : "gearing", + "key.namelength" : 7, + "key.nameoffset" : 1159, + "key.offset" : 1155, + "key.parsed_declaration" : "let gearing: Gearing", + "key.parsed_scope.end" : 48, + "key.parsed_scope.start" : 48, + "key.reusingastcontext" : false, + "key.typename" : "Bicycle.Gearing", + "key.typeusr" : "$s7BicycleAAC7GearingOD", + "key.usr" : "s:7BicycleAAC7gearingAB7GearingOvp" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "let handlebar: Handlebar<\/Type><\/Declaration>", + "key.column" : 9, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 9, + "key.doc.comment" : "The handlebar of the bicycle.", + "key.doc.declaration" : "let handlebar: Handlebar", + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "handlebar<\/Name>s:7BicycleAAC9handlebarAB9HandlebarOvp<\/USR>let handlebar: Handlebar<\/Declaration>The handlebar of the bicycle.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 51, + "key.doc.name" : "handlebar", + "key.doc.type" : "Other", + "key.doclength" : 34, + "key.docoffset" : 1181, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> handlebar<\/decl.name>: Handlebar<\/ref.enum><\/decl.var.type><\/decl.var.instance>", + "key.kind" : "source.lang.swift.decl.var.instance", + "key.length" : 24, + "key.line" : 51, + "key.modulename" : "Bicycle", + "key.name" : "handlebar", + "key.namelength" : 9, + "key.nameoffset" : 1223, + "key.offset" : 1219, + "key.parsed_declaration" : "let handlebar: Handlebar", + "key.parsed_scope.end" : 51, + "key.parsed_scope.start" : 51, + "key.reusingastcontext" : false, + "key.typename" : "Bicycle.Handlebar", + "key.typeusr" : "$s7BicycleAAC9HandlebarOD", + "key.usr" : "s:7BicycleAAC9handlebarAB9HandlebarOvp" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "let frameSize: Int<\/Type><\/Declaration>", + "key.column" : 9, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 9, + "key.doc.comment" : "The size of the frame, in centimeters.", + "key.doc.declaration" : "let frameSize: Int", + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "frameSize<\/Name>s:7BicycleAAC9frameSizeSivp<\/USR>let frameSize: Int<\/Declaration>The size of the frame, in centimeters.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 54, + "key.doc.name" : "frameSize", + "key.doc.type" : "Other", + "key.doclength" : 43, + "key.docoffset" : 1249, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> frameSize<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", + "key.kind" : "source.lang.swift.decl.var.instance", + "key.length" : 18, + "key.line" : 54, + "key.modulename" : "Bicycle", + "key.name" : "frameSize", + "key.namelength" : 9, + "key.nameoffset" : 1300, + "key.offset" : 1296, + "key.parsed_declaration" : "let frameSize: Int", + "key.parsed_scope.end" : 54, + "key.parsed_scope.start" : 54, + "key.reusingastcontext" : false, + "key.typename" : "Int", + "key.typeusr" : "$sSiD", + "key.usr" : "s:7BicycleAAC9frameSizeSivp" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "private(set) var numberOfTrips: Int<\/Type> { get }<\/Declaration>", + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.setter_access.private", + "key.length" : 12, + "key.offset" : 1374 + } + ], + "key.column" : 22, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 22, + "key.doc.comment" : "The number of trips travelled by the bicycle.", + "key.doc.declaration" : "private(set) var numberOfTrips: Int { get }", + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "numberOfTrips<\/Name>s:7BicycleAAC13numberOfTripsSivp<\/USR>private(set) var numberOfTrips: Int { get }<\/Declaration>The number of trips travelled by the bicycle.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 57, + "key.doc.name" : "numberOfTrips", + "key.doc.type" : "Other", + "key.doclength" : 50, + "key.docoffset" : 1320, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> numberOfTrips<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", + "key.kind" : "source.lang.swift.decl.var.instance", + "key.length" : 22, + "key.line" : 57, + "key.modulename" : "Bicycle", + "key.name" : "numberOfTrips", + "key.namelength" : 13, + "key.nameoffset" : 1391, + "key.offset" : 1387, + "key.parsed_declaration" : "private(set) var numberOfTrips: Int", + "key.parsed_scope.end" : 57, + "key.parsed_scope.start" : 57, + "key.reusingastcontext" : false, + "key.setter_accessibility" : "source.lang.swift.accessibility.private", + "key.typename" : "Int", + "key.typeusr" : "$sSiD", + "key.usr" : "s:7BicycleAAC13numberOfTripsSivp" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "private(set) var distanceTravelled: Double<\/Type> { get }<\/Declaration>", + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.setter_access.private", + "key.length" : 12, + "key.offset" : 1479 + } + ], + "key.column" : 22, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 22, + "key.doc.comment" : "The total distance travelled by the bicycle, in meters.", + "key.doc.declaration" : "private(set) var distanceTravelled: Double { get }", + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "distanceTravelled<\/Name>s:7BicycleAAC17distanceTravelledSdvp<\/USR>private(set) var distanceTravelled: Double { get }<\/Declaration>The total distance travelled by the bicycle, in meters.<\/Para><\/Abstract><\/CommentParts><\/Other>", + "key.doc.line" : 60, + "key.doc.name" : "distanceTravelled", + "key.doc.type" : "Other", + "key.doclength" : 60, + "key.docoffset" : 1415, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> distanceTravelled<\/decl.name>: Double<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", + "key.kind" : "source.lang.swift.decl.var.instance", + "key.length" : 29, + "key.line" : 60, + "key.modulename" : "Bicycle", + "key.name" : "distanceTravelled", + "key.namelength" : 17, + "key.nameoffset" : 1496, + "key.offset" : 1492, + "key.parsed_declaration" : "private(set) var distanceTravelled: Double", + "key.parsed_scope.end" : 60, + "key.parsed_scope.start" : 60, + "key.reusingastcontext" : false, + "key.setter_accessibility" : "source.lang.swift.accessibility.private", + "key.typename" : "Double", + "key.typeusr" : "$sSdD", + "key.usr" : "s:7BicycleAAC17distanceTravelledSdvp" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "init(style: Style<\/Type>, gearing: Gearing<\/Type>, handlebar: Handlebar<\/Type>, frameSize centimeters: Int<\/Type>)<\/Declaration>", + "key.bodylength" : 192, + "key.bodyoffset" : 2010, + "key.column" : 5, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 5, + "key.doc.comment" : "Initializes a new bicycle with the provided parts and specifications.\n\n- parameter style: The style of the bicycle\n- parameter gearing: The gearing of the bicycle\n- parameter handlebar: The handlebar of the bicycle\n- parameter centimeters: The frame size of the bicycle, in centimeters\n\n- returns: A beautiful, brand-new, custom built just for you.", + "key.doc.declaration" : "init(style: Style, gearing: Gearing, handlebar: Handlebar, frameSize centimeters: Int)", + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "init(style:gearing:handlebar:frameSize:)<\/Name>s:7BicycleAAC5style7gearing9handlebar9frameSizeA2B5StyleO_AB7GearingOAB9HandlebarOSitcfc<\/USR>init(style: Style, gearing: Gearing, handlebar: Handlebar, frameSize centimeters: Int)<\/Declaration>Initializes a new bicycle with the provided parts and specifications.<\/Para><\/Abstract>style<\/Name>in<\/Direction>The style of the bicycle<\/Para><\/Discussion><\/Parameter>gearing<\/Name>in<\/Direction>The gearing of the bicycle<\/Para><\/Discussion><\/Parameter>handlebar<\/Name>in<\/Direction>The handlebar of the bicycle<\/Para><\/Discussion><\/Parameter>centimeters<\/Name>in<\/Direction>The frame size of the bicycle, in centimeters<\/Para><\/Discussion><\/Parameter><\/Parameters>A beautiful, brand-new, custom built just for you.<\/Para><\/ResultDiscussion><\/CommentParts><\/Function>", + "key.doc.line" : 72, + "key.doc.name" : "init(style:gearing:handlebar:frameSize:)", + "key.doc.parameters" : [ + { + "discussion" : [ + { + "Para" : "The style of the bicycle" + } + ], + "name" : "style" + }, + { + "discussion" : [ + { + "Para" : "The gearing of the bicycle" + } + ], + "name" : "gearing" + }, + { + "discussion" : [ + { + "Para" : "The handlebar of the bicycle" + } + ], + "name" : "handlebar" + }, + { + "discussion" : [ + { + "Para" : "The frame size of the bicycle, in centimeters" + } + ], + "name" : "centimeters" + } + ], + "key.doc.result_discussion" : [ + { + "Para" : "A beautiful, brand-new, custom built just for you." + } + ], + "key.doc.type" : "Function", + "key.doclength" : 390, + "key.docoffset" : 1527, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(style<\/decl.var.parameter.argument_label>: Style<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, gearing<\/decl.var.parameter.argument_label>: Gearing<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, handlebar<\/decl.var.parameter.argument_label>: Handlebar<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, frameSize<\/decl.var.parameter.argument_label> centimeters<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", + "key.kind" : "source.lang.swift.decl.function.method.instance", + "key.length" : 281, + "key.line" : 72, + "key.modulename" : "Bicycle", + "key.name" : "init(style:gearing:handlebar:frameSize:)", + "key.namelength" : 86, + "key.nameoffset" : 1922, + "key.offset" : 1922, + "key.parsed_declaration" : "init(style: Style, gearing: Gearing, handlebar: Handlebar, frameSize centimeters: Int)", + "key.parsed_scope.end" : 80, + "key.parsed_scope.start" : 72, + "key.reusingastcontext" : false, + "key.substructure" : [ + + ], + "key.typename" : "(Bicycle.Type) -> (Bicycle.Style, Bicycle.Gearing, Bicycle.Handlebar, Int) -> Bicycle", + "key.typeusr" : "$s5style7gearing9handlebar9frameSize7BicycleAECAF5StyleO_AF7GearingOAF9HandlebarOSitcD", + "key.usr" : "s:7BicycleAAC5style7gearing9handlebar9frameSizeA2B5StyleO_AB7GearingOAB9HandlebarOSitcfc" + }, + { + "key.accessibility" : "source.lang.swift.accessibility.internal", + "key.annotated_decl" : "func travel(distance meters: Double<\/Type>)<\/Declaration>", + "key.bodylength" : 112, + "key.bodyoffset" : 2356, + "key.column" : 10, + "key.decl_lang" : "source.lang.swift", + "key.doc.column" : 10, + "key.doc.comment" : "Take a bike out for a spin.\n\n- parameter meters: The distance to travel in meters.", + "key.doc.declaration" : "func travel(distance meters: Double)", + "key.doc.file" : "Bicycle.swift", + "key.doc.full_as_xml" : "travel(distance:)<\/Name>s:7BicycleAAC6travel8distanceySd_tF<\/USR>func travel(distance meters: Double)<\/Declaration>Take a bike out for a spin.<\/Para><\/Abstract>meters<\/Name>in<\/Direction>The distance to travel in meters.<\/Para><\/Discussion><\/Parameter><\/Parameters><\/CommentParts><\/Function>", + "key.doc.line" : 87, + "key.doc.name" : "travel(distance:)", + "key.doc.parameters" : [ + { + "discussion" : [ + { + "Para" : "The distance to travel in meters." + } + ], + "name" : "meters" + } + ], + "key.doc.type" : "Function", + "key.doclength" : 104, + "key.docoffset" : 2209, + "key.filepath" : "Bicycle.swift", + "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> travel<\/decl.name>(distance<\/decl.var.parameter.argument_label> meters<\/decl.var.parameter.name>: Double<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", + "key.kind" : "source.lang.swift.decl.function.method.instance", + "key.length" : 151, + "key.line" : 87, + "key.modulename" : "Bicycle", + "key.name" : "travel(distance:)", + "key.namelength" : 31, + "key.nameoffset" : 2323, + "key.offset" : 2318, + "key.parsed_declaration" : "func travel(distance meters: Double)", + "key.parsed_scope.end" : 92, + "key.parsed_scope.start" : 87, + "key.reusingastcontext" : false, + "key.substructure" : [ + + ], + "key.typename" : "(Bicycle) -> (Double) -> ()", + "key.typeusr" : "$s8distanceySd_tcD", + "key.usr" : "s:7BicycleAAC6travel8distanceySd_tF" + } + ], + "key.typename" : "Bicycle.Type", + "key.typeusr" : "$s7BicycleAACmD", + "key.usr" : "s:7BicycleAAC" + } + ] + } +} \ No newline at end of file diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/WindowsBicycleIndex@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsBicycleIndex@swift-5.9.json new file mode 100644 index 00000000..b3177f09 --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsBicycleIndex@swift-5.9.json @@ -0,0 +1,869 @@ +{ + "key.dependencies" : [ + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "Swift" + }, + { + "key.dependencies" : [ + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "Swift" + } + ], + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "_StringProcessing" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "_SwiftConcurrencyShims" + }, + { + "key.dependencies" : [ + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "Swift" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "SwiftShims" + } + ], + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "_Concurrency" + }, + { + "key.dependencies" : [ + { + "key.dependencies" : [ + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "Swift" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "SwiftOverlayShims" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "SwiftShims" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "ucrt" + } + ], + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "CRT" + }, + { + "key.dependencies" : [ + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "CDispatch" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "Dispatch" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "Swift" + }, + { + "key.dependencies" : [ + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "Swift" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "WinSDK" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "ucrt" + } + ], + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "WinSDK" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "_Concurrency" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "_StringProcessing" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "_SwiftConcurrencyShims" + } + ], + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "Dispatch" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "Swift" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "WinSDK" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "_Concurrency" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "_StringProcessing" + }, + { + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.clang", + "key.name" : "_SwiftConcurrencyShims" + } + ], + "key.filepath" : "", + "key.is_system" : true, + "key.kind" : "source.lang.swift.import.module.swift", + "key.name" : "Foundation" + } + ], + "key.entities" : [ + { + "key.column" : 8, + "key.kind" : "source.lang.swift.ref.module", + "key.line" : 1, + "key.name" : "Foundation", + "key.usr" : "c:@M@Foundation" + }, + { + "key.column" : 18, + "key.kind" : "source.lang.swift.ref.class", + "key.line" : 5, + "key.name" : "NSString", + "key.usr" : "s:10Foundation8NSStringC" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.public" + } + ], + "key.column" : 14, + "key.effective_access" : "source.decl.effective_access.public", + "key.entities" : [ + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.public" + } + ], + "key.column" : 17, + "key.effective_access" : "source.decl.effective_access.public", + "key.entities" : [ + { + "key.column" : 14, + "key.effective_access" : "source.decl.effective_access.public", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 18, + "key.name" : "Road", + "key.usr" : "s:7BicycleAAC5StyleO4RoadyA2DmF" + }, + { + "key.column" : 20, + "key.effective_access" : "source.decl.effective_access.public", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 18, + "key.name" : "Touring", + "key.usr" : "s:7BicycleAAC5StyleO7TouringyA2DmF" + }, + { + "key.column" : 29, + "key.effective_access" : "source.decl.effective_access.public", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 18, + "key.name" : "Cruiser", + "key.usr" : "s:7BicycleAAC5StyleO7CruiseryA2DmF" + }, + { + "key.column" : 38, + "key.effective_access" : "source.decl.effective_access.public", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 18, + "key.name" : "Hybrid", + "key.usr" : "s:7BicycleAAC5StyleO6HybridyA2DmF" + } + ], + "key.kind" : "source.lang.swift.decl.enum", + "key.line" : 17, + "key.name" : "Style", + "key.usr" : "s:7BicycleAAC5StyleO" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.public" + } + ], + "key.column" : 17, + "key.effective_access" : "source.decl.effective_access.public", + "key.entities" : [ + { + "key.column" : 14, + "key.effective_access" : "source.decl.effective_access.public", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 28, + "key.name" : "Fixed", + "key.usr" : "s:7BicycleAAC7GearingO5FixedyA2DmF" + }, + { + "key.column" : 14, + "key.effective_access" : "source.decl.effective_access.public", + "key.entities" : [ + { + "key.column" : 32, + "key.kind" : "source.lang.swift.ref.struct", + "key.line" : 29, + "key.name" : "Int", + "key.usr" : "s:Si" + } + ], + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 29, + "key.name" : "Freewheel(speeds:)", + "key.usr" : "s:7BicycleAAC7GearingO9FreewheelyADSi_tcADmF" + } + ], + "key.kind" : "source.lang.swift.decl.enum", + "key.line" : 27, + "key.name" : "Gearing", + "key.usr" : "s:7BicycleAAC7GearingO" + }, + { + "key.column" : 10, + "key.effective_access" : "source.decl.effective_access.internal", + "key.entities" : [ + { + "key.column" : 14, + "key.effective_access" : "source.decl.effective_access.internal", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 41, + "key.name" : "Riser", + "key.usr" : "s:7BicycleAAC9HandlebarO5RiseryA2DmF" + }, + { + "key.column" : 21, + "key.effective_access" : "source.decl.effective_access.internal", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 41, + "key.name" : "Café", + "key.usr" : "s:7BicycleAAC9HandlebarO007Caf_dmayA2DmF" + }, + { + "key.column" : 28, + "key.effective_access" : "source.decl.effective_access.internal", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 41, + "key.name" : "Drop", + "key.usr" : "s:7BicycleAAC9HandlebarO4DropyA2DmF" + }, + { + "key.column" : 34, + "key.effective_access" : "source.decl.effective_access.internal", + "key.kind" : "source.lang.swift.decl.enumelement", + "key.line" : 41, + "key.name" : "Bullhorn", + "key.usr" : "s:7BicycleAAC9HandlebarO8BullhornyA2DmF" + } + ], + "key.kind" : "source.lang.swift.decl.enum", + "key.line" : 40, + "key.name" : "Handlebar", + "key.usr" : "s:7BicycleAAC9HandlebarO" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.effective_access" : "source.decl.effective_access.internal", + "key.entities" : [ + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.getter", + "key.line" : 45, + "key.usr" : "s:7BicycleAAC5styleAB5StyleOvg" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.setter", + "key.line" : 45, + "key.usr" : "s:7BicycleAAC5styleAB5StyleOvs" + } + ], + "key.kind" : "source.lang.swift.decl.var.instance", + "key.line" : 45, + "key.name" : "style", + "key.usr" : "s:7BicycleAAC5styleAB5StyleOvp" + }, + { + "key.column" : 16, + "key.kind" : "source.lang.swift.ref.enum", + "key.line" : 45, + "key.name" : "Style", + "key.usr" : "s:7BicycleAAC5StyleO" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.effective_access" : "source.decl.effective_access.internal", + "key.entities" : [ + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.getter", + "key.line" : 48, + "key.usr" : "s:7BicycleAAC7gearingAB7GearingOvg" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.setter", + "key.line" : 48, + "key.usr" : "s:7BicycleAAC7gearingAB7GearingOvs" + } + ], + "key.kind" : "source.lang.swift.decl.var.instance", + "key.line" : 48, + "key.name" : "gearing", + "key.usr" : "s:7BicycleAAC7gearingAB7GearingOvp" + }, + { + "key.column" : 18, + "key.kind" : "source.lang.swift.ref.enum", + "key.line" : 48, + "key.name" : "Gearing", + "key.usr" : "s:7BicycleAAC7GearingO" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.effective_access" : "source.decl.effective_access.internal", + "key.entities" : [ + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.getter", + "key.line" : 51, + "key.usr" : "s:7BicycleAAC9handlebarAB9HandlebarOvg" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.setter", + "key.line" : 51, + "key.usr" : "s:7BicycleAAC9handlebarAB9HandlebarOvs" + } + ], + "key.kind" : "source.lang.swift.decl.var.instance", + "key.line" : 51, + "key.name" : "handlebar", + "key.usr" : "s:7BicycleAAC9handlebarAB9HandlebarOvp" + }, + { + "key.column" : 20, + "key.kind" : "source.lang.swift.ref.enum", + "key.line" : 51, + "key.name" : "Handlebar", + "key.usr" : "s:7BicycleAAC9HandlebarO" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.effective_access" : "source.decl.effective_access.internal", + "key.entities" : [ + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.getter", + "key.line" : 54, + "key.usr" : "s:7BicycleAAC9frameSizeSivg" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.final" + } + ], + "key.column" : 9, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.setter", + "key.line" : 54, + "key.usr" : "s:7BicycleAAC9frameSizeSivs" + } + ], + "key.kind" : "source.lang.swift.decl.var.instance", + "key.line" : 54, + "key.name" : "frameSize", + "key.usr" : "s:7BicycleAAC9frameSizeSivp" + }, + { + "key.column" : 20, + "key.kind" : "source.lang.swift.ref.struct", + "key.line" : 54, + "key.name" : "Int", + "key.usr" : "s:Si" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.setter_access.private" + } + ], + "key.column" : 22, + "key.effective_access" : "source.decl.effective_access.internal", + "key.entities" : [ + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.setter_access.private" + } + ], + "key.column" : 22, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.getter", + "key.line" : 57, + "key.usr" : "s:7BicycleAAC13numberOfTripsSivg" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.setter_access.private" + } + ], + "key.column" : 22, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.setter", + "key.line" : 57, + "key.usr" : "s:7BicycleAAC13numberOfTripsSivs" + } + ], + "key.kind" : "source.lang.swift.decl.var.instance", + "key.line" : 57, + "key.name" : "numberOfTrips", + "key.usr" : "s:7BicycleAAC13numberOfTripsSivp" + }, + { + "key.column" : 37, + "key.kind" : "source.lang.swift.ref.struct", + "key.line" : 57, + "key.name" : "Int", + "key.usr" : "s:Si" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.setter_access.private" + } + ], + "key.column" : 22, + "key.effective_access" : "source.decl.effective_access.internal", + "key.entities" : [ + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.setter_access.private" + } + ], + "key.column" : 22, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.getter", + "key.line" : 60, + "key.usr" : "s:7BicycleAAC17distanceTravelledSdvg" + }, + { + "key.attributes" : [ + { + "key.attribute" : "source.decl.attribute.setter_access.private" + } + ], + "key.column" : 22, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.decl.function.accessor.setter", + "key.line" : 60, + "key.usr" : "s:7BicycleAAC17distanceTravelledSdvs" + } + ], + "key.kind" : "source.lang.swift.decl.var.instance", + "key.line" : 60, + "key.name" : "distanceTravelled", + "key.usr" : "s:7BicycleAAC17distanceTravelledSdvp" + }, + { + "key.column" : 41, + "key.kind" : "source.lang.swift.ref.struct", + "key.line" : 60, + "key.name" : "Double", + "key.usr" : "s:Sd" + }, + { + "key.column" : 5, + "key.effective_access" : "source.decl.effective_access.internal", + "key.entities" : [ + { + "key.column" : 17, + "key.kind" : "source.lang.swift.ref.enum", + "key.line" : 72, + "key.name" : "Style", + "key.usr" : "s:7BicycleAAC5StyleO" + }, + { + "key.column" : 33, + "key.kind" : "source.lang.swift.ref.enum", + "key.line" : 72, + "key.name" : "Gearing", + "key.usr" : "s:7BicycleAAC7GearingO" + }, + { + "key.column" : 53, + "key.kind" : "source.lang.swift.ref.enum", + "key.line" : 72, + "key.name" : "Handlebar", + "key.usr" : "s:7BicycleAAC9HandlebarO" + }, + { + "key.column" : 87, + "key.kind" : "source.lang.swift.ref.struct", + "key.line" : 72, + "key.name" : "Int", + "key.usr" : "s:Si" + }, + { + "key.column" : 14, + "key.entities" : [ + { + "key.column" : 14, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.setter", + "key.line" : 73, + "key.usr" : "s:7BicycleAAC5styleAB5StyleOvs" + } + ], + "key.kind" : "source.lang.swift.ref.var.instance", + "key.line" : 73, + "key.name" : "style", + "key.usr" : "s:7BicycleAAC5styleAB5StyleOvp" + }, + { + "key.column" : 14, + "key.entities" : [ + { + "key.column" : 14, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.setter", + "key.line" : 74, + "key.usr" : "s:7BicycleAAC7gearingAB7GearingOvs" + } + ], + "key.kind" : "source.lang.swift.ref.var.instance", + "key.line" : 74, + "key.name" : "gearing", + "key.usr" : "s:7BicycleAAC7gearingAB7GearingOvp" + }, + { + "key.column" : 14, + "key.entities" : [ + { + "key.column" : 14, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.setter", + "key.line" : 75, + "key.usr" : "s:7BicycleAAC9handlebarAB9HandlebarOvs" + } + ], + "key.kind" : "source.lang.swift.ref.var.instance", + "key.line" : 75, + "key.name" : "handlebar", + "key.usr" : "s:7BicycleAAC9handlebarAB9HandlebarOvp" + }, + { + "key.column" : 14, + "key.entities" : [ + { + "key.column" : 14, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.setter", + "key.line" : 76, + "key.usr" : "s:7BicycleAAC9frameSizeSivs" + } + ], + "key.kind" : "source.lang.swift.ref.var.instance", + "key.line" : 76, + "key.name" : "frameSize", + "key.usr" : "s:7BicycleAAC9frameSizeSivp" + }, + { + "key.column" : 9, + "key.entities" : [ + { + "key.column" : 9, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.setter", + "key.line" : 78, + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC13numberOfTripsSivs" + } + ], + "key.is_dynamic" : true, + "key.kind" : "source.lang.swift.ref.var.instance", + "key.line" : 78, + "key.name" : "numberOfTrips", + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC13numberOfTripsSivp" + }, + { + "key.column" : 9, + "key.entities" : [ + { + "key.column" : 9, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.setter", + "key.line" : 79, + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC17distanceTravelledSdvs" + } + ], + "key.is_dynamic" : true, + "key.kind" : "source.lang.swift.ref.var.instance", + "key.line" : 79, + "key.name" : "distanceTravelled", + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC17distanceTravelledSdvp" + } + ], + "key.kind" : "source.lang.swift.decl.function.constructor", + "key.line" : 72, + "key.name" : "init(style:gearing:handlebar:frameSize:)", + "key.usr" : "s:7BicycleAAC5style7gearing9handlebar9frameSizeA2B5StyleO_AB7GearingOAB9HandlebarOSitcfc" + }, + { + "key.column" : 10, + "key.effective_access" : "source.decl.effective_access.internal", + "key.entities" : [ + { + "key.column" : 34, + "key.kind" : "source.lang.swift.ref.struct", + "key.line" : 87, + "key.name" : "Double", + "key.usr" : "s:Sd" + }, + { + "key.column" : 19, + "key.kind" : "source.lang.swift.ref.function.operator.infix", + "key.line" : 88, + "key.name" : ">(_:_:)", + "key.usr" : "s:SFsE1goiySbx_xtFZ" + }, + { + "key.column" : 13, + "key.entities" : [ + { + "key.column" : 13, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.getter", + "key.line" : 89, + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC17distanceTravelledSdvg" + }, + { + "key.column" : 13, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.setter", + "key.line" : 89, + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC17distanceTravelledSdvs" + } + ], + "key.is_dynamic" : true, + "key.kind" : "source.lang.swift.ref.var.instance", + "key.line" : 89, + "key.name" : "distanceTravelled", + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC17distanceTravelledSdvp" + }, + { + "key.column" : 31, + "key.kind" : "source.lang.swift.ref.function.operator.infix", + "key.line" : 89, + "key.name" : "+=(_:_:)", + "key.usr" : "s:Sd2peoiyySdz_SdtFZ" + }, + { + "key.column" : 13, + "key.entities" : [ + { + "key.column" : 13, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.getter", + "key.line" : 90, + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC13numberOfTripsSivg" + }, + { + "key.column" : 13, + "key.is_dynamic" : true, + "key.is_implicit" : true, + "key.kind" : "source.lang.swift.ref.function.accessor.setter", + "key.line" : 90, + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC13numberOfTripsSivs" + } + ], + "key.is_dynamic" : true, + "key.kind" : "source.lang.swift.ref.var.instance", + "key.line" : 90, + "key.name" : "numberOfTrips", + "key.receiver_usr" : "s:7BicycleAAC", + "key.usr" : "s:7BicycleAAC13numberOfTripsSivp" + }, + { + "key.column" : 27, + "key.kind" : "source.lang.swift.ref.function.operator.infix", + "key.line" : 90, + "key.name" : "+=(_:_:)", + "key.usr" : "s:Si2peoiyySiz_SitFZ" + } + ], + "key.is_dynamic" : true, + "key.kind" : "source.lang.swift.decl.function.method.instance", + "key.line" : 87, + "key.name" : "travel(distance:)", + "key.usr" : "s:7BicycleAAC6travel8distanceySd_tF" + } + ], + "key.kind" : "source.lang.swift.decl.class", + "key.line" : 8, + "key.name" : "Bicycle", + "key.usr" : "s:7BicycleAAC" + } + ] +} diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/WindowsCodeFormatting@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsCodeFormatting@swift-5.9.json new file mode 100644 index 00000000..bc518b02 --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsCodeFormatting@swift-5.9.json @@ -0,0 +1,101 @@ +[ + { + "CodeFormatting.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "Tests for miscellaneous code formatting options in header docs.", + "key.doc.file" : "CodeFormatting.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 6, + "key.filepath" : "CodeFormatting.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "CodeFormatting", + "key.parsed_declaration" : "@interface CodeFormatting", + "key.parsed_scope.end" : 36, + "key.parsed_scope.start" : 6, + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Basic `CodeFormatting` usage, in the middle of a sentence.", + "key.doc.file" : "CodeFormatting.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 11, + "key.filepath" : "CodeFormatting.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-codeWordBasic", + "key.parsed_declaration" : "- (void)codeWordBasic;", + "key.parsed_scope.end" : 11, + "key.parsed_scope.start" : 11, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)CodeFormatting(im)codeWordBasic" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Tests what happens with code word at the end of a line: `CodeFormatting`", + "key.doc.file" : "CodeFormatting.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 16, + "key.filepath" : "CodeFormatting.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-codeWordEndOfLine", + "key.parsed_declaration" : "- (void)codeWordEndOfLine;", + "key.parsed_scope.end" : 16, + "key.parsed_scope.start" : 16, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)CodeFormatting(im)codeWordEndOfLine" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Tests a basic code block:\n\n```\n-[CodeFormatting codeBlockBasic]\n```", + "key.doc.file" : "CodeFormatting.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 25, + "key.filepath" : "CodeFormatting.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-codeBlockBasic", + "key.parsed_declaration" : "- (void)codeBlockBasic;", + "key.parsed_scope.end" : 25, + "key.parsed_scope.start" : 25, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)CodeFormatting(im)codeBlockBasic" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Tests an inline ```-[CodeFormatting codeBlockBasic]``` code block.\n\nPer Xcode's behavior when formatting Obj-C doc comments, this doesn't actually result in\nthe code block being _displayed_ inline, but writing it as inline is potentially common enough\nto justify testing the results of this format.", + "key.doc.file" : "CodeFormatting.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 34, + "key.filepath" : "CodeFormatting.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-codeBlockInline", + "key.parsed_declaration" : "- (void)codeBlockInline;", + "key.parsed_scope.end" : 34, + "key.parsed_scope.start" : 34, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)CodeFormatting(im)codeBlockInline" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)CodeFormatting" + } + ] + } + } +] diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/WindowsMusician@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsMusician@swift-5.9.json new file mode 100644 index 00000000..2f25de8a --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsMusician@swift-5.9.json @@ -0,0 +1,220 @@ +[ + { + "Musician.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "JAZMusician models, you guessed it... Jazz Musicians!\nFrom Ellington to Marsalis, this class has you covered.", + "key.doc.file" : "Musician.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 12, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "JAZMusician", + "key.parsed_declaration" : "@interface JAZMusician", + "key.parsed_scope.end" : 62, + "key.parsed_scope.start" : 12, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Musician.h", + "key.doc.line" : 14, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 14, + "key.parsed_scope.start" : 14 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 46, + "key.doc.comment" : "Always returns `YES`.", + "key.doc.file" : "Musician.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 17, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "isMusician", + "key.parsed_declaration" : "@property (class, nonatomic, assign, unsafe_unretained, readwrite)\n int isMusician;", + "key.parsed_scope.end" : 17, + "key.parsed_scope.start" : 17, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)JAZMusician(cpy)isMusician" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.annotations" : [ + "This API will eventually be deprecated in favor of fullName." + ], + "key.deprecation_message" : "", + "key.doc.column" : 43, + "key.doc.comment" : "The name of the musician. i.e. \"John Coltrane\"", + "key.doc.file" : "Musician.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 22, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "name", + "key.parsed_declaration" : "@property (nonatomic, readonly) int *name;", + "key.parsed_scope.end" : 22, + "key.parsed_scope.start" : 22, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)JAZMusician(py)name" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 43, + "key.doc.comment" : "The full name of the musician. i.e. \"John Coltrane\"", + "key.doc.file" : "Musician.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 28, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "fullName", + "key.parsed_declaration" : "@property (nonatomic, readonly) int *fullName;", + "key.parsed_scope.end" : 28, + "key.parsed_scope.start" : 28, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)JAZMusician(py)fullName" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 44, + "key.doc.comment" : "The year the musician was born. i.e. 1926", + "key.doc.file" : "Musician.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 33, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "birthyear", + "key.parsed_declaration" : "@property (nonatomic, readonly) int birthyear;", + "key.parsed_scope.end" : 33, + "key.parsed_scope.start" : 33, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)JAZMusician(py)birthyear" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 40, + "key.doc.comment" : "Link to an musician's fan page.<\/a>", + "key.doc.file" : "Musician.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 38, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "musicianURL", + "key.parsed_declaration" : "@property (nonatomic, readonly) int *musicianURL;", + "key.parsed_scope.end" : 38, + "key.parsed_scope.start" : 38, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)JAZMusician(py)musicianURL" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 40, + "key.doc.comment" : "Direct link to a musician's band<\/b> page.", + "key.doc.file" : "Musician.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 43, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "musicianBand", + "key.parsed_declaration" : "@property (nonatomic, readonly) int *musicianBand;", + "key.parsed_scope.end" : 43, + "key.parsed_scope.start" : 43, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)JAZMusician(py)musicianBand" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Musician.h", + "key.doc.line" : 46, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Initializers-hyphenated", + "key.parsed_scope.end" : 46, + "key.parsed_scope.start" : 46 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Initialize a JAZMusician.\nDon't forget to have a name and a birthyear.\n\n- warning: Jazz can be addicting.\nPlease be careful out there.\n\n- parameter: name The name of the musician.\n- parameter: birthyear The year the musician was born.\n\n- returns: An initialized JAZMusician instance.", + "key.doc.file" : "Musician.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 60, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The name of the musician.\n " + } + ], + "name" : "name" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The year the musician was born." + } + ], + "name" : "birthyear" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An initialized JAZMusician instance." + } + ], + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-initWithName:birthyear:", + "key.parsed_declaration" : "- (instancetype)initWithName:(id)name birthyear:(id)birthyear;", + "key.parsed_scope.end" : 60, + "key.parsed_scope.start" : 60, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)JAZMusician(im)initWithName:birthyear:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)JAZMusician" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 54, + "key.doc.file" : "Musician.h", + "key.doc.line" : 33, + "key.filepath" : "Musician.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.function", + "key.name" : "NS_SWIFT_NAME", + "key.parsed_declaration" : "NS_SWIFT_NAME(year)", + "key.parsed_scope.end" : 33, + "key.parsed_scope.start" : 33, + "key.unavailable_message" : "", + "key.usr" : "c:@F@NS_SWIFT_NAME" + } + ] + } + } +] diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/WindowsRealm@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsRealm@swift-5.9.json new file mode 100644 index 00000000..aeb7a75e --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsRealm@swift-5.9.json @@ -0,0 +1,5440 @@ +[ + { + "Realm\/RLMArray.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "RLMArray is the container type in Realm used to define to-many relationships.\n\nUnlike an NSArray, RLMArrays hold a single type, specified by the `objectClassName` property.\nThis is referred to in these docs as the “type” of the array.\n\nWhen declaring an RLMArray property, the type must be marked as conforming to a\nprotocol by the same name as the objects it should contain (see the\n`RLM_ARRAY_TYPE` macro). RLMArray properties can also use Objective-C generics\nif available. For example:\n\n RLM_ARRAY_TYPE(ObjectType)\n ...\n @property RLMArray *arrayOfObjectTypes;\n\nRLMArrays can be queried with the same predicates as RLMObject and RLMResults.\n\nRLMArrays cannot be created directly. RLMArray properties on RLMObjects are\nlazily created when accessed, or can be obtained by querying a Realm.\n\n### Key-Value Observing\n\nRLMArray supports array key-value observing on RLMArray properties on RLMObject\nsubclasses, and the `invalidated` property on RLMArray instances themselves is\nkey-value observing compliant when the RLMArray is attached to a persisted\nRLMObject (RLMArrays on standalone RLMObjects will never become invalidated).\n\nBecause RLMArrays are attached to the object which they are a property of, they\ndo not require using the mutable collection proxy objects from\n`-mutableArrayValueForKey:` or KVC-compatible mutation methods on the containing\nobject. Instead, you can call the mutation methods on the RLMArray directly.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 62, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMArray", + "key.parsed_declaration" : "@interface RLMArray ", + "key.parsed_scope.end" : 295, + "key.parsed_scope.start" : 62, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 64, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 64, + "key.parsed_scope.start" : 64 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 52, + "key.doc.comment" : "Number of objects in the array.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 69, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "count", + "key.parsed_declaration" : "@property (nonatomic, assign, unsafe_unretained, readonly) int count;", + "key.parsed_scope.end" : 69, + "key.parsed_scope.start" : 69, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(py)count" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 49, + "key.doc.comment" : "The class name (i.e. type) of the RLMObjects contained in this RLMArray.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 74, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "objectClassName", + "key.parsed_declaration" : "@property (nonatomic, readonly, copy) NSString *objectClassName", + "key.parsed_scope.end" : 74, + "key.parsed_scope.start" : 74, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(py)objectClassName" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 53, + "key.doc.comment" : "The Realm in which this array is persisted. Returns nil for standalone arrays.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 79, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "realm", + "key.parsed_declaration" : "@property (nonatomic, readonly, nullable) RLMRealm *realm;", + "key.parsed_scope.end" : 79, + "key.parsed_scope.start" : 79, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(py)realm" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 62, + "key.doc.comment" : "Indicates if an array can no longer be accessed.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 84, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "invalidated", + "key.parsed_declaration" : "@property (nonatomic, readonly, getter=isInvalidated) int invalidated;", + "key.parsed_scope.end" : 84, + "key.parsed_scope.start" : 84, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(py)invalidated" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 86, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Accessing Objects from an Array", + "key.parsed_scope.end" : 86, + "key.parsed_scope.start" : 86 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 18, + "key.doc.comment" : "Returns the object at the index specified.\n\n- parameter: index The index to look up.\n\n- returns: An RLMObject of the class contained by this RLMArray.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 95, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The index to look up." + } + ], + "name" : "index" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMArray." + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectAtIndex:", + "key.parsed_declaration" : "- (RLMObjectType)objectAtIndex:(id)index;", + "key.parsed_scope.end" : 95, + "key.parsed_scope.start" : 95, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)objectAtIndex:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 27, + "key.doc.comment" : "Returns the first object in the array.\n\nReturns `nil` if called on an empty RLMArray.\n\n- returns: An RLMObject of the class contained by this RLMArray.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 104, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMArray." + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-firstObject", + "key.parsed_declaration" : "- (nullable RLMObjectType)firstObject;", + "key.parsed_scope.end" : 104, + "key.parsed_scope.start" : 104, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)firstObject" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 27, + "key.doc.comment" : "Returns the last object in the array.\n\nReturns `nil` if called on an empty RLMArray.\n\n- returns: An RLMObject of the class contained by this RLMArray.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 113, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMArray." + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-lastObject", + "key.parsed_declaration" : "- (nullable RLMObjectType)lastObject;", + "key.parsed_scope.end" : 113, + "key.parsed_scope.start" : 113, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)lastObject" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 117, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Adding, Removing, and Replacing Objects in an Array", + "key.parsed_scope.end" : 117, + "key.parsed_scope.start" : 117 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Adds an object to the end of the array.\n\n- warning: This method can only be called during a write transaction.\n\n- parameter: object An RLMObject of the class contained by this RLMArray.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 126, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMArray." + } + ], + "name" : "object" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-addObject:", + "key.parsed_declaration" : "- (void)addObject:(RLMObjectType)object;", + "key.parsed_scope.end" : 126, + "key.parsed_scope.start" : 126, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)addObject:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Adds an array of objects at the end of the array.\n\n- warning: This method can only be called during a write transaction.\n\n- parameter: objects An enumerable object such as NSArray or RLMResults which contains objects of the\n same class as this RLMArray.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 136, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An enumerable object such as NSArray or RLMResults which contains objects of the\n same class as this RLMArray." + } + ], + "name" : "objects" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-addObjects:", + "key.parsed_declaration" : "- (void)addObjects:(id)objects;", + "key.parsed_scope.end" : 136, + "key.parsed_scope.start" : 136, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)addObjects:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Inserts an object at the given index.\n\nThrows an exception when called with an index greater than the number of objects in this RLMArray.\n\n- warning: This method can only be called during a write transaction.\n\n- parameter: anObject An object (of the same type as returned from the objectClassName selector).\n- parameter: index The array index at which the object is inserted.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 148, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An object (of the same type as returned from the objectClassName selector).\n " + } + ], + "name" : "anObject" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The array index at which the object is inserted." + } + ], + "name" : "index" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-insertObject:atIndex:", + "key.parsed_declaration" : "- (void)insertObject:(RLMObjectType)anObject atIndex:(id)index;", + "key.parsed_scope.end" : 148, + "key.parsed_scope.start" : 148, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)insertObject:atIndex:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Removes an object at a given index.\n\nThrows an exception when called with an index greater than the number of objects in this RLMArray.\n\n- warning: This method can only be called during a write transaction.\n\n- parameter: index The array index identifying the object to be removed.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 159, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The array index identifying the object to be removed." + } + ], + "name" : "index" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-removeObjectAtIndex:", + "key.parsed_declaration" : "- (void)removeObjectAtIndex:(id)index;", + "key.parsed_scope.end" : 159, + "key.parsed_scope.start" : 159, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)removeObjectAtIndex:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Removes the last object in an RLMArray.\n\n- warning: This method can only be called during a write transaction.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 166, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-removeLastObject", + "key.parsed_declaration" : "- (void)removeLastObject;", + "key.parsed_scope.end" : 166, + "key.parsed_scope.start" : 166, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)removeLastObject" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Removes all objects from an RLMArray.\n\n- warning: This method can only be called during a write transaction.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 173, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-removeAllObjects", + "key.parsed_declaration" : "- (void)removeAllObjects;", + "key.parsed_scope.end" : 173, + "key.parsed_scope.start" : 173, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)removeAllObjects" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Replaces an object at the given index with a new object.\n\nThrows an exception when called with an index greater than the number of objects in this RLMArray.\n\n- warning: This method can only be called during a write transaction.\n\n- parameter: index The array index of the object to be replaced.\n- parameter: anObject An object (of the same type as returned from the objectClassName selector).", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 185, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The array index of the object to be replaced.\n " + } + ], + "name" : "index" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "An object (of the same type as returned from the objectClassName selector)." + } + ], + "name" : "anObject" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-replaceObjectAtIndex:withObject:", + "key.parsed_declaration" : "- (void)replaceObjectAtIndex:(id)index withObject:(RLMObjectType)anObject;", + "key.parsed_scope.end" : 185, + "key.parsed_scope.start" : 185, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)replaceObjectAtIndex:withObject:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Moves the object at the given source index to the given destination index.\n\nThrows an exception when called with an index greater than or equal to the\nnumber of objects in this RLMArray.\n\n- warning: This method can only be called during a write transaction.\n\n- parameter: sourceIndex The index of the object to be moved.\n- parameter: destinationIndex The index to which the object at `sourceIndex` should be moved.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 198, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The index of the object to be moved.\n " + } + ], + "name" : "sourceIndex" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The index to which the object at `sourceIndex` should be moved." + } + ], + "name" : "destinationIndex" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-moveObjectAtIndex:toIndex:", + "key.parsed_declaration" : "- (void)moveObjectAtIndex:(id)sourceIndex toIndex:(id)destinationIndex;", + "key.parsed_scope.end" : 198, + "key.parsed_scope.start" : 198, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)moveObjectAtIndex:toIndex:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Exchanges the objects in the array at given indexes.\n\nThrows an exception when either index exceeds the bounds of this RLMArray.\n\n- warning: This method can only be called during a write transaction.\n\n- parameter: index1 The index of the object with which to replace the object at index `index2`.\n- parameter: index2 The index of the object with which to replace the object at index `index1`.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 210, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The index of the object with which to replace the object at index `index2`.\n" + } + ], + "name" : "index1" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The index of the object with which to replace the object at index `index1`." + } + ], + "name" : "index2" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-exchangeObjectAtIndex:withObjectAtIndex:", + "key.parsed_declaration" : "- (void)exchangeObjectAtIndex:(id)index1 withObjectAtIndex:(id)index2;", + "key.parsed_scope.end" : 210, + "key.parsed_scope.start" : 210, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)exchangeObjectAtIndex:withObjectAtIndex:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 212, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Querying an Array", + "key.parsed_scope.end" : 212, + "key.parsed_scope.start" : 212 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Gets the index of an object.\n\nReturns NSNotFound if the object is not found in this RLMArray.\n\n- parameter: object An object (of the same type as returned from the objectClassName selector).", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 221, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An object (of the same type as returned from the objectClassName selector)." + } + ], + "name" : "object" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-indexOfObject:", + "key.parsed_declaration" : "- (id)indexOfObject:(RLMObjectType)object;", + "key.parsed_scope.end" : 221, + "key.parsed_scope.start" : 221, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)indexOfObject:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Gets the index of the first object matching the predicate.\n\n- parameter: predicateFormat The predicate format string which can accept variable arguments.\n\n- returns: Index of object or NSNotFound if the object is not found in this RLMArray.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 230, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate format string which can accept variable arguments." + } + ], + "name" : "predicateFormat" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Index of object or NSNotFound if the object is not found in this RLMArray." + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-indexOfObjectWhere:", + "key.parsed_declaration" : "- (id)indexOfObjectWhere:(id)predicateFormat, ...;", + "key.parsed_scope.end" : 230, + "key.parsed_scope.start" : 230, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)indexOfObjectWhere:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Gets the index of the first object matching the predicate.\n\n- parameter: predicate The predicate to filter the objects.\n\n- returns: Index of object or NSNotFound if the object is not found in this RLMArray.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 239, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate to filter the objects." + } + ], + "name" : "predicate" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Index of object or NSNotFound if the object is not found in this RLMArray." + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-indexOfObjectWithPredicate:", + "key.parsed_declaration" : "- (id)indexOfObjectWithPredicate:(id)predicate;", + "key.parsed_scope.end" : 239, + "key.parsed_scope.start" : 239, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)indexOfObjectWithPredicate:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 35, + "key.doc.comment" : "Get objects matching the given predicate in the RLMArray.\n\n- parameter: predicateFormat The predicate format string which can accept variable arguments.\n\n- returns: An RLMResults of objects that match the given predicate", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 248, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate format string which can accept variable arguments." + } + ], + "name" : "predicateFormat" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectsWhere:", + "key.parsed_declaration" : "- (RLMResults *)objectsWhere:(id)predicateFormat, ...;", + "key.parsed_scope.end" : 248, + "key.parsed_scope.start" : 248, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)objectsWhere:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 35, + "key.doc.comment" : "Get objects matching the given predicate in the RLMArray.\n\n- parameter: predicate The predicate to filter the objects.\n\n- returns: An RLMResults of objects that match the given predicate", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 257, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate to filter the objects." + } + ], + "name" : "predicate" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectsWithPredicate:", + "key.parsed_declaration" : "- (RLMResults *)objectsWithPredicate:(id)predicate;", + "key.parsed_scope.end" : 257, + "key.parsed_scope.start" : 257, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)objectsWithPredicate:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 35, + "key.doc.comment" : "Get a sorted RLMResults from an RLMArray\n\n- parameter: property The property name to sort by.\n- parameter: ascending The direction to sort by.\n\n- returns: An RLMResults sorted by the specified property.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 267, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The property name to sort by.\n " + } + ], + "name" : "property" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The direction to sort by." + } + ], + "name" : "ascending" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults sorted by the specified property." + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-sortedResultsUsingProperty:ascending:", + "key.parsed_declaration" : "- (RLMResults *)sortedResultsUsingProperty:(id)property\n ascending:(id)ascending;", + "key.parsed_scope.end" : 267, + "key.parsed_scope.start" : 267, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)sortedResultsUsingProperty:ascending:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 35, + "key.doc.comment" : "Get a sorted RLMResults from an RLMArray\n\n- parameter: properties An array of `RLMSortDescriptor`s to sort by.\n\n- returns: An RLMResults sorted by the specified properties.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 276, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An array of `RLMSortDescriptor`s to sort by." + } + ], + "name" : "properties" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults sorted by the specified properties." + } + ], + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-sortedResultsUsingDescriptors:", + "key.parsed_declaration" : "- (RLMResults *)sortedResultsUsingDescriptors:(id)properties;", + "key.parsed_scope.end" : 276, + "key.parsed_scope.start" : 276, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)sortedResultsUsingDescriptors:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 18, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 278, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectAtIndexedSubscript:", + "key.parsed_declaration" : "- (RLMObjectType)objectAtIndexedSubscript:(NSUInteger)index;", + "key.parsed_scope.end" : 278, + "key.parsed_scope.start" : 278, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)objectAtIndexedSubscript:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 279, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-setObject:atIndexedSubscript:", + "key.parsed_declaration" : "- (void)setObject:(RLMObjectType)newValue atIndexedSubscript:(NSUInteger)index;", + "key.parsed_scope.end" : 279, + "key.parsed_scope.start" : 279, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)setObject:atIndexedSubscript:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 281, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Unavailable Methods", + "key.parsed_scope.end" : 281, + "key.parsed_scope.start" : 281 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : true, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "-[RLMArray init] is not available because RLMArrays cannot be created directly.\nRLMArray properties on RLMObjects are lazily created when accessed, or can be obtained by querying a Realm.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 287, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-init", + "key.parsed_declaration" : "- (instancetype)init;", + "key.parsed_scope.end" : 287, + "key.parsed_scope.start" : 287, + "key.unavailable_message" : "RLMArrays cannot be created directly", + "key.usr" : "c:objc(cs)RLMArray(im)init" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : true, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "+[RLMArray new] is not available because RLMArrays cannot be created directly.\nRLMArray properties on RLMObjects are lazily created when accessed, or can be obtained by querying a Realm.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 293, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+new", + "key.parsed_declaration" : "+ (instancetype)new;", + "key.parsed_scope.end" : 293, + "key.parsed_scope.start" : 293, + "key.unavailable_message" : "RLMArrays cannot be created directly", + "key.usr" : "c:objc(cs)RLMArray(cm)new" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "An RLMSortDescriptor stores a property name and a sort order for use with\n`sortedResultsUsingDescriptors:`. It is similar to NSSortDescriptor, but supports\nonly the subset of functionality which can be efficiently run by the query\nengine. RLMSortDescriptor instances are immutable.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 303, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMSortDescriptor", + "key.parsed_declaration" : "@interface RLMSortDescriptor", + "key.parsed_scope.end" : 329, + "key.parsed_scope.start" : 303, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 305, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 305, + "key.parsed_scope.start" : 305 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 43, + "key.doc.comment" : "The name of the property which this sort descriptor orders results by.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 310, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "property", + "key.parsed_declaration" : "@property (nonatomic, readonly) int *property;", + "key.parsed_scope.end" : 310, + "key.parsed_scope.start" : 310, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSortDescriptor(py)property" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 38, + "key.doc.comment" : "Whether this descriptor sorts in ascending or descending order.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 315, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "ascending", + "key.parsed_declaration" : "@property (nonatomic, readonly) int ascending;", + "key.parsed_scope.end" : 315, + "key.parsed_scope.start" : 315, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSortDescriptor(py)ascending" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 317, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Methods", + "key.parsed_scope.end" : 317, + "key.parsed_scope.start" : 317 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Returns a new sort descriptor for the given property name and order.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 322, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+sortDescriptorWithProperty:ascending:", + "key.parsed_declaration" : "+ (instancetype)sortDescriptorWithProperty:(id)propertyName\n ascending:(id)ascending;", + "key.parsed_scope.end" : 322, + "key.parsed_scope.start" : 322, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSortDescriptor(cm)sortDescriptorWithProperty:ascending:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Returns a copy of the receiver with the sort order reversed.", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 327, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-reversedSortDescriptor", + "key.parsed_declaration" : "- (instancetype)reversedSortDescriptor;", + "key.parsed_scope.end" : 327, + "key.parsed_scope.start" : 327, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSortDescriptor(im)reversedSortDescriptor" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSortDescriptor" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : ":nodoc:", + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 332, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.category", + "key.name" : "RLMArray(Swift)", + "key.parsed_declaration" : "@interface RLMArray (Swift)", + "key.parsed_scope.end" : 335, + "key.parsed_scope.start" : 332, + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.file" : "Realm\/RLMArray.h", + "key.doc.line" : 334, + "key.filepath" : "Realm\/RLMArray.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-initWithObjectClassName:", + "key.parsed_declaration" : "- (instancetype)initWithObjectClassName:(NSString *)objectClassName;", + "key.parsed_scope.end" : 334, + "key.parsed_scope.start" : 334, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMArray(im)initWithObjectClassName:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cy)RLMArray@Swift" + } + ] + } + }, + { + "Realm\/RLMCollection.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 11, + "key.doc.comment" : "A homogenous collection of `RLMObject`s like `RLMArray` or `RLMResults`.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 28, + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.protocol", + "key.name" : "RLMCollection", + "key.parsed_declaration" : "@protocol RLMCollection", + "key.parsed_scope.end" : 165, + "key.parsed_scope.start" : 28, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.line" : 32, + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 32, + "key.parsed_scope.start" : 32 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 52, + "key.doc.comment" : "Number of objects in the collection.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 37, + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "count", + "key.parsed_declaration" : "@required\n@property (nonatomic, assign, unsafe_unretained, readonly) int count;", + "key.parsed_scope.end" : 37, + "key.parsed_scope.start" : 37, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(py)count" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 49, + "key.doc.comment" : "The class name (i.e. type) of the RLMObjects contained in this RLMCollection.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 42, + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "objectClassName", + "key.parsed_declaration" : "@property (nonatomic, readonly, copy) NSString *objectClassName", + "key.parsed_scope.end" : 42, + "key.parsed_scope.start" : 42, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(py)objectClassName" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 43, + "key.doc.comment" : "The Realm in which this collection is persisted. Returns nil for standalone collections.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 47, + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "realm", + "key.parsed_declaration" : "@required\n@property (nonatomic, readonly) RLMRealm *realm;", + "key.parsed_scope.end" : 47, + "key.parsed_scope.start" : 47, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(py)realm" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.line" : 49, + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Accessing Objects from a Collection", + "key.parsed_scope.end" : 49, + "key.parsed_scope.start" : 49 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 7, + "key.doc.comment" : "Returns the object at the index specified.\n\n- parameter: index The index to look up.\n\n- returns: An RLMObject of the class contained by this RLMCollection.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 58, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The index to look up." + } + ], + "name" : "index" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMCollection." + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectAtIndex:", + "key.parsed_declaration" : "- (id)objectAtIndex:(id)index;", + "key.parsed_scope.end" : 58, + "key.parsed_scope.start" : 58, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)objectAtIndex:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 16, + "key.doc.comment" : "Returns the first object in the collection.\n\nReturns `nil` if called on an empty RLMCollection.\n\n- returns: An RLMObject of the class contained by this RLMCollection.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 67, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMCollection." + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-firstObject", + "key.parsed_declaration" : "- (nullable id)firstObject;", + "key.parsed_scope.end" : 67, + "key.parsed_scope.start" : 67, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)firstObject" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 16, + "key.doc.comment" : "Returns the last object in the collection.\n\nReturns `nil` if called on an empty RLMCollection.\n\n- returns: An RLMObject of the class contained by this RLMCollection.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 76, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMCollection." + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-lastObject", + "key.parsed_declaration" : "- (nullable id)lastObject;", + "key.parsed_scope.end" : 76, + "key.parsed_scope.start" : 76, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)lastObject" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.line" : 78, + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Querying a Collection", + "key.parsed_scope.end" : 78, + "key.parsed_scope.start" : 78 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Gets the index of an object.\n\nReturns NSNotFound if the object is not found in this RLMCollection.\n\n- parameter: object An object (of the same type as returned from the objectClassName selector).", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 87, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An object (of the same type as returned from the objectClassName selector)." + } + ], + "name" : "object" + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-indexOfObject:", + "key.parsed_declaration" : "- (id)indexOfObject:(RLMObject *)object;", + "key.parsed_scope.end" : 87, + "key.parsed_scope.start" : 87, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)indexOfObject:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Gets the index of the first object matching the predicate.\n\n- parameter: predicateFormat The predicate format string which can accept variable arguments.\n\n- returns: Index of object or NSNotFound if the object is not found in this RLMCollection.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 96, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate format string which can accept variable arguments." + } + ], + "name" : "predicateFormat" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Index of object or NSNotFound if the object is not found in this RLMCollection." + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-indexOfObjectWhere:", + "key.parsed_declaration" : "- (id)indexOfObjectWhere:(id)predicateFormat, ...;", + "key.parsed_scope.end" : 96, + "key.parsed_scope.start" : 96, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)indexOfObjectWhere:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Gets the index of the first object matching the predicate.\n\n- parameter: predicate The predicate to filter the objects.\n\n- returns: Index of object or NSNotFound if the object is not found in this RLMCollection.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 105, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate to filter the objects." + } + ], + "name" : "predicate" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Index of object or NSNotFound if the object is not found in this RLMCollection." + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-indexOfObjectWithPredicate:", + "key.parsed_declaration" : "- (id)indexOfObjectWithPredicate:(id)predicate;", + "key.parsed_scope.end" : 105, + "key.parsed_scope.start" : 105, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)indexOfObjectWithPredicate:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get objects matching the given predicate in the RLMCollection.\n\n- parameter: predicateFormat The predicate format string which can accept variable arguments.\n\n- returns: An RLMResults of objects that match the given predicate", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 114, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate format string which can accept variable arguments." + } + ], + "name" : "predicateFormat" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectsWhere:", + "key.parsed_declaration" : "- (RLMResults *)objectsWhere:(id)predicateFormat, ...;", + "key.parsed_scope.end" : 114, + "key.parsed_scope.start" : 114, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)objectsWhere:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get objects matching the given predicate in the RLMCollection.\n\n- parameter: predicate The predicate to filter the objects.\n\n- returns: An RLMResults of objects that match the given predicate", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 123, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate to filter the objects." + } + ], + "name" : "predicate" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectsWithPredicate:", + "key.parsed_declaration" : "- (RLMResults *)objectsWithPredicate:(id)predicate;", + "key.parsed_scope.end" : 123, + "key.parsed_scope.start" : 123, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)objectsWithPredicate:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get a sorted RLMResults from an RLMCollection.\n\n- parameter: property The property name to sort by.\n- parameter: ascending The direction to sort by.\n\n- returns: An RLMResults sorted by the specified property.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 133, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The property name to sort by.\n " + } + ], + "name" : "property" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The direction to sort by." + } + ], + "name" : "ascending" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults sorted by the specified property." + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-sortedResultsUsingProperty:ascending:", + "key.parsed_declaration" : "- (RLMResults *)sortedResultsUsingProperty:(id)property ascending:(id)ascending;", + "key.parsed_scope.end" : 133, + "key.parsed_scope.start" : 133, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)sortedResultsUsingProperty:ascending:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get a sorted RLMResults from an RLMCollection.\n\n- parameter: properties An array of `RLMSortDescriptor`s to sort by.\n\n- returns: An RLMResults sorted by the specified properties.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 142, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An array of `RLMSortDescriptor`s to sort by." + } + ], + "name" : "properties" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults sorted by the specified properties." + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-sortedResultsUsingDescriptors:", + "key.parsed_declaration" : "- (RLMResults *)sortedResultsUsingDescriptors:(id)properties;", + "key.parsed_scope.end" : 142, + "key.parsed_scope.start" : 142, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)sortedResultsUsingDescriptors:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 7, + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.line" : 144, + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectAtIndexedSubscript:", + "key.parsed_declaration" : "- (id)objectAtIndexedSubscript:(NSUInteger)index;", + "key.parsed_scope.end" : 144, + "key.parsed_scope.start" : 144, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)objectAtIndexedSubscript:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 16, + "key.doc.comment" : "Returns an NSArray containing the results of invoking `valueForKey:` using key on each of the collection's objects.\n\n- parameter: key The name of the property.\n\n- returns: NSArray containing the results of invoking `valueForKey:` using key on each of the collection's objects.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 153, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The name of the property." + } + ], + "name" : "key" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "NSArray containing the results of invoking `valueForKey:` using key on each of the collection's objects." + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-valueForKey:", + "key.parsed_declaration" : "- (nullable id)valueForKey:(id)key;", + "key.parsed_scope.end" : 153, + "key.parsed_scope.start" : 153, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)valueForKey:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Invokes `setValue:forKey:` on each of the collection's objects using the specified value and key.\n\n- warning: This method can only be called during a write transaction.\n\n- parameter: value The object value.\n- parameter: key The name of the property.", + "key.doc.file" : "Realm\/RLMCollection.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 163, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The object value.\n" + } + ], + "name" : "value" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The name of the property." + } + ], + "name" : "key" + } + ], + "key.filepath" : "Realm\/RLMCollection.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-setValue:forKey:", + "key.parsed_declaration" : "- (void)setValue:(nullable id)value forKey:(id)key;", + "key.parsed_scope.end" : 163, + "key.parsed_scope.start" : 163, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection(im)setValue:forKey:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMCollection" + } + ] + } + }, + { + "Realm\/RLMConstants.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.line" : 21, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Enums", + "key.parsed_scope.end" : 21, + "key.parsed_scope.start" : 21 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Property types supported in Realm models.\n\nSee [Realm Models](http:\/\/realm.io\/docs\/objc\/latest\/#models)", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 29, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.function", + "key.name" : "NS_ENUM", + "key.parsed_declaration" : "int NS_ENUM(int32_t, RLMPropertyType)", + "key.parsed_scope.end" : 59, + "key.parsed_scope.start" : 29, + "key.unavailable_message" : "", + "key.usr" : "c:@F@NS_ENUM" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 2, + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.line" : 59, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.unexposed", + "key.name" : "", + "key.parsed_declaration" : ";", + "key.parsed_scope.end" : 59, + "key.parsed_scope.start" : 59, + "key.unavailable_message" : "", + "key.usr" : "c:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Property types supported in Realm models.\n\nSee [Realm Models](http:\/\/realm.io\/docs\/objc\/latest\/#models)", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 64, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.function", + "key.name" : "NS_ENUM", + "key.parsed_declaration" : "typedef NS_ENUM(NSInteger, RLMError) {\n \/** Returned by RLMRealm if no other specific error is returned when a realm is opened. *\/\n RLMErrorFail = 1,\n \/** Returned by RLMRealm for any I\/O related exception scenarios when a realm is opened. *\/\n RLMErrorFileAccessError = 2,\n \/** Returned by RLMRealm if the user does not have permission to open or create\n the specified file in the specified access mode when the realm is opened. *\/\n RLMErrorFilePermissionDenied = 3,\n \/** Returned by RLMRealm if no_create was specified and the file did already exist when the realm is opened. *\/\n RLMErrorFileExists = 4,\n \/** Returned by RLMRealm if no_create was specified and the file was not found when the realm is opened. *\/\n RLMErrorFileNotFound = 5,\n \/** Returned by RLMRealm if the database file is currently open in another\n process which cannot share with the current process due to an\n architecture mismatch. *\/\n RLMErrorIncompatibleLockFile = 8,\n}", + "key.parsed_scope.end" : 80, + "key.parsed_scope.start" : 64, + "key.unavailable_message" : "", + "key.usr" : "c:@F@NS_ENUM" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 2, + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.line" : 80, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.unexposed", + "key.name" : "", + "key.parsed_declaration" : ";", + "key.parsed_scope.end" : 80, + "key.parsed_scope.start" : 80, + "key.unavailable_message" : "", + "key.usr" : "c:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.line" : 82, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Constants", + "key.parsed_scope.end" : 82, + "key.parsed_scope.start" : 82 + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.line" : 84, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Notification Constants", + "key.parsed_scope.end" : 84, + "key.parsed_scope.start" : 84 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 25, + "key.doc.comment" : "Posted by RLMRealm when the data in the realm has changed.\n\nDidChange are posted after a realm has been refreshed to reflect a write\ntransaction, i.e. when an autorefresh occurs, `[RLMRealm refresh]` is\ncalled, after an implicit refresh from `[RLMRealm beginWriteTransaction]`,\nand after a local write transaction is committed.", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 94, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.constant", + "key.name" : "RLMRealmRefreshRequiredNotification", + "key.parsed_declaration" : "extern NSString * const RLMRealmRefreshRequiredNotification", + "key.parsed_scope.end" : 94, + "key.parsed_scope.start" : 94, + "key.unavailable_message" : "", + "key.usr" : "c:@RLMRealmRefreshRequiredNotification" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 25, + "key.doc.comment" : "Posted by RLMRealm when a write transaction has been committed to an RLMRealm on\na different thread for the same file. This is not posted if\n`[RLMRealm autorefresh]` is enabled or if the RLMRealm is\nrefreshed before the notifcation has a chance to run.\n\nRealms with autorefresh disabled should normally have a handler for this\nnotification which calls `[RLMRealm refresh]` after doing some work.\nWhile not refreshing is allowed, it may lead to large Realm files as Realm has\nto keep an extra copy of the data for the un-refreshed RLMRealm.", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 107, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.constant", + "key.name" : "RLMRealmDidChangeNotification", + "key.parsed_declaration" : "extern NSString * const RLMRealmDidChangeNotification", + "key.parsed_scope.end" : 107, + "key.parsed_scope.start" : 107, + "key.unavailable_message" : "", + "key.usr" : "c:@RLMRealmDidChangeNotification" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.line" : 109, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Other Constants", + "key.parsed_scope.end" : 109, + "key.parsed_scope.start" : 109 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 23, + "key.doc.comment" : "Schema version used for uninitialized Realms", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 112, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.constant", + "key.name" : "RLMNotVersioned", + "key.parsed_declaration" : "extern const uint64_t RLMNotVersioned", + "key.parsed_scope.end" : 112, + "key.parsed_scope.start" : 112, + "key.unavailable_message" : "", + "key.usr" : "c:@RLMNotVersioned" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 25, + "key.doc.comment" : "Error domain used in Realm.", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 115, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.constant", + "key.name" : "RLMErrorDomain", + "key.parsed_declaration" : "extern NSString * const RLMErrorDomain", + "key.parsed_scope.end" : 115, + "key.parsed_scope.start" : 115, + "key.unavailable_message" : "", + "key.usr" : "c:@RLMErrorDomain" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 25, + "key.doc.comment" : "Key for name of Realm exceptions.", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 118, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.constant", + "key.name" : "RLMExceptionName", + "key.parsed_declaration" : "extern NSString * const RLMExceptionName", + "key.parsed_scope.end" : 118, + "key.parsed_scope.start" : 118, + "key.unavailable_message" : "", + "key.usr" : "c:@RLMExceptionName" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 25, + "key.doc.comment" : "Key for Realm file version.", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 121, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.constant", + "key.name" : "RLMRealmVersionKey", + "key.parsed_declaration" : "extern NSString * const RLMRealmVersionKey", + "key.parsed_scope.end" : 121, + "key.parsed_scope.start" : 121, + "key.unavailable_message" : "", + "key.usr" : "c:@RLMRealmVersionKey" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 25, + "key.doc.comment" : "Key for Realm core version.", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 124, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.constant", + "key.name" : "RLMRealmCoreVersionKey", + "key.parsed_declaration" : "extern NSString * const RLMRealmCoreVersionKey", + "key.parsed_scope.end" : 124, + "key.parsed_scope.start" : 124, + "key.unavailable_message" : "", + "key.usr" : "c:@RLMRealmCoreVersionKey" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 25, + "key.doc.comment" : "Key for Realm invalidated property name.", + "key.doc.file" : "Realm\/RLMConstants.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 127, + "key.filepath" : "Realm\/RLMConstants.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.constant", + "key.name" : "RLMInvalidatedKey", + "key.parsed_declaration" : "extern NSString * const RLMInvalidatedKey", + "key.parsed_scope.end" : 127, + "key.parsed_scope.start" : 127, + "key.unavailable_message" : "", + "key.usr" : "c:@RLMInvalidatedKey" + } + ] + } + }, + { + "Realm\/RLMMigration.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 16, + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.line" : 28, + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.typedef", + "key.name" : "RLMObjectMigrationBlock", + "key.parsed_declaration" : "typedef void (^RLMObjectMigrationBlock)(RLMObject * __nullable oldObject, RLMObject * __nullable newObject)", + "key.parsed_scope.end" : 28, + "key.parsed_scope.start" : 28, + "key.unavailable_message" : "", + "key.usr" : "c:RLMMigration.h@T@RLMObjectMigrationBlock" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "RLMMigration is the object passed into a user defined RLMMigrationBlock when updating the version\nof an RLMRealm instance.\n\nThis object provides access to the RLMSchema current to this migration.", + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 36, + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMMigration", + "key.parsed_declaration" : "@interface RLMMigration", + "key.parsed_scope.end" : 98, + "key.parsed_scope.start" : 36, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.line" : 38, + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 38, + "key.parsed_scope.start" : 38 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 44, + "key.doc.comment" : "Get the old RLMSchema for the migration. This is the schema which describes the RLMRealm before the\nmigration is applied.", + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 44, + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "oldSchema", + "key.parsed_declaration" : "@property (nonatomic, readonly) RLMSchema *oldSchema;", + "key.parsed_scope.end" : 44, + "key.parsed_scope.start" : 44, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMMigration(py)oldSchema" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 44, + "key.doc.comment" : "Get the new RLMSchema for the migration. This is the schema which describes the RLMRealm after applying\na migration.", + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 50, + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "newSchema", + "key.parsed_declaration" : "@property (nonatomic, readonly) RLMSchema *newSchema;", + "key.parsed_scope.end" : 50, + "key.parsed_scope.start" : 50, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMMigration(py)newSchema" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.line" : 53, + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Altering Objects during a Migration", + "key.parsed_scope.end" : 53, + "key.parsed_scope.start" : 53 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Enumerates objects of a given type in this Realm, providing both the old and new versions of each object.\nObjects properties can be accessed using keyed subscripting.\n\n- parameter: className The name of the RLMObject class to enumerate.\n\n- warning: All objects returned are of a type specific to the current migration and should not be casted\n to className. Instead you should access them as RLMObjects and use keyed subscripting to access\n properties.", + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 65, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The name of the RLMObject class to enumerate." + } + ], + "name" : "className" + } + ], + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-enumerateObjects:block:", + "key.parsed_declaration" : "- (void)enumerateObjects:(id)className block:(RLMObjectMigrationBlock)block;", + "key.parsed_scope.end" : 65, + "key.parsed_scope.start" : 65, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMMigration(im)enumerateObjects:block:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Create an RLMObject of type `className` in the Realm being migrated.\n\n- parameter: className The name of the RLMObject class to create.\n- parameter: value The value used to populate the created object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set.\n\n When passing in an NSArray, all properties must be present, valid and in the same order as the properties defined in the model.", + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 78, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The name of the RLMObject class to create.\n " + } + ], + "name" : "className" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The value used to populate the created object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set." + } + ], + "name" : "value" + } + ], + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-createObject:withValue:", + "key.parsed_declaration" : "- (RLMObject *)createObject:(id)className withValue:(id)value;", + "key.parsed_scope.end" : 78, + "key.parsed_scope.start" : 78, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMMigration(im)createObject:withValue:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Delete an object from a Realm during a migration. This can be called within `enumerateObjects:block:`.\n\n- parameter: object Object to be deleted from the Realm being migrated.", + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 85, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "Object to be deleted from the Realm being migrated." + } + ], + "name" : "object" + } + ], + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-deleteObject:", + "key.parsed_declaration" : "- (void)deleteObject:(RLMObject *)object;", + "key.parsed_scope.end" : 85, + "key.parsed_scope.start" : 85, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMMigration(im)deleteObject:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Deletes the data for the class with the given name.\nThis deletes all objects of the given class, and if the RLMObject subclass no longer exists in your program,\ncleans up any remaining metadata for the class in the Realm file.\n\n- parameter: name The name of the RLMObject class to delete.\n\n- returns: whether there was any data to delete.", + "key.doc.file" : "Realm\/RLMMigration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 96, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The name of the RLMObject class to delete." + } + ], + "name" : "name" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "whether there was any data to delete." + } + ], + "key.filepath" : "Realm\/RLMMigration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-deleteDataForClassName:", + "key.parsed_declaration" : "- (id)deleteDataForClassName:(id)name;", + "key.parsed_scope.end" : 96, + "key.parsed_scope.start" : 96, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMMigration(im)deleteDataForClassName:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMMigration" + } + ] + } + }, + { + "Realm\/RLMObject.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "In Realm you define your model classes by subclassing `RLMObject` and adding properties to be persisted.\nYou then instantiate and use your custom subclasses instead of using the `RLMObject` class directly.\n\n \/\/ Dog.h\n @interface Dog : RLMObject\n @property NSString *name;\n @property BOOL adopted;\n @end\n\n \/\/ Dog.m\n @implementation Dog\n @end \/\/none needed\n\n### Supported property types\n\n- `NSString`\n- `NSInteger`, `int`, `long`, `float`, and `double`\n- `BOOL` or `bool`\n- `NSDate`\n- `NSData`\n- `NSNumber`, where X is one of RLMInt, RLMFloat, RLMDouble or RLMBool, for optional number properties\n- `RLMObject` subclasses, so you can have many-to-one relationships.\n- `RLMArray`, where X is an `RLMObject` subclass, so you can have many-to-many relationships.\n\n### Querying\n\nYou can query an object directly via the class methods: `allObjects`, `objectsWhere:`, and `objectsWithPredicate:`.\nThese methods allow you to easily query a custom subclass for instances of this class in the\ndefault Realm. To search in a Realm other than the default Realm use the interface on an RLMRealm instance.\n\n### Relationships\n\nSee our [Cocoa guide](http:\/\/realm.io\/docs\/objc\/latest) for more details.\n\n### Key-Value Observing\n\nAll `RLMObject` properties (including properties you create in subclasses) are\n[Key-Value Observing compliant](https:\/\/developer.apple.com\/library\/mac\/documentation\/Cocoa\/Conceptual\/KeyValueObserving\/KeyValueObserving.html),\nexcept for `realm` and `objectSchema`. There are several Realm-specific things\nto keep in mind when observing Realm objects:\n\n1. Unlike `NSMutableArray` properties, `RLMArray` properties do not require\n using the proxy object returned from `-mutableArrayValueForKey:`, or defining\n KVC mutation methods on the containing class. You can simply call methods on\n the RLMArray directly and the changes will be observed by the containing\n object.\n2. Standalone `RLMObjects` cannot be added to a Realm while they have any\n observed properties.\n3. Modifying persisted `RLMObjects` in `-observeValueForKeyPath:ofObject:change:context:`\n is problematic. Properties may change when the Realm is not in a write\n transaction (for example, when `-[RLMRealm refresh]` is called after changes\n are made on a different thread), and notifications sent prior to the change\n being applied (when `NSKeyValueObservingOptionPrior` is used) may be sent at\n times when you *cannot* begin a write transaction.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 87, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMObject", + "key.parsed_declaration" : "@interface RLMObject : RLMObjectBase", + "key.parsed_scope.end" : 399, + "key.parsed_scope.start" : 87, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 89, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Creating & Initializing Objects", + "key.parsed_scope.end" : 89, + "key.parsed_scope.start" : 89 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Initialize a standalone RLMObject\n\nInitialize an unpersisted instance of this object.\nCall addObject: on an RLMRealm to add standalone object to a realm.\n\n- see: [RLMRealm addObject:]:", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 99, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-init", + "key.parsed_declaration" : "- (instancetype)init;", + "key.parsed_scope.end" : 99, + "key.parsed_scope.start" : 99, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(im)init" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Initialize a standalone RLMObject with values from an NSArray or NSDictionary\n\nInitialize an unpersisted instance of this object.\nCall addObject: on an RLMRealm to add standalone object to a realm.\n\n- see: [RLMRealm addObject:]:", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 110, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-initWithValue:", + "key.parsed_declaration" : "- (instancetype)initWithValue:(id)value;", + "key.parsed_scope.end" : 110, + "key.parsed_scope.start" : 110, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(im)initWithValue:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Helper to return the class name for an RLMObject subclass.\n\n- warning: Do not override. Realm relies on this method returning the exact class\n name.\n\n- returns: The class name for the model class.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 121, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "The class name for the model class." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+className", + "key.parsed_declaration" : "+ (id)className;", + "key.parsed_scope.end" : 121, + "key.parsed_scope.start" : 121, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)className" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Create an RLMObject in the default Realm with a given value.\n\nCreates an instance of this object and adds it to the default Realm populating\nthe object with the given value.\n\nIf nested objects are included in the argument, `createInDefaultRealmWithValue:` will be called\non them.\n\n- parameter: value The value used to populate the object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set.\n\nWhen passing in an NSArray, all properties must be present, valid and in the same order as the properties defined in the model.\n\n- see: defaultPropertyValues", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 141, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The value used to populate the object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set." + } + ], + "name" : "value" + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+createInDefaultRealmWithValue:", + "key.parsed_declaration" : "+ (instancetype)createInDefaultRealmWithValue:(id)value;", + "key.parsed_scope.end" : 141, + "key.parsed_scope.start" : 141, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)createInDefaultRealmWithValue:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Create an RLMObject in a Realm with a given object.\n\nCreates an instance of this object and adds it to the given Realm populating\nthe object with the given object.\n\nIf nested objects are included in the argument, `createInRealm:withValue:` will be called\non them.\n\n- parameter: realm The Realm in which this object is persisted.\n- parameter: value The value used to populate the object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set.\n \n When passing in an NSArray, all properties must be present, valid and in the same order as the properties defined in the model.\n\n- see: defaultPropertyValues", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 162, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The Realm in which this object is persisted.\n " + } + ], + "name" : "realm" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The value used to populate the object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set." + } + ], + "name" : "value" + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+createInRealm:withValue:", + "key.parsed_declaration" : "+ (instancetype)createInRealm:(RLMRealm *)realm withValue:(id)value;", + "key.parsed_scope.end" : 162, + "key.parsed_scope.start" : 162, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)createInRealm:withValue:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Create or update an RLMObject in the default Realm with a given object.\n\nThis method can only be called on object types with a primary key defined. If there is already\nan object with the same primary key value in the default RLMRealm its values are updated and the object\nis returned. Otherwise this creates and populates a new instance of this object in the default Realm.\n\nIf nested objects are included in the argument, `createOrUpdateInDefaultRealmWithValue:` will be\ncalled on them if have a primary key (`createInDefaultRealmWithValue:` otherwise).\n\nThis is a no-op if the argument is an RLMObject of the same type already backed by the target realm.\n\n- parameter: value The value used to populate the object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set.\n\nWhen passing in an NSArray, all properties must be present, valid and in the same order as the properties defined in the model.\n\n- see: defaultPropertyValues, primaryKey", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 185, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The value used to populate the object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set." + } + ], + "name" : "value" + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+createOrUpdateInDefaultRealmWithValue:", + "key.parsed_declaration" : "+ (instancetype)createOrUpdateInDefaultRealmWithValue:(id)value;", + "key.parsed_scope.end" : 185, + "key.parsed_scope.start" : 185, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)createOrUpdateInDefaultRealmWithValue:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Create or update an RLMObject with a given object.\n\nThis method can only be called on object types with a primary key defined. If there is already\nan object with the same primary key value in the provided RLMRealm its values are updated and the object\nis returned. Otherwise this creates and populates a new instance of this object in the provided Realm.\n\nIf nested objects are included in the argument, `createOrUpdateInRealm:withValue:` will be\ncalled on them if have a primary key (`createInRealm:withValue:` otherwise).\n\nThis is a no-op if the argument is an RLMObject of the same type already backed by the target realm.\n\n- parameter: realm The Realm in which this object is persisted.\n- parameter: value The value used to populate the object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set.\n\nWhen passing in an NSArray, all properties must be present, valid and in the same order as the properties defined in the model.\n\n- see: defaultPropertyValues, primaryKey", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 209, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The Realm in which this object is persisted.\n " + } + ], + "name" : "realm" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The value used to populate the object. This can be any key\/value coding compliant\n object, or a JSON object such as those returned from the methods in NSJSONSerialization, or\n an NSArray with one object for each persisted property. An exception will be\n thrown if any required properties are not present and no default is set." + } + ], + "name" : "value" + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+createOrUpdateInRealm:withValue:", + "key.parsed_declaration" : "+ (instancetype)createOrUpdateInRealm:(RLMRealm *)realm withValue:(id)value;", + "key.parsed_scope.end" : 209, + "key.parsed_scope.start" : 209, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)createOrUpdateInRealm:withValue:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 211, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 211, + "key.parsed_scope.start" : 211 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 53, + "key.doc.comment" : "The Realm in which this object is persisted. Returns nil for standalone objects.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 216, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "realm", + "key.parsed_declaration" : "@property (nonatomic, readonly, nullable) RLMRealm *realm;", + "key.parsed_scope.end" : 216, + "key.parsed_scope.start" : 216, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(py)realm" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 50, + "key.doc.comment" : "The ObjectSchema which lists the persisted properties for this object.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 221, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "objectSchema", + "key.parsed_declaration" : "@property (nonatomic, readonly) RLMObjectSchema *objectSchema;", + "key.parsed_scope.end" : 221, + "key.parsed_scope.start" : 221, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(py)objectSchema" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 62, + "key.doc.comment" : "Indicates if an object can no longer be accessed.\n\nAn object can no longer be accessed if the object has been deleted from the containing `realm` or\nif `invalidate` is called on the containing `realm`.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 229, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "invalidated", + "key.parsed_declaration" : "@property (nonatomic, readonly, getter=isInvalidated) int invalidated;", + "key.parsed_scope.end" : 229, + "key.parsed_scope.start" : 229, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(py)invalidated" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 232, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Customizing your Objects", + "key.parsed_scope.end" : 232, + "key.parsed_scope.start" : 232 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 14, + "key.doc.comment" : "Return an array of property names for properties which should be indexed. Only supported\nfor string and int properties.\n- returns: NSArray of property names.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 239, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "NSArray of property names." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+indexedProperties", + "key.parsed_declaration" : "+ (id)indexedProperties;", + "key.parsed_scope.end" : 239, + "key.parsed_scope.start" : 239, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)indexedProperties" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 28, + "key.doc.comment" : "Implement to indicate the default values to be used for each property.\n\n- returns: NSDictionary mapping property names to their default values.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 246, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "NSDictionary mapping property names to their default values." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+defaultPropertyValues", + "key.parsed_declaration" : "+ (id)defaultPropertyValues;", + "key.parsed_scope.end" : 246, + "key.parsed_scope.start" : 246, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)defaultPropertyValues" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 24, + "key.doc.comment" : "Implement to designate a property as the primary key for an RLMObject subclass. Only properties of\ntype RLMPropertyTypeString and RLMPropertyTypeInt can be designated as the primary key. Primary key \nproperties enforce uniqueness for each value whenever the property is set which incurs some overhead.\nIndexes are created automatically for primary key properties.\n\n- returns: Name of the property designated as the primary key.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 256, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Name of the property designated as the primary key." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+primaryKey", + "key.parsed_declaration" : "+ (id)primaryKey;", + "key.parsed_scope.end" : 256, + "key.parsed_scope.start" : 256, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)primaryKey" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 23, + "key.doc.comment" : "Implement to return an array of property names to ignore. These properties will not be persisted\nand are treated as transient.\n\n- returns: NSArray of property names to ignore.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 264, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "NSArray of property names to ignore." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+ignoredProperties", + "key.parsed_declaration" : "+ (id)ignoredProperties;", + "key.parsed_scope.end" : 264, + "key.parsed_scope.start" : 264, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)ignoredProperties" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 14, + "key.doc.comment" : "Implement to return an array of property names that should not allow storing nil.\n\nBy default, all properties of a type that support storing nil are considered optional properties.\nTo require that an object in a Realm always have a non-nil value for a property,\nadd the name of the property to the array returned from this method.\n\nCurrently Object properties cannot be required. Array and NSNumber properties\ncan, but it makes little sense to do so: arrays do not support storing nil, and\nif you want a non-optional number you should instead use the primitive type.\n\n- returns: NSArray of property names that are required.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 279, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "NSArray of property names that are required." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+requiredProperties", + "key.parsed_declaration" : "+ (id)requiredProperties;", + "key.parsed_scope.end" : 279, + "key.parsed_scope.start" : 279, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)requiredProperties" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 282, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Getting & Querying Objects from the Default Realm", + "key.parsed_scope.end" : 282, + "key.parsed_scope.start" : 282 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get all objects of this type from the default Realm.\n\n- returns: An RLMResults of all objects of this type in the default Realm.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 289, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of all objects of this type in the default Realm." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+allObjects", + "key.parsed_declaration" : "+ (RLMResults *)allObjects;", + "key.parsed_scope.end" : 289, + "key.parsed_scope.start" : 289, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)allObjects" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get objects matching the given predicate for this type from the default Realm.\n\n- parameter: predicateFormat The predicate format string which can accept variable arguments.\n\n- returns: An RLMResults of objects of the subclass type in the default Realm that match the given predicate", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 298, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate format string which can accept variable arguments." + } + ], + "name" : "predicateFormat" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects of the subclass type in the default Realm that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+objectsWhere:", + "key.parsed_declaration" : "+ (RLMResults *)objectsWhere:(id)predicateFormat, ...;", + "key.parsed_scope.end" : 298, + "key.parsed_scope.start" : 298, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)objectsWhere:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get objects matching the given predicate for this type from the default Realm.\n\n- parameter: predicate The predicate to filter the objects.\n\n- returns: An RLMResults of objects of the subclass type in the default Realm that match the given predicate", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 308, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate to filter the objects." + } + ], + "name" : "predicate" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects of the subclass type in the default Realm that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+objectsWithPredicate:", + "key.parsed_declaration" : "+ (RLMResults *)objectsWithPredicate:(id)predicate;", + "key.parsed_scope.end" : 308, + "key.parsed_scope.start" : 308, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)objectsWithPredicate:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 26, + "key.doc.comment" : "Get the single object with the given primary key from the default Realm.\n\nReturns the object from the default Realm which has the given primary key, or\n`nil` if the object does not exist. This is slightly faster than the otherwise\nequivalent `[[SubclassName objectsWhere:@\"primaryKeyPropertyName = %@\", key] firstObject]`.\n\nThis method requires that `primaryKey` be overridden on the receiving subclass.\n\n- returns: An object of the subclass type or nil if an object with the given primary key does not exist.\n- see: -primaryKey", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 322, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An object of the subclass type or nil if an object with the given primary key does not exist.\n " + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+objectForPrimaryKey:", + "key.parsed_declaration" : "+ (nullable instancetype)objectForPrimaryKey:(nullable id)primaryKey;", + "key.parsed_scope.end" : 322, + "key.parsed_scope.start" : 322, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)objectForPrimaryKey:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 325, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Querying Specific Realms", + "key.parsed_scope.end" : 325, + "key.parsed_scope.start" : 325 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get all objects of this type from the specified Realm.\n\n- parameter: realm The Realm instance to query.\n\n- returns: An RLMResults of all objects of this type in the specified Realm.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 334, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The Realm instance to query." + } + ], + "name" : "realm" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of all objects of this type in the specified Realm." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+allObjectsInRealm:", + "key.parsed_declaration" : "+ (RLMResults *)allObjectsInRealm:(RLMRealm *)realm;", + "key.parsed_scope.end" : 334, + "key.parsed_scope.start" : 334, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)allObjectsInRealm:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get objects matching the given predicate for this type from the specified Realm.\n\n- parameter: predicateFormat The predicate format string which can accept variable arguments.\n- parameter: realm The Realm instance to query.\n\n- returns: An RLMResults of objects of the subclass type in the specified Realm that match the given predicate", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 344, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate format string which can accept variable arguments.\n" + } + ], + "name" : "predicateFormat" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The Realm instance to query." + } + ], + "name" : "realm" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects of the subclass type in the specified Realm that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+objectsInRealm:where:", + "key.parsed_declaration" : "+ (RLMResults *)objectsInRealm:(RLMRealm *)realm where:(id)predicateFormat, ...;", + "key.parsed_scope.end" : 344, + "key.parsed_scope.start" : 344, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)objectsInRealm:where:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Get objects matching the given predicate for this type from the specified Realm.\n\n- parameter: predicate The predicate to filter the objects.\n- parameter: realm The Realm instance to query.\n\n- returns: An RLMResults of objects of the subclass type in the specified Realm that match the given predicate", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 354, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate to filter the objects.\n " + } + ], + "name" : "predicate" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The Realm instance to query." + } + ], + "name" : "realm" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects of the subclass type in the specified Realm that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+objectsInRealm:withPredicate:", + "key.parsed_declaration" : "+ (RLMResults *)objectsInRealm:(RLMRealm *)realm withPredicate:(id)predicate;", + "key.parsed_scope.end" : 354, + "key.parsed_scope.start" : 354, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)objectsInRealm:withPredicate:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 26, + "key.doc.comment" : "Get the single object with the given primary key from the specified Realm.\n\nReturns the object from the specified Realm which has the given primary key, or\n`nil` if the object does not exist. This is slightly faster than the otherwise\nequivalent `[[SubclassName objectsInRealm:realm where:@\"primaryKeyPropertyName = %@\", key] firstObject]`.\n\nThis method requires that `primaryKey` be overridden on the receiving subclass.\n\n- returns: An object of the subclass type or nil if an object with the given primary key does not exist.\n- see: -primaryKey", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 368, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An object of the subclass type or nil if an object with the given primary key does not exist.\n " + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+objectInRealm:forPrimaryKey:", + "key.parsed_declaration" : "+ (nullable instancetype)objectInRealm:(RLMRealm *)realm\n forPrimaryKey:(nullable id)primaryKey;", + "key.parsed_scope.end" : 368, + "key.parsed_scope.start" : 368, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(cm)objectInRealm:forPrimaryKey:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 370, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Other Instance Methods", + "key.parsed_scope.end" : 370, + "key.parsed_scope.start" : 370 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 14, + "key.doc.comment" : "Get an `NSArray` of objects of type `className` which have this object as the given property value. This can\nbe used to get the inverse relatshionship value for `RLMObject` and `RLMArray` properties.\n\n- parameter: className The type of object on which the relationship to query is defined.\n- parameter: property The name of the property which defines the relationship.\n\n- returns: An NSArray of objects of type `className` which have this object as thier value for the `property` property.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 381, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The type of object on which the relationship to query is defined.\n " + } + ], + "name" : "className" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The name of the property which defines the relationship." + } + ], + "name" : "property" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An NSArray of objects of type `className` which have this object as thier value for the `property` property." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-linkingObjectsOfClass:forProperty:", + "key.parsed_declaration" : "- (id)linkingObjectsOfClass:(id)className forProperty:(id)property;", + "key.parsed_scope.end" : 381, + "key.parsed_scope.start" : 381, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(im)linkingObjectsOfClass:forProperty:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Returns YES if another RLMObject points to the same object in an RLMRealm. For RLMObject types\nwith a primary, key, `isEqual:` is overridden to use this method (along with a corresponding\nimplementation for `hash`.\n\n- parameter: object The object to compare to.\n\n- returns: YES if the object represents the same object in the same RLMRealm.", + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 392, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The object to compare to." + } + ], + "name" : "object" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "YES if the object represents the same object in the same RLMRealm." + } + ], + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-isEqualToObject:", + "key.parsed_declaration" : "- (id)isEqualToObject:(RLMObject *)object;", + "key.parsed_scope.end" : 392, + "key.parsed_scope.start" : 392, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(im)isEqualToObject:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 394, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Dynamic Accessors", + "key.parsed_scope.end" : 394, + "key.parsed_scope.start" : 394 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 16, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 396, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectForKeyedSubscript:", + "key.parsed_declaration" : "- (nullable id)objectForKeyedSubscript:(NSString *)key;", + "key.parsed_scope.end" : 396, + "key.parsed_scope.start" : 396, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(im)objectForKeyedSubscript:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 397, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-setObject:forKeyedSubscript:", + "key.parsed_declaration" : "- (void)setObject:(nullable id)obj forKeyedSubscript:(NSString *)key;", + "key.parsed_scope.end" : 397, + "key.parsed_scope.start" : 397, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject(im)setObject:forKeyedSubscript:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObject" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObject.h", + "key.doc.line" : 401, + "key.filepath" : "Realm\/RLMObject.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "RLMArray Property Declaration", + "key.parsed_scope.end" : 401, + "key.parsed_scope.start" : 401 + } + ] + } + }, + { + "Realm\/RLMObjectBase.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.file" : "Realm\/RLMObjectBase.h", + "key.doc.line" : 28, + "key.filepath" : "Realm\/RLMObjectBase.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMObjectBase", + "key.parsed_declaration" : "@interface RLMObjectBase : NSObject\n\n@property (nonatomic, readonly, getter = isInvalidated) BOOL invalidated;\n\n- (instancetype)init;\n\n+ (NSString *)className;\n\n\/\/ Returns whether the class is included in the default set of classes persisted in a Realm.\n+ (BOOL)shouldIncludeInDefaultSchema;\n\n@end", + "key.parsed_scope.end" : 39, + "key.parsed_scope.start" : 28, + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 62, + "key.doc.file" : "Realm\/RLMObjectBase.h", + "key.doc.line" : 30, + "key.filepath" : "Realm\/RLMObjectBase.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "invalidated", + "key.parsed_declaration" : "@property (nonatomic, readonly, getter = isInvalidated) BOOL invalidated", + "key.parsed_scope.end" : 30, + "key.parsed_scope.start" : 30, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectBase(py)invalidated" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.file" : "Realm\/RLMObjectBase.h", + "key.doc.line" : 32, + "key.filepath" : "Realm\/RLMObjectBase.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-init", + "key.parsed_declaration" : "- (instancetype)init;", + "key.parsed_scope.end" : 32, + "key.parsed_scope.start" : 32, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectBase(im)init" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.file" : "Realm\/RLMObjectBase.h", + "key.doc.line" : 34, + "key.filepath" : "Realm\/RLMObjectBase.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+className", + "key.parsed_declaration" : "+ (NSString *)className;", + "key.parsed_scope.end" : 34, + "key.parsed_scope.start" : 34, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectBase(cm)className" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.file" : "Realm\/RLMObjectBase.h", + "key.doc.line" : 37, + "key.filepath" : "Realm\/RLMObjectBase.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+shouldIncludeInDefaultSchema", + "key.parsed_declaration" : "+ (BOOL)shouldIncludeInDefaultSchema;", + "key.parsed_scope.end" : 37, + "key.parsed_scope.start" : 37, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectBase(cm)shouldIncludeInDefaultSchema" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectBase" + } + ] + } + }, + { + "Realm\/RLMObjectSchema.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "This class represents Realm model object schemas persisted to Realm in an RLMSchema.\n\nWhen using Realm, RLMObjectSchema objects allow performing migrations and\nintrospecting the database's schema.\n\nObject schemas map to tables in the core database.", + "key.doc.file" : "Realm\/RLMObjectSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 34, + "key.filepath" : "Realm\/RLMObjectSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMObjectSchema", + "key.parsed_declaration" : "@interface RLMObjectSchema", + "key.parsed_scope.end" : 71, + "key.parsed_scope.start" : 34, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObjectSchema.h", + "key.doc.line" : 36, + "key.filepath" : "Realm\/RLMObjectSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 36, + "key.parsed_scope.start" : 36 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 48, + "key.doc.comment" : "Array of persisted RLMProperty objects for an object.\n\n- see: RLMProperty", + "key.doc.file" : "Realm\/RLMObjectSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 43, + "key.filepath" : "Realm\/RLMObjectSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "properties", + "key.parsed_declaration" : "@property (nonatomic, readonly, copy) NSArray *properties", + "key.parsed_scope.end" : 43, + "key.parsed_scope.start" : 43, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectSchema(py)properties" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 43, + "key.doc.comment" : "The name of the class this schema describes.", + "key.doc.file" : "Realm\/RLMObjectSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 48, + "key.filepath" : "Realm\/RLMObjectSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "className", + "key.parsed_declaration" : "@property (nonatomic, readonly) int *className;", + "key.parsed_scope.end" : 48, + "key.parsed_scope.start" : 48, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectSchema(py)className" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 56, + "key.doc.comment" : "The property which is the primary key for this object (if any).", + "key.doc.file" : "Realm\/RLMObjectSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 53, + "key.filepath" : "Realm\/RLMObjectSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "primaryKeyProperty", + "key.parsed_declaration" : "@property (nonatomic, readonly, nullable) RLMProperty *primaryKeyProperty;", + "key.parsed_scope.end" : 53, + "key.parsed_scope.start" : 53, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectSchema(py)primaryKeyProperty" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMObjectSchema.h", + "key.doc.line" : 55, + "key.filepath" : "Realm\/RLMObjectSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Methods", + "key.parsed_scope.end" : 55, + "key.parsed_scope.start" : 55 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 27, + "key.doc.comment" : "Retrieve an RLMProperty object by name.\n\n- parameter: propertyName The property's name.\n\n- returns: RLMProperty object or nil if there is no property with the given name.", + "key.doc.file" : "Realm\/RLMObjectSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 64, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The property's name." + } + ], + "name" : "propertyName" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "RLMProperty object or nil if there is no property with the given name." + } + ], + "key.filepath" : "Realm\/RLMObjectSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectForKeyedSubscript:", + "key.parsed_declaration" : "- (nullable RLMProperty *)objectForKeyedSubscript:(id)propertyName;", + "key.parsed_scope.end" : 64, + "key.parsed_scope.start" : 64, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectSchema(im)objectForKeyedSubscript:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Returns YES if equal to objectSchema", + "key.doc.file" : "Realm\/RLMObjectSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 69, + "key.filepath" : "Realm\/RLMObjectSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-isEqualToObjectSchema:", + "key.parsed_declaration" : "- (id)isEqualToObjectSchema:(RLMObjectSchema *)objectSchema;", + "key.parsed_scope.end" : 69, + "key.parsed_scope.start" : 69, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectSchema(im)isEqualToObjectSchema:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMObjectSchema" + } + ] + } + }, + { + "Realm\/RLMProperty.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 11, + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.line" : 25, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.protocol", + "key.name" : "RLMInt", + "key.parsed_declaration" : "@protocol RLMInt\n@end", + "key.parsed_scope.end" : 26, + "key.parsed_scope.start" : 25, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMInt" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 11, + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.line" : 27, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.protocol", + "key.name" : "RLMBool", + "key.parsed_declaration" : "@protocol RLMBool\n@end", + "key.parsed_scope.end" : 28, + "key.parsed_scope.start" : 27, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMBool" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 11, + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.line" : 29, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.protocol", + "key.name" : "RLMDouble", + "key.parsed_declaration" : "@protocol RLMDouble\n@end", + "key.parsed_scope.end" : 30, + "key.parsed_scope.start" : 29, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMDouble" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 11, + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.line" : 31, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.protocol", + "key.name" : "RLMFloat", + "key.parsed_declaration" : "@protocol RLMFloat\n@end", + "key.parsed_scope.end" : 32, + "key.parsed_scope.start" : 31, + "key.unavailable_message" : "", + "key.usr" : "c:objc(pl)RLMFloat" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.line" : 34, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.category", + "key.parsed_declaration" : "@interface NSNumber ()\n@end", + "key.parsed_scope.end" : 35, + "key.parsed_scope.start" : 34, + "key.unavailable_message" : "", + "key.usr" : "" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "This class models properties persisted to Realm in an RLMObjectSchema.\n\nWhen using Realm, RLMProperty objects allow performing migrations and \nintrospecting the database's schema.\n\nThese properties map to columns in the core database.", + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 45, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMProperty", + "key.parsed_declaration" : "@interface RLMProperty", + "key.parsed_scope.end" : 85, + "key.parsed_scope.start" : 45, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.line" : 47, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 47, + "key.parsed_scope.start" : 47 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 43, + "key.doc.comment" : "Property name.", + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 52, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "name", + "key.parsed_declaration" : "@property (nonatomic, readonly) int *name;", + "key.parsed_scope.end" : 52, + "key.parsed_scope.start" : 52, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMProperty(py)name" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 49, + "key.doc.comment" : "Property type.\n\n- see: RLMPropertyType", + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 59, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "type", + "key.parsed_declaration" : "@property (nonatomic, readonly) int type;", + "key.parsed_scope.end" : 59, + "key.parsed_scope.start" : 59, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMProperty(py)type" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 38, + "key.doc.comment" : "Indicates if this property is indexed.\n\n- see: RLMObject", + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 66, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "indexed", + "key.parsed_declaration" : "@property (nonatomic, readonly) int indexed;", + "key.parsed_scope.end" : 66, + "key.parsed_scope.start" : 66, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMProperty(py)indexed" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 59, + "key.doc.comment" : "Object class name - specify object types for RLMObject and RLMArray properties.", + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 71, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "objectClassName", + "key.parsed_declaration" : "@property (nonatomic, readonly, copy, nullable) NSString *objectClassName", + "key.parsed_scope.end" : 71, + "key.parsed_scope.start" : 71, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMProperty(py)objectClassName" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 38, + "key.doc.comment" : "Whether this property is optional.", + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 76, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "optional", + "key.parsed_declaration" : "@property (nonatomic, readonly) int optional;", + "key.parsed_scope.end" : 76, + "key.parsed_scope.start" : 76, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMProperty(py)optional" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.line" : 78, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Methods", + "key.parsed_scope.end" : 78, + "key.parsed_scope.start" : 78 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Returns YES if property objects are equal.", + "key.doc.file" : "Realm\/RLMProperty.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 83, + "key.filepath" : "Realm\/RLMProperty.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-isEqualToProperty:", + "key.parsed_declaration" : "- (id)isEqualToProperty:(RLMProperty *)property;", + "key.parsed_scope.end" : 83, + "key.parsed_scope.start" : 83, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMProperty(im)isEqualToProperty:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMProperty" + } + ] + } + }, + { + "Realm\/RLMRealm.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "An RLMRealm instance (also referred to as \"a realm\") represents a Realm\ndatabase.\n\nRealms can either be stored on disk (see +[RLMRealm realmWithPath:]) or in\nmemory (see +[RLMRealm inMemoryRealmWithIdentifier:]).\n\nRLMRealm instances are cached internally, and constructing equivalent RLMRealm\nobjects (with the same path or identifier) multiple times on a single thread\nwithin a single iteration of the run loop will normally return the same\nRLMRealm object. If you specifically want to ensure a RLMRealm object is\ndestroyed (for example, if you wish to open a realm, check some property, and\nthen possibly delete the realm file and re-open it), place the code which uses\nthe realm within an `@autoreleasepool {}` and ensure you have no other\nstrong references to it.\n\n- warning: RLMRealm instances are not thread safe and can not be shared across\nthreads or dispatch queues. You must call this method on each thread you want\nto interact with the realm on. For dispatch queues, this means that you must\ncall it in each block which is dispatched, as a queue is not guaranteed to run\non a consistent thread.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 49, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMRealm", + "key.parsed_declaration" : "@interface RLMRealm", + "key.parsed_scope.end" : 472, + "key.parsed_scope.start" : 49, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.line" : 51, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Creating & Initializing a Realm", + "key.parsed_scope.end" : 51, + "key.parsed_scope.start" : 51 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Obtains an instance of the default Realm.\n\nThe default Realm is used by the `RLMObject` class methods\nwhich do not take a `RLMRealm` parameter, but is otherwise not special. The\ndefault Realm is persisted as default.realm under the Documents directory of\nyour Application on iOS, and in your application's Application Support\ndirectory on OS X.\n\nThe default Realm is created using the default `RLMRealmConfiguration`, which\ncan be changed via `+[RLMRealmConfiguration setDefaultConfiguration:]`.\n\n- returns: The default `RLMRealm` instance for the current thread.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 67, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "The default `RLMRealm` instance for the current thread." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+defaultRealm", + "key.parsed_declaration" : "+ (instancetype)defaultRealm;", + "key.parsed_scope.end" : 67, + "key.parsed_scope.start" : 67, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(cm)defaultRealm" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 26, + "key.doc.comment" : "Obtains an `RLMRealm` instance with the given configuration.\n\n- parameter: configuration The configuration for the realm.\n- parameter: error If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`.\n\n- returns: An `RLMRealm` instance.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 79, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The configuration for the realm.\n" + } + ], + "name" : "configuration" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`." + } + ], + "name" : "error" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An `RLMRealm` instance." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+realmWithConfiguration:error:", + "key.parsed_declaration" : "+ (nullable instancetype)realmWithConfiguration:\n (RLMRealmConfiguration *)configuration\n error:(id)error;", + "key.parsed_scope.end" : 79, + "key.parsed_scope.start" : 79, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(cm)realmWithConfiguration:error:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Obtains an `RLMRealm` instance persisted at a specific file path.\n\n- parameter: path Path to the file you want the data saved in.\n\n- returns: An `RLMRealm` instance.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 88, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "Path to the file you want the data saved in." + } + ], + "name" : "path" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An `RLMRealm` instance." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+realmWithPath:", + "key.parsed_declaration" : "+ (instancetype)realmWithPath:(id)path;", + "key.parsed_scope.end" : 88, + "key.parsed_scope.start" : 88, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(cm)realmWithPath:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 43, + "key.doc.comment" : "Path to the file where this Realm is persisted.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 93, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "path", + "key.parsed_declaration" : "@property (nonatomic, readonly) int *path;", + "key.parsed_scope.end" : 93, + "key.parsed_scope.start" : 93, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(py)path" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 59, + "key.doc.comment" : "Indicates if this Realm was opened in read-only mode.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 98, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "readOnly", + "key.parsed_declaration" : "@property (nonatomic, readonly, getter=isReadOnly) int readOnly;", + "key.parsed_scope.end" : 98, + "key.parsed_scope.start" : 98, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(py)readOnly" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 62, + "key.doc.comment" : "The RLMSchema used by this RLMRealm.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 103, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "schema", + "key.parsed_declaration" : "@property (nonatomic, readonly, null_unspecified) RLMSchema *schema;", + "key.parsed_scope.end" : 103, + "key.parsed_scope.start" : 103, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(py)schema" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 38, + "key.doc.comment" : "Indicates if this Realm is currently in a write transaction.\n\n- warning: Wrapping mutating operations in a write transaction if this property returns `NO`\n may cause a large number of write transactions to be created, which could negatively\n impact Realm's performance. Always prefer performing multiple mutations in a single\n transaction when possible.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 113, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "inWriteTransaction", + "key.parsed_declaration" : "@property (nonatomic, readonly) int inWriteTransaction;", + "key.parsed_scope.end" : 113, + "key.parsed_scope.start" : 113, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(py)inWriteTransaction" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 56, + "key.doc.comment" : "Returns an `RLMRealmConfiguration` that can be used to create this `RLMRealm` instance.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 118, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "configuration", + "key.parsed_declaration" : "@property (nonatomic, readonly) RLMRealmConfiguration *configuration;", + "key.parsed_scope.end" : 118, + "key.parsed_scope.start" : 118, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(py)configuration" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 38, + "key.doc.comment" : "Indicates if this Realm contains any objects.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 123, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "isEmpty", + "key.parsed_declaration" : "@property (nonatomic, readonly) int isEmpty;", + "key.parsed_scope.end" : 123, + "key.parsed_scope.start" : 123, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(py)isEmpty" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.line" : 125, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Notifications", + "key.parsed_scope.end" : 125, + "key.parsed_scope.start" : 125 + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.line" : 130, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Receiving Notification when a Realm Changes", + "key.parsed_scope.end" : 130, + "key.parsed_scope.start" : 130 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 27, + "key.doc.comment" : "Add a notification handler for changes in this RLMRealm.\n\nThe block has the following definition:\n\n typedef void(^RLMNotificationBlock)(NSString *notification, RLMRealm *realm);\n\nIt receives the following parameters:\n\n- `NSString` \\***notification**: The name of the incoming notification. See\n RLMRealmNotification for information on what\n notifications are sent.\n- `RLMRealm` \\***realm**: The realm for which this notification occurred\n\n- parameter: block A block which is called to process RLMRealm notifications.\n\n- returns: A token object which can later be passed to `-removeNotification:`\n to remove this notification.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 151, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "A block which is called to process RLMRealm notifications." + } + ], + "name" : "block" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "A token object which can later be passed to `-removeNotification:`\n to remove this notification." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-addNotificationBlock:", + "key.parsed_declaration" : "- (RLMNotificationToken *)addNotificationBlock:(RLMNotificationBlock)block;", + "key.parsed_scope.end" : 151, + "key.parsed_scope.start" : 151, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)addNotificationBlock:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Remove a previously registered notification handler using the token returned\nfrom `-addNotificationBlock:`\n\n- parameter: notificationToken The token returned from `-addNotificationBlock:`\n corresponding to the notification block to remove.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 160, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The token returned from `-addNotificationBlock:`\n corresponding to the notification block to remove." + } + ], + "name" : "notificationToken" + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-removeNotification:", + "key.parsed_declaration" : "- (void)removeNotification:(RLMNotificationToken *)notificationToken;", + "key.parsed_scope.end" : 160, + "key.parsed_scope.start" : 160, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)removeNotification:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.line" : 162, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Transactions", + "key.parsed_scope.end" : 162, + "key.parsed_scope.start" : 162 + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.line" : 165, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Writing to a Realm", + "key.parsed_scope.end" : 165, + "key.parsed_scope.start" : 165 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Begins a write transaction in an `RLMRealm`.\n\nOnly one write transaction can be open at a time. Write transactions cannot be\nnested, and trying to begin a write transaction on a `RLMRealm` which is\nalready in a write transaction with throw an exception. Calls to\n`beginWriteTransaction` from `RLMRealm` instances in other threads will block\nuntil the current write transaction completes.\n\nBefore beginning the write transaction, `beginWriteTransaction` updates the\n`RLMRealm` to the latest Realm version, as if refresh was called, and\ngenerates notifications if applicable. This has no effect if the `RLMRealm`\nwas already up to date.\n\nIt is rarely a good idea to have write transactions span multiple cycles of\nthe run loop, but if you do wish to do so you will need to ensure that the\n`RLMRealm` in the write transaction is kept alive until the write transaction\nis committed.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 186, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-beginWriteTransaction", + "key.parsed_declaration" : "- (void)beginWriteTransaction;", + "key.parsed_scope.end" : 186, + "key.parsed_scope.start" : 186, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)beginWriteTransaction" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Commits all writes operations in the current write transaction.\n\nAfter this is called the `RLMRealm` reverts back to being read-only.\n\nCalling this when not in a write transaction will throw an exception.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 195, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-commitWriteTransaction", + "key.parsed_declaration" : "- (void)commitWriteTransaction;", + "key.parsed_scope.end" : 195, + "key.parsed_scope.start" : 195, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)commitWriteTransaction" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Commits all writes operations in the current write transaction.\n\nAfter this is called the `RLMRealm` reverts back to being read-only.\n\nCalling this when not in a write transaction will throw an exception.\n\n- parameter: error If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`.\n\n- returns: Whether the transaction succeeded.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 210, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`." + } + ], + "name" : "error" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Whether the transaction succeeded." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-commitWriteTransaction:", + "key.parsed_declaration" : "- (id)commitWriteTransaction:(id)error;", + "key.parsed_scope.end" : 210, + "key.parsed_scope.start" : 210, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)commitWriteTransaction:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Revert all writes made in the current write transaction and end the transaction.\n\nThis rolls back all objects in the Realm to the state they were in at the\nbeginning of the write transaction, and then ends the transaction.\n\nThis restores the data for deleted objects, but does not re-validated deleted\naccessor objects. Any `RLMObject`s which were added to the Realm will be\ninvalidated rather than switching back to standalone objects.\nGiven the following code:\n\n ObjectType *oldObject = [[ObjectType objectsWhere:@\"...\"] firstObject];\n ObjectType *newObject = [[ObjectType alloc] init];\n\n [realm beginWriteTransaction];\n [realm addObject:newObject];\n [realm deleteObject:oldObject];\n [realm cancelWriteTransaction];\n\nBoth `oldObject` and `newObject` will return `YES` for `isInvalidated`,\nbut re-running the query which provided `oldObject` will once again return\nthe valid object.\n\nCalling this when not in a write transaction will throw an exception.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 237, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-cancelWriteTransaction", + "key.parsed_declaration" : "- (void)cancelWriteTransaction;", + "key.parsed_scope.end" : 237, + "key.parsed_scope.start" : 237, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)cancelWriteTransaction" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Helper to perform a block within a transaction.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 242, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-transactionWithBlock:", + "key.parsed_declaration" : "- (void)transactionWithBlock:(void (^)(void))block;", + "key.parsed_scope.end" : 242, + "key.parsed_scope.start" : 242, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)transactionWithBlock:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Helper to perform a block within a transaction.\n\n- parameter: block The block to perform.\n- parameter: error If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`.\n\n- returns: Whether the transaction succeeded.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 254, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The block to perform.\n" + } + ], + "name" : "block" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`." + } + ], + "name" : "error" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Whether the transaction succeeded." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-transactionWithBlock:error:", + "key.parsed_declaration" : "- (id)transactionWithBlock:(void (^)(void))block error:(id)error;", + "key.parsed_scope.end" : 254, + "key.parsed_scope.start" : 254, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)transactionWithBlock:error:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Update an `RLMRealm` and outstanding objects to point to the most recent data for this `RLMRealm`.\n\n- returns: Whether the realm had any updates. Note that this may return YES even if no data has actually changed.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 261, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Whether the realm had any updates. Note that this may return YES even if no data has actually changed." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-refresh", + "key.parsed_declaration" : "- (id)refresh;", + "key.parsed_scope.end" : 261, + "key.parsed_scope.start" : 261, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)refresh" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 28, + "key.doc.comment" : "Set to YES to automatically update this Realm when changes happen in other threads.\n\nIf set to YES (the default), changes made on other threads will be reflected\nin this Realm on the next cycle of the run loop after the changes are\ncommitted. If set to NO, you must manually call -refresh on the Realm to\nupdate it to get the latest version.\n\nEven with this enabled, you can still call -refresh at any time to update the\nRealm before the automatic refresh would occur.\n\nNotifications are sent when a write transaction is committed whether or not\nthis is enabled.\n\nDisabling this on an `RLMRealm` without any strong references to it will not\nhave any effect, and it will switch back to YES the next time the `RLMRealm`\nobject is created. This is normally irrelevant as it means that there is\nnothing to refresh (as persisted `RLMObject`s, `RLMArray`s, and `RLMResults` have strong\nreferences to the containing `RLMRealm`), but it means that setting\n`RLMRealm.defaultRealm.autorefresh = NO` in\n`application:didFinishLaunchingWithOptions:` and only later storing Realm\nobjects will not work.\n\nDefaults to YES.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 288, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "autorefresh", + "key.parsed_declaration" : "@property (nonatomic, assign, unsafe_unretained, readwrite) int autorefresh;", + "key.parsed_scope.end" : 288, + "key.parsed_scope.start" : 288, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(py)autorefresh" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Write a compacted copy of the RLMRealm to the given path.\n\nThe destination file cannot already exist.\n\nNote that if this is called from within a write transaction it writes the\n*current* data, and not data when the last write transaction was committed.\n\n- parameter: path Path to save the Realm to.\n- parameter: error On input, a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.\n- returns: YES if the realm was copied successfully. Returns NO if an error occurred.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 302, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "Path to save the Realm to.\n" + } + ], + "name" : "path" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "On input, a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.\n" + } + ], + "name" : "error" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "YES if the realm was copied successfully. Returns NO if an error occurred." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-writeCopyToPath:error:", + "key.parsed_declaration" : "- (id)writeCopyToPath:(id)path error:(id)error;", + "key.parsed_scope.end" : 302, + "key.parsed_scope.start" : 302, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)writeCopyToPath:error:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Write an encrypted and compacted copy of the RLMRealm to the given path.\n\nThe destination file cannot already exist.\n\nNote that if this is called from within a write transaction it writes the\n*current* data, and not data when the last write transaction was committed.\n\n- parameter: path Path to save the Realm to.\n- parameter: key 64-byte encryption key to encrypt the new file with\n- parameter: error On input, a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.\n- returns: YES if the realm was copied successfully. Returns NO if an error occurred.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 317, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "Path to save the Realm to.\n" + } + ], + "name" : "path" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "64-byte encryption key to encrypt the new file with\n" + } + ], + "name" : "key" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "On input, a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.\n" + } + ], + "name" : "error" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "YES if the realm was copied successfully. Returns NO if an error occurred." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-writeCopyToPath:encryptionKey:error:", + "key.parsed_declaration" : "- (id)writeCopyToPath:(id)path encryptionKey:(id)key error:(id)error;", + "key.parsed_scope.end" : 317, + "key.parsed_scope.start" : 317, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)writeCopyToPath:encryptionKey:error:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Invalidate all RLMObjects and RLMResults read from this Realm.\n\nAn RLMRealm holds a read lock on the version of the data accessed by it, so\nthat changes made to the Realm on different threads do not modify or delete the\ndata seen by this RLMRealm. Calling this method releases the read lock,\nallowing the space used on disk to be reused by later write transactions rather\nthan growing the file. This method should be called before performing long\nblocking operations on a background thread on which you previously read data\nfrom the Realm which you no longer need.\n\nAll `RLMObject`, `RLMResults` and `RLMArray` instances obtained from this\n`RLMRealm` on the current thread are invalidated, and can not longer be used.\nThe `RLMRealm` itself remains valid, and a new read transaction is implicitly\nbegun the next time data is read from the Realm.\n\nCalling this method multiple times in a row without reading any data from the\nRealm, or before ever reading any data from the Realm is a no-op. This method\ncannot be called on a read-only Realm.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 339, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-invalidate", + "key.parsed_declaration" : "- (void)invalidate;", + "key.parsed_scope.end" : 339, + "key.parsed_scope.start" : 339, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)invalidate" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.line" : 341, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Accessing Objects", + "key.parsed_scope.end" : 341, + "key.parsed_scope.start" : 341 + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.line" : 344, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Adding and Removing Objects from a Realm", + "key.parsed_scope.end" : 344, + "key.parsed_scope.start" : 344 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Adds an object to be persisted it in this Realm.\n\nOnce added, this object can be retrieved using the `objectsWhere:` selectors\non `RLMRealm` and on subclasses of `RLMObject`. When added, all linked (child)\nobjects referenced by this object will also be added to the Realm if they are\nnot already in it. If the object or any linked objects already belong to a\ndifferent Realm an exception will be thrown. Use\n`-[RLMObject createInRealm:withObject]` to insert a copy of a persisted object\ninto a different Realm.\n\nThe object to be added must be valid and cannot have been previously deleted\nfrom a Realm (i.e. `isInvalidated`) must be false.\n\n- parameter: object Object to be added to this Realm.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 362, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "Object to be added to this Realm." + } + ], + "name" : "object" + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-addObject:", + "key.parsed_declaration" : "- (void)addObject:(RLMObject *)object;", + "key.parsed_scope.end" : 362, + "key.parsed_scope.start" : 362, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)addObject:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Adds objects in the given array to be persisted it in this Realm.\n\nThis is the equivalent of `addObject:` except for an array of objects.\n\n- parameter: array An enumerable object such as NSArray or RLMResults which contains objects to be added to\n this Realm.\n\n- see: addObject:", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 374, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An enumerable object such as NSArray or RLMResults which contains objects to be added to\n this Realm." + } + ], + "name" : "array" + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-addObjects:", + "key.parsed_declaration" : "- (void)addObjects:(id)array;", + "key.parsed_scope.end" : 374, + "key.parsed_scope.start" : 374, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)addObjects:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Adds or updates an object to be persisted it in this Realm. The object provided must have a designated\nprimary key. If no objects exist in the RLMRealm instance with the same primary key value, the object is\ninserted. Otherwise, the existing object is updated with any changed values.\n\nAs with `addObject:`, the object cannot already be persisted in a different\nRealm. Use `-[RLMObject createOrUpdateInRealm:withValue:]` to copy values to\na different Realm.\n\n- parameter: object Object to be added or updated.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 387, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "Object to be added or updated." + } + ], + "name" : "object" + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-addOrUpdateObject:", + "key.parsed_declaration" : "- (void)addOrUpdateObject:(RLMObject *)object;", + "key.parsed_scope.end" : 387, + "key.parsed_scope.start" : 387, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)addOrUpdateObject:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Adds or updates objects in the given array to be persisted it in this Realm.\n\nThis is the equivalent of `addOrUpdateObject:` except for an array of objects.\n\n- parameter: array `NSArray`, `RLMArray`, or `RLMResults` of `RLMObject`s (or subclasses) to be added to this Realm.\n\n- see: addOrUpdateObject:", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 398, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "`NSArray`, `RLMArray`, or `RLMResults` of `RLMObject`s (or subclasses) to be added to this Realm." + } + ], + "name" : "array" + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-addOrUpdateObjectsFromArray:", + "key.parsed_declaration" : "- (void)addOrUpdateObjectsFromArray:(id)array;", + "key.parsed_scope.end" : 398, + "key.parsed_scope.start" : 398, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)addOrUpdateObjectsFromArray:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Delete an object from this Realm.\n\n- parameter: object Object to be deleted from this Realm.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 405, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "Object to be deleted from this Realm." + } + ], + "name" : "object" + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-deleteObject:", + "key.parsed_declaration" : "- (void)deleteObject:(RLMObject *)object;", + "key.parsed_scope.end" : 405, + "key.parsed_scope.start" : 405, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)deleteObject:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Delete an `NSArray`, `RLMArray`, or `RLMResults` of objects from this Realm.\n\n- parameter: array `RLMArray`, `NSArray`, or `RLMResults` of `RLMObject`s to be deleted.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 412, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "`RLMArray`, `NSArray`, or `RLMResults` of `RLMObject`s to be deleted." + } + ], + "name" : "array" + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-deleteObjects:", + "key.parsed_declaration" : "- (void)deleteObjects:(id)array;", + "key.parsed_scope.end" : 412, + "key.parsed_scope.start" : 412, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)deleteObjects:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Deletes all objects in this Realm.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 417, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-deleteAllObjects", + "key.parsed_declaration" : "- (void)deleteAllObjects;", + "key.parsed_scope.end" : 417, + "key.parsed_scope.start" : 417, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(im)deleteAllObjects" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.line" : 420, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Migrations", + "key.parsed_scope.end" : 420, + "key.parsed_scope.start" : 420 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 13, + "key.doc.comment" : "Get the schema version for a Realm at a given path.\n\n- parameter: realmPath Path to a Realm file\n- parameter: error If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`.\n\n- returns: The version of the Realm at `realmPath` or RLMNotVersioned if the version cannot be read.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 443, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "Path to a Realm file\n " + } + ], + "name" : "realmPath" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`." + } + ], + "name" : "error" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "The version of the Realm at `realmPath` or RLMNotVersioned if the version cannot be read." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+schemaVersionAtPath:error:", + "key.parsed_declaration" : "+ (id)schemaVersionAtPath:(id)realmPath error:(id)error;", + "key.parsed_scope.end" : 443, + "key.parsed_scope.start" : 443, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(cm)schemaVersionAtPath:error:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 13, + "key.doc.comment" : "Get the schema version for an encrypted Realm at a given path.\n\n- parameter: realmPath Path to a Realm file\n- parameter: key 64-byte encryption key.\n- parameter: error If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`.\n\n- returns: The version of the Realm at `realmPath` or RLMNotVersioned if the version cannot be read.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 456, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "Path to a Realm file\n " + } + ], + "name" : "realmPath" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "64-byte encryption key.\n " + } + ], + "name" : "key" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "If an error occurs, upon return contains an `NSError` object\n that describes the problem. If you are not interested in\n possible errors, pass in `NULL`." + } + ], + "name" : "error" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "The version of the Realm at `realmPath` or RLMNotVersioned if the version cannot be read." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+schemaVersionAtPath:encryptionKey:error:", + "key.parsed_declaration" : "+ (id)schemaVersionAtPath:(id)realmPath encryptionKey:(id)key error:(id)error;", + "key.parsed_scope.end" : 456, + "key.parsed_scope.start" : 456, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(cm)schemaVersionAtPath:encryptionKey:error:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 14, + "key.doc.comment" : "Performs the given Realm configuration's migration block on a Realm at the given path.\n\nThis method is called automatically when opening a Realm for the first time and does\nnot need to be called explicitly. You can choose to call this method to control\nexactly when and how migrations are performed.\n\n- parameter: configuration The Realm configuration used to open and migrate the Realm.\n- returns: The error that occurred while applying the migration, if any.\n\n- see: RLMMigration", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 470, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The Realm configuration used to open and migrate the Realm.\n" + } + ], + "name" : "configuration" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "The error that occurred while applying the migration, if any." + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+migrateRealm:", + "key.parsed_declaration" : "+ (id)migrateRealm:(RLMRealmConfiguration *)configuration;", + "key.parsed_scope.end" : 470, + "key.parsed_scope.start" : 470, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm(cm)migrateRealm:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealm" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.line" : 127, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.typedef", + "key.name" : "RLMNotificationBlock", + "key.parsed_declaration" : "typedef void(^RLMNotificationBlock)(NSString *notification, RLMRealm *realm)", + "key.parsed_scope.end" : 127, + "key.parsed_scope.start" : 127, + "key.unavailable_message" : "", + "key.usr" : "c:RLMRealm.h@T@RLMNotificationBlock" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 16, + "key.doc.comment" : "Migration block used to migrate a Realm.\n\n- parameter: migration `RLMMigration` object used to perform the migration. The\n migration object allows you to enumerate and alter any\n existing objects which require migration.\n\n- parameter: oldSchemaVersion The schema version of the `RLMRealm` being migrated.", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 431, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "`RLMMigration` object used to perform the migration. The\n migration object allows you to enumerate and alter any\n existing objects which require migration." + } + ], + "name" : "migration" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The schema version of the `RLMRealm` being migrated." + } + ], + "name" : "oldSchemaVersion" + } + ], + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.typedef", + "key.name" : "RLMMigrationBlock", + "key.parsed_declaration" : "typedef void (^RLMMigrationBlock)(RLMMigration *, int)", + "key.parsed_scope.end" : 431, + "key.parsed_scope.start" : 431, + "key.unavailable_message" : "", + "key.usr" : "c:RLMRealm.h@T@RLMMigrationBlock" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "Notification token - holds onto the realm and the notification block", + "key.doc.file" : "Realm\/RLMRealm.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 477, + "key.filepath" : "Realm\/RLMRealm.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMNotificationToken", + "key.parsed_declaration" : "@interface RLMNotificationToken", + "key.parsed_scope.end" : 478, + "key.parsed_scope.start" : 477, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMNotificationToken" + } + ] + } + }, + { + "Realm\/RLMRealmConfiguration.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "An `RLMRealmConfiguration` is used to describe the different options used to\ncreate an `RLMRealm` instance.", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 28, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMRealmConfiguration", + "key.parsed_declaration" : "@interface RLMRealmConfiguration", + "key.parsed_scope.end" : 70, + "key.parsed_scope.start" : 28, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.line" : 30, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Default Configuration", + "key.parsed_scope.end" : 30, + "key.parsed_scope.start" : 30 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "Returns the default configuration used to create Realms when no other\nconfiguration is explicitly specified (i.e. `+[RLMRealm defaultRealm]`).\n\n- returns: The default Realm configuration.", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 38, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "The default Realm configuration." + } + ], + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+defaultConfiguration", + "key.parsed_declaration" : "+ (instancetype)defaultConfiguration;", + "key.parsed_scope.end" : 38, + "key.parsed_scope.start" : 38, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration(cm)defaultConfiguration" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Sets the default configuration to the given `RLMRealmConfiguration`.\n\n- parameter: configuration The new default Realm configuration.", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 45, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The new default Realm configuration." + } + ], + "name" : "configuration" + } + ], + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+setDefaultConfiguration:", + "key.parsed_declaration" : "+ (void)setDefaultConfiguration:(RLMRealmConfiguration *)configuration;", + "key.parsed_scope.end" : 45, + "key.parsed_scope.start" : 45, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration(cm)setDefaultConfiguration:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.line" : 47, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 47, + "key.parsed_scope.start" : 47 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 49, + "key.doc.comment" : "The path to the realm file. Mutually exclusive with `inMemoryIdentifier`.", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 50, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "path", + "key.parsed_declaration" : "@property (nonatomic, copy, nullable) NSString *path", + "key.parsed_scope.end" : 50, + "key.parsed_scope.start" : 50, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration(py)path" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 49, + "key.doc.comment" : "A string used to identify a particular in-memory Realm. Mutually exclusive with `path`.", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 53, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "inMemoryIdentifier", + "key.parsed_declaration" : "@property (nonatomic, copy, nullable) NSString *inMemoryIdentifier", + "key.parsed_scope.end" : 53, + "key.parsed_scope.start" : 53, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration(py)inMemoryIdentifier" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 47, + "key.doc.comment" : "64-byte key to use to encrypt the data.", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 56, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "encryptionKey", + "key.parsed_declaration" : "@property (nonatomic, copy, nullable) NSData *encryptionKey", + "key.parsed_scope.end" : 56, + "key.parsed_scope.start" : 56, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration(py)encryptionKey" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 28, + "key.doc.comment" : "Whether the Realm is read-only (must be YES for read-only files).", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 59, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "readOnly", + "key.parsed_declaration" : "@property (nonatomic, assign, unsafe_unretained, readwrite) int readOnly;", + "key.parsed_scope.end" : 59, + "key.parsed_scope.start" : 59, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration(py)readOnly" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 32, + "key.doc.comment" : "The current schema version.", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 62, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "schemaVersion", + "key.parsed_declaration" : "@property (nonatomic, assign, unsafe_unretained, readwrite) int schemaVersion;", + "key.parsed_scope.end" : 62, + "key.parsed_scope.start" : 62, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration(py)schemaVersion" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 57, + "key.doc.comment" : "The block which migrates the Realm to the current version.", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 65, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "migrationBlock", + "key.parsed_declaration" : "@property (nonatomic, copy, readwrite, nullable)\n RLMMigrationBlock migrationBlock;", + "key.parsed_scope.end" : 65, + "key.parsed_scope.start" : 65, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration(py)migrationBlock" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 48, + "key.doc.comment" : "The classes persisted in the Realm.", + "key.doc.file" : "Realm\/RLMRealmConfiguration.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 68, + "key.filepath" : "Realm\/RLMRealmConfiguration.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "objectClasses", + "key.parsed_declaration" : "@property (nonatomic, copy, nullable) NSArray *objectClasses", + "key.parsed_scope.end" : 68, + "key.parsed_scope.start" : 68, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration(py)objectClasses" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMRealmConfiguration" + } + ] + } + }, + { + "Realm\/RLMResults.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "RLMResults is an auto-updating container type in Realm returned from object\nqueries.\n\nRLMResults can be queried with the same predicates as RLMObject and RLMArray\nand you can chain queries to further filter query results.\n\nRLMResults cannot be created directly.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 36, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMResults", + "key.parsed_declaration" : "@interface RLMResults ", + "key.parsed_scope.end" : 225, + "key.parsed_scope.start" : 36, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.line" : 38, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 38, + "key.parsed_scope.start" : 38 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 52, + "key.doc.comment" : "Number of objects in the results.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 43, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "count", + "key.parsed_declaration" : "@property (nonatomic, assign, unsafe_unretained, readonly) int count;", + "key.parsed_scope.end" : 43, + "key.parsed_scope.start" : 43, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(py)count" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 49, + "key.doc.comment" : "The class name (i.e. type) of the RLMObjects contained in this RLMResults.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 48, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "objectClassName", + "key.parsed_declaration" : "@property (nonatomic, readonly, copy) NSString *objectClassName", + "key.parsed_scope.end" : 48, + "key.parsed_scope.start" : 48, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(py)objectClassName" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 43, + "key.doc.comment" : "The Realm this `RLMResults` is associated with.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 53, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "realm", + "key.parsed_declaration" : "@property (nonatomic, readonly) RLMRealm *realm;", + "key.parsed_scope.end" : 53, + "key.parsed_scope.start" : 53, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(py)realm" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.line" : 55, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Accessing Objects from an RLMResults", + "key.parsed_scope.end" : 55, + "key.parsed_scope.start" : 55 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 18, + "key.doc.comment" : "Returns the object at the index specified.\n\n- parameter: index The index to look up.\n\n- returns: An RLMObject of the class contained by this RLMResults.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 64, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The index to look up." + } + ], + "name" : "index" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMResults." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectAtIndex:", + "key.parsed_declaration" : "- (RLMObjectType)objectAtIndex:(id)index;", + "key.parsed_scope.end" : 64, + "key.parsed_scope.start" : 64, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)objectAtIndex:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 27, + "key.doc.comment" : "Returns the first object in the results.\n\nReturns `nil` if called on an empty RLMResults.\n\n- returns: An RLMObject of the class contained by this RLMResults.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 73, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMResults." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-firstObject", + "key.parsed_declaration" : "- (nullable RLMObjectType)firstObject;", + "key.parsed_scope.end" : 73, + "key.parsed_scope.start" : 73, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)firstObject" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 27, + "key.doc.comment" : "Returns the last object in the results.\n\nReturns `nil` if called on an empty RLMResults.\n\n- returns: An RLMObject of the class contained by this RLMResults.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 82, + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMObject of the class contained by this RLMResults." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-lastObject", + "key.parsed_declaration" : "- (nullable RLMObjectType)lastObject;", + "key.parsed_scope.end" : 82, + "key.parsed_scope.start" : 82, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)lastObject" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.line" : 87, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Querying Results", + "key.parsed_scope.end" : 87, + "key.parsed_scope.start" : 87 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Gets the index of an object.\n\nReturns NSNotFound if the object is not found in this RLMResults.\n\n- parameter: object An object (of the same type as returned from the objectClassName selector).", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 96, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An object (of the same type as returned from the objectClassName selector)." + } + ], + "name" : "object" + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-indexOfObject:", + "key.parsed_declaration" : "- (id)indexOfObject:(RLMObjectType)object;", + "key.parsed_scope.end" : 96, + "key.parsed_scope.start" : 96, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)indexOfObject:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Gets the index of the first object matching the predicate.\n\n- parameter: predicateFormat The predicate format string which can accept variable arguments.\n\n- returns: Index of object or NSNotFound if the object is not found in this RLMResults.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 105, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate format string which can accept variable arguments." + } + ], + "name" : "predicateFormat" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Index of object or NSNotFound if the object is not found in this RLMResults." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-indexOfObjectWhere:", + "key.parsed_declaration" : "- (id)indexOfObjectWhere:(id)predicateFormat, ...;", + "key.parsed_scope.end" : 105, + "key.parsed_scope.start" : 105, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)indexOfObjectWhere:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Gets the index of the first object matching the predicate.\n\n- parameter: predicate The predicate to filter the objects.\n\n- returns: Index of object or NSNotFound if the object is not found in this RLMResults.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 114, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate to filter the objects." + } + ], + "name" : "predicate" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "Index of object or NSNotFound if the object is not found in this RLMResults." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-indexOfObjectWithPredicate:", + "key.parsed_declaration" : "- (id)indexOfObjectWithPredicate:(id)predicate;", + "key.parsed_scope.end" : 114, + "key.parsed_scope.start" : 114, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)indexOfObjectWithPredicate:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 35, + "key.doc.comment" : "Get objects matching the given predicate in the RLMResults.\n\n- parameter: predicateFormat The predicate format string which can accept variable arguments.\n\n- returns: An RLMResults of objects that match the given predicate", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 123, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate format string which can accept variable arguments." + } + ], + "name" : "predicateFormat" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectsWhere:", + "key.parsed_declaration" : "- (RLMResults *)objectsWhere:(id)predicateFormat, ...;", + "key.parsed_scope.end" : 123, + "key.parsed_scope.start" : 123, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)objectsWhere:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 35, + "key.doc.comment" : "Get objects matching the given predicate in the RLMResults.\n\n- parameter: predicate The predicate to filter the objects.\n\n- returns: An RLMResults of objects that match the given predicate", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 132, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The predicate to filter the objects." + } + ], + "name" : "predicate" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults of objects that match the given predicate" + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectsWithPredicate:", + "key.parsed_declaration" : "- (RLMResults *)objectsWithPredicate:(id)predicate;", + "key.parsed_scope.end" : 132, + "key.parsed_scope.start" : 132, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)objectsWithPredicate:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 35, + "key.doc.comment" : "Get a sorted `RLMResults` from an existing `RLMResults` sorted by a property.\n\n- parameter: property The property name to sort by.\n- parameter: ascending The direction to sort by.\n\n- returns: An RLMResults sorted by the specified property.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 142, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The property name to sort by.\n " + } + ], + "name" : "property" + }, + { + "discussion" : [ + { + "kind" : "", + "Para" : "The direction to sort by." + } + ], + "name" : "ascending" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults sorted by the specified property." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-sortedResultsUsingProperty:ascending:", + "key.parsed_declaration" : "- (RLMResults *)sortedResultsUsingProperty:(id)property\n ascending:(id)ascending;", + "key.parsed_scope.end" : 142, + "key.parsed_scope.start" : 142, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)sortedResultsUsingProperty:ascending:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 35, + "key.doc.comment" : "Get a sorted `RLMResults` from an existing `RLMResults` sorted by an `NSArray`` of `RLMSortDescriptor`s.\n\n- parameter: properties An array of `RLMSortDescriptor`s to sort by.\n\n- returns: An RLMResults sorted by the specified properties.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 151, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "An array of `RLMSortDescriptor`s to sort by." + } + ], + "name" : "properties" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "An RLMResults sorted by the specified properties." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-sortedResultsUsingDescriptors:", + "key.parsed_declaration" : "- (RLMResults *)sortedResultsUsingDescriptors:(id)properties;", + "key.parsed_scope.end" : 151, + "key.parsed_scope.start" : 151, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)sortedResultsUsingDescriptors:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.line" : 154, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Aggregating Property Values", + "key.parsed_scope.end" : 154, + "key.parsed_scope.start" : 154 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Returns the minimum (lowest) value of the given property\n\n NSNumber *min = [results minOfProperty:@\"age\"];\n\n- warning: You cannot use this method on RLMObject, RLMArray, and NSData properties.\n\n- parameter: property The property to look for a minimum on. Only properties of type int, float, double and NSDate are supported.\n\n- returns: The minimum value for the property amongst objects in an RLMResults.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 167, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The property to look for a minimum on. Only properties of type int, float, double and NSDate are supported." + } + ], + "name" : "property" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "The minimum value for the property amongst objects in an RLMResults." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-minOfProperty:", + "key.parsed_declaration" : "- (nullable id)minOfProperty:(id)property;", + "key.parsed_scope.end" : 167, + "key.parsed_scope.start" : 167, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)minOfProperty:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 15, + "key.doc.comment" : "Returns the maximum (highest) value of the given property of objects in an RLMResults\n\n NSNumber *max = [results maxOfProperty:@\"age\"];\n\n- warning: You cannot use this method on RLMObject, RLMArray, and NSData properties.\n\n- parameter: property The property to look for a maximum on. Only properties of type int, float, double and NSDate are supported.\n\n- returns: The maximum value for the property amongst objects in an RLMResults", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 180, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The property to look for a maximum on. Only properties of type int, float, double and NSDate are supported." + } + ], + "name" : "property" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "The maximum value for the property amongst objects in an RLMResults" + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-maxOfProperty:", + "key.parsed_declaration" : "- (nullable id)maxOfProperty:(id)property;", + "key.parsed_scope.end" : 180, + "key.parsed_scope.start" : 180, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)maxOfProperty:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 14, + "key.doc.comment" : "Returns the sum of the given property for objects in an RLMResults.\n\n NSNumber *sum = [results sumOfProperty:@\"age\"];\n\n- warning: You cannot use this method on RLMObject, RLMArray, and NSData properties.\n\n- parameter: property The property to calculate sum on. Only properties of type int, float and double are supported.\n\n- returns: The sum of the given property over all objects in an RLMResults.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 193, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The property to calculate sum on. Only properties of type int, float and double are supported." + } + ], + "name" : "property" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "The sum of the given property over all objects in an RLMResults." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-sumOfProperty:", + "key.parsed_declaration" : "- (id)sumOfProperty:(id)property;", + "key.parsed_scope.end" : 193, + "key.parsed_scope.start" : 193, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)sumOfProperty:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 23, + "key.doc.comment" : "Returns the average of a given property for objects in an RLMResults.\n\n NSNumber *average = [results averageOfProperty:@\"age\"];\n\n- warning: You cannot use this method on RLMObject, RLMArray, and NSData properties.\n\n- parameter: property The property to calculate average on. Only properties of type int, float and double are supported.\n\n- returns: The average for the given property amongst objects in an RLMResults. This will be of type double for both\nfloat and double properties.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 207, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The property to calculate average on. Only properties of type int, float and double are supported." + } + ], + "name" : "property" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : " The average for the given property amongst objects in an RLMResults. This will be of type double for both\nfloat and double properties." + } + ], + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-averageOfProperty:", + "key.parsed_declaration" : "- (id)averageOfProperty:(id)property;", + "key.parsed_scope.end" : 207, + "key.parsed_scope.start" : 207, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)averageOfProperty:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 7, + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.line" : 209, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectAtIndexedSubscript:", + "key.parsed_declaration" : "- (id)objectAtIndexedSubscript:(NSUInteger)index;", + "key.parsed_scope.end" : 209, + "key.parsed_scope.start" : 209, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults(im)objectAtIndexedSubscript:" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.line" : 211, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Unavailable Methods", + "key.parsed_scope.end" : 211, + "key.parsed_scope.start" : 211 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : true, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "-[RLMResults init] is not available because RLMResults cannot be created directly.\nRLMResults can be obtained by querying a Realm.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 217, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-init", + "key.parsed_declaration" : "- (instancetype)init;", + "key.parsed_scope.end" : 217, + "key.parsed_scope.start" : 217, + "key.unavailable_message" : "RLMResults cannot be created directly", + "key.usr" : "c:objc(cs)RLMResults(im)init" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : true, + "key.deprecation_message" : "", + "key.doc.column" : 17, + "key.doc.comment" : "+[RLMResults new] is not available because RLMResults cannot be created directly.\nRLMResults can be obtained by querying a Realm.", + "key.doc.file" : "Realm\/RLMResults.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 223, + "key.filepath" : "Realm\/RLMResults.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.class", + "key.name" : "+new", + "key.parsed_declaration" : "+ (instancetype)new;", + "key.parsed_scope.end" : 223, + "key.parsed_scope.start" : 223, + "key.unavailable_message" : "RLMResults cannot be created directly", + "key.usr" : "c:objc(cs)RLMResults(cm)new" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMResults" + } + ] + } + }, + { + "Realm\/RLMSchema.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "This class represents the collection of model object schemas persisted to Realm.\n\nWhen using Realm, RLMSchema objects allow performing migrations and\nintrospecting the database's schema.\n\nSchemas map to collections of tables in the core database.", + "key.doc.file" : "Realm\/RLMSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 34, + "key.filepath" : "Realm\/RLMSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "RLMSchema", + "key.parsed_declaration" : "@interface RLMSchema", + "key.parsed_scope.end" : 74, + "key.parsed_scope.start" : 34, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMSchema.h", + "key.doc.line" : 36, + "key.filepath" : "Realm\/RLMSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Properties", + "key.parsed_scope.end" : 36, + "key.parsed_scope.start" : 36 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 48, + "key.doc.comment" : "An NSArray containing RLMObjectSchema's for all object types in this Realm. Meant\nto be used during migrations for dynamic introspection.\n\n- see: RLMObjectSchema", + "key.doc.file" : "Realm\/RLMSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 44, + "key.filepath" : "Realm\/RLMSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.property", + "key.name" : "objectSchema", + "key.parsed_declaration" : "@property (nonatomic, readonly, copy) NSArray *objectSchema", + "key.parsed_scope.end" : 44, + "key.parsed_scope.start" : 44, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSchema(py)objectSchema" + }, + { + "key.doc.column" : 1, + "key.doc.file" : "Realm\/RLMSchema.h", + "key.doc.line" : 46, + "key.filepath" : "Realm\/RLMSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "Methods", + "key.parsed_scope.end" : 46, + "key.parsed_scope.start" : 46 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 31, + "key.doc.comment" : "Returns an RLMObjectSchema for the given class name in this RLMSchema.\n\n- parameter: className The object class name.\n- returns: RLMObjectSchema for the given class in this RLMSchema.\n\n- see: RLMObjectSchema", + "key.doc.file" : "Realm\/RLMSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 56, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The object class name.\n " + } + ], + "name" : "className" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "RLMObjectSchema for the given class in this RLMSchema." + } + ], + "key.filepath" : "Realm\/RLMSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-schemaForClassName:", + "key.parsed_declaration" : "- (nullable RLMObjectSchema *)schemaForClassName:(id)className;", + "key.parsed_scope.end" : 56, + "key.parsed_scope.start" : 56, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSchema(im)schemaForClassName:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 22, + "key.doc.comment" : "Look up an RLMObjectSchema for the given class name in this Realm. Throws if there\nis no object of type className in this RLMSchema instance.\n\n- parameter: className The object class name.\n- returns: RLMObjectSchema for the given class in this Realm.\n\n- see: RLMObjectSchema", + "key.doc.file" : "Realm\/RLMSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 67, + "key.doc.parameters" : [ + { + "discussion" : [ + { + "kind" : "", + "Para" : "The object class name.\n " + } + ], + "name" : "className" + } + ], + "key.doc.result_discussion" : [ + { + "kind" : "", + "Para" : "RLMObjectSchema for the given class in this Realm." + } + ], + "key.filepath" : "Realm\/RLMSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-objectForKeyedSubscript:", + "key.parsed_declaration" : "- (RLMObjectSchema *)objectForKeyedSubscript:(id)className;", + "key.parsed_scope.end" : 67, + "key.parsed_scope.start" : 67, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSchema(im)objectForKeyedSubscript:" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.comment" : "Returns YES if schema are equal", + "key.doc.file" : "Realm\/RLMSchema.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 72, + "key.filepath" : "Realm\/RLMSchema.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-isEqualToSchema:", + "key.parsed_declaration" : "- (id)isEqualToSchema:(RLMSchema *)schema;", + "key.parsed_scope.end" : 72, + "key.parsed_scope.start" : 72, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSchema(im)isEqualToSchema:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)RLMSchema" + } + ] + } + } +] diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/WindowsSuperScript@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsSuperScript@swift-5.9.json new file mode 100644 index 00000000..fe73e87d --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsSuperScript@swift-5.9.json @@ -0,0 +1,57 @@ +[ + { + "SuperScript.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 12, + "key.doc.comment" : "ᴬ \tᴮ \t\tᴰ \tᴱ \t\tᴳ \tᴴ \tᴵ \tᴶ \tᴷ \tᴸ \tᴹ \tᴺ \tᴼ \tᴾ \t\tᴿ \t\tᵀ \tᵁ \tⱽ \tᵂ", + "key.doc.file" : "SuperScript.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 6, + "key.filepath" : "SuperScript.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.class", + "key.name" : "SuperScript", + "key.parsed_declaration" : "@interface SuperScript", + "key.parsed_scope.end" : 15, + "key.parsed_scope.start" : 6, + "key.substructure" : [ + { + "key.doc.column" : 1, + "key.doc.file" : "SuperScript.h", + "key.doc.line" : 8, + "key.filepath" : "SuperScript.h", + "key.kind" : "sourcekitten.source.lang.objc.mark", + "key.name" : "ᵃ\tᵇ\tᶜ\tᵈ\tᵉ\tᶠ\tᵍ\tʰ\tⁱ\tʲ\tᵏ\tˡ\tᵐ\tⁿ\tᵒ\tᵖ\t\tʳ\tˢ\tᵗ\tᵘ\tᵛ\tʷ\tˣ\tʸ\tᶻ", + "key.parsed_scope.end" : 8, + "key.parsed_scope.start" : 8 + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 13, + "key.doc.comment" : "ᵝ \tᵞ \tᵟ \tᵋ \t\t\tᶿ \tᶥ \t\t\t\t\t\t\t\t\t\t\tᶹ \tᵠ \tᵡ", + "key.doc.file" : "SuperScript.h", + "key.doc.full_as_xml" : "", + "key.doc.line" : 13, + "key.filepath" : "SuperScript.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.method.instance", + "key.name" : "-superSize:", + "key.parsed_declaration" : "- (void)superSize:(id)sender;", + "key.parsed_scope.end" : 13, + "key.parsed_scope.start" : 13, + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)SuperScript(im)superSize:" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:objc(cs)SuperScript" + } + ] + } + } +] diff --git a/Tests/SourceKittenFrameworkTests/Fixtures/WindowsUnion@swift-5.9.json b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsUnion@swift-5.9.json new file mode 100644 index 00000000..4a081d5c --- /dev/null +++ b/Tests/SourceKittenFrameworkTests/Fixtures/WindowsUnion@swift-5.9.json @@ -0,0 +1,127 @@ +[ + { + "Union.h" : { + "key.diagnostic_stage" : "", + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.file" : "Union.h", + "key.doc.line" : 1, + "key.filepath" : "Union.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.union", + "key.name" : "VALUE", + "key.parsed_declaration" : "union { double a; int b; }", + "key.parsed_scope.end" : 1, + "key.parsed_scope.start" : 1, + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 25, + "key.doc.file" : "Union.h", + "key.doc.line" : 1, + "key.filepath" : "Union.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.field", + "key.name" : "a", + "key.parsed_declaration" : "double a", + "key.parsed_scope.end" : 1, + "key.parsed_scope.start" : 1, + "key.unavailable_message" : "", + "key.usr" : "c:@UA@VALUE@FI@a" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 33, + "key.doc.file" : "Union.h", + "key.doc.line" : 1, + "key.filepath" : "Union.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.field", + "key.name" : "b", + "key.parsed_declaration" : "int b", + "key.parsed_scope.end" : 1, + "key.parsed_scope.start" : 1, + "key.unavailable_message" : "", + "key.usr" : "c:@UA@VALUE@FI@b" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:@UA@VALUE" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 38, + "key.doc.file" : "Union.h", + "key.doc.line" : 1, + "key.filepath" : "Union.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.typedef", + "key.name" : "VALUE", + "key.parsed_declaration" : "typedef union { double a; int b; } VALUE", + "key.parsed_scope.end" : 1, + "key.parsed_scope.start" : 1, + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 9, + "key.doc.file" : "Union.h", + "key.doc.line" : 1, + "key.filepath" : "Union.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.union", + "key.name" : "VALUE", + "key.parsed_declaration" : "union { double a; int b; }", + "key.parsed_scope.end" : 1, + "key.parsed_scope.start" : 1, + "key.substructure" : [ + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 25, + "key.doc.file" : "Union.h", + "key.doc.line" : 1, + "key.filepath" : "Union.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.field", + "key.name" : "a", + "key.parsed_declaration" : "double a", + "key.parsed_scope.end" : 1, + "key.parsed_scope.start" : 1, + "key.unavailable_message" : "", + "key.usr" : "c:@UA@VALUE@FI@a" + }, + { + "key.always_deprecated" : false, + "key.always_unavailable" : false, + "key.deprecation_message" : "", + "key.doc.column" : 33, + "key.doc.file" : "Union.h", + "key.doc.line" : 1, + "key.filepath" : "Union.h", + "key.kind" : "sourcekitten.source.lang.objc.decl.field", + "key.name" : "b", + "key.parsed_declaration" : "int b", + "key.parsed_scope.end" : 1, + "key.parsed_scope.start" : 1, + "key.unavailable_message" : "", + "key.usr" : "c:@UA@VALUE@FI@b" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:@UA@VALUE" + } + ], + "key.unavailable_message" : "", + "key.usr" : "c:@T@VALUE" + } + ] + } + } +] diff --git a/Tests/SourceKittenFrameworkTests/ModuleTests.swift b/Tests/SourceKittenFrameworkTests/ModuleTests.swift index d5f25efb..e7c9cff6 100644 --- a/Tests/SourceKittenFrameworkTests/ModuleTests.swift +++ b/Tests/SourceKittenFrameworkTests/ModuleTests.swift @@ -10,7 +10,7 @@ let projectRoot: String = bazelProjectRoot ?? #file.bridge() class ModuleTests: XCTestCase { -#if !os(Linux) +#if os(macOS) func testModuleNilInPathWithNoXcodeProject() { let pathWithNoXcodeProject = (#file as NSString).deletingLastPathComponent @@ -22,8 +22,8 @@ class ModuleTests: XCTestCase { let temporaryURL = URL(fileURLWithPath: NSTemporaryDirectory()) .appendingPathComponent("\(#function)-\(NSUUID())") try FileManager.default.createDirectory(at: temporaryURL, withIntermediateDirectories: true) - let cloneArguments = ["git", "clone", "https://github.com/Carthage/Commandant.git"] - let cloneResult = Exec.run("/usr/bin/env", cloneArguments, currentDirectory: temporaryURL.path) + let cloneArguments = ["clone", "https://github.com/Carthage/Commandant.git"] + let cloneResult = Exec.run("C:\\Program Files\\Git\\cmd\\git.exe", cloneArguments, currentDirectory: temporaryURL.path) guard cloneResult.terminationStatus == 0 else { XCTFail("`\(cloneArguments.joined(separator: " "))` failed: \(cloneResult.terminationStatus)") return @@ -31,15 +31,15 @@ class ModuleTests: XCTestCase { let commandantPath = temporaryURL.appendingPathComponent("Commandant").path - let checkoutArguments = ["git", "checkout", "0.17.0"] - let checkoutResult = Exec.run("/usr/bin/env", checkoutArguments, currentDirectory: commandantPath) + let checkoutArguments = ["checkout", "0.17.0"] + let checkoutResult = Exec.run("C:\\Program Files\\Git\\cmd\\git.exe", checkoutArguments, currentDirectory: commandantPath) guard checkoutResult.terminationStatus == 0 else { XCTFail("`\(checkoutArguments.joined(separator: " "))` failed: \(checkoutResult.terminationStatus)") return } - let submoduleArguments = ["git", "submodule", "update", "--init", "--recursive"] - let submoduleResult = Exec.run("/usr/bin/env", submoduleArguments, currentDirectory: commandantPath) + let submoduleArguments = ["submodule", "update", "--init", "--recursive"] + let submoduleResult = Exec.run("C:\\Program Files\\Git\\cmd\\git.exe", submoduleArguments, currentDirectory: commandantPath) guard submoduleResult.terminationStatus == 0 else { XCTFail("`\(submoduleArguments.joined(separator: " "))` failed: \(submoduleResult.terminationStatus)") return @@ -57,8 +57,8 @@ class ModuleTests: XCTestCase { let temporaryURL = URL(fileURLWithPath: NSTemporaryDirectory()) .appendingPathComponent("\(#function)-\(NSUUID())") try FileManager.default.createDirectory(at: temporaryURL, withIntermediateDirectories: true) - let cloneArguments = ["git", "clone", "https://github.com/Carthage/Commandant.git"] - let cloneResult = Exec.run("/usr/bin/env", cloneArguments, currentDirectory: temporaryURL.path) + let cloneArguments = ["clone", "https://github.com/Carthage/Commandant.git"] + let cloneResult = Exec.run("C:\\Program Files\\Git\\cmd\\git.exe", cloneArguments, currentDirectory: temporaryURL.path) guard cloneResult.terminationStatus == 0 else { XCTFail("`\(cloneArguments.joined(separator: " "))` failed: \(cloneResult.terminationStatus)") return @@ -66,8 +66,8 @@ class ModuleTests: XCTestCase { let commandantPath = temporaryURL.appendingPathComponent("Commandant").path - let checkoutArguments = ["git", "checkout", "0.17.0"] - let checkoutResult = Exec.run("/usr/bin/env", checkoutArguments, currentDirectory: commandantPath) + let checkoutArguments = ["checkout", "0.17.0"] + let checkoutResult = Exec.run("C:\\Program Files\\Git\\cmd\\git.exe", checkoutArguments, currentDirectory: commandantPath) guard checkoutResult.terminationStatus == 0 else { XCTFail("`\(checkoutArguments.joined(separator: " "))` failed: \(checkoutResult.terminationStatus)") return diff --git a/Tests/SourceKittenFrameworkTests/SourceKitObjectTests.swift b/Tests/SourceKittenFrameworkTests/SourceKitObjectTests.swift index 962edda3..3aa7fafd 100644 --- a/Tests/SourceKittenFrameworkTests/SourceKitObjectTests.swift +++ b/Tests/SourceKittenFrameworkTests/SourceKitObjectTests.swift @@ -1,10 +1,13 @@ +import Foundation import SourceKittenFramework import XCTest class SourceKitObjectTests: XCTestCase { func testExample() { - let path = #file + let path = + URL(fileURLWithPath: #file) + .withUnsafeFileSystemRepresentation { String(cString: $0!) } let object: SourceKitObject = [ "key.request": UID("source.request.editor.open"), "key.name": path, @@ -13,8 +16,8 @@ class SourceKitObjectTests: XCTestCase { let expected = """ { key.request: source.request.editor.open, - key.name: \"\(#file)\", - key.sourcefile: \"\(#file)\" + key.name: \"\((#file).replacingOccurrences(of: "\\", with: "\\\\"))\", + key.sourcefile: \"\((#file).replacingOccurrences(of: "\\", with: "\\\\"))\" } """ XCTAssertEqual(object.description, expected) diff --git a/Tests/SourceKittenFrameworkTests/SwiftDocsTests.swift b/Tests/SourceKittenFrameworkTests/SwiftDocsTests.swift index 40ce6266..9b38855d 100644 --- a/Tests/SourceKittenFrameworkTests/SwiftDocsTests.swift +++ b/Tests/SourceKittenFrameworkTests/SwiftDocsTests.swift @@ -2,19 +2,32 @@ import Foundation @testable import SourceKittenFramework import XCTest +extension FileManager { + #if os(Windows) + static let pathSeparator = "\\" + #else + static let pathSeparator = "/" + #endif +} + func compareJSONString(withFixtureNamed name: String, jsonString: CustomStringConvertible, rootDirectory: String = fixturesDirectory, file: StaticString = #file, line: UInt = #line) { + let jsonString = String(describing: jsonString) + // Strip out fixtures directory since it's dependent on the test machine's setup - let escapedFixturesDirectory = rootDirectory.replacingOccurrences(of: "/", with: "\\/") - let jsonString = String(describing: jsonString).replacingOccurrences(of: escapedFixturesDirectory, with: "") + let escapedFixturesDirectory = URL(fileURLWithPath: rootDirectory).standardizedFileURL.withUnsafeFileSystemRepresentation { + String(cString: $0!) + FileManager.pathSeparator + }.replacingOccurrences(of: "\\", with: "\\\\").replacingOccurrences(of: "/", with: "\\/") + + let escapedJSONString = jsonString.replacingOccurrences(of: escapedFixturesDirectory, with: "") // Strip out any other absolute paths after that, since it's also dependent on the test machine's setup let absolutePathRegex = try! NSRegularExpression(pattern: "\"key\\.filepath\" : \"\\\\/[^\\\n]+", options: []) - let actualContent = absolutePathRegex.stringByReplacingMatches(in: jsonString, options: [], - range: NSRange(location: 0, length: jsonString.bridge().length), + let actualContent = absolutePathRegex.stringByReplacingMatches(in: escapedJSONString, options: [], + range: NSRange(location: 0, length: escapedJSONString.bridge().length), withTemplate: "\"key\\.filepath\" : \"\",") let expectedFile = File(path: versionedExpectedFilename(for: name))! @@ -102,7 +115,7 @@ private func diff(original: String, modified: String) -> String { try original.data(using: .utf8)?.write(to: url.appendingPathComponent("original.json")) try modified.data(using: .utf8)?.write(to: url.appendingPathComponent("modified.json")) - return Exec.run("/usr/bin/env", "git", "diff", "original.json", "modified.json", + return Exec.run("C:\\Program Files\\Git\\cmd\\git.exe", "diff", "original.json", "modified.json", currentDirectory: url.path).string ?? "" } catch { return "\(error)"