From 01050e89ce03f48fa663c64a827b11fd0d13386f Mon Sep 17 00:00:00 2001 From: Alex Odawa Date: Wed, 27 May 2026 18:30:28 +0200 Subject: [PATCH 1/2] Scrub local paths from generated docs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Stop tracking docs/JSON/*.json. Sourcekitten embeds the absolute build path in every key.filepath entry (~3400 per file), so each release commit churned ~5900 lines and leaked the releaser's home directory. The JSON is intermediate sourcekitten output that jazzy consumes — it doesn't need to be in version control. Most popular Swift libraries (RxSwift, Alamofire, swift-protobuf, Blueprint) don't commit it either. - Stop tracking docs/**/undocumented.json. Jazzy writes the absolute build path into source_directory; the file is otherwise empty. --- .gitignore | 8 +- Scripts/generate_docs.sh | 3 + docs/BlueprintLists/undocumented.json | 4 - docs/JSON/BlueprintUILists.json | 7235 -- docs/JSON/ListableUI.json | 119912 ----------------------- docs/Listable/undocumented.json | 4 - 6 files changed, 10 insertions(+), 127156 deletions(-) delete mode 100644 docs/BlueprintLists/undocumented.json delete mode 100644 docs/JSON/BlueprintUILists.json delete mode 100644 docs/JSON/ListableUI.json delete mode 100644 docs/Listable/undocumented.json diff --git a/.gitignore b/.gitignore index 99e38cb03..1714c7be2 100644 --- a/.gitignore +++ b/.gitignore @@ -71,4 +71,10 @@ fastlane/test_output /build/XCBuildData # Test results -/*.xcresult \ No newline at end of file +/*.xcresult + +# Generated docs intermediates. The sourcekitten JSON embeds absolute build +# paths in key.filepath entries, and jazzy writes the build path into +# undocumented.json. Neither file needs to be tracked. +docs/JSON/ +docs/**/undocumented.json \ No newline at end of file diff --git a/Scripts/generate_docs.sh b/Scripts/generate_docs.sh index 0df4f29e5..8d225c9b3 100755 --- a/Scripts/generate_docs.sh +++ b/Scripts/generate_docs.sh @@ -11,6 +11,9 @@ destination="generic/platform=iOS Simulator" tuist install --path Development/ tuist generate --no-open --path Development/ +# docs/JSON is gitignored — these files are intermediate sourcekitten output +# consumed by jazzy below. +mkdir -p docs/JSON $sourcekitten doc -- -workspace Development/ListableDevelopment.xcworkspace -scheme ListableUI -destination "$destination" > docs/JSON/ListableUI.json $sourcekitten doc -- -workspace Development/ListableDevelopment.xcworkspace -scheme BlueprintUILists -destination "$destination" > docs/JSON/BlueprintUILists.json diff --git a/docs/BlueprintLists/undocumented.json b/docs/BlueprintLists/undocumented.json deleted file mode 100644 index 0aeab5a5d..000000000 --- a/docs/BlueprintLists/undocumented.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "warnings": [], - "source_directory": "/Users/johnnewman/Development/Listable" -} \ No newline at end of file diff --git a/docs/JSON/BlueprintUILists.json b/docs/JSON/BlueprintUILists.json deleted file mode 100644 index 0f165df39..000000000 --- a/docs/JSON/BlueprintUILists.json +++ /dev/null @@ -1,7235 +0,0 @@ -[{ - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 6141, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias BlueprintHeaderContent = BlueprintHeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 218 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Alias to allow less verbose creation of headers.", - "key.doc.column" : 18, - "key.doc.comment" : "Alias to allow less verbose creation of headers.", - "key.doc.declaration" : "public typealias BlueprintHeaderContent = BlueprintHeaderFooterContent", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "BlueprintHeaderContent<\/Name>s:16BlueprintUILists0A13HeaderContenta<\/USR>public typealias BlueprintHeaderContent = BlueprintHeaderFooterContent<\/Declaration>Alias to allow less verbose creation of headers.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 14, - "key.doc.name" : "BlueprintHeaderContent", - "key.doc.type" : "Other", - "key.doclength" : 53, - "key.docoffset" : 165, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> BlueprintHeaderContent<\/decl.name> = BlueprintHeaderFooterContent<\/ref.protocol><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 63, - "key.line" : 14, - "key.modulename" : "BlueprintUILists", - "key.name" : "BlueprintHeaderContent", - "key.namelength" : 22, - "key.nameoffset" : 235, - "key.offset" : 225, - "key.parsed_declaration" : "public typealias BlueprintHeaderContent = BlueprintHeaderFooterContent", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.typename" : "BlueprintHeaderFooterContent.Type", - "key.typeusr" : "$s16BlueprintUILists0A19HeaderFooterContent_pmD", - "key.usr" : "s:16BlueprintUILists0A13HeaderContenta" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias BlueprintFooterContent = BlueprintHeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 343 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Alias to allow less verbose creation of footers.", - "key.doc.column" : 18, - "key.doc.comment" : "Alias to allow less verbose creation of footers.", - "key.doc.declaration" : "public typealias BlueprintFooterContent = BlueprintHeaderFooterContent", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "BlueprintFooterContent<\/Name>s:16BlueprintUILists0A13FooterContenta<\/USR>public typealias BlueprintFooterContent = BlueprintHeaderFooterContent<\/Declaration>Alias to allow less verbose creation of footers.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "BlueprintFooterContent", - "key.doc.type" : "Other", - "key.doclength" : 53, - "key.docoffset" : 290, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> BlueprintFooterContent<\/decl.name> = BlueprintHeaderFooterContent<\/ref.protocol><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 63, - "key.line" : 17, - "key.modulename" : "BlueprintUILists", - "key.name" : "BlueprintFooterContent", - "key.namelength" : 22, - "key.nameoffset" : 360, - "key.offset" : 350, - "key.parsed_declaration" : "public typealias BlueprintFooterContent = BlueprintHeaderFooterContent", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "BlueprintHeaderFooterContent.Type", - "key.typeusr" : "$s16BlueprintUILists0A19HeaderFooterContent_pmD", - "key.usr" : "s:16BlueprintUILists0A13FooterContenta" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol BlueprintHeaderFooterContent : HeaderFooterContent<\/Type> where Self<\/Type>.BackgroundView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.ContentView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.PressedBackgroundView<\/Type> == BlueprintView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2012 - } - ], - "key.bodylength" : 1017, - "key.bodyoffset" : 2200, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` specialized for use with Blueprint. Instead of providing\ncustom views from `createReusable{...}View`, and then updating them in `apply(to:)`,\nyou instead provide Blueprint elements, and `Listable` handles mapping this to an underlying `BlueprintView`.\n\nYou do not need to provide any views; just Blueprint `Elements`. Do not\noverride the `createReusable{...}View` methods.\n\nA non-tappable header that shows a label might look like this:\n```\nstruct MyHeaderContent : BlueprintHeaderFooterContent, Equatable\n{\n var title : String\n\n var elementRepresentation: Element {\n Label(text: self.title) {\n $0.font = .systemFont(ofSize: 20.0, weight: .bold)\n }\n .inset(horizontal: 15.0, vertical: 10.0)\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `background` and `pressedBackground` properties:\n```\nvar background : Element? {\n Box(backgroundColor: .white)\n}\n\nvar pressedBackground : Element? {\n Box(backgroundColor: .lightGray)\n}\n```\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `elementRepresentation`\nz-Index 2) `pressedBackground` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `background`\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nA `HeaderFooterContent` specialized for use with Blueprint. Instead of providing\ncustom views from `createReusable{...}View`, and then updating them in `apply(to:)`,\nyou instead provide Blueprint elements, and `Listable` handles mapping this to an underlying `BlueprintView`.\n\nYou do not need to provide any views; just Blueprint `Elements`. Do not\noverride the `createReusable{...}View` methods.\n\nA non-tappable header that shows a label might look like this:\n```\nstruct MyHeaderContent : BlueprintHeaderFooterContent, Equatable\n{\n var title : String\n\n var elementRepresentation: Element {\n Label(text: self.title) {\n $0.font = .systemFont(ofSize: 20.0, weight: .bold)\n }\n .inset(horizontal: 15.0, vertical: 10.0)\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `background` and `pressedBackground` properties:\n```\nvar background : Element? {\n Box(backgroundColor: .white)\n}\n\nvar pressedBackground : Element? {\n Box(backgroundColor: .lightGray)\n}\n```\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `elementRepresentation`\nz-Index 2) `pressedBackground` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `background`", - "key.doc.declaration" : "public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView", - "key.doc.discussion" : [ - { - "Para" : "You do not need to provide any views; just Blueprint `Elements`. Do not override the `createReusable{...}View` methods." - }, - { - "Para" : "A non-tappable header that shows a label might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `background` and `pressedBackground` properties:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `elementRepresentation` z-Index 2) `pressedBackground` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `background`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "BlueprintHeaderFooterContent<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP<\/USR>public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>A HeaderFooterContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>You do not need to provide any views; just Blueprint Elements<\/codeVoice>. Do not override the createReusable{...}View<\/codeVoice> methods.<\/Para>A non-tappable header that shows a label might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both background<\/codeVoice> and pressedBackground<\/codeVoice> properties:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The ordering of the elements by z-index is as follows: z-Index 3) elementRepresentation<\/codeVoice> z-Index 2) pressedBackground<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) background<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 61, - "key.doc.name" : "BlueprintHeaderFooterContent", - "key.doc.type" : "Class", - "key.doclength" : 1596, - "key.docoffset" : 416, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 2059 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintHeaderFooterContent<\/decl.name> : HeaderFooterContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.PressedBackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterContent" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 1199, - "key.line" : 61, - "key.modulename" : "BlueprintUILists", - "key.name" : "BlueprintHeaderFooterContent", - "key.namelength" : 28, - "key.nameoffset" : 2028, - "key.offset" : 2019, - "key.parsed_declaration" : "public protocol BlueprintHeaderFooterContent : HeaderFooterContent\nwhere\n ContentView == BlueprintView,\n BackgroundView == BlueprintView,\n PressedBackgroundView == BlueprintView", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 61, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 48, - "key.name" : "MARK: Creating Blueprint Element Representations", - "key.offset" : 2215 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var elementRepresentation: Element<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 2406, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Required. Create and return the Blueprint element used to represent the content.", - "key.doc.column" : 9, - "key.doc.comment" : "Required. Create and return the Blueprint element used to represent the content.", - "key.doc.declaration" : "var elementRepresentation: Element { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "elementRepresentation<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp<\/USR>var elementRepresentation: Element { get }<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 72, - "key.doc.name" : "elementRepresentation", - "key.doc.type" : "Other", - "key.doclength" : 85, - "key.docoffset" : 2280, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> elementRepresentation<\/decl.name>: Element<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 72, - "key.modulename" : "BlueprintUILists", - "key.name" : "elementRepresentation", - "key.namelength" : 21, - "key.nameoffset" : 2373, - "key.offset" : 2369, - "key.parsed_declaration" : "var elementRepresentation : Element", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 72, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "any Element", - "key.typeusr" : "$s11BlueprintUI7Element_pD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var background: Element<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 2798, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content.\nYou usually provide this method alongside `pressedBackground`, if your header\nhas an `onTap` handler.\n\n### Note\nThe default implementation of this method returns nil, and provides no background.\n", - "key.doc.column" : 9, - "key.doc.comment" : "Optional. Create and return the Blueprint element used to represent the background of the content.\nYou usually provide this method alongside `pressedBackground`, if your header\nhas an `onTap` handler.\n\n### Note\nThe default implementation of this method returns nil, and provides no background.", - "key.doc.declaration" : "var background: Element? { get }", - "key.doc.discussion" : [ - { - "Para" : "The default implementation of this method returns nil, and provides no background." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "background<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp<\/USR>var background: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside pressedBackground<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 81, - "key.doc.name" : "background", - "key.doc.type" : "Other", - "key.doclength" : 345, - "key.docoffset" : 2422, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> background<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 81, - "key.modulename" : "BlueprintUILists", - "key.name" : "background", - "key.namelength" : 10, - "key.nameoffset" : 2775, - "key.offset" : 2771, - "key.parsed_declaration" : "var background : Element?", - "key.parsed_scope.end" : 81, - "key.parsed_scope.start" : 81, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "background<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "(any Element)?", - "key.typeusr" : "$s11BlueprintUI7Element_pSgD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var pressedBackground: Element<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3210, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed.\nYou usually provide this method alongside `background`, if your header has an `onTap` handler.\n\n### Note\nThe default implementation of this method returns nil, and provides no selected background.\n", - "key.doc.column" : 9, - "key.doc.comment" : "Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed.\nYou usually provide this method alongside `background`, if your header has an `onTap` handler.\n\n### Note\nThe default implementation of this method returns nil, and provides no selected background.", - "key.doc.declaration" : "var pressedBackground: Element? { get }", - "key.doc.discussion" : [ - { - "Para" : "The default implementation of this method returns nil, and provides no selected background." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "pressedBackground<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp<\/USR>var pressedBackground: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed. You usually provide this method alongside background<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 89, - "key.doc.name" : "pressedBackground", - "key.doc.type" : "Other", - "key.doclength" : 358, - "key.docoffset" : 2814, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pressedBackground<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 89, - "key.modulename" : "BlueprintUILists", - "key.name" : "pressedBackground", - "key.namelength" : 17, - "key.nameoffset" : 3180, - "key.offset" : 3176, - "key.parsed_declaration" : "var pressedBackground : Element?", - "key.parsed_scope.end" : 89, - "key.parsed_scope.start" : 89, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "pressedBackground<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "(any Element)?", - "key.typeusr" : "$s11BlueprintUI7Element_pSgD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp" - } - ], - "key.typename" : "BlueprintHeaderFooterContent.Type", - "key.typeusr" : "$s16BlueprintUILists0A19HeaderFooterContent_pmD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - }, - { - "key.annotated_decl" : "struct Environment<\/Declaration>", - "key.bodylength" : 558, - "key.bodyoffset" : 3244, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Environment is a container for values to be passed down an element tree.\n\nEnvironment values are not resolved until the tree is being rendered, so they do not need to be\nexplicitly passed to elements at the time they are created.\n\nEnvironment key-value pairs are strongly typed: keys are types conforming to the\n`EnvironmentKey` protocol, and each key's value is the type of that key's\n`EnvironmentKey.Value` associated value. Keys must provide a default value.\n\n## Example\n\nTo set an environment value, so that it will cascade to child elements, use\n`AdaptedEnvironment`. Here, every element in `childElement` will have access to `someValue`\nvia the key `MyEnvironmentKey`.\n\n AdaptedEnvironment(\n key: MyEnvironmentKey.self,\n value: someValue,\n wrapping: childElement\n )\n\nTo read an environment value, use `EnvironmentReader`. If this element were part of the child\nelement in the previous example, `myValue` would be set to `someValue`. If the key had not\nbeen set in an ancestor element, the value would be `MyEnvironmentKey.defaultValue`.\n\n struct MyElement: ProxyElement {\n var elementRepresentation: Element {\n return EnvironmentReader { environment -> Element in\n let myValue = environment[MyEnvironmentKey.self]\n return SomeElement(using: myValue)\n }\n }\n }", - "key.doc.column" : 15, - "key.doc.declaration" : "struct Environment", - "key.doc.discussion" : [ - { - "Para" : "Environment values are not resolved until the tree is being rendered, so they do not need to be explicitly passed to elements at the time they are created." - }, - { - "Para" : "Environment key-value pairs are strongly typed: keys are types conforming to the `EnvironmentKey` protocol, and each key’s value is the type of that key’s `EnvironmentKey.Value` associated value. Keys must provide a default value." - }, - { - "Para" : "To set an environment value, so that it will cascade to child elements, use `AdaptedEnvironment`. Here, every element in `childElement` will have access to `someValue` via the key `MyEnvironmentKey`." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To read an environment value, use `EnvironmentReader`. If this element were part of the child element in the previous example, `myValue` would be set to `someValue`. If the key had not been set in an ancestor element, the value would be `MyEnvironmentKey.defaultValue`." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Environment\/Environment.swift", - "key.doc.full_as_xml" : "Environment<\/Name>s:11BlueprintUI11EnvironmentV<\/USR>struct Environment<\/Declaration>Environment is a container for values to be passed down an element tree.<\/Para><\/Abstract>Environment values are not resolved until the tree is being rendered, so they do not need to be explicitly passed to elements at the time they are created.<\/Para>Environment key-value pairs are strongly typed: keys are types conforming to the EnvironmentKey<\/codeVoice> protocol, and each key’s value is the type of that key’s EnvironmentKey.Value<\/codeVoice> associated value. Keys must provide a default value.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML>To set an environment value, so that it will cascade to child elements, use AdaptedEnvironment<\/codeVoice>. Here, every element in childElement<\/codeVoice> will have access to someValue<\/codeVoice> via the key MyEnvironmentKey<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To read an environment value, use EnvironmentReader<\/codeVoice>. If this element were part of the child element in the previous example, myValue<\/codeVoice> would be set to someValue<\/codeVoice>. If the key had not been set in an ancestor element, the value would be MyEnvironmentKey.defaultValue<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered> Element in]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 37, - "key.doc.name" : "Environment", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Environment\/Environment.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Environment<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 582, - "key.line" : 37, - "key.modulename" : "BlueprintUI", - "key.name" : "Environment", - "key.namelength" : 11, - "key.nameoffset" : 3231, - "key.offset" : 3221, - "key.parsed_declaration" : "extension Environment", - "key.parsed_scope.end" : 105, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public internal(set) var applyHeaderFooterContentInfo: ApplyHeaderFooterContentInfo<\/Type>? { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.internal", - "key.length" : 13, - "key.offset" : 3437 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3430 - } - ], - "key.bodylength" : 134, - "key.bodyoffset" : 3517, - "key.column" : 30, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `ApplyHeaderFooterContentInfo` which was passed to the `HeaderFooter` before it was\nlast displayed or updated. Nil if not in a Listable `HeaderFooter`.", - "key.doc.column" : 30, - "key.doc.comment" : "The `ApplyHeaderFooterContentInfo` which was passed to the `HeaderFooter` before it was\nlast displayed or updated. Nil if not in a Listable `HeaderFooter`.", - "key.doc.declaration" : "public internal(set) var applyHeaderFooterContentInfo: ApplyHeaderFooterContentInfo? { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "applyHeaderFooterContentInfo<\/Name>s:11BlueprintUI11EnvironmentV0A7UIListsE28applyHeaderFooterContentInfo08ListableB005ApplyfghI0VSgvp<\/USR>public internal(set) var applyHeaderFooterContentInfo: ApplyHeaderFooterContentInfo? { get set }<\/Declaration>The ApplyHeaderFooterContentInfo<\/codeVoice> which was passed to the HeaderFooter<\/codeVoice> before it was last displayed or updated. Nil if not in a Listable HeaderFooter<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 97, - "key.doc.name" : "applyHeaderFooterContentInfo", - "key.doc.type" : "Other", - "key.doclength" : 168, - "key.docoffset" : 3258, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> internal<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> applyHeaderFooterContentInfo<\/decl.name>: ApplyHeaderFooterContentInfo<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 201, - "key.line" : 97, - "key.modulename" : "BlueprintUILists", - "key.name" : "applyHeaderFooterContentInfo", - "key.namelength" : 28, - "key.nameoffset" : 3455, - "key.offset" : 3451, - "key.parsed_declaration" : "public internal(set) var applyHeaderFooterContentInfo : ApplyHeaderFooterContentInfo?", - "key.parsed_scope.end" : 100, - "key.parsed_scope.start" : 97, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ApplyHeaderFooterContentInfo?", - "key.typeusr" : "$s10ListableUI28ApplyHeaderFooterContentInfoVSgD", - "key.usr" : "s:11BlueprintUI11EnvironmentV0A7UIListsE28applyHeaderFooterContentInfo08ListableB005ApplyfghI0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private enum ApplyHeaderFooterContentInfoKey : EnvironmentKey<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3662 - } - ], - "key.bodylength" : 75, - "key.bodyoffset" : 3725, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 14, - "key.offset" : 3709 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ApplyHeaderFooterContentInfoKey<\/decl.name> : EnvironmentKey<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "EnvironmentKey" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 131, - "key.line" : 102, - "key.modulename" : "BlueprintUILists", - "key.name" : "ApplyHeaderFooterContentInfoKey", - "key.namelength" : 31, - "key.nameoffset" : 3675, - "key.offset" : 3670, - "key.parsed_declaration" : "private enum ApplyHeaderFooterContentInfoKey : EnvironmentKey", - "key.parsed_scope.end" : 104, - "key.parsed_scope.start" : 102, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static let defaultValue: ApplyHeaderFooterContentInfo<\/Type>?<\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value that will be vended by an `Environment` for this key if no other value\nhas been set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self.Value { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Environment\/EnvironmentKey.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract>This documentation comment was inherited from EnvironmentKey<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> defaultValue<\/decl.name>: ApplyHeaderFooterContentInfo<\/ref.struct>?<\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 61, - "key.line" : 103, - "key.modulename" : "BlueprintUILists", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 3745, - "key.offset" : 3734, - "key.overrides" : [ - { - "key.usr" : "s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ" - } - ], - "key.parsed_declaration" : "static let defaultValue : ApplyHeaderFooterContentInfo? = nil", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 103, - "key.reusingastcontext" : false, - "key.typename" : "ApplyHeaderFooterContentInfo?", - "key.typeusr" : "$s10ListableUI28ApplyHeaderFooterContentInfoVSgD", - "key.usr" : "s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ" - } - ], - "key.typename" : "Environment.ApplyHeaderFooterContentInfoKey.Type", - "key.typeusr" : "$s11BlueprintUI11EnvironmentV0A7UIListsE31ApplyHeaderFooterContentInfoKey33_02A79BC97C366F3BDEC29D56D447731DLLOmD", - "key.usr" : "s:11BlueprintUI11EnvironmentV0A7UIListsE31ApplyHeaderFooterContentInfoKey33_02A79BC97C366F3BDEC29D56D447731DLLO" - } - ], - "key.typename" : "Environment.Type", - "key.typeusr" : "$s11BlueprintUI11EnvironmentVmD", - "key.usr" : "s:11BlueprintUI11EnvironmentV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol BlueprintHeaderFooterContent : HeaderFooterContent<\/Type> where Self<\/Type>.BackgroundView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.ContentView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.PressedBackgroundView<\/Type> == BlueprintView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3806 - } - ], - "key.bodylength" : 1997, - "key.bodyoffset" : 3853, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` specialized for use with Blueprint. Instead of providing\ncustom views from `createReusable{...}View`, and then updating them in `apply(to:)`,\nyou instead provide Blueprint elements, and `Listable` handles mapping this to an underlying `BlueprintView`.\n\nYou do not need to provide any views; just Blueprint `Elements`. Do not\noverride the `createReusable{...}View` methods.\n\nA non-tappable header that shows a label might look like this:\n```\nstruct MyHeaderContent : BlueprintHeaderFooterContent, Equatable\n{\n var title : String\n\n var elementRepresentation: Element {\n Label(text: self.title) {\n $0.font = .systemFont(ofSize: 20.0, weight: .bold)\n }\n .inset(horizontal: 15.0, vertical: 10.0)\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `background` and `pressedBackground` properties:\n```\nvar background : Element? {\n Box(backgroundColor: .white)\n}\n\nvar pressedBackground : Element? {\n Box(backgroundColor: .lightGray)\n}\n```\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `elementRepresentation`\nz-Index 2) `pressedBackground` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `background`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView", - "key.doc.discussion" : [ - { - "Para" : "You do not need to provide any views; just Blueprint `Elements`. Do not override the `createReusable{...}View` methods." - }, - { - "Para" : "A non-tappable header that shows a label might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `background` and `pressedBackground` properties:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `elementRepresentation` z-Index 2) `pressedBackground` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `background`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "BlueprintHeaderFooterContent<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP<\/USR>public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>A HeaderFooterContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>You do not need to provide any views; just Blueprint Elements<\/codeVoice>. Do not override the createReusable{...}View<\/codeVoice> methods.<\/Para>A non-tappable header that shows a label might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both background<\/codeVoice> and pressedBackground<\/codeVoice> properties:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The ordering of the elements by z-index is as follows: z-Index 3) elementRepresentation<\/codeVoice> z-Index 2) pressedBackground<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) background<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 61, - "key.doc.name" : "BlueprintHeaderFooterContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintHeaderFooterContent<\/decl.name> : HeaderFooterContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.PressedBackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2038, - "key.line" : 61, - "key.modulename" : "BlueprintUILists", - "key.name" : "BlueprintHeaderFooterContent", - "key.namelength" : 28, - "key.nameoffset" : 3823, - "key.offset" : 3813, - "key.parsed_declaration" : "public extension BlueprintHeaderFooterContent", - "key.parsed_scope.end" : 177, - "key.parsed_scope.start" : 108, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 34, - "key.name" : "MARK: BlueprintHeaderFooterContent", - "key.offset" : 3868 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var background: Element<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 17, - "key.bodyoffset" : 3946, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content.\nYou usually provide this method alongside `pressedBackground`, if your header\nhas an `onTap` handler.\n\n### Note\nThe default implementation of this method returns nil, and provides no background.\n", - "key.doc.column" : 9, - "key.doc.declaration" : "var background: Element? { get }", - "key.doc.discussion" : [ - { - "Para" : "The default implementation of this method returns nil, and provides no background." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "background<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp<\/USR>var background: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside pressedBackground<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 81, - "key.doc.name" : "background", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> background<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 114, - "key.modulename" : "BlueprintUILists", - "key.name" : "background", - "key.namelength" : 10, - "key.nameoffset" : 3923, - "key.offset" : 3919, - "key.parsed_declaration" : "var background : Element?", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 114, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "background<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "(any Element)?", - "key.typeusr" : "$s11BlueprintUI7Element_pSgD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var pressedBackground: Element<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 17, - "key.bodyoffset" : 4008, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed.\nYou usually provide this method alongside `background`, if your header has an `onTap` handler.\n\n### Note\nThe default implementation of this method returns nil, and provides no selected background.\n", - "key.doc.column" : 9, - "key.doc.declaration" : "var pressedBackground: Element? { get }", - "key.doc.discussion" : [ - { - "Para" : "The default implementation of this method returns nil, and provides no selected background." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "pressedBackground<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp<\/USR>var pressedBackground: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed. You usually provide this method alongside background<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 89, - "key.doc.name" : "pressedBackground", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pressedBackground<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 118, - "key.modulename" : "BlueprintUILists", - "key.name" : "pressedBackground", - "key.namelength" : 17, - "key.nameoffset" : 3978, - "key.offset" : 3974, - "key.parsed_declaration" : "var pressedBackground : Element?", - "key.parsed_scope.end" : 120, - "key.parsed_scope.start" : 118, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "pressedBackground<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "(any Element)?", - "key.typeusr" : "$s11BlueprintUI7Element_pSgD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 25, - "key.name" : "MARK: HeaderFooterContent", - "key.offset" : 4046 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func apply(to views: HeaderFooterContentViews<\/Type><Self<\/Type>>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>", - "key.bodylength" : 994, - "key.bodyoffset" : 4238, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: HeaderFooterContentViews<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1145, - "key.line" : 126, - "key.modulename" : "BlueprintUILists", - "key.name" : "apply(to:for:with:)", - "key.namelength" : 143, - "key.nameoffset" : 4093, - "key.offset" : 4088, - "key.parsed_declaration" : "func apply(\n to views: HeaderFooterContentViews,\n for reason: ApplyReason,\n with info: ApplyHeaderFooterContentInfo\n)", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 126, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "apply(to: HeaderFooterContentViews<Self>, for: ApplyReason, with: ApplyHeaderFooterContentInfo)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (HeaderFooterContentViews, ApplyReason, ApplyHeaderFooterContentInfo) -> ()", - "key.typeusr" : "$s2to3for4withy10ListableUI24HeaderFooterContentViewsVyxG_AD11ApplyReasonOAD0jfgH4InfoVtcD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentPAAE5apply2to3for4withy10ListableUI0cdE5ViewsVyxG_AH11ApplyReasonOAH0mcdE4InfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableContentView(frame: CGRect<\/Type>) -> ContentView<\/Type><\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 5312, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new content view used to render the content.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "If there's no element, clear out any past element, but only if the view was loaded.", - "key.doc.declaration" : "static func createReusableContentView(frame: CGRect) -> Self.ContentView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> Self.ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 107, - "key.doc.name" : "createReusableContentView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ContentView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 118, - "key.line" : 159, - "key.modulename" : "BlueprintUILists", - "key.name" : "createReusableContentView(frame:)", - "key.namelength" : 40, - "key.nameoffset" : 5255, - "key.offset" : 5243, - "key.parsed_declaration" : "static func createReusableContentView(frame: CGRect) -> ContentView", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 159, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableContentView(frame: CGRect) -> Self.ContentView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.ContentView", - "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableBackgroundView(frame: CGRect<\/Type>) -> BackgroundView<\/Type><\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 5446, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's background.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 130, - "key.doc.name" : "createReusableBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 124, - "key.line" : 163, - "key.modulename" : "BlueprintUILists", - "key.name" : "createReusableBackgroundView(frame:)", - "key.namelength" : 43, - "key.nameoffset" : 5383, - "key.offset" : 5371, - "key.parsed_declaration" : "static func createReusableBackgroundView(frame: CGRect) -> BackgroundView", - "key.parsed_scope.end" : 165, - "key.parsed_scope.start" : 163, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/RelatedName>" - }, - { - "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.BackgroundView", - "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusablePressedBackgroundView(frame: CGRect<\/Type>) -> PressedBackgroundView<\/Type><\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 5594, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's pressed background.\n\nThis view is displayed when the user taps\/presses the header \/ footer.\n\nIf your `BackgroundView` and `SelectedBackgroundView` are the same type, this method\nis provided automatically by calling `createReusableBackgroundView`.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusablePressedBackgroundView(frame: CGRect) -> Self.PressedBackgroundView", - "key.doc.discussion" : [ - { - "Para" : "This view is displayed when the user taps\/presses the header \/ footer." - }, - { - "Para" : "If your `BackgroundView` and `SelectedBackgroundView` are the same type, this method is provided automatically by calling `createReusableBackgroundView`." - }, - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "createReusablePressedBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ<\/USR>static func createReusablePressedBackgroundView(frame: CGRect) -> Self.PressedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s pressed background.<\/Para><\/Abstract>This view is displayed when the user taps\/presses the header \/ footer.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 154, - "key.doc.name" : "createReusablePressedBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusablePressedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> PressedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 138, - "key.line" : 167, - "key.modulename" : "BlueprintUILists", - "key.name" : "createReusablePressedBackgroundView(frame:)", - "key.namelength" : 50, - "key.nameoffset" : 5517, - "key.offset" : 5505, - "key.parsed_declaration" : "static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView", - "key.parsed_scope.end" : 169, - "key.parsed_scope.start" : 167, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusablePressedBackgroundView(frame: CGRect) -> Self.PressedBackgroundView<\/RelatedName>" - }, - { - "key.annotated_decl" : "createReusablePressedBackgroundView(frame: CGRect) -> Self.PressedBackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.PressedBackgroundView", - "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private static func newBlueprintView(with frame: CGRect<\/Type>) -> BlueprintView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5653 - } - ], - "key.bodylength" : 119, - "key.bodyoffset" : 5729, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newBlueprintView<\/decl.name>(with<\/decl.var.parameter.argument_label> frame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BlueprintView<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 188, - "key.line" : 171, - "key.modulename" : "BlueprintUILists", - "key.name" : "newBlueprintView(with:)", - "key.namelength" : 37, - "key.nameoffset" : 5673, - "key.offset" : 5661, - "key.parsed_declaration" : "private static func newBlueprintView(with frame : CGRect) -> BlueprintView", - "key.parsed_scope.end" : 176, - "key.parsed_scope.start" : 171, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: BlueprintView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: BlueprintView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 38, - "key.line" : 172, - "key.modulename" : "BlueprintUILists", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 5742, - "key.offset" : 5738, - "key.parsed_declaration" : "let view = BlueprintView(frame: frame)", - "key.parsed_scope.end" : 172, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.typename" : "BlueprintView", - "key.typeusr" : "$s11BlueprintUI0A4ViewCD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentPAAE03newA4View33_02A79BC97C366F3BDEC29D56D447731DLL4with0A2UI0aG0CSo6CGRectV_tFZ4viewL_AIvp" - } - ], - "key.typename" : " (Self.Type) -> (CGRect) -> BlueprintView", - "key.typeusr" : "$s4with11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentPAAE03newA4View33_02A79BC97C366F3BDEC29D56D447731DLL4with0A2UI0aG0CSo6CGRectV_tFZ" - } - ], - "key.typename" : "BlueprintHeaderFooterContent.Type", - "key.typeusr" : "$s16BlueprintUILists0A19HeaderFooterContent_pmD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "protocol Element<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 5854 - } - ], - "key.bodylength" : 254, - "key.bodyoffset" : 5885, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Conforming types represent a rectangular content area in a two-dimensional\nlayout space.\n\n***\n\nThe ultimate purpose of an element is to provide visual content. This can be\ndone in two ways:\n\n- By providing a view description (`ViewDescription`).\n\n- By providing child elements that will be displayed recursively within\n the local coordinate space.\n\n***\n\nA custom element might look something like this:\n\n```\nstruct MyElement: Element {\n\n var backgroundColor: UIColor = .red\n\n \/\/ Returns a single child element.\n var content: ElementContent {\n return ElementContent(child: Label(text: \"😂\"))\n }\n\n \/\/ Providing a view description means that this element will be\n \/\/ backed by a UIView instance when displayed in a `BlueprintView`.\n func backingViewDescription(with context: ViewDescriptionContext) -> ViewDescription? {\n return UIView.describe { config in\n config.bind(backgroundColor, to: \\.backgroundColor)\n }\n }\n\n}\n```\n", - "key.doc.column" : 17, - "key.doc.declaration" : "protocol Element", - "key.doc.discussion" : [ - { - "Para" : "The ultimate purpose of an element is to provide visual content. This can be done in two ways:" - }, - { - "List-Bullet" : "" - }, - { - "Para" : "A custom element might look something like this:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.doc.full_as_xml" : "Element<\/Name>s:11BlueprintUI7ElementP<\/USR>protocol Element<\/Declaration>Conforming types represent a rectangular content area in a two-dimensional layout space.<\/Para><\/Abstract>]]><\/rawHTML>The ultimate purpose of an element is to provide visual content. This can be done in two ways:<\/Para>By providing a view description (ViewDescription<\/codeVoice>).<\/Para><\/Item>By providing child elements that will be displayed recursively within the local coordinate space.<\/Para><\/Item><\/List-Bullet>]]><\/rawHTML>A custom element might look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ViewDescription? {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 41, - "key.doc.name" : "Element", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> Element<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 274, - "key.line" : 41, - "key.modulename" : "BlueprintUI", - "key.name" : "Element", - "key.namelength" : 7, - "key.nameoffset" : 5876, - "key.offset" : 5866, - "key.parsed_declaration" : "fileprivate extension Element", - "key.parsed_scope.end" : 188, - "key.parsed_scope.start" : 180, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "func adaptedEnvironment(with info: ApplyHeaderFooterContentInfo<\/Type>) -> Element<\/Type><\/Declaration>", - "key.bodylength" : 164, - "key.bodyoffset" : 5973, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> adaptedEnvironment<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 243, - "key.line" : 182, - "key.modulename" : "BlueprintUILists", - "key.name" : "adaptedEnvironment(with:)", - "key.namelength" : 60, - "key.nameoffset" : 5900, - "key.offset" : 5895, - "key.parsed_declaration" : "func adaptedEnvironment(with info : ApplyHeaderFooterContentInfo) -> Element", - "key.parsed_scope.end" : 187, - "key.parsed_scope.start" : 182, - "key.receivers" : [ - { - "key.usr" : "s:11BlueprintUI7ElementP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "adaptedEnvironment(key:value:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "adaptedEnvironment(keyPath:value:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "adaptedEnvironment(by:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyHeaderFooterContentInfo) -> any Element", - "key.typeusr" : "$s4with11BlueprintUI7Element_p08ListableC028ApplyHeaderFooterContentInfoV_tcD", - "key.usr" : "s:11BlueprintUI7ElementP0A7UIListsE18adaptedEnvironment33_02A79BC97C366F3BDEC29D56D447731DLL4withAaB_p08ListableB028ApplyHeaderFooterContentInfoV_tF" - } - ], - "key.typename" : "Element.Type", - "key.typeusr" : "$s11BlueprintUI7Element_pmD", - "key.usr" : "s:11BlueprintUI7ElementP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 9397, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol BlueprintItemContent : ItemContent<\/Type> where Self<\/Type>.BackgroundView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.ContentView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.OverlayDecorationView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.SelectedBackgroundView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.UnderlayDecorationView<\/Type> == BlueprintView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1780 - } - ], - "key.bodylength" : 2732, - "key.bodyoffset" : 2046, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` specialized for use with Blueprint. Instead of providing\ncustom views from `createReusable{...}View`, and then updating them in `apply(to:)`,\nyou instead provide Blueprint elements, and `Listable` handles mapping this to an underlying `BlueprintView`.\n\nA `BlueprintItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : BlueprintItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: String {\n self.id\n }\n\n func element(with info : ApplyItemContentInfo) -> Element\n {\n Label(text: self.text) {\n $0.font = .systemFont(ofSize: 16.0, weight: .medium)\n $0.color = info.state.isActive ? .white : .darkGray\n }\n .inset(horizontal: 15.0, vertical: 10.0)\n }\n\n func backgroundElement(with info: ApplyItemContentInfo) -> Element?\n {\n Box(backgroundColor: .white)\n }\n\n func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?\n {\n Box(backgroundColor: .white(0.2))\n }\n}\n```\nWhich uses the `backgroundElement` and `selectedBackgroundElement` methods\nto provide rendering of a background for the item, which will respond to its selection state.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `element`\nz-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `backgroundElement`\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nAn `ItemContent` specialized for use with Blueprint. Instead of providing\ncustom views from `createReusable{...}View`, and then updating them in `apply(to:)`,\nyou instead provide Blueprint elements, and `Listable` handles mapping this to an underlying `BlueprintView`.\n\nA `BlueprintItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : BlueprintItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: String {\n self.id\n }\n\n func element(with info : ApplyItemContentInfo) -> Element\n {\n Label(text: self.text) {\n $0.font = .systemFont(ofSize: 16.0, weight: .medium)\n $0.color = info.state.isActive ? .white : .darkGray\n }\n .inset(horizontal: 15.0, vertical: 10.0)\n }\n\n func backgroundElement(with info: ApplyItemContentInfo) -> Element?\n {\n Box(backgroundColor: .white)\n }\n\n func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?\n {\n Box(backgroundColor: .white(0.2))\n }\n}\n```\nWhich uses the `backgroundElement` and `selectedBackgroundElement` methods\nto provide rendering of a background for the item, which will respond to its selection state.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `element`\nz-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `backgroundElement`", - "key.doc.declaration" : "public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.OverlayDecorationView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView, Self.UnderlayDecorationView == BlueprintUI.BlueprintView", - "key.doc.discussion" : [ - { - "Para" : "A `BlueprintItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Which uses the `backgroundElement` and `selectedBackgroundElement` methods to provide rendering of a background for the item, which will respond to its selection state." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `element` z-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `backgroundElement`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "BlueprintItemContent<\/Name>s:16BlueprintUILists0A11ItemContentP<\/USR>public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.OverlayDecorationView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView, Self.UnderlayDecorationView == BlueprintUI.BlueprintView<\/Declaration>An ItemContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>A BlueprintItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which uses the backgroundElement<\/codeVoice> and selectedBackgroundElement<\/codeVoice> methods to provide rendering of a background for the item, which will respond to its selection state.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) element<\/codeVoice> z-index 2) selectedBackgroundElement<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) backgroundElement<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 57, - "key.doc.name" : "BlueprintItemContent", - "key.doc.type" : "Class", - "key.doclength" : 1623, - "key.docoffset" : 157, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 1819 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintItemContent<\/decl.name> : ItemContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.OverlayDecorationView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.SelectedBackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.UnderlayDecorationView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 2992, - "key.line" : 57, - "key.modulename" : "BlueprintUILists", - "key.name" : "BlueprintItemContent", - "key.namelength" : 20, - "key.nameoffset" : 1796, - "key.offset" : 1787, - "key.parsed_declaration" : "public protocol BlueprintItemContent : ItemContent\n where\n ContentView == BlueprintView,\n BackgroundView == BlueprintView,\n SelectedBackgroundView == BlueprintView,\n OverlayDecorationView == BlueprintView,\n UnderlayDecorationView == BlueprintView", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 48, - "key.name" : "MARK: Creating Blueprint Element Representations", - "key.offset" : 2061 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func element(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Required. Create and return the Blueprint element used to represent the content.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.", - "key.doc.column" : 10, - "key.doc.comment" : "Required. Create and return the Blueprint element used to represent the content.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.", - "key.doc.declaration" : "func element(with info: ApplyItemContentInfo) -> Element", - "key.doc.discussion" : [ - { - "Para" : "You can use the provided `ApplyItemContentInfo` to vary the appearance of the element based on the current state of the item." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "element(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF<\/USR>func element(with info: ApplyItemContentInfo) -> Element<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 73, - "key.doc.name" : "element(with:)", - "key.doc.type" : "Function", - "key.doclength" : 235, - "key.docoffset" : 2126, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> element<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 57, - "key.line" : 73, - "key.modulename" : "BlueprintUILists", - "key.name" : "element(with:)", - "key.namelength" : 41, - "key.nameoffset" : 2370, - "key.offset" : 2365, - "key.parsed_declaration" : "func element(with info : ApplyItemContentInfo) -> Element", - "key.parsed_scope.end" : 73, - "key.parsed_scope.start" : 73, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> any Element", - "key.typeusr" : "$s4with11BlueprintUI7Element_p08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func backgroundElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content.\nYou usually provide this method alongside `selectedBackgroundElement`, if your content\nsupports selection or highlighting.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no background.", - "key.doc.column" : 10, - "key.doc.comment" : "Optional. Create and return the Blueprint element used to represent the background of the content.\nYou usually provide this method alongside `selectedBackgroundElement`, if your content\nsupports selection or highlighting.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no background.", - "key.doc.declaration" : "func backgroundElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.discussion" : [ - { - "Para" : "You can use the provided `ApplyItemContentInfo` to vary the appearance of the element based on the current state of the item." - }, - { - "Para" : "The default implementation of this method returns nil, and provides no background." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "backgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF<\/USR>func backgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside selectedBackgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 84, - "key.doc.name" : "backgroundElement(with:)", - "key.doc.type" : "Function", - "key.doclength" : 508, - "key.docoffset" : 2432, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> backgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 68, - "key.line" : 84, - "key.modulename" : "BlueprintUILists", - "key.name" : "backgroundElement(with:)", - "key.namelength" : 51, - "key.nameoffset" : 2949, - "key.offset" : 2944, - "key.parsed_declaration" : "func backgroundElement(with info : ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 84, - "key.parsed_scope.start" : 84, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "backgroundElement(with: ApplyItemContentInfo) -> Element?<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func selectedBackgroundElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content when it is selected or highlighted.\nYou usually provide this method alongside `backgroundElement`, if your content supports selection or highlighting.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no selected background.", - "key.doc.column" : 10, - "key.doc.comment" : "Optional. Create and return the Blueprint element used to represent the background of the content when it is selected or highlighted.\nYou usually provide this method alongside `backgroundElement`, if your content supports selection or highlighting.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no selected background.", - "key.doc.declaration" : "func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.discussion" : [ - { - "Para" : "You can use the provided `ApplyItemContentInfo` to vary the appearance of the element based on the current state of the item." - }, - { - "Para" : "The default implementation of this method returns nil, and provides no selected background." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "selectedBackgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is selected or highlighted. You usually provide this method alongside backgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 94, - "key.doc.name" : "selectedBackgroundElement(with:)", - "key.doc.type" : "Function", - "key.doclength" : 536, - "key.docoffset" : 3022, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> selectedBackgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 76, - "key.line" : 94, - "key.modulename" : "BlueprintUILists", - "key.name" : "selectedBackgroundElement(with:)", - "key.namelength" : 59, - "key.nameoffset" : 3567, - "key.offset" : 3562, - "key.parsed_declaration" : "func selectedBackgroundElement(with info : ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 94, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "selectedBackgroundElement(with: ApplyItemContentInfo) -> Element?<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func overlayDecorationElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the overlay decoration of the content.\nThe overlay decoration appears above all other content, and is not affected by swipe actions.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no decoration.", - "key.doc.column" : 10, - "key.doc.comment" : "Optional. Create and return the Blueprint element used to represent the overlay decoration of the content.\nThe overlay decoration appears above all other content, and is not affected by swipe actions.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no decoration.", - "key.doc.declaration" : "func overlayDecorationElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.discussion" : [ - { - "Para" : "You can use the provided `ApplyItemContentInfo` to vary the appearance of the element based on the current state of the item." - }, - { - "Para" : "The default implementation of this method returns nil, and provides no decoration." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "overlayDecorationElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP24overlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func overlayDecorationElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the overlay decoration of the content. The overlay decoration appears above all other content, and is not affected by swipe actions.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no decoration.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 104, - "key.doc.name" : "overlayDecorationElement(with:)", - "key.doc.type" : "Function", - "key.doclength" : 479, - "key.docoffset" : 3648, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> overlayDecorationElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 75, - "key.line" : 104, - "key.modulename" : "BlueprintUILists", - "key.name" : "overlayDecorationElement(with:)", - "key.namelength" : 58, - "key.nameoffset" : 4136, - "key.offset" : 4131, - "key.parsed_declaration" : "func overlayDecorationElement(with info : ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 104, - "key.parsed_scope.start" : 104, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "overlayDecorationElement(with: ApplyItemContentInfo) -> Element?<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP24overlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func underlayDecorationElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the underlay decoration of the content.\nThe underlay decoration appears below all other content, and is not affected by swipe actions.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no decoration.", - "key.doc.column" : 10, - "key.doc.comment" : "Optional. Create and return the Blueprint element used to represent the underlay decoration of the content.\nThe underlay decoration appears below all other content, and is not affected by swipe actions.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no decoration.", - "key.doc.declaration" : "func underlayDecorationElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.discussion" : [ - { - "Para" : "You can use the provided `ApplyItemContentInfo` to vary the appearance of the element based on the current state of the item." - }, - { - "Para" : "The default implementation of this method returns nil, and provides no decoration." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "underlayDecorationElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP25underlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func underlayDecorationElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the underlay decoration of the content. The underlay decoration appears below all other content, and is not affected by swipe actions.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no decoration.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 114, - "key.doc.name" : "underlayDecorationElement(with:)", - "key.doc.type" : "Function", - "key.doclength" : 481, - "key.docoffset" : 4216, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> underlayDecorationElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 76, - "key.line" : 114, - "key.modulename" : "BlueprintUILists", - "key.name" : "underlayDecorationElement(with:)", - "key.namelength" : 59, - "key.nameoffset" : 4706, - "key.offset" : 4701, - "key.parsed_declaration" : "func underlayDecorationElement(with info : ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 114, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "underlayDecorationElement(with: ApplyItemContentInfo) -> Element?<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP25underlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" - } - ], - "key.typename" : "BlueprintItemContent.Type", - "key.typeusr" : "$s16BlueprintUILists0A11ItemContent_pmD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - }, - { - "key.annotated_decl" : "struct Environment<\/Declaration>", - "key.bodylength" : 486, - "key.bodyoffset" : 4805, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Environment is a container for values to be passed down an element tree.\n\nEnvironment values are not resolved until the tree is being rendered, so they do not need to be\nexplicitly passed to elements at the time they are created.\n\nEnvironment key-value pairs are strongly typed: keys are types conforming to the\n`EnvironmentKey` protocol, and each key's value is the type of that key's\n`EnvironmentKey.Value` associated value. Keys must provide a default value.\n\n## Example\n\nTo set an environment value, so that it will cascade to child elements, use\n`AdaptedEnvironment`. Here, every element in `childElement` will have access to `someValue`\nvia the key `MyEnvironmentKey`.\n\n AdaptedEnvironment(\n key: MyEnvironmentKey.self,\n value: someValue,\n wrapping: childElement\n )\n\nTo read an environment value, use `EnvironmentReader`. If this element were part of the child\nelement in the previous example, `myValue` would be set to `someValue`. If the key had not\nbeen set in an ancestor element, the value would be `MyEnvironmentKey.defaultValue`.\n\n struct MyElement: ProxyElement {\n var elementRepresentation: Element {\n return EnvironmentReader { environment -> Element in\n let myValue = environment[MyEnvironmentKey.self]\n return SomeElement(using: myValue)\n }\n }\n }", - "key.doc.column" : 15, - "key.doc.declaration" : "struct Environment", - "key.doc.discussion" : [ - { - "Para" : "Environment values are not resolved until the tree is being rendered, so they do not need to be explicitly passed to elements at the time they are created." - }, - { - "Para" : "Environment key-value pairs are strongly typed: keys are types conforming to the `EnvironmentKey` protocol, and each key’s value is the type of that key’s `EnvironmentKey.Value` associated value. Keys must provide a default value." - }, - { - "Para" : "To set an environment value, so that it will cascade to child elements, use `AdaptedEnvironment`. Here, every element in `childElement` will have access to `someValue` via the key `MyEnvironmentKey`." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To read an environment value, use `EnvironmentReader`. If this element were part of the child element in the previous example, `myValue` would be set to `someValue`. If the key had not been set in an ancestor element, the value would be `MyEnvironmentKey.defaultValue`." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Environment\/Environment.swift", - "key.doc.full_as_xml" : "Environment<\/Name>s:11BlueprintUI11EnvironmentV<\/USR>struct Environment<\/Declaration>Environment is a container for values to be passed down an element tree.<\/Para><\/Abstract>Environment values are not resolved until the tree is being rendered, so they do not need to be explicitly passed to elements at the time they are created.<\/Para>Environment key-value pairs are strongly typed: keys are types conforming to the EnvironmentKey<\/codeVoice> protocol, and each key’s value is the type of that key’s EnvironmentKey.Value<\/codeVoice> associated value. Keys must provide a default value.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML>To set an environment value, so that it will cascade to child elements, use AdaptedEnvironment<\/codeVoice>. Here, every element in childElement<\/codeVoice> will have access to someValue<\/codeVoice> via the key MyEnvironmentKey<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To read an environment value, use EnvironmentReader<\/codeVoice>. If this element were part of the child element in the previous example, myValue<\/codeVoice> would be set to someValue<\/codeVoice>. If the key had not been set in an ancestor element, the value would be MyEnvironmentKey.defaultValue<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered> Element in]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 37, - "key.doc.name" : "Environment", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Environment\/Environment.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Environment<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 510, - "key.line" : 37, - "key.modulename" : "BlueprintUI", - "key.name" : "Environment", - "key.namelength" : 11, - "key.nameoffset" : 4792, - "key.offset" : 4782, - "key.parsed_declaration" : "extension Environment", - "key.parsed_scope.end" : 130, - "key.parsed_scope.start" : 118, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public internal(set) var applyItemContentInfo: ApplyItemContentInfo<\/Type>? { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.internal", - "key.length" : 13, - "key.offset" : 4974 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4967 - } - ], - "key.bodylength" : 118, - "key.bodyoffset" : 5038, - "key.column" : 30, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `ApplyItemContentInfo` which was passed to the `Item` before it was\nlast displayed or updated. Nil if not in a Listable `Item`.", - "key.doc.column" : 30, - "key.doc.comment" : "The `ApplyItemContentInfo` which was passed to the `Item` before it was\nlast displayed or updated. Nil if not in a Listable `Item`.", - "key.doc.declaration" : "public internal(set) var applyItemContentInfo: ApplyItemContentInfo? { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "applyItemContentInfo<\/Name>s:11BlueprintUI11EnvironmentV0A7UIListsE20applyItemContentInfo08ListableB005ApplyfgH0VSgvp<\/USR>public internal(set) var applyItemContentInfo: ApplyItemContentInfo? { get set }<\/Declaration>The ApplyItemContentInfo<\/codeVoice> which was passed to the Item<\/codeVoice> before it was last displayed or updated. Nil if not in a Listable Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 122, - "key.doc.name" : "applyItemContentInfo", - "key.doc.type" : "Other", - "key.doclength" : 144, - "key.docoffset" : 4819, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> internal<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> applyItemContentInfo<\/decl.name>: ApplyItemContentInfo<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 169, - "key.line" : 122, - "key.modulename" : "BlueprintUILists", - "key.name" : "applyItemContentInfo", - "key.namelength" : 20, - "key.nameoffset" : 4992, - "key.offset" : 4988, - "key.parsed_declaration" : "public internal(set) var applyItemContentInfo : ApplyItemContentInfo?", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 122, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ApplyItemContentInfo?", - "key.typeusr" : "$s10ListableUI20ApplyItemContentInfoVSgD", - "key.usr" : "s:11BlueprintUI11EnvironmentV0A7UIListsE20applyItemContentInfo08ListableB005ApplyfgH0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private enum ApplyItemContentInfoKey : EnvironmentKey<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5167 - } - ], - "key.bodylength" : 67, - "key.bodyoffset" : 5222, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 14, - "key.offset" : 5206 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ApplyItemContentInfoKey<\/decl.name> : EnvironmentKey<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "EnvironmentKey" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 115, - "key.line" : 127, - "key.modulename" : "BlueprintUILists", - "key.name" : "ApplyItemContentInfoKey", - "key.namelength" : 23, - "key.nameoffset" : 5180, - "key.offset" : 5175, - "key.parsed_declaration" : "private enum ApplyItemContentInfoKey : EnvironmentKey", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 127, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static let defaultValue: ApplyItemContentInfo<\/Type>?<\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value that will be vended by an `Environment` for this key if no other value\nhas been set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self.Value { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Environment\/EnvironmentKey.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract>This documentation comment was inherited from EnvironmentKey<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> defaultValue<\/decl.name>: ApplyItemContentInfo<\/ref.struct>?<\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 53, - "key.line" : 128, - "key.modulename" : "BlueprintUILists", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 5242, - "key.offset" : 5231, - "key.overrides" : [ - { - "key.usr" : "s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ" - } - ], - "key.parsed_declaration" : "static let defaultValue : ApplyItemContentInfo? = nil", - "key.parsed_scope.end" : 128, - "key.parsed_scope.start" : 128, - "key.reusingastcontext" : false, - "key.typename" : "ApplyItemContentInfo?", - "key.typeusr" : "$s10ListableUI20ApplyItemContentInfoVSgD", - "key.usr" : "s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ" - } - ], - "key.typename" : "Environment.ApplyItemContentInfoKey.Type", - "key.typeusr" : "$s11BlueprintUI11EnvironmentV0A7UIListsE23ApplyItemContentInfoKey33_00A2BB1FCE0BEE1B772989891DE46E9ALLOmD", - "key.usr" : "s:11BlueprintUI11EnvironmentV0A7UIListsE23ApplyItemContentInfoKey33_00A2BB1FCE0BEE1B772989891DE46E9ALLO" - } - ], - "key.typename" : "Environment.Type", - "key.typeusr" : "$s11BlueprintUI11EnvironmentVmD", - "key.usr" : "s:11BlueprintUI11EnvironmentV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol BlueprintItemContent : ItemContent<\/Type> where Self<\/Type>.BackgroundView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.ContentView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.OverlayDecorationView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.SelectedBackgroundView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.UnderlayDecorationView<\/Type> == BlueprintView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5296 - } - ], - "key.bodylength" : 685, - "key.bodyoffset" : 5335, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` specialized for use with Blueprint. Instead of providing\ncustom views from `createReusable{...}View`, and then updating them in `apply(to:)`,\nyou instead provide Blueprint elements, and `Listable` handles mapping this to an underlying `BlueprintView`.\n\nA `BlueprintItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : BlueprintItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: String {\n self.id\n }\n\n func element(with info : ApplyItemContentInfo) -> Element\n {\n Label(text: self.text) {\n $0.font = .systemFont(ofSize: 16.0, weight: .medium)\n $0.color = info.state.isActive ? .white : .darkGray\n }\n .inset(horizontal: 15.0, vertical: 10.0)\n }\n\n func backgroundElement(with info: ApplyItemContentInfo) -> Element?\n {\n Box(backgroundColor: .white)\n }\n\n func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?\n {\n Box(backgroundColor: .white(0.2))\n }\n}\n```\nWhich uses the `backgroundElement` and `selectedBackgroundElement` methods\nto provide rendering of a background for the item, which will respond to its selection state.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `element`\nz-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `backgroundElement`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.OverlayDecorationView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView, Self.UnderlayDecorationView == BlueprintUI.BlueprintView", - "key.doc.discussion" : [ - { - "Para" : "A `BlueprintItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Which uses the `backgroundElement` and `selectedBackgroundElement` methods to provide rendering of a background for the item, which will respond to its selection state." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `element` z-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `backgroundElement`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "BlueprintItemContent<\/Name>s:16BlueprintUILists0A11ItemContentP<\/USR>public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.OverlayDecorationView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView, Self.UnderlayDecorationView == BlueprintUI.BlueprintView<\/Declaration>An ItemContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>A BlueprintItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which uses the backgroundElement<\/codeVoice> and selectedBackgroundElement<\/codeVoice> methods to provide rendering of a background for the item, which will respond to its selection state.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) element<\/codeVoice> z-index 2) selectedBackgroundElement<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) backgroundElement<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 57, - "key.doc.name" : "BlueprintItemContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintItemContent<\/decl.name> : ItemContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.OverlayDecorationView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.SelectedBackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.UnderlayDecorationView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 718, - "key.line" : 57, - "key.modulename" : "BlueprintUILists", - "key.name" : "BlueprintItemContent", - "key.namelength" : 20, - "key.nameoffset" : 5313, - "key.offset" : 5303, - "key.parsed_declaration" : "public extension BlueprintItemContent", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 134, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 29, - "key.name" : "MARK: Default Implementations", - "key.offset" : 5350 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func backgroundElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.bodylength" : 17, - "key.bodyoffset" : 5517, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "By default, content has no background.", - "key.doc.column" : 10, - "key.doc.comment" : "By default, content has no background.", - "key.doc.declaration" : "func backgroundElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "backgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF<\/USR>func backgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>By default, content has no background.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 141, - "key.doc.name" : "backgroundElement(with:)", - "key.doc.type" : "Function", - "key.doclength" : 43, - "key.docoffset" : 5396, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> backgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 92, - "key.line" : 141, - "key.modulename" : "BlueprintUILists", - "key.name" : "backgroundElement(with:)", - "key.namelength" : 51, - "key.nameoffset" : 5448, - "key.offset" : 5443, - "key.parsed_declaration" : "func backgroundElement(with info : ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 144, - "key.parsed_scope.start" : 141, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "backgroundElement(with: ApplyItemContentInfo) -> Element?<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func selectedBackgroundElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.bodylength" : 17, - "key.bodyoffset" : 5679, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "By default, content has no selected background.", - "key.doc.column" : 10, - "key.doc.comment" : "By default, content has no selected background.", - "key.doc.declaration" : "func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "selectedBackgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>By default, content has no selected background.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 147, - "key.doc.name" : "selectedBackgroundElement(with:)", - "key.doc.type" : "Function", - "key.doclength" : 52, - "key.docoffset" : 5541, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> selectedBackgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 100, - "key.line" : 147, - "key.modulename" : "BlueprintUILists", - "key.name" : "selectedBackgroundElement(with:)", - "key.namelength" : 59, - "key.nameoffset" : 5602, - "key.offset" : 5597, - "key.parsed_declaration" : "func selectedBackgroundElement(with info : ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 150, - "key.parsed_scope.start" : 147, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "selectedBackgroundElement(with: ApplyItemContentInfo) -> Element?<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func overlayDecorationElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.bodylength" : 17, - "key.bodyoffset" : 5839, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "By default, content has no overlay decoration.", - "key.doc.column" : 10, - "key.doc.comment" : "By default, content has no overlay decoration.", - "key.doc.declaration" : "func overlayDecorationElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "overlayDecorationElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE24overlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func overlayDecorationElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>By default, content has no overlay decoration.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 153, - "key.doc.name" : "overlayDecorationElement(with:)", - "key.doc.type" : "Function", - "key.doclength" : 51, - "key.docoffset" : 5707, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> overlayDecorationElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 95, - "key.line" : 153, - "key.modulename" : "BlueprintUILists", - "key.name" : "overlayDecorationElement(with:)", - "key.namelength" : 58, - "key.nameoffset" : 5767, - "key.offset" : 5762, - "key.parsed_declaration" : "func overlayDecorationElement(with info : ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 155, - "key.parsed_scope.start" : 153, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "overlayDecorationElement(with: ApplyItemContentInfo) -> Element?<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE24overlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func underlayDecorationElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.bodylength" : 17, - "key.bodyoffset" : 6001, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "By default, content has no underlay decoration.", - "key.doc.column" : 10, - "key.doc.comment" : "By default, content has no underlay decoration.", - "key.doc.declaration" : "func underlayDecorationElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "underlayDecorationElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE25underlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func underlayDecorationElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>By default, content has no underlay decoration.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 158, - "key.doc.name" : "underlayDecorationElement(with:)", - "key.doc.type" : "Function", - "key.doclength" : 52, - "key.docoffset" : 5867, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> underlayDecorationElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 96, - "key.line" : 158, - "key.modulename" : "BlueprintUILists", - "key.name" : "underlayDecorationElement(with:)", - "key.namelength" : 59, - "key.nameoffset" : 5928, - "key.offset" : 5923, - "key.parsed_declaration" : "func underlayDecorationElement(with info : ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 160, - "key.parsed_scope.start" : 158, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "underlayDecorationElement(with: ApplyItemContentInfo) -> Element?<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE25underlayDecorationElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" - } - ], - "key.typename" : "BlueprintItemContent.Type", - "key.typeusr" : "$s16BlueprintUILists0A11ItemContent_pmD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol BlueprintItemContent : ItemContent<\/Type> where Self<\/Type>.BackgroundView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.ContentView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.OverlayDecorationView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.SelectedBackgroundView<\/Type> == BlueprintView<\/Type>, Self<\/Type>.UnderlayDecorationView<\/Type> == BlueprintView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6024 - } - ], - "key.bodylength" : 3059, - "key.bodyoffset" : 6063, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` specialized for use with Blueprint. Instead of providing\ncustom views from `createReusable{...}View`, and then updating them in `apply(to:)`,\nyou instead provide Blueprint elements, and `Listable` handles mapping this to an underlying `BlueprintView`.\n\nA `BlueprintItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : BlueprintItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: String {\n self.id\n }\n\n func element(with info : ApplyItemContentInfo) -> Element\n {\n Label(text: self.text) {\n $0.font = .systemFont(ofSize: 16.0, weight: .medium)\n $0.color = info.state.isActive ? .white : .darkGray\n }\n .inset(horizontal: 15.0, vertical: 10.0)\n }\n\n func backgroundElement(with info: ApplyItemContentInfo) -> Element?\n {\n Box(backgroundColor: .white)\n }\n\n func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?\n {\n Box(backgroundColor: .white(0.2))\n }\n}\n```\nWhich uses the `backgroundElement` and `selectedBackgroundElement` methods\nto provide rendering of a background for the item, which will respond to its selection state.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `element`\nz-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `backgroundElement`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.OverlayDecorationView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView, Self.UnderlayDecorationView == BlueprintUI.BlueprintView", - "key.doc.discussion" : [ - { - "Para" : "A `BlueprintItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Which uses the `backgroundElement` and `selectedBackgroundElement` methods to provide rendering of a background for the item, which will respond to its selection state." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `element` z-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `backgroundElement`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "BlueprintItemContent<\/Name>s:16BlueprintUILists0A11ItemContentP<\/USR>public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.OverlayDecorationView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView, Self.UnderlayDecorationView == BlueprintUI.BlueprintView<\/Declaration>An ItemContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>A BlueprintItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which uses the backgroundElement<\/codeVoice> and selectedBackgroundElement<\/codeVoice> methods to provide rendering of a background for the item, which will respond to its selection state.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) element<\/codeVoice> z-index 2) selectedBackgroundElement<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) backgroundElement<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 57, - "key.doc.name" : "BlueprintItemContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintItemContent<\/decl.name> : ItemContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.OverlayDecorationView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.SelectedBackgroundView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.UnderlayDecorationView<\/ref.associatedtype> == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 3092, - "key.line" : 57, - "key.modulename" : "BlueprintUILists", - "key.name" : "BlueprintItemContent", - "key.namelength" : 20, - "key.nameoffset" : 6041, - "key.offset" : 6031, - "key.parsed_declaration" : "public extension BlueprintItemContent", - "key.parsed_scope.end" : 243, - "key.parsed_scope.start" : 164, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 17, - "key.name" : "MARK: ItemContent", - "key.offset" : 6078 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func apply(to views: ItemContentViews<\/Type><Self<\/Type>>, for reason: ApplyReason<\/Type>, with info: ApplyItemContentInfo<\/Type>)<\/Declaration>", - "key.bodylength" : 1869, - "key.bodyoffset" : 6335, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Maps the `BlueprintItemContent` methods into the underlying `BlueprintView`s used to render the element.", - "key.doc.column" : 10, - "key.doc.comment" : "Maps the `BlueprintItemContent` methods into the underlying `BlueprintView`s used to render the element.", - "key.doc.declaration" : "func apply(to views: ItemContentViews, for reason: ApplyReason, with info: ApplyItemContentInfo)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "apply(to:for:with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE5apply2to3for4withy10ListableUI0cD5ViewsVyxG_AH11ApplyReasonOAH0lcD4InfoVtF<\/USR>func apply(to views: ItemContentViews<Self>, for reason: ApplyReason, with info: ApplyItemContentInfo)<\/Declaration>Maps the BlueprintItemContent<\/codeVoice> methods into the underlying BlueprintView<\/codeVoice>s used to render the element.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 171, - "key.doc.name" : "apply(to:for:with:)", - "key.doc.type" : "Function", - "key.doclength" : 109, - "key.docoffset" : 6112, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: ItemContentViews<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1980, - "key.line" : 171, - "key.modulename" : "BlueprintUILists", - "key.name" : "apply(to:for:with:)", - "key.namelength" : 99, - "key.nameoffset" : 6230, - "key.offset" : 6225, - "key.parsed_declaration" : "func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo)", - "key.parsed_scope.end" : 215, - "key.parsed_scope.start" : 171, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "apply(to: ItemContentViews<Self>, for: ApplyReason, with: ApplyItemContentInfo)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ItemContentViews, ApplyReason, ApplyItemContentInfo) -> ()", - "key.typeusr" : "$s2to3for4withy10ListableUI16ItemContentViewsVyxG_AD11ApplyReasonOAD0ifG4InfoVtcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE5apply2to3for4withy10ListableUI0cD5ViewsVyxG_AH11ApplyReasonOAH0lcD4InfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableContentView(frame: CGRect<\/Type>) -> ContentView<\/Type><\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 8284, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new content view used to render the content.\n\n### Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "If there's no element, clear out any past element, but only if the view was loaded.", - "key.doc.declaration" : "static func createReusableContentView(frame: CGRect) -> Self.ContentView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> Self.ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 375, - "key.doc.name" : "createReusableContentView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ContentView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 118, - "key.line" : 217, - "key.modulename" : "BlueprintUILists", - "key.name" : "createReusableContentView(frame:)", - "key.namelength" : 40, - "key.nameoffset" : 8227, - "key.offset" : 8215, - "key.parsed_declaration" : "static func createReusableContentView(frame: CGRect) -> ContentView", - "key.parsed_scope.end" : 219, - "key.parsed_scope.start" : 217, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableContentView(frame: CGRect) -> Self.ContentView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.ContentView", - "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableBackgroundView(frame: CGRect<\/Type>) -> BackgroundView<\/Type><\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 8418, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's background.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 400, - "key.doc.name" : "createReusableBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 124, - "key.line" : 221, - "key.modulename" : "BlueprintUILists", - "key.name" : "createReusableBackgroundView(frame:)", - "key.namelength" : 43, - "key.nameoffset" : 8355, - "key.offset" : 8343, - "key.parsed_declaration" : "static func createReusableBackgroundView(frame: CGRect) -> BackgroundView", - "key.parsed_scope.end" : 223, - "key.parsed_scope.start" : 221, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/RelatedName>" - }, - { - "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.BackgroundView", - "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableSelectedBackgroundView(frame: CGRect<\/Type>) -> SelectedBackgroundView<\/Type><\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 8568, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's selected background.\n\nThis view is displayed when the content is highlighted or selected.\n\nIf your `BackgroundView` and `SelectedBackgroundView` are the same type, this method\nis provided automatically by calling `createReusableBackgroundView`.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableSelectedBackgroundView(frame: CGRect) -> Self.SelectedBackgroundView", - "key.doc.discussion" : [ - { - "Para" : "This view is displayed when the content is highlighted or selected." - }, - { - "Para" : "If your `BackgroundView` and `SelectedBackgroundView` are the same type, this method is provided automatically by calling `createReusableBackgroundView`." - }, - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableSelectedBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableSelectedBackgroundView(frame: CGRect) -> Self.SelectedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s selected background.<\/Para><\/Abstract>This view is displayed when the content is highlighted or selected.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 425, - "key.doc.name" : "createReusableSelectedBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableSelectedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> SelectedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 140, - "key.line" : 225, - "key.modulename" : "BlueprintUILists", - "key.name" : "createReusableSelectedBackgroundView(frame:)", - "key.namelength" : 51, - "key.nameoffset" : 8489, - "key.offset" : 8477, - "key.parsed_declaration" : "static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView", - "key.parsed_scope.end" : 227, - "key.parsed_scope.start" : 225, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableSelectedBackgroundView(frame: CGRect) -> Self.SelectedBackgroundView<\/RelatedName>" - }, - { - "key.annotated_decl" : "createReusableSelectedBackgroundView(frame: CGRect) -> Self.SelectedBackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.SelectedBackgroundView", - "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableOverlayDecorationView(frame: CGRect<\/Type>) -> OverlayDecorationView<\/Type><\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 8716, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new overlay decoration view used to render any required decorations over the content.\nThe decoration view appears above all content, and is not affected by swipe actions.\n\n## Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableOverlayDecorationView(frame: CGRect) -> Self.OverlayDecorationView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableOverlayDecorationView(frame:)<\/Name>s:10ListableUI11ItemContentP35createReusableOverlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableOverlayDecorationView(frame: CGRect) -> Self.OverlayDecorationView<\/Declaration>Create and return a new overlay decoration view used to render any required decorations over the content. The decoration view appears above all content, and is not affected by swipe actions.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 445, - "key.doc.name" : "createReusableOverlayDecorationView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableOverlayDecorationView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> OverlayDecorationView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 138, - "key.line" : 229, - "key.modulename" : "BlueprintUILists", - "key.name" : "createReusableOverlayDecorationView(frame:)", - "key.namelength" : 50, - "key.nameoffset" : 8639, - "key.offset" : 8627, - "key.parsed_declaration" : "static func createReusableOverlayDecorationView(frame: CGRect) -> OverlayDecorationView", - "key.parsed_scope.end" : 231, - "key.parsed_scope.start" : 229, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableOverlayDecorationView(frame: CGRect) -> Self.OverlayDecorationView<\/RelatedName>" - }, - { - "key.annotated_decl" : "createReusableOverlayDecorationView(frame: CGRect) -> Self.OverlayDecorationView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.OverlayDecorationView", - "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP35createReusableOverlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableUnderlayDecorationView(frame: CGRect<\/Type>) -> UnderlayDecorationView<\/Type><\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 8866, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new underlay decoration view used to render any required decorations under the content.\nThe decoration view appears under all content as a background, and is not affected by swipe actions.\n\n## Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableUnderlayDecorationView(frame: CGRect) -> Self.UnderlayDecorationView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableUnderlayDecorationView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableUnderlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableUnderlayDecorationView(frame: CGRect) -> Self.UnderlayDecorationView<\/Declaration>Create and return a new underlay decoration view used to render any required decorations under the content. The decoration view appears under all content as a background, and is not affected by swipe actions.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 453, - "key.doc.name" : "createReusableUnderlayDecorationView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableUnderlayDecorationView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UnderlayDecorationView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 140, - "key.line" : 233, - "key.modulename" : "BlueprintUILists", - "key.name" : "createReusableUnderlayDecorationView(frame:)", - "key.namelength" : 51, - "key.nameoffset" : 8787, - "key.offset" : 8775, - "key.parsed_declaration" : "static func createReusableUnderlayDecorationView(frame: CGRect) -> UnderlayDecorationView", - "key.parsed_scope.end" : 235, - "key.parsed_scope.start" : 233, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableUnderlayDecorationView(frame: CGRect) -> Self.UnderlayDecorationView<\/RelatedName>" - }, - { - "key.annotated_decl" : "createReusableUnderlayDecorationView(frame: CGRect) -> Self.UnderlayDecorationView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.UnderlayDecorationView", - "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP36createReusableUnderlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private static func newBlueprintView(with frame: CGRect<\/Type>) -> BlueprintView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 8925 - } - ], - "key.bodylength" : 119, - "key.bodyoffset" : 9001, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newBlueprintView<\/decl.name>(with<\/decl.var.parameter.argument_label> frame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BlueprintView<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 188, - "key.line" : 237, - "key.modulename" : "BlueprintUILists", - "key.name" : "newBlueprintView(with:)", - "key.namelength" : 37, - "key.nameoffset" : 8945, - "key.offset" : 8933, - "key.parsed_declaration" : "private static func newBlueprintView(with frame : CGRect) -> BlueprintView", - "key.parsed_scope.end" : 242, - "key.parsed_scope.start" : 237, - "key.receivers" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: BlueprintView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: BlueprintView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 38, - "key.line" : 238, - "key.modulename" : "BlueprintUILists", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 9014, - "key.offset" : 9010, - "key.parsed_declaration" : "let view = BlueprintView(frame: frame)", - "key.parsed_scope.end" : 238, - "key.parsed_scope.start" : 238, - "key.reusingastcontext" : false, - "key.typename" : "BlueprintView", - "key.typeusr" : "$s11BlueprintUI0A4ViewCD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE03newA4View33_00A2BB1FCE0BEE1B772989891DE46E9ALL4with0A2UI0aF0CSo6CGRectV_tFZ4viewL_AIvp" - } - ], - "key.typename" : " (Self.Type) -> (CGRect) -> BlueprintView", - "key.typeusr" : "$s4with11BlueprintUI0B4ViewCSo6CGRectV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE03newA4View33_00A2BB1FCE0BEE1B772989891DE46E9ALL4with0A2UI0aF0CSo6CGRectV_tFZ" - } - ], - "key.typename" : "BlueprintItemContent.Type", - "key.typeusr" : "$s16BlueprintUILists0A11ItemContent_pmD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "protocol Element<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 9126 - } - ], - "key.bodylength" : 238, - "key.bodyoffset" : 9157, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Conforming types represent a rectangular content area in a two-dimensional\nlayout space.\n\n***\n\nThe ultimate purpose of an element is to provide visual content. This can be\ndone in two ways:\n\n- By providing a view description (`ViewDescription`).\n\n- By providing child elements that will be displayed recursively within\n the local coordinate space.\n\n***\n\nA custom element might look something like this:\n\n```\nstruct MyElement: Element {\n\n var backgroundColor: UIColor = .red\n\n \/\/ Returns a single child element.\n var content: ElementContent {\n return ElementContent(child: Label(text: \"😂\"))\n }\n\n \/\/ Providing a view description means that this element will be\n \/\/ backed by a UIView instance when displayed in a `BlueprintView`.\n func backingViewDescription(with context: ViewDescriptionContext) -> ViewDescription? {\n return UIView.describe { config in\n config.bind(backgroundColor, to: \\.backgroundColor)\n }\n }\n\n}\n```\n", - "key.doc.column" : 17, - "key.doc.declaration" : "protocol Element", - "key.doc.discussion" : [ - { - "Para" : "The ultimate purpose of an element is to provide visual content. This can be done in two ways:" - }, - { - "List-Bullet" : "" - }, - { - "Para" : "A custom element might look something like this:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.doc.full_as_xml" : "Element<\/Name>s:11BlueprintUI7ElementP<\/USR>protocol Element<\/Declaration>Conforming types represent a rectangular content area in a two-dimensional layout space.<\/Para><\/Abstract>]]><\/rawHTML>The ultimate purpose of an element is to provide visual content. This can be done in two ways:<\/Para>By providing a view description (ViewDescription<\/codeVoice>).<\/Para><\/Item>By providing child elements that will be displayed recursively within the local coordinate space.<\/Para><\/Item><\/List-Bullet>]]><\/rawHTML>A custom element might look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ViewDescription? {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 41, - "key.doc.name" : "Element", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> Element<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 258, - "key.line" : 41, - "key.modulename" : "BlueprintUI", - "key.name" : "Element", - "key.namelength" : 7, - "key.nameoffset" : 9148, - "key.offset" : 9138, - "key.parsed_declaration" : "fileprivate extension Element", - "key.parsed_scope.end" : 254, - "key.parsed_scope.start" : 246, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "func adaptedEnvironment(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type><\/Declaration>", - "key.bodylength" : 156, - "key.bodyoffset" : 9237, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> adaptedEnvironment<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 227, - "key.line" : 248, - "key.modulename" : "BlueprintUILists", - "key.name" : "adaptedEnvironment(with:)", - "key.namelength" : 52, - "key.nameoffset" : 9172, - "key.offset" : 9167, - "key.parsed_declaration" : "func adaptedEnvironment(with info : ApplyItemContentInfo) -> Element", - "key.parsed_scope.end" : 253, - "key.parsed_scope.start" : 248, - "key.receivers" : [ - { - "key.usr" : "s:11BlueprintUI7ElementP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "adaptedEnvironment(key:value:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "adaptedEnvironment(keyPath:value:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "adaptedEnvironment(by:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> any Element", - "key.typeusr" : "$s4with11BlueprintUI7Element_p08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:11BlueprintUI7ElementP0A7UIListsE18adaptedEnvironment33_00A2BB1FCE0BEE1B772989891DE46E9ALL4withAaB_p08ListableB020ApplyItemContentInfoV_tF" - } - ], - "key.typename" : "Element.Type", - "key.typeusr" : "$s11BlueprintUI7Element_pmD", - "key.usr" : "s:11BlueprintUI7ElementP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Deprecations.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1292, - "key.offset" : 0, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 31, - "key.name" : "MARK: Deprecated Month XX, 20XX", - "key.offset" : 1257 - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Exports.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 221, - "key.offset" : 0, - "key.substructure" : [ - - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 4717, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func ElementHeaderFooter<Represented>(_ represented: Represented<\/Type>, isEquivalent: @escaping (Represented<\/Type>, Represented<\/Type>) -> Bool<\/Type>, element: @escaping (Represented<\/Type>) -> Element<\/Type>, background: @escaping (Represented<\/Type>) -> Element<\/Type>? = { _ in nil }, pressedBackground: @escaping (Represented<\/Type>) -> Element<\/Type>? = { _ in nil }, configure: (inout HeaderFooter<\/Type><ElementHeaderFooterContent<\/Type><Represented<\/Type>>>) -> () = { _ in }) -> HeaderFooter<\/Type><ElementHeaderFooterContent<\/Type><Represented<\/Type>>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1105 - } - ], - "key.bodylength" : 339, - "key.bodyoffset" : 1619, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a way to create a `HeaderFooter` for your Blueprint elements without\nrequiring the creation of a new `BlueprintHeaderFooterContent` struct.\n\nMost arguments on this method are not required – you must only\nprovide an input and an element provider.\n\n### Note\nThis initializer is helpful if you have to nest an existing element that needs to be used in\na single place, without needing to define an entirely new type.\n\nIf your header or footer is to be used in more than one place, it is recommended that you\ncreate a `BlueprintHeaderFooterContent` struct to share logic to avoid duplicate code.\n\n### Example\n```\nsection.header = ElementHeaderFooter(album) { lhs, rhs in\n lhs.value != rhs.value\n}, element: { album in\n AlbumElement(...)\n}, background: { album in\n ...\n}, pressedBackground: album in\n ...\n}, configure: { header in\n ...\n}\n```", - "key.doc.column" : 13, - "key.doc.comment" : "\nProvides a way to create a `HeaderFooter` for your Blueprint elements without\nrequiring the creation of a new `BlueprintHeaderFooterContent` struct.\n\nMost arguments on this method are not required – you must only\nprovide an input and an element provider.\n\n### Note\nThis initializer is helpful if you have to nest an existing element that needs to be used in\na single place, without needing to define an entirely new type.\n\nIf your header or footer is to be used in more than one place, it is recommended that you\ncreate a `BlueprintHeaderFooterContent` struct to share logic to avoid duplicate code.\n\n### Example\n```\nsection.header = ElementHeaderFooter(album) { lhs, rhs in\n lhs.value != rhs.value\n}, element: { album in\n AlbumElement(...)\n}, background: { album in\n ...\n}, pressedBackground: album in\n ...\n}, configure: { header in\n ...\n}\n```", - "key.doc.declaration" : "public func ElementHeaderFooter(_ represented: Represented, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element? = { _ in nil }, pressedBackground: @escaping (Represented) -> Element? = { _ in nil }, configure: (inout HeaderFooter>) -> () = { _ in }) -> HeaderFooter>", - "key.doc.discussion" : [ - { - "Para" : "Most arguments on this method are not required – you must only provide an input and an element provider." - }, - { - "Para" : "This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type." - }, - { - "Para" : "If your header or footer is to be used in more than one place, it is recommended that you create a `BlueprintHeaderFooterContent` struct to share logic to avoid duplicate code." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.doc.full_as_xml" : "ElementHeaderFooter(_:isEquivalent:element:background:pressedBackground:configure:)<\/Name>s:16BlueprintUILists19ElementHeaderFooter_12isEquivalent7element10background17pressedBackground9configure10ListableUI0dE0VyAA0cdE7ContentVyxGGx_Sbx_xtc0aN00C0_pxcAoP_pSgxcAQxcyANzXEtlF<\/USR>public func ElementHeaderFooter<Represented>(_ represented: Represented, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element? = { _ in nil }, pressedBackground: @escaping (Represented) -> Element? = { _ in nil }, configure: (inout HeaderFooter<ElementHeaderFooterContent<Represented>>) -> () = { _ in }) -> HeaderFooter<ElementHeaderFooterContent<Represented>><\/Declaration>Provides a way to create a HeaderFooter<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintHeaderFooterContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your header or footer is to be used in more than one place, it is recommended that you create a BlueprintHeaderFooterContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 40, - "key.doc.name" : "ElementHeaderFooter(_:isEquivalent:element:background:pressedBackground:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 970, - "key.docoffset" : 135, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> ElementHeaderFooter<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> represented<\/decl.var.parameter.name>: Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, isEquivalent<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, element<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, background<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _ in nil }<\/decl.var.parameter>, pressedBackground<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _ in nil }<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><ElementHeaderFooterContent<\/ref.struct><Represented<\/ref.generic_type_param>>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> HeaderFooter<\/ref.struct><ElementHeaderFooterContent<\/ref.struct><Represented<\/ref.generic_type_param>>><\/decl.function.returntype><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 847, - "key.line" : 40, - "key.modulename" : "BlueprintUILists", - "key.name" : "ElementHeaderFooter(_:isEquivalent:element:background:pressedBackground:configure:)", - "key.namelength" : 443, - "key.nameoffset" : 1117, - "key.offset" : 1112, - "key.parsed_declaration" : "public func ElementHeaderFooter(\n _ represented : Represented,\n \n isEquivalent : @escaping (Represented, Represented) -> Bool,\n \n element : @escaping (Represented) -> Element,\n background : @escaping (Represented) -> Element? = { _ in nil },\n pressedBackground : @escaping (Represented) -> Element? = { _ in nil },\n \n configure : (inout HeaderFooter>) -> () = { _ in }\n \n) -> HeaderFooter>", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 40, - "key.related_decls" : [ - { - "key.annotated_decl" : "ElementHeaderFooter(_:element:background:pressedBackground:configure:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Represented<\/Declaration>", - "key.column" : 33, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 11, - "key.line" : 40, - "key.modulename" : "BlueprintUILists", - "key.name" : "Represented", - "key.namelength" : 11, - "key.nameoffset" : 1137, - "key.offset" : 1137, - "key.parsed_declaration" : "public func ElementHeaderFooter (Represented, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented) -> any Element, background: @escaping (Represented) -> (any Element)?, pressedBackground: @escaping (Represented) -> (any Element)?, configure: (inout HeaderFooter>) -> ()) -> HeaderFooter>", - "key.typeusr" : "$s_12isEquivalent7element10background17pressedBackground9configure10ListableUI12HeaderFooterVy16BlueprintUILists07ElementjK7ContentVyxGGx_Sbx_xtc0lI00N0_pxcAnO_pSgxcAPxcyAMzXEtcluD", - "key.usr" : "s:16BlueprintUILists19ElementHeaderFooter_12isEquivalent7element10background17pressedBackground9configure10ListableUI0dE0VyAA0cdE7ContentVyxGGx_Sbx_xtc0aN00C0_pxcAoP_pSgxcAQxcyANzXEtlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func ElementHeaderFooter<Represented>(_ represented: Represented<\/Type>, element: @escaping (Represented<\/Type>) -> Element<\/Type>, background: @escaping (Represented<\/Type>) -> Element<\/Type>? = { _ in nil }, pressedBackground: @escaping (Represented<\/Type>) -> Element<\/Type>? = { _ in nil }, configure: (inout HeaderFooter<\/Type><ElementHeaderFooterContent<\/Type><Represented<\/Type>>>) -> () = { _ in }) -> HeaderFooter<\/Type><ElementHeaderFooterContent<\/Type><Represented<\/Type>>> where Represented<\/Type> : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2883 - } - ], - "key.bodylength" : 339, - "key.bodyoffset" : 3353, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a way to create a `HeaderFooter` for your Blueprint elements without\nrequiring the creation of a new `BlueprintHeaderFooterContent` struct.\n\nMost arguments on this method are not required – you must only\nprovide an input and an element provider.\n\nNote\n----\nThis initializer is helpful if you have to nest an existing element that needs to be used in\na single place, without needing to define an entirely new type.\n\nIf your header or footer is to be used in more than one place, it is recommended that you\ncreate a `BlueprintHeaderFooterContent` struct to share logic to avoid duplicate code.\n\nExample\n-------\n```\nsection.header = ElementHeaderFooter(album) { album in\n AlbumElement(...)\n}, background: { album in\n ...\n}, pressedBackground: album in\n ...\n}, configure: { header in\n ...\n}\n```", - "key.doc.column" : 13, - "key.doc.comment" : "\nProvides a way to create a `HeaderFooter` for your Blueprint elements without\nrequiring the creation of a new `BlueprintHeaderFooterContent` struct.\n\nMost arguments on this method are not required – you must only\nprovide an input and an element provider.\n\nNote\n----\nThis initializer is helpful if you have to nest an existing element that needs to be used in\na single place, without needing to define an entirely new type.\n\nIf your header or footer is to be used in more than one place, it is recommended that you\ncreate a `BlueprintHeaderFooterContent` struct to share logic to avoid duplicate code.\n\nExample\n-------\n```\nsection.header = ElementHeaderFooter(album) { album in\n AlbumElement(...)\n}, background: { album in\n ...\n}, pressedBackground: album in\n ...\n}, configure: { header in\n ...\n}\n```", - "key.doc.declaration" : "public func ElementHeaderFooter(_ represented: Represented, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element? = { _ in nil }, pressedBackground: @escaping (Represented) -> Element? = { _ in nil }, configure: (inout HeaderFooter>) -> () = { _ in }) -> HeaderFooter> where Represented : Equatable", - "key.doc.discussion" : [ - { - "Para" : "Most arguments on this method are not required – you must only provide an input and an element provider." - }, - { - "Para" : "This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type." - }, - { - "Para" : "If your header or footer is to be used in more than one place, it is recommended that you create a `BlueprintHeaderFooterContent` struct to share logic to avoid duplicate code." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.doc.full_as_xml" : "ElementHeaderFooter(_:element:background:pressedBackground:configure:)<\/Name>s:16BlueprintUILists19ElementHeaderFooter_7element10background17pressedBackground9configure10ListableUI0dE0VyAA0cdE7ContentVyxGGx_0aL00C0_pxcAnO_pSgxcAPxcyAMzXEtSQRzlF<\/USR>public func ElementHeaderFooter<Represented>(_ represented: Represented, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element? = { _ in nil }, pressedBackground: @escaping (Represented) -> Element? = { _ in nil }, configure: (inout HeaderFooter<ElementHeaderFooterContent<Represented>>) -> () = { _ in }) -> HeaderFooter<ElementHeaderFooterContent<Represented>> where Represented : Equatable<\/Declaration>Provides a way to create a HeaderFooter<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintHeaderFooterContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your header or footer is to be used in more than one place, it is recommended that you create a BlueprintHeaderFooterContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 93, - "key.doc.name" : "ElementHeaderFooter(_:element:background:pressedBackground:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 922, - "key.docoffset" : 1961, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> ElementHeaderFooter<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> represented<\/decl.var.parameter.name>: Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, element<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, background<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _ in nil }<\/decl.var.parameter>, pressedBackground<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _ in nil }<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><ElementHeaderFooterContent<\/ref.struct><Represented<\/ref.generic_type_param>>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> HeaderFooter<\/ref.struct><ElementHeaderFooterContent<\/ref.struct><Represented<\/ref.generic_type_param>>><\/decl.function.returntype> where<\/syntaxtype.keyword> Represented<\/ref.generic_type_param> : Equatable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 803, - "key.line" : 93, - "key.modulename" : "BlueprintUILists", - "key.name" : "ElementHeaderFooter(_:element:background:pressedBackground:configure:)", - "key.namelength" : 399, - "key.nameoffset" : 2895, - "key.offset" : 2890, - "key.parsed_declaration" : "public func ElementHeaderFooter(\n _ represented : Represented,\n \n element : @escaping (Represented) -> Element,\n background : @escaping (Represented) -> Element? = { _ in nil },\n pressedBackground : @escaping (Represented) -> Element? = { _ in nil },\n \n configure : (inout HeaderFooter>) -> () = { _ in }\n \n) -> HeaderFooter>", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 93, - "key.related_decls" : [ - { - "key.annotated_decl" : "ElementHeaderFooter(_:isEquivalent:element:background:pressedBackground:configure:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Represented : Equatable<\/Type><\/Declaration>", - "key.column" : 33, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 2927 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name> : Equatable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 21, - "key.line" : 93, - "key.modulename" : "BlueprintUILists", - "key.name" : "Represented", - "key.namelength" : 11, - "key.nameoffset" : 2915, - "key.offset" : 2915, - "key.parsed_declaration" : "public func ElementHeaderFooter (Represented, element: @escaping (Represented) -> any Element, background: @escaping (Represented) -> (any Element)?, pressedBackground: @escaping (Represented) -> (any Element)?, configure: (inout HeaderFooter>) -> ()) -> HeaderFooter>", - "key.typeusr" : "$s_7element10background17pressedBackground9configure10ListableUI12HeaderFooterVy16BlueprintUILists07ElementhI7ContentVyxGGx_0jG00L0_pxcAmN_pSgxcAOxcyALzXEtcSQRzluD", - "key.usr" : "s:16BlueprintUILists19ElementHeaderFooter_7element10background17pressedBackground9configure10ListableUI0dE0VyAA0cdE7ContentVyxGGx_0aL00C0_pxcAnO_pSgxcAPxcyAMzXEtSQRzlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ElementHeaderFooterContent<Represented> : BlueprintHeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3894 - } - ], - "key.bodylength" : 735, - "key.bodyoffset" : 3980, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `BlueprintHeaderFooterContent` type that is used to provide\na lightweight way to present an `Element`, without needing to provide an entirely\nnew `BlueprintHeaderFooterContent` type.", - "key.doc.column" : 15, - "key.doc.comment" : "The `BlueprintHeaderFooterContent` type that is used to provide\na lightweight way to present an `Element`, without needing to provide an entirely\nnew `BlueprintHeaderFooterContent` type.", - "key.doc.declaration" : "public struct ElementHeaderFooterContent : BlueprintHeaderFooterContent", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.doc.full_as_xml" : "ElementHeaderFooterContent<\/Name>s:16BlueprintUILists26ElementHeaderFooterContentV<\/USR>public struct ElementHeaderFooterContent<Represented> : BlueprintHeaderFooterContent<\/Declaration>The BlueprintHeaderFooterContent<\/codeVoice> type that is used to provide a lightweight way to present an Element<\/codeVoice>, without needing to provide an entirely new BlueprintHeaderFooterContent<\/codeVoice> type.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 119, - "key.doc.name" : "ElementHeaderFooterContent", - "key.doc.type" : "Class", - "key.doclength" : 199, - "key.docoffset" : 3695, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 28, - "key.offset" : 3950 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ElementHeaderFooterContent<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>> : BlueprintHeaderFooterContent<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "BlueprintHeaderFooterContent" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 815, - "key.line" : 119, - "key.modulename" : "BlueprintUILists", - "key.name" : "ElementHeaderFooterContent", - "key.namelength" : 26, - "key.nameoffset" : 3908, - "key.offset" : 3901, - "key.parsed_declaration" : "public struct ElementHeaderFooterContent : BlueprintHeaderFooterContent", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Represented<\/Declaration>", - "key.column" : 42, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 11, - "key.line" : 119, - "key.modulename" : "BlueprintUILists", - "key.name" : "Represented", - "key.namelength" : 11, - "key.nameoffset" : 3935, - "key.offset" : 3935, - "key.parsed_declaration" : "public struct ElementHeaderFooterContentpublic let represented: Represented<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3985 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> represented<\/decl.name>: Represented<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 121, - "key.modulename" : "BlueprintUILists", - "key.name" : "represented", - "key.namelength" : 11, - "key.nameoffset" : 3996, - "key.offset" : 3992, - "key.parsed_declaration" : "public let represented : Represented", - "key.parsed_scope.end" : 121, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.typename" : "Represented", - "key.typeusr" : "$sxD", - "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV11representedxvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let isEquivalentProvider: (Represented<\/Type>, Represented<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isEquivalentProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 61, - "key.line" : 123, - "key.modulename" : "BlueprintUILists", - "key.name" : "isEquivalentProvider", - "key.namelength" : 20, - "key.nameoffset" : 4031, - "key.offset" : 4027, - "key.parsed_declaration" : "let isEquivalentProvider : (Represented, Represented) -> Bool", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 123, - "key.reusingastcontext" : false, - "key.typename" : "(Represented, Represented) -> Bool", - "key.typeusr" : "$sySbx_xtcD", - "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV20isEquivalentProviderySbx_xtcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let elementProvider: (Represented<\/Type>) -> Element<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> elementProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 124, - "key.modulename" : "BlueprintUILists", - "key.name" : "elementProvider", - "key.namelength" : 15, - "key.nameoffset" : 4097, - "key.offset" : 4093, - "key.parsed_declaration" : "let elementProvider : (Represented) -> Element", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 124, - "key.reusingastcontext" : false, - "key.typename" : "(Represented) -> any Element", - "key.typeusr" : "$sy11BlueprintUI7Element_pxcD", - "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV15elementProvidery0A2UI0C0_pxcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let backgroundProvider: (Represented<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> backgroundProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 125, - "key.modulename" : "BlueprintUILists", - "key.name" : "backgroundProvider", - "key.namelength" : 18, - "key.nameoffset" : 4148, - "key.offset" : 4144, - "key.parsed_declaration" : "let backgroundProvider : (Represented) -> Element?", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 125, - "key.reusingastcontext" : false, - "key.typename" : "(Represented) -> (any Element)?", - "key.typeusr" : "$sy11BlueprintUI7Element_pSgxcD", - "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV18backgroundProvidery0A2UI0C0_pSgxcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let pressedBackgroundProvider: (Represented<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> pressedBackgroundProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 57, - "key.line" : 126, - "key.modulename" : "BlueprintUILists", - "key.name" : "pressedBackgroundProvider", - "key.namelength" : 25, - "key.nameoffset" : 4203, - "key.offset" : 4199, - "key.parsed_declaration" : "let pressedBackgroundProvider : (Represented) -> Element?", - "key.parsed_scope.end" : 126, - "key.parsed_scope.start" : 126, - "key.reusingastcontext" : false, - "key.typename" : "(Represented) -> (any Element)?", - "key.typeusr" : "$sy11BlueprintUI7Element_pSgxcD", - "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV25pressedBackgroundProvidery0A2UI0C0_pSgxcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func isEquivalent(to other: `Self`) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4266 - } - ], - "key.bodylength" : 76, - "key.bodyoffset" : 4316, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 120, - "key.line" : 128, - "key.modulename" : "BlueprintUILists", - "key.name" : "isEquivalent(to:)", - "key.namelength" : 28, - "key.nameoffset" : 4278, - "key.offset" : 4273, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP12isEquivalent2toSbx_tF" - } - ], - "key.parsed_declaration" : "public func isEquivalent(to other: Self) -> Bool", - "key.parsed_scope.end" : 130, - "key.parsed_scope.start" : 128, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ElementHeaderFooterContent) -> (ElementHeaderFooterContent) -> Bool", - "key.typeusr" : "$s2toSb16BlueprintUILists26ElementHeaderFooterContentVyxG_tcD", - "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV12isEquivalent2toSbACyxG_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var elementRepresentation: Element<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4403 - } - ], - "key.bodylength" : 52, - "key.bodyoffset" : 4447, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Required. Create and return the Blueprint element used to represent the content.", - "key.doc.column" : 9, - "key.doc.declaration" : "var elementRepresentation: Element { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "elementRepresentation<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp<\/USR>var elementRepresentation: Element { get }<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 72, - "key.doc.name" : "elementRepresentation", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> elementRepresentation<\/decl.name>: Element<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 90, - "key.line" : 132, - "key.modulename" : "BlueprintUILists", - "key.name" : "elementRepresentation", - "key.namelength" : 21, - "key.nameoffset" : 4414, - "key.offset" : 4410, - "key.overrides" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp" - } - ], - "key.parsed_declaration" : "public var elementRepresentation : Element", - "key.parsed_scope.end" : 134, - "key.parsed_scope.start" : 132, - "key.reusingastcontext" : false, - "key.typename" : "any Element", - "key.typeusr" : "$s11BlueprintUI7Element_pD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var background: Element<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4510 - } - ], - "key.bodylength" : 55, - "key.bodyoffset" : 4544, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content.\nYou usually provide this method alongside `pressedBackground`, if your header\nhas an `onTap` handler.\n\n### Note\nThe default implementation of this method returns nil, and provides no background.\n", - "key.doc.column" : 9, - "key.doc.declaration" : "var background: Element? { get }", - "key.doc.discussion" : [ - { - "Para" : "The default implementation of this method returns nil, and provides no background." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "background<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp<\/USR>var background: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside pressedBackground<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 81, - "key.doc.name" : "background", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> background<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 83, - "key.line" : 136, - "key.modulename" : "BlueprintUILists", - "key.name" : "background", - "key.namelength" : 10, - "key.nameoffset" : 4521, - "key.offset" : 4517, - "key.overrides" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp" - } - ], - "key.parsed_declaration" : "public var background : Element?", - "key.parsed_scope.end" : 138, - "key.parsed_scope.start" : 136, - "key.reusingastcontext" : false, - "key.typename" : "(any Element)?", - "key.typeusr" : "$s11BlueprintUI7Element_pSgD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var pressedBackground: Element<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4610 - } - ], - "key.bodylength" : 62, - "key.bodyoffset" : 4651, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed.\nYou usually provide this method alongside `background`, if your header has an `onTap` handler.\n\n### Note\nThe default implementation of this method returns nil, and provides no selected background.\n", - "key.doc.column" : 9, - "key.doc.declaration" : "var pressedBackground: Element? { get }", - "key.doc.discussion" : [ - { - "Para" : "The default implementation of this method returns nil, and provides no selected background." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift", - "key.doc.full_as_xml" : "pressedBackground<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp<\/USR>var pressedBackground: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed. You usually provide this method alongside background<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 89, - "key.doc.name" : "pressedBackground", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pressedBackground<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 97, - "key.line" : 140, - "key.modulename" : "BlueprintUILists", - "key.name" : "pressedBackground", - "key.namelength" : 17, - "key.nameoffset" : 4621, - "key.offset" : 4617, - "key.overrides" : [ - { - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp" - } - ], - "key.parsed_declaration" : "public var pressedBackground : Element?", - "key.parsed_scope.end" : 142, - "key.parsed_scope.start" : 140, - "key.reusingastcontext" : false, - "key.typename" : "(any Element)?", - "key.typeusr" : "$s11BlueprintUI7Element_pSgD", - "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp" - } - ], - "key.typename" : "ElementHeaderFooterContent.Type", - "key.typeusr" : "$s16BlueprintUILists26ElementHeaderFooterContentVyxGmD", - "key.usr" : "s:16BlueprintUILists26ElementHeaderFooterContentV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Internal\/Assertions.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1816, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@inline(__always) func listableInternalFatal(_ message: @autoclosure () -> String<\/Type> = String(), file: StaticString<\/Type> = #file, line: UInt<\/Type> = #line) -> Never<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.inline", - "key.length" : 17, - "key.offset" : 114 - } - ], - "key.bodylength" : 238, - "key.bodyoffset" : 280, - "key.column" : 6, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Internal\/Assertions.swift", - "key.fully_annotated_decl" : "@inline(__always)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> listableInternalFatal<\/decl.name>(_<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>) -> Never<\/ref.enum><\/decl.function.returntype><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 387, - "key.line" : 12, - "key.modulename" : "BlueprintUILists", - "key.name" : "listableInternalFatal(_:file:line:)", - "key.namelength" : 132, - "key.nameoffset" : 137, - "key.offset" : 132, - "key.parsed_declaration" : "func listableInternalFatal(\n _ message: @autoclosure () -> String = String(),\n file: StaticString = #file,\n line: UInt = #line\n) -> Never", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(@autoclosure () -> String, StaticString, UInt) -> Never", - "key.typeusr" : "$s_4file4lines5NeverOSSyXK_s12StaticStringVSutcD", - "key.usr" : "s:16BlueprintUILists21listableInternalFatal_4file4lines5NeverOSSyXK_s12StaticStringVSutF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@inline(__always) func listableInternalPrecondition(_ condition: @autoclosure () -> Bool<\/Type>, _ message: @autoclosure () -> String<\/Type> = String(), file: StaticString<\/Type> = #file, line: UInt<\/Type> = #line)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.inline", - "key.length" : 17, - "key.offset" : 521 - } - ], - "key.bodylength" : 270, - "key.bodyoffset" : 727, - "key.column" : 6, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Internal\/Assertions.swift", - "key.fully_annotated_decl" : "@inline(__always)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> listableInternalPrecondition<\/decl.name>(_<\/decl.var.parameter.argument_label> condition<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>)<\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 459, - "key.line" : 31, - "key.modulename" : "BlueprintUILists", - "key.name" : "listableInternalPrecondition(_:_:file:line:)", - "key.namelength" : 181, - "key.nameoffset" : 544, - "key.offset" : 539, - "key.parsed_declaration" : "func listableInternalPrecondition(\n _ condition: @autoclosure () -> Bool,\n _ message: @autoclosure () -> String = String(),\n file: StaticString = #file,\n line: UInt = #line\n)", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(@autoclosure () -> Bool, @autoclosure () -> String, StaticString, UInt) -> ()", - "key.typeusr" : "$s__4file4lineySbyXK_SSyXKs12StaticStringVSutcD", - "key.usr" : "s:16BlueprintUILists28listableInternalPrecondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@inline(__always) func precondition(_ condition: @autoclosure () -> Bool<\/Type>, _ message: @autoclosure () -> String<\/Type> = String(), file: StaticString<\/Type> = #file, line: UInt<\/Type> = #line)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.inline", - "key.length" : 17, - "key.offset" : 1151 - } - ], - "key.bodylength" : 91, - "key.bodyoffset" : 1341, - "key.column" : 6, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "By default, `precondition` error messages are not included in release builds. We would like that!\nhttps:\/\/github.com\/apple\/swift\/issues\/43517", - "key.doc.column" : 6, - "key.doc.comment" : "By default, `precondition` error messages are not included in release builds. We would like that!\nhttps:\/\/github.com\/apple\/swift\/issues\/43517", - "key.doc.declaration" : "func precondition(_ condition: @autoclosure () -> Bool, _ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Internal\/Assertions.swift", - "key.doc.full_as_xml" : "precondition(_:_:file:line:)<\/Name>s:16BlueprintUILists12precondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF<\/USR>func precondition(_ condition: @autoclosure () -> Bool, _ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line)<\/Declaration>By default, precondition<\/codeVoice> error messages are not included in release builds. We would like that! https:\/\/github.com\/apple\/swift\/issues\/43517<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 55, - "key.doc.name" : "precondition(_:_:file:line:)", - "key.doc.type" : "Function", - "key.doclength" : 150, - "key.docoffset" : 1001, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Internal\/Assertions.swift", - "key.fully_annotated_decl" : "@inline(__always)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> precondition<\/decl.name>(_<\/decl.var.parameter.argument_label> condition<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>)<\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 264, - "key.line" : 55, - "key.modulename" : "BlueprintUILists", - "key.name" : "precondition(_:_:file:line:)", - "key.namelength" : 165, - "key.nameoffset" : 1174, - "key.offset" : 1169, - "key.parsed_declaration" : "func precondition(\n _ condition: @autoclosure () -> Bool,\n _ message: @autoclosure () -> String = String(),\n file: StaticString = #file,\n line: UInt = #line\n)", - "key.parsed_scope.end" : 64, - "key.parsed_scope.start" : 55, - "key.related_decls" : [ - { - "key.annotated_decl" : "precondition(_: @autoclosure () -> Bool, _: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(@autoclosure () -> Bool, @autoclosure () -> String, StaticString, UInt) -> ()", - "key.typeusr" : "$s__4file4lineySbyXK_SSyXKs12StaticStringVSutcD", - "key.usr" : "s:16BlueprintUILists12precondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@inline(__always) public func preconditionFailure(_ message: @autoclosure () -> String<\/Type> = String(), file: StaticString<\/Type> = #file, line: UInt<\/Type> = #line) -> Never<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1610 - }, - { - "key.attribute" : "source.decl.attribute.inline", - "key.length" : 17, - "key.offset" : 1592 - } - ], - "key.bodylength" : 51, - "key.bodyoffset" : 1763, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "By default, `preconditionFailure` error messages are not included in release builds. We would like that!\nhttps:\/\/github.com\/apple\/swift\/issues\/43517", - "key.doc.column" : 13, - "key.doc.comment" : "By default, `preconditionFailure` error messages are not included in release builds. We would like that!\nhttps:\/\/github.com\/apple\/swift\/issues\/43517", - "key.doc.declaration" : "public func preconditionFailure(_ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line) -> Never", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Internal\/Assertions.swift", - "key.doc.full_as_xml" : "preconditionFailure(_:file:line:)<\/Name>s:16BlueprintUILists19preconditionFailure_4file4lines5NeverOSSyXK_s12StaticStringVSutF<\/USR>public func preconditionFailure(_ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line) -> Never<\/Declaration>By default, preconditionFailure<\/codeVoice> error messages are not included in release builds. We would like that! https:\/\/github.com\/apple\/swift\/issues\/43517<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 69, - "key.doc.name" : "preconditionFailure(_:file:line:)", - "key.doc.type" : "Function", - "key.doclength" : 157, - "key.docoffset" : 1435, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Internal\/Assertions.swift", - "key.fully_annotated_decl" : "@inline(__always)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preconditionFailure<\/decl.name>(_<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>) -> Never<\/ref.enum><\/decl.function.returntype><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 198, - "key.line" : 69, - "key.modulename" : "BlueprintUILists", - "key.name" : "preconditionFailure(_:file:line:)", - "key.namelength" : 130, - "key.nameoffset" : 1622, - "key.offset" : 1617, - "key.parsed_declaration" : "public func preconditionFailure(\n _ message: @autoclosure () -> String = String(),\n file: StaticString = #file,\n line: UInt = #line\n) -> Never", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 69, - "key.related_decls" : [ - { - "key.annotated_decl" : "preconditionFailure(_: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line) -> Never<\/RelatedName>" - }, - { - "key.annotated_decl" : "preconditionFailure(_: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line) -> Never<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(@autoclosure () -> String, StaticString, UInt) -> Never", - "key.typeusr" : "$s_4file4lines5NeverOSSyXK_s12StaticStringVSutcD", - "key.usr" : "s:16BlueprintUILists19preconditionFailure_4file4lines5NeverOSSyXK_s12StaticStringVSutF" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 5542, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func ElementItem<Represented, IdentifierValue>(_ represented: Represented<\/Type>, id: KeyPath<\/Type><Represented<\/Type>, IdentifierValue<\/Type>>, isEquivalent: @escaping (Represented<\/Type>, Represented<\/Type>) -> Bool<\/Type>, element: @escaping (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>, background: @escaping (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>? = { _, _ in nil }, selectedBackground: @escaping (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>? = { _, _ in nil }, configure: (inout Item<\/Type><ElementItemContent<\/Type><Represented<\/Type>, IdentifierValue<\/Type>>>) -> () = { _ in }) -> Item<\/Type><ElementItemContent<\/Type><Represented<\/Type>, IdentifierValue<\/Type>>> where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1176 - } - ], - "key.bodylength" : 370, - "key.bodyoffset" : 1827, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a way to create an `Item` for your Blueprint elements without\nrequiring the creation of a new `BlueprintItemContent` struct.\n\nMost arguments on this method are not required – you must only\nprovide an input, a key path for the backing identifier value, and an element provider.\n\n### Note\nThis initializer is helpful if you have to nest an existing element that needs to be used in\na single place, without needing to define an entirely new type.\n\nIf your item is to be used in more than one place, it is recommended that you\ncreate a `BlueprintItemContent` struct to share logic to avoid duplicate code.\n\n### Example\n```swift\nElementItem(podcast, id: \\.name) { lhs, rhs in\n lhs.value != rhs.value\n} element: { podcast, info in\n PodcastElement(podcast: podcast)\n} background: { podcast, info in\n Box(...)\n} selectedBackground: { podcast, info in\n Box(...)\n} configure: { item in\n item.selectionStyle = .tappable\n}\n```", - "key.doc.column" : 13, - "key.doc.comment" : "\nProvides a way to create an `Item` for your Blueprint elements without\nrequiring the creation of a new `BlueprintItemContent` struct.\n\nMost arguments on this method are not required – you must only\nprovide an input, a key path for the backing identifier value, and an element provider.\n\n### Note\nThis initializer is helpful if you have to nest an existing element that needs to be used in\na single place, without needing to define an entirely new type.\n\nIf your item is to be used in more than one place, it is recommended that you\ncreate a `BlueprintItemContent` struct to share logic to avoid duplicate code.\n\n### Example\n```swift\nElementItem(podcast, id: \\.name) { lhs, rhs in\n lhs.value != rhs.value\n} element: { podcast, info in\n PodcastElement(podcast: podcast)\n} background: { podcast, info in\n Box(...)\n} selectedBackground: { podcast, info in\n Box(...)\n} configure: { item in\n item.selectionStyle = .tappable\n}\n```", - "key.doc.declaration" : "public func ElementItem(_ represented: Represented, id: KeyPath, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, configure: (inout Item>) -> () = { _ in }) -> Item> where IdentifierValue : Hashable", - "key.doc.discussion" : [ - { - "Para" : "Most arguments on this method are not required – you must only provide an input, a key path for the backing identifier value, and an element provider." - }, - { - "Para" : "This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type." - }, - { - "Para" : "If your item is to be used in more than one place, it is recommended that you create a `BlueprintItemContent` struct to share logic to avoid duplicate code." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.doc.full_as_xml" : "ElementItem(_:id:isEquivalent:element:background:selectedBackground:configure:)<\/Name>s:16BlueprintUILists11ElementItem_2id12isEquivalent7element10background18selectedBackground9configure10ListableUI0D0VyAA0cD7ContentVyxq_GGx_s7KeyPathCyxq_GSbx_xtc0aN00C0_px_AI05ApplydO4InfoVtcAsT_pSgx_AVtcAWx_AVtcyAOzXEtSHR_r0_lF<\/USR>public func ElementItem<Represented, IdentifierValue>(_ represented: Represented, id: KeyPath<Represented, IdentifierValue>, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, configure: (inout Item<ElementItemContent<Represented, IdentifierValue>>) -> () = { _ in }) -> Item<ElementItemContent<Represented, IdentifierValue>> where IdentifierValue : Hashable<\/Declaration>Provides a way to create an Item<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintItemContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input, a key path for the backing identifier value, and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your item is to be used in more than one place, it is recommended that you create a BlueprintItemContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 40, - "key.doc.name" : "ElementItem(_:id:isEquivalent:element:background:selectedBackground:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 1049, - "key.docoffset" : 127, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> ElementItem<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>, IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> represented<\/decl.var.parameter.name>: Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, id<\/decl.var.parameter.argument_label>: KeyPath<\/ref.class><Represented<\/ref.generic_type_param>, IdentifierValue<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, isEquivalent<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, element<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, background<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in nil }<\/decl.var.parameter>, selectedBackground<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in nil }<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> Item<\/ref.struct><ElementItemContent<\/ref.struct><Represented<\/ref.generic_type_param>, IdentifierValue<\/ref.generic_type_param>>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Item<\/ref.struct><ElementItemContent<\/ref.struct><Represented<\/ref.generic_type_param>, IdentifierValue<\/ref.generic_type_param>>><\/decl.function.returntype> where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 1015, - "key.line" : 40, - "key.modulename" : "BlueprintUILists", - "key.name" : "ElementItem(_:id:isEquivalent:element:background:selectedBackground:configure:)", - "key.namelength" : 579, - "key.nameoffset" : 1188, - "key.offset" : 1183, - "key.parsed_declaration" : "public func ElementItem(\n _ represented : Represented,\n \n id : KeyPath,\n \n isEquivalent : @escaping (Represented, Represented) -> Bool,\n\n element : @escaping (Represented, ApplyItemContentInfo) -> Element,\n background : @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil },\n selectedBackground : @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil },\n \n configure : (inout Item>) -> () = { _ in }\n) -> Item>", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 40, - "key.related_decls" : [ - { - "key.annotated_decl" : "ElementItem(_:id:element:background:selectedBackground:configure:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Represented<\/Declaration>", - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 11, - "key.line" : 40, - "key.modulename" : "BlueprintUILists", - "key.name" : "Represented", - "key.namelength" : 11, - "key.nameoffset" : 1200, - "key.offset" : 1200, - "key.parsed_declaration" : "public func ElementItemIdentifierValue : Hashable<\/Type><\/Declaration>", - "key.column" : 38, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 1229 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "IdentifierValue<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 24, - "key.line" : 40, - "key.modulename" : "BlueprintUILists", - "key.name" : "IdentifierValue", - "key.namelength" : 15, - "key.nameoffset" : 1213, - "key.offset" : 1213, - "key.parsed_declaration" : "public func ElementItem (Represented, id: KeyPath, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented, ApplyItemContentInfo) -> any Element, background: @escaping (Represented, ApplyItemContentInfo) -> (any Element)?, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> (any Element)?, configure: (inout Item>) -> ()) -> Item>", - "key.typeusr" : "$s_2id12isEquivalent7element10background18selectedBackground9configure10ListableUI4ItemVy16BlueprintUILists07ElementK7ContentVyxq_GGx_s7KeyPathCyxq_GSbx_xtc0lJ00N0_px_AG05ApplykO4InfoVtcArS_pSgx_AUtcAVx_AUtcyANzXEtcSHR_r0_luD", - "key.usr" : "s:16BlueprintUILists11ElementItem_2id12isEquivalent7element10background18selectedBackground9configure10ListableUI0D0VyAA0cD7ContentVyxq_GGx_s7KeyPathCyxq_GSbx_xtc0aN00C0_px_AI05ApplydO4InfoVtcAsT_pSgx_AVtcAWx_AVtcyAOzXEtSHR_r0_lF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func ElementItem<Represented, IdentifierValue>(_ represented: Represented<\/Type>, id: KeyPath<\/Type><Represented<\/Type>, IdentifierValue<\/Type>>, element: @escaping (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>, background: @escaping (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>? = { _, _ in nil }, selectedBackground: @escaping (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>? = { _, _ in nil }, configure: (inout Item<\/Type><ElementItemContent<\/Type><Represented<\/Type>, IdentifierValue<\/Type>>>) -> () = { _ in }) -> Item<\/Type><ElementItemContent<\/Type><Represented<\/Type>, IdentifierValue<\/Type>>> where Represented<\/Type> : Equatable<\/Type>, IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3190 - } - ], - "key.bodylength" : 370, - "key.bodyoffset" : 3781, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a way to create an `Item` for your Blueprint elements without\nrequiring the creation of a new `BlueprintItemContent` struct.\n\nMost arguments on this method are not required – you must only\nprovide an input, a key path for the backing identifier value, and an element provider.\n\n### Note\nThis initializer is helpful if you have to nest an existing element that needs to be used in\na single place, without needing to define an entirely new type.\n\nIf your item is to be used in more than one place, it is recommended that you\ncreate a `BlueprintItemContent` struct to share logic to avoid duplicate code.\n\n### Example\n```swift\nElementItem(podcast, id: \\.name) { podcast, info in\n PodcastElement(podcast: podcast)\n} background: { podcast, info in\n Box(...)\n} selectedBackground: { podcast, info in\n Box(...)\n} configure: { item in\n item.selectionStyle = .tappable\n}\n```", - "key.doc.column" : 13, - "key.doc.comment" : "\nProvides a way to create an `Item` for your Blueprint elements without\nrequiring the creation of a new `BlueprintItemContent` struct.\n\nMost arguments on this method are not required – you must only\nprovide an input, a key path for the backing identifier value, and an element provider.\n\n### Note\nThis initializer is helpful if you have to nest an existing element that needs to be used in\na single place, without needing to define an entirely new type.\n\nIf your item is to be used in more than one place, it is recommended that you\ncreate a `BlueprintItemContent` struct to share logic to avoid duplicate code.\n\n### Example\n```swift\nElementItem(podcast, id: \\.name) { podcast, info in\n PodcastElement(podcast: podcast)\n} background: { podcast, info in\n Box(...)\n} selectedBackground: { podcast, info in\n Box(...)\n} configure: { item in\n item.selectionStyle = .tappable\n}\n```", - "key.doc.declaration" : "public func ElementItem(_ represented: Represented, id: KeyPath, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, configure: (inout Item>) -> () = { _ in }) -> Item> where Represented : Equatable, IdentifierValue : Hashable", - "key.doc.discussion" : [ - { - "Para" : "Most arguments on this method are not required – you must only provide an input, a key path for the backing identifier value, and an element provider." - }, - { - "Para" : "This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type." - }, - { - "Para" : "If your item is to be used in more than one place, it is recommended that you create a `BlueprintItemContent` struct to share logic to avoid duplicate code." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.doc.full_as_xml" : "ElementItem(_:id:element:background:selectedBackground:configure:)<\/Name>s:16BlueprintUILists11ElementItem_2id7element10background18selectedBackground9configure10ListableUI0D0VyAA0cD7ContentVyxq_GGx_s7KeyPathCyxq_G0aL00C0_px_AH05ApplydM4InfoVtcArS_pSgx_AUtcAVx_AUtcyANzXEtSQRzSHR_r0_lF<\/USR>public func ElementItem<Represented, IdentifierValue>(_ represented: Represented, id: KeyPath<Represented, IdentifierValue>, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, configure: (inout Item<ElementItemContent<Represented, IdentifierValue>>) -> () = { _ in }) -> Item<ElementItemContent<Represented, IdentifierValue>> where Represented : Equatable, IdentifierValue : Hashable<\/Declaration>Provides a way to create an Item<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintItemContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input, a key path for the backing identifier value, and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your item is to be used in more than one place, it is recommended that you create a BlueprintItemContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 96, - "key.doc.name" : "ElementItem(_:id:element:background:selectedBackground:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 989, - "key.docoffset" : 2201, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> ElementItem<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>, IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> represented<\/decl.var.parameter.name>: Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, id<\/decl.var.parameter.argument_label>: KeyPath<\/ref.class><Represented<\/ref.generic_type_param>, IdentifierValue<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, element<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, background<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in nil }<\/decl.var.parameter>, selectedBackground<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in nil }<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> Item<\/ref.struct><ElementItemContent<\/ref.struct><Represented<\/ref.generic_type_param>, IdentifierValue<\/ref.generic_type_param>>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Item<\/ref.struct><ElementItemContent<\/ref.struct><Represented<\/ref.generic_type_param>, IdentifierValue<\/ref.generic_type_param>>><\/decl.function.returntype> where<\/syntaxtype.keyword> Represented<\/ref.generic_type_param> : Equatable<\/ref.protocol><\/decl.generic_type_requirement>, IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 955, - "key.line" : 96, - "key.modulename" : "BlueprintUILists", - "key.name" : "ElementItem(_:id:element:background:selectedBackground:configure:)", - "key.namelength" : 519, - "key.nameoffset" : 3202, - "key.offset" : 3197, - "key.parsed_declaration" : "public func ElementItem(\n _ represented : Represented,\n \n id : KeyPath,\n\n element : @escaping (Represented, ApplyItemContentInfo) -> Element,\n background : @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil },\n selectedBackground : @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil },\n \n configure : (inout Item>) -> () = { _ in }\n) -> Item>", - "key.parsed_scope.end" : 121, - "key.parsed_scope.start" : 96, - "key.related_decls" : [ - { - "key.annotated_decl" : "ElementItem(_:id:isEquivalent:element:background:selectedBackground:configure:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Represented : Equatable<\/Type><\/Declaration>", - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 3226 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name> : Equatable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 21, - "key.line" : 96, - "key.modulename" : "BlueprintUILists", - "key.name" : "Represented", - "key.namelength" : 11, - "key.nameoffset" : 3214, - "key.offset" : 3214, - "key.parsed_declaration" : "public func ElementItemIdentifierValue : Hashable<\/Type><\/Declaration>", - "key.column" : 48, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 3253 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "IdentifierValue<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 24, - "key.line" : 96, - "key.modulename" : "BlueprintUILists", - "key.name" : "IdentifierValue", - "key.namelength" : 15, - "key.nameoffset" : 3237, - "key.offset" : 3237, - "key.parsed_declaration" : "public func ElementItem (Represented, id: KeyPath, element: @escaping (Represented, ApplyItemContentInfo) -> any Element, background: @escaping (Represented, ApplyItemContentInfo) -> (any Element)?, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> (any Element)?, configure: (inout Item>) -> ()) -> Item>", - "key.typeusr" : "$s_2id7element10background18selectedBackground9configure10ListableUI4ItemVy16BlueprintUILists07ElementI7ContentVyxq_GGx_s7KeyPathCyxq_G0jH00L0_px_AF05ApplyiM4InfoVtcAqR_pSgx_ATtcAUx_ATtcyAMzXEtcSQRzSHR_r0_luD", - "key.usr" : "s:16BlueprintUILists11ElementItem_2id7element10background18selectedBackground9configure10ListableUI0D0VyAA0cD7ContentVyxq_GGx_s7KeyPathCyxq_G0aL00C0_px_AH05ApplydM4InfoVtcArS_pSgx_AUtcAVx_AUtcyANzXEtSQRzSHR_r0_lF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ElementItemContent<Represented, IdentifierValue> : BlueprintItemContent<\/Type> where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4338 - } - ], - "key.bodylength" : 1106, - "key.bodyoffset" : 4434, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `BlueprintItemContent` type that is used to provide\na lightweight way to present an `Element`, without needing to provide an entirely\nnew `BlueprintItemContent` type.", - "key.doc.column" : 15, - "key.doc.comment" : "The `BlueprintItemContent` type that is used to provide\na lightweight way to present an `Element`, without needing to provide an entirely\nnew `BlueprintItemContent` type.", - "key.doc.declaration" : "public struct ElementItemContent : BlueprintItemContent where IdentifierValue : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.doc.full_as_xml" : "ElementItemContent<\/Name>s:16BlueprintUILists18ElementItemContentV<\/USR>public struct ElementItemContent<Represented, IdentifierValue> : BlueprintItemContent where IdentifierValue : Hashable<\/Declaration>The BlueprintItemContent<\/codeVoice> type that is used to provide a lightweight way to present an Element<\/codeVoice>, without needing to provide an entirely new BlueprintItemContent<\/codeVoice> type.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 127, - "key.doc.name" : "ElementItemContent", - "key.doc.type" : "Class", - "key.doclength" : 183, - "key.docoffset" : 4155, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 20, - "key.offset" : 4412 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ElementItemContent<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>, IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>> : BlueprintItemContent<\/ref.protocol> where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "BlueprintItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1196, - "key.line" : 127, - "key.modulename" : "BlueprintUILists", - "key.name" : "ElementItemContent", - "key.namelength" : 18, - "key.nameoffset" : 4352, - "key.offset" : 4345, - "key.parsed_declaration" : "public struct ElementItemContent : BlueprintItemContent", - "key.parsed_scope.end" : 156, - "key.parsed_scope.start" : 127, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Represented<\/Declaration>", - "key.column" : 34, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 11, - "key.line" : 127, - "key.modulename" : "BlueprintUILists", - "key.name" : "Represented", - "key.namelength" : 11, - "key.nameoffset" : 4371, - "key.offset" : 4371, - "key.parsed_declaration" : "public struct ElementItemContentIdentifierValue : Hashable<\/Type><\/Declaration>", - "key.column" : 47, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `Hashable` type which is returned from ``ItemContent\/identifierValue-swift.property``,\nwhich is used to identify the ``ItemContent`` when it put into a list.\n\nThe ``ItemContent\/identifierValue-swift.property`` is used to unique the item,\ncontrol its lifetime, and identify it across update operations.\n\nSee ``ItemContent\/identifierValue-swift.property`` for more.", - "key.doc.column" : 20, - "key.doc.declaration" : "associatedtype IdentifierValue : Hashable", - "key.doc.discussion" : [ - { - "Para" : "The `ItemContent\/identifierValue-swift.property` is used to unique the item, control its lifetime, and identify it across update operations." - }, - { - "Para" : "See `ItemContent\/identifierValue-swift.property` for more." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "IdentifierValue<\/Name>s:10ListableUI11ItemContentP15IdentifierValueQa<\/USR>associatedtype IdentifierValue : Hashable<\/Declaration>A Hashable<\/codeVoice> type which is returned from ItemContent\/identifierValue-swift.property<\/codeVoice>, which is used to identify the ItemContent<\/codeVoice> when it put into a list.<\/Para><\/Abstract>The ItemContent\/identifierValue-swift.property<\/codeVoice> is used to unique the item, control its lifetime, and identify it across update operations.<\/Para>See ItemContent\/identifierValue-swift.property<\/codeVoice> for more.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 56, - "key.doc.name" : "IdentifierValue", - "key.doc.type" : "Other", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 4400 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "IdentifierValue<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 24, - "key.line" : 127, - "key.modulename" : "BlueprintUILists", - "key.name" : "IdentifierValue", - "key.namelength" : 15, - "key.nameoffset" : 4384, - "key.offset" : 4384, - "key.parsed_declaration" : "public struct ElementItemContentIdentifierValue<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "IdentifierValue.Type", - "key.typeusr" : "$sq_mD", - "key.usr" : "s:10ListableUI11ItemContentP15IdentifierValueQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let represented: Represented<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4439 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> represented<\/decl.name>: Represented<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 129, - "key.modulename" : "BlueprintUILists", - "key.name" : "represented", - "key.namelength" : 11, - "key.nameoffset" : 4450, - "key.offset" : 4446, - "key.parsed_declaration" : "public let represented : Represented", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 129, - "key.reusingastcontext" : false, - "key.typename" : "Represented", - "key.typeusr" : "$sxD", - "key.usr" : "s:16BlueprintUILists18ElementItemContentV11representedxvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let idValueKeyPath: KeyPath<\/Type><Represented<\/Type>, IdentifierValue<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> idValueKeyPath<\/decl.name>: KeyPath<\/ref.class><Represented<\/ref.generic_type_param>, IdentifierValue<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 58, - "key.line" : 131, - "key.modulename" : "BlueprintUILists", - "key.name" : "idValueKeyPath", - "key.namelength" : 14, - "key.nameoffset" : 4485, - "key.offset" : 4481, - "key.parsed_declaration" : "let idValueKeyPath : KeyPath", - "key.parsed_scope.end" : 131, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.typename" : "KeyPath", - "key.typeusr" : "$ss7KeyPathCyxq_GD", - "key.usr" : "s:16BlueprintUILists18ElementItemContentV14idValueKeyPaths0hI0Cyxq_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let isEquivalentProvider: (Represented<\/Type>, Represented<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isEquivalentProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 61, - "key.line" : 132, - "key.modulename" : "BlueprintUILists", - "key.name" : "isEquivalentProvider", - "key.namelength" : 20, - "key.nameoffset" : 4548, - "key.offset" : 4544, - "key.parsed_declaration" : "let isEquivalentProvider : (Represented, Represented) -> Bool", - "key.parsed_scope.end" : 132, - "key.parsed_scope.start" : 132, - "key.reusingastcontext" : false, - "key.typename" : "(Represented, Represented) -> Bool", - "key.typeusr" : "$sySbx_xtcD", - "key.usr" : "s:16BlueprintUILists18ElementItemContentV20isEquivalentProviderySbx_xtcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let elementProvider: (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> elementProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 68, - "key.line" : 133, - "key.modulename" : "BlueprintUILists", - "key.name" : "elementProvider", - "key.namelength" : 15, - "key.nameoffset" : 4614, - "key.offset" : 4610, - "key.parsed_declaration" : "let elementProvider : (Represented, ApplyItemContentInfo) -> Element", - "key.parsed_scope.end" : 133, - "key.parsed_scope.start" : 133, - "key.reusingastcontext" : false, - "key.typename" : "(Represented, ApplyItemContentInfo) -> any Element", - "key.typeusr" : "$sy11BlueprintUI7Element_px_08ListableB020ApplyItemContentInfoVtcD", - "key.usr" : "s:16BlueprintUILists18ElementItemContentV15elementProvidery0A2UI0C0_px_08ListableH005ApplydE4InfoVtcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let backgroundProvider: (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> backgroundProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 72, - "key.line" : 134, - "key.modulename" : "BlueprintUILists", - "key.name" : "backgroundProvider", - "key.namelength" : 18, - "key.nameoffset" : 4687, - "key.offset" : 4683, - "key.parsed_declaration" : "let backgroundProvider : (Represented, ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 134, - "key.parsed_scope.start" : 134, - "key.reusingastcontext" : false, - "key.typename" : "(Represented, ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$sy11BlueprintUI7Element_pSgx_08ListableB020ApplyItemContentInfoVtcD", - "key.usr" : "s:16BlueprintUILists18ElementItemContentV18backgroundProvidery0A2UI0C0_pSgx_08ListableH005ApplydE4InfoVtcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let selectedBackgroundProvider: (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> selectedBackgroundProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 80, - "key.line" : 135, - "key.modulename" : "BlueprintUILists", - "key.name" : "selectedBackgroundProvider", - "key.namelength" : 26, - "key.nameoffset" : 4764, - "key.offset" : 4760, - "key.parsed_declaration" : "let selectedBackgroundProvider : (Represented, ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 135, - "key.reusingastcontext" : false, - "key.typename" : "(Represented, ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$sy11BlueprintUI7Element_pSgx_08ListableB020ApplyItemContentInfoVtcD", - "key.usr" : "s:16BlueprintUILists18ElementItemContentV26selectedBackgroundProvidery0A2UI0C0_pSgx_08ListableI005ApplydE4InfoVtcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var identifierValue: IdentifierValue<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4850 - } - ], - "key.bodylength" : 60, - "key.bodyoffset" : 4895, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used to unique the item, control its lifetime, and identify it across update operations.\n\n### Identifier Stability\nThis value must be stable. Changing the `identifier` will mean that the list will think\nthe item has been removed from the list (and a new one inserted), which can cause\nundesired animations or other undesired behavior when a new view is created and inserted.\n\n```swift\nstruct MyItemContent : ItemContent {\n\n var identifierValue : UUID {\n \/\/ 🚫 Wrong; will change every time the item is accessed.\n UUID()\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let contentID = UUID()\n\n var identifierValue : UUID {\n \/\/ 🚫 Also wrong, will change every time the item is built.\n self.contentID()\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model \/\/ Conforms to Hashable\n\n var identifierValue : String {\n \/\/ 🚫 Wrong! This will change the value of the identifier\n \/\/ any time any value within our content changes.\n\n self.model\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : String {\n \/\/ 🚫 Still wrong! Same as above, but with reflection. You should\n \/\/ never used a reflecting or describing method to generate an identifier.\n\n String(describing\/reflecting: self.model)\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ ✅ Good! Stable across updates.\n self.model.serverID\n }\n}\n```\n\nIdentifier stability is especially important with items that embed interactive controls, like buttons, sliders,\ntext fields, etc. The identifier of the control should be stable and **independent of the value\nthe control is currently representing**. Including the value the control is currently representing\nin the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one.\n```swift\nstruct MySearchBarRow : ItemContent {\n\n let searchText : String\n\n var identifierValue : String {\n \/\/ 🚫 Wrong; identifier will change every time the search text changes.\n searchText\n }\n}\n\nstruct MySearchBarRow : ItemContent {\n\n let searchText : String\n let id : String \/\/ Something like \"item-search\".\n\n var identifierValue : String {\n \/\/ ✅ Good! Stable across updates.\n id\n }\n}\n```\n\n### Identifier Uniqueness\nWhile identifiers do need to be _stable_, they do not need to be globally unique – the list will make a\n\"best guess\" if there are multiple items with the same identifier. However, diffing of changes\nwill be more visually correct with a unique identifier.\n\nIf you are backing your content with some sort of client or server-provided data, consider using its\nserver or client UUID here, or some other stable unique identifier from the underlying data model.\n\nGenerally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID\nas mentioned above. For something without the concept of identity, consider providing a value\nbased on what the content represents (eg, a row title like \"Settings\").\n\n```swift\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ 🚫 Likely wrong. If entered by the user,\n \/\/ there could be many items with this name,\n \/\/ or multiple items with no name at all, leading\n \/\/ to identifier collisions.\n\n self.model.name\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let setting : Setting\n\n var identifierValue : UUID {\n \/\/ 🤔 Probably good enough! Since this item\n \/\/ represents a setting in a settings screen,\n \/\/ returning the title of the row is likely\n \/\/ unique enough to guarantee stability.\n\n self.setting.name \/\/ Something like \"Location Services\".\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ ✅ Good! Very unique.\n self.model.serverID\n }\n}\n```\n\n### Identifier Leverages The Type System\nYour ``ItemContent\/identifierValue-swift.property`` gets wrapped up in an `Identifier`\nwhen it used by the list to unique the item, control its lifetime, and identify it across update operations. This\nadditional type information is used to further unique the identifier. You do not need to provide any\nadditional type-salting and uniquing information in your ``ItemContent\/identifierValue-swift.property`` besides the value from your content.\n\nEven once the ``Identifier`` is type-erased to ``AnyIdentifier``, this type information is retained:\n```swift\nlet first : AnyIdentifier = Identifier(\"a-value\")\nlet second : AnyIdentifier = Identifier(\"a-value\")\n\nlet isEqual = first == second \/\/ false\n```\n\nIn practical terms, this means that your ``ItemContent\/identifierValue-swift.property`` implementation should be:\n```swift\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : String {\n \/\/ 🚫 Not needed: Type information will be encoded into the Identifier.\n \"MyItemContent-\\(model.serverID)\"\n }\n}\n\nstruct MySearchBarRow : ItemContent {\n\n let model : Model\n\n var identifierValue : searchText {\n \/\/ ✅ Good! No need for the string interpolation.\n model.serverID\n }\n}\n```", - "key.doc.column" : 9, - "key.doc.declaration" : "var identifierValue: Self.IdentifierValue { get }", - "key.doc.discussion" : [ - { - "Para" : "This value must be stable. Changing the `identifier` will mean that the list will think the item has been removed from the list (and a new one inserted), which can cause undesired animations or other undesired behavior when a new view is created and inserted." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Identifier stability is especially important with items that embed interactive controls, like buttons, sliders, text fields, etc. The identifier of the control should be stable and . Including the value the control is currently representing in the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one." - }, - { - "CodeListing" : "" - }, - { - "Para" : "While identifiers do need to be , they do not need to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more visually correct with a unique identifier." - }, - { - "Para" : "If you are backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other stable unique identifier from the underlying data model." - }, - { - "Para" : "Generally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID as mentioned above. For something without the concept of identity, consider providing a value based on what the content represents (eg, a row title like “Settings”)." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Your `ItemContent\/identifierValue-swift.property` gets wrapped up in an `Identifier` when it used by the list to unique the item, control its lifetime, and identify it across update operations. This additional type information is used to further unique the identifier. You do not need to provide any additional type-salting and uniquing information in your `ItemContent\/identifierValue-swift.property` besides the value from your content." - }, - { - "Para" : "Even once the `Identifier` is type-erased to `AnyIdentifier`, this type information is retained:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "In practical terms, this means that your `ItemContent\/identifierValue-swift.property` implementation should be:" - }, - { - "CodeListing" : "" - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "identifierValue<\/Name>s:10ListableUI11ItemContentP15identifierValue010IdentifierF0Qzvp<\/USR>var identifierValue: Self.IdentifierValue { get }<\/Declaration>Used to unique the item, control its lifetime, and identify it across update operations.<\/Para><\/Abstract>]]><\/rawHTML>Identifier Stability]]><\/rawHTML>This value must be stable. Changing the identifier<\/codeVoice> will mean that the list will think the item has been removed from the list (and a new one inserted), which can cause undesired animations or other undesired behavior when a new view is created and inserted.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Identifier stability is especially important with items that embed interactive controls, like buttons, sliders, text fields, etc. The identifier of the control should be stable and independent of the value the control is currently representing<\/bold>. Including the value the control is currently representing in the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Identifier Uniqueness]]><\/rawHTML>While identifiers do need to be stable<\/emphasis>, they do not need to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more visually correct with a unique identifier.<\/Para>If you are backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other stable unique identifier from the underlying data model.<\/Para>Generally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID as mentioned above. For something without the concept of identity, consider providing a value based on what the content represents (eg, a row title like “Settings”).<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Identifier Leverages The Type System]]><\/rawHTML>Your ItemContent\/identifierValue-swift.property<\/codeVoice> gets wrapped up in an Identifier<YourItemContent, IdentifierValue><\/codeVoice> when it used by the list to unique the item, control its lifetime, and identify it across update operations. This additional type information is used to further unique the identifier. You do not need to provide any additional type-salting and uniquing information in your ItemContent\/identifierValue-swift.property<\/codeVoice> besides the value from your content.<\/Para>Even once the Identifier<\/codeVoice> is type-erased to AnyIdentifier<\/codeVoice>, this type information is retained:<\/Para>(\"a-value\")]]><\/zCodeLineNumbered>(\"a-value\")]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In practical terms, this means that your ItemContent\/identifierValue-swift.property<\/codeVoice> implementation should be:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 235, - "key.doc.name" : "identifierValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifierValue<\/decl.name>: IdentifierValue<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 99, - "key.line" : 137, - "key.modulename" : "BlueprintUILists", - "key.name" : "identifierValue", - "key.namelength" : 15, - "key.nameoffset" : 4861, - "key.offset" : 4857, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP15identifierValue010IdentifierF0Qzvp" - } - ], - "key.parsed_declaration" : "public var identifierValue: IdentifierValue", - "key.parsed_scope.end" : 139, - "key.parsed_scope.start" : 137, - "key.reusingastcontext" : false, - "key.typename" : "IdentifierValue", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI11ItemContentP15identifierValue010IdentifierF0Qzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func isEquivalent(to other: `Self`) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4966 - } - ], - "key.bodylength" : 76, - "key.bodyoffset" : 5016, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used by the list to determine when the content of the item has changed; in order to\nremeasure the item and re-layout the list.\n\nYou should return `false` from this method when any content within your item that\naffects visual appearance or layout (and in particular, sizing) changes. When the list\nreceives `false` back from this method, it will invalidate any cached sizing it has stored\nfor the item, and re-measure + re-layout the content.\n\n```swift\nstruct MyItemContent : ItemContent, Equatable {\n\n var identifierValue : UUID\n var title : String\n var detail : String\n var theme : MyTheme\n var onTapDetail : () -> ()\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ 🚫 Missing checks for title and detail.\n \/\/ If they change, they likely affect sizing,\n \/\/ which would result in incorrect item sizing.\n\n self.theme == other.theme\n }\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ 🚫 Missing check for theme.\n \/\/ If the theme changed; its likely that the device's\n \/\/ accessibility settings changed; dark mode was enabled,\n \/\/ etc. All of these can affect the appearance or sizing\n \/\/ of the item.\n\n self.title == other.title &&\n self.detail == other.detail\n }\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ ✅ Checking all parameters which can affect appearance + layout.\n \/\/ Not checking identifierValue or onTapDetail, since they do not affect appearance + layout.\n\n self.theme == other.theme &&\n self.title == other.title &&\n self.detail == other.detail\n }\n}\n\nstruct MyItemContent : ItemContent, Equatable {\n \/\/ ✅ Nothing else needed!\n \/\/ `Equatable` conformance provides `isEquivalent(to:) for free!`\n}\n```\n\n#### Note\nIf your ``ItemContent`` conforms to ``Equatable``, there is a default\nimplementation of this method which simply returns `self == other`.\n", - "key.doc.column" : 10, - "key.doc.declaration" : "func isEquivalent(to other: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "You should return `false` from this method when any content within your item that affects visual appearance or layout (and in particular, sizing) changes. When the list receives `false` back from this method, it will invalidate any cached sizing it has stored for the item, and re-measure + re-layout the content." - }, - { - "CodeListing" : "" - }, - { - "Para" : "If your `ItemContent` conforms to `Equatable`, there is a default implementation of this method which simply returns `self == other`." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Used by the list to determine when the content of the item has changed; in order to remeasure the item and re-layout the list.<\/Para><\/Abstract>You should return false<\/codeVoice> from this method when any content within your item that affects visual appearance or layout (and in particular, sizing) changes. When the list receives false<\/codeVoice> back from this method, it will invalidate any cached sizing it has stored for the item, and re-measure + re-layout the content.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ()]]><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>If your ItemContent<\/codeVoice> conforms to Equatable<\/codeVoice>, there is a default implementation of this method which simply returns self == other<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 298, - "key.doc.name" : "isEquivalent(to:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 120, - "key.line" : 141, - "key.modulename" : "BlueprintUILists", - "key.name" : "isEquivalent(to:)", - "key.namelength" : 28, - "key.nameoffset" : 4978, - "key.offset" : 4973, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF" - } - ], - "key.parsed_declaration" : "public func isEquivalent(to other: Self) -> Bool", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 141, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ElementItemContent) -> (ElementItemContent) -> Bool", - "key.typeusr" : "$s2toSb16BlueprintUILists18ElementItemContentVyxq_G_tcD", - "key.usr" : "s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func element(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5103 - } - ], - "key.bodylength" : 58, - "key.bodyoffset" : 5168, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Required. Create and return the Blueprint element used to represent the content.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.", - "key.doc.column" : 10, - "key.doc.declaration" : "func element(with info: ApplyItemContentInfo) -> Element", - "key.doc.discussion" : [ - { - "Para" : "You can use the provided `ApplyItemContentInfo` to vary the appearance of the element based on the current state of the item." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "element(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF<\/USR>func element(with info: ApplyItemContentInfo) -> Element<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>This documentation comment was inherited from BlueprintItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 73, - "key.doc.name" : "element(with:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> element<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 117, - "key.line" : 145, - "key.modulename" : "BlueprintUILists", - "key.name" : "element(with:)", - "key.namelength" : 40, - "key.nameoffset" : 5115, - "key.offset" : 5110, - "key.overrides" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF" - } - ], - "key.parsed_declaration" : "public func element(with info: ApplyItemContentInfo) -> Element", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 145, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ElementItemContent) -> (ApplyItemContentInfo) -> any Element", - "key.typeusr" : "$s4with11BlueprintUI7Element_p08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func backgroundElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5237 - } - ], - "key.bodylength" : 61, - "key.bodyoffset" : 5313, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content.\nYou usually provide this method alongside `selectedBackgroundElement`, if your content\nsupports selection or highlighting.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no background.", - "key.doc.column" : 10, - "key.doc.declaration" : "func backgroundElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.discussion" : [ - { - "Para" : "You can use the provided `ApplyItemContentInfo` to vary the appearance of the element based on the current state of the item." - }, - { - "Para" : "The default implementation of this method returns nil, and provides no background." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "backgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF<\/USR>func backgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside selectedBackgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para>This documentation comment was inherited from BlueprintItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 84, - "key.doc.name" : "backgroundElement(with:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> backgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 131, - "key.line" : 149, - "key.modulename" : "BlueprintUILists", - "key.name" : "backgroundElement(with:)", - "key.namelength" : 50, - "key.nameoffset" : 5249, - "key.offset" : 5244, - "key.overrides" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF" - } - ], - "key.parsed_declaration" : "public func backgroundElement(with info: ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 151, - "key.parsed_scope.start" : 149, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ElementItemContent) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func selectedBackgroundElement(with info: ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5385 - } - ], - "key.bodylength" : 69, - "key.bodyoffset" : 5469, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Optional. Create and return the Blueprint element used to represent the background of the content when it is selected or highlighted.\nYou usually provide this method alongside `backgroundElement`, if your content supports selection or highlighting.\n\nYou can use the provided `ApplyItemContentInfo` to vary the appearance of the element\nbased on the current state of the item.\n\n### Note\nThe default implementation of this method returns nil, and provides no selected background.", - "key.doc.column" : 10, - "key.doc.declaration" : "func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?", - "key.doc.discussion" : [ - { - "Para" : "You can use the provided `ApplyItemContentInfo` to vary the appearance of the element based on the current state of the item." - }, - { - "Para" : "The default implementation of this method returns nil, and provides no selected background." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/BlueprintItemContent.swift", - "key.doc.full_as_xml" : "selectedBackgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is selected or highlighted. You usually provide this method alongside backgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para>This documentation comment was inherited from BlueprintItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 94, - "key.doc.name" : "selectedBackgroundElement(with:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> selectedBackgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 147, - "key.line" : 153, - "key.modulename" : "BlueprintUILists", - "key.name" : "selectedBackgroundElement(with:)", - "key.namelength" : 58, - "key.nameoffset" : 5397, - "key.offset" : 5392, - "key.overrides" : [ - { - "key.usr" : "s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" - } - ], - "key.parsed_declaration" : "public func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?", - "key.parsed_scope.end" : 155, - "key.parsed_scope.start" : 153, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ElementItemContent) -> (ApplyItemContentInfo) -> (any Element)?", - "key.typeusr" : "$s4with11BlueprintUI7Element_pSg08ListableC020ApplyItemContentInfoV_tcD", - "key.usr" : "s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF" - } - ], - "key.typename" : "ElementItemContent.Type", - "key.typeusr" : "$s16BlueprintUILists18ElementItemContentVyxq_GmD", - "key.usr" : "s:16BlueprintUILists18ElementItemContentV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.ContentContext.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 606, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "struct Environment<\/Declaration>", - "key.bodylength" : 324, - "key.bodyoffset" : 165, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Environment is a container for values to be passed down an element tree.\n\nEnvironment values are not resolved until the tree is being rendered, so they do not need to be\nexplicitly passed to elements at the time they are created.\n\nEnvironment key-value pairs are strongly typed: keys are types conforming to the\n`EnvironmentKey` protocol, and each key's value is the type of that key's\n`EnvironmentKey.Value` associated value. Keys must provide a default value.\n\n## Example\n\nTo set an environment value, so that it will cascade to child elements, use\n`AdaptedEnvironment`. Here, every element in `childElement` will have access to `someValue`\nvia the key `MyEnvironmentKey`.\n\n AdaptedEnvironment(\n key: MyEnvironmentKey.self,\n value: someValue,\n wrapping: childElement\n )\n\nTo read an environment value, use `EnvironmentReader`. If this element were part of the child\nelement in the previous example, `myValue` would be set to `someValue`. If the key had not\nbeen set in an ancestor element, the value would be `MyEnvironmentKey.defaultValue`.\n\n struct MyElement: ProxyElement {\n var elementRepresentation: Element {\n return EnvironmentReader { environment -> Element in\n let myValue = environment[MyEnvironmentKey.self]\n return SomeElement(using: myValue)\n }\n }\n }", - "key.doc.column" : 15, - "key.doc.declaration" : "struct Environment", - "key.doc.discussion" : [ - { - "Para" : "Environment values are not resolved until the tree is being rendered, so they do not need to be explicitly passed to elements at the time they are created." - }, - { - "Para" : "Environment key-value pairs are strongly typed: keys are types conforming to the `EnvironmentKey` protocol, and each key’s value is the type of that key’s `EnvironmentKey.Value` associated value. Keys must provide a default value." - }, - { - "Para" : "To set an environment value, so that it will cascade to child elements, use `AdaptedEnvironment`. Here, every element in `childElement` will have access to `someValue` via the key `MyEnvironmentKey`." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To read an environment value, use `EnvironmentReader`. If this element were part of the child element in the previous example, `myValue` would be set to `someValue`. If the key had not been set in an ancestor element, the value would be `MyEnvironmentKey.defaultValue`." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Environment\/Environment.swift", - "key.doc.full_as_xml" : "Environment<\/Name>s:11BlueprintUI11EnvironmentV<\/USR>struct Environment<\/Declaration>Environment is a container for values to be passed down an element tree.<\/Para><\/Abstract>Environment values are not resolved until the tree is being rendered, so they do not need to be explicitly passed to elements at the time they are created.<\/Para>Environment key-value pairs are strongly typed: keys are types conforming to the EnvironmentKey<\/codeVoice> protocol, and each key’s value is the type of that key’s EnvironmentKey.Value<\/codeVoice> associated value. Keys must provide a default value.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML>To set an environment value, so that it will cascade to child elements, use AdaptedEnvironment<\/codeVoice>. Here, every element in childElement<\/codeVoice> will have access to someValue<\/codeVoice> via the key MyEnvironmentKey<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To read an environment value, use EnvironmentReader<\/codeVoice>. If this element were part of the child element in the previous example, myValue<\/codeVoice> would be set to someValue<\/codeVoice>. If the key had not been set in an ancestor element, the value would be MyEnvironmentKey.defaultValue<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered> Element in]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 37, - "key.doc.name" : "Environment", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Environment\/Environment.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Environment<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 348, - "key.line" : 37, - "key.modulename" : "BlueprintUI", - "key.name" : "Environment", - "key.namelength" : 11, - "key.nameoffset" : 152, - "key.offset" : 142, - "key.parsed_declaration" : "extension Environment", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var listContentContext: ContentContext<\/Type>? { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 324 - } - ], - "key.bodylength" : 114, - "key.bodyoffset" : 373, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applies the provided `ContentContext` to the list when it's updated by Blueprint.\n\nSee `ContentContext` for more information.", - "key.doc.column" : 16, - "key.doc.comment" : "Applies the provided `ContentContext` to the list when it's updated by Blueprint.\n\nSee `ContentContext` for more information.", - "key.doc.declaration" : "public var listContentContext: ContentContext? { get set }", - "key.doc.discussion" : [ - { - "Para" : "See `ContentContext` for more information." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.ContentContext.swift", - "key.doc.full_as_xml" : "listContentContext<\/Name>s:11BlueprintUI11EnvironmentV0A7UIListsE18listContentContext08ListableB00fG0VSgvp<\/USR>public var listContentContext: ContentContext? { get set }<\/Declaration>Applies the provided ContentContext<\/codeVoice> to the list when it’s updated by Blueprint.<\/Para><\/Abstract>See ContentContext<\/codeVoice> for more information.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "listContentContext", - "key.doc.type" : "Other", - "key.doclength" : 145, - "key.docoffset" : 175, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.ContentContext.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listContentContext<\/decl.name>: ContentContext<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 157, - "key.line" : 17, - "key.modulename" : "BlueprintUILists", - "key.name" : "listContentContext", - "key.namelength" : 18, - "key.nameoffset" : 335, - "key.offset" : 331, - "key.parsed_declaration" : "public var listContentContext : ContentContext?", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ContentContext?", - "key.typeusr" : "$s10ListableUI14ContentContextVSgD", - "key.usr" : "s:11BlueprintUI11EnvironmentV0A7UIListsE18listContentContext08ListableB00fG0VSgvp" - } - ], - "key.typename" : "Environment.Type", - "key.typeusr" : "$s11BlueprintUI11EnvironmentVmD", - "key.usr" : "s:11BlueprintUI11EnvironmentV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ListContentContextKey : EnvironmentKey<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 493 - } - ], - "key.bodylength" : 59, - "key.bodyoffset" : 545, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 14, - "key.offset" : 529 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.ContentContext.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListContentContextKey<\/decl.name> : EnvironmentKey<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "EnvironmentKey" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 105, - "key.line" : 24, - "key.modulename" : "BlueprintUILists", - "key.name" : "ListContentContextKey", - "key.namelength" : 21, - "key.nameoffset" : 505, - "key.offset" : 500, - "key.parsed_declaration" : "public enum ListContentContextKey : EnvironmentKey", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let defaultValue: ContentContext<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 550 - } - ], - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value that will be vended by an `Environment` for this key if no other value\nhas been set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self.Value { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Environment\/EnvironmentKey.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract>This documentation comment was inherited from EnvironmentKey<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.ContentContext.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> defaultValue<\/decl.name>: ContentContext<\/ref.struct>?<\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 46, - "key.line" : 25, - "key.modulename" : "BlueprintUILists", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 568, - "key.offset" : 557, - "key.overrides" : [ - { - "key.usr" : "s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ" - } - ], - "key.parsed_declaration" : "public static let defaultValue: ContentContext? = nil", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.typename" : "ContentContext?", - "key.typeusr" : "$s10ListableUI14ContentContextVSgD", - "key.usr" : "s:11BlueprintUI14EnvironmentKeyP12defaultValue0F0QzvpZ" - } - ], - "key.typename" : "ListContentContextKey.Type", - "key.typeusr" : "$s16BlueprintUILists21ListContentContextKeyOmD", - "key.usr" : "s:16BlueprintUILists21ListContentContextKeyO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 6468, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "public struct List : Element<\/Type><\/Declaration>", - "key.bodylength" : 3429, - "key.bodyoffset" : 1301, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A Blueprint element which can be used to display a Listable `ListView` within\nan element tree.\n\nYou should use the `List` element as follows, just like you'd use the `configure(with:)` method\non `ListView` itself.\n```\nList { list in\n list.header = PodcastsHeader()\n\n let podcasts = Podcast.podcasts.sorted { $0.episode < $1.episode }\n\n list += Section(\"podcasts\") { section in\n\n section.header = PodcastsSectionHeader()\n\n section += podcasts.map { podcast in\n PodcastRow(podcast: podcast)\n }\n }\n}\n```\nThe parameter passed to the initialization closure is an instance of `ListProperties`,\nwhich holds the various configuration options and content for the list. See `ListProperties` for\na full overview of all the configuration options available such as animation, layout configuration, etc.\n\nWhen being laid out, a `List` will take up as much space as it is allowed. If you'd like to constrain\nthe size of a list, wrap it in a `ConstrainedSize`, or other size constraining element.\n", - "key.doc.column" : 15, - "key.doc.comment" : "\nProvides the possible options for how to size and measure a list when its measured size is queried\nby the layout system.\n\nYou have two options: `.fillParent` and `.measureContent`.\n\nWhen using `.fillParent`, the full available fitting size will be taken up, regardless\nof the size of the content itself.\n\nWhen using `.measureContent`, the content will be measured within the provided fitting size\nand the smallest of the two sizes will be returned.\n```\n.fillParent:\n┌───────────┐\n│┌─────────┐│\n││ ││\n││ ││\n││ ││\n││ ││\n││ ││\n│└─────────┘│\n└───────────┘\n\n.measureContent\n┌───────────┐\n│ │\n│ │\n│┌─────────┐│\n││ ││\n││ ││\n││ ││\n│└─────────┘│\n└───────────┘\n```", - "key.doc.declaration" : "public struct List : Element", - "key.doc.discussion" : [ - { - "Para" : "You should use the `List` element as follows, just like you’d use the `configure(with:)` method on `ListView` itself." - }, - { - "CodeListing" : "" - }, - { - "Para" : "The parameter passed to the initialization closure is an instance of `ListProperties`, which holds the various configuration options and content for the list. See `ListProperties` for a full overview of all the configuration options available such as animation, layout configuration, etc." - }, - { - "Para" : "When being laid out, a `List` will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a `ConstrainedSize`, or other size constraining element." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.doc.full_as_xml" : "List<\/Name>s:16BlueprintUILists4ListV<\/USR>public struct List : Element<\/Declaration>A Blueprint element which can be used to display a Listable ListView<\/codeVoice> within an element tree.<\/Para><\/Abstract>You should use the List<\/codeVoice> element as follows, just like you’d use the configure(with:)<\/codeVoice> method on ListView<\/codeVoice> itself.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The parameter passed to the initialization closure is an instance of ListProperties<\/codeVoice>, which holds the various configuration options and content for the list. See ListProperties<\/codeVoice> for a full overview of all the configuration options available such as animation, layout configuration, etc.<\/Para>When being laid out, a List<\/codeVoice> will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a ConstrainedSize<\/codeVoice>, or other size constraining element.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "List", - "key.doc.type" : "Class", - "key.doclength" : 1152, - "key.docoffset" : 133, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> List<\/decl.name> : Element<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 3446, - "key.line" : 42, - "key.modulename" : "BlueprintUILists", - "key.name" : "List", - "key.namelength" : 4, - "key.nameoffset" : 1295, - "key.offset" : 1285, - "key.parsed_declaration" : "extension List", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum Measurement : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1311 - } - ], - "key.bodylength" : 3376, - "key.bodyoffset" : 1352, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1337 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Measurement<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 3411, - "key.line" : 48, - "key.modulename" : "BlueprintUILists", - "key.name" : "Measurement", - "key.namelength" : 11, - "key.nameoffset" : 1323, - "key.offset" : 1318, - "key.parsed_declaration" : "public enum Measurement : Equatable", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 48, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 15, - "key.offset" : 2008, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fillParent<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When using `.fillParent`, the full available space will be taken up, regardless\nof the content size of the list itself.\n\nEg, if the fitting size passed to the list is (200w, 1000h), and the list's content\nis only (200w, 500h), (200w, 1000h) will still be returned.\n\nThis is the setting you want to use when your list is being used to fill the content\nof a screen, such as if it is being presented in a navigation controller or tab bar controller.\n\nThis option is the most performant, because no content measurement has to occur.", - "key.doc.column" : 14, - "key.doc.comment" : "When using `.fillParent`, the full available space will be taken up, regardless\nof the content size of the list itself.\n\nEg, if the fitting size passed to the list is (200w, 1000h), and the list's content\nis only (200w, 500h), (200w, 1000h) will still be returned.\n\nThis is the setting you want to use when your list is being used to fill the content\nof a screen, such as if it is being presented in a navigation controller or tab bar controller.\n\nThis option is the most performant, because no content measurement has to occur.", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "Eg, if the fitting size passed to the list is (200w, 1000h), and the list’s content is only (200w, 500h), (200w, 1000h) will still be returned." - }, - { - "Para" : "This is the setting you want to use when your list is being used to fill the content of a screen, such as if it is being presented in a navigation controller or tab bar controller." - }, - { - "Para" : "This option is the most performant, because no content measurement has to occur." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.doc.full_as_xml" : "fillParent<\/Name>s:16BlueprintUILists4ListV11MeasurementO10fillParentyA2EmF<\/USR><\/Declaration>When using .fillParent<\/codeVoice>, the full available space will be taken up, regardless of the content size of the list itself.<\/Para><\/Abstract>Eg, if the fitting size passed to the list is (200w, 1000h), and the list’s content is only (200w, 500h), (200w, 1000h) will still be returned.<\/Para>This is the setting you want to use when your list is being used to fill the content of a screen, such as if it is being presented in a navigation controller or tab bar controller.<\/Para>This option is the most performant, because no content measurement has to occur.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 60, - "key.doc.name" : "fillParent", - "key.doc.type" : "Other", - "key.doclength" : 639, - "key.docoffset" : 1361, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fillParent<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 10, - "key.line" : 60, - "key.modulename" : "BlueprintUILists", - "key.name" : "fillParent", - "key.namelength" : 10, - "key.nameoffset" : 2013, - "key.offset" : 2013, - "key.parsed_declaration" : "case fillParent", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.typename" : "(List.Measurement.Type) -> List.Measurement", - "key.typeusr" : "$sy16BlueprintUILists4ListV11MeasurementOAEmcD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO10fillParentyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 239, - "key.offset" : 4162, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case measureContent(horizontalFill: FillRule<\/Type> = .fillParent, verticalFill: FillRule<\/Type> = .natural, safeArea: SafeArea<\/Type> = .none, itemLimit: Int<\/Type>? = ListView.defaultContentSizeItemLimit)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When using `.measureContent`, the content of the list will be measured within the provided fitting size\nand the smallest of the two sizes will be returned.\n\nIf you are putting a list into a sheet or popover (or even another list!), this is generally the `Sizing` type\nyou will want to use, to ensure the sheet or popover takes up the minimum amount of space possible.\n\n- parameters:\n - cacheKey: If provided, the underlying `Element`'s `measurementCacheKey` will be set to this value.\n Note that this value must be unique within the entire blueprint view – so please provide a sufficiently unique value,\n or measurement collisions will occur (one element's measurement being used for another) for duplicate keys.\n\n - horizontalFill: Defaults to `.fillParent`. How the width of the element should be calculated. If the\n provided value is `.natural`, the width returned will be as wide as needed to display the widest element,\n within the `itemLimit`.\n\n - verticalFill: Defaults to `.natural`. How the height of element should be calculated. For `.natural` heights, if the list requires less vertical space than it is given to lay out, that smaller value will be returned from measurements.\n\n - safeArea: Defaults to `.none`. The safe area, if any, to include in the content sizing calculation.\n\n - itemLimit: When measuring the list, how many items should be measured to determine the height. Defaults\n to 50, which is usually enough to fill the `fittingSize`. If you truly want to determine the entire height of all of\n the content in the list, set this to `nil` (but you should rarely need to do this). The lower this value, the less\n overall measurement that has to occur (if the value is less than the number of items in the list), which improvements\n measurement and layout performance.\n", - "key.doc.column" : 14, - "key.doc.comment" : "When using `.measureContent`, the content of the list will be measured within the provided fitting size\nand the smallest of the two sizes will be returned.\n\nIf you are putting a list into a sheet or popover (or even another list!), this is generally the `Sizing` type\nyou will want to use, to ensure the sheet or popover takes up the minimum amount of space possible.\n\n- parameters:\n - cacheKey: If provided, the underlying `Element`'s `measurementCacheKey` will be set to this value.\n Note that this value must be unique within the entire blueprint view – so please provide a sufficiently unique value,\n or measurement collisions will occur (one element's measurement being used for another) for duplicate keys.\n\n - horizontalFill: Defaults to `.fillParent`. How the width of the element should be calculated. If the\n provided value is `.natural`, the width returned will be as wide as needed to display the widest element,\n within the `itemLimit`.\n\n - verticalFill: Defaults to `.natural`. How the height of element should be calculated. For `.natural` heights, if the list requires less vertical space than it is given to lay out, that smaller value will be returned from measurements.\n\n - safeArea: Defaults to `.none`. The safe area, if any, to include in the content sizing calculation.\n\n - itemLimit: When measuring the list, how many items should be measured to determine the height. Defaults\n to 50, which is usually enough to fill the `fittingSize`. If you truly want to determine the entire height of all of\n the content in the list, set this to `nil` (but you should rarely need to do this). The lower this value, the less\n overall measurement that has to occur (if the value is less than the number of items in the list), which improvements\n measurement and layout performance.", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "If you are putting a list into a sheet or popover (or even another list!), this is generally the `Sizing` type you will want to use, to ensure the sheet or popover takes up the minimum amount of space possible." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.doc.full_as_xml" : "measureContent(horizontalFill:verticalFill:safeArea:itemLimit:)<\/Name>s:16BlueprintUILists4ListV11MeasurementO14measureContentyA2E8FillRuleO_AhE8SafeAreaOSiSgtcAEmF<\/USR><\/Declaration>When using .measureContent<\/codeVoice>, the content of the list will be measured within the provided fitting size and the smallest of the two sizes will be returned.<\/Para><\/Abstract>cacheKey<\/Name>in<\/Direction>If provided, the underlying Element<\/codeVoice>‘s measurementCacheKey<\/codeVoice> will be set to this value. Note that this value must be unique within the entire blueprint view – so please provide a sufficiently unique value, or measurement collisions will occur (one element’s measurement being used for another) for duplicate keys.<\/Para><\/Discussion><\/Parameter>horizontalFill<\/Name>in<\/Direction>Defaults to .fillParent<\/codeVoice>. How the width of the element should be calculated. If the provided value is .natural<\/codeVoice>, the width returned will be as wide as needed to display the widest element, within the itemLimit<\/codeVoice>.<\/Para><\/Discussion><\/Parameter>verticalFill<\/Name>in<\/Direction>Defaults to .natural<\/codeVoice>. How the height of element should be calculated. For .natural<\/codeVoice> heights, if the list requires less vertical space than it is given to lay out, that smaller value will be returned from measurements.<\/Para><\/Discussion><\/Parameter>safeArea<\/Name>in<\/Direction>Defaults to .none<\/codeVoice>. The safe area, if any, to include in the content sizing calculation.<\/Para><\/Discussion><\/Parameter>itemLimit<\/Name>in<\/Direction>When measuring the list, how many items should be measured to determine the height. Defaults to 50, which is usually enough to fill the fittingSize<\/codeVoice>. If you truly want to determine the entire height of all of the content in the list, set this to nil<\/codeVoice> (but you should rarely need to do this). The lower this value, the less overall measurement that has to occur (if the value is less than the number of items in the list), which improvements measurement and layout performance.<\/Para><\/Discussion><\/Parameter><\/Parameters>If you are putting a list into a sheet or popover (or even another list!), this is generally the Sizing<\/codeVoice> type you will want to use, to ensure the sheet or popover takes up the minimum amount of space possible.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 87, - "key.doc.name" : "measureContent(horizontalFill:verticalFill:safeArea:itemLimit:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "If provided, the underlying `Element`‘s `measurementCacheKey` will be set to this value. Note that this value must be unique within the entire blueprint view – so please provide a sufficiently unique value, or measurement collisions will occur (one element’s measurement being used for another) for duplicate keys." - } - ], - "name" : "cacheKey" - }, - { - "discussion" : [ - { - "Para" : "Defaults to `.fillParent`. How the width of the element should be calculated. If the provided value is `.natural`, the width returned will be as wide as needed to display the widest element, within the `itemLimit`." - } - ], - "name" : "horizontalFill" - }, - { - "discussion" : [ - { - "Para" : "Defaults to `.natural`. How the height of element should be calculated. For `.natural` heights, if the list requires less vertical space than it is given to lay out, that smaller value will be returned from measurements." - } - ], - "name" : "verticalFill" - }, - { - "discussion" : [ - { - "Para" : "Defaults to `.none`. The safe area, if any, to include in the content sizing calculation." - } - ], - "name" : "safeArea" - }, - { - "discussion" : [ - { - "Para" : "When measuring the list, how many items should be measured to determine the height. Defaults to 50, which is usually enough to fill the `fittingSize`. If you truly want to determine the entire height of all of the content in the list, set this to `nil` (but you should rarely need to do this). The lower this value, the less overall measurement that has to occur (if the value is less than the number of items in the list), which improvements measurement and layout performance." - } - ], - "name" : "itemLimit" - } - ], - "key.doc.type" : "Other", - "key.doclength" : 2113, - "key.docoffset" : 2041, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> measureContent<\/decl.name>(horizontalFill<\/decl.var.parameter.argument_label>: FillRule<\/ref.enum><\/decl.var.parameter.type> = .fillParent<\/decl.var.parameter>, verticalFill<\/decl.var.parameter.argument_label>: FillRule<\/ref.enum><\/decl.var.parameter.type> = .natural<\/decl.var.parameter>, safeArea<\/decl.var.parameter.argument_label>: SafeArea<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, itemLimit<\/decl.var.parameter.argument_label>: Int<\/ref.struct>?<\/decl.var.parameter.type> = ListView.defaultContentSizeItemLimit<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 234, - "key.line" : 87, - "key.modulename" : "BlueprintUILists", - "key.name" : "measureContent(horizontalFill:verticalFill:safeArea:itemLimit:)", - "key.namelength" : 234, - "key.nameoffset" : 4167, - "key.offset" : 4167, - "key.parsed_declaration" : "case measureContent(\n horizontalFill : FillRule = .fillParent,\n verticalFill : FillRule = .natural,\n safeArea: SafeArea = .none,\n itemLimit : Int? = ListView.defaultContentSizeItemLimit\n)", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 87, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(List.Measurement.Type) -> (List.Measurement.FillRule, List.Measurement.FillRule, List.Measurement.SafeArea, Int?) -> List.Measurement", - "key.typeusr" : "$sy16BlueprintUILists4ListV11MeasurementOAE8FillRuleO_AgE8SafeAreaOSiSgtcAEmcD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO14measureContentyA2E8FillRuleO_AhE8SafeAreaOSiSgtcAEmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var needsMeasurement: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 274, - "key.bodyoffset" : 4448, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> needsMeasurement<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 304, - "key.line" : 94, - "key.modulename" : "BlueprintUILists", - "key.name" : "needsMeasurement", - "key.namelength" : 16, - "key.nameoffset" : 4423, - "key.offset" : 4419, - "key.parsed_declaration" : "var needsMeasurement : Bool", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 94, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO05needsD0Sbvp" - } - ], - "key.typename" : "List.Measurement.Type", - "key.typeusr" : "$s16BlueprintUILists4ListV11MeasurementOmD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO" - } - ], - "key.typename" : "List.Type", - "key.typeusr" : "$s16BlueprintUILists4ListVmD", - "key.usr" : "s:16BlueprintUILists4ListV" - }, - { - "key.annotated_decl" : "public enum Measurement : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 1704, - "key.bodyoffset" : 4762, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Measurement<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1733, - "key.line" : 48, - "key.modulename" : "BlueprintUILists", - "key.name" : "List.Measurement", - "key.namelength" : 16, - "key.nameoffset" : 4744, - "key.offset" : 4734, - "key.parsed_declaration" : "extension List.Measurement", - "key.parsed_scope.end" : 152, - "key.parsed_scope.start" : 106, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum SafeArea : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4960 - } - ], - "key.bodylength" : 637, - "key.bodyoffset" : 4994, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls how the safe area is used when calculating content size.\nThe safe area included in the calculation affected by the list layout's `contentInsetAdjustmentBehavior`.", - "key.doc.column" : 17, - "key.doc.comment" : "Controls how the safe area is used when calculating content size.\nThe safe area included in the calculation affected by the list layout's `contentInsetAdjustmentBehavior`.", - "key.doc.declaration" : "public enum SafeArea : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.doc.full_as_xml" : "SafeArea<\/Name>s:16BlueprintUILists4ListV11MeasurementO8SafeAreaO<\/USR>public enum SafeArea : Equatable<\/Declaration>Controls how the safe area is used when calculating content size. The safe area included in the calculation affected by the list layout’s contentInsetAdjustmentBehavior<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 110, - "key.doc.name" : "SafeArea", - "key.doc.type" : "Other", - "key.doclength" : 184, - "key.docoffset" : 4772, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 4983 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SafeArea<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 665, - "key.line" : 110, - "key.modulename" : "BlueprintUILists", - "key.name" : "SafeArea", - "key.namelength" : 8, - "key.nameoffset" : 4972, - "key.offset" : 4967, - "key.parsed_declaration" : "public enum SafeArea : Equatable", - "key.parsed_scope.end" : 128, - "key.parsed_scope.start" : 110, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 5079, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "No safe area will be included in the size calculation.", - "key.doc.column" : 14, - "key.doc.comment" : "No safe area will be included in the size calculation.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.doc.full_as_xml" : "none<\/Name>s:16BlueprintUILists4ListV11MeasurementO8SafeAreaO4noneyA2GmF<\/USR><\/Declaration>No safe area will be included in the size calculation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 113, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 59, - "key.docoffset" : 5012, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 113, - "key.modulename" : "BlueprintUILists", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 5084, - "key.offset" : 5084, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 113, - "key.reusingastcontext" : false, - "key.typename" : "(List.Measurement.SafeArea.Type) -> List.Measurement.SafeArea", - "key.typeusr" : "$sy16BlueprintUILists4ListV11MeasurementO8SafeAreaOAGmcD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO8SafeAreaO4noneyA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 5200, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case environment<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The safe area from the blueprint environment will be included in the calculation.", - "key.doc.column" : 14, - "key.doc.comment" : "The safe area from the blueprint environment will be included in the calculation.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.doc.full_as_xml" : "environment<\/Name>s:16BlueprintUILists4ListV11MeasurementO8SafeAreaO11environmentyA2GmF<\/USR><\/Declaration>The safe area from the blueprint environment will be included in the calculation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 116, - "key.doc.name" : "environment", - "key.doc.type" : "Other", - "key.doclength" : 86, - "key.docoffset" : 5106, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> environment<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 116, - "key.modulename" : "BlueprintUILists", - "key.name" : "environment", - "key.namelength" : 11, - "key.nameoffset" : 5205, - "key.offset" : 5205, - "key.parsed_declaration" : "case environment", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.typename" : "(List.Measurement.SafeArea.Type) -> List.Measurement.SafeArea", - "key.typeusr" : "$sy16BlueprintUILists4ListV11MeasurementO8SafeAreaOAGmcD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO8SafeAreaO11environmentyA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 25, - "key.offset" : 5306, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case custom(UIEdgeInsets<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The provided safe area will be included in the calculation.", - "key.doc.column" : 14, - "key.doc.comment" : "The provided safe area will be included in the calculation.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.doc.full_as_xml" : "custom(_:)<\/Name>s:16BlueprintUILists4ListV11MeasurementO8SafeAreaO6customyAGSo12UIEdgeInsetsVcAGmF<\/USR><\/Declaration>The provided safe area will be included in the calculation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 119, - "key.doc.name" : "custom(_:)", - "key.doc.type" : "Other", - "key.doclength" : 64, - "key.docoffset" : 5234, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> custom<\/decl.name>(UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 20, - "key.line" : 119, - "key.modulename" : "BlueprintUILists", - "key.name" : "custom(_:)", - "key.namelength" : 20, - "key.nameoffset" : 5311, - "key.offset" : 5311, - "key.parsed_declaration" : "case custom(UIEdgeInsets)", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(List.Measurement.SafeArea.Type) -> (UIEdgeInsets) -> List.Measurement.SafeArea", - "key.typeusr" : "$sy16BlueprintUILists4ListV11MeasurementO8SafeAreaOSo12UIEdgeInsetsVcAGmcD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO8SafeAreaO6customyAGSo12UIEdgeInsetsVcAGmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func safeArea(with environment: BlueprintUI.Environment<\/Type>) -> UIEdgeInsets<\/Type><\/Declaration>", - "key.bodylength" : 201, - "key.bodyoffset" : 5424, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> safeArea<\/decl.name>(with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: BlueprintUI.Environment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIEdgeInsets<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 277, - "key.line" : 121, - "key.modulename" : "BlueprintUILists", - "key.name" : "safeArea(with:)", - "key.namelength" : 52, - "key.nameoffset" : 5354, - "key.offset" : 5349, - "key.parsed_declaration" : "func safeArea(with environment : BlueprintUI.Environment) -> UIEdgeInsets", - "key.parsed_scope.end" : 127, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(List.Measurement.SafeArea) -> (Environment) -> UIEdgeInsets", - "key.typeusr" : "$s4withSo12UIEdgeInsetsV11BlueprintUI11EnvironmentV_tcD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO8SafeAreaO04safeF04withSo12UIEdgeInsetsV0A2UI11EnvironmentV_tF" - } - ], - "key.typename" : "List.Measurement.SafeArea.Type", - "key.typeusr" : "$s16BlueprintUILists4ListV11MeasurementO8SafeAreaOmD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO8SafeAreaO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum FillRule : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5740 - } - ], - "key.bodylength" : 690, - "key.bodyoffset" : 5774, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to fill a given axis when performing a `List.Measurement.measureContent` measurement.", - "key.doc.column" : 17, - "key.doc.comment" : "How to fill a given axis when performing a `List.Measurement.measureContent` measurement.", - "key.doc.declaration" : "public enum FillRule : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.doc.full_as_xml" : "FillRule<\/Name>s:16BlueprintUILists4ListV11MeasurementO8FillRuleO<\/USR>public enum FillRule : Equatable<\/Declaration>How to fill a given axis when performing a List.Measurement.measureContent<\/codeVoice> measurement.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 131, - "key.doc.name" : "FillRule", - "key.doc.type" : "Other", - "key.doclength" : 94, - "key.docoffset" : 5642, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 5763 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> FillRule<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 718, - "key.line" : 131, - "key.modulename" : "BlueprintUILists", - "key.name" : "FillRule", - "key.namelength" : 8, - "key.nameoffset" : 5752, - "key.offset" : 5747, - "key.parsed_declaration" : "public enum FillRule : Equatable", - "key.parsed_scope.end" : 151, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 15, - "key.offset" : 5941, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fillParent<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The full amount of space afforded to the list by its parent element will\nbe used. The measurement from the list is not used.", - "key.doc.column" : 14, - "key.doc.comment" : "The full amount of space afforded to the list by its parent element will\nbe used. The measurement from the list is not used.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.doc.full_as_xml" : "fillParent<\/Name>s:16BlueprintUILists4ListV11MeasurementO8FillRuleO10fillParentyA2GmF<\/USR><\/Declaration>The full amount of space afforded to the list by its parent element will be used. The measurement from the list is not used.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 135, - "key.doc.name" : "fillParent", - "key.doc.type" : "Other", - "key.doclength" : 141, - "key.docoffset" : 5792, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fillParent<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 10, - "key.line" : 135, - "key.modulename" : "BlueprintUILists", - "key.name" : "fillParent", - "key.namelength" : 10, - "key.nameoffset" : 5946, - "key.offset" : 5946, - "key.parsed_declaration" : "case fillParent", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 135, - "key.reusingastcontext" : false, - "key.typename" : "(List.Measurement.FillRule.Type) -> List.Measurement.FillRule", - "key.typeusr" : "$sy16BlueprintUILists4ListV11MeasurementO8FillRuleOAGmcD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO8FillRuleO10fillParentyA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 6236, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case natural<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The amount of space needed, as determined by the list's measurement will be used.\n\nEg, if you provide 1000pt of vertical space, but the list only needs 300pt to display,\n300pt will be returned from the measurement.", - "key.doc.column" : 14, - "key.doc.comment" : "The amount of space needed, as determined by the list's measurement will be used.\n\nEg, if you provide 1000pt of vertical space, but the list only needs 300pt to display,\n300pt will be returned from the measurement.", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "Eg, if you provide 1000pt of vertical space, but the list only needs 300pt to display, 300pt will be returned from the measurement." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.doc.full_as_xml" : "natural<\/Name>s:16BlueprintUILists4ListV11MeasurementO8FillRuleO7naturalyA2GmF<\/USR><\/Declaration>The amount of space needed, as determined by the list’s measurement will be used.<\/Para><\/Abstract>Eg, if you provide 1000pt of vertical space, but the list only needs 300pt to display, 300pt will be returned from the measurement.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 141, - "key.doc.name" : "natural", - "key.doc.type" : "Other", - "key.doclength" : 254, - "key.docoffset" : 5974, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> natural<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 141, - "key.modulename" : "BlueprintUILists", - "key.name" : "natural", - "key.namelength" : 7, - "key.nameoffset" : 6241, - "key.offset" : 6241, - "key.parsed_declaration" : "case natural", - "key.parsed_scope.end" : 141, - "key.parsed_scope.start" : 141, - "key.reusingastcontext" : false, - "key.typename" : "(List.Measurement.FillRule.Type) -> List.Measurement.FillRule", - "key.typeusr" : "$sy16BlueprintUILists4ListV11MeasurementO8FillRuleOAGmcD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO8FillRuleO7naturalyA2GmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var needsMeasurement: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 163, - "key.bodyoffset" : 6295, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.Measurement.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> needsMeasurement<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 193, - "key.line" : 143, - "key.modulename" : "BlueprintUILists", - "key.name" : "needsMeasurement", - "key.namelength" : 16, - "key.nameoffset" : 6270, - "key.offset" : 6266, - "key.parsed_declaration" : "var needsMeasurement : Bool", - "key.parsed_scope.end" : 150, - "key.parsed_scope.start" : 143, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO8FillRuleO05needsD0Sbvp" - } - ], - "key.typename" : "List.Measurement.FillRule.Type", - "key.typeusr" : "$s16BlueprintUILists4ListV11MeasurementO8FillRuleOmD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO8FillRuleO" - } - ], - "key.typename" : "List.Measurement.Type", - "key.typeusr" : "$s16BlueprintUILists4ListV11MeasurementOmD", - "key.usr" : "s:16BlueprintUILists4ListV11MeasurementO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 7293, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct List : Element<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1276 - } - ], - "key.bodylength" : 2045, - "key.bodyoffset" : 1306, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A Blueprint element which can be used to display a Listable `ListView` within\nan element tree.\n\nYou should use the `List` element as follows, just like you'd use the `configure(with:)` method\non `ListView` itself.\n```\nList { list in\n list.header = PodcastsHeader()\n\n let podcasts = Podcast.podcasts.sorted { $0.episode < $1.episode }\n\n list += Section(\"podcasts\") { section in\n\n section.header = PodcastsSectionHeader()\n\n section += podcasts.map { podcast in\n PodcastRow(podcast: podcast)\n }\n }\n}\n```\nThe parameter passed to the initialization closure is an instance of `ListProperties`,\nwhich holds the various configuration options and content for the list. See `ListProperties` for\na full overview of all the configuration options available such as animation, layout configuration, etc.\n\nWhen being laid out, a `List` will take up as much space as it is allowed. If you'd like to constrain\nthe size of a list, wrap it in a `ConstrainedSize`, or other size constraining element.\n", - "key.doc.column" : 15, - "key.doc.comment" : "\nA Blueprint element which can be used to display a Listable `ListView` within\nan element tree.\n\nYou should use the `List` element as follows, just like you'd use the `configure(with:)` method\non `ListView` itself.\n```\nList { list in\n list.header = PodcastsHeader()\n\n let podcasts = Podcast.podcasts.sorted { $0.episode < $1.episode }\n\n list += Section(\"podcasts\") { section in\n\n section.header = PodcastsSectionHeader()\n\n section += podcasts.map { podcast in\n PodcastRow(podcast: podcast)\n }\n }\n}\n```\nThe parameter passed to the initialization closure is an instance of `ListProperties`,\nwhich holds the various configuration options and content for the list. See `ListProperties` for\na full overview of all the configuration options available such as animation, layout configuration, etc.\n\nWhen being laid out, a `List` will take up as much space as it is allowed. If you'd like to constrain\nthe size of a list, wrap it in a `ConstrainedSize`, or other size constraining element.", - "key.doc.declaration" : "public struct List : Element", - "key.doc.discussion" : [ - { - "Para" : "You should use the `List` element as follows, just like you’d use the `configure(with:)` method on `ListView` itself." - }, - { - "CodeListing" : "" - }, - { - "Para" : "The parameter passed to the initialization closure is an instance of `ListProperties`, which holds the various configuration options and content for the list. See `ListProperties` for a full overview of all the configuration options available such as animation, layout configuration, etc." - }, - { - "Para" : "When being laid out, a `List` will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a `ConstrainedSize`, or other size constraining element." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.doc.full_as_xml" : "List<\/Name>s:16BlueprintUILists4ListV<\/USR>public struct List : Element<\/Declaration>A Blueprint element which can be used to display a Listable ListView<\/codeVoice> within an element tree.<\/Para><\/Abstract>You should use the List<\/codeVoice> element as follows, just like you’d use the configure(with:)<\/codeVoice> method on ListView<\/codeVoice> itself.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The parameter passed to the initialization closure is an instance of ListProperties<\/codeVoice>, which holds the various configuration options and content for the list. See ListProperties<\/codeVoice> for a full overview of all the configuration options available such as animation, layout configuration, etc.<\/Para>When being laid out, a List<\/codeVoice> will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a ConstrainedSize<\/codeVoice>, or other size constraining element.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "List", - "key.doc.type" : "Class", - "key.doclength" : 1135, - "key.docoffset" : 141, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 7, - "key.offset" : 1297 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> List<\/decl.name> : Element<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Element" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2069, - "key.line" : 42, - "key.modulename" : "BlueprintUILists", - "key.name" : "List", - "key.namelength" : 4, - "key.nameoffset" : 1290, - "key.offset" : 1283, - "key.parsed_declaration" : "public struct List : Element", - "key.parsed_scope.end" : 105, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var properties: ListProperties<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1556 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The properties which back the on-screen list.\n\nWhen it comes time to render the `List` on screen,\n`ListView.configure(with: properties)` is called\nto update the on-screen list with the provided properties.", - "key.doc.column" : 16, - "key.doc.comment" : "The properties which back the on-screen list.\n\nWhen it comes time to render the `List` on screen,\n`ListView.configure(with: properties)` is called\nto update the on-screen list with the provided properties.", - "key.doc.declaration" : "public var properties: ListProperties", - "key.doc.discussion" : [ - { - "Para" : "When it comes time to render the `List` on screen, `ListView.configure(with: properties)` is called to update the on-screen list with the provided properties." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.doc.full_as_xml" : "properties<\/Name>s:16BlueprintUILists4ListV10properties10ListableUI0C10PropertiesVvp<\/USR>public var properties: ListProperties<\/Declaration>The properties which back the on-screen list.<\/Para><\/Abstract>When it comes time to render the List<\/codeVoice> on screen, ListView.configure(with: properties)<\/codeVoice> is called to update the on-screen list with the provided properties.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 49, - "key.doc.name" : "properties", - "key.doc.type" : "Other", - "key.doclength" : 241, - "key.docoffset" : 1311, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> properties<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 49, - "key.modulename" : "BlueprintUILists", - "key.name" : "properties", - "key.namelength" : 10, - "key.nameoffset" : 1567, - "key.offset" : 1563, - "key.parsed_declaration" : "public var properties : ListProperties", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListProperties", - "key.typeusr" : "$s10ListableUI14ListPropertiesVD", - "key.usr" : "s:16BlueprintUILists4ListV10properties10ListableUI0C10PropertiesVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var measurement: List<\/Type>.Measurement<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1937 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the `List` is measured when the element is laid out\nby Blueprint. Defaults to `.fillParent`, which means\nit will take up all the height it is given. You can change this to\n`.measureContent` to instead measure the optimal height.\n\nSee the `List.Measurement` documentation for more.", - "key.doc.column" : 16, - "key.doc.comment" : "How the `List` is measured when the element is laid out\nby Blueprint. Defaults to `.fillParent`, which means\nit will take up all the height it is given. You can change this to\n`.measureContent` to instead measure the optimal height.\n\nSee the `List.Measurement` documentation for more.", - "key.doc.declaration" : "public var measurement: List.Measurement", - "key.doc.discussion" : [ - { - "Para" : "See the `List.Measurement` documentation for more." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.doc.full_as_xml" : "measurement<\/Name>s:16BlueprintUILists4ListV11measurementAC11MeasurementOvp<\/USR>public var measurement: List.Measurement<\/Declaration>How the List<\/codeVoice> is measured when the element is laid out by Blueprint. Defaults to .fillParent<\/codeVoice>, which means it will take up all the height it is given. You can change this to .measureContent<\/codeVoice> to instead measure the optimal height.<\/Para><\/Abstract>See the List.Measurement<\/codeVoice> documentation for more.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 57, - "key.doc.name" : "measurement", - "key.doc.type" : "Other", - "key.doclength" : 329, - "key.docoffset" : 1604, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> measurement<\/decl.name>: List<\/ref.struct>.Measurement<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 57, - "key.modulename" : "BlueprintUILists", - "key.name" : "measurement", - "key.namelength" : 11, - "key.nameoffset" : 1948, - "key.offset" : 1944, - "key.parsed_declaration" : "public var measurement : List.Measurement", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "List.Measurement", - "key.typeusr" : "$s16BlueprintUILists4ListV11MeasurementOD", - "key.usr" : "s:16BlueprintUILists4ListV11measurementAC11MeasurementOvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 1998 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(measurement: List<\/Type>.Measurement<\/Type> = .fillParent, configure: ListProperties<\/Type>.Configure<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2170 - } - ], - "key.bodylength" : 105, - "key.bodyoffset" : 2289, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create a new list, configured with the provided properties,\nconfigured with the provided `ListProperties` builder.", - "key.doc.column" : 12, - "key.doc.comment" : "Create a new list, configured with the provided properties,\nconfigured with the provided `ListProperties` builder.", - "key.doc.declaration" : "public init(measurement: List.Measurement = .fillParent, configure: ListProperties.Configure)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.doc.full_as_xml" : "init(measurement:configure:)<\/Name>s:16BlueprintUILists4ListV11measurement9configureA2C11MeasurementO_y10ListableUI0C10PropertiesVzXEtcfc<\/USR>public init(measurement: List.Measurement = .fillParent, configure: ListProperties.Configure)<\/Declaration>Create a new list, configured with the provided properties, configured with the provided ListProperties<\/codeVoice> builder.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 65, - "key.doc.name" : "init(measurement:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 127, - "key.docoffset" : 2039, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(measurement<\/decl.var.parameter.argument_label>: List<\/ref.struct>.Measurement<\/ref.enum><\/decl.var.parameter.type> = .fillParent<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: ListProperties<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 218, - "key.line" : 65, - "key.modulename" : "BlueprintUILists", - "key.name" : "init(measurement:configure:)", - "key.namelength" : 110, - "key.nameoffset" : 2177, - "key.offset" : 2177, - "key.parsed_declaration" : "public init(\n measurement : List.Measurement = .fillParent,\n configure : ListProperties.Configure\n)", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 65, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(measurement:configure:sections:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(List.Type) -> (List.Measurement, (inout ListProperties) -> ()) -> List", - "key.typeusr" : "$s11measurement9configure16BlueprintUILists4ListVAE11MeasurementO_y10ListableUI0E10PropertiesVzXEtcD", - "key.usr" : "s:16BlueprintUILists4ListV11measurement9configureA2C11MeasurementO_y10ListableUI0C10PropertiesVzXEtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(measurement: List<\/Type>.Measurement<\/Type> = .fillParent, configure: ListProperties<\/Type>.Configure<\/Type> = { _ in }, @ListableBuilder<\/Type><Section<\/Type>> sections: () -> [Section<\/Type>])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2565 - } - ], - "key.bodylength" : 161, - "key.bodyoffset" : 2757, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create a new list, configured with the provided properties,\nconfigured with the provided `ListProperties` builder, and the provided `sections`.", - "key.doc.column" : 12, - "key.doc.comment" : "Create a new list, configured with the provided properties,\nconfigured with the provided `ListProperties` builder, and the provided `sections`.", - "key.doc.declaration" : "public init(measurement: List.Measurement = .fillParent, configure: ListProperties.Configure = { _ in }, @ListableUI.ListableBuilder sections: () -> [Section])", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.doc.full_as_xml" : "init(measurement:configure:sections:)<\/Name>s:16BlueprintUILists4ListV11measurement9configure8sectionsA2C11MeasurementO_y10ListableUI0C10PropertiesVzXESayAI7SectionVGyXEtcfc<\/USR>public init(measurement: List.Measurement = .fillParent, configure: ListProperties.Configure = { _ in }, @ListableUI.ListableBuilder<ListableUI.Section> sections: () -> [Section])<\/Declaration>Create a new list, configured with the provided properties, configured with the provided ListProperties<\/codeVoice> builder, and the provided sections<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 76, - "key.doc.name" : "init(measurement:configure:sections:)", - "key.doc.type" : "Function", - "key.doclength" : 156, - "key.docoffset" : 2405, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(measurement<\/decl.var.parameter.argument_label>: List<\/ref.struct>.Measurement<\/ref.enum><\/decl.var.parameter.type> = .fillParent<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: ListProperties<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>, @ListableBuilder<\/ref.enum><Section<\/ref.struct>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> sections<\/decl.var.parameter.argument_label>: () -> [Section<\/ref.struct>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 347, - "key.line" : 76, - "key.modulename" : "BlueprintUILists", - "key.name" : "init(measurement:configure:sections:)", - "key.namelength" : 183, - "key.nameoffset" : 2572, - "key.offset" : 2572, - "key.parsed_declaration" : "public init(\n measurement : List.Measurement = .fillParent,\n configure : ListProperties.Configure = { _ in },\n @ListableBuilder
sections : () -> [Section]\n)", - "key.parsed_scope.end" : 86, - "key.parsed_scope.start" : 76, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(measurement:configure:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(List.Type) -> (List.Measurement, (inout ListProperties) -> (), () -> [Section]) -> List", - "key.typeusr" : "$s11measurement9configure8sections16BlueprintUILists4ListVAF11MeasurementO_y10ListableUI0F10PropertiesVzXESayAI7SectionVGyXEtcD", - "key.usr" : "s:16BlueprintUILists4ListV11measurement9configure8sectionsA2C11MeasurementO_y10ListableUI0C10PropertiesVzXESayAI7SectionVGyXEtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 13, - "key.name" : "MARK: Element", - "key.offset" : 2939 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var content: ElementContent<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2973 - } - ], - "key.bodylength" : 217, - "key.bodyoffset" : 3010, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the content of this element.\n\nElements generally fall into two types:\n- Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some\n content that can be measured. Leaf elements typically instantiate their content with\n `ElementContent(measurable:)` or similar.\n- Container elements: these element have one or more children, which are arranged by a layout implementation.\n Container elements typically use methods like `ElementContent(layout:configure:)` to instantiate\n their content.", - "key.doc.column" : 9, - "key.doc.declaration" : "var content: BlueprintUI.ElementContent { get }", - "key.doc.discussion" : [ - { - "Para" : "Elements generally fall into two types:" - }, - { - "List-Bullet" : "" - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.doc.full_as_xml" : "content<\/Name>s:11BlueprintUI7ElementP7contentAA0C7ContentVvp<\/USR>var content: BlueprintUI.ElementContent { get }<\/Declaration>Returns the content of this element.<\/Para><\/Abstract>Elements generally fall into two types:<\/Para>Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some content that can be measured. Leaf elements typically instantiate their content with ElementContent(measurable:)<\/codeVoice> or similar.<\/Para><\/Item>Container elements: these element have one or more children, which are arranged by a layout implementation. Container elements typically use methods like ElementContent(layout:configure:)<\/codeVoice> to instantiate their content.<\/Para><\/Item><\/List-Bullet>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 52, - "key.doc.name" : "content", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: ElementContent<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 248, - "key.line" : 92, - "key.modulename" : "BlueprintUILists", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 2984, - "key.offset" : 2980, - "key.overrides" : [ - { - "key.usr" : "s:11BlueprintUI7ElementP7contentAA0C7ContentVvp" - } - ], - "key.parsed_declaration" : "public var content : ElementContent", - "key.parsed_scope.end" : 100, - "key.parsed_scope.start" : 92, - "key.reusingastcontext" : false, - "key.typename" : "ElementContent", - "key.typeusr" : "$s11BlueprintUI14ElementContentVD", - "key.usr" : "s:11BlueprintUI7ElementP7contentAA0C7ContentVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func backingViewDescription(with context: ViewDescriptionContext<\/Type>) -> ViewDescription<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3238 - } - ], - "key.bodylength" : 17, - "key.bodyoffset" : 3332, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns an (optional) description of the view that should back this element.\n\nIn Blueprint, elements that are displayed using a live `UIView` instance are referred to as \"view-backed\".\nElements become view-backed by returning a `ViewDescription` value from this method.\n\n- Parameter context: The context this element is rendered in.\n\n- Returns: An optional `ViewDescription`.", - "key.doc.column" : 10, - "key.doc.declaration" : "func backingViewDescription(with context: BlueprintUI.ViewDescriptionContext) -> BlueprintUI.ViewDescription?", - "key.doc.discussion" : [ - { - "Para" : "In Blueprint, elements that are displayed using a live `UIView` instance are referred to as “view-backed”. Elements become view-backed by returning a `ViewDescription` value from this method." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.doc.full_as_xml" : "backingViewDescription(with:)<\/Name>s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF<\/USR>func backingViewDescription(with context: BlueprintUI.ViewDescriptionContext) -> BlueprintUI.ViewDescription?<\/Declaration>Returns an (optional) description of the view that should back this element.<\/Para><\/Abstract>context<\/Name>in<\/Direction>The context this element is rendered in.<\/Para><\/Discussion><\/Parameter><\/Parameters>An optional ViewDescription<\/codeVoice>.<\/Para><\/ResultDiscussion>In Blueprint, elements that are displayed using a live UIView<\/codeVoice> instance are referred to as “view-backed”. Elements become view-backed by returning a ViewDescription<\/codeVoice> value from this method.<\/Para>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 62, - "key.doc.name" : "backingViewDescription(with:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The context this element is rendered in." - } - ], - "name" : "context" - } - ], - "key.doc.result_discussion" : [ - { - "Para" : "An optional `ViewDescription`." - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> backingViewDescription<\/decl.name>(with<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ViewDescriptionContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewDescription<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 105, - "key.line" : 102, - "key.modulename" : "BlueprintUILists", - "key.name" : "backingViewDescription(with:)", - "key.namelength" : 60, - "key.nameoffset" : 3250, - "key.offset" : 3245, - "key.overrides" : [ - { - "key.usr" : "s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF" - } - ], - "key.parsed_declaration" : "public func backingViewDescription(with context: ViewDescriptionContext) -> ViewDescription?", - "key.parsed_scope.end" : 104, - "key.parsed_scope.start" : 102, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(List) -> (ViewDescriptionContext) -> ViewDescription?", - "key.typeusr" : "$s4with11BlueprintUI15ViewDescriptionVSgAB0dE7ContextV_tcD", - "key.usr" : "s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF" - } - ], - "key.typename" : "List.Type", - "key.typeusr" : "$s16BlueprintUILists4ListVmD", - "key.usr" : "s:16BlueprintUILists4ListV" - }, - { - "key.annotated_decl" : "public struct List : Element<\/Type><\/Declaration>", - "key.bodylength" : 3920, - "key.bodyoffset" : 3371, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A Blueprint element which can be used to display a Listable `ListView` within\nan element tree.\n\nYou should use the `List` element as follows, just like you'd use the `configure(with:)` method\non `ListView` itself.\n```\nList { list in\n list.header = PodcastsHeader()\n\n let podcasts = Podcast.podcasts.sorted { $0.episode < $1.episode }\n\n list += Section(\"podcasts\") { section in\n\n section.header = PodcastsSectionHeader()\n\n section += podcasts.map { podcast in\n PodcastRow(podcast: podcast)\n }\n }\n}\n```\nThe parameter passed to the initialization closure is an instance of `ListProperties`,\nwhich holds the various configuration options and content for the list. See `ListProperties` for\na full overview of all the configuration options available such as animation, layout configuration, etc.\n\nWhen being laid out, a `List` will take up as much space as it is allowed. If you'd like to constrain\nthe size of a list, wrap it in a `ConstrainedSize`, or other size constraining element.\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct List : Element", - "key.doc.discussion" : [ - { - "Para" : "You should use the `List` element as follows, just like you’d use the `configure(with:)` method on `ListView` itself." - }, - { - "CodeListing" : "" - }, - { - "Para" : "The parameter passed to the initialization closure is an instance of `ListProperties`, which holds the various configuration options and content for the list. See `ListProperties` for a full overview of all the configuration options available such as animation, layout configuration, etc." - }, - { - "Para" : "When being laid out, a `List` will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a `ConstrainedSize`, or other size constraining element." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.doc.full_as_xml" : "List<\/Name>s:16BlueprintUILists4ListV<\/USR>public struct List : Element<\/Declaration>A Blueprint element which can be used to display a Listable ListView<\/codeVoice> within an element tree.<\/Para><\/Abstract>You should use the List<\/codeVoice> element as follows, just like you’d use the configure(with:)<\/codeVoice> method on ListView<\/codeVoice> itself.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The parameter passed to the initialization closure is an instance of ListProperties<\/codeVoice>, which holds the various configuration options and content for the list. See ListProperties<\/codeVoice> for a full overview of all the configuration options available such as animation, layout configuration, etc.<\/Para>When being laid out, a List<\/codeVoice> will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a ConstrainedSize<\/codeVoice>, or other size constraining element.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "List", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> List<\/decl.name> : Element<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 3937, - "key.line" : 42, - "key.modulename" : "BlueprintUILists", - "key.name" : "List", - "key.namelength" : 4, - "key.nameoffset" : 3365, - "key.offset" : 3355, - "key.parsed_declaration" : "extension List", - "key.parsed_scope.end" : 223, - "key.parsed_scope.start" : 108, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "struct ListContent : Element<\/Type><\/Declaration>", - "key.bodylength" : 3878, - "key.bodyoffset" : 3411, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 7, - "key.offset" : 3402 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListContent<\/decl.name> : Element<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Element" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3909, - "key.line" : 110, - "key.modulename" : "BlueprintUILists", - "key.name" : "ListContent", - "key.namelength" : 11, - "key.nameoffset" : 3388, - "key.offset" : 3381, - "key.parsed_declaration" : "struct ListContent : Element", - "key.parsed_scope.end" : 222, - "key.parsed_scope.start" : 110, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var properties: ListProperties<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> properties<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 112, - "key.modulename" : "BlueprintUILists", - "key.name" : "properties", - "key.namelength" : 10, - "key.nameoffset" : 3433, - "key.offset" : 3429, - "key.parsed_declaration" : "var properties : ListProperties", - "key.parsed_scope.end" : 112, - "key.parsed_scope.start" : 112, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListProperties", - "key.typeusr" : "$s10ListableUI14ListPropertiesVD", - "key.usr" : "s:16BlueprintUILists4ListV0C7ContentV10properties10ListableUI0C10PropertiesVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var measurement: List<\/Type>.Measurement<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> measurement<\/decl.name>: List<\/ref.struct>.Measurement<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 113, - "key.modulename" : "BlueprintUILists", - "key.name" : "measurement", - "key.namelength" : 11, - "key.nameoffset" : 3473, - "key.offset" : 3469, - "key.parsed_declaration" : "var measurement : List.Measurement", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 113, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "List.Measurement", - "key.typeusr" : "$s16BlueprintUILists4ListV11MeasurementOD", - "key.usr" : "s:16BlueprintUILists4ListV0C7ContentV11measurementAC11MeasurementOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(properties: ListProperties<\/Type>, measurement: List<\/Type>.Measurement<\/Type>, environment: Environment<\/Type>)<\/Declaration>", - "key.bodylength" : 374, - "key.bodyoffset" : 3661, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(properties<\/decl.var.parameter.argument_label>: ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, measurement<\/decl.var.parameter.argument_label>: List<\/ref.struct>.Measurement<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: Environment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 515, - "key.line" : 115, - "key.modulename" : "BlueprintUILists", - "key.name" : "init(properties:measurement:environment:)", - "key.namelength" : 138, - "key.nameoffset" : 3521, - "key.offset" : 3521, - "key.parsed_declaration" : "init(\n properties : ListProperties,\n measurement : List.Measurement,\n environment : Environment\n)", - "key.parsed_scope.end" : 131, - "key.parsed_scope.start" : 115, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var properties: ListProperties<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> properties<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 27, - "key.line" : 120, - "key.modulename" : "BlueprintUILists", - "key.name" : "properties", - "key.namelength" : 10, - "key.nameoffset" : 3678, - "key.offset" : 3674, - "key.parsed_declaration" : "var properties = properties", - "key.parsed_scope.end" : 120, - "key.parsed_scope.start" : 120, - "key.reusingastcontext" : false, - "key.typename" : "ListProperties", - "key.typeusr" : "$s10ListableUI14ListPropertiesVD", - "key.usr" : "s:16BlueprintUILists4ListV0C7ContentV10properties11measurement11environmentAE10ListableUI0C10PropertiesV_AC11MeasurementO0aI011EnvironmentVtcfcAFL0_AKvp" - } - ], - "key.typename" : "(List.ListContent.Type) -> (ListProperties, List.Measurement, Environment) -> List.ListContent", - "key.typeusr" : "$s10properties11measurement11environment16BlueprintUILists4ListV0F7ContentV10ListableUI0F10PropertiesV_AF11MeasurementO0dI011EnvironmentVtcD", - "key.usr" : "s:16BlueprintUILists4ListV0C7ContentV10properties11measurement11environmentAE10ListableUI0C10PropertiesV_AC11MeasurementO0aI011EnvironmentVtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 13, - "key.name" : "MARK: Element", - "key.offset" : 4057 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var content: ElementContent<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4092 - } - ], - "key.bodylength" : 1064, - "key.bodyoffset" : 4129, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the content of this element.\n\nElements generally fall into two types:\n- Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some\n content that can be measured. Leaf elements typically instantiate their content with\n `ElementContent(measurable:)` or similar.\n- Container elements: these element have one or more children, which are arranged by a layout implementation.\n Container elements typically use methods like `ElementContent(layout:configure:)` to instantiate\n their content.", - "key.doc.column" : 9, - "key.doc.declaration" : "var content: BlueprintUI.ElementContent { get }", - "key.doc.discussion" : [ - { - "Para" : "Elements generally fall into two types:" - }, - { - "List-Bullet" : "" - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.doc.full_as_xml" : "content<\/Name>s:11BlueprintUI7ElementP7contentAA0C7ContentVvp<\/USR>var content: BlueprintUI.ElementContent { get }<\/Declaration>Returns the content of this element.<\/Para><\/Abstract>Elements generally fall into two types:<\/Para>Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some content that can be measured. Leaf elements typically instantiate their content with ElementContent(measurable:)<\/codeVoice> or similar.<\/Para><\/Item>Container elements: these element have one or more children, which are arranged by a layout implementation. Container elements typically use methods like ElementContent(layout:configure:)<\/codeVoice> to instantiate their content.<\/Para><\/Item><\/List-Bullet>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 52, - "key.doc.name" : "content", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: ElementContent<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 1095, - "key.line" : 135, - "key.modulename" : "BlueprintUILists", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 4103, - "key.offset" : 4099, - "key.overrides" : [ - { - "key.usr" : "s:11BlueprintUI7ElementP7contentAA0C7ContentVvp" - } - ], - "key.parsed_declaration" : "public var content : ElementContent", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 135, - "key.reusingastcontext" : false, - "key.typename" : "ElementContent", - "key.typeusr" : "$s11BlueprintUI14ElementContentVD", - "key.usr" : "s:11BlueprintUI7ElementP7contentAA0C7ContentVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func backingViewDescription(with context: ViewDescriptionContext<\/Type>) -> ViewDescription<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5212 - } - ], - "key.bodylength" : 512, - "key.bodyoffset" : 5314, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns an (optional) description of the view that should back this element.\n\nIn Blueprint, elements that are displayed using a live `UIView` instance are referred to as \"view-backed\".\nElements become view-backed by returning a `ViewDescription` value from this method.\n\n- Parameter context: The context this element is rendered in.\n\n- Returns: An optional `ViewDescription`.", - "key.doc.column" : 10, - "key.doc.declaration" : "func backingViewDescription(with context: BlueprintUI.ViewDescriptionContext) -> BlueprintUI.ViewDescription?", - "key.doc.discussion" : [ - { - "Para" : "In Blueprint, elements that are displayed using a live `UIView` instance are referred to as “view-backed”. Elements become view-backed by returning a `ViewDescription` value from this method." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.doc.full_as_xml" : "backingViewDescription(with:)<\/Name>s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF<\/USR>func backingViewDescription(with context: BlueprintUI.ViewDescriptionContext) -> BlueprintUI.ViewDescription?<\/Declaration>Returns an (optional) description of the view that should back this element.<\/Para><\/Abstract>context<\/Name>in<\/Direction>The context this element is rendered in.<\/Para><\/Discussion><\/Parameter><\/Parameters>An optional ViewDescription<\/codeVoice>.<\/Para><\/ResultDiscussion>In Blueprint, elements that are displayed using a live UIView<\/codeVoice> instance are referred to as “view-backed”. Elements become view-backed by returning a ViewDescription<\/codeVoice> value from this method.<\/Para>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 62, - "key.doc.name" : "backingViewDescription(with:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The context this element is rendered in." - } - ], - "name" : "context" - } - ], - "key.doc.result_discussion" : [ - { - "Para" : "An optional `ViewDescription`." - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> backingViewDescription<\/decl.name>(with<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ViewDescriptionContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewDescription<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 608, - "key.line" : 163, - "key.modulename" : "BlueprintUILists", - "key.name" : "backingViewDescription(with:)", - "key.namelength" : 60, - "key.nameoffset" : 5224, - "key.offset" : 5219, - "key.overrides" : [ - { - "key.usr" : "s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF" - } - ], - "key.parsed_declaration" : "public func backingViewDescription(with context: ViewDescriptionContext) -> ViewDescription?", - "key.parsed_scope.end" : 178, - "key.parsed_scope.start" : 163, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var properties: ListProperties<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> properties<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 32, - "key.line" : 165, - "key.modulename" : "BlueprintUILists", - "key.name" : "properties", - "key.namelength" : 10, - "key.nameoffset" : 5331, - "key.offset" : 5327, - "key.parsed_declaration" : "var properties = self.properties", - "key.parsed_scope.end" : 165, - "key.parsed_scope.start" : 165, - "key.reusingastcontext" : false, - "key.typename" : "ListProperties", - "key.typeusr" : "$s10ListableUI14ListPropertiesVD", - "key.usr" : "s:16BlueprintUILists4ListV0C7ContentV22backingViewDescription4with0A2UI0fG0VSgAH0fG7ContextV_tF10propertiesL_08ListableI00C10PropertiesVvp" - } - ], - "key.typename" : "(List.ListContent) -> (ViewDescriptionContext) -> ViewDescription?", - "key.typeusr" : "$s4with11BlueprintUI15ViewDescriptionVSgAB0dE7ContextV_tcD", - "key.usr" : "s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func size(with size: MeasuredListSize<\/Type>, in constraint: SizeConstraint<\/Type>, layoutMode: LayoutMode<\/Type>, horizontalFill: Measurement<\/Type>.FillRule<\/Type>, verticalFill: Measurement<\/Type>.FillRule<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.bodylength" : 1170, - "key.bodyoffset" : 6113, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> size<\/decl.name>(with<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: MeasuredListSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> constraint<\/decl.var.parameter.name>: SizeConstraint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, layoutMode<\/decl.var.parameter.argument_label>: LayoutMode<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, horizontalFill<\/decl.var.parameter.argument_label>: Measurement<\/ref.enum>.FillRule<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, verticalFill<\/decl.var.parameter.argument_label>: Measurement<\/ref.enum>.FillRule<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 1439, - "key.line" : 180, - "key.modulename" : "BlueprintUILists", - "key.name" : "size(with:in:layoutMode:horizontalFill:verticalFill:)", - "key.namelength" : 236, - "key.nameoffset" : 5857, - "key.offset" : 5845, - "key.parsed_declaration" : "static func size(\n with size : MeasuredListSize,\n in constraint : SizeConstraint,\n layoutMode: LayoutMode,\n horizontalFill : Measurement.FillRule,\n verticalFill : Measurement.FillRule\n) -> CGSize", - "key.parsed_scope.end" : 221, - "key.parsed_scope.start" : 180, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let width: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 429, - "key.line" : 188, - "key.modulename" : "BlueprintUILists", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 6130, - "key.offset" : 6126, - "key.parsed_declaration" : "let width : CGFloat = {\n switch horizontalFill {\n case .fillParent:\n if let max = constraint.width.constrainedValue {\n return max\n } else {\n return .infinity\n }\n case .natural:\n return size.naturalWidth ?? size.contentSize.width\n }\n}()", - "key.parsed_scope.end" : 188, - "key.parsed_scope.start" : 188, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:16BlueprintUILists4ListV0C7ContentV4size4with2in10layoutMode14horizontalFill08verticalK0So6CGSizeV10ListableUI08MeasuredC4SizeV_0aO00Q10ConstraintVAQ06LayoutI0VAC11MeasurementO0K4RuleOAYtFZ5widthL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let height: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/List.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> height<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 578, - "key.line" : 201, - "key.modulename" : "BlueprintUILists", - "key.name" : "height", - "key.namelength" : 6, - "key.nameoffset" : 6585, - "key.offset" : 6581, - "key.parsed_declaration" : "let height : CGFloat = {\n switch verticalFill {\n case .fillParent:\n if let max = constraint.height.constrainedValue {\n return max\n } else {\n return .infinity\n }\n case .natural:\n if let maxHeight = constraint.height.constrainedValue {\n return min(size.contentSize.height, maxHeight)\n }\n return size.contentSize.height\n }\n}()", - "key.parsed_scope.end" : 201, - "key.parsed_scope.start" : 201, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:16BlueprintUILists4ListV0C7ContentV4size4with2in10layoutMode14horizontalFill08verticalK0So6CGSizeV10ListableUI08MeasuredC4SizeV_0aO00Q10ConstraintVAQ06LayoutI0VAC11MeasurementO0K4RuleOAYtFZ6heightL_14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : "(List.ListContent.Type) -> (MeasuredListSize, SizeConstraint, LayoutMode, List.Measurement.FillRule, List.Measurement.FillRule) -> CGSize", - "key.typeusr" : "$s4with2in10layoutMode14horizontalFill08verticalF0So6CGSizeV10ListableUI16MeasuredListSizeV_09BlueprintJ00M10ConstraintVAK06LayoutD0V0N7UILists0L0V11MeasurementO0F4RuleOAVtcD", - "key.usr" : "s:16BlueprintUILists4ListV0C7ContentV4size4with2in10layoutMode14horizontalFill08verticalK0So6CGSizeV10ListableUI08MeasuredC4SizeV_0aO00Q10ConstraintVAQ06LayoutI0VAC11MeasurementO0K4RuleOAYtFZ" - } - ], - "key.typename" : "List.ListContent.Type", - "key.typeusr" : "$s16BlueprintUILists4ListV0C7ContentVmD", - "key.usr" : "s:16BlueprintUILists4ListV0C7ContentV" - } - ], - "key.typename" : "List.Type", - "key.typeusr" : "$s16BlueprintUILists4ListVmD", - "key.usr" : "s:16BlueprintUILists4ListV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListEnvironment+Blueprint.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 458, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "struct ListEnvironment<\/Declaration>", - "key.bodylength" : 298, - "key.bodyoffset" : 158, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An environment of keys and values that are passed to every `ItemContent` and `HeaderFooter`\nduring layout and measurement, to allow passing down data.\n\nThis type is similar to the SwiftUI or Blueprint `Environment`, where you define a `ListEnvironmentKey`,\nand then provide a custom getter and setter to read and write the content:\n\n```\nenum MyLayoutTypeKey : ListEnvironmentKey {\n var defaultValue : MyLayoutType {\n .defaultLayout\n }\n}\n\nextension ListEnvironment {\n var myLayoutType : MyLayoutType {\n get { self[MyLayoutTypeKey.self] }\n set { self[MyLayoutTypeKey.self] = newValue }\n }\n}\n```\n\nYou can retrieve the `ListEnvironment` through the `info` object passed in `ItemContent` and `HeaderFooter`'s\n`apply(to:for:with:)` methods.\n\n```\nfunc apply(\n to views : ItemContentViews,\n for reason: ApplyReason,\n with info : ApplyItemContentInfo\n) {\n switch info.environment.myLayoutType {\n ...\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "struct ListEnvironment", - "key.doc.discussion" : [ - { - "Para" : "This type is similar to the SwiftUI or Blueprint `Environment`, where you define a `ListEnvironmentKey`, and then provide a custom getter and setter to read and write the content:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can retrieve the `ListEnvironment` through the `info` object passed in `ItemContent` and `HeaderFooter`’s `apply(to:for:with:)` methods." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.doc.full_as_xml" : "ListEnvironment<\/Name>s:10ListableUI15ListEnvironmentV<\/USR>struct ListEnvironment<\/Declaration>An environment of keys and values that are passed to every ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice> during layout and measurement, to allow passing down data.<\/Para><\/Abstract>This type is similar to the SwiftUI or Blueprint Environment<\/codeVoice>, where you define a ListEnvironmentKey<\/codeVoice>, and then provide a custom getter and setter to read and write the content:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can retrieve the ListEnvironment<\/codeVoice> through the info<\/codeVoice> object passed in ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice>’s apply(to:for:with:)<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered>,]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 44, - "key.doc.name" : "ListEnvironment", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListEnvironment<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 326, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "ListEnvironment", - "key.namelength" : 15, - "key.nameoffset" : 141, - "key.offset" : 131, - "key.parsed_declaration" : "extension ListEnvironment", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var blueprintEnvironment: Environment<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 96, - "key.bodyoffset" : 208, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListEnvironment+Blueprint.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> blueprintEnvironment<\/decl.name>: Environment<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 137, - "key.line" : 13, - "key.modulename" : "BlueprintUILists", - "key.name" : "blueprintEnvironment", - "key.namelength" : 20, - "key.nameoffset" : 172, - "key.offset" : 168, - "key.parsed_declaration" : "var blueprintEnvironment : Environment", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "Environment", - "key.typeusr" : "$s11BlueprintUI11EnvironmentVD", - "key.usr" : "s:10ListableUI15ListEnvironmentV16BlueprintUIListsE09blueprintD00eB00D0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private enum BlueprintKey : ListEnvironmentKey<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 315 - } - ], - "key.bodylength" : 91, - "key.bodyoffset" : 363, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 18, - "key.offset" : 343 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListEnvironment+Blueprint.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> BlueprintKey<\/decl.name> : ListEnvironmentKey<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "ListEnvironmentKey" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 132, - "key.line" : 18, - "key.modulename" : "BlueprintUILists", - "key.name" : "BlueprintKey", - "key.namelength" : 12, - "key.nameoffset" : 328, - "key.offset" : 323, - "key.parsed_declaration" : "private enum BlueprintKey : ListEnvironmentKey", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static var defaultValue: Environment<\/Type> { get }<\/Declaration>", - "key.bodylength" : 28, - "key.bodyoffset" : 420, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value that will be vended by an `Environment` for this key if no other value has been set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self.Value { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract>This documentation comment was inherited from ListEnvironmentKey<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListEnvironment+Blueprint.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Environment<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 68, - "key.line" : 20, - "key.modulename" : "BlueprintUILists", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 392, - "key.offset" : 381, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ" - } - ], - "key.parsed_declaration" : "static var defaultValue : Environment", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "Environment", - "key.typeusr" : "$s11BlueprintUI11EnvironmentVD", - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ" - } - ], - "key.typename" : "ListEnvironment.BlueprintKey.Type", - "key.typeusr" : "$s10ListableUI15ListEnvironmentV16BlueprintUIListsE0E3Key33_C2C04DB8082C938671FE71F91CCB3C26LLOmD", - "key.usr" : "s:10ListableUI15ListEnvironmentV16BlueprintUIListsE0E3Key33_C2C04DB8082C938671FE71F91CCB3C26LLO" - } - ], - "key.typename" : "ListEnvironment.Type", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVmD", - "key.usr" : "s:10ListableUI15ListEnvironmentV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 7380, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListReorderGesture : Element<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1122 - } - ], - "key.bodylength" : 1759, - "key.bodyoffset" : 1166, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An element that wraps your provided element, to enable support\nfor user-driven re-ordering in a list view.\n\nIf you do not support reordering items, you do not need\nto add this element anywhere in your hierarchy.\n\nThis element on its own has no visual appearance. Thus, you should\nstill render your own reorder dragger \/ handle \/ etc in the passed in element.\n\nIn the below example, we see how to set up the content of a simple item, which contains\na text label and a reorder grabber.\n\n```\nfunc element(with info : ApplyItemContentInfo) -> Element\n{\n Row { row in\n row.add(child: Label(text: \"...\"))\n\n row.add(child: ListReorderGesture(actions: info.actions, wrapping: MyReorderGrabber()))\n\n \/\/ Could also be written as:\n row.add(child: MyReorderGrabber().listReorderGesture(with: info.reorderingActions))\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.comment" : "\nAn element that wraps your provided element, to enable support\nfor user-driven re-ordering in a list view.\n\nIf you do not support reordering items, you do not need\nto add this element anywhere in your hierarchy.\n\nThis element on its own has no visual appearance. Thus, you should\nstill render your own reorder dragger \/ handle \/ etc in the passed in element.\n\nIn the below example, we see how to set up the content of a simple item, which contains\na text label and a reorder grabber.\n\n```\nfunc element(with info : ApplyItemContentInfo) -> Element\n{\n Row { row in\n row.add(child: Label(text: \"...\"))\n\n row.add(child: ListReorderGesture(actions: info.actions, wrapping: MyReorderGrabber()))\n\n \/\/ Could also be written as:\n row.add(child: MyReorderGrabber().listReorderGesture(with: info.reorderingActions))\n }\n}\n```", - "key.doc.declaration" : "public struct ListReorderGesture : Element", - "key.doc.discussion" : [ - { - "Para" : "If you do not support reordering items, you do not need to add this element anywhere in your hierarchy." - }, - { - "Para" : "This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element." - }, - { - "Para" : "In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.doc.full_as_xml" : "ListReorderGesture<\/Name>s:16BlueprintUILists18ListReorderGestureV<\/USR>public struct ListReorderGesture : Element<\/Declaration>An element that wraps your provided element, to enable support for user-driven re-ordering in a list view.<\/Para><\/Abstract>If you do not support reordering items, you do not need to add this element anywhere in your hierarchy.<\/Para>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para>In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber.<\/Para> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 40, - "key.doc.name" : "ListReorderGesture", - "key.doc.type" : "Class", - "key.doclength" : 946, - "key.docoffset" : 176, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 7, - "key.offset" : 1157 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListReorderGesture<\/decl.name> : Element<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Element" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1797, - "key.line" : 40, - "key.modulename" : "BlueprintUILists", - "key.name" : "ListReorderGesture", - "key.namelength" : 18, - "key.nameoffset" : 1136, - "key.offset" : 1129, - "key.parsed_declaration" : "public struct ListReorderGesture : Element", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ListReorderGesture<\/Type>.Begins<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1176 - } - ], - "key.bodylength" : 49, - "key.bodyoffset" : 1196, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListReorderGesture<\/ref.struct>.Begins<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 63, - "key.line" : 43, - "key.modulename" : "BlueprintUILists", - "key.name" : "Begins", - "key.namelength" : 6, - "key.nameoffset" : 1188, - "key.offset" : 1183, - "key.parsed_declaration" : "public enum Begins", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 10, - "key.offset" : 1205, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case onTap<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> onTap<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 5, - "key.line" : 44, - "key.modulename" : "BlueprintUILists", - "key.name" : "onTap", - "key.namelength" : 5, - "key.nameoffset" : 1210, - "key.offset" : 1210, - "key.parsed_declaration" : "case onTap", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.typename" : "(ListReorderGesture.Begins.Type) -> ListReorderGesture.Begins", - "key.typeusr" : "$sy16BlueprintUILists18ListReorderGestureV6BeginsOAEmcD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV6BeginsO5onTapyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 1224, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case onLongPress<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> onLongPress<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 45, - "key.modulename" : "BlueprintUILists", - "key.name" : "onLongPress", - "key.namelength" : 11, - "key.nameoffset" : 1229, - "key.offset" : 1229, - "key.parsed_declaration" : "case onLongPress", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 45, - "key.reusingastcontext" : false, - "key.typename" : "(ListReorderGesture.Begins.Type) -> ListReorderGesture.Begins", - "key.typeusr" : "$sy16BlueprintUILists18ListReorderGestureV6BeginsOAEmcD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV6BeginsO11onLongPressyA2EmF" - } - ] - } - ], - "key.typename" : "ListReorderGesture.Begins.Type", - "key.typeusr" : "$s16BlueprintUILists18ListReorderGestureV6BeginsOmD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV6BeginsO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var element: Element<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1319 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The element which is being wrapped by the reorder gesture.", - "key.doc.column" : 16, - "key.doc.comment" : "The element which is being wrapped by the reorder gesture.", - "key.doc.declaration" : "public var element: Element", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.doc.full_as_xml" : "element<\/Name>s:16BlueprintUILists18ListReorderGestureV7element0A2UI7Element_pvp<\/USR>public var element: Element<\/Declaration>The element which is being wrapped by the reorder gesture.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 49, - "key.doc.name" : "element", - "key.doc.type" : "Other", - "key.doclength" : 63, - "key.docoffset" : 1252, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> element<\/decl.name>: Element<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 49, - "key.modulename" : "BlueprintUILists", - "key.name" : "element", - "key.namelength" : 7, - "key.nameoffset" : 1330, - "key.offset" : 1326, - "key.parsed_declaration" : "public var element : Element", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "any Element", - "key.typeusr" : "$s11BlueprintUI7Element_pD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV7element0A2UI7Element_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isEnabled: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1399 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the gesture is enabled or not.", - "key.doc.column" : 16, - "key.doc.comment" : "If the gesture is enabled or not.", - "key.doc.declaration" : "public var isEnabled: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.doc.full_as_xml" : "isEnabled<\/Name>s:16BlueprintUILists18ListReorderGestureV9isEnabledSbvp<\/USR>public var isEnabled: Bool<\/Declaration>If the gesture is enabled or not.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 52, - "key.doc.name" : "isEnabled", - "key.doc.type" : "Other", - "key.doclength" : 38, - "key.docoffset" : 1357, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 52, - "key.modulename" : "BlueprintUILists", - "key.name" : "isEnabled", - "key.namelength" : 9, - "key.nameoffset" : 1410, - "key.offset" : 1406, - "key.parsed_declaration" : "public var isEnabled : Bool", - "key.parsed_scope.end" : 52, - "key.parsed_scope.start" : 52, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV9isEnabledSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var begins: Begins<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1479 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Condition to start the reorder gesture", - "key.doc.column" : 16, - "key.doc.comment" : "Condition to start the reorder gesture", - "key.doc.declaration" : "public var begins: Begins", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.doc.full_as_xml" : "begins<\/Name>s:16BlueprintUILists18ListReorderGestureV6beginsAC6BeginsOvp<\/USR>public var begins: Begins<\/Declaration>Condition to start the reorder gesture<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 55, - "key.doc.name" : "begins", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 1432, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> begins<\/decl.name>: Begins<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 55, - "key.modulename" : "BlueprintUILists", - "key.name" : "begins", - "key.namelength" : 6, - "key.nameoffset" : 1490, - "key.offset" : 1486, - "key.parsed_declaration" : "public var begins: Begins", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListReorderGesture.Begins", - "key.typeusr" : "$s16BlueprintUILists18ListReorderGestureV6BeginsOD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV6beginsAC6BeginsOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let actions: ReorderingActions<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> actions<\/decl.name>: ReorderingActions<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 57, - "key.modulename" : "BlueprintUILists", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 1518, - "key.offset" : 1514, - "key.parsed_declaration" : "let actions : ReorderingActions", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.typename" : "ReorderingActions", - "key.typeusr" : "$s10ListableUI17ReorderingActionsCD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV7actions10ListableUI17ReorderingActionsCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var accessibilityLabel: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1637 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The acccessibility label for the reorder element. Defaults to \"Reorder\".", - "key.doc.column" : 16, - "key.doc.comment" : "The acccessibility label for the reorder element. Defaults to \"Reorder\".", - "key.doc.declaration" : "public var accessibilityLabel: String?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.doc.full_as_xml" : "accessibilityLabel<\/Name>s:16BlueprintUILists18ListReorderGestureV18accessibilityLabelSSSgvp<\/USR>public var accessibilityLabel: String?<\/Declaration>The acccessibility label for the reorder element. Defaults to “Reorder”.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 60, - "key.doc.name" : "accessibilityLabel", - "key.doc.type" : "Other", - "key.doclength" : 78, - "key.docoffset" : 1555, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> accessibilityLabel<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 60, - "key.modulename" : "BlueprintUILists", - "key.name" : "accessibilityLabel", - "key.namelength" : 18, - "key.nameoffset" : 1648, - "key.offset" : 1644, - "key.parsed_declaration" : "public var accessibilityLabel : String?", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV18accessibilityLabelSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(isEnabled: Bool<\/Type> = true, actions: ReorderingActions<\/Type>, begins: Begins<\/Type> = .onTap, accessibilityLabel: String<\/Type>? = nil, wrapping element: Element<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1930 - } - ], - "key.bodylength" : 213, - "key.bodyoffset" : 2131, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new re-order gesture which wraps the provided element.\n\nThis element on its own has no visual appearance. Thus, you should\nstill render your own reorder dragger \/ handle \/ etc in the passed in element.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new re-order gesture which wraps the provided element.\n\nThis element on its own has no visual appearance. Thus, you should\nstill render your own reorder dragger \/ handle \/ etc in the passed in element.", - "key.doc.declaration" : "public init(isEnabled: Bool = true, actions: ReorderingActions, begins: Begins = .onTap, accessibilityLabel: String? = nil, wrapping element: Element)", - "key.doc.discussion" : [ - { - "Para" : "This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.doc.full_as_xml" : "init(isEnabled:actions:begins:accessibilityLabel:wrapping:)<\/Name>s:16BlueprintUILists18ListReorderGestureV9isEnabled7actions6begins18accessibilityLabel8wrappingACSb_10ListableUI17ReorderingActionsCAC6BeginsOSSSg0aN07Element_ptcfc<\/USR>public init(isEnabled: Bool = true, actions: ReorderingActions, begins: Begins = .onTap, accessibilityLabel: String? = nil, wrapping element: Element)<\/Declaration>Creates a new re-order gesture which wraps the provided element.<\/Para><\/Abstract>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 66, - "key.doc.name" : "init(isEnabled:actions:begins:accessibilityLabel:wrapping:)", - "key.doc.type" : "Function", - "key.doclength" : 240, - "key.docoffset" : 1686, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, actions<\/decl.var.parameter.argument_label>: ReorderingActions<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, begins<\/decl.var.parameter.argument_label>: Begins<\/ref.enum><\/decl.var.parameter.type> = .onTap<\/decl.var.parameter>, accessibilityLabel<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, wrapping<\/decl.var.parameter.argument_label> element<\/decl.var.parameter.name>: Element<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 408, - "key.line" : 66, - "key.modulename" : "BlueprintUILists", - "key.name" : "init(isEnabled:actions:begins:accessibilityLabel:wrapping:)", - "key.namelength" : 192, - "key.nameoffset" : 1937, - "key.offset" : 1937, - "key.parsed_declaration" : "public init(\n isEnabled : Bool = true,\n actions : ReorderingActions,\n begins: Begins = .onTap,\n accessibilityLabel: String? = nil,\n wrapping element : Element\n)", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListReorderGesture.Type) -> (Bool, ReorderingActions, ListReorderGesture.Begins, String?, any Element) -> ListReorderGesture", - "key.typeusr" : "$s9isEnabled7actions6begins18accessibilityLabel8wrapping16BlueprintUILists18ListReorderGestureVSb_10ListableUI17ReorderingActionsCAH6BeginsOSSSg0hN07Element_ptcD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV9isEnabled7actions6begins18accessibilityLabel8wrappingACSb_10ListableUI17ReorderingActionsCAC6BeginsOSSSg0aN07Element_ptcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 13, - "key.name" : "MARK: Element", - "key.offset" : 2361 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var content: ElementContent<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2391 - } - ], - "key.bodylength" : 49, - "key.bodyoffset" : 2427, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the content of this element.\n\nElements generally fall into two types:\n- Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some\n content that can be measured. Leaf elements typically instantiate their content with\n `ElementContent(measurable:)` or similar.\n- Container elements: these element have one or more children, which are arranged by a layout implementation.\n Container elements typically use methods like `ElementContent(layout:configure:)` to instantiate\n their content.", - "key.doc.column" : 9, - "key.doc.declaration" : "var content: BlueprintUI.ElementContent { get }", - "key.doc.discussion" : [ - { - "Para" : "Elements generally fall into two types:" - }, - { - "List-Bullet" : "" - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.doc.full_as_xml" : "content<\/Name>s:11BlueprintUI7ElementP7contentAA0C7ContentVvp<\/USR>var content: BlueprintUI.ElementContent { get }<\/Declaration>Returns the content of this element.<\/Para><\/Abstract>Elements generally fall into two types:<\/Para>Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some content that can be measured. Leaf elements typically instantiate their content with ElementContent(measurable:)<\/codeVoice> or similar.<\/Para><\/Item>Container elements: these element have one or more children, which are arranged by a layout implementation. Container elements typically use methods like ElementContent(layout:configure:)<\/codeVoice> to instantiate their content.<\/Para><\/Item><\/List-Bullet>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 52, - "key.doc.name" : "content", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: ElementContent<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 79, - "key.line" : 88, - "key.modulename" : "BlueprintUILists", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 2402, - "key.offset" : 2398, - "key.overrides" : [ - { - "key.usr" : "s:11BlueprintUI7ElementP7contentAA0C7ContentVvp" - } - ], - "key.parsed_declaration" : "public var content: ElementContent", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 88, - "key.reusingastcontext" : false, - "key.typename" : "ElementContent", - "key.typeusr" : "$s11BlueprintUI14ElementContentVD", - "key.usr" : "s:11BlueprintUI7ElementP7contentAA0C7ContentVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func backingViewDescription(with context: ViewDescriptionContext<\/Type>) -> ViewDescription<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2487 - } - ], - "key.bodylength" : 337, - "key.bodyoffset" : 2585, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns an (optional) description of the view that should back this element.\n\nIn Blueprint, elements that are displayed using a live `UIView` instance are referred to as \"view-backed\".\nElements become view-backed by returning a `ViewDescription` value from this method.\n\n- Parameter context: The context this element is rendered in.\n\n- Returns: An optional `ViewDescription`.", - "key.doc.column" : 10, - "key.doc.declaration" : "func backingViewDescription(with context: BlueprintUI.ViewDescriptionContext) -> BlueprintUI.ViewDescription?", - "key.doc.discussion" : [ - { - "Para" : "In Blueprint, elements that are displayed using a live `UIView` instance are referred to as “view-backed”. Elements become view-backed by returning a `ViewDescription` value from this method." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.doc.full_as_xml" : "backingViewDescription(with:)<\/Name>s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF<\/USR>func backingViewDescription(with context: BlueprintUI.ViewDescriptionContext) -> BlueprintUI.ViewDescription?<\/Declaration>Returns an (optional) description of the view that should back this element.<\/Para><\/Abstract>context<\/Name>in<\/Direction>The context this element is rendered in.<\/Para><\/Discussion><\/Parameter><\/Parameters>An optional ViewDescription<\/codeVoice>.<\/Para><\/ResultDiscussion>In Blueprint, elements that are displayed using a live UIView<\/codeVoice> instance are referred to as “view-backed”. Elements become view-backed by returning a ViewDescription<\/codeVoice> value from this method.<\/Para>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 62, - "key.doc.name" : "backingViewDescription(with:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The context this element is rendered in." - } - ], - "name" : "context" - } - ], - "key.doc.result_discussion" : [ - { - "Para" : "An optional `ViewDescription`." - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> backingViewDescription<\/decl.name>(with<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ViewDescriptionContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewDescription<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 429, - "key.line" : 92, - "key.modulename" : "BlueprintUILists", - "key.name" : "backingViewDescription(with:)", - "key.namelength" : 60, - "key.nameoffset" : 2499, - "key.offset" : 2494, - "key.overrides" : [ - { - "key.usr" : "s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF" - } - ], - "key.parsed_declaration" : "public func backingViewDescription(with context: ViewDescriptionContext) -> ViewDescription?", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 92, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListReorderGesture) -> (ViewDescriptionContext) -> ViewDescription?", - "key.typeusr" : "$s4with11BlueprintUI15ViewDescriptionVSgAB0dE7ContextV_tcD", - "key.usr" : "s:11BlueprintUI7ElementP22backingViewDescription4withAA0eF0VSgAA0eF7ContextV_tF" - } - ], - "key.typename" : "ListReorderGesture.Type", - "key.typeusr" : "$s16BlueprintUILists18ListReorderGestureVmD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "protocol Element<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2929 - } - ], - "key.bodylength" : 520, - "key.bodyoffset" : 2955, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Conforming types represent a rectangular content area in a two-dimensional\nlayout space.\n\n***\n\nThe ultimate purpose of an element is to provide visual content. This can be\ndone in two ways:\n\n- By providing a view description (`ViewDescription`).\n\n- By providing child elements that will be displayed recursively within\n the local coordinate space.\n\n***\n\nA custom element might look something like this:\n\n```\nstruct MyElement: Element {\n\n var backgroundColor: UIColor = .red\n\n \/\/ Returns a single child element.\n var content: ElementContent {\n return ElementContent(child: Label(text: \"😂\"))\n }\n\n \/\/ Providing a view description means that this element will be\n \/\/ backed by a UIView instance when displayed in a `BlueprintView`.\n func backingViewDescription(with context: ViewDescriptionContext) -> ViewDescription? {\n return UIView.describe { config in\n config.bind(backgroundColor, to: \\.backgroundColor)\n }\n }\n\n}\n```\n", - "key.doc.column" : 17, - "key.doc.declaration" : "protocol Element", - "key.doc.discussion" : [ - { - "Para" : "The ultimate purpose of an element is to provide visual content. This can be done in two ways:" - }, - { - "List-Bullet" : "" - }, - { - "Para" : "A custom element might look something like this:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.doc.full_as_xml" : "Element<\/Name>s:11BlueprintUI7ElementP<\/USR>protocol Element<\/Declaration>Conforming types represent a rectangular content area in a two-dimensional layout space.<\/Para><\/Abstract>]]><\/rawHTML>The ultimate purpose of an element is to provide visual content. This can be done in two ways:<\/Para>By providing a view description (ViewDescription<\/codeVoice>).<\/Para><\/Item>By providing child elements that will be displayed recursively within the local coordinate space.<\/Para><\/Item><\/List-Bullet>]]><\/rawHTML>A custom element might look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ViewDescription? {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 41, - "key.doc.name" : "Element", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/Development\/Tuist\/.build\/checkouts\/Blueprint\/BlueprintUI\/Sources\/Element\/Element.swift", - "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> Element<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 540, - "key.line" : 41, - "key.modulename" : "BlueprintUI", - "key.name" : "Element", - "key.namelength" : 7, - "key.nameoffset" : 2946, - "key.offset" : 2936, - "key.parsed_declaration" : "public extension Element", - "key.parsed_scope.end" : 126, - "key.parsed_scope.start" : 111, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func listReorderGesture(with actions: ReorderingActions<\/Type>, isEnabled: Bool<\/Type> = true, begins: ListReorderGesture<\/Type>.Begins<\/Type> = .onTap, accessibilityLabel: String<\/Type>? = nil) -> Element<\/Type><\/Declaration>", - "key.bodylength" : 252, - "key.bodyoffset" : 3221, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Wraps the element in a re-order gesture.", - "key.doc.column" : 10, - "key.doc.comment" : "Wraps the element in a re-order gesture.", - "key.doc.declaration" : "func listReorderGesture(with actions: ReorderingActions, isEnabled: Bool = true, begins: ListReorderGesture.Begins = .onTap, accessibilityLabel: String? = nil) -> Element", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.doc.full_as_xml" : "listReorderGesture(with:isEnabled:begins:accessibilityLabel:)<\/Name>s:11BlueprintUI7ElementP0A7UIListsE18listReorderGesture4with9isEnabled6begins18accessibilityLabelAaB_p08ListableB017ReorderingActionsC_SbAD04ListfG0V6BeginsOSSSgtF<\/USR>func listReorderGesture(with actions: ReorderingActions, isEnabled: Bool = true, begins: ListReorderGesture.Begins = .onTap, accessibilityLabel: String? = nil) -> Element<\/Declaration>Wraps the element in a re-order gesture.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 114, - "key.doc.name" : "listReorderGesture(with:isEnabled:begins:accessibilityLabel:)", - "key.doc.type" : "Function", - "key.doclength" : 45, - "key.docoffset" : 2960, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listReorderGesture<\/decl.name>(with<\/decl.var.parameter.argument_label> actions<\/decl.var.parameter.name>: ReorderingActions<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, isEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, begins<\/decl.var.parameter.argument_label>: ListReorderGesture<\/ref.struct>.Begins<\/ref.enum><\/decl.var.parameter.type> = .onTap<\/decl.var.parameter>, accessibilityLabel<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 465, - "key.line" : 114, - "key.modulename" : "BlueprintUILists", - "key.name" : "listReorderGesture(with:isEnabled:begins:accessibilityLabel:)", - "key.namelength" : 194, - "key.nameoffset" : 3014, - "key.offset" : 3009, - "key.parsed_declaration" : "func listReorderGesture(\n with actions : ReorderingActions,\n isEnabled : Bool = true,\n begins: ListReorderGesture.Begins = .onTap,\n accessibilityLabel: String? = nil\n) -> Element", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 114, - "key.receivers" : [ - { - "key.usr" : "s:11BlueprintUI7ElementP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ReorderingActions, Bool, ListReorderGesture.Begins, String?) -> any Element", - "key.typeusr" : "$s4with9isEnabled6begins18accessibilityLabel11BlueprintUI7Element_p08ListableH017ReorderingActionsC_Sb0G7UILists18ListReorderGestureV6BeginsOSSSgtcD", - "key.usr" : "s:11BlueprintUI7ElementP0A7UIListsE18listReorderGesture4with9isEnabled6begins18accessibilityLabelAaB_p08ListableB017ReorderingActionsC_SbAD04ListfG0V6BeginsOSSSgtF" - } - ], - "key.typename" : "Element.Type", - "key.typeusr" : "$s11BlueprintUI7Element_pmD", - "key.usr" : "s:11BlueprintUI7ElementP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "public struct ListReorderGesture : Element<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 3479 - } - ], - "key.bodylength" : 3303, - "key.bodyoffset" : 3521, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An element that wraps your provided element, to enable support\nfor user-driven re-ordering in a list view.\n\nIf you do not support reordering items, you do not need\nto add this element anywhere in your hierarchy.\n\nThis element on its own has no visual appearance. Thus, you should\nstill render your own reorder dragger \/ handle \/ etc in the passed in element.\n\nIn the below example, we see how to set up the content of a simple item, which contains\na text label and a reorder grabber.\n\n```\nfunc element(with info : ApplyItemContentInfo) -> Element\n{\n Row { row in\n row.add(child: Label(text: \"...\"))\n\n row.add(child: ListReorderGesture(actions: info.actions, wrapping: MyReorderGrabber()))\n\n \/\/ Could also be written as:\n row.add(child: MyReorderGrabber().listReorderGesture(with: info.reorderingActions))\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ListReorderGesture : Element", - "key.doc.discussion" : [ - { - "Para" : "If you do not support reordering items, you do not need to add this element anywhere in your hierarchy." - }, - { - "Para" : "This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element." - }, - { - "Para" : "In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.doc.full_as_xml" : "ListReorderGesture<\/Name>s:16BlueprintUILists18ListReorderGestureV<\/USR>public struct ListReorderGesture : Element<\/Declaration>An element that wraps your provided element, to enable support for user-driven re-ordering in a list view.<\/Para><\/Abstract>If you do not support reordering items, you do not need to add this element anywhere in your hierarchy.<\/Para>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para>In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber.<\/Para> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 40, - "key.doc.name" : "ListReorderGesture", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListReorderGesture<\/decl.name> : Element<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 3334, - "key.line" : 40, - "key.modulename" : "BlueprintUILists", - "key.name" : "ListReorderGesture", - "key.namelength" : 18, - "key.nameoffset" : 3501, - "key.offset" : 3491, - "key.parsed_declaration" : "fileprivate extension ListReorderGesture", - "key.parsed_scope.end" : 212, - "key.parsed_scope.start" : 129, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private final class View : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 3534 - }, - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3526 - } - ], - "key.bodylength" : 3257, - "key.bodyoffset" : 3565, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 3553 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> View<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIView" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 3283, - "key.line" : 131, - "key.modulename" : "BlueprintUILists", - "key.name" : "View", - "key.namelength" : 4, - "key.nameoffset" : 3546, - "key.offset" : 3540, - "key.parsed_declaration" : "private final class View : UIView", - "key.parsed_scope.end" : 211, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let containerView: UIView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> containerView<\/decl.name>: UIView<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 134, - "key.modulename" : "BlueprintUILists", - "key.name" : "containerView", - "key.namelength" : 13, - "key.nameoffset" : 3587, - "key.offset" : 3583, - "key.parsed_declaration" : "let containerView = UIView()", - "key.parsed_scope.end" : 134, - "key.parsed_scope.start" : 134, - "key.reusingastcontext" : false, - "key.typename" : "UIView", - "key.typeusr" : "$sSo6UIViewCD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC09containerF0So6UIViewCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let recognizer: ItemReordering<\/Type>.GestureRecognizer<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> recognizer<\/decl.name>: ItemReordering<\/ref.struct>.GestureRecognizer<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 49, - "key.line" : 135, - "key.modulename" : "BlueprintUILists", - "key.name" : "recognizer", - "key.namelength" : 10, - "key.nameoffset" : 3624, - "key.offset" : 3620, - "key.parsed_declaration" : "let recognizer : ItemReordering.GestureRecognizer", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 135, - "key.reusingastcontext" : false, - "key.typename" : "ItemReordering.GestureRecognizer", - "key.typeusr" : "$s10ListableUI14ItemReorderingV17GestureRecognizerCD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC10recognizer10ListableUI14ItemReorderingV0E10RecognizerCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private lazy var proxyElement: UIAccessibilityElement<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.lazy", - "key.length" : 4, - "key.offset" : 3686 - }, - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3678 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> lazy<\/syntaxtype.keyword> var<\/syntaxtype.keyword> proxyElement<\/decl.name>: UIAccessibilityElement<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 71, - "key.line" : 136, - "key.modulename" : "BlueprintUILists", - "key.name" : "proxyElement", - "key.namelength" : 12, - "key.nameoffset" : 3695, - "key.offset" : 3691, - "key.parsed_declaration" : "private lazy var proxyElement = UIAccessibilityElement(accessibilityContainer: self)", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 136, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "UIAccessibilityElement", - "key.typeusr" : "$sSo22UIAccessibilityElementCD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC12proxyElementSo015UIAccessibilityR0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var minimumPressDuration: TimeInterval<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3771 - } - ], - "key.bodylength" : 89, - "key.bodyoffset" : 3825, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> minimumPressDuration<\/decl.name>: TimeInterval<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 136, - "key.line" : 137, - "key.modulename" : "BlueprintUILists", - "key.name" : "minimumPressDuration", - "key.namelength" : 20, - "key.nameoffset" : 3783, - "key.offset" : 3779, - "key.parsed_declaration" : "private var minimumPressDuration: TimeInterval = 0.0", - "key.parsed_scope.end" : 141, - "key.parsed_scope.start" : 137, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Double", - "key.typeusr" : "$sSdD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC20minimumPressDurationSdvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func updateGesturePressDuration()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3939 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 3933 - } - ], - "key.bodylength" : 129, - "key.bodyoffset" : 3982, - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateGesturePressDuration<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 165, - "key.line" : 143, - "key.modulename" : "BlueprintUILists", - "key.name" : "updateGesturePressDuration()", - "key.namelength" : 28, - "key.nameoffset" : 3952, - "key.offset" : 3947, - "key.parsed_declaration" : "@objc private func updateGesturePressDuration()", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 143, - "key.reusingastcontext" : false, - "key.typename" : "(ListReorderGesture.View) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC06updateE13PressDurationyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> init(frame: CGRect<\/Type>, wrapping: ListReorderGesture<\/Type>)<\/Declaration>", - "key.bodylength" : 724, - "key.bodyoffset" : 4190, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, wrapping<\/decl.var.parameter.argument_label>: ListReorderGesture<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 785, - "key.line" : 147, - "key.modulename" : "BlueprintUILists", - "key.name" : "init(frame:wrapping:)", - "key.namelength" : 50, - "key.nameoffset" : 4130, - "key.offset" : 4130, - "key.parsed_declaration" : "init(frame: CGRect, wrapping : ListReorderGesture)", - "key.parsed_scope.end" : 166, - "key.parsed_scope.start" : 147, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListReorderGesture.View.Type) -> (CGRect, ListReorderGesture) -> ListReorderGesture.View", - "key.typeusr" : "$s5frame8wrapping16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLCSo6CGRectV_AEtcD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC5frame8wrappingAFSo6CGRectV_ACtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 4968 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 4933 - } - ], - "key.bodylength" : 45, - "key.bodyoffset" : 5009, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 78, - "key.name" : "init(coder:)", - "key.namelength" : 30, - "key.nameoffset" : 4977, - "key.offset" : 4977, - "key.substructure" : [ - - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func apply(_ model: ListReorderGesture<\/Type>)<\/Declaration>", - "key.bodylength" : 598, - "key.bodyoffset" : 5114, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> apply<\/decl.name>(_<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: ListReorderGesture<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 640, - "key.line" : 173, - "key.modulename" : "BlueprintUILists", - "key.name" : "apply(_:)", - "key.namelength" : 34, - "key.nameoffset" : 5078, - "key.offset" : 5073, - "key.parsed_declaration" : "func apply(_ model: ListReorderGesture)", - "key.parsed_scope.end" : 183, - "key.parsed_scope.start" : 173, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListReorderGesture.View) -> (ListReorderGesture) -> ()", - "key.typeusr" : "$syy16BlueprintUILists18ListReorderGestureVcD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC5applyyyACF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutSubviews()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 5731 - } - ], - "key.bodylength" : 85, - "key.bodyoffset" : 5763, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 109, - "key.line" : 185, - "key.modulename" : "BlueprintUILists", - "key.name" : "layoutSubviews()", - "key.namelength" : 16, - "key.nameoffset" : 5745, - "key.offset" : 5740, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)layoutSubviews" - } - ], - "key.parsed_declaration" : "override func layoutSubviews()", - "key.parsed_scope.end" : 188, - "key.parsed_scope.start" : 185, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListReorderGesture.View) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC14layoutSubviewsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func hitTest(_ point: CGPoint<\/Type>, with event: UIEvent<\/Type>?) -> UIView<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 5867 - } - ], - "key.bodylength" : 358, - "key.bodyoffset" : 5941, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> hitTest<\/decl.name>(_<\/decl.var.parameter.argument_label> point<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> UIView<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 424, - "key.line" : 190, - "key.modulename" : "BlueprintUILists", - "key.name" : "hitTest(_:with:)", - "key.namelength" : 47, - "key.nameoffset" : 5881, - "key.offset" : 5876, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)hitTest:withEvent:" - } - ], - "key.parsed_declaration" : "override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView?", - "key.parsed_scope.end" : 198, - "key.parsed_scope.start" : 190, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListReorderGesture.View) -> (CGPoint, UIEvent?) -> UIView?", - "key.typeusr" : "$s_4withSo6UIViewCSgSo7CGPointV_So7UIEventCSgtcD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC7hitTest_4withSo6UIViewCSgSo7CGPointV_So7UIEventCSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override var accessibilityElements: [Any]? { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 6318 - } - ], - "key.bodylength" : 454, - "key.bodyoffset" : 6362, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> accessibilityElements<\/decl.name>: [Any<\/syntaxtype.keyword>]?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 490, - "key.line" : 200, - "key.modulename" : "BlueprintUILists", - "key.name" : "accessibilityElements", - "key.namelength" : 21, - "key.nameoffset" : 6331, - "key.offset" : 6327, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)NSObject(py)accessibilityElements" - } - ], - "key.parsed_declaration" : "override var accessibilityElements: [Any]?", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 200, - "key.related_decls" : [ - { - "key.annotated_decl" : "accessibilityElements()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[Any]?", - "key.typeusr" : "$sSayypGSgD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC21accessibilityElementsSayypGSgvp" - } - ], - "key.typename" : "ListReorderGesture.View.Type", - "key.typeusr" : "$s16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLCmD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV4View33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLC" - } - ], - "key.typename" : "ListReorderGesture.Type", - "key.typeusr" : "$s16BlueprintUILists18ListReorderGestureVmD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "public struct ListReorderGesture : Element<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 6828 - } - ], - "key.bodylength" : 508, - "key.bodyoffset" : 6870, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An element that wraps your provided element, to enable support\nfor user-driven re-ordering in a list view.\n\nIf you do not support reordering items, you do not need\nto add this element anywhere in your hierarchy.\n\nThis element on its own has no visual appearance. Thus, you should\nstill render your own reorder dragger \/ handle \/ etc in the passed in element.\n\nIn the below example, we see how to set up the content of a simple item, which contains\na text label and a reorder grabber.\n\n```\nfunc element(with info : ApplyItemContentInfo) -> Element\n{\n Row { row in\n row.add(child: Label(text: \"...\"))\n\n row.add(child: ListReorderGesture(actions: info.actions, wrapping: MyReorderGrabber()))\n\n \/\/ Could also be written as:\n row.add(child: MyReorderGrabber().listReorderGesture(with: info.reorderingActions))\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ListReorderGesture : Element", - "key.doc.discussion" : [ - { - "Para" : "If you do not support reordering items, you do not need to add this element anywhere in your hierarchy." - }, - { - "Para" : "This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element." - }, - { - "Para" : "In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.doc.full_as_xml" : "ListReorderGesture<\/Name>s:16BlueprintUILists18ListReorderGestureV<\/USR>public struct ListReorderGesture : Element<\/Declaration>An element that wraps your provided element, to enable support for user-driven re-ordering in a list view.<\/Para><\/Abstract>If you do not support reordering items, you do not need to add this element anywhere in your hierarchy.<\/Para>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para>In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber.<\/Para> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 40, - "key.doc.name" : "ListReorderGesture", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListReorderGesture<\/decl.name> : Element<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 539, - "key.line" : 40, - "key.modulename" : "BlueprintUILists", - "key.name" : "ListReorderGesture", - "key.namelength" : 18, - "key.nameoffset" : 6850, - "key.offset" : 6840, - "key.parsed_declaration" : "fileprivate extension ListReorderGesture", - "key.parsed_scope.end" : 226, - "key.parsed_scope.start" : 215, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "func accessibilityActions() -> [UIAccessibilityCustomAction<\/Type>]?<\/Declaration>", - "key.bodylength" : 438, - "key.bodyoffset" : 6938, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> accessibilityActions<\/decl.name>() -> [UIAccessibilityCustomAction<\/ref.class>]?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 502, - "key.line" : 216, - "key.modulename" : "BlueprintUILists", - "key.name" : "accessibilityActions()", - "key.namelength" : 22, - "key.nameoffset" : 6880, - "key.offset" : 6875, - "key.parsed_declaration" : "func accessibilityActions() -> [UIAccessibilityCustomAction]?", - "key.parsed_scope.end" : 225, - "key.parsed_scope.start" : 216, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let up: UIAccessibilityCustomAction<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> up<\/decl.name>: UIAccessibilityCustomAction<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 187, - "key.line" : 217, - "key.modulename" : "BlueprintUILists", - "key.name" : "up", - "key.namelength" : 2, - "key.nameoffset" : 6951, - "key.offset" : 6947, - "key.parsed_declaration" : "let up = UIAccessibilityCustomAction(name: ListableLocalizedStrings.ReorderGesture.accessibilityMoveUp) { _ in\n return self.actions.accessibilityMove(direction: .up)\n}", - "key.parsed_scope.end" : 217, - "key.parsed_scope.start" : 217, - "key.reusingastcontext" : false, - "key.typename" : "UIAccessibilityCustomAction", - "key.typeusr" : "$sSo27UIAccessibilityCustomActionCD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV20accessibilityActions33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLSaySo27UIAccessibilityCustomActionCGSgyF2upL_AGvp" - }, - { - "key.annotated_decl" : "let down: UIAccessibilityCustomAction<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/BlueprintUILists\/Sources\/ListReorderGesture.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> down<\/decl.name>: UIAccessibilityCustomAction<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 193, - "key.line" : 220, - "key.modulename" : "BlueprintUILists", - "key.name" : "down", - "key.namelength" : 4, - "key.nameoffset" : 7147, - "key.offset" : 7143, - "key.parsed_declaration" : "let down = UIAccessibilityCustomAction(name: ListableLocalizedStrings.ReorderGesture.accessibilityMoveDown) { _ in\n return self.actions.accessibilityMove(direction: .down)\n}", - "key.parsed_scope.end" : 220, - "key.parsed_scope.start" : 220, - "key.reusingastcontext" : false, - "key.typename" : "UIAccessibilityCustomAction", - "key.typeusr" : "$sSo27UIAccessibilityCustomActionCD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV20accessibilityActions33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLSaySo27UIAccessibilityCustomActionCGSgyF4downL_AGvp" - } - ], - "key.typename" : "(ListReorderGesture) -> () -> [UIAccessibilityCustomAction]?", - "key.typeusr" : "$sSaySo27UIAccessibilityCustomActionCGSgycD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV20accessibilityActions33_6236E0E4B561C9F4DE17B47CFD4B9B7FLLSaySo27UIAccessibilityCustomActionCGSgyF" - } - ], - "key.typename" : "ListReorderGesture.Type", - "key.typeusr" : "$s16BlueprintUILists18ListReorderGestureVmD", - "key.usr" : "s:16BlueprintUILists18ListReorderGestureV" - } - ] - } -}] diff --git a/docs/JSON/ListableUI.json b/docs/JSON/ListableUI.json deleted file mode 100644 index 605d7df60..000000000 --- a/docs/JSON/ListableUI.json +++ /dev/null @@ -1,119912 +0,0 @@ -[{ - "\/Users\/johnnewman\/Development\/Listable\/Derived\/Sources\/TuistBundle+ListableUI.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 415, - "key.offset" : 0, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 44, - "key.name" : "MARK: - Swift Bundle Accessor for Frameworks", - "key.offset" : 100 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private class BundleFinder<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 145 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 173, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/Derived\/Sources\/TuistBundle+ListableUI.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> BundleFinder<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 21, - "key.line" : 5, - "key.modulename" : "ListableUI", - "key.name" : "BundleFinder", - "key.namelength" : 12, - "key.nameoffset" : 159, - "key.offset" : 153, - "key.parsed_declaration" : "private class BundleFinder", - "key.parsed_scope.end" : 5, - "key.parsed_scope.start" : 5, - "key.reusingastcontext" : false, - "key.typename" : "BundleFinder.Type", - "key.typeusr" : "$s10ListableUI12BundleFinder33_6C9F7F10565DDC33DFBBFCAA8A479740LLCmD", - "key.usr" : "s:10ListableUI12BundleFinder33_6C9F7F10565DDC33DFBBFCAA8A479740LLC" - }, - { - "key.annotated_decl" : "@_nonSendable(_assumed) class Bundle : NSObject<\/Type>, @unchecked Sendable<\/Type><\/Declaration>", - "key.bodylength" : 161, - "key.bodyoffset" : 204, - "key.column" : 12, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/Foundation.framework\/Headers\/NSBundle.h", - "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> Bundle<\/decl.name> : NSObject<\/ref.class>, @unchecked Sendable<\/ref.protocol><\/decl.class>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 191, - "key.line" : 20, - "key.modulename" : "Foundation.NSBundle", - "key.name" : "Foundation.Bundle", - "key.namelength" : 17, - "key.nameoffset" : 185, - "key.offset" : 175, - "key.parsed_declaration" : "extension Foundation.Bundle", - "key.parsed_scope.end" : 9, - "key.parsed_scope.start" : 6, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static let module: Bundle<\/Type><\/Declaration>", - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Since ListableUI is a dynamic framework, the bundle for classes within this module can be used directly.", - "key.doc.column" : 12, - "key.doc.comment" : "Since ListableUI is a dynamic framework, the bundle for classes within this module can be used directly.", - "key.doc.declaration" : "static let module: Bundle", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/Derived\/Sources\/TuistBundle+ListableUI.swift", - "key.doc.full_as_xml" : "module<\/Name>s:So8NSBundleC10ListableUIE6moduleABvpZ<\/USR>static let module: Bundle<\/Declaration>Since ListableUI is a dynamic framework, the bundle for classes within this module can be used directly.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 8, - "key.doc.name" : "module", - "key.doc.type" : "Other", - "key.doclength" : 109, - "key.docoffset" : 205, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/Derived\/Sources\/TuistBundle+ListableUI.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> module<\/decl.name>: Bundle<\/ref.class><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 50, - "key.line" : 8, - "key.modulename" : "ListableUI", - "key.name" : "module", - "key.namelength" : 6, - "key.nameoffset" : 325, - "key.offset" : 314, - "key.parsed_declaration" : "static let module = Bundle(for: BundleFinder.self)", - "key.parsed_scope.end" : 8, - "key.parsed_scope.start" : 8, - "key.reusingastcontext" : false, - "key.typename" : "Bundle", - "key.typeusr" : "$sSo8NSBundleCD", - "key.usr" : "s:So8NSBundleC10ListableUIE6moduleABvpZ" - } - ], - "key.typename" : "Bundle.Type", - "key.typeusr" : "$sSo8NSBundleCmD", - "key.usr" : "c:objc(cs)NSBundle" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1623, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Appearance : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 336 - } - ], - "key.bodylength" : 1247, - "key.bodyoffset" : 374, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Contains all the properties which affect the appearance of all possible kinds of list layouts.\n\nFor properties that are specific to individual layouts, see the `layoutAppearance` property\non each layout type.\n", - "key.doc.column" : 15, - "key.doc.comment" : "\nContains all the properties which affect the appearance of all possible kinds of list layouts.\n\nFor properties that are specific to individual layouts, see the `layoutAppearance` property\non each layout type.", - "key.doc.declaration" : "public struct Appearance : Equatable", - "key.doc.discussion" : [ - { - "Para" : "For properties that are specific to individual layouts, see the `layoutAppearance` property on each layout type." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.doc.full_as_xml" : "Appearance<\/Name>s:10ListableUI10AppearanceV<\/USR>public struct Appearance : Equatable<\/Declaration>Contains all the properties which affect the appearance of all possible kinds of list layouts.<\/Para><\/Abstract>For properties that are specific to individual layouts, see the layoutAppearance<\/codeVoice> property on each layout type.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 17, - "key.doc.name" : "Appearance", - "key.doc.type" : "Class", - "key.doclength" : 232, - "key.docoffset" : 104, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 363 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Appearance<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1279, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "Appearance", - "key.namelength" : 10, - "key.nameoffset" : 350, - "key.offset" : 343, - "key.parsed_declaration" : "public struct Appearance : Equatable", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@Color<\/Type> public var backgroundColor: UIColor<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 429 - }, - { - "key.attribute" : "source.decl.attribute._custom", - "key.length" : 6, - "key.offset" : 422 - } - ], - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background color for the list.", - "key.doc.column" : 23, - "key.doc.comment" : "The background color for the list.", - "key.doc.declaration" : "@ListableUI.Color public var backgroundColor: UIColor { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.doc.full_as_xml" : "backgroundColor<\/Name>s:10ListableUI10AppearanceV15backgroundColorSo7UIColorCvp<\/USR>@ListableUI.Color public var backgroundColor: UIColor { get set }<\/Declaration>The background color for the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "backgroundColor", - "key.doc.type" : "Other", - "key.doclength" : 39, - "key.docoffset" : 379, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.fully_annotated_decl" : "@Color<\/ref.struct><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> backgroundColor<\/decl.name>: UIColor<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "backgroundColor", - "key.namelength" : 15, - "key.nameoffset" : 440, - "key.offset" : 436, - "key.parsed_declaration" : "@Color public var backgroundColor : UIColor", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIColor", - "key.typeusr" : "$sSo7UIColorCD", - "key.usr" : "s:10ListableUI10AppearanceV15backgroundColorSo7UIColorCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var refreshControlColor: UIColor<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 522 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The tint color of the refresh control.", - "key.doc.column" : 16, - "key.doc.comment" : "The tint color of the refresh control.", - "key.doc.declaration" : "public var refreshControlColor: UIColor?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.doc.full_as_xml" : "refreshControlColor<\/Name>s:10ListableUI10AppearanceV19refreshControlColorSo7UIColorCSgvp<\/USR>public var refreshControlColor: UIColor?<\/Declaration>The tint color of the refresh control.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 23, - "key.doc.name" : "refreshControlColor", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 475, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> refreshControlColor<\/decl.name>: UIColor<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "refreshControlColor", - "key.namelength" : 19, - "key.nameoffset" : 533, - "key.offset" : 529, - "key.parsed_declaration" : "public var refreshControlColor : UIColor?", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIColor?", - "key.typeusr" : "$sSo7UIColorCSgD", - "key.usr" : "s:10ListableUI10AppearanceV19refreshControlColorSo7UIColorCSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var showsScrollIndicators: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 631 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the list should display its scroll indicators.", - "key.doc.column" : 16, - "key.doc.comment" : "If the list should display its scroll indicators.", - "key.doc.declaration" : "public var showsScrollIndicators: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.doc.full_as_xml" : "showsScrollIndicators<\/Name>s:10ListableUI10AppearanceV21showsScrollIndicatorsSbvp<\/USR>public var showsScrollIndicators: Bool<\/Declaration>If the list should display its scroll indicators.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 26, - "key.doc.name" : "showsScrollIndicators", - "key.doc.type" : "Other", - "key.doclength" : 54, - "key.docoffset" : 573, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> showsScrollIndicators<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "showsScrollIndicators", - "key.namelength" : 21, - "key.nameoffset" : 642, - "key.offset" : 638, - "key.parsed_declaration" : "public var showsScrollIndicators : Bool", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI10AppearanceV21showsScrollIndicatorsSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(backgroundColor: UIColor<\/Type> = Self.defaultBackgroundColor, refreshControlColor: UIColor<\/Type>? = nil, showsScrollIndicators: Bool<\/Type> = true, configure: (inout `Self`) -> () = { _ in })<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 751 - } - ], - "key.bodylength" : 226, - "key.bodyoffset" : 977, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new appearance object with the provided options.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new appearance object with the provided options.", - "key.doc.declaration" : "public init(backgroundColor: UIColor = Self.defaultBackgroundColor, refreshControlColor: UIColor? = nil, showsScrollIndicators: Bool = true, configure: (inout `Self`) -> () = { _ in })", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.doc.full_as_xml" : "init(backgroundColor:refreshControlColor:showsScrollIndicators:configure:)<\/Name>s:10ListableUI10AppearanceV15backgroundColor014refreshControlE021showsScrollIndicators9configureACSo7UIColorC_AISgSbyACzXEtcfc<\/USR>public init(backgroundColor: UIColor = Self.defaultBackgroundColor, refreshControlColor: UIColor? = nil, showsScrollIndicators: Bool = true, configure: (inout `Self`) -> () = { _ in })<\/Declaration>Creates a new appearance object with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 29, - "key.doc.name" : "init(backgroundColor:refreshControlColor:showsScrollIndicators:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 63, - "key.docoffset" : 684, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(backgroundColor<\/decl.var.parameter.argument_label>: UIColor<\/ref.class><\/decl.var.parameter.type> = Self.defaultBackgroundColor<\/decl.var.parameter>, refreshControlColor<\/decl.var.parameter.argument_label>: UIColor<\/ref.class>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, showsScrollIndicators<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 446, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "init(backgroundColor:refreshControlColor:showsScrollIndicators:configure:)", - "key.namelength" : 217, - "key.nameoffset" : 758, - "key.offset" : 758, - "key.parsed_declaration" : "public init(\n backgroundColor : UIColor = Self.defaultBackgroundColor,\n refreshControlColor : UIColor? = nil,\n showsScrollIndicators : Bool = true,\n configure : (inout Self) -> () = { _ in }\n)", - "key.parsed_scope.end" : 42, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Appearance.Type) -> (UIColor, UIColor?, Bool, (inout Appearance) -> ()) -> Appearance", - "key.typeusr" : "$s15backgroundColor014refreshControlB021showsScrollIndicators9configure10ListableUI10AppearanceVSo7UIColorC_AISgSbyAGzXEtcD", - "key.usr" : "s:10ListableUI10AppearanceV15backgroundColor014refreshControlE021showsScrollIndicators9configureACSo7UIColorC_AISgSbyACzXEtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultBackgroundColor: UIColor<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1273 - } - ], - "key.bodylength" : 294, - "key.bodyoffset" : 1325, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default background color for the `Appearance`.", - "key.doc.column" : 23, - "key.doc.comment" : "The default background color for the `Appearance`.", - "key.doc.declaration" : "public static var defaultBackgroundColor: UIColor { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.doc.full_as_xml" : "defaultBackgroundColor<\/Name>s:10ListableUI10AppearanceV22defaultBackgroundColorSo7UIColorCvpZ<\/USR>public static var defaultBackgroundColor: UIColor { get }<\/Declaration>The default background color for the Appearance<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 45, - "key.doc.name" : "defaultBackgroundColor", - "key.doc.type" : "Other", - "key.doclength" : 55, - "key.docoffset" : 1214, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Appearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultBackgroundColor<\/decl.name>: UIColor<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 340, - "key.line" : 45, - "key.modulename" : "ListableUI", - "key.name" : "defaultBackgroundColor", - "key.namelength" : 22, - "key.nameoffset" : 1291, - "key.offset" : 1280, - "key.parsed_declaration" : "public static var defaultBackgroundColor : UIColor", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 45, - "key.reusingastcontext" : false, - "key.typename" : "UIColor", - "key.typeusr" : "$sSo7UIColorCD", - "key.usr" : "s:10ListableUI10AppearanceV22defaultBackgroundColorSo7UIColorCvpZ" - } - ], - "key.typename" : "Appearance.Type", - "key.typeusr" : "$s10ListableUI10AppearanceVmD", - "key.usr" : "s:10ListableUI10AppearanceV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1041, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ApplyReason : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 185 - } - ], - "key.bodylength" : 817, - "key.bodyoffset" : 221, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Why the `Item` or `HeaderFooter` is being asked to apply an update to its presented views.", - "key.doc.column" : 13, - "key.doc.comment" : "Why the `Item` or `HeaderFooter` is being asked to apply an update to its presented views.", - "key.doc.declaration" : "public enum ApplyReason : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.doc.full_as_xml" : "ApplyReason<\/Name>s:10ListableUI11ApplyReasonO<\/USR>public enum ApplyReason : Hashable<\/Declaration>Why the Item<\/codeVoice> or HeaderFooter<\/codeVoice> is being asked to apply an update to its presented views.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 10, - "key.doc.name" : "ApplyReason", - "key.doc.type" : "Other", - "key.doclength" : 95, - "key.docoffset" : 90, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 211 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ApplyReason<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 847, - "key.line" : 10, - "key.modulename" : "ListableUI", - "key.name" : "ApplyReason", - "key.namelength" : 11, - "key.nameoffset" : 197, - "key.offset" : 192, - "key.parsed_declaration" : "public enum ApplyReason : Hashable", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 10, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 325, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case willDisplay<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The view is about to be displayed on screen. Update should be performed with no animation.", - "key.doc.column" : 10, - "key.doc.comment" : "The view is about to be displayed on screen. Update should be performed with no animation.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.doc.full_as_xml" : "willDisplay<\/Name>s:10ListableUI11ApplyReasonO11willDisplayyA2CmF<\/USR><\/Declaration>The view is about to be displayed on screen. Update should be performed with no animation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 13, - "key.doc.name" : "willDisplay", - "key.doc.type" : "Other", - "key.doclength" : 95, - "key.docoffset" : 226, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> willDisplay<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "willDisplay", - "key.namelength" : 11, - "key.nameoffset" : 330, - "key.offset" : 330, - "key.parsed_declaration" : "case willDisplay", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "(ApplyReason.Type) -> ApplyReason", - "key.typeusr" : "$sy10ListableUI11ApplyReasonOACmcD", - "key.usr" : "s:10ListableUI11ApplyReasonO11willDisplayyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 15, - "key.offset" : 498, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case wasUpdated<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A view that is already visible is being updated.\nIf your updates can contain animated transitions, you should animate this update.", - "key.doc.column" : 10, - "key.doc.comment" : "A view that is already visible is being updated.\nIf your updates can contain animated transitions, you should animate this update.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.doc.full_as_xml" : "wasUpdated<\/Name>s:10ListableUI11ApplyReasonO10wasUpdatedyA2CmF<\/USR><\/Declaration>A view that is already visible is being updated. If your updates can contain animated transitions, you should animate this update.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "wasUpdated", - "key.doc.type" : "Other", - "key.doclength" : 143, - "key.docoffset" : 351, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> wasUpdated<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 10, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "wasUpdated", - "key.namelength" : 10, - "key.nameoffset" : 503, - "key.offset" : 503, - "key.parsed_declaration" : "case wasUpdated", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "(ApplyReason.Type) -> ApplyReason", - "key.typeusr" : "$sy10ListableUI11ApplyReasonOACmcD", - "key.usr" : "s:10ListableUI11ApplyReasonO10wasUpdatedyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 639, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case measurement<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item is being measured to perform the layout of the list. Update should be performed with no animation.", - "key.doc.column" : 10, - "key.doc.comment" : "The item is being measured to perform the layout of the list. Update should be performed with no animation.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.doc.full_as_xml" : "measurement<\/Name>s:10ListableUI11ApplyReasonO11measurementyA2CmF<\/USR><\/Declaration>The item is being measured to perform the layout of the list. Update should be performed with no animation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "measurement", - "key.doc.type" : "Other", - "key.doclength" : 112, - "key.docoffset" : 523, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> measurement<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "measurement", - "key.namelength" : 11, - "key.nameoffset" : 644, - "key.offset" : 644, - "key.parsed_declaration" : "case measurement", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "(ApplyReason.Type) -> ApplyReason", - "key.typeusr" : "$sy10ListableUI11ApplyReasonOACmcD", - "key.usr" : "s:10ListableUI11ApplyReasonO11measurementyA2CmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var shouldAnimate: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 848 - } - ], - "key.bodylength" : 155, - "key.bodyoffset" : 881, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If you should use animations while applying the update.\nCheck this boolean in your `apply` method to avoid\nhaving to `switch` over the value of `ApplyReason`.", - "key.doc.column" : 16, - "key.doc.comment" : "If you should use animations while applying the update.\nCheck this boolean in your `apply` method to avoid\nhaving to `switch` over the value of `ApplyReason`.", - "key.doc.declaration" : "public var shouldAnimate: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.doc.full_as_xml" : "shouldAnimate<\/Name>s:10ListableUI11ApplyReasonO13shouldAnimateSbvp<\/USR>public var shouldAnimate: Bool { get }<\/Declaration>If you should use animations while applying the update. Check this boolean in your apply<\/codeVoice> method to avoid having to switch<\/codeVoice> over the value of ApplyReason<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 25, - "key.doc.name" : "shouldAnimate", - "key.doc.type" : "Other", - "key.doclength" : 179, - "key.docoffset" : 665, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ApplyReason.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> shouldAnimate<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 182, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "shouldAnimate", - "key.namelength" : 13, - "key.nameoffset" : 859, - "key.offset" : 855, - "key.parsed_declaration" : "public var shouldAnimate : Bool", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI11ApplyReasonO13shouldAnimateSbvp" - } - ], - "key.typename" : "ApplyReason.Type", - "key.typeusr" : "$s10ListableUI11ApplyReasonOmD", - "key.usr" : "s:10ListableUI11ApplyReasonO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 8511, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum AutoScrollAction<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 178 - } - ], - "key.bodylength" : 5490, - "key.bodyoffset" : 208, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Options for auto-scrolling to items when the list is updated.", - "key.doc.column" : 13, - "key.doc.comment" : "Options for auto-scrolling to items when the list is updated.", - "key.doc.declaration" : "public enum AutoScrollAction", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "AutoScrollAction<\/Name>s:10ListableUI16AutoScrollActionO<\/USR>public enum AutoScrollAction<\/Declaration>Options for auto-scrolling to items when the list is updated.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 12, - "key.doc.name" : "AutoScrollAction", - "key.doc.type" : "Other", - "key.doclength" : 66, - "key.docoffset" : 112, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> AutoScrollAction<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 5514, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "AutoScrollAction", - "key.namelength" : 16, - "key.nameoffset" : 190, - "key.offset" : 185, - "key.parsed_declaration" : "public enum AutoScrollAction", - "key.parsed_scope.end" : 127, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 264, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The list never automatically scrolls.", - "key.doc.column" : 10, - "key.doc.comment" : "The list never automatically scrolls.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI16AutoScrollActionO4noneyA2CmF<\/USR><\/Declaration>The list never automatically scrolls.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 15, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 218, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 269, - "key.offset" : 269, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "(AutoScrollAction.Type) -> AutoScrollAction", - "key.typeusr" : "$sy10ListableUI16AutoScrollActionOACmcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO4noneyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 45, - "key.offset" : 383, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case scrollToItem(onInsertOf: OnInsertedItem<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the specified item when the list is updated if the item was inserted in this update.", - "key.doc.column" : 10, - "key.doc.comment" : "Scrolls to the specified item when the list is updated if the item was inserted in this update.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "scrollToItem(onInsertOf:)<\/Name>s:10ListableUI16AutoScrollActionO12scrollToItemyA2C010OnInsertedH0V_tcACmF<\/USR><\/Declaration>Scrolls to the specified item when the list is updated if the item was inserted in this update.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 18, - "key.doc.name" : "scrollToItem(onInsertOf:)", - "key.doc.type" : "Other", - "key.doclength" : 100, - "key.docoffset" : 279, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrollToItem<\/decl.name>(onInsertOf<\/decl.var.parameter.argument_label>: OnInsertedItem<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 40, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "scrollToItem(onInsertOf:)", - "key.namelength" : 40, - "key.nameoffset" : 388, - "key.offset" : 388, - "key.parsed_declaration" : "case scrollToItem(onInsertOf: OnInsertedItem)", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(AutoScrollAction.Type) -> (AutoScrollAction.OnInsertedItem) -> AutoScrollAction", - "key.typeusr" : "$sy10ListableUI16AutoScrollActionOAC14OnInsertedItemV_tcACmcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO12scrollToItemyA2C010OnInsertedH0V_tcACmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 610, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case pin(to: Pin<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the specified item when the list is updated. Similar to `scrollToItem`, except it doesn't rely on item insertion to determine when scrolling is appropriate.", - "key.doc.column" : 10, - "key.doc.comment" : "Scrolls to the specified item when the list is updated. Similar to `scrollToItem`, except it doesn't rely on item insertion to determine when scrolling is appropriate.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "pin(to:)<\/Name>s:10ListableUI16AutoScrollActionO3pinyA2C3PinV_tcACmF<\/USR><\/Declaration>Scrolls to the specified item when the list is updated. Similar to scrollToItem<\/codeVoice>, except it doesn’t rely on item insertion to determine when scrolling is appropriate.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 21, - "key.doc.name" : "pin(to:)", - "key.doc.type" : "Other", - "key.doclength" : 172, - "key.docoffset" : 434, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> pin<\/decl.name>(to<\/decl.var.parameter.argument_label>: Pin<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "pin(to:)", - "key.namelength" : 12, - "key.nameoffset" : 615, - "key.offset" : 615, - "key.parsed_declaration" : "case pin(to: Pin)", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.related_decls" : [ - { - "key.annotated_decl" : "pin(_:position:animated:shouldPerform:didPerform:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(AutoScrollAction.Type) -> (AutoScrollAction.Pin) -> AutoScrollAction", - "key.typeusr" : "$sy10ListableUI16AutoScrollActionOAC3PinV_tcACmcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO3pinyA2C3PinV_tcACmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func scrollTo(_ destination: ScrollDestination<\/Type>? = nil, onInsertOf insertedIdentifier: AnyIdentifier<\/Type>, position: ScrollPosition<\/Type>, animated: Bool<\/Type> = false, shouldPerform: @escaping (ListScrollPositionInfo<\/Type>) -> Bool<\/Type> = { _ in true }, didPerform: @escaping (ListScrollPositionInfo<\/Type>) -> () = { _ in }) -> AutoScrollAction<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2564 - } - ], - "key.bodylength" : 367, - "key.bodyoffset" : 2952, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the specified item when the list is updated if the item was inserted in this update.\n\nIf you would like to control if this scroll should occur on insert, pass a `shouldPerform` closure,\nwhich will be called when the item is inserted, to give you a chance to confirm or reject the scroll\naction. The `ListScrollPositionInfo` passed to your closure provides the current state of the list,\nincluding visible content edges and visible items. If you do not pass a `shouldPerform` closure,\nthe action will be performed on insert.\n\n### Example\n```\n\/\/ ID of item which should trigger a scroll event (eg the last item in the list).\nlet identifier = myItem.identifier\n\nlet action = .scrollTo(\n .lastItem,\n onInsertOf: identifier,\n position: .init(position: .bottom),\n animation: .default\n) { info in\n \/\/ Only scroll to the item if the bottom of the list is already visible.\n state.isLastItemVisible\n} didPerform : { info in\n \/\/ Called when the scroll action occurs.\n}\n```\n- Parameters:\n - destination: Where the list should scroll to on insert. If not specified, the value passed to `onInsertOf` will be used.\n - onInsertOf: The identifier which should trigger the action.\n - position: The position to scroll the list to.\n - animation: The animation type to perform. Note: Will only animate if the list update itself is animated.\n - shouldPerform: A block which lets you control if the auto scroll action should be performed based on the state of the list.\n - didPerform: A block which is called when the action is performed. If the item causing insertion is inserted multiple times,\n this block will be called multiple times.\n", - "key.doc.column" : 24, - "key.doc.comment" : "Scrolls to the specified item when the list is updated if the item was inserted in this update.\n\nIf you would like to control if this scroll should occur on insert, pass a `shouldPerform` closure,\nwhich will be called when the item is inserted, to give you a chance to confirm or reject the scroll\naction. The `ListScrollPositionInfo` passed to your closure provides the current state of the list,\nincluding visible content edges and visible items. If you do not pass a `shouldPerform` closure,\nthe action will be performed on insert.\n\n### Example\n```\n\/\/ ID of item which should trigger a scroll event (eg the last item in the list).\nlet identifier = myItem.identifier\n\nlet action = .scrollTo(\n .lastItem,\n onInsertOf: identifier,\n position: .init(position: .bottom),\n animation: .default\n) { info in\n \/\/ Only scroll to the item if the bottom of the list is already visible.\n state.isLastItemVisible\n} didPerform : { info in\n \/\/ Called when the scroll action occurs.\n}\n```\n- Parameters:\n - destination: Where the list should scroll to on insert. If not specified, the value passed to `onInsertOf` will be used.\n - onInsertOf: The identifier which should trigger the action.\n - position: The position to scroll the list to.\n - animation: The animation type to perform. Note: Will only animate if the list update itself is animated.\n - shouldPerform: A block which lets you control if the auto scroll action should be performed based on the state of the list.\n - didPerform: A block which is called when the action is performed. If the item causing insertion is inserted multiple times,\n this block will be called multiple times.", - "key.doc.declaration" : "public static func scrollTo(_ destination: ScrollDestination? = nil, onInsertOf insertedIdentifier: AnyIdentifier, position: ScrollPosition, animated: Bool = false, shouldPerform: @escaping (ListScrollPositionInfo) -> Bool = { _ in true }, didPerform: @escaping (ListScrollPositionInfo) -> () = { _ in }) -> AutoScrollAction", - "key.doc.discussion" : [ - { - "Para" : "If you would like to control if this scroll should occur on insert, pass a `shouldPerform` closure, which will be called when the item is inserted, to give you a chance to confirm or reject the scroll action. The `ListScrollPositionInfo` passed to your closure provides the current state of the list, including visible content edges and visible items. If you do not pass a `shouldPerform` closure, the action will be performed on insert." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "scrollTo(_:onInsertOf:position:animated:shouldPerform:didPerform:)<\/Name>s:10ListableUI16AutoScrollActionO8scrollTo_10onInsertOf8position8animated13shouldPerform03didN0A2C0D11DestinationOSg_AA13AnyIdentifierCAA0D8PositionVS2bAA04ListdS4InfoVcyARctFZ<\/USR>public static func scrollTo(_ destination: ScrollDestination? = nil, onInsertOf insertedIdentifier: AnyIdentifier, position: ScrollPosition, animated: Bool = false, shouldPerform: @escaping (ListScrollPositionInfo) -> Bool = { _ in true }, didPerform: @escaping (ListScrollPositionInfo) -> () = { _ in }) -> AutoScrollAction<\/Declaration>Scrolls to the specified item when the list is updated if the item was inserted in this update.<\/Para><\/Abstract>destination<\/Name>in<\/Direction>Where the list should scroll to on insert. If not specified, the value passed to onInsertOf<\/codeVoice> will be used.<\/Para><\/Discussion><\/Parameter>onInsertOf<\/Name>in<\/Direction>The identifier which should trigger the action.<\/Para><\/Discussion><\/Parameter>position<\/Name>in<\/Direction>The position to scroll the list to.<\/Para><\/Discussion><\/Parameter>animation<\/Name>in<\/Direction>The animation type to perform. Note: Will only animate if the list update itself is animated.<\/Para><\/Discussion><\/Parameter>shouldPerform<\/Name>in<\/Direction>A block which lets you control if the auto scroll action should be performed based on the state of the list.<\/Para><\/Discussion><\/Parameter>didPerform<\/Name>in<\/Direction>A block which is called when the action is performed. If the item causing insertion is inserted multiple times, this block will be called multiple times.<\/Para><\/Discussion><\/Parameter><\/Parameters>If you would like to control if this scroll should occur on insert, pass a shouldPerform<\/codeVoice> closure, which will be called when the item is inserted, to give you a chance to confirm or reject the scroll action. The ListScrollPositionInfo<\/codeVoice> passed to your closure provides the current state of the list, including visible content edges and visible items. If you do not pass a shouldPerform<\/codeVoice> closure, the action will be performed on insert.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 57, - "key.doc.name" : "scrollTo(_:onInsertOf:position:animated:shouldPerform:didPerform:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "Where the list should scroll to on insert. If not specified, the value passed to `onInsertOf` will be used." - } - ], - "name" : "destination" - }, - { - "discussion" : [ - { - "Para" : "The identifier which should trigger the action." - } - ], - "name" : "onInsertOf" - }, - { - "discussion" : [ - { - "Para" : "The position to scroll the list to." - } - ], - "name" : "position" - }, - { - "discussion" : [ - { - "Para" : "The animation type to perform. Note: Will only animate if the list update itself is animated." - } - ], - "name" : "animation" - }, - { - "discussion" : [ - { - "Para" : "A block which lets you control if the auto scroll action should be performed based on the state of the list." - } - ], - "name" : "shouldPerform" - }, - { - "discussion" : [ - { - "Para" : "A block which is called when the action is performed. If the item causing insertion is inserted multiple times, this block will be called multiple times." - } - ], - "name" : "didPerform" - } - ], - "key.doc.type" : "Function", - "key.doclength" : 1927, - "key.docoffset" : 633, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(_<\/decl.var.parameter.argument_label> destination<\/decl.var.parameter.name>: ScrollDestination<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onInsertOf<\/decl.var.parameter.argument_label> insertedIdentifier<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, shouldPerform<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in true }<\/decl.var.parameter>, didPerform<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> AutoScrollAction<\/ref.enum><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 749, - "key.line" : 57, - "key.modulename" : "ListableUI", - "key.name" : "scrollTo(_:onInsertOf:position:animated:shouldPerform:didPerform:)", - "key.namelength" : 343, - "key.nameoffset" : 2583, - "key.offset" : 2571, - "key.parsed_declaration" : "public static func scrollTo(\n _ destination : ScrollDestination? = nil,\n onInsertOf insertedIdentifier: AnyIdentifier,\n position: ScrollPosition,\n animated : Bool = false,\n shouldPerform : @escaping (ListScrollPositionInfo) -> Bool = { _ in true },\n didPerform : @escaping (ListScrollPositionInfo) -> () = { _ in }\n) -> AutoScrollAction", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(AutoScrollAction.Type) -> (AutoScrollAction.ScrollDestination?, AnyIdentifier, ScrollPosition, Bool, @escaping (ListScrollPositionInfo) -> Bool, @escaping (ListScrollPositionInfo) -> ()) -> AutoScrollAction", - "key.typeusr" : "$s_10onInsertOf8position8animated13shouldPerform03didG010ListableUI16AutoScrollActionOAH0L11DestinationOSg_AF13AnyIdentifierCAF0L8PositionVS2bAF04ListlQ4InfoVcyAQctcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO8scrollTo_10onInsertOf8position8animated13shouldPerform03didN0A2C0D11DestinationOSg_AA13AnyIdentifierCAA0D8PositionVS2bAA04ListdS4InfoVcyARctFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func pin(_ destination: ScrollDestination<\/Type>, position: ScrollPosition<\/Type>, animated: Bool<\/Type> = false, shouldPerform: @escaping (ListScrollPositionInfo<\/Type>) -> Bool<\/Type> = { _ in true }, didPerform: @escaping (ListScrollPositionInfo<\/Type>) -> () = { _ in }) -> AutoScrollAction<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5109 - } - ], - "key.bodylength" : 265, - "key.bodyoffset" : 5431, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the specified item when the list is updated. Similar to `scrollTo`, except it doesn't\nrely on item insertion to determine when scrolling is appropriate.\n\nIf you would like to control if this scroll should occur on insert, pass a `shouldPerform` closure,\nwhich will be called when the item is inserted, to give you a chance to confirm or reject the scroll\naction. The `ListScrollPositionInfo` passed to your closure provides the current state of the list,\nincluding visible content edges and visible items. If you do not pass a `shouldPerform` closure,\nthe action will be performed on insert.\n\n### Example\n```\nlet pin = Pin(\n .lastItem,\n position: .init(position: .bottom),\n animation: .default\n) { info in\n \/\/ Only scroll to the item if the bottom of the list is already visible.\n state.isLastItemVisible\n} didPerform : { info in\n \/\/ Called when the scroll action occurs.\n}\nlet action = .pin(to: pin)\n```\n- Parameters:\n - destination: Where the list should scroll to on insert. If not specified, the value passed to `onInsertOf` will be used.\n - position: The position to scroll the list to.\n - animation: The animation type to perform. Note: Will only animate if the list update itself is animated.\n - shouldPerform: A block which lets you control if the auto scroll action should be performed based on the state of the list.\n - didPerform: A block which is called when the action is performed. If the item causing insertion is inserted multiple times,\n this block will be called multiple times.\n", - "key.doc.column" : 24, - "key.doc.comment" : "Scrolls to the specified item when the list is updated. Similar to `scrollTo`, except it doesn't\nrely on item insertion to determine when scrolling is appropriate.\n\nIf you would like to control if this scroll should occur on insert, pass a `shouldPerform` closure,\nwhich will be called when the item is inserted, to give you a chance to confirm or reject the scroll\naction. The `ListScrollPositionInfo` passed to your closure provides the current state of the list,\nincluding visible content edges and visible items. If you do not pass a `shouldPerform` closure,\nthe action will be performed on insert.\n\n### Example\n```\nlet pin = Pin(\n .lastItem,\n position: .init(position: .bottom),\n animation: .default\n) { info in\n \/\/ Only scroll to the item if the bottom of the list is already visible.\n state.isLastItemVisible\n} didPerform : { info in\n \/\/ Called when the scroll action occurs.\n}\nlet action = .pin(to: pin)\n```\n- Parameters:\n - destination: Where the list should scroll to on insert. If not specified, the value passed to `onInsertOf` will be used.\n - position: The position to scroll the list to.\n - animation: The animation type to perform. Note: Will only animate if the list update itself is animated.\n - shouldPerform: A block which lets you control if the auto scroll action should be performed based on the state of the list.\n - didPerform: A block which is called when the action is performed. If the item causing insertion is inserted multiple times,\n this block will be called multiple times.", - "key.doc.declaration" : "public static func pin(_ destination: ScrollDestination, position: ScrollPosition, animated: Bool = false, shouldPerform: @escaping (ListScrollPositionInfo) -> Bool = { _ in true }, didPerform: @escaping (ListScrollPositionInfo) -> () = { _ in }) -> AutoScrollAction", - "key.doc.discussion" : [ - { - "Para" : "If you would like to control if this scroll should occur on insert, pass a `shouldPerform` closure, which will be called when the item is inserted, to give you a chance to confirm or reject the scroll action. The `ListScrollPositionInfo` passed to your closure provides the current state of the list, including visible content edges and visible items. If you do not pass a `shouldPerform` closure, the action will be performed on insert." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "pin(_:position:animated:shouldPerform:didPerform:)<\/Name>s:10ListableUI16AutoScrollActionO3pin_8position8animated13shouldPerform03didJ0A2C0D11DestinationO_AA0D8PositionVS2bAA04ListdM4InfoVcyANctFZ<\/USR>public static func pin(_ destination: ScrollDestination, position: ScrollPosition, animated: Bool = false, shouldPerform: @escaping (ListScrollPositionInfo) -> Bool = { _ in true }, didPerform: @escaping (ListScrollPositionInfo) -> () = { _ in }) -> AutoScrollAction<\/Declaration>Scrolls to the specified item when the list is updated. Similar to scrollTo<\/codeVoice>, except it doesn’t rely on item insertion to determine when scrolling is appropriate.<\/Para><\/Abstract>destination<\/Name>in<\/Direction>Where the list should scroll to on insert. If not specified, the value passed to onInsertOf<\/codeVoice> will be used.<\/Para><\/Discussion><\/Parameter>position<\/Name>in<\/Direction>The position to scroll the list to.<\/Para><\/Discussion><\/Parameter>animation<\/Name>in<\/Direction>The animation type to perform. Note: Will only animate if the list update itself is animated.<\/Para><\/Discussion><\/Parameter>shouldPerform<\/Name>in<\/Direction>A block which lets you control if the auto scroll action should be performed based on the state of the list.<\/Para><\/Discussion><\/Parameter>didPerform<\/Name>in<\/Direction>A block which is called when the action is performed. If the item causing insertion is inserted multiple times, this block will be called multiple times.<\/Para><\/Discussion><\/Parameter><\/Parameters>If you would like to control if this scroll should occur on insert, pass a shouldPerform<\/codeVoice> closure, which will be called when the item is inserted, to give you a chance to confirm or reject the scroll action. The ListScrollPositionInfo<\/codeVoice> passed to your closure provides the current state of the list, including visible content edges and visible items. If you do not pass a shouldPerform<\/codeVoice> closure, the action will be performed on insert.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 109, - "key.doc.name" : "pin(_:position:animated:shouldPerform:didPerform:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "Where the list should scroll to on insert. If not specified, the value passed to `onInsertOf` will be used." - } - ], - "name" : "destination" - }, - { - "discussion" : [ - { - "Para" : "The position to scroll the list to." - } - ], - "name" : "position" - }, - { - "discussion" : [ - { - "Para" : "The animation type to perform. Note: Will only animate if the list update itself is animated." - } - ], - "name" : "animation" - }, - { - "discussion" : [ - { - "Para" : "A block which lets you control if the auto scroll action should be performed based on the state of the list." - } - ], - "name" : "shouldPerform" - }, - { - "discussion" : [ - { - "Para" : "A block which is called when the action is performed. If the item causing insertion is inserted multiple times, this block will be called multiple times." - } - ], - "name" : "didPerform" - } - ], - "key.doc.type" : "Function", - "key.doclength" : 1779, - "key.docoffset" : 3326, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> pin<\/decl.name>(_<\/decl.var.parameter.argument_label> destination<\/decl.var.parameter.name>: ScrollDestination<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, shouldPerform<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in true }<\/decl.var.parameter>, didPerform<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> AutoScrollAction<\/ref.enum><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 581, - "key.line" : 109, - "key.modulename" : "ListableUI", - "key.name" : "pin(_:position:animated:shouldPerform:didPerform:)", - "key.namelength" : 277, - "key.nameoffset" : 5128, - "key.offset" : 5116, - "key.parsed_declaration" : "public static func pin(\n _ destination : ScrollDestination,\n position: ScrollPosition,\n animated : Bool = false,\n shouldPerform : @escaping (ListScrollPositionInfo) -> Bool = { _ in true },\n didPerform : @escaping (ListScrollPositionInfo) -> () = { _ in }\n) -> AutoScrollAction", - "key.parsed_scope.end" : 126, - "key.parsed_scope.start" : 109, - "key.related_decls" : [ - { - "key.annotated_decl" : "pin(to:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(AutoScrollAction.Type) -> (AutoScrollAction.ScrollDestination, ScrollPosition, Bool, @escaping (ListScrollPositionInfo) -> Bool, @escaping (ListScrollPositionInfo) -> ()) -> AutoScrollAction", - "key.typeusr" : "$s_8position8animated13shouldPerform03didD010ListableUI16AutoScrollActionOAG0I11DestinationO_AE0I8PositionVS2bAE04ListiL4InfoVcyAMctcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO3pin_8position8animated13shouldPerform03didJ0A2C0D11DestinationO_AA0D8PositionVS2bAA04ListdM4InfoVcyANctFZ" - } - ], - "key.typename" : "AutoScrollAction.Type", - "key.typeusr" : "$s10ListableUI16AutoScrollActionOmD", - "key.usr" : "s:10ListableUI16AutoScrollActionO" - }, - { - "key.annotated_decl" : "public enum AutoScrollAction<\/Declaration>", - "key.bodylength" : 2779, - "key.bodyoffset" : 5730, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Options for auto-scrolling to items when the list is updated.", - "key.doc.column" : 13, - "key.doc.declaration" : "public enum AutoScrollAction", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "AutoScrollAction<\/Name>s:10ListableUI16AutoScrollActionO<\/USR>public enum AutoScrollAction<\/Declaration>Options for auto-scrolling to items when the list is updated.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 12, - "key.doc.name" : "AutoScrollAction", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> AutoScrollAction<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2808, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "AutoScrollAction", - "key.namelength" : 16, - "key.nameoffset" : 5712, - "key.offset" : 5702, - "key.parsed_declaration" : "extension AutoScrollAction", - "key.parsed_scope.end" : 208, - "key.parsed_scope.start" : 130, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ScrollDestination : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5797 - } - ], - "key.bodylength" : 584, - "key.bodyoffset" : 5844, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Where to scroll as a result of an `AutoScrollAction`.", - "key.doc.column" : 17, - "key.doc.comment" : "Where to scroll as a result of an `AutoScrollAction`.", - "key.doc.declaration" : "public enum ScrollDestination : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "ScrollDestination<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO<\/USR>public enum ScrollDestination : Equatable<\/Declaration>Where to scroll as a result of an AutoScrollAction<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 133, - "key.doc.name" : "ScrollDestination", - "key.doc.type" : "Other", - "key.doclength" : 58, - "key.docoffset" : 5735, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 5829 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ScrollDestination<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 625, - "key.line" : 133, - "key.modulename" : "ListableUI", - "key.name" : "ScrollDestination", - "key.namelength" : 17, - "key.nameoffset" : 5809, - "key.offset" : 5804, - "key.parsed_declaration" : "public enum ScrollDestination : Equatable", - "key.parsed_scope.end" : 151, - "key.parsed_scope.start" : 133, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 14, - "key.offset" : 5903, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case firstItem<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scroll to the first item in the list.", - "key.doc.column" : 14, - "key.doc.comment" : "Scroll to the first item in the list.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "firstItem<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO9firstItemyA2EmF<\/USR><\/Declaration>Scroll to the first item in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 136, - "key.doc.name" : "firstItem", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 5853, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> firstItem<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 9, - "key.line" : 136, - "key.modulename" : "ListableUI", - "key.name" : "firstItem", - "key.namelength" : 9, - "key.nameoffset" : 5908, - "key.offset" : 5908, - "key.parsed_declaration" : "case firstItem", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 136, - "key.reusingastcontext" : false, - "key.typename" : "(AutoScrollAction.ScrollDestination.Type) -> AutoScrollAction.ScrollDestination", - "key.typeusr" : "$sy10ListableUI16AutoScrollActionO0D11DestinationOAEmcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO0D11DestinationO9firstItemyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 5984, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case lastItem<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scroll to the last item in the list.", - "key.doc.column" : 14, - "key.doc.comment" : "Scroll to the last item in the list.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "lastItem<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO8lastItemyA2EmF<\/USR><\/Declaration>Scroll to the last item in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 139, - "key.doc.name" : "lastItem", - "key.doc.type" : "Other", - "key.doclength" : 41, - "key.docoffset" : 5935, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> lastItem<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "lastItem", - "key.namelength" : 8, - "key.nameoffset" : 5989, - "key.offset" : 5989, - "key.parsed_declaration" : "case lastItem", - "key.parsed_scope.end" : 139, - "key.parsed_scope.start" : 139, - "key.reusingastcontext" : false, - "key.typename" : "(AutoScrollAction.ScrollDestination.Type) -> AutoScrollAction.ScrollDestination", - "key.typeusr" : "$sy10ListableUI16AutoScrollActionO0D11DestinationOAEmcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO0D11DestinationO8lastItemyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 24, - "key.offset" : 6077, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case item(AnyIdentifier<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scroll to the item with the specified identifier.", - "key.doc.column" : 14, - "key.doc.comment" : "Scroll to the item with the specified identifier.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "item(_:)<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO4itemyAeA13AnyIdentifierCcAEmF<\/USR><\/Declaration>Scroll to the item with the specified identifier.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 142, - "key.doc.name" : "item(_:)", - "key.doc.type" : "Other", - "key.doclength" : 54, - "key.docoffset" : 6015, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> item<\/decl.name>(AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 19, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "item(_:)", - "key.namelength" : 19, - "key.nameoffset" : 6082, - "key.offset" : 6082, - "key.parsed_declaration" : "case item(AnyIdentifier)", - "key.parsed_scope.end" : 142, - "key.parsed_scope.start" : 142, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(AutoScrollAction.ScrollDestination.Type) -> (AnyIdentifier) -> AutoScrollAction.ScrollDestination", - "key.typeusr" : "$sy10ListableUI16AutoScrollActionO0D11DestinationOAA13AnyIdentifierCcAEmcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO0D11DestinationO4itemyAeA13AnyIdentifierCcAEmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func destination(with content: Content<\/Type>) -> AnyIdentifier<\/Type>?<\/Declaration>", - "key.bodylength" : 243, - "key.bodyoffset" : 6179, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> destination<\/decl.name>(with<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyIdentifier<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 304, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "destination(with:)", - "key.namelength" : 35, - "key.nameoffset" : 6124, - "key.offset" : 6119, - "key.parsed_declaration" : "func destination(with content : Content) -> AnyIdentifier?", - "key.parsed_scope.end" : 150, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(AutoScrollAction.ScrollDestination) -> (Content) -> AnyIdentifier?", - "key.typeusr" : "$s4with10ListableUI13AnyIdentifierCSgAB7ContentV_tcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO0D11DestinationO11destination4withAA13AnyIdentifierCSgAA7ContentV_tF" - } - ], - "key.typename" : "AutoScrollAction.ScrollDestination.Type", - "key.typeusr" : "$s10ListableUI16AutoScrollActionO0D11DestinationOmD", - "key.usr" : "s:10ListableUI16AutoScrollActionO0D11DestinationO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol Configuration<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6564 - } - ], - "key.bodylength" : 801, - "key.bodyoffset" : 6595, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This protocol allows `ListView` to treat the `OnInsertedItem` and `Pin` configurations\nin a similar fashion.", - "key.doc.column" : 21, - "key.doc.comment" : "This protocol allows `ListView` to treat the `OnInsertedItem` and `Pin` configurations\nin a similar fashion.", - "key.doc.declaration" : "public protocol Configuration", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "Configuration<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP<\/USR>public protocol Configuration<\/Declaration>This protocol allows ListView<\/codeVoice> to treat the OnInsertedItem<\/codeVoice> and Pin<\/codeVoice> configurations in a similar fashion.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 155, - "key.doc.name" : "Configuration", - "key.doc.type" : "Class", - "key.doclength" : 121, - "key.docoffset" : 6439, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> Configuration<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 826, - "key.line" : 155, - "key.modulename" : "ListableUI", - "key.name" : "Configuration", - "key.namelength" : 13, - "key.nameoffset" : 6580, - "key.offset" : 6571, - "key.parsed_declaration" : "public protocol Configuration", - "key.parsed_scope.end" : 175, - "key.parsed_scope.start" : 155, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var destination: ScrollDestination<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 6697, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item in the list to scroll to.", - "key.doc.column" : 13, - "key.doc.comment" : "The item in the list to scroll to.", - "key.doc.declaration" : "var destination: ScrollDestination { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "destination<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP11destinationAC0D11DestinationOvp<\/USR>var destination: ScrollDestination { get set }<\/Declaration>The item in the list to scroll to.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 158, - "key.doc.name" : "destination", - "key.doc.type" : "Other", - "key.doclength" : 39, - "key.docoffset" : 6613, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> destination<\/decl.name>: ScrollDestination<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 158, - "key.modulename" : "ListableUI", - "key.name" : "destination", - "key.namelength" : 11, - "key.nameoffset" : 6664, - "key.offset" : 6660, - "key.parsed_declaration" : "var destination : ScrollDestination", - "key.parsed_scope.end" : 158, - "key.parsed_scope.start" : 158, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AutoScrollAction.ScrollDestination", - "key.typeusr" : "$s10ListableUI16AutoScrollActionO0D11DestinationOD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP11destinationAC0D11DestinationOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var position: ScrollPosition<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 6797, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The desired scroll position.", - "key.doc.column" : 13, - "key.doc.comment" : "The desired scroll position.", - "key.doc.declaration" : "var position: ScrollPosition { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP8positionAA0D8PositionVvp<\/USR>var position: ScrollPosition { get set }<\/Declaration>The desired scroll position.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 161, - "key.doc.name" : "position", - "key.doc.type" : "Other", - "key.doclength" : 33, - "key.docoffset" : 6725, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> position<\/decl.name>: ScrollPosition<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 161, - "key.modulename" : "ListableUI", - "key.name" : "position", - "key.namelength" : 8, - "key.nameoffset" : 6770, - "key.offset" : 6766, - "key.parsed_declaration" : "var position : ScrollPosition", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 161, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ScrollPosition", - "key.typeusr" : "$s10ListableUI14ScrollPositionVD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8positionAA0D8PositionVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var animated: Bool<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 7077, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the change should be animated.\n\n### Note\nThe action will only be animated if it is animated, **and** the list update itself is\nanimated. Otherwise, no animation occurs.", - "key.doc.column" : 13, - "key.doc.comment" : "If the change should be animated.\n\n### Note\nThe action will only be animated if it is animated, **and** the list update itself is\nanimated. Otherwise, no animation occurs.", - "key.doc.declaration" : "var animated: Bool { get set }", - "key.doc.discussion" : [ - { - "Para" : "The action will only be animated if it is animated, the list update itself is animated. Otherwise, no animation occurs." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "animated<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP8animatedSbvp<\/USR>var animated: Bool { get set }<\/Declaration>If the change should be animated.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The action will only be animated if it is animated, and<\/bold> the list update itself is animated. Otherwise, no animation occurs.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 168, - "key.doc.name" : "animated", - "key.doc.type" : "Other", - "key.doclength" : 223, - "key.docoffset" : 6825, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> animated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 168, - "key.modulename" : "ListableUI", - "key.name" : "animated", - "key.namelength" : 8, - "key.nameoffset" : 7060, - "key.offset" : 7056, - "key.parsed_declaration" : "var animated : Bool", - "key.parsed_scope.end" : 168, - "key.parsed_scope.start" : 168, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8animatedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var shouldPerform: (ListScrollPositionInfo<\/Type>) -> Bool<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 7247, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An additional check you may provide to approve or reject the scroll action.", - "key.doc.column" : 13, - "key.doc.comment" : "An additional check you may provide to approve or reject the scroll action.", - "key.doc.declaration" : "var shouldPerform: (ListScrollPositionInfo) -> Bool { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "shouldPerform<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP13shouldPerformySbAA04ListD12PositionInfoVcvp<\/USR>var shouldPerform: (ListScrollPositionInfo) -> Bool { get set }<\/Declaration>An additional check you may provide to approve or reject the scroll action.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 171, - "key.doc.name" : "shouldPerform", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 7105, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> shouldPerform<\/decl.name>: (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 64, - "key.line" : 171, - "key.modulename" : "ListableUI", - "key.name" : "shouldPerform", - "key.namelength" : 13, - "key.nameoffset" : 7197, - "key.offset" : 7193, - "key.parsed_declaration" : "var shouldPerform : (ListScrollPositionInfo) -> Bool", - "key.parsed_scope.end" : 171, - "key.parsed_scope.start" : 171, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(ListScrollPositionInfo) -> Bool", - "key.typeusr" : "$sySb10ListableUI22ListScrollPositionInfoVcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP13shouldPerformySbAA04ListD12PositionInfoVcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var didPerform: (ListScrollPositionInfo<\/Type>) -> () { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 7381, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Called when the list performs the insertion.", - "key.doc.column" : 13, - "key.doc.comment" : "Called when the list performs the insertion.", - "key.doc.declaration" : "var didPerform: (ListScrollPositionInfo) -> () { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "didPerform<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP10didPerformyyAA04ListD12PositionInfoVcvp<\/USR>var didPerform: (ListScrollPositionInfo) -> () { get set }<\/Declaration>Called when the list performs the insertion.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 174, - "key.doc.name" : "didPerform", - "key.doc.type" : "Other", - "key.doclength" : 49, - "key.docoffset" : 7275, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> didPerform<\/decl.name>: (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 59, - "key.line" : 174, - "key.modulename" : "ListableUI", - "key.name" : "didPerform", - "key.namelength" : 10, - "key.nameoffset" : 7336, - "key.offset" : 7332, - "key.parsed_declaration" : "var didPerform : (ListScrollPositionInfo) -> ()", - "key.parsed_scope.end" : 174, - "key.parsed_scope.start" : 174, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(ListScrollPositionInfo) -> ()", - "key.typeusr" : "$syy10ListableUI22ListScrollPositionInfoVcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP10didPerformyyAA04ListD12PositionInfoVcvp" - } - ], - "key.typename" : "AutoScrollAction.Configuration.Type", - "key.typeusr" : "$s10ListableUI16AutoScrollActionO13Configuration_pmD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct OnInsertedItem : AutoScrollAction<\/Type>.Configuration<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7480 - } - ], - "key.bodylength" : 548, - "key.bodyoffset" : 7546, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Values used to configure the `scrollToItem(onInsertOf:)` action.", - "key.doc.column" : 19, - "key.doc.comment" : "Values used to configure the `scrollToItem(onInsertOf:)` action.", - "key.doc.declaration" : "public struct OnInsertedItem : AutoScrollAction.Configuration", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "OnInsertedItem<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV<\/USR>public struct OnInsertedItem : AutoScrollAction.Configuration<\/Declaration>Values used to configure the scrollToItem(onInsertOf:)<\/codeVoice> action.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 178, - "key.doc.name" : "OnInsertedItem", - "key.doc.type" : "Class", - "key.doclength" : 69, - "key.docoffset" : 7407, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 30, - "key.offset" : 7510 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> OnInsertedItem<\/decl.name> : AutoScrollAction<\/ref.enum>.Configuration<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "AutoScrollAction.Configuration" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 608, - "key.line" : 178, - "key.modulename" : "ListableUI", - "key.name" : "OnInsertedItem", - "key.namelength" : 14, - "key.nameoffset" : 7494, - "key.offset" : 7487, - "key.parsed_declaration" : "public struct OnInsertedItem: AutoScrollAction.Configuration", - "key.parsed_scope.end" : 193, - "key.parsed_scope.start" : 178, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var destination: ScrollDestination<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7644 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item in the list to scroll to when the `insertedIdentifier` is inserted.", - "key.doc.column" : 20, - "key.doc.comment" : "The item in the list to scroll to when the `insertedIdentifier` is inserted.", - "key.doc.declaration" : "public var destination: ScrollDestination", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "destination<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV11destinationAC0D11DestinationOvp<\/USR>public var destination: ScrollDestination<\/Declaration>The item in the list to scroll to when the insertedIdentifier<\/codeVoice> is inserted.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 181, - "key.doc.name" : "destination", - "key.doc.type" : "Other", - "key.doclength" : 81, - "key.docoffset" : 7555, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> destination<\/decl.name>: ScrollDestination<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 181, - "key.modulename" : "ListableUI", - "key.name" : "destination", - "key.namelength" : 11, - "key.nameoffset" : 7655, - "key.offset" : 7651, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP11destinationAC0D11DestinationOvp" - } - ], - "key.parsed_declaration" : "public var destination : ScrollDestination", - "key.parsed_scope.end" : 181, - "key.parsed_scope.start" : 181, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AutoScrollAction.ScrollDestination", - "key.typeusr" : "$s10ListableUI16AutoScrollActionO0D11DestinationOD", - "key.usr" : "s:10ListableUI16AutoScrollActionO14OnInsertedItemV11destinationAC0D11DestinationOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var insertedIdentifier: AnyIdentifier<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7797 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The identifier of the item for which the `AutoScrollAction` should be performed.", - "key.doc.column" : 20, - "key.doc.comment" : "The identifier of the item for which the `AutoScrollAction` should be performed.", - "key.doc.declaration" : "public var insertedIdentifier: AnyIdentifier", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "insertedIdentifier<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV18insertedIdentifierAA03AnyJ0Cvp<\/USR>public var insertedIdentifier: AnyIdentifier<\/Declaration>The identifier of the item for which the AutoScrollAction<\/codeVoice> should be performed.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 184, - "key.doc.name" : "insertedIdentifier", - "key.doc.type" : "Other", - "key.doclength" : 85, - "key.docoffset" : 7704, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> insertedIdentifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 184, - "key.modulename" : "ListableUI", - "key.name" : "insertedIdentifier", - "key.namelength" : 18, - "key.nameoffset" : 7808, - "key.offset" : 7804, - "key.parsed_declaration" : "public var insertedIdentifier : AnyIdentifier", - "key.parsed_scope.end" : 184, - "key.parsed_scope.start" : 184, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyIdentifier", - "key.typeusr" : "$s10ListableUI13AnyIdentifierCD", - "key.usr" : "s:10ListableUI16AutoScrollActionO14OnInsertedItemV18insertedIdentifierAA03AnyJ0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var position: ScrollPosition<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7860 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The desired scroll position.", - "key.doc.column" : 13, - "key.doc.declaration" : "var position: ScrollPosition { get set }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP8positionAA0D8PositionVvp<\/USR>var position: ScrollPosition { get set }<\/Declaration>The desired scroll position.<\/Para><\/Abstract>This documentation comment was inherited from Configuration<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 161, - "key.doc.name" : "position", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> position<\/decl.name>: ScrollPosition<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 186, - "key.modulename" : "ListableUI", - "key.name" : "position", - "key.namelength" : 8, - "key.nameoffset" : 7871, - "key.offset" : 7867, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8positionAA0D8PositionVvp" - } - ], - "key.parsed_declaration" : "public var position : ScrollPosition", - "key.parsed_scope.end" : 186, - "key.parsed_scope.start" : 186, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ScrollPosition", - "key.typeusr" : "$s10ListableUI14ScrollPositionVD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8positionAA0D8PositionVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var animated: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7914 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the change should be animated.\n\n### Note\nThe action will only be animated if it is animated, **and** the list update itself is\nanimated. Otherwise, no animation occurs.", - "key.doc.column" : 13, - "key.doc.declaration" : "var animated: Bool { get set }", - "key.doc.discussion" : [ - { - "Para" : "The action will only be animated if it is animated, the list update itself is animated. Otherwise, no animation occurs." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "animated<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP8animatedSbvp<\/USR>var animated: Bool { get set }<\/Declaration>If the change should be animated.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The action will only be animated if it is animated, and<\/bold> the list update itself is animated. Otherwise, no animation occurs.<\/Para>This documentation comment was inherited from Configuration<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 168, - "key.doc.name" : "animated", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> animated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 188, - "key.modulename" : "ListableUI", - "key.name" : "animated", - "key.namelength" : 8, - "key.nameoffset" : 7925, - "key.offset" : 7921, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8animatedSbvp" - } - ], - "key.parsed_declaration" : "public var animated : Bool", - "key.parsed_scope.end" : 188, - "key.parsed_scope.start" : 188, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8animatedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var shouldPerform: (ListScrollPositionInfo<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7958 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An additional check you may provide to approve or reject the scroll action.", - "key.doc.column" : 13, - "key.doc.declaration" : "var shouldPerform: (ListScrollPositionInfo) -> Bool { get set }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "shouldPerform<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP13shouldPerformySbAA04ListD12PositionInfoVcvp<\/USR>var shouldPerform: (ListScrollPositionInfo) -> Bool { get set }<\/Declaration>An additional check you may provide to approve or reject the scroll action.<\/Para><\/Abstract>This documentation comment was inherited from Configuration<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 171, - "key.doc.name" : "shouldPerform", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> shouldPerform<\/decl.name>: (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 190, - "key.modulename" : "ListableUI", - "key.name" : "shouldPerform", - "key.namelength" : 13, - "key.nameoffset" : 7969, - "key.offset" : 7965, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP13shouldPerformySbAA04ListD12PositionInfoVcvp" - } - ], - "key.parsed_declaration" : "public var shouldPerform : (ListScrollPositionInfo) -> Bool", - "key.parsed_scope.end" : 190, - "key.parsed_scope.start" : 190, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(ListScrollPositionInfo) -> Bool", - "key.typeusr" : "$sySb10ListableUI22ListScrollPositionInfoVcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP13shouldPerformySbAA04ListD12PositionInfoVcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var didPerform: (ListScrollPositionInfo<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8035 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Called when the list performs the insertion.", - "key.doc.column" : 13, - "key.doc.declaration" : "var didPerform: (ListScrollPositionInfo) -> () { get set }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "didPerform<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP10didPerformyyAA04ListD12PositionInfoVcvp<\/USR>var didPerform: (ListScrollPositionInfo) -> () { get set }<\/Declaration>Called when the list performs the insertion.<\/Para><\/Abstract>This documentation comment was inherited from Configuration<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 174, - "key.doc.name" : "didPerform", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didPerform<\/decl.name>: (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 192, - "key.modulename" : "ListableUI", - "key.name" : "didPerform", - "key.namelength" : 10, - "key.nameoffset" : 8046, - "key.offset" : 8042, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP10didPerformyyAA04ListD12PositionInfoVcvp" - } - ], - "key.parsed_declaration" : "public var didPerform : (ListScrollPositionInfo) -> ()", - "key.parsed_scope.end" : 192, - "key.parsed_scope.start" : 192, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(ListScrollPositionInfo) -> ()", - "key.typeusr" : "$syy10ListableUI22ListScrollPositionInfoVcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP10didPerformyyAA04ListD12PositionInfoVcvp" - } - ], - "key.typename" : "AutoScrollAction.OnInsertedItem.Type", - "key.typeusr" : "$s10ListableUI16AutoScrollActionO14OnInsertedItemVmD", - "key.usr" : "s:10ListableUI16AutoScrollActionO14OnInsertedItemV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Pin : AutoScrollAction<\/Type>.Configuration<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8157 - } - ], - "key.bodylength" : 295, - "key.bodyoffset" : 8212, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Values used to configure the `pin(to:)` action.", - "key.doc.column" : 19, - "key.doc.comment" : "Values used to configure the `pin(to:)` action.", - "key.doc.declaration" : "public struct Pin : AutoScrollAction.Configuration", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "Pin<\/Name>s:10ListableUI16AutoScrollActionO3PinV<\/USR>public struct Pin : AutoScrollAction.Configuration<\/Declaration>Values used to configure the pin(to:)<\/codeVoice> action.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 196, - "key.doc.name" : "Pin", - "key.doc.type" : "Class", - "key.doclength" : 52, - "key.docoffset" : 8101, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 30, - "key.offset" : 8176 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Pin<\/decl.name> : AutoScrollAction<\/ref.enum>.Configuration<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "AutoScrollAction.Configuration" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 344, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "Pin", - "key.namelength" : 3, - "key.nameoffset" : 8171, - "key.offset" : 8164, - "key.parsed_declaration" : "public struct Pin: AutoScrollAction.Configuration", - "key.parsed_scope.end" : 207, - "key.parsed_scope.start" : 196, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var destination: ScrollDestination<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8221 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item in the list to scroll to.", - "key.doc.column" : 13, - "key.doc.declaration" : "var destination: ScrollDestination { get set }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "destination<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP11destinationAC0D11DestinationOvp<\/USR>var destination: ScrollDestination { get set }<\/Declaration>The item in the list to scroll to.<\/Para><\/Abstract>This documentation comment was inherited from Configuration<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 158, - "key.doc.name" : "destination", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> destination<\/decl.name>: ScrollDestination<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 198, - "key.modulename" : "ListableUI", - "key.name" : "destination", - "key.namelength" : 11, - "key.nameoffset" : 8232, - "key.offset" : 8228, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP11destinationAC0D11DestinationOvp" - } - ], - "key.parsed_declaration" : "public var destination : ScrollDestination", - "key.parsed_scope.end" : 198, - "key.parsed_scope.start" : 198, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AutoScrollAction.ScrollDestination", - "key.typeusr" : "$s10ListableUI16AutoScrollActionO0D11DestinationOD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP11destinationAC0D11DestinationOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var position: ScrollPosition<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8273 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The desired scroll position.", - "key.doc.column" : 13, - "key.doc.declaration" : "var position: ScrollPosition { get set }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP8positionAA0D8PositionVvp<\/USR>var position: ScrollPosition { get set }<\/Declaration>The desired scroll position.<\/Para><\/Abstract>This documentation comment was inherited from Configuration<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 161, - "key.doc.name" : "position", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> position<\/decl.name>: ScrollPosition<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 200, - "key.modulename" : "ListableUI", - "key.name" : "position", - "key.namelength" : 8, - "key.nameoffset" : 8284, - "key.offset" : 8280, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8positionAA0D8PositionVvp" - } - ], - "key.parsed_declaration" : "public var position : ScrollPosition", - "key.parsed_scope.end" : 200, - "key.parsed_scope.start" : 200, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ScrollPosition", - "key.typeusr" : "$s10ListableUI14ScrollPositionVD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8positionAA0D8PositionVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var animated: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8327 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the change should be animated.\n\n### Note\nThe action will only be animated if it is animated, **and** the list update itself is\nanimated. Otherwise, no animation occurs.", - "key.doc.column" : 13, - "key.doc.declaration" : "var animated: Bool { get set }", - "key.doc.discussion" : [ - { - "Para" : "The action will only be animated if it is animated, the list update itself is animated. Otherwise, no animation occurs." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "animated<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP8animatedSbvp<\/USR>var animated: Bool { get set }<\/Declaration>If the change should be animated.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The action will only be animated if it is animated, and<\/bold> the list update itself is animated. Otherwise, no animation occurs.<\/Para>This documentation comment was inherited from Configuration<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 168, - "key.doc.name" : "animated", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> animated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 202, - "key.modulename" : "ListableUI", - "key.name" : "animated", - "key.namelength" : 8, - "key.nameoffset" : 8338, - "key.offset" : 8334, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8animatedSbvp" - } - ], - "key.parsed_declaration" : "public var animated : Bool", - "key.parsed_scope.end" : 202, - "key.parsed_scope.start" : 202, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP8animatedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var shouldPerform: (ListScrollPositionInfo<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8371 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An additional check you may provide to approve or reject the scroll action.", - "key.doc.column" : 13, - "key.doc.declaration" : "var shouldPerform: (ListScrollPositionInfo) -> Bool { get set }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "shouldPerform<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP13shouldPerformySbAA04ListD12PositionInfoVcvp<\/USR>var shouldPerform: (ListScrollPositionInfo) -> Bool { get set }<\/Declaration>An additional check you may provide to approve or reject the scroll action.<\/Para><\/Abstract>This documentation comment was inherited from Configuration<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 171, - "key.doc.name" : "shouldPerform", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> shouldPerform<\/decl.name>: (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 204, - "key.modulename" : "ListableUI", - "key.name" : "shouldPerform", - "key.namelength" : 13, - "key.nameoffset" : 8382, - "key.offset" : 8378, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP13shouldPerformySbAA04ListD12PositionInfoVcvp" - } - ], - "key.parsed_declaration" : "public var shouldPerform : (ListScrollPositionInfo) -> Bool", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 204, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(ListScrollPositionInfo) -> Bool", - "key.typeusr" : "$sySb10ListableUI22ListScrollPositionInfoVcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP13shouldPerformySbAA04ListD12PositionInfoVcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var didPerform: (ListScrollPositionInfo<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8448 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Called when the list performs the insertion.", - "key.doc.column" : 13, - "key.doc.declaration" : "var didPerform: (ListScrollPositionInfo) -> () { get set }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.doc.full_as_xml" : "didPerform<\/Name>s:10ListableUI16AutoScrollActionO13ConfigurationP10didPerformyyAA04ListD12PositionInfoVcvp<\/USR>var didPerform: (ListScrollPositionInfo) -> () { get set }<\/Declaration>Called when the list performs the insertion.<\/Para><\/Abstract>This documentation comment was inherited from Configuration<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 174, - "key.doc.name" : "didPerform", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/AutoScrollAction.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didPerform<\/decl.name>: (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 206, - "key.modulename" : "ListableUI", - "key.name" : "didPerform", - "key.namelength" : 10, - "key.nameoffset" : 8459, - "key.offset" : 8455, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP10didPerformyyAA04ListD12PositionInfoVcvp" - } - ], - "key.parsed_declaration" : "public var didPerform : (ListScrollPositionInfo) -> ()", - "key.parsed_scope.end" : 206, - "key.parsed_scope.start" : 206, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(ListScrollPositionInfo) -> ()", - "key.typeusr" : "$syy10ListableUI22ListScrollPositionInfoVcD", - "key.usr" : "s:10ListableUI16AutoScrollActionO13ConfigurationP10didPerformyyAA04ListD12PositionInfoVcvp" - } - ], - "key.typename" : "AutoScrollAction.Pin.Type", - "key.typeusr" : "$s10ListableUI16AutoScrollActionO3PinVmD", - "key.usr" : "s:10ListableUI16AutoScrollActionO3PinV" - } - ], - "key.typename" : "AutoScrollAction.Type", - "key.typeusr" : "$s10ListableUI16AutoScrollActionOmD", - "key.usr" : "s:10ListableUI16AutoScrollActionO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 10384, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Behavior : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 301 - } - ], - "key.bodylength" : 3712, - "key.bodyoffset" : 337, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior\nwhen the list content underflows the available space in the list view.", - "key.doc.column" : 15, - "key.doc.comment" : "Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior\nwhen the list content underflows the available space in the list view.", - "key.doc.declaration" : "public struct Behavior : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "Behavior<\/Name>s:10ListableUI8BehaviorV<\/USR>public struct Behavior : Equatable<\/Declaration>Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior when the list content underflows the available space in the list view.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 14, - "key.doc.name" : "Behavior", - "key.doc.type" : "Class", - "key.doclength" : 181, - "key.docoffset" : 120, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 326 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Behavior<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3742, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "Behavior", - "key.namelength" : 8, - "key.nameoffset" : 315, - "key.offset" : 308, - "key.parsed_declaration" : "public struct Behavior : Equatable", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isScrollEnabled: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 398 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Whether the list scroll view should be enabled.", - "key.doc.column" : 16, - "key.doc.comment" : "Whether the list scroll view should be enabled.", - "key.doc.declaration" : "public var isScrollEnabled: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "isScrollEnabled<\/Name>s:10ListableUI8BehaviorV15isScrollEnabledSbvp<\/USR>public var isScrollEnabled: Bool<\/Declaration>Whether the list scroll view should be enabled.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "isScrollEnabled", - "key.doc.type" : "Other", - "key.doclength" : 52, - "key.docoffset" : 342, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isScrollEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "isScrollEnabled", - "key.namelength" : 15, - "key.nameoffset" : 409, - "key.offset" : 405, - "key.parsed_declaration" : "public var isScrollEnabled: Bool", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8BehaviorV15isScrollEnabledSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var keyboardDismissMode: UIScrollView<\/Type>.KeyboardDismissMode<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 530 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the keyboard should be dismissed (if at all) based on scrolling of the list view.", - "key.doc.column" : 16, - "key.doc.comment" : "How the keyboard should be dismissed (if at all) based on scrolling of the list view.", - "key.doc.declaration" : "public var keyboardDismissMode: UIScrollView.KeyboardDismissMode", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "keyboardDismissMode<\/Name>s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp<\/USR>public var keyboardDismissMode: UIScrollView.KeyboardDismissMode<\/Declaration>How the keyboard should be dismissed (if at all) based on scrolling of the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "keyboardDismissMode", - "key.doc.type" : "Other", - "key.doclength" : 90, - "key.docoffset" : 436, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> keyboardDismissMode<\/decl.name>: UIScrollView<\/ref.class>.KeyboardDismissMode<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 58, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "keyboardDismissMode", - "key.namelength" : 19, - "key.nameoffset" : 541, - "key.offset" : 537, - "key.parsed_declaration" : "public var keyboardDismissMode : UIScrollView.KeyboardDismissMode", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIScrollView.KeyboardDismissMode", - "key.typeusr" : "$sSo31UIScrollViewKeyboardDismissModeVD", - "key.usr" : "s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var keyboardAdjustmentMode: KeyboardAdjustmentMode<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 696 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to adjust the `contentInset` of the list when the keyboard visibility changes.", - "key.doc.column" : 16, - "key.doc.comment" : "How to adjust the `contentInset` of the list when the keyboard visibility changes.", - "key.doc.declaration" : "public var keyboardAdjustmentMode: KeyboardAdjustmentMode", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "keyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp<\/USR>public var keyboardAdjustmentMode: KeyboardAdjustmentMode<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 23, - "key.doc.name" : "keyboardAdjustmentMode", - "key.doc.type" : "Other", - "key.doclength" : 87, - "key.docoffset" : 605, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> keyboardAdjustmentMode<\/decl.name>: KeyboardAdjustmentMode<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "keyboardAdjustmentMode", - "key.namelength" : 22, - "key.nameoffset" : 707, - "key.offset" : 703, - "key.parsed_declaration" : "public var keyboardAdjustmentMode : KeyboardAdjustmentMode", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior.KeyboardAdjustmentMode", - "key.typeusr" : "$s10ListableUI8BehaviorV22KeyboardAdjustmentModeOD", - "key.usr" : "s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var scrollsToTop: ScrollsToTop<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 905 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the list should react when the user taps the application status bar.\nThe default value of this enables scrolling to top.", - "key.doc.column" : 16, - "key.doc.comment" : "How the list should react when the user taps the application status bar.\nThe default value of this enables scrolling to top.", - "key.doc.declaration" : "public var scrollsToTop: ScrollsToTop", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "scrollsToTop<\/Name>s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp<\/USR>public var scrollsToTop: ScrollsToTop<\/Declaration>How the list should react when the user taps the application status bar. The default value of this enables scrolling to top.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 27, - "key.doc.name" : "scrollsToTop", - "key.doc.type" : "Other", - "key.doclength" : 137, - "key.docoffset" : 764, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollsToTop<\/decl.name>: ScrollsToTop<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "scrollsToTop", - "key.namelength" : 12, - "key.nameoffset" : 916, - "key.offset" : 912, - "key.parsed_declaration" : "public var scrollsToTop : ScrollsToTop", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior.ScrollsToTop", - "key.typeusr" : "$s10ListableUI8BehaviorV12ScrollsToTopOD", - "key.usr" : "s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var selectionMode: SelectionMode<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1012 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the list should respond to selection attempts.", - "key.doc.column" : 16, - "key.doc.comment" : "How the list should respond to selection attempts.", - "key.doc.declaration" : "public var selectionMode: SelectionMode", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "selectionMode<\/Name>s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp<\/USR>public var selectionMode: SelectionMode<\/Declaration>How the list should respond to selection attempts.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 30, - "key.doc.name" : "selectionMode", - "key.doc.type" : "Other", - "key.doclength" : 55, - "key.docoffset" : 953, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectionMode<\/decl.name>: SelectionMode<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "selectionMode", - "key.namelength" : 13, - "key.nameoffset" : 1023, - "key.offset" : 1019, - "key.parsed_declaration" : "public var selectionMode : SelectionMode", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior.SelectionMode", - "key.typeusr" : "$s10ListableUI8BehaviorV13SelectionModeOD", - "key.usr" : "s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var underflow: Underflow<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1233 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the list should behave when its content takes up less space than is available in the list view.\nTODO: This should move to individual layout types.", - "key.doc.column" : 16, - "key.doc.comment" : "How the list should behave when its content takes up less space than is available in the list view.\nTODO: This should move to individual layout types.", - "key.doc.declaration" : "public var underflow: Underflow", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "underflow<\/Name>s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp<\/USR>public var underflow: Underflow<\/Declaration>How the list should behave when its content takes up less space than is available in the list view. TODO: This should move to individual layout types.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 34, - "key.doc.name" : "underflow", - "key.doc.type" : "Other", - "key.doclength" : 163, - "key.docoffset" : 1066, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> underflow<\/decl.name>: Underflow<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "underflow", - "key.namelength" : 9, - "key.nameoffset" : 1244, - "key.offset" : 1240, - "key.parsed_declaration" : "public var underflow : Underflow", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 34, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior.Underflow", - "key.typeusr" : "$s10ListableUI8BehaviorV9UnderflowVD", - "key.usr" : "s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var canCancelContentTouches: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1374 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A Boolean value that controls whether touches in the content view always lead to tracking.", - "key.doc.column" : 16, - "key.doc.comment" : "A Boolean value that controls whether touches in the content view always lead to tracking.", - "key.doc.declaration" : "public var canCancelContentTouches: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "canCancelContentTouches<\/Name>s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp<\/USR>public var canCancelContentTouches: Bool<\/Declaration>A Boolean value that controls whether touches in the content view always lead to tracking.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 37, - "key.doc.name" : "canCancelContentTouches", - "key.doc.type" : "Other", - "key.doclength" : 95, - "key.docoffset" : 1275, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> canCancelContentTouches<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "canCancelContentTouches", - "key.namelength" : 23, - "key.nameoffset" : 1385, - "key.offset" : 1381, - "key.parsed_declaration" : "public var canCancelContentTouches : Bool", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var delaysContentTouches: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1533 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.", - "key.doc.column" : 16, - "key.doc.comment" : "A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.", - "key.doc.declaration" : "public var delaysContentTouches: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "delaysContentTouches<\/Name>s:10ListableUI8BehaviorV20delaysContentTouchesSbvp<\/USR>public var delaysContentTouches: Bool<\/Declaration>A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 40, - "key.doc.name" : "delaysContentTouches", - "key.doc.type" : "Other", - "key.doclength" : 104, - "key.docoffset" : 1425, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> delaysContentTouches<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "delaysContentTouches", - "key.namelength" : 20, - "key.nameoffset" : 1544, - "key.offset" : 1540, - "key.parsed_declaration" : "public var delaysContentTouches : Bool", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8BehaviorV20delaysContentTouchesSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var pageScrollingBehavior: PageScrollingBehavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1686 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The page scrolling behavior of the underlying scroll view. When `.none`, no paging is performed.", - "key.doc.column" : 16, - "key.doc.comment" : "The page scrolling behavior of the underlying scroll view. When `.none`, no paging is performed.", - "key.doc.declaration" : "public var pageScrollingBehavior: PageScrollingBehavior", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "pageScrollingBehavior<\/Name>s:10ListableUI8BehaviorV013pageScrollingC0AA04PageeC0Ovp<\/USR>public var pageScrollingBehavior: PageScrollingBehavior<\/Declaration>The page scrolling behavior of the underlying scroll view. When .none<\/codeVoice>, no paging is performed.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 43, - "key.doc.name" : "pageScrollingBehavior", - "key.doc.type" : "Other", - "key.doclength" : 101, - "key.docoffset" : 1581, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pageScrollingBehavior<\/decl.name>: PageScrollingBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 49, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "pageScrollingBehavior", - "key.namelength" : 21, - "key.nameoffset" : 1697, - "key.offset" : 1693, - "key.parsed_declaration" : "public var pageScrollingBehavior : PageScrollingBehavior", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "PageScrollingBehavior", - "key.typeusr" : "$s10ListableUI21PageScrollingBehaviorOD", - "key.usr" : "s:10ListableUI8BehaviorV013pageScrollingC0AA04PageeC0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var decelerationRate: DecelerationRate<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1797 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The rate at which scrolling decelerates.", - "key.doc.column" : 16, - "key.doc.comment" : "The rate at which scrolling decelerates.", - "key.doc.declaration" : "public var decelerationRate: DecelerationRate", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "decelerationRate<\/Name>s:10ListableUI8BehaviorV16decelerationRateAC012DecelerationE0Ovp<\/USR>public var decelerationRate: DecelerationRate<\/Declaration>The rate at which scrolling decelerates.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 46, - "key.doc.name" : "decelerationRate", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 1748, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> decelerationRate<\/decl.name>: DecelerationRate<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "decelerationRate", - "key.namelength" : 16, - "key.nameoffset" : 1808, - "key.offset" : 1804, - "key.parsed_declaration" : "public var decelerationRate: DecelerationRate", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior.DecelerationRate", - "key.typeusr" : "$s10ListableUI8BehaviorV16DecelerationRateOD", - "key.usr" : "s:10ListableUI8BehaviorV16decelerationRateAC012DecelerationE0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var verticalLayoutGravity: VerticalLayoutGravity<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2027 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applicable when the `layoutDirection` is `vertical`. The gravity determines\nhow inserting new elements or changing the `contentInset` affects the scroll position.", - "key.doc.column" : 16, - "key.doc.comment" : "Applicable when the `layoutDirection` is `vertical`. The gravity determines\nhow inserting new elements or changing the `contentInset` affects the scroll position.", - "key.doc.declaration" : "public var verticalLayoutGravity: VerticalLayoutGravity", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "verticalLayoutGravity<\/Name>s:10ListableUI8BehaviorV21verticalLayoutGravityAC08VerticaleF0Ovp<\/USR>public var verticalLayoutGravity: VerticalLayoutGravity<\/Declaration>Applicable when the layoutDirection<\/codeVoice> is vertical<\/codeVoice>. The gravity determines how inserting new elements or changing the contentInset<\/codeVoice> affects the scroll position.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 50, - "key.doc.name" : "verticalLayoutGravity", - "key.doc.type" : "Other", - "key.doclength" : 175, - "key.docoffset" : 1848, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> verticalLayoutGravity<\/decl.name>: VerticalLayoutGravity<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 49, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "verticalLayoutGravity", - "key.namelength" : 21, - "key.nameoffset" : 2038, - "key.offset" : 2034, - "key.parsed_declaration" : "public var verticalLayoutGravity : VerticalLayoutGravity", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior.VerticalLayoutGravity", - "key.typeusr" : "$s10ListableUI8BehaviorV21VerticalLayoutGravityOD", - "key.usr" : "s:10ListableUI8BehaviorV21verticalLayoutGravityAC08VerticaleF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var focus: FocusConfiguration<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2630 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Configuration for keyboard focus behavior in the list view.\n\n- `.none`: No focus support - keyboard navigation is disabled\n- `.allowsFocus`: Basic focus support with keyboard navigation, but selection doesn't follow focus\n- `.selectionFollowsFocus`: Focus support where selection automatically follows focus changes\n\nWhen focus is enabled, items that support selection can receive focus for keyboard navigation.\nThe focus ring will be applied to focused items automatically.", - "key.doc.column" : 16, - "key.doc.comment" : "Configuration for keyboard focus behavior in the list view.\n\n- `.none`: No focus support - keyboard navigation is disabled\n- `.allowsFocus`: Basic focus support with keyboard navigation, but selection doesn't follow focus\n- `.selectionFollowsFocus`: Focus support where selection automatically follows focus changes\n\nWhen focus is enabled, items that support selection can receive focus for keyboard navigation.\nThe focus ring will be applied to focused items automatically.", - "key.doc.declaration" : "public var focus: FocusConfiguration", - "key.doc.discussion" : [ - { - "List-Bullet" : "" - }, - { - "Para" : "When focus is enabled, items that support selection can receive focus for keyboard navigation. The focus ring will be applied to focused items automatically." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "focus<\/Name>s:10ListableUI8BehaviorV5focusAC18FocusConfigurationOvp<\/USR>public var focus: FocusConfiguration<\/Declaration>Configuration for keyboard focus behavior in the list view.<\/Para><\/Abstract>.none<\/codeVoice>: No focus support - keyboard navigation is disabled<\/Para><\/Item>.allowsFocus<\/codeVoice>: Basic focus support with keyboard navigation, but selection doesn’t follow focus<\/Para><\/Item>.selectionFollowsFocus<\/codeVoice>: Focus support where selection automatically follows focus changes<\/Para><\/Item><\/List-Bullet>When focus is enabled, items that support selection can receive focus for keyboard navigation. The focus ring will be applied to focused items automatically.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 60, - "key.doc.name" : "focus", - "key.doc.type" : "Other", - "key.doclength" : 533, - "key.docoffset" : 2093, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> focus<\/decl.name>: FocusConfiguration<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "focus", - "key.namelength" : 5, - "key.nameoffset" : 2641, - "key.offset" : 2637, - "key.parsed_declaration" : "public var focus: FocusConfiguration", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior.FocusConfiguration", - "key.typeusr" : "$s10ListableUI8BehaviorV18FocusConfigurationOD", - "key.usr" : "s:10ListableUI8BehaviorV5focusAC18FocusConfigurationOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(isScrollEnabled: Bool<\/Type> = true, keyboardDismissMode: UIScrollView<\/Type>.KeyboardDismissMode<\/Type> = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode<\/Type> = .adjustsWhenVisible, scrollsToTop: ScrollsToTop<\/Type> = .enabled, selectionMode: SelectionMode<\/Type> = .single, underflow: Underflow<\/Type> = Underflow(), canCancelContentTouches: Bool<\/Type> = true, delaysContentTouches: Bool<\/Type> = true, pageScrollingBehavior: PageScrollingBehavior<\/Type> = .none, decelerationRate: DecelerationRate<\/Type> = .normal, verticalLayoutGravity: VerticalLayoutGravity<\/Type> = .top, focus: FocusConfiguration<\/Type> = .none)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2739 - } - ], - "key.bodylength" : 637, - "key.bodyoffset" : 3410, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `Behavior` based on the provided parameters.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new `Behavior` based on the provided parameters.", - "key.doc.declaration" : "public init(isScrollEnabled: Bool = true, keyboardDismissMode: UIScrollView.KeyboardDismissMode = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode = .adjustsWhenVisible, scrollsToTop: ScrollsToTop = .enabled, selectionMode: SelectionMode = .single, underflow: Underflow = Underflow(), canCancelContentTouches: Bool = true, delaysContentTouches: Bool = true, pageScrollingBehavior: PageScrollingBehavior = .none, decelerationRate: DecelerationRate = .normal, verticalLayoutGravity: VerticalLayoutGravity = .top, focus: FocusConfiguration = .none)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "init(isScrollEnabled:keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:pageScrollingBehavior:decelerationRate:verticalLayoutGravity:focus:)<\/Name>s:10ListableUI8BehaviorV15isScrollEnabled19keyboardDismissMode0g10AdjustmentI012scrollsToTop09selectionI09underflow23canCancelContentTouches06delaysrS0013pageScrollingC016decelerationRate21verticalLayoutGravity5focusACSb_So020UIScrollViewKeyboardhI0VAC08KeyboardjI0OAC07ScrollslM0OAC09SelectionI0OAC9UnderflowVS2bAA04PagevC0OAC012DecelerationX0OAC08VerticalZ7GravityOAC18FocusConfigurationOtcfc<\/USR>public init(isScrollEnabled: Bool = true, keyboardDismissMode: UIScrollView.KeyboardDismissMode = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode = .adjustsWhenVisible, scrollsToTop: ScrollsToTop = .enabled, selectionMode: SelectionMode = .single, underflow: Underflow = Underflow(), canCancelContentTouches: Bool = true, delaysContentTouches: Bool = true, pageScrollingBehavior: PageScrollingBehavior = .none, decelerationRate: DecelerationRate = .normal, verticalLayoutGravity: VerticalLayoutGravity = .top, focus: FocusConfiguration = .none)<\/Declaration>Creates a new Behavior<\/codeVoice> based on the provided parameters.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 63, - "key.doc.name" : "init(isScrollEnabled:keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:pageScrollingBehavior:decelerationRate:verticalLayoutGravity:focus:)", - "key.doc.type" : "Function", - "key.doclength" : 63, - "key.docoffset" : 2672, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isScrollEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, keyboardDismissMode<\/decl.var.parameter.argument_label>: UIScrollView<\/ref.class>.KeyboardDismissMode<\/ref.enum><\/decl.var.parameter.type> = .interactive<\/decl.var.parameter>, keyboardAdjustmentMode<\/decl.var.parameter.argument_label>: KeyboardAdjustmentMode<\/ref.enum><\/decl.var.parameter.type> = .adjustsWhenVisible<\/decl.var.parameter>, scrollsToTop<\/decl.var.parameter.argument_label>: ScrollsToTop<\/ref.enum><\/decl.var.parameter.type> = .enabled<\/decl.var.parameter>, selectionMode<\/decl.var.parameter.argument_label>: SelectionMode<\/ref.enum><\/decl.var.parameter.type> = .single<\/decl.var.parameter>, underflow<\/decl.var.parameter.argument_label>: Underflow<\/ref.struct><\/decl.var.parameter.type> = Underflow()<\/decl.var.parameter>, canCancelContentTouches<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, delaysContentTouches<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, pageScrollingBehavior<\/decl.var.parameter.argument_label>: PageScrollingBehavior<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, decelerationRate<\/decl.var.parameter.argument_label>: DecelerationRate<\/ref.enum><\/decl.var.parameter.type> = .normal<\/decl.var.parameter>, verticalLayoutGravity<\/decl.var.parameter.argument_label>: VerticalLayoutGravity<\/ref.enum><\/decl.var.parameter.type> = .top<\/decl.var.parameter>, focus<\/decl.var.parameter.argument_label>: FocusConfiguration<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1302, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "init(isScrollEnabled:keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:pageScrollingBehavior:decelerationRate:verticalLayoutGravity:focus:)", - "key.namelength" : 662, - "key.nameoffset" : 2746, - "key.offset" : 2746, - "key.parsed_declaration" : "public init(\n isScrollEnabled: Bool = true,\n keyboardDismissMode : UIScrollView.KeyboardDismissMode = .interactive,\n keyboardAdjustmentMode : KeyboardAdjustmentMode = .adjustsWhenVisible,\n scrollsToTop : ScrollsToTop = .enabled,\n selectionMode : SelectionMode = .single,\n underflow : Underflow = Underflow(),\n canCancelContentTouches : Bool = true,\n delaysContentTouches : Bool = true,\n pageScrollingBehavior : PageScrollingBehavior = .none,\n decelerationRate : DecelerationRate = .normal,\n verticalLayoutGravity : VerticalLayoutGravity = .top,\n focus: FocusConfiguration = .none\n)", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Behavior.Type) -> (Bool, UIScrollView.KeyboardDismissMode, Behavior.KeyboardAdjustmentMode, Behavior.ScrollsToTop, Behavior.SelectionMode, Behavior.Underflow, Bool, Bool, PageScrollingBehavior, Behavior.DecelerationRate, Behavior.VerticalLayoutGravity, Behavior.FocusConfiguration) -> Behavior", - "key.typeusr" : "$s15isScrollEnabled19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP021pageScrollingBehavior16decelerationRate21verticalLayoutGravity5focus10ListableUI0T0VSb_So020UIScrollViewKeyboardeF0VAO08KeyboardgF0OAO07ScrollsiJ0OAO09SelectionF0OAO9UnderflowVS2bAM04PagesT0OAO012DecelerationV0OAO08VerticalxY0OAO18FocusConfigurationOtcD", - "key.usr" : "s:10ListableUI8BehaviorV15isScrollEnabled19keyboardDismissMode0g10AdjustmentI012scrollsToTop09selectionI09underflow23canCancelContentTouches06delaysrS0013pageScrollingC016decelerationRate21verticalLayoutGravity5focusACSb_So020UIScrollViewKeyboardhI0VAC08KeyboardjI0OAC07ScrollslM0OAC09SelectionI0OAC9UnderflowVS2bAA04PagevC0OAC012DecelerationX0OAC08VerticalZ7GravityOAC18FocusConfigurationOtcfc" - } - ], - "key.typename" : "Behavior.Type", - "key.typeusr" : "$s10ListableUI8BehaviorVmD", - "key.usr" : "s:10ListableUI8BehaviorV" - }, - { - "key.annotated_decl" : "public struct Behavior : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 5949, - "key.bodyoffset" : 4073, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior\nwhen the list content underflows the available space in the list view.", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct Behavior : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "Behavior<\/Name>s:10ListableUI8BehaviorV<\/USR>public struct Behavior : Equatable<\/Declaration>Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior when the list content underflows the available space in the list view.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 14, - "key.doc.name" : "Behavior", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Behavior<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 5970, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "Behavior", - "key.namelength" : 8, - "key.nameoffset" : 4063, - "key.offset" : 4053, - "key.parsed_declaration" : "extension Behavior", - "key.parsed_scope.end" : 254, - "key.parsed_scope.start" : 97, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum KeyboardAdjustmentMode : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4169 - } - ], - "key.bodylength" : 492, - "key.bodyoffset" : 4221, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to adjust the `contentInset` of the list when the keyboard visibility changes.", - "key.doc.column" : 17, - "key.doc.comment" : "How to adjust the `contentInset` of the list when the keyboard visibility changes.", - "key.doc.declaration" : "public enum KeyboardAdjustmentMode : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "KeyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO<\/USR>public enum KeyboardAdjustmentMode : Equatable<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 100, - "key.doc.name" : "KeyboardAdjustmentMode", - "key.doc.type" : "Other", - "key.doclength" : 87, - "key.docoffset" : 4078, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 4206 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> KeyboardAdjustmentMode<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 538, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "KeyboardAdjustmentMode", - "key.namelength" : 22, - "key.nameoffset" : 4181, - "key.offset" : 4176, - "key.parsed_declaration" : "public enum KeyboardAdjustmentMode : Equatable", - "key.parsed_scope.end" : 112, - "key.parsed_scope.start" : 100, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 4330, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `contentInset` of the list is not adjusted when the keyboard appears or disappears.", - "key.doc.column" : 14, - "key.doc.comment" : "The `contentInset` of the list is not adjusted when the keyboard appears or disappears.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is not adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 103, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 92, - "key.docoffset" : 4230, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 103, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 4335, - "key.offset" : 4335, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 103, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.KeyboardAdjustmentMode.Type) -> Behavior.KeyboardAdjustmentMode", - "key.typeusr" : "$sy10ListableUI8BehaviorV22KeyboardAdjustmentModeOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 23, - "key.offset" : 4453, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case adjustsWhenVisible<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `contentInset` of the list is adjusted when the keyboard appears or disappears.", - "key.doc.column" : 14, - "key.doc.comment" : "The `contentInset` of the list is adjusted when the keyboard appears or disappears.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "adjustsWhenVisible<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 106, - "key.doc.name" : "adjustsWhenVisible", - "key.doc.type" : "Other", - "key.doclength" : 88, - "key.docoffset" : 4357, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> adjustsWhenVisible<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 18, - "key.line" : 106, - "key.modulename" : "ListableUI", - "key.name" : "adjustsWhenVisible", - "key.namelength" : 18, - "key.nameoffset" : 4458, - "key.offset" : 4458, - "key.parsed_declaration" : "case adjustsWhenVisible", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 106, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.KeyboardAdjustmentMode.Type) -> Behavior.KeyboardAdjustmentMode", - "key.typeusr" : "$sy10ListableUI8BehaviorV22KeyboardAdjustmentModeOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 4697, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case custom<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Consumer calculates the edge insets and handles setting them\nvia the ``ListView\/customScrollViewInsets`` callback. Only use this option\nwhen managing the `ListView` directly.", - "key.doc.column" : 14, - "key.doc.comment" : "Consumer calculates the edge insets and handles setting them\nvia the ``ListView\/customScrollViewInsets`` callback. Only use this option\nwhen managing the `ListView` directly.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "custom<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO6customyA2EmF<\/USR><\/Declaration>Consumer calculates the edge insets and handles setting them via the ListView\/customScrollViewInsets<\/codeVoice> callback. Only use this option when managing the ListView<\/codeVoice> directly.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 111, - "key.doc.name" : "custom", - "key.doc.type" : "Other", - "key.doclength" : 203, - "key.docoffset" : 4486, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> custom<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 111, - "key.modulename" : "ListableUI", - "key.name" : "custom", - "key.namelength" : 6, - "key.nameoffset" : 4702, - "key.offset" : 4702, - "key.parsed_declaration" : "case custom", - "key.parsed_scope.end" : 111, - "key.parsed_scope.start" : 111, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.KeyboardAdjustmentMode.Type) -> Behavior.KeyboardAdjustmentMode", - "key.typeusr" : "$sy10ListableUI8BehaviorV22KeyboardAdjustmentModeOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO6customyA2EmF" - } - ] - } - ], - "key.typename" : "Behavior.KeyboardAdjustmentMode.Type", - "key.typeusr" : "$s10ListableUI8BehaviorV22KeyboardAdjustmentModeOmD", - "key.usr" : "s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ScrollsToTop : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4807 - } - ], - "key.bodylength" : 211, - "key.bodyoffset" : 4849, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to react when the user taps on the status bar of the application.", - "key.doc.column" : 17, - "key.doc.comment" : "How to react when the user taps on the status bar of the application.", - "key.doc.declaration" : "public enum ScrollsToTop : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "ScrollsToTop<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO<\/USR>public enum ScrollsToTop : Equatable<\/Declaration>How to react when the user taps on the status bar of the application.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 116, - "key.doc.name" : "ScrollsToTop", - "key.doc.type" : "Other", - "key.doclength" : 74, - "key.docoffset" : 4729, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 4834 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ScrollsToTop<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 247, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "ScrollsToTop", - "key.namelength" : 12, - "key.nameoffset" : 4819, - "key.offset" : 4814, - "key.parsed_declaration" : "public enum ScrollsToTop : Equatable", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 4931, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case disabled<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "No action is performed when the user taps on the status bar.", - "key.doc.column" : 14, - "key.doc.comment" : "No action is performed when the user taps on the status bar.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "disabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF<\/USR><\/Declaration>No action is performed when the user taps on the status bar.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 119, - "key.doc.name" : "disabled", - "key.doc.type" : "Other", - "key.doclength" : 65, - "key.docoffset" : 4858, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> disabled<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "disabled", - "key.namelength" : 8, - "key.nameoffset" : 4936, - "key.offset" : 4936, - "key.parsed_declaration" : "case disabled", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.ScrollsToTop.Type) -> Behavior.ScrollsToTop", - "key.typeusr" : "$sy10ListableUI8BehaviorV12ScrollsToTopOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 5043, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case enabled<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the user taps on the status bar, scroll to the top of the list.", - "key.doc.column" : 14, - "key.doc.comment" : "When the user taps on the status bar, scroll to the top of the list.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "enabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF<\/USR><\/Declaration>When the user taps on the status bar, scroll to the top of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 122, - "key.doc.name" : "enabled", - "key.doc.type" : "Other", - "key.doclength" : 73, - "key.docoffset" : 4962, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> enabled<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 122, - "key.modulename" : "ListableUI", - "key.name" : "enabled", - "key.namelength" : 7, - "key.nameoffset" : 5048, - "key.offset" : 5048, - "key.parsed_declaration" : "case enabled", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 122, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.ScrollsToTop.Type) -> Behavior.ScrollsToTop", - "key.typeusr" : "$sy10ListableUI8BehaviorV12ScrollsToTopOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF" - } - ] - } - ], - "key.typename" : "Behavior.ScrollsToTop.Type", - "key.typeusr" : "$s10ListableUI8BehaviorV12ScrollsToTopOmD", - "key.usr" : "s:10ListableUI8BehaviorV12ScrollsToTopO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum DecelerationRate<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5117 - } - ], - "key.bodylength" : 44, - "key.bodyoffset" : 5151, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The rate at which scrolling decelerates.", - "key.doc.column" : 17, - "key.doc.comment" : "The rate at which scrolling decelerates.", - "key.doc.declaration" : "public enum DecelerationRate", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "DecelerationRate<\/Name>s:10ListableUI8BehaviorV16DecelerationRateO<\/USR>public enum DecelerationRate<\/Declaration>The rate at which scrolling decelerates.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 127, - "key.doc.name" : "DecelerationRate", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 5068, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> DecelerationRate<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 72, - "key.line" : 127, - "key.modulename" : "ListableUI", - "key.name" : "DecelerationRate", - "key.namelength" : 16, - "key.nameoffset" : 5129, - "key.offset" : 5124, - "key.parsed_declaration" : "public enum DecelerationRate", - "key.parsed_scope.end" : 132, - "key.parsed_scope.start" : 127, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 5160, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case normal<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> normal<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 129, - "key.modulename" : "ListableUI", - "key.name" : "normal", - "key.namelength" : 6, - "key.nameoffset" : 5165, - "key.offset" : 5165, - "key.parsed_declaration" : "case normal", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 129, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.DecelerationRate.Type) -> Behavior.DecelerationRate", - "key.typeusr" : "$sy10ListableUI8BehaviorV16DecelerationRateOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV16DecelerationRateO6normalyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 5181, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fast<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fast<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 131, - "key.modulename" : "ListableUI", - "key.name" : "fast", - "key.namelength" : 4, - "key.nameoffset" : 5186, - "key.offset" : 5186, - "key.parsed_declaration" : "case fast", - "key.parsed_scope.end" : 131, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.DecelerationRate.Type) -> Behavior.DecelerationRate", - "key.typeusr" : "$sy10ListableUI8BehaviorV16DecelerationRateOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV16DecelerationRateO4fastyA2EmF" - } - ] - } - ], - "key.typename" : "Behavior.DecelerationRate.Type", - "key.typeusr" : "$s10ListableUI8BehaviorV16DecelerationRateOmD", - "key.usr" : "s:10ListableUI8BehaviorV16DecelerationRateO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum SelectionMode : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5316 - } - ], - "key.bodylength" : 630, - "key.bodyoffset" : 5359, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The selection mode of the list view, which controls how many items (if any) can be selected at once.", - "key.doc.column" : 17, - "key.doc.comment" : "The selection mode of the list view, which controls how many items (if any) can be selected at once.", - "key.doc.declaration" : "public enum SelectionMode : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "SelectionMode<\/Name>s:10ListableUI8BehaviorV13SelectionModeO<\/USR>public enum SelectionMode : Equatable<\/Declaration>The selection mode of the list view, which controls how many items (if any) can be selected at once.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 136, - "key.doc.name" : "SelectionMode", - "key.doc.type" : "Other", - "key.doclength" : 105, - "key.docoffset" : 5207, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 5344 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SelectionMode<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 667, - "key.line" : 136, - "key.modulename" : "ListableUI", - "key.name" : "SelectionMode", - "key.namelength" : 13, - "key.nameoffset" : 5328, - "key.offset" : 5323, - "key.parsed_declaration" : "public enum SelectionMode : Equatable", - "key.parsed_scope.end" : 149, - "key.parsed_scope.start" : 136, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 5425, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The list view does not allow any selections.", - "key.doc.column" : 14, - "key.doc.comment" : "The list view does not allow any selections.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF<\/USR><\/Declaration>The list view does not allow any selections.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 139, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 49, - "key.docoffset" : 5368, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 5430, - "key.offset" : 5430, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 139, - "key.parsed_scope.start" : 139, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.SelectionMode.Type) -> Behavior.SelectionMode", - "key.typeusr" : "$sy10ListableUI8BehaviorV13SelectionModeOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 5748, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case single<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The list view allows single selections. When an item is selected, the previously selected item (if any)\nwill be deselected by the list. If you provide multiple selected items in your content description,\nthe last selected item in the content will be selected.", - "key.doc.column" : 14, - "key.doc.comment" : "The list view allows single selections. When an item is selected, the previously selected item (if any)\nwill be deselected by the list. If you provide multiple selected items in your content description,\nthe last selected item in the content will be selected.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "single<\/Name>s:10ListableUI8BehaviorV13SelectionModeO6singleyA2EmF<\/USR><\/Declaration>The list view allows single selections. When an item is selected, the previously selected item (if any) will be deselected by the list. If you provide multiple selected items in your content description, the last selected item in the content will be selected.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 144, - "key.doc.name" : "single", - "key.doc.type" : "Other", - "key.doclength" : 288, - "key.docoffset" : 5452, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> single<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "single", - "key.namelength" : 6, - "key.nameoffset" : 5753, - "key.offset" : 5753, - "key.parsed_declaration" : "case single", - "key.parsed_scope.end" : 144, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.SelectionMode.Type) -> Behavior.SelectionMode", - "key.typeusr" : "$sy10ListableUI8BehaviorV13SelectionModeOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV13SelectionModeO6singleyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 5971, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case multiple<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The list view allows multiple selections. It is your responsibility to update the content\nof the list to select and deselect items based on the selection of other items.", - "key.doc.column" : 14, - "key.doc.comment" : "The list view allows multiple selections. It is your responsibility to update the content\nof the list to select and deselect items based on the selection of other items.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "multiple<\/Name>s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF<\/USR><\/Declaration>The list view allows multiple selections. It is your responsibility to update the content of the list to select and deselect items based on the selection of other items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 148, - "key.doc.name" : "multiple", - "key.doc.type" : "Other", - "key.doclength" : 186, - "key.docoffset" : 5777, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> multiple<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 148, - "key.modulename" : "ListableUI", - "key.name" : "multiple", - "key.namelength" : 8, - "key.nameoffset" : 5976, - "key.offset" : 5976, - "key.parsed_declaration" : "case multiple", - "key.parsed_scope.end" : 148, - "key.parsed_scope.start" : 148, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.SelectionMode.Type) -> Behavior.SelectionMode", - "key.typeusr" : "$sy10ListableUI8BehaviorV13SelectionModeOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF" - } - ] - } - ], - "key.typename" : "Behavior.SelectionMode.Type", - "key.typeusr" : "$s10ListableUI8BehaviorV13SelectionModeOmD", - "key.usr" : "s:10ListableUI8BehaviorV13SelectionModeO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Underflow : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6167 - } - ], - "key.bodylength" : 1569, - "key.bodyoffset" : 6208, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the content of the list takes up less space than the list itself (aka, an underflow), how\nthe layout of the list content should be adjusted.", - "key.doc.column" : 19, - "key.doc.comment" : "When the content of the list takes up less space than the list itself (aka, an underflow), how\nthe layout of the list content should be adjusted.", - "key.doc.declaration" : "public struct Underflow : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "Underflow<\/Name>s:10ListableUI8BehaviorV9UnderflowV<\/USR>public struct Underflow : Equatable<\/Declaration>When the content of the list takes up less space than the list itself (aka, an underflow), how the layout of the list content should be adjusted.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 154, - "key.doc.name" : "Underflow", - "key.doc.type" : "Class", - "key.doclength" : 158, - "key.docoffset" : 6005, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 6193 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Underflow<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1604, - "key.line" : 154, - "key.modulename" : "ListableUI", - "key.name" : "Underflow", - "key.namelength" : 9, - "key.nameoffset" : 6181, - "key.offset" : 6174, - "key.parsed_declaration" : "public struct Underflow : Equatable", - "key.parsed_scope.end" : 197, - "key.parsed_scope.start" : 154, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var alwaysBounce: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6339 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Is bouncing (aka rubber banding) enabled, even if the content is shorter than the scrolling axis of the list?", - "key.doc.column" : 20, - "key.doc.comment" : "Is bouncing (aka rubber banding) enabled, even if the content is shorter than the scrolling axis of the list?", - "key.doc.declaration" : "public var alwaysBounce: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "alwaysBounce<\/Name>s:10ListableUI8BehaviorV9UnderflowV12alwaysBounceSbvp<\/USR>public var alwaysBounce: Bool<\/Declaration>Is bouncing (aka rubber banding) enabled, even if the content is shorter than the scrolling axis of the list?<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 157, - "key.doc.name" : "alwaysBounce", - "key.doc.type" : "Other", - "key.doclength" : 114, - "key.docoffset" : 6217, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alwaysBounce<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 157, - "key.modulename" : "ListableUI", - "key.name" : "alwaysBounce", - "key.namelength" : 12, - "key.nameoffset" : 6350, - "key.offset" : 6346, - "key.parsed_declaration" : "public var alwaysBounce : Bool", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 157, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8BehaviorV9UnderflowV12alwaysBounceSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var alignment: Alignment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6442 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to align the content during underflow.", - "key.doc.column" : 20, - "key.doc.comment" : "How to align the content during underflow.", - "key.doc.declaration" : "public var alignment: Alignment", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "alignment<\/Name>s:10ListableUI8BehaviorV9UnderflowV9alignmentAE9AlignmentOvp<\/USR>public var alignment: Alignment<\/Declaration>How to align the content during underflow.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 160, - "key.doc.name" : "alignment", - "key.doc.type" : "Other", - "key.doclength" : 47, - "key.docoffset" : 6387, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alignment<\/decl.name>: Alignment<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 160, - "key.modulename" : "ListableUI", - "key.name" : "alignment", - "key.namelength" : 9, - "key.nameoffset" : 6453, - "key.offset" : 6449, - "key.parsed_declaration" : "public var alignment : Alignment", - "key.parsed_scope.end" : 160, - "key.parsed_scope.start" : 160, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior.Underflow.Alignment", - "key.typeusr" : "$s10ListableUI8BehaviorV9UnderflowV9AlignmentOD", - "key.usr" : "s:10ListableUI8BehaviorV9UnderflowV9alignmentAE9AlignmentOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(alwaysBounce: Bool<\/Type> = true, alignment: Alignment<\/Type> = .top)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6557 - } - ], - "key.bodylength" : 93, - "key.bodyoffset" : 6662, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new instance with the provided parameters.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new instance with the provided parameters.", - "key.doc.declaration" : "public init(alwaysBounce: Bool = true, alignment: Alignment = .top)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "init(alwaysBounce:alignment:)<\/Name>s:10ListableUI8BehaviorV9UnderflowV12alwaysBounce9alignmentAESb_AE9AlignmentOtcfc<\/USR>public init(alwaysBounce: Bool = true, alignment: Alignment = .top)<\/Declaration>Creates a new instance with the provided parameters.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 163, - "key.doc.name" : "init(alwaysBounce:alignment:)", - "key.doc.type" : "Function", - "key.doclength" : 57, - "key.docoffset" : 6492, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(alwaysBounce<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, alignment<\/decl.var.parameter.argument_label>: Alignment<\/ref.enum><\/decl.var.parameter.type> = .top<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 192, - "key.line" : 163, - "key.modulename" : "ListableUI", - "key.name" : "init(alwaysBounce:alignment:)", - "key.namelength" : 96, - "key.nameoffset" : 6564, - "key.offset" : 6564, - "key.parsed_declaration" : "public init(\n alwaysBounce : Bool = true,\n alignment : Alignment = .top\n)", - "key.parsed_scope.end" : 169, - "key.parsed_scope.start" : 163, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Behavior.Underflow.Type) -> (Bool, Behavior.Underflow.Alignment) -> Behavior.Underflow", - "key.typeusr" : "$s12alwaysBounce9alignment10ListableUI8BehaviorV9UnderflowVSb_AG9AlignmentOtcD", - "key.usr" : "s:10ListableUI8BehaviorV9UnderflowV12alwaysBounce9alignmentAESb_AE9AlignmentOtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum Behavior<\/Type>.Underflow<\/Type>.Alignment : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6916 - } - ], - "key.bodylength" : 812, - "key.bodyoffset" : 6959, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the content takes up less space than allotted to the list,\nhow should said content be aligned within that space.", - "key.doc.column" : 21, - "key.doc.comment" : "When the content takes up less space than allotted to the list,\nhow should said content be aligned within that space.", - "key.doc.declaration" : "public enum ListableUI.Behavior.Underflow.Alignment : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "Alignment<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO<\/USR>public enum ListableUI.Behavior.Underflow.Alignment : Equatable<\/Declaration>When the content takes up less space than allotted to the list, how should said content be aligned within that space.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 173, - "key.doc.name" : "Alignment", - "key.doc.type" : "Other", - "key.doclength" : 134, - "key.docoffset" : 6774, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 6940 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Behavior<\/ref.struct>.Underflow<\/ref.struct>.Alignment<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 849, - "key.line" : 173, - "key.modulename" : "ListableUI", - "key.name" : "Alignment", - "key.namelength" : 9, - "key.nameoffset" : 6928, - "key.offset" : 6923, - "key.parsed_declaration" : "public enum Alignment : Equatable", - "key.parsed_scope.end" : 196, - "key.parsed_scope.start" : 173, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 8, - "key.offset" : 7082, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case top<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content is aligned to the top of the list. This is the default and is generally standard.", - "key.doc.column" : 18, - "key.doc.comment" : "The content is aligned to the top of the list. This is the default and is generally standard.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO3topyA2GmF<\/USR><\/Declaration>The content is aligned to the top of the list. This is the default and is generally standard.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 176, - "key.doc.name" : "top", - "key.doc.type" : "Other", - "key.doclength" : 98, - "key.docoffset" : 6972, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> top<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 3, - "key.line" : 176, - "key.modulename" : "ListableUI", - "key.name" : "top", - "key.namelength" : 3, - "key.nameoffset" : 7087, - "key.offset" : 7087, - "key.parsed_declaration" : "case top", - "key.parsed_scope.end" : 176, - "key.parsed_scope.start" : 176, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.Underflow.Alignment.Type) -> Behavior.Underflow.Alignment", - "key.typeusr" : "$sy10ListableUI8BehaviorV9UnderflowV9AlignmentOAGmcD", - "key.usr" : "s:10ListableUI8BehaviorV9UnderflowV9AlignmentO3topyA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 7184, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case center<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content is centered within the available space.", - "key.doc.column" : 18, - "key.doc.comment" : "The content is centered within the available space.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "center<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6centeryA2GmF<\/USR><\/Declaration>The content is centered within the available space.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 179, - "key.doc.name" : "center", - "key.doc.type" : "Other", - "key.doclength" : 56, - "key.docoffset" : 7116, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> center<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 179, - "key.modulename" : "ListableUI", - "key.name" : "center", - "key.namelength" : 6, - "key.nameoffset" : 7189, - "key.offset" : 7189, - "key.parsed_declaration" : "case center", - "key.parsed_scope.end" : 179, - "key.parsed_scope.start" : 179, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.Underflow.Alignment.Type) -> Behavior.Underflow.Alignment", - "key.typeusr" : "$sy10ListableUI8BehaviorV9UnderflowV9AlignmentOAGmcD", - "key.usr" : "s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6centeryA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 7275, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case bottom<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content is aligned to the bottom.", - "key.doc.column" : 18, - "key.doc.comment" : "The content is aligned to the bottom.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6bottomyA2GmF<\/USR><\/Declaration>The content is aligned to the bottom.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 182, - "key.doc.name" : "bottom", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 7221, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> bottom<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 182, - "key.modulename" : "ListableUI", - "key.name" : "bottom", - "key.namelength" : 6, - "key.nameoffset" : 7280, - "key.offset" : 7280, - "key.parsed_declaration" : "case bottom", - "key.parsed_scope.end" : 182, - "key.parsed_scope.start" : 182, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.Underflow.Alignment.Type) -> Behavior.Underflow.Alignment", - "key.typeusr" : "$sy10ListableUI8BehaviorV9UnderflowV9AlignmentOAGmcD", - "key.usr" : "s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6bottomyA2GmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func offsetFor(contentHeight: CGFloat<\/Type>, viewHeight: CGFloat<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.bodylength" : 364, - "key.bodyoffset" : 7397, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> offsetFor<\/decl.name>(contentHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, viewHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 450, - "key.line" : 184, - "key.modulename" : "ListableUI", - "key.name" : "offsetFor(contentHeight:viewHeight:)", - "key.namelength" : 55, - "key.nameoffset" : 7317, - "key.offset" : 7312, - "key.parsed_declaration" : "func offsetFor(contentHeight : CGFloat, viewHeight: CGFloat) -> CGFloat", - "key.parsed_scope.end" : 195, - "key.parsed_scope.start" : 184, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Behavior.Underflow.Alignment) -> (CGFloat, CGFloat) -> CGFloat", - "key.typeusr" : "$s13contentHeight04viewB014CoreFoundation7CGFloatVAE_AEtcD", - "key.usr" : "s:10ListableUI8BehaviorV9UnderflowV9AlignmentO9offsetFor13contentHeight04viewI014CoreFoundation7CGFloatVAM_AMtF" - } - ], - "key.typename" : "Behavior.Underflow.Alignment.Type", - "key.typeusr" : "$s10ListableUI8BehaviorV9UnderflowV9AlignmentOmD", - "key.usr" : "s:10ListableUI8BehaviorV9UnderflowV9AlignmentO" - } - ], - "key.typename" : "Behavior.Underflow.Type", - "key.typeusr" : "$s10ListableUI8BehaviorV9UnderflowVmD", - "key.usr" : "s:10ListableUI8BehaviorV9UnderflowV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum VerticalLayoutGravity<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7967 - } - ], - "key.bodylength" : 379, - "key.bodyoffset" : 8002, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applicable when the `layoutDirection` is `vertical`. The gravity determines\nhow inserting new elements or changing the `contentInset` affects the scroll position.", - "key.doc.column" : 17, - "key.doc.comment" : "Applicable when the `layoutDirection` is `vertical`. The gravity determines\nhow inserting new elements or changing the `contentInset` affects the scroll position.", - "key.doc.declaration" : "public enum VerticalLayoutGravity", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "VerticalLayoutGravity<\/Name>s:10ListableUI8BehaviorV21VerticalLayoutGravityO<\/USR>public enum VerticalLayoutGravity<\/Declaration>Applicable when the layoutDirection<\/codeVoice> is vertical<\/codeVoice>. The gravity determines how inserting new elements or changing the contentInset<\/codeVoice> affects the scroll position.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 201, - "key.doc.name" : "VerticalLayoutGravity", - "key.doc.type" : "Other", - "key.doclength" : 175, - "key.docoffset" : 7788, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> VerticalLayoutGravity<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 408, - "key.line" : 201, - "key.modulename" : "ListableUI", - "key.name" : "VerticalLayoutGravity", - "key.namelength" : 21, - "key.nameoffset" : 7979, - "key.offset" : 7974, - "key.parsed_declaration" : "public enum VerticalLayoutGravity", - "key.parsed_scope.end" : 209, - "key.parsed_scope.start" : 201, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 8, - "key.offset" : 8158, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case top<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This is how a scroll view normally behaves.\nWhen a new element is inserted, the scroll distance from the top is unchanged.", - "key.doc.column" : 14, - "key.doc.comment" : "This is how a scroll view normally behaves.\nWhen a new element is inserted, the scroll distance from the top is unchanged.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI8BehaviorV21VerticalLayoutGravityO3topyA2EmF<\/USR><\/Declaration>This is how a scroll view normally behaves. When a new element is inserted, the scroll distance from the top is unchanged.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 204, - "key.doc.name" : "top", - "key.doc.type" : "Other", - "key.doclength" : 139, - "key.docoffset" : 8011, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> top<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 3, - "key.line" : 204, - "key.modulename" : "ListableUI", - "key.name" : "top", - "key.namelength" : 3, - "key.nameoffset" : 8163, - "key.offset" : 8163, - "key.parsed_declaration" : "case top", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 204, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.VerticalLayoutGravity.Type) -> Behavior.VerticalLayoutGravity", - "key.typeusr" : "$sy10ListableUI8BehaviorV21VerticalLayoutGravityOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV21VerticalLayoutGravityO3topyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 8365, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case bottom<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Intended for cases where the default scroll position is scrolled all the way down.\nWhen a new element is inserted, the scroll distance from the bottom is unchanged.", - "key.doc.column" : 14, - "key.doc.comment" : "Intended for cases where the default scroll position is scrolled all the way down.\nWhen a new element is inserted, the scroll distance from the bottom is unchanged.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI8BehaviorV21VerticalLayoutGravityO6bottomyA2EmF<\/USR><\/Declaration>Intended for cases where the default scroll position is scrolled all the way down. When a new element is inserted, the scroll distance from the bottom is unchanged.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 208, - "key.doc.name" : "bottom", - "key.doc.type" : "Other", - "key.doclength" : 181, - "key.docoffset" : 8176, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> bottom<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 208, - "key.modulename" : "ListableUI", - "key.name" : "bottom", - "key.namelength" : 6, - "key.nameoffset" : 8370, - "key.offset" : 8370, - "key.parsed_declaration" : "case bottom", - "key.parsed_scope.end" : 208, - "key.parsed_scope.start" : 208, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.VerticalLayoutGravity.Type) -> Behavior.VerticalLayoutGravity", - "key.typeusr" : "$sy10ListableUI8BehaviorV21VerticalLayoutGravityOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV21VerticalLayoutGravityO6bottomyA2EmF" - } - ] - } - ], - "key.typename" : "Behavior.VerticalLayoutGravity.Type", - "key.typeusr" : "$s10ListableUI8BehaviorV21VerticalLayoutGravityOmD", - "key.usr" : "s:10ListableUI8BehaviorV21VerticalLayoutGravityO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum FocusConfiguration : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8456 - } - ], - "key.bodylength" : 1521, - "key.bodyoffset" : 8499, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Configuration for keyboard focus behavior in the list view.", - "key.doc.column" : 17, - "key.doc.comment" : "Configuration for keyboard focus behavior in the list view.", - "key.doc.declaration" : "public enum FocusConfiguration : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "FocusConfiguration<\/Name>s:10ListableUI8BehaviorV18FocusConfigurationO<\/USR>public enum FocusConfiguration : Equatable<\/Declaration>Configuration for keyboard focus behavior in the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 212, - "key.doc.name" : "FocusConfiguration", - "key.doc.type" : "Other", - "key.doclength" : 64, - "key.docoffset" : 8388, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 8488 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> FocusConfiguration<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1558, - "key.line" : 212, - "key.modulename" : "ListableUI", - "key.name" : "FocusConfiguration", - "key.namelength" : 18, - "key.nameoffset" : 8468, - "key.offset" : 8463, - "key.parsed_declaration" : "public enum FocusConfiguration: Equatable", - "key.parsed_scope.end" : 253, - "key.parsed_scope.start" : 212, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 8572, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "No focus support - keyboard navigation is disabled.", - "key.doc.column" : 14, - "key.doc.comment" : "No focus support - keyboard navigation is disabled.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV18FocusConfigurationO4noneyA2EmF<\/USR><\/Declaration>No focus support - keyboard navigation is disabled.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 214, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 56, - "key.docoffset" : 8508, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 214, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 8577, - "key.offset" : 8577, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 214, - "key.parsed_scope.start" : 214, - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.FocusConfiguration.Type) -> Behavior.FocusConfiguration", - "key.typeusr" : "$sy10ListableUI8BehaviorV18FocusConfigurationOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV18FocusConfigurationO4noneyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 8774, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case allowsFocus<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Basic focus support - allows keyboard navigation but selection doesn't follow focus.\nThe focus ring is always shown to provide visual feedback for navigation.", - "key.doc.column" : 14, - "key.doc.comment" : "Basic focus support - allows keyboard navigation but selection doesn't follow focus.\nThe focus ring is always shown to provide visual feedback for navigation.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "allowsFocus<\/Name>s:10ListableUI8BehaviorV18FocusConfigurationO06allowsD0yA2EmF<\/USR><\/Declaration>Basic focus support - allows keyboard navigation but selection doesn’t follow focus. The focus ring is always shown to provide visual feedback for navigation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 218, - "key.doc.name" : "allowsFocus", - "key.doc.type" : "Other", - "key.doclength" : 175, - "key.docoffset" : 8591, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> allowsFocus<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 218, - "key.modulename" : "ListableUI", - "key.name" : "allowsFocus", - "key.namelength" : 11, - "key.nameoffset" : 8779, - "key.offset" : 8779, - "key.parsed_declaration" : "case allowsFocus", - "key.parsed_scope.end" : 218, - "key.parsed_scope.start" : 218, - "key.related_decls" : [ - { - "key.annotated_decl" : "allowsFocus<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "(Behavior.FocusConfiguration.Type) -> Behavior.FocusConfiguration", - "key.typeusr" : "$sy10ListableUI8BehaviorV18FocusConfigurationOAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV18FocusConfigurationO06allowsD0yA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 54, - "key.offset" : 8994, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case selectionFollowsFocus(showFocusRing: Bool<\/Type> = true)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Focus with selection following - keyboard navigation enabled and selection follows focus.\n- Parameter showFocusRing: Whether to show the focus ring around focused items.", - "key.doc.column" : 14, - "key.doc.comment" : "Focus with selection following - keyboard navigation enabled and selection follows focus.\n- Parameter showFocusRing: Whether to show the focus ring around focused items.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "selectionFollowsFocus(showFocusRing:)<\/Name>s:10ListableUI8BehaviorV18FocusConfigurationO016selectionFollowsD0yAESb_tcAEmF<\/USR><\/Declaration>Focus with selection following - keyboard navigation enabled and selection follows focus.<\/Para><\/Abstract>showFocusRing<\/Name>in<\/Direction>Whether to show the focus ring around focused items.<\/Para><\/Discussion><\/Parameter><\/Parameters><\/CommentParts><\/Other>", - "key.doc.line" : 222, - "key.doc.name" : "selectionFollowsFocus(showFocusRing:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "Whether to show the focus ring around focused items." - } - ], - "name" : "showFocusRing" - } - ], - "key.doc.type" : "Other", - "key.doclength" : 186, - "key.docoffset" : 8800, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> selectionFollowsFocus<\/decl.name>(showFocusRing<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 49, - "key.line" : 222, - "key.modulename" : "ListableUI", - "key.name" : "selectionFollowsFocus(showFocusRing:)", - "key.namelength" : 49, - "key.nameoffset" : 8999, - "key.offset" : 8999, - "key.parsed_declaration" : "case selectionFollowsFocus(showFocusRing: Bool = true)", - "key.parsed_scope.end" : 222, - "key.parsed_scope.start" : 222, - "key.related_decls" : [ - { - "key.annotated_decl" : "selectionFollowsFocus<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Behavior.FocusConfiguration.Type) -> (Bool) -> Behavior.FocusConfiguration", - "key.typeusr" : "$sy10ListableUI8BehaviorV18FocusConfigurationOSb_tcAEmcD", - "key.usr" : "s:10ListableUI8BehaviorV18FocusConfigurationO016selectionFollowsD0yAESb_tcAEmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var allowsFocus: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9127 - } - ], - "key.bodylength" : 153, - "key.bodyoffset" : 9157, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Whether items can receive focus for keyboard navigation.", - "key.doc.column" : 20, - "key.doc.comment" : "Whether items can receive focus for keyboard navigation.", - "key.doc.declaration" : "public var allowsFocus: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "allowsFocus<\/Name>s:10ListableUI8BehaviorV18FocusConfigurationO06allowsD0Sbvp<\/USR>public var allowsFocus: Bool { get }<\/Declaration>Whether items can receive focus for keyboard navigation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 225, - "key.doc.name" : "allowsFocus", - "key.doc.type" : "Other", - "key.doclength" : 61, - "key.docoffset" : 9058, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsFocus<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 177, - "key.line" : 225, - "key.modulename" : "ListableUI", - "key.name" : "allowsFocus", - "key.namelength" : 11, - "key.nameoffset" : 9138, - "key.offset" : 9134, - "key.parsed_declaration" : "public var allowsFocus: Bool", - "key.parsed_scope.end" : 230, - "key.parsed_scope.start" : 225, - "key.related_decls" : [ - { - "key.annotated_decl" : "allowsFocus<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8BehaviorV18FocusConfigurationO06allowsD0Sbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var selectionFollowsFocus: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9388 - } - ], - "key.bodylength" : 153, - "key.bodyoffset" : 9428, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Whether selection automatically follows focus changes.", - "key.doc.column" : 20, - "key.doc.comment" : "Whether selection automatically follows focus changes.", - "key.doc.declaration" : "public var selectionFollowsFocus: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "selectionFollowsFocus<\/Name>s:10ListableUI8BehaviorV18FocusConfigurationO016selectionFollowsD0Sbvp<\/USR>public var selectionFollowsFocus: Bool { get }<\/Declaration>Whether selection automatically follows focus changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 233, - "key.doc.name" : "selectionFollowsFocus", - "key.doc.type" : "Other", - "key.doclength" : 59, - "key.docoffset" : 9321, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectionFollowsFocus<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 187, - "key.line" : 233, - "key.modulename" : "ListableUI", - "key.name" : "selectionFollowsFocus", - "key.namelength" : 21, - "key.nameoffset" : 9399, - "key.offset" : 9395, - "key.parsed_declaration" : "public var selectionFollowsFocus: Bool", - "key.parsed_scope.end" : 238, - "key.parsed_scope.start" : 233, - "key.related_decls" : [ - { - "key.annotated_decl" : "selectionFollowsFocus(showFocusRing:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8BehaviorV18FocusConfigurationO016selectionFollowsD0Sbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var showFocusRing: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9653 - } - ], - "key.bodylength" : 327, - "key.bodyoffset" : 9685, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Whether to show the focus ring on focused items.", - "key.doc.column" : 20, - "key.doc.comment" : "Whether to show the focus ring on focused items.", - "key.doc.declaration" : "public var showFocusRing: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.doc.full_as_xml" : "showFocusRing<\/Name>s:10ListableUI8BehaviorV18FocusConfigurationO04showD4RingSbvp<\/USR>public var showFocusRing: Bool { get }<\/Declaration>Whether to show the focus ring on focused items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 241, - "key.doc.name" : "showFocusRing", - "key.doc.type" : "Other", - "key.doclength" : 53, - "key.docoffset" : 9592, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> showFocusRing<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 353, - "key.line" : 241, - "key.modulename" : "ListableUI", - "key.name" : "showFocusRing", - "key.namelength" : 13, - "key.nameoffset" : 9664, - "key.offset" : 9660, - "key.parsed_declaration" : "public var showFocusRing: Bool", - "key.parsed_scope.end" : 250, - "key.parsed_scope.start" : 241, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8BehaviorV18FocusConfigurationO04showD4RingSbvp" - } - ], - "key.typename" : "Behavior.FocusConfiguration.Type", - "key.typeusr" : "$s10ListableUI8BehaviorV18FocusConfigurationOmD", - "key.usr" : "s:10ListableUI8BehaviorV18FocusConfigurationO" - } - ], - "key.typename" : "Behavior.Type", - "key.typeusr" : "$s10ListableUI8BehaviorVmD", - "key.usr" : "s:10ListableUI8BehaviorV" - }, - { - "key.annotated_decl" : "struct DecelerationRate : _ObjectiveCBridgeable<\/Type>, Hashable<\/Type>, Equatable<\/Type>, _SwiftNewtypeWrapper<\/Type>, RawRepresentable<\/Type>, @unchecked Sendable<\/Type><\/Declaration>", - "key.bodylength" : 312, - "key.bodyoffset" : 10070, - "key.column" : 17, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> DecelerationRate<\/decl.name> : _ObjectiveCBridgeable<\/ref.protocol>, Hashable<\/ref.protocol>, Equatable<\/ref.protocol>, _SwiftNewtypeWrapper<\/ref.protocol>, RawRepresentable<\/ref.protocol>, @unchecked Sendable<\/ref.protocol><\/decl.struct>", - "key.is_dynamic" : true, - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 358, - "key.line" : 44, - "key.modulename" : "UIKit.UIScrollView", - "key.name" : "UICollectionView.DecelerationRate", - "key.namelength" : 33, - "key.nameoffset" : 10035, - "key.offset" : 10025, - "key.parsed_declaration" : "extension UICollectionView.DecelerationRate", - "key.parsed_scope.end" : 268, - "key.parsed_scope.start" : 256, - "key.receivers" : [ - { - "key.usr" : "c:objc(cs)UIScrollView" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "init(behaviorValue: Behavior<\/Type>.DecelerationRate<\/Type>)<\/Declaration>", - "key.bodylength" : 252, - "key.bodyoffset" : 10128, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Behavior.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(behaviorValue<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct>.DecelerationRate<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 305, - "key.line" : 259, - "key.modulename" : "ListableUI", - "key.name" : "init(behaviorValue:)", - "key.namelength" : 46, - "key.nameoffset" : 10076, - "key.offset" : 10076, - "key.parsed_declaration" : "init(behaviorValue: Behavior.DecelerationRate)", - "key.parsed_scope.end" : 267, - "key.parsed_scope.start" : 259, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(rawValue:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UIScrollView.DecelerationRate.Type) -> (Behavior.DecelerationRate) -> UIScrollView.DecelerationRate", - "key.typeusr" : "$s13behaviorValueSo28UIScrollViewDecelerationRatea10ListableUI8BehaviorV0eF0O_tcD", - "key.usr" : "s:So28UIScrollViewDecelerationRatea10ListableUIE13behaviorValueAbC8BehaviorV0cD0O_tcfc" - } - ], - "key.typename" : "UIScrollView.DecelerationRate.Type", - "key.typeusr" : "$sSo28UIScrollViewDecelerationRateamD", - "key.usr" : "c:@T@UIScrollViewDecelerationRate" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Bundle+ListableUI.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 262, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private final class MarkerClass<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 134 - }, - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 126 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 159, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Bundle+ListableUI.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> MarkerClass<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 20, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "MarkerClass", - "key.namelength" : 11, - "key.nameoffset" : 146, - "key.offset" : 140, - "key.parsed_declaration" : "private final class MarkerClass", - "key.parsed_scope.end" : 11, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.typename" : "MarkerClass.Type", - "key.typeusr" : "$s10ListableUI11MarkerClass33_2B6A494FDB421025EC5C2B3B4F1A7BE6LLCmD", - "key.usr" : "s:10ListableUI11MarkerClass33_2B6A494FDB421025EC5C2B3B4F1A7BE6LLC" - }, - { - "key.annotated_decl" : "@_nonSendable(_assumed) class Bundle : NSObject<\/Type>, @unchecked Sendable<\/Type><\/Declaration>", - "key.bodylength" : 80, - "key.bodyoffset" : 180, - "key.column" : 12, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/Foundation.framework\/Headers\/NSBundle.h", - "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> Bundle<\/decl.name> : NSObject<\/ref.class>, @unchecked Sendable<\/ref.protocol><\/decl.class>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 99, - "key.line" : 20, - "key.modulename" : "Foundation.NSBundle", - "key.name" : "Bundle", - "key.namelength" : 6, - "key.nameoffset" : 172, - "key.offset" : 162, - "key.parsed_declaration" : "extension Bundle", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static let listableUIResources: Bundle<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The resource bundle", - "key.doc.column" : 16, - "key.doc.comment" : "The resource bundle", - "key.doc.declaration" : "static let listableUIResources: Bundle", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Bundle+ListableUI.swift", - "key.doc.full_as_xml" : "listableUIResources<\/Name>s:So8NSBundleC10ListableUIE19listableUIResourcesABvpZ<\/USR>static let listableUIResources: Bundle<\/Declaration>The resource bundle<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 15, - "key.doc.name" : "listableUIResources", - "key.doc.type" : "Other", - "key.doclength" : 24, - "key.docoffset" : 185, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Bundle+ListableUI.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> listableUIResources<\/decl.name>: Bundle<\/ref.class><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 46, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "listableUIResources", - "key.namelength" : 19, - "key.nameoffset" : 224, - "key.offset" : 213, - "key.parsed_declaration" : "static let listableUIResources = Bundle.module", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "Bundle", - "key.typeusr" : "$sSo8NSBundleCD", - "key.usr" : "s:So8NSBundleC10ListableUIE19listableUIResourcesABvpZ" - } - ], - "key.typename" : "Bundle.Type", - "key.typeusr" : "$sSo8NSBundleCmD", - "key.usr" : "c:objc(cs)NSBundle" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/CacheClearer.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 801, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@_spi(CacheManagement) public struct CacheClearer<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 42 - }, - { - "key.attribute" : "source.decl.attribute._spi", - "key.length" : 22, - "key.offset" : 19 - } - ], - "key.bodylength" : 729, - "key.bodyoffset" : 70, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/CacheClearer.swift", - "key.fully_annotated_decl" : "@_spi<\/syntaxtype.attribute.name>(CacheManagement) public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> CacheClearer<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 751, - "key.line" : 4, - "key.modulename" : "ListableUI", - "key.name" : "CacheClearer", - "key.namelength" : 12, - "key.nameoffset" : 56, - "key.offset" : 49, - "key.parsed_declaration" : "public struct CacheClearer", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 4, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@_spi(CacheManagement) public static func clearStaticCaches()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 618 - }, - { - "key.attribute" : "source.decl.attribute._spi", - "key.length" : 22, - "key.offset" : 591 - } - ], - "key.bodylength" : 139, - "key.bodyoffset" : 658, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Clears all static caches that are in use.\n\nListable leverages static caching to improve performance however there are situations in which\nthis can cause object lifetimes to be extended unexpectedly, especially in cases where cached\nviews reference other objects.\n\n- WARNING: Clearing these caches can have global performance implications. This method\nshould be invoked sparingley and only after other workarounds to manage object lifetimes have failed.", - "key.doc.column" : 24, - "key.doc.comment" : "Clears all static caches that are in use.\n\nListable leverages static caching to improve performance however there are situations in which\nthis can cause object lifetimes to be extended unexpectedly, especially in cases where cached\nviews reference other objects.\n\n- WARNING: Clearing these caches can have global performance implications. This method\nshould be invoked sparingley and only after other workarounds to manage object lifetimes have failed.", - "key.doc.declaration" : "public static func clearStaticCaches()", - "key.doc.discussion" : [ - { - "Para" : "Listable leverages static caching to improve performance however there are situations in which this can cause object lifetimes to be extended unexpectedly, especially in cases where cached views reference other objects." - }, - { - "Warning" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/CacheClearer.swift", - "key.doc.full_as_xml" : "clearStaticCaches()<\/Name>s:10ListableUI12CacheClearerV17clearStaticCachesyyFZ<\/USR>public static func clearStaticCaches()<\/Declaration>Clears all static caches that are in use.<\/Para><\/Abstract>Listable leverages static caching to improve performance however there are situations in which this can cause object lifetimes to be extended unexpectedly, especially in cases where cached views reference other objects.<\/Para>Clearing these caches can have global performance implications. This method should be invoked sparingley and only after other workarounds to manage object lifetimes have failed.<\/Para><\/Warning><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 15, - "key.doc.name" : "clearStaticCaches()", - "key.doc.type" : "Function", - "key.doclength" : 511, - "key.docoffset" : 76, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/CacheClearer.swift", - "key.fully_annotated_decl" : "@_spi<\/syntaxtype.attribute.name>(CacheManagement) public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> clearStaticCaches<\/decl.name>()<\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 173, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "clearStaticCaches()", - "key.namelength" : 19, - "key.nameoffset" : 637, - "key.offset" : 625, - "key.parsed_declaration" : "public static func clearStaticCaches()", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CacheClearer.Type) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI12CacheClearerV17clearStaticCachesyyFZ" - } - ], - "key.typename" : "CacheClearer.Type", - "key.typeusr" : "$s10ListableUI12CacheClearerVmD", - "key.usr" : "s:10ListableUI12CacheClearerV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Color.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 668, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@propertyWrapper public struct Color : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 273 - }, - { - "key.attribute" : "source.decl.attribute.propertyWrapper", - "key.length" : 16, - "key.offset" : 256 - } - ], - "key.bodylength" : 360, - "key.bodyoffset" : 306, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A color wrapper which provides equatability for\ndynamic `UIColor` instances, by comparing their resolved\nvalue to the current `UITraitCollection`.", - "key.doc.column" : 15, - "key.doc.comment" : "A color wrapper which provides equatability for\ndynamic `UIColor` instances, by comparing their resolved\nvalue to the current `UITraitCollection`.", - "key.doc.declaration" : "@propertyWrapper public struct Color : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Color.swift", - "key.doc.full_as_xml" : "Color<\/Name>s:10ListableUI5ColorV<\/USR>@propertyWrapper public struct Color : Equatable<\/Declaration>A color wrapper which provides equatability for dynamic UIColor<\/codeVoice> instances, by comparing their resolved value to the current UITraitCollection<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 15, - "key.doc.name" : "Color", - "key.doc.type" : "Class", - "key.doclength" : 159, - "key.docoffset" : 97, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 295 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Color.swift", - "key.fully_annotated_decl" : "@propertyWrapper<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Color<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 387, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "Color", - "key.namelength" : 5, - "key.nameoffset" : 287, - "key.offset" : 280, - "key.parsed_declaration" : "public struct Color : Equatable", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var wrappedValue: UIColor<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 352 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The underlying color value.", - "key.doc.column" : 16, - "key.doc.comment" : "The underlying color value.", - "key.doc.declaration" : "public var wrappedValue: UIColor", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Color.swift", - "key.doc.full_as_xml" : "wrappedValue<\/Name>s:10ListableUI5ColorV12wrappedValueSo7UIColorCvp<\/USR>public var wrappedValue: UIColor<\/Declaration>The underlying color value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 18, - "key.doc.name" : "wrappedValue", - "key.doc.type" : "Other", - "key.doclength" : 32, - "key.docoffset" : 316, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Color.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> wrappedValue<\/decl.name>: UIColor<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "wrappedValue", - "key.namelength" : 12, - "key.nameoffset" : 363, - "key.offset" : 359, - "key.parsed_declaration" : "public var wrappedValue : UIColor", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIColor", - "key.typeusr" : "$sSo7UIColorCD", - "key.usr" : "s:10ListableUI5ColorV12wrappedValueSo7UIColorCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ wrappedValue: UIColor<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 395 - } - ], - "key.bodylength" : 46, - "key.bodyoffset" : 434, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Color.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> wrappedValue<\/decl.var.parameter.name>: UIColor<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 79, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 30, - "key.nameoffset" : 402, - "key.offset" : 402, - "key.parsed_declaration" : "public init(_ wrappedValue : UIColor)", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Color.Type) -> (UIColor) -> Color", - "key.typeusr" : "$sy10ListableUI5ColorVSo7UIColorCcD", - "key.usr" : "s:10ListableUI5ColorVyACSo7UIColorCcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func == (lhs: `Self`, rhs: `Self`) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 491 - } - ], - "key.bodylength" : 117, - "key.bodyoffset" : 547, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns a Boolean value indicating whether two values are equal.\n\nEquality is the inverse of inequality. For any values `a` and `b`,\n`a == b` implies that `a != b` is `false`.\n\n- Parameters:\n - lhs: A value to compare.\n - rhs: Another value to compare.", - "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "Equality is the inverse of inequality. For any values `a` and `b`, `a == b` implies that `a != b` is `false`." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "==(_:_:)<\/Name>s:SQ2eeoiySbx_xtFZ<\/USR>static func == (lhs: Self, rhs: Self) -> Bool<\/Declaration>Returns a Boolean value indicating whether two values are equal.<\/Para><\/Abstract>lhs<\/Name>in<\/Direction>A value to compare.<\/Para><\/Discussion><\/Parameter>rhs<\/Name>in<\/Direction>Another value to compare.<\/Para><\/Discussion><\/Parameter><\/Parameters>Equality is the inverse of inequality. For any values a<\/codeVoice> and b<\/codeVoice>, a == b<\/codeVoice> implies that a != b<\/codeVoice> is false<\/codeVoice>.<\/Para>This documentation comment was inherited from Equatable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "==(_:_:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A value to compare." - } - ], - "name" : "lhs" - }, - { - "discussion" : [ - { - "Para" : "Another value to compare." - } - ], - "name" : "rhs" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Color.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 167, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "==(_:_:)", - "key.namelength" : 27, - "key.nameoffset" : 510, - "key.offset" : 498, - "key.overrides" : [ - { - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.parsed_declaration" : "public static func == (lhs : Self, rhs : Self) -> Bool", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Color.Type) -> (Color, Color) -> Bool", - "key.typeusr" : "$sySb10ListableUI5ColorV_ACtcD", - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.typename" : "Color.Type", - "key.typeusr" : "$s10ListableUI5ColorVmD", - "key.usr" : "s:10ListableUI5ColorV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 11482, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Content<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 100 - } - ], - "key.bodylength" : 10889, - "key.bodyoffset" : 123, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Content<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 10906, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 114, - "key.offset" : 107, - "key.parsed_declaration" : "public struct Content", - "key.parsed_scope.end" : 332, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 18, - "key.name" : "MARK: Content Data", - "key.offset" : 138 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var identifier: AnyHashable<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 370 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The identifier for the content, defaults to nil.\nYou don't need to set this value – but if you do, and change it to another value,\nthe list will reload without animation.", - "key.doc.column" : 16, - "key.doc.comment" : "The identifier for the content, defaults to nil.\nYou don't need to set this value – but if you do, and change it to another value,\nthe list will reload without animation.", - "key.doc.declaration" : "public var identifier: AnyHashable?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI7ContentV10identifiers11AnyHashableVSgvp<\/USR>public var identifier: AnyHashable?<\/Declaration>The identifier for the content, defaults to nil. You don’t need to set this value – but if you do, and change it to another value, the list will reload without animation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "identifier", - "key.doc.type" : "Other", - "key.doclength" : 193, - "key.docoffset" : 173, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifier<\/decl.name>: AnyHashable<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 381, - "key.offset" : 377, - "key.parsed_declaration" : "public var identifier : AnyHashable?", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyHashable?", - "key.typeusr" : "$ss11AnyHashableVSgD", - "key.usr" : "s:10ListableUI7ContentV10identifiers11AnyHashableVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var context: ContentContext<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 708 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The context for the entire list.\nIf this value changes, all measurements will be discarded and re-measured.\n\nUsing the `ContentContext` can simplify code: If your screen's traits\nchange, pass them in here vs requiring every item to check the screen traits.", - "key.doc.column" : 16, - "key.doc.comment" : "The context for the entire list.\nIf this value changes, all measurements will be discarded and re-measured.\n\nUsing the `ContentContext` can simplify code: If your screen's traits\nchange, pass them in here vs requiring every item to check the screen traits.", - "key.doc.declaration" : "public var context: ContentContext?", - "key.doc.discussion" : [ - { - "Para" : "Using the `ContentContext` can simplify code: If your screen’s traits change, pass them in here vs requiring every item to check the screen traits." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "context<\/Name>s:10ListableUI7ContentV7contextAA0C7ContextVSgvp<\/USR>public var context: ContentContext?<\/Declaration>The context for the entire list. If this value changes, all measurements will be discarded and re-measured.<\/Para><\/Abstract>Using the ContentContext<\/codeVoice> can simplify code: If your screen’s traits change, pass them in here vs requiring every item to check the screen traits.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 27, - "key.doc.name" : "context", - "key.doc.type" : "Other", - "key.doclength" : 292, - "key.docoffset" : 412, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> context<\/decl.name>: ContentContext<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "context", - "key.namelength" : 7, - "key.nameoffset" : 719, - "key.offset" : 715, - "key.parsed_declaration" : "public var context : ContentContext?", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ContentContext?", - "key.typeusr" : "$s10ListableUI14ContentContextVSgD", - "key.usr" : "s:10ListableUI7ContentV7contextAA0C7ContextVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var refreshControl: RefreshControl<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 817 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The refresh control, if any, associated with the list.", - "key.doc.column" : 16, - "key.doc.comment" : "The refresh control, if any, associated with the list.", - "key.doc.declaration" : "public var refreshControl: RefreshControl?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "refreshControl<\/Name>s:10ListableUI7ContentV14refreshControlAA07RefreshE0VSgvp<\/USR>public var refreshControl: RefreshControl?<\/Declaration>The refresh control, if any, associated with the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 30, - "key.doc.name" : "refreshControl", - "key.doc.type" : "Other", - "key.doclength" : 59, - "key.docoffset" : 754, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> refreshControl<\/decl.name>: RefreshControl<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "refreshControl", - "key.namelength" : 14, - "key.nameoffset" : 828, - "key.offset" : 824, - "key.parsed_declaration" : "public var refreshControl : RefreshControl?", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "RefreshControl?", - "key.typeusr" : "$s10ListableUI14RefreshControlVSgD", - "key.usr" : "s:10ListableUI7ContentV14refreshControlAA07RefreshE0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var containerHeader: AnyHeaderFooterConvertible<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 957 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A header provided by the container of the list, eg a nav-style \"large header\".", - "key.doc.column" : 16, - "key.doc.comment" : "A header provided by the container of the list, eg a nav-style \"large header\".", - "key.doc.declaration" : "public var containerHeader: AnyHeaderFooterConvertible?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "containerHeader<\/Name>s:10ListableUI7ContentV15containerHeaderAA03AnyE17FooterConvertible_pSgvp<\/USR>public var containerHeader: AnyHeaderFooterConvertible?<\/Declaration>A header provided by the container of the list, eg a nav-style “large header”.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 33, - "key.doc.name" : "containerHeader", - "key.doc.type" : "Other", - "key.doclength" : 83, - "key.docoffset" : 870, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> containerHeader<\/decl.name>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 49, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "containerHeader", - "key.namelength" : 15, - "key.nameoffset" : 968, - "key.offset" : 964, - "key.parsed_declaration" : "public var containerHeader : AnyHeaderFooterConvertible?", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(any AnyHeaderFooterConvertible)?", - "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", - "key.usr" : "s:10ListableUI7ContentV15containerHeaderAA03AnyE17FooterConvertible_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var header: AnyHeaderFooterConvertible<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1100 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The header for the list, usually displayed before all other content.", - "key.doc.column" : 16, - "key.doc.comment" : "The header for the list, usually displayed before all other content.", - "key.doc.declaration" : "public var header: AnyHeaderFooterConvertible?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "header<\/Name>s:10ListableUI7ContentV6headerAA26AnyHeaderFooterConvertible_pSgvp<\/USR>public var header: AnyHeaderFooterConvertible?<\/Declaration>The header for the list, usually displayed before all other content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 36, - "key.doc.name" : "header", - "key.doc.type" : "Other", - "key.doclength" : 73, - "key.docoffset" : 1023, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> header<\/decl.name>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.namelength" : 6, - "key.nameoffset" : 1111, - "key.offset" : 1107, - "key.parsed_declaration" : "public var header : AnyHeaderFooterConvertible?", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(any AnyHeaderFooterConvertible)?", - "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", - "key.usr" : "s:10ListableUI7ContentV6headerAA26AnyHeaderFooterConvertible_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var footer: AnyHeaderFooterConvertible<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1233 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The footer for the list, usually displayed after all other content.", - "key.doc.column" : 16, - "key.doc.comment" : "The footer for the list, usually displayed after all other content.", - "key.doc.declaration" : "public var footer: AnyHeaderFooterConvertible?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "footer<\/Name>s:10ListableUI7ContentV6footerAA26AnyHeaderFooterConvertible_pSgvp<\/USR>public var footer: AnyHeaderFooterConvertible?<\/Declaration>The footer for the list, usually displayed after all other content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 39, - "key.doc.name" : "footer", - "key.doc.type" : "Other", - "key.doclength" : 72, - "key.docoffset" : 1157, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> footer<\/decl.name>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "footer", - "key.namelength" : 6, - "key.nameoffset" : 1244, - "key.offset" : 1240, - "key.parsed_declaration" : "public var footer : AnyHeaderFooterConvertible?", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(any AnyHeaderFooterConvertible)?", - "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", - "key.usr" : "s:10ListableUI7ContentV6footerAA26AnyHeaderFooterConvertible_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var overscrollFooter: AnyHeaderFooterConvertible<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1490 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame,\nso it is only visible if the user manually scrolls the list up to make it visible.", - "key.doc.column" : 16, - "key.doc.comment" : "The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame,\nso it is only visible if the user manually scrolls the list up to make it visible.", - "key.doc.declaration" : "public var overscrollFooter: AnyHeaderFooterConvertible?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "overscrollFooter<\/Name>s:10ListableUI7ContentV16overscrollFooterAA09AnyHeaderE11Convertible_pSgvp<\/USR>public var overscrollFooter: AnyHeaderFooterConvertible?<\/Declaration>The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame, so it is only visible if the user manually scrolls the list up to make it visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 43, - "key.doc.name" : "overscrollFooter", - "key.doc.type" : "Other", - "key.doclength" : 196, - "key.docoffset" : 1290, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "overscrollFooter", - "key.namelength" : 16, - "key.nameoffset" : 1501, - "key.offset" : 1497, - "key.parsed_declaration" : "public var overscrollFooter : AnyHeaderFooterConvertible?", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(any AnyHeaderFooterConvertible)?", - "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", - "key.usr" : "s:10ListableUI7ContentV16overscrollFooterAA09AnyHeaderE11Convertible_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sections: [Section<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1591 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "All sections in the list.", - "key.doc.column" : 16, - "key.doc.comment" : "All sections in the list.", - "key.doc.declaration" : "public var sections: [Section]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "sections<\/Name>s:10ListableUI7ContentV8sectionsSayAA7SectionVGvp<\/USR>public var sections: [Section]<\/Declaration>All sections in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 46, - "key.doc.name" : "sections", - "key.doc.type" : "Other", - "key.doclength" : 30, - "key.docoffset" : 1557, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sections<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "sections", - "key.namelength" : 8, - "key.nameoffset" : 1602, - "key.offset" : 1598, - "key.parsed_declaration" : "public var sections : [Section]", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "[Section]", - "key.typeusr" : "$sSay10ListableUI7SectionVGD", - "key.usr" : "s:10ListableUI7ContentV8sectionsSayAA7SectionVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var nonEmptySections: [Section<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1691 - } - ], - "key.bodylength" : 64, - "key.bodyoffset" : 1732, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Any sections that have a non-zero number of items.", - "key.doc.column" : 16, - "key.doc.comment" : "Any sections that have a non-zero number of items.", - "key.doc.declaration" : "public var nonEmptySections: [Section] { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "nonEmptySections<\/Name>s:10ListableUI7ContentV16nonEmptySectionsSayAA7SectionVGvp<\/USR>public var nonEmptySections: [Section] { get }<\/Declaration>Any sections that have a non-zero number of items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 49, - "key.doc.name" : "nonEmptySections", - "key.doc.type" : "Other", - "key.doclength" : 55, - "key.docoffset" : 1632, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> nonEmptySections<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 99, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "nonEmptySections", - "key.namelength" : 16, - "key.nameoffset" : 1702, - "key.offset" : 1698, - "key.parsed_declaration" : "public var nonEmptySections : [Section]", - "key.parsed_scope.end" : 51, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.typename" : "[Section]", - "key.typeusr" : "$sSay10ListableUI7SectionVGD", - "key.usr" : "s:10ListableUI7ContentV16nonEmptySectionsSayAA7SectionVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemCount: Int<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1877 - } - ], - "key.bodylength" : 69, - "key.bodyoffset" : 1905, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The total number of items in all of the sections in the list.", - "key.doc.column" : 16, - "key.doc.comment" : "The total number of items in all of the sections in the list.", - "key.doc.declaration" : "public var itemCount: Int { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "itemCount<\/Name>s:10ListableUI7ContentV9itemCountSivp<\/USR>public var itemCount: Int { get }<\/Declaration>The total number of items in all of the sections in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 54, - "key.doc.name" : "itemCount", - "key.doc.type" : "Other", - "key.doclength" : 66, - "key.docoffset" : 1807, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 91, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "itemCount", - "key.namelength" : 9, - "key.nameoffset" : 1888, - "key.offset" : 1884, - "key.parsed_declaration" : "public var itemCount : Int", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 54, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI7ContentV9itemCountSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func contains(any filters: Set<\/Type><ContentFilters<\/Type>> = [.items]) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2167 - } - ], - "key.bodylength" : 918, - "key.bodyoffset" : 2243, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Check if the content contains any of the given types, which you specify via the `filters`\nparameter. If you do not specify a `filters` parameter, `[.items]` is used.", - "key.doc.column" : 17, - "key.doc.comment" : "Check if the content contains any of the given types, which you specify via the `filters`\nparameter. If you do not specify a `filters` parameter, `[.items]` is used.", - "key.doc.declaration" : "public func contains(any filters: Set = [.items]) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "contains(any:)<\/Name>s:10ListableUI7ContentV8contains3anySbShyAA0C7FiltersOG_tF<\/USR>public func contains(any filters: Set<ContentFilters> = [.items]) -> Bool<\/Declaration>Check if the content contains any of the given types, which you specify via the filters<\/codeVoice> parameter. If you do not specify a filters<\/codeVoice> parameter, [.items]<\/codeVoice> is used.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 60, - "key.doc.name" : "contains(any:)", - "key.doc.type" : "Function", - "key.doclength" : 178, - "key.docoffset" : 1985, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> contains<\/decl.name>(any<\/decl.var.parameter.argument_label> filters<\/decl.var.parameter.name>: Set<\/ref.struct><ContentFilters<\/ref.enum>><\/decl.var.parameter.type> = [.items]<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 988, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "contains(any:)", - "key.namelength" : 54, - "key.nameoffset" : 2179, - "key.offset" : 2174, - "key.parsed_declaration" : "public func contains(any filters : Set = [.items]) -> Bool", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Content) -> (Set) -> Bool", - "key.typeusr" : "$s3anySbShy10ListableUI14ContentFiltersOG_tcD", - "key.usr" : "s:10ListableUI7ContentV8contains3anySbShyAA0C7FiltersOG_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 3182 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Content<\/Type>.Configure = (inout Content<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3219 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Content<\/ref.struct>.Configure<\/decl.name> = (inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 43, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "Configure", - "key.namelength" : 9, - "key.nameoffset" : 3236, - "key.offset" : 3226, - "key.parsed_declaration" : "public typealias Configure = (inout Content) -> ()", - "key.parsed_scope.end" : 100, - "key.parsed_scope.start" : 100, - "key.reusingastcontext" : false, - "key.typename" : "((inout Content) -> ()).Type", - "key.typeusr" : "$sy10ListableUI7ContentVzcmD", - "key.usr" : "s:10ListableUI7ContentV9Configurea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(with configure: Configure<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3364 - } - ], - "key.bodylength" : 59, - "key.bodyoffset" : 3409, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new instance, configured as needed via the provided builder block.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new instance, configured as needed via the provided builder block.", - "key.doc.declaration" : "public init(with configure: Configure)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "init(with:)<\/Name>s:10ListableUI7ContentV4withACyACzXE_tcfc<\/USR>public init(with configure: Configure)<\/Declaration>Creates a new instance, configured as needed via the provided builder block.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 103, - "key.doc.name" : "init(with:)", - "key.doc.type" : "Function", - "key.doclength" : 81, - "key.docoffset" : 3279, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 98, - "key.line" : 103, - "key.modulename" : "ListableUI", - "key.name" : "init(with:)", - "key.namelength" : 32, - "key.nameoffset" : 3371, - "key.offset" : 3371, - "key.parsed_declaration" : "public init(with configure : Configure)", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 103, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(identifier:context:refreshControl:containerHeader:header:footer:overscrollFooter:sections:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Content.Type) -> ((inout Content) -> ()) -> Content", - "key.typeusr" : "$s4with10ListableUI7ContentVyADzXE_tcD", - "key.usr" : "s:10ListableUI7ContentV4withACyACzXE_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(identifier: AnyHashable<\/Type>? = nil, context: ContentContext<\/Type>? = nil, refreshControl: RefreshControl<\/Type>? = nil, containerHeader: AnyHeaderFooterConvertible<\/Type>? = nil, header: AnyHeaderFooterConvertible<\/Type>? = nil, footer: AnyHeaderFooterConvertible<\/Type>? = nil, overscrollFooter: AnyHeaderFooterConvertible<\/Type>? = nil, sections: [Section<\/Type>] = [])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3615 - } - ], - "key.bodylength" : 341, - "key.bodyoffset" : 4026, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new instance with the provided parameters.\nAll parameters are optional, pass only what you need to customize.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new instance with the provided parameters.\nAll parameters are optional, pass only what you need to customize.", - "key.doc.declaration" : "public init(identifier: AnyHashable? = nil, context: ContentContext? = nil, refreshControl: RefreshControl? = nil, containerHeader: AnyHeaderFooterConvertible? = nil, header: AnyHeaderFooterConvertible? = nil, footer: AnyHeaderFooterConvertible? = nil, overscrollFooter: AnyHeaderFooterConvertible? = nil, sections: [Section] = [])", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "init(identifier:context:refreshControl:containerHeader:header:footer:overscrollFooter:sections:)<\/Name>s:10ListableUI7ContentV10identifier7context14refreshControl15containerHeader6header6footer16overscrollFooter8sectionsACs11AnyHashableVSg_AA0C7ContextVSgAA07RefreshG0VSgAA0oiM11Convertible_pSgA3VSayAA7SectionVGtcfc<\/USR>public init(identifier: AnyHashable? = nil, context: ContentContext? = nil, refreshControl: RefreshControl? = nil, containerHeader: AnyHeaderFooterConvertible? = nil, header: AnyHeaderFooterConvertible? = nil, footer: AnyHeaderFooterConvertible? = nil, overscrollFooter: AnyHeaderFooterConvertible? = nil, sections: [Section] = [])<\/Declaration>Creates a new instance with the provided parameters. All parameters are optional, pass only what you need to customize.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 112, - "key.doc.name" : "init(identifier:context:refreshControl:containerHeader:header:footer:overscrollFooter:sections:)", - "key.doc.type" : "Function", - "key.doclength" : 132, - "key.docoffset" : 3479, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(identifier<\/decl.var.parameter.argument_label>: AnyHashable<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, context<\/decl.var.parameter.argument_label>: ContentContext<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, refreshControl<\/decl.var.parameter.argument_label>: RefreshControl<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, containerHeader<\/decl.var.parameter.argument_label>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, overscrollFooter<\/decl.var.parameter.argument_label>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, sections<\/decl.var.parameter.argument_label>: [Section<\/ref.struct>]<\/decl.var.parameter.type> = []<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 746, - "key.line" : 112, - "key.modulename" : "ListableUI", - "key.name" : "init(identifier:context:refreshControl:containerHeader:header:footer:overscrollFooter:sections:)", - "key.namelength" : 402, - "key.nameoffset" : 3622, - "key.offset" : 3622, - "key.parsed_declaration" : "public init(\n identifier : AnyHashable? = nil,\n context : ContentContext? = nil,\n refreshControl : RefreshControl? = nil,\n containerHeader : AnyHeaderFooterConvertible? = nil,\n header : AnyHeaderFooterConvertible? = nil,\n footer : AnyHeaderFooterConvertible? = nil,\n overscrollFooter : AnyHeaderFooterConvertible? = nil,\n sections : [Section] = []\n)", - "key.parsed_scope.end" : 134, - "key.parsed_scope.start" : 112, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(with:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Content.Type) -> (AnyHashable?, ContentContext?, RefreshControl?, (any AnyHeaderFooterConvertible)?, (any AnyHeaderFooterConvertible)?, (any AnyHeaderFooterConvertible)?, (any AnyHeaderFooterConvertible)?, [Section]) -> Content", - "key.typeusr" : "$s10identifier7context14refreshControl15containerHeader6header6footer16overscrollFooter8sections10ListableUI7ContentVs11AnyHashableVSg_AI0N7ContextVSgAI07RefreshD0VSgAI0ofJ11Convertible_pSgA3VSayAI7SectionVGtcD", - "key.usr" : "s:10ListableUI7ContentV10identifier7context14refreshControl15containerHeader6header6footer16overscrollFooter8sectionsACs11AnyHashableVSg_AA0C7ContextVSgAA07RefreshG0VSgAA0oiM11Convertible_pSgA3VSayAA7SectionVGtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 21, - "key.name" : "MARK: Finding Content", - "key.offset" : 4388 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var firstItem: AnyItem<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4518 - } - ], - "key.bodylength" : 142, - "key.bodyoffset" : 4551, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The first `Item` in the content. Returns nil if there is no content in any section.", - "key.doc.column" : 16, - "key.doc.comment" : "The first `Item` in the content. Returns nil if there is no content in any section.", - "key.doc.declaration" : "public var firstItem: AnyItem? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "firstItem<\/Name>s:10ListableUI7ContentV9firstItemAA03AnyE0_pSgvp<\/USR>public var firstItem: AnyItem? { get }<\/Declaration>The first Item<\/codeVoice> in the content. Returns nil if there is no content in any section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 141, - "key.doc.name" : "firstItem", - "key.doc.type" : "Other", - "key.doclength" : 88, - "key.docoffset" : 4426, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> firstItem<\/decl.name>: AnyItem<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 169, - "key.line" : 141, - "key.modulename" : "ListableUI", - "key.name" : "firstItem", - "key.namelength" : 9, - "key.nameoffset" : 4529, - "key.offset" : 4525, - "key.parsed_declaration" : "public var firstItem : AnyItem?", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 141, - "key.reusingastcontext" : false, - "key.typename" : "(any AnyItem)?", - "key.typeusr" : "$s10ListableUI7AnyItem_pSgD", - "key.usr" : "s:10ListableUI7ContentV9firstItemAA03AnyE0_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var lastItem: AnyItem<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4795 - } - ], - "key.bodylength" : 138, - "key.bodyoffset" : 4827, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The last `Item` in the content. Returns nil if there is no content in any section.", - "key.doc.column" : 16, - "key.doc.comment" : "The last `Item` in the content. Returns nil if there is no content in any section.", - "key.doc.declaration" : "public var lastItem: AnyItem? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "lastItem<\/Name>s:10ListableUI7ContentV8lastItemAA03AnyE0_pSgvp<\/USR>public var lastItem: AnyItem? { get }<\/Declaration>The last Item<\/codeVoice> in the content. Returns nil if there is no content in any section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 150, - "key.doc.name" : "lastItem", - "key.doc.type" : "Other", - "key.doclength" : 87, - "key.docoffset" : 4704, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastItem<\/decl.name>: AnyItem<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 164, - "key.line" : 150, - "key.modulename" : "ListableUI", - "key.name" : "lastItem", - "key.namelength" : 8, - "key.nameoffset" : 4806, - "key.offset" : 4802, - "key.parsed_declaration" : "public var lastItem : AnyItem?", - "key.parsed_scope.end" : 156, - "key.parsed_scope.start" : 150, - "key.reusingastcontext" : false, - "key.typename" : "(any AnyItem)?", - "key.typeusr" : "$s10ListableUI7AnyItem_pSgD", - "key.usr" : "s:10ListableUI7ContentV8lastItemAA03AnyE0_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func item(at indexPath: IndexPath<\/Type>) -> AnyItem<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5108 - } - ], - "key.bodylength" : 138, - "key.bodyoffset" : 5167, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the `Item` at the given `IndexPath`.\nThe `IndexPath` must be valid. If it is not, a fatal error will occur,", - "key.doc.column" : 17, - "key.doc.comment" : "Returns the `Item` at the given `IndexPath`.\nThe `IndexPath` must be valid. If it is not, a fatal error will occur,", - "key.doc.declaration" : "public func item(at indexPath: IndexPath) -> AnyItem", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "item(at:)<\/Name>s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF<\/USR>public func item(at indexPath: IndexPath) -> AnyItem<\/Declaration>Returns the Item<\/codeVoice> at the given IndexPath<\/codeVoice>. The IndexPath<\/codeVoice> must be valid. If it is not, a fatal error will occur,<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 160, - "key.doc.name" : "item(at:)", - "key.doc.type" : "Function", - "key.doclength" : 128, - "key.docoffset" : 4976, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> item<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyItem<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 191, - "key.line" : 160, - "key.modulename" : "ListableUI", - "key.name" : "item(at:)", - "key.namelength" : 30, - "key.nameoffset" : 5120, - "key.offset" : 5115, - "key.parsed_declaration" : "public func item(at indexPath : IndexPath) -> AnyItem", - "key.parsed_scope.end" : 166, - "key.parsed_scope.start" : 160, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let section: Section<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: Section<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 46, - "key.line" : 162, - "key.modulename" : "ListableUI", - "key.name" : "section", - "key.namelength" : 7, - "key.nameoffset" : 5180, - "key.offset" : 5176, - "key.parsed_declaration" : "let section = self.sections[indexPath.section]", - "key.parsed_scope.end" : 162, - "key.parsed_scope.start" : 162, - "key.reusingastcontext" : false, - "key.typename" : "Section", - "key.typeusr" : "$s10ListableUI7SectionVD", - "key.usr" : "s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF7sectionL_AA7SectionVvp" - }, - { - "key.annotated_decl" : "let item: any AnyItem<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 40, - "key.line" : 163, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 5235, - "key.offset" : 5231, - "key.parsed_declaration" : "let item = section.items[indexPath.item]", - "key.parsed_scope.end" : 163, - "key.parsed_scope.start" : 163, - "key.reusingastcontext" : false, - "key.typename" : "any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pD", - "key.usr" : "s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tFADL_AaF_pvp" - } - ], - "key.typename" : "(Content) -> (IndexPath) -> any AnyItem", - "key.typeusr" : "$s2at10ListableUI7AnyItem_p10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func firstIndexPathForItem(with identifier: AnyIdentifier<\/Type>) -> IndexPath<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5572 - } - ], - "key.bodylength" : 340, - "key.bodyoffset" : 5658, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the first `IndexPath` for the contained `Item` with the given `AnyIdentifier`,\nif it can be found. If nothing is found, nil is returned.\nIf you have multiple `Item`s with the same identifier, the first one will be returned.", - "key.doc.column" : 17, - "key.doc.comment" : "Returns the first `IndexPath` for the contained `Item` with the given `AnyIdentifier`,\nif it can be found. If nothing is found, nil is returned.\nIf you have multiple `Item`s with the same identifier, the first one will be returned.", - "key.doc.declaration" : "public func firstIndexPathForItem(with identifier: AnyIdentifier) -> IndexPath?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "firstIndexPathForItem(with:)<\/Name>s:10ListableUI7ContentV21firstIndexPathForItem4with10Foundation0eF0VSgAA13AnyIdentifierC_tF<\/USR>public func firstIndexPathForItem(with identifier: AnyIdentifier) -> IndexPath?<\/Declaration>Returns the first IndexPath<\/codeVoice> for the contained Item<\/codeVoice> with the given AnyIdentifier<\/codeVoice>, if it can be found. If nothing is found, nil is returned. If you have multiple Item<\/codeVoice>s with the same identifier, the first one will be returned.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 171, - "key.doc.name" : "firstIndexPathForItem(with:)", - "key.doc.type" : "Function", - "key.doclength" : 252, - "key.docoffset" : 5316, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> firstIndexPathForItem<\/decl.name>(with<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 420, - "key.line" : 171, - "key.modulename" : "ListableUI", - "key.name" : "firstIndexPathForItem(with:)", - "key.namelength" : 54, - "key.nameoffset" : 5584, - "key.offset" : 5579, - "key.parsed_declaration" : "public func firstIndexPathForItem(with identifier : AnyIdentifier) -> IndexPath?", - "key.parsed_scope.end" : 182, - "key.parsed_scope.start" : 171, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Content) -> (AnyIdentifier) -> IndexPath?", - "key.typeusr" : "$s4with10Foundation9IndexPathVSg10ListableUI13AnyIdentifierC_tcD", - "key.usr" : "s:10ListableUI7ContentV21firstIndexPathForItem4with10Foundation0eF0VSgAA13AnyIdentifierC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func firstIndexForSection(with identifier: AnyIdentifier<\/Type>) -> Int<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6270 - } - ], - "key.bodylength" : 203, - "key.bodyoffset" : 6349, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the first index position for the contained `Section` with the given `AnyIdentifier`,\nif it can be found. If nothing is found, nil is returned.\nIf you have multiple `Section`s with the same identifier, the first one will be returned.", - "key.doc.column" : 17, - "key.doc.comment" : "Returns the first index position for the contained `Section` with the given `AnyIdentifier`,\nif it can be found. If nothing is found, nil is returned.\nIf you have multiple `Section`s with the same identifier, the first one will be returned.", - "key.doc.declaration" : "public func firstIndexForSection(with identifier: AnyIdentifier) -> Int?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "firstIndexForSection(with:)<\/Name>s:10ListableUI7ContentV20firstIndexForSection4withSiSgAA13AnyIdentifierC_tF<\/USR>public func firstIndexForSection(with identifier: AnyIdentifier) -> Int?<\/Declaration>Returns the first index position for the contained Section<\/codeVoice> with the given AnyIdentifier<\/codeVoice>, if it can be found. If nothing is found, nil is returned. If you have multiple Section<\/codeVoice>s with the same identifier, the first one will be returned.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 187, - "key.doc.name" : "firstIndexForSection(with:)", - "key.doc.type" : "Function", - "key.doclength" : 261, - "key.docoffset" : 6005, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> firstIndexForSection<\/decl.name>(with<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 276, - "key.line" : 187, - "key.modulename" : "ListableUI", - "key.name" : "firstIndexForSection(with:)", - "key.namelength" : 53, - "key.nameoffset" : 6282, - "key.offset" : 6277, - "key.parsed_declaration" : "public func firstIndexForSection(with identifier : AnyIdentifier) -> Int?", - "key.parsed_scope.end" : 196, - "key.parsed_scope.start" : 187, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Content) -> (AnyIdentifier) -> Int?", - "key.typeusr" : "$s4withSiSg10ListableUI13AnyIdentifierC_tcD", - "key.usr" : "s:10ListableUI7ContentV20firstIndexForSection4withSiSgAA13AnyIdentifierC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func lastIndexPath() -> IndexPath<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6686 - } - ], - "key.bodylength" : 291, - "key.bodyoffset" : 6733, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the `IndexPath` of the last `Item` in the content.\nReturns nil if there are no `Item`s in the content.", - "key.doc.column" : 17, - "key.doc.comment" : "Returns the `IndexPath` of the last `Item` in the content.\nReturns nil if there are no `Item`s in the content.", - "key.doc.declaration" : "public func lastIndexPath() -> IndexPath?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "lastIndexPath()<\/Name>s:10ListableUI7ContentV13lastIndexPath10Foundation0eF0VSgyF<\/USR>public func lastIndexPath() -> IndexPath?<\/Declaration>Returns the IndexPath<\/codeVoice> of the last Item<\/codeVoice> in the content. Returns nil if there are no Item<\/codeVoice>s in the content.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 200, - "key.doc.name" : "lastIndexPath()", - "key.doc.type" : "Function", - "key.doclength" : 123, - "key.docoffset" : 6559, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> lastIndexPath<\/decl.name>() -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 332, - "key.line" : 200, - "key.modulename" : "ListableUI", - "key.name" : "lastIndexPath()", - "key.namelength" : 15, - "key.nameoffset" : 6698, - "key.offset" : 6693, - "key.parsed_declaration" : "public func lastIndexPath() -> IndexPath?", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 200, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Content) -> () -> IndexPath?", - "key.typeusr" : "$s10Foundation9IndexPathVSgycD", - "key.usr" : "s:10ListableUI7ContentV13lastIndexPath10Foundation0eF0VSgyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 22, - "key.name" : "MARK: Mutating Content", - "key.offset" : 7045 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "mutating func moveItem(from: IndexPath<\/Type>, to: IndexPath<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 7219 - } - ], - "key.bodylength" : 193, - "key.bodyoffset" : 7281, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "\/\/\/ Moves the `Item` at the `from` index path to the `to` index path.\nIf the index paths are the same, nothing occurs.", - "key.doc.column" : 19, - "key.doc.comment" : "\/\/\/ Moves the `Item` at the `from` index path to the `to` index path.\nIf the index paths are the same, nothing occurs.", - "key.doc.declaration" : "mutating func moveItem(from: IndexPath, to: IndexPath)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "moveItem(from:to:)<\/Name>s:10ListableUI7ContentV8moveItem4from2toy10Foundation9IndexPathV_AItF<\/USR>mutating func moveItem(from: IndexPath, to: IndexPath)<\/Declaration>\/\/\/ Moves the Item<\/codeVoice> at the from<\/codeVoice> index path to the to<\/codeVoice> index path. If the index paths are the same, nothing occurs.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 218, - "key.doc.name" : "moveItem(from:to:)", - "key.doc.type" : "Function", - "key.doclength" : 131, - "key.docoffset" : 7084, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> moveItem<\/decl.name>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 247, - "key.line" : 218, - "key.modulename" : "ListableUI", - "key.name" : "moveItem(from:to:)", - "key.namelength" : 42, - "key.nameoffset" : 7233, - "key.offset" : 7228, - "key.parsed_declaration" : "mutating func moveItem(from : IndexPath, to : IndexPath)", - "key.parsed_scope.end" : 228, - "key.parsed_scope.start" : 218, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyItem<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 30, - "key.line" : 224, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 7364, - "key.offset" : 7360, - "key.parsed_declaration" : "let item = self.item(at: from)", - "key.parsed_scope.end" : 224, - "key.parsed_scope.start" : 224, - "key.reusingastcontext" : false, - "key.typename" : "any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pD", - "key.usr" : "s:10ListableUI7ContentV8moveItem4from2toy10Foundation9IndexPathV_AItF4itemL_AA03AnyE0_pvp" - } - ], - "key.typename" : "(inout Content) -> (IndexPath, IndexPath) -> ()", - "key.typeusr" : "$s4from2toy10Foundation9IndexPathV_AEtcD", - "key.usr" : "s:10ListableUI7ContentV8moveItem4from2toy10Foundation9IndexPathV_AItF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func removeEmpty()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 7556 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7549 - } - ], - "key.bodylength" : 78, - "key.bodyoffset" : 7589, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Removes all `Section`s that do not contain any `Item`s.", - "key.doc.column" : 26, - "key.doc.comment" : "Removes all `Section`s that do not contain any `Item`s.", - "key.doc.declaration" : "public mutating func removeEmpty()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "removeEmpty()<\/Name>s:10ListableUI7ContentV11removeEmptyyyF<\/USR>public mutating func removeEmpty()<\/Declaration>Removes all Section<\/codeVoice>s that do not contain any Item<\/codeVoice>s.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 231, - "key.doc.name" : "removeEmpty()", - "key.doc.type" : "Function", - "key.doclength" : 60, - "key.docoffset" : 7485, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> removeEmpty<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 103, - "key.line" : 231, - "key.modulename" : "ListableUI", - "key.name" : "removeEmpty()", - "key.namelength" : 13, - "key.nameoffset" : 7570, - "key.offset" : 7565, - "key.parsed_declaration" : "public mutating func removeEmpty()", - "key.parsed_scope.end" : 236, - "key.parsed_scope.start" : 231, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout Content) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI7ContentV11removeEmptyyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func add(_ section: Section<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 7742 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7735 - } - ], - "key.bodylength" : 43, - "key.bodyoffset" : 7786, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Appends a `Section` to the end of the `Content`.", - "key.doc.column" : 26, - "key.doc.comment" : "Appends a `Section` to the end of the `Content`.", - "key.doc.declaration" : "public mutating func add(_ section: Section)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "add(_:)<\/Name>s:10ListableUI7ContentV3addyyAA7SectionVF<\/USR>public mutating func add(_ section: Section)<\/Declaration>Appends a Section<\/codeVoice> to the end of the Content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 239, - "key.doc.name" : "add(_:)", - "key.doc.type" : "Function", - "key.doclength" : 53, - "key.docoffset" : 7678, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(_<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 79, - "key.line" : 239, - "key.modulename" : "ListableUI", - "key.name" : "add(_:)", - "key.namelength" : 24, - "key.nameoffset" : 7756, - "key.offset" : 7751, - "key.parsed_declaration" : "public mutating func add(_ section : Section)", - "key.parsed_scope.end" : 242, - "key.parsed_scope.start" : 239, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout Content) -> (Section) -> ()", - "key.typeusr" : "$syy10ListableUI7SectionVcD", - "key.usr" : "s:10ListableUI7ContentV3addyyAA7SectionVF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += (lhs: inout Content<\/Type>, rhs: Section<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7897 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 7961, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Appends a `Section` to the end of the `Content`.", - "key.doc.column" : 24, - "key.doc.comment" : "Appends a `Section` to the end of the `Content`.", - "key.doc.declaration" : "public static func += (lhs: inout Content, rhs: Section)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI7ContentV2peoiyyACz_AA7SectionVtFZ<\/USR>public static func += (lhs: inout Content, rhs: Section)<\/Declaration>Appends a Section<\/codeVoice> to the end of the Content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 245, - "key.doc.name" : "+=(_:_:)", - "key.doc.type" : "Function", - "key.doclength" : 53, - "key.docoffset" : 7840, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 84, - "key.line" : 245, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 39, - "key.nameoffset" : 7916, - "key.offset" : 7904, - "key.parsed_declaration" : "public static func += (lhs : inout Content, rhs : Section)", - "key.parsed_scope.end" : 248, - "key.parsed_scope.start" : 245, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= (_: inout Content, _: [Section])<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var lhs: inout Content<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>", - "key.kind" : "source.lang.swift.decl.var.parameter", - "key.length" : 3, - "key.line" : 245, - "key.modulename" : "ListableUI", - "key.name" : "lhs", - "key.offset" : 7920, - "key.parent_loc" : 7916, - "key.parsed_declaration" : "public static func += (lhs", - "key.parsed_scope.end" : 245, - "key.parsed_scope.start" : 245, - "key.reusingastcontext" : false, - "key.typename" : "Content", - "key.typeusr" : "$s10ListableUI7ContentVD", - "key.usr" : "s:10ListableUI7ContentV2peoiyyACz_AA7SectionVtFZ3lhsL_ACvp" - } - ], - "key.typename" : "(Content.Type) -> (inout Content, Section) -> ()", - "key.typeusr" : "$syy10ListableUI7ContentVz_AA7SectionVtcD", - "key.usr" : "s:10ListableUI7ContentV2peoiyyACz_AA7SectionVtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += (lhs: inout Content<\/Type>, rhs: [Section<\/Type>])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8064 - } - ], - "key.bodylength" : 33, - "key.bodyoffset" : 8130, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Appends a list of `Section`s to the end of the `Content`.", - "key.doc.column" : 24, - "key.doc.comment" : "Appends a list of `Section`s to the end of the `Content`.", - "key.doc.declaration" : "public static func += (lhs: inout Content, rhs: [Section])", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI7ContentV2peoiyyACz_SayAA7SectionVGtFZ<\/USR>public static func += (lhs: inout Content, rhs: [Section])<\/Declaration>Appends a list of Section<\/codeVoice>s to the end of the Content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 251, - "key.doc.name" : "+=(_:_:)", - "key.doc.type" : "Function", - "key.doclength" : 62, - "key.docoffset" : 7998, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [Section<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 93, - "key.line" : 251, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 41, - "key.nameoffset" : 8083, - "key.offset" : 8071, - "key.parsed_declaration" : "public static func += (lhs : inout Content, rhs : [Section])", - "key.parsed_scope.end" : 254, - "key.parsed_scope.start" : 251, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= (_: inout Content, _: Section)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var lhs: inout Content<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>", - "key.kind" : "source.lang.swift.decl.var.parameter", - "key.length" : 3, - "key.line" : 251, - "key.modulename" : "ListableUI", - "key.name" : "lhs", - "key.offset" : 8087, - "key.parent_loc" : 8083, - "key.parsed_declaration" : "public static func += (lhs", - "key.parsed_scope.end" : 251, - "key.parsed_scope.start" : 251, - "key.reusingastcontext" : false, - "key.typename" : "Content", - "key.typeusr" : "$s10ListableUI7ContentVD", - "key.usr" : "s:10ListableUI7ContentV2peoiyyACz_SayAA7SectionVGtFZ3lhsL_ACvp" - } - ], - "key.typename" : "(Content.Type) -> (inout Content, [Section]) -> ()", - "key.typeusr" : "$syy10ListableUI7ContentVz_SayAA7SectionVGtcD", - "key.usr" : "s:10ListableUI7ContentV2peoiyyACz_SayAA7SectionVGtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func callAsFunction<Identifier>(_ identifier: Identifier<\/Type>, configure: Section<\/Type>.Configure<\/Type>) where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 8800 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8793 - } - ], - "key.bodylength" : 63, - "key.bodyoffset" : 8913, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows streamlined creation of sections when building a list, leveraging Swift's `callAsFunction`\nfeature, allowing treating objects as function calls.\n\nIn layperson's terms, this allows you to replace code like this:\n```\nlistView.configure { list in\n list += Section(\"section-id\") { section in\n ...\n }\n}\n```\nWith this code, which is functionally identical:\n```\nlistView.configure { list in\n list(\"section-id\") { section in\n ...\n }\n}\n", - "key.doc.column" : 26, - "key.doc.comment" : "\nAllows streamlined creation of sections when building a list, leveraging Swift's `callAsFunction`\nfeature, allowing treating objects as function calls.\n\nIn layperson's terms, this allows you to replace code like this:\n```\nlistView.configure { list in\n list += Section(\"section-id\") { section in\n ...\n }\n}\n```\nWith this code, which is functionally identical:\n```\nlistView.configure { list in\n list(\"section-id\") { section in\n ...\n }\n}", - "key.doc.declaration" : "public mutating func callAsFunction(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable", - "key.doc.discussion" : [ - { - "Para" : "In layperson’s terms, this allows you to replace code like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "With this code, which is functionally identical:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "callAsFunction(_:configure:)<\/Name>s:10ListableUI7ContentV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF<\/USR>public mutating func callAsFunction<Identifier>(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable<\/Declaration>Allows streamlined creation of sections when building a list, leveraging Swift’s callAsFunction<\/codeVoice> feature, allowing treating objects as function calls.<\/Para><\/Abstract>In layperson’s terms, this allows you to replace code like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>With this code, which is functionally identical:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 276, - "key.doc.name" : "callAsFunction(_:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 615, - "key.docoffset" : 8174, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> callAsFunction<\/decl.name><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Section<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 168, - "key.line" : 276, - "key.modulename" : "ListableUI", - "key.name" : "callAsFunction(_:configure:)", - "key.namelength" : 93, - "key.nameoffset" : 8814, - "key.offset" : 8809, - "key.parsed_declaration" : "public mutating func callAsFunction(_ identifier : Identifier, configure : Section.Configure)", - "key.parsed_scope.end" : 279, - "key.parsed_scope.start" : 276, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Identifier : Hashable<\/Type><\/Declaration>", - "key.column" : 41, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 8840 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 276, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 8829, - "key.offset" : 8829, - "key.parsed_declaration" : "public mutating func callAsFunctionIdentifier<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Identifier.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI7ContentV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF10IdentifierL_xmfp" - } - ], - "key.typename" : " (inout Content) -> (Identifier, (inout Section) -> ()) -> ()", - "key.typeusr" : "$s_9configureyx_y10ListableUI7SectionVzXEtcSHRzluD", - "key.usr" : "s:10ListableUI7ContentV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal mutating func remove(at indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 9049 - }, - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 9040 - } - ], - "key.bodylength" : 79, - "key.bodyoffset" : 9101, - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Removes the `Item` at the given `IndexPath`.", - "key.doc.column" : 28, - "key.doc.comment" : "Removes the `Item` at the given `IndexPath`.", - "key.doc.declaration" : "internal mutating func remove(at indexPath: IndexPath)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "remove(at:)<\/Name>s:10ListableUI7ContentV6remove2aty10Foundation9IndexPathV_tF<\/USR>internal mutating func remove(at indexPath: IndexPath)<\/Declaration>Removes the Item<\/codeVoice> at the given IndexPath<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 282, - "key.doc.name" : "remove(at:)", - "key.doc.type" : "Function", - "key.doclength" : 49, - "key.docoffset" : 8987, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> remove<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 123, - "key.line" : 282, - "key.modulename" : "ListableUI", - "key.name" : "remove(at:)", - "key.namelength" : 32, - "key.nameoffset" : 9063, - "key.offset" : 9058, - "key.parsed_declaration" : "internal mutating func remove(at indexPath : IndexPath)", - "key.parsed_scope.end" : 285, - "key.parsed_scope.start" : 282, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout Content) -> (IndexPath) -> ()", - "key.typeusr" : "$s2aty10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI7ContentV6remove2aty10Foundation9IndexPathV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal mutating func insert(item: AnyItem<\/Type>, at indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 9253 - }, - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 9244 - } - ], - "key.bodylength" : 85, - "key.bodyoffset" : 9321, - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Inserts the `Item` at the given `IndexPath`.", - "key.doc.column" : 28, - "key.doc.comment" : "Inserts the `Item` at the given `IndexPath`.", - "key.doc.declaration" : "internal mutating func insert(item: AnyItem, at indexPath: IndexPath)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "insert(item:at:)<\/Name>s:10ListableUI7ContentV6insert4item2atyAA7AnyItem_p_10Foundation9IndexPathVtF<\/USR>internal mutating func insert(item: AnyItem, at indexPath: IndexPath)<\/Declaration>Inserts the Item<\/codeVoice> at the given IndexPath<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 288, - "key.doc.name" : "insert(item:at:)", - "key.doc.type" : "Function", - "key.doclength" : 49, - "key.docoffset" : 9191, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> insert<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 145, - "key.line" : 288, - "key.modulename" : "ListableUI", - "key.name" : "insert(item:at:)", - "key.namelength" : 48, - "key.nameoffset" : 9267, - "key.offset" : 9262, - "key.parsed_declaration" : "internal mutating func insert(item : AnyItem, at indexPath : IndexPath)", - "key.parsed_scope.end" : 291, - "key.parsed_scope.start" : 288, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout Content) -> (any AnyItem, IndexPath) -> ()", - "key.typeusr" : "$s4item2aty10ListableUI7AnyItem_p_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI7ContentV6insert4item2atyAA7AnyItem_p_10Foundation9IndexPathVtF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 21, - "key.name" : "MARK: Slicing Content", - "key.offset" : 9427 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal func sliceTo(indexPath: IndexPath<\/Type>, plus additionalItems: Int<\/Type> = Content.Slice.defaultCount) -> Slice<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 10119 - } - ], - "key.bodylength" : 775, - "key.bodyoffset" : 10235, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a `Slice` of `Content` that allows cutting down a large list of `Content` to a more appropriate size\nfor display within a list. This is used by the presentation system to avoid needing to expensively measure and\nlay out every item in long lists.\n\nEg, if you provide 10,000 items to a list, we don't need to put all of those into the list right away. We only need to show\nenough to render the list to its current scroll position, plus some overscroll. This allows pretty significant performance\noptimizations for long lists that are not scrolled to the bottom, by culling most items.\n", - "key.doc.column" : 19, - "key.doc.comment" : "Creates a `Slice` of `Content` that allows cutting down a large list of `Content` to a more appropriate size\nfor display within a list. This is used by the presentation system to avoid needing to expensively measure and\nlay out every item in long lists.\n\nEg, if you provide 10,000 items to a list, we don't need to put all of those into the list right away. We only need to show\nenough to render the list to its current scroll position, plus some overscroll. This allows pretty significant performance\noptimizations for long lists that are not scrolled to the bottom, by culling most items.", - "key.doc.declaration" : "internal func sliceTo(indexPath: IndexPath, plus additionalItems: Int = Content.Slice.defaultCount) -> Slice", - "key.doc.discussion" : [ - { - "Para" : "Eg, if you provide 10,000 items to a list, we don’t need to put all of those into the list right away. We only need to show enough to render the list to its current scroll position, plus some overscroll. This allows pretty significant performance optimizations for long lists that are not scrolled to the bottom, by culling most items." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.doc.full_as_xml" : "sliceTo(indexPath:plus:)<\/Name>s:10ListableUI7ContentV7sliceTo9indexPath4plusAC5SliceV10Foundation05IndexG0V_SitF<\/USR>internal func sliceTo(indexPath: IndexPath, plus additionalItems: Int = Content.Slice.defaultCount) -> Slice<\/Declaration>Creates a Slice<\/codeVoice> of Content<\/codeVoice> that allows cutting down a large list of Content<\/codeVoice> to a more appropriate size for display within a list. This is used by the presentation system to avoid needing to expensively measure and lay out every item in long lists.<\/Para><\/Abstract>Eg, if you provide 10,000 items to a list, we don’t need to put all of those into the list right away. We only need to show enough to render the list to its current scroll position, plus some overscroll. This allows pretty significant performance optimizations for long lists that are not scrolled to the bottom, by culling most items.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 305, - "key.doc.name" : "sliceTo(indexPath:plus:)", - "key.doc.type" : "Function", - "key.doclength" : 650, - "key.docoffset" : 9465, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sliceTo<\/decl.name>(indexPath<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, plus<\/decl.var.parameter.argument_label> additionalItems<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type> = Content.Slice.defaultCount<\/decl.var.parameter>) -> Slice<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 883, - "key.line" : 305, - "key.modulename" : "ListableUI", - "key.name" : "sliceTo(indexPath:plus:)", - "key.namelength" : 87, - "key.nameoffset" : 10133, - "key.offset" : 10128, - "key.parsed_declaration" : "internal func sliceTo(indexPath : IndexPath, plus additionalItems : Int = Content.Slice.defaultCount) -> Slice", - "key.parsed_scope.end" : 331, - "key.parsed_scope.start" : 305, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var sliced: Content<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sliced<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 17, - "key.line" : 307, - "key.modulename" : "ListableUI", - "key.name" : "sliced", - "key.namelength" : 6, - "key.nameoffset" : 10248, - "key.offset" : 10244, - "key.parsed_declaration" : "var sliced = self", - "key.parsed_scope.end" : 307, - "key.parsed_scope.start" : 307, - "key.reusingastcontext" : false, - "key.typename" : "Content", - "key.typeusr" : "$s10ListableUI7ContentVD", - "key.usr" : "s:10ListableUI7ContentV7sliceTo9indexPath4plusAC5SliceV10Foundation05IndexG0V_SitF6slicedL_ACvp" - }, - { - "key.annotated_decl" : "var remaining: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> remaining<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 54, - "key.line" : 309, - "key.modulename" : "ListableUI", - "key.name" : "remaining", - "key.namelength" : 9, - "key.nameoffset" : 10283, - "key.offset" : 10279, - "key.parsed_declaration" : "var remaining : Int = indexPath.item + additionalItems", - "key.parsed_scope.end" : 309, - "key.parsed_scope.start" : 309, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI7ContentV7sliceTo9indexPath4plusAC5SliceV10Foundation05IndexG0V_SitF9remainingL_Sivp" - } - ], - "key.typename" : "(Content) -> (IndexPath, Int) -> Content.Slice", - "key.typeusr" : "$s9indexPath4plus10ListableUI7ContentV5SliceV10Foundation05IndexB0V_SitcD", - "key.usr" : "s:10ListableUI7ContentV7sliceTo9indexPath4plusAC5SliceV10Foundation05IndexG0V_SitF" - } - ], - "key.typename" : "Content.Type", - "key.typeusr" : "$s10ListableUI7ContentVmD", - "key.usr" : "s:10ListableUI7ContentV" - }, - { - "key.annotated_decl" : "public struct Content<\/Declaration>", - "key.bodylength" : 445, - "key.bodyoffset" : 11035, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Content<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 465, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 11026, - "key.offset" : 11016, - "key.parsed_declaration" : "extension Content", - "key.parsed_scope.end" : 356, - "key.parsed_scope.start" : 335, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "struct Slice<\/Declaration>", - "key.bodylength" : 420, - "key.bodyoffset" : 11058, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Slice<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 439, - "key.line" : 337, - "key.modulename" : "ListableUI", - "key.name" : "Slice", - "key.namelength" : 5, - "key.nameoffset" : 11047, - "key.offset" : 11040, - "key.parsed_declaration" : "struct Slice", - "key.parsed_scope.end" : 355, - "key.parsed_scope.start" : 337, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static let defaultCount: Int<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> defaultCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 35, - "key.line" : 339, - "key.modulename" : "ListableUI", - "key.name" : "defaultCount", - "key.namelength" : 12, - "key.nameoffset" : 11078, - "key.offset" : 11067, - "key.parsed_declaration" : "static let defaultCount : Int = 250", - "key.parsed_scope.end" : 339, - "key.parsed_scope.start" : 339, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI7ContentV5SliceV12defaultCountSivpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let containsAllItems: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> containsAllItems<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 341, - "key.modulename" : "ListableUI", - "key.name" : "containsAllItems", - "key.namelength" : 16, - "key.nameoffset" : 11124, - "key.offset" : 11120, - "key.parsed_declaration" : "let containsAllItems : Bool", - "key.parsed_scope.end" : 341, - "key.parsed_scope.start" : 341, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI7ContentV5SliceV16containsAllItemsSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let content: Content<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 342, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 11160, - "key.offset" : 11156, - "key.parsed_declaration" : "let content : Content", - "key.parsed_scope.end" : 342, - "key.parsed_scope.start" : 342, - "key.reusingastcontext" : false, - "key.typename" : "Content", - "key.typeusr" : "$s10ListableUI7ContentVD", - "key.usr" : "s:10ListableUI7ContentV5SliceV7contentACvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(containsAllItems: Bool<\/Type>, content: Content<\/Type>)<\/Declaration>", - "key.bodylength" : 97, - "key.bodyoffset" : 11253, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(containsAllItems<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 156, - "key.line" : 344, - "key.modulename" : "ListableUI", - "key.name" : "init(containsAllItems:content:)", - "key.namelength" : 48, - "key.nameoffset" : 11195, - "key.offset" : 11195, - "key.parsed_declaration" : "init(containsAllItems : Bool, content : Content)", - "key.parsed_scope.end" : 348, - "key.parsed_scope.start" : 344, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Content.Slice.Type) -> (Bool, Content) -> Content.Slice", - "key.typeusr" : "$s16containsAllItems7content10ListableUI7ContentV5SliceVSb_AEtcD", - "key.usr" : "s:10ListableUI7ContentV5SliceV16containsAllItems7contentAESb_ACtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init()<\/Declaration>", - "key.bodylength" : 87, - "key.bodyoffset" : 11385, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Content.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 104, - "key.line" : 350, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 11369, - "key.offset" : 11369, - "key.parsed_declaration" : "init()", - "key.parsed_scope.end" : 354, - "key.parsed_scope.start" : 350, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(containsAllItems:content:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Content.Slice.Type) -> () -> Content.Slice", - "key.typeusr" : "$s10ListableUI7ContentV5SliceVycD", - "key.usr" : "s:10ListableUI7ContentV5SliceVAEycfc" - } - ], - "key.typename" : "Content.Slice.Type", - "key.typeusr" : "$s10ListableUI7ContentV5SliceVmD", - "key.usr" : "s:10ListableUI7ContentV5SliceV" - } - ], - "key.typename" : "Content.Type", - "key.typeusr" : "$s10ListableUI7ContentVmD", - "key.usr" : "s:10ListableUI7ContentV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 5182, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListContentBounds : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2356 - } - ], - "key.bodylength" : 456, - "key.bodyoffset" : 2401, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "For participating layouts; allows controlling the padding around and width of content when it is laid out.\n\n```\n┌──────────────────────────┐ ┌───────────────────────────────────────────┐\n│ padding.top │ │ padding.top │\n│ p ┌──────────────────┐ p │ │ ┌──────────────────┐ │\n│ a │ │ a │ │ │ │ │\n│ d │ │ d │ │ │ │ │\n│ d │ │ d │ │ │ │ │\n│ i │ │ i │ │ │ │ │\n│ n │ │ n │ │ │ │ │\n│ g │ │ g │ │ │ width │ │\n│ . │ │ . │ │ │◀────────────────▶│ │\n│ l │ │ r │ │ │ │ │\n│ e │ │ i │ │ │ │ │\n│ f │ │ g │ │ │ │ │\n│ t │ │ h │ │ │ │ │\n│ └──────────────────┘ t │ │ └──────────────────┘ │\n│ padding.bottom │ │ padding.bottom │\n└──────────────────────────┘ └───────────────────────────────────────────┘\n```", - "key.doc.column" : 15, - "key.doc.comment" : "For participating layouts; allows controlling the padding around and width of content when it is laid out.\n\n```\n┌──────────────────────────┐ ┌───────────────────────────────────────────┐\n│ padding.top │ │ padding.top │\n│ p ┌──────────────────┐ p │ │ ┌──────────────────┐ │\n│ a │ │ a │ │ │ │ │\n│ d │ │ d │ │ │ │ │\n│ d │ │ d │ │ │ │ │\n│ i │ │ i │ │ │ │ │\n│ n │ │ n │ │ │ │ │\n│ g │ │ g │ │ │ width │ │\n│ . │ │ . │ │ │◀────────────────▶│ │\n│ l │ │ r │ │ │ │ │\n│ e │ │ i │ │ │ │ │\n│ f │ │ g │ │ │ │ │\n│ t │ │ h │ │ │ │ │\n│ └──────────────────┘ t │ │ └──────────────────┘ │\n│ padding.bottom │ │ padding.bottom │\n└──────────────────────────┘ └───────────────────────────────────────────┘\n```", - "key.doc.declaration" : "public struct ListContentBounds : Equatable", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "ListContentBounds<\/Name>s:10ListableUI17ListContentBoundsV<\/USR>public struct ListContentBounds : Equatable<\/Declaration>For participating layouts; allows controlling the padding around and width of content when it is laid out.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 33, - "key.doc.name" : "ListContentBounds", - "key.doc.type" : "Class", - "key.doclength" : 2221, - "key.docoffset" : 135, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 2390 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListContentBounds<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 495, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "ListContentBounds", - "key.namelength" : 17, - "key.nameoffset" : 2370, - "key.offset" : 2363, - "key.parsed_declaration" : "public struct ListContentBounds : Equatable", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var padding: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2483 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The padding to place around the outside of the content of the list.", - "key.doc.column" : 16, - "key.doc.comment" : "The padding to place around the outside of the content of the list.", - "key.doc.declaration" : "public var padding: UIEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "padding<\/Name>s:10ListableUI17ListContentBoundsV7paddingSo12UIEdgeInsetsVvp<\/USR>public var padding: UIEdgeInsets<\/Declaration>The padding to place around the outside of the content of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 36, - "key.doc.name" : "padding", - "key.doc.type" : "Other", - "key.doclength" : 72, - "key.docoffset" : 2407, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> padding<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "padding", - "key.namelength" : 7, - "key.nameoffset" : 2494, - "key.offset" : 2490, - "key.parsed_declaration" : "public var padding : UIEdgeInsets", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI17ListContentBoundsV7paddingSo12UIEdgeInsetsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: WidthConstraint<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2586 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An optional constraint on the width of the content.", - "key.doc.column" : 16, - "key.doc.comment" : "An optional constraint on the width of the content.", - "key.doc.declaration" : "public var width: WidthConstraint", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI17ListContentBoundsV5widthAA15WidthConstraintOvp<\/USR>public var width: WidthConstraint<\/Declaration>An optional constraint on the width of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 39, - "key.doc.name" : "width", - "key.doc.type" : "Other", - "key.doclength" : 56, - "key.docoffset" : 2526, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: WidthConstraint<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 2597, - "key.offset" : 2593, - "key.parsed_declaration" : "public var width : WidthConstraint", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "WidthConstraint", - "key.typeusr" : "$s10ListableUI15WidthConstraintOD", - "key.usr" : "s:10ListableUI17ListContentBoundsV5widthAA15WidthConstraintOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(padding: UIEdgeInsets<\/Type> = .zero, width: WidthConstraint<\/Type> = .noConstraint)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2686 - } - ], - "key.bodylength" : 63, - "key.bodyoffset" : 2792, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new bounds with the provided options.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new bounds with the provided options.", - "key.doc.declaration" : "public init(padding: UIEdgeInsets = .zero, width: WidthConstraint = .noConstraint)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "init(padding:width:)<\/Name>s:10ListableUI17ListContentBoundsV7padding5widthACSo12UIEdgeInsetsV_AA15WidthConstraintOtcfc<\/USR>public init(padding: UIEdgeInsets = .zero, width: WidthConstraint = .noConstraint)<\/Declaration>Creates a new bounds with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 42, - "key.doc.name" : "init(padding:width:)", - "key.doc.type" : "Function", - "key.doclength" : 52, - "key.docoffset" : 2630, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(padding<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 163, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "init(padding:width:)", - "key.namelength" : 97, - "key.nameoffset" : 2693, - "key.offset" : 2693, - "key.parsed_declaration" : "public init(\n padding: UIEdgeInsets = .zero,\n width: WidthConstraint = .noConstraint\n)", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListContentBounds.Type) -> (UIEdgeInsets, WidthConstraint) -> ListContentBounds", - "key.typeusr" : "$s7padding5width10ListableUI17ListContentBoundsVSo12UIEdgeInsetsV_AC15WidthConstraintOtcD", - "key.usr" : "s:10ListableUI17ListContentBoundsV7padding5widthACSo12UIEdgeInsetsV_AA15WidthConstraintOtcfc" - } - ], - "key.typename" : "ListContentBounds.Type", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVmD", - "key.usr" : "s:10ListableUI17ListContentBoundsV" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 44, - "key.name" : "MARK: Controlling Bounds Via The Environment", - "key.offset" : 2867 - }, - { - "key.annotated_decl" : "public struct ListEnvironment<\/Declaration>", - "key.bodylength" : 900, - "key.bodyoffset" : 2944, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An environment of keys and values that are passed to every `ItemContent` and `HeaderFooter`\nduring layout and measurement, to allow passing down data.\n\nThis type is similar to the SwiftUI or Blueprint `Environment`, where you define a `ListEnvironmentKey`,\nand then provide a custom getter and setter to read and write the content:\n\n```\nenum MyLayoutTypeKey : ListEnvironmentKey {\n var defaultValue : MyLayoutType {\n .defaultLayout\n }\n}\n\nextension ListEnvironment {\n var myLayoutType : MyLayoutType {\n get { self[MyLayoutTypeKey.self] }\n set { self[MyLayoutTypeKey.self] = newValue }\n }\n}\n```\n\nYou can retrieve the `ListEnvironment` through the `info` object passed in `ItemContent` and `HeaderFooter`'s\n`apply(to:for:with:)` methods.\n\n```\nfunc apply(\n to views : ItemContentViews,\n for reason: ApplyReason,\n with info : ApplyItemContentInfo\n) {\n switch info.environment.myLayoutType {\n ...\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ListEnvironment", - "key.doc.discussion" : [ - { - "Para" : "This type is similar to the SwiftUI or Blueprint `Environment`, where you define a `ListEnvironmentKey`, and then provide a custom getter and setter to read and write the content:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can retrieve the `ListEnvironment` through the `info` object passed in `ItemContent` and `HeaderFooter`’s `apply(to:for:with:)` methods." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.doc.full_as_xml" : "ListEnvironment<\/Name>s:10ListableUI15ListEnvironmentV<\/USR>public struct ListEnvironment<\/Declaration>An environment of keys and values that are passed to every ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice> during layout and measurement, to allow passing down data.<\/Para><\/Abstract>This type is similar to the SwiftUI or Blueprint Environment<\/codeVoice>, where you define a ListEnvironmentKey<\/codeVoice>, and then provide a custom getter and setter to read and write the content:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can retrieve the ListEnvironment<\/codeVoice> through the info<\/codeVoice> object passed in ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice>’s apply(to:for:with:)<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered>,]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 44, - "key.doc.name" : "ListEnvironment", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListEnvironment<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 928, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "ListEnvironment", - "key.namelength" : 15, - "key.nameoffset" : 2927, - "key.offset" : 2917, - "key.parsed_declaration" : "extension ListEnvironment", - "key.parsed_scope.end" : 81, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var listContentBounds: ListContentBoundsKey<\/Type>.Provider<\/Type>? { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3452 - } - ], - "key.bodylength" : 112, - "key.bodyoffset" : 3515, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The provider for the `ListContentBounds` of the list. You may want to use the `Context`\npassed to the provider in order to vary your bounds based on, eg, the width of\nthe list view:\n\n```swift\n env.listContentBounds = { context in\n switch context.viewSize.width {\n case 0...600: return ... \/\/ Small\n case 600...900: return ... \/\/ Medium\n case 900...: return ... \/\/ Large\n }\n }\n```", - "key.doc.column" : 16, - "key.doc.comment" : "The provider for the `ListContentBounds` of the list. You may want to use the `Context`\npassed to the provider in order to vary your bounds based on, eg, the width of\nthe list view:\n\n```swift\n env.listContentBounds = { context in\n switch context.viewSize.width {\n case 0...600: return ... \/\/ Small\n case 600...900: return ... \/\/ Medium\n case 900...: return ... \/\/ Large\n }\n }\n```", - "key.doc.declaration" : "public var listContentBounds: ListContentBoundsKey.Provider? { get set }", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "listContentBounds<\/Name>s:10ListableUI15ListEnvironmentV17listContentBoundsAA0cfG0VAF7ContextVcSgvp<\/USR>public var listContentBounds: ListContentBoundsKey.Provider? { get set }<\/Declaration>The provider for the ListContentBounds<\/codeVoice> of the list. You may want to use the Context<\/codeVoice> passed to the provider in order to vary your bounds based on, eg, the width of the list view:<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 72, - "key.doc.name" : "listContentBounds", - "key.doc.type" : "Other", - "key.doclength" : 494, - "key.docoffset" : 2954, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listContentBounds<\/decl.name>: ListContentBoundsKey<\/ref.enum>.Provider<\/ref.typealias>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 169, - "key.line" : 72, - "key.modulename" : "ListableUI", - "key.name" : "listContentBounds", - "key.namelength" : 17, - "key.nameoffset" : 3463, - "key.offset" : 3459, - "key.parsed_declaration" : "public var listContentBounds : ListContentBoundsKey.Provider?", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 72, - "key.related_decls" : [ - { - "key.annotated_decl" : "listContentBounds(in:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((ListContentBounds.Context) -> ListContentBounds)?", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVAC7ContextVcSgD", - "key.usr" : "s:10ListableUI15ListEnvironmentV17listContentBoundsAA0cfG0VAF7ContextVcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func listContentBounds(in context: ListContentBounds<\/Type>.Context<\/Type>) -> ListContentBounds<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3693 - } - ], - "key.bodylength" : 57, - "key.bodyoffset" : 3785, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Calculates the bounds in the provided context.", - "key.doc.column" : 17, - "key.doc.comment" : "Calculates the bounds in the provided context.", - "key.doc.declaration" : "public func listContentBounds(in context: ListContentBounds.Context) -> ListContentBounds", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "listContentBounds(in:)<\/Name>s:10ListableUI15ListEnvironmentV17listContentBounds2inAA0cfG0VAG7ContextV_tF<\/USR>public func listContentBounds(in context: ListContentBounds.Context) -> ListContentBounds<\/Declaration>Calculates the bounds in the provided context.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 78, - "key.doc.name" : "listContentBounds(in:)", - "key.doc.type" : "Function", - "key.doclength" : 51, - "key.docoffset" : 3638, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> listContentBounds<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListContentBounds<\/ref.struct>.Context<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListContentBounds<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 143, - "key.line" : 78, - "key.modulename" : "ListableUI", - "key.name" : "listContentBounds(in:)", - "key.namelength" : 57, - "key.nameoffset" : 3705, - "key.offset" : 3700, - "key.parsed_declaration" : "public func listContentBounds(in context : ListContentBounds.Context) -> ListContentBounds", - "key.parsed_scope.end" : 80, - "key.parsed_scope.start" : 78, - "key.related_decls" : [ - { - "key.annotated_decl" : "listContentBounds<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListEnvironment) -> (ListContentBounds.Context) -> ListContentBounds", - "key.typeusr" : "$s2in10ListableUI17ListContentBoundsVAD7ContextV_tcD", - "key.usr" : "s:10ListableUI15ListEnvironmentV17listContentBounds2inAA0cfG0VAG7ContextV_tF" - } - ], - "key.typename" : "ListEnvironment.Type", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVmD", - "key.usr" : "s:10ListableUI15ListEnvironmentV" - }, - { - "key.annotated_decl" : "public struct ListContentBounds : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 850, - "key.bodyoffset" : 3877, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "For participating layouts; allows controlling the padding around and width of content when it is laid out.\n\n```\n┌──────────────────────────┐ ┌───────────────────────────────────────────┐\n│ padding.top │ │ padding.top │\n│ p ┌──────────────────┐ p │ │ ┌──────────────────┐ │\n│ a │ │ a │ │ │ │ │\n│ d │ │ d │ │ │ │ │\n│ d │ │ d │ │ │ │ │\n│ i │ │ i │ │ │ │ │\n│ n │ │ n │ │ │ │ │\n│ g │ │ g │ │ │ width │ │\n│ . │ │ . │ │ │◀────────────────▶│ │\n│ l │ │ r │ │ │ │ │\n│ e │ │ i │ │ │ │ │\n│ f │ │ g │ │ │ │ │\n│ t │ │ h │ │ │ │ │\n│ └──────────────────┘ t │ │ └──────────────────┘ │\n│ padding.bottom │ │ padding.bottom │\n└──────────────────────────┘ └───────────────────────────────────────────┘\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ListContentBounds : Equatable", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "ListContentBounds<\/Name>s:10ListableUI17ListContentBoundsV<\/USR>public struct ListContentBounds : Equatable<\/Declaration>For participating layouts; allows controlling the padding around and width of content when it is laid out.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 33, - "key.doc.name" : "ListContentBounds", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListContentBounds<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 880, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "ListContentBounds", - "key.namelength" : 17, - "key.nameoffset" : 3858, - "key.offset" : 3848, - "key.parsed_declaration" : "extension ListContentBounds", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 84, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Context<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4032 - } - ], - "key.bodylength" : 670, - "key.bodyoffset" : 4055, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "View and layout information passed to `environment.listContentBounds` to determine\nthe correct `ListContentBounds` for the list.", - "key.doc.column" : 19, - "key.doc.comment" : "View and layout information passed to `environment.listContentBounds` to determine\nthe correct `ListContentBounds` for the list.", - "key.doc.declaration" : "public struct Context", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "Context<\/Name>s:10ListableUI17ListContentBoundsV7ContextV<\/USR>public struct Context<\/Declaration>View and layout information passed to environment.listContentBounds<\/codeVoice> to determine the correct ListContentBounds<\/codeVoice> for the list.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 88, - "key.doc.name" : "Context", - "key.doc.type" : "Class", - "key.doclength" : 141, - "key.docoffset" : 3887, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Context<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 687, - "key.line" : 88, - "key.modulename" : "ListableUI", - "key.name" : "Context", - "key.namelength" : 7, - "key.nameoffset" : 4046, - "key.offset" : 4039, - "key.parsed_declaration" : "public struct Context", - "key.parsed_scope.end" : 109, - "key.parsed_scope.start" : 88, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var viewSize: CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4119 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The size of the view in question.", - "key.doc.column" : 20, - "key.doc.comment" : "The size of the view in question.", - "key.doc.declaration" : "public var viewSize: CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "viewSize<\/Name>s:10ListableUI17ListContentBoundsV7ContextV8viewSizeSo6CGSizeVvp<\/USR>public var viewSize: CGSize<\/Declaration>The size of the view in question.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 91, - "key.doc.name" : "viewSize", - "key.doc.type" : "Other", - "key.doclength" : 38, - "key.docoffset" : 4073, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> viewSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 91, - "key.modulename" : "ListableUI", - "key.name" : "viewSize", - "key.namelength" : 8, - "key.nameoffset" : 4130, - "key.offset" : 4126, - "key.parsed_declaration" : "public var viewSize : CGSize", - "key.parsed_scope.end" : 91, - "key.parsed_scope.start" : 91, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI17ListContentBoundsV7ContextV8viewSizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var safeAreaInsets: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4212 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The safe area applied to the view.", - "key.doc.column" : 20, - "key.doc.comment" : "The safe area applied to the view.", - "key.doc.declaration" : "public var safeAreaInsets: UIEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "safeAreaInsets<\/Name>s:10ListableUI17ListContentBoundsV7ContextV14safeAreaInsetsSo06UIEdgeI0Vvp<\/USR>public var safeAreaInsets: UIEdgeInsets<\/Declaration>The safe area applied to the view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 94, - "key.doc.name" : "safeAreaInsets", - "key.doc.type" : "Other", - "key.doclength" : 39, - "key.docoffset" : 4165, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 94, - "key.modulename" : "ListableUI", - "key.name" : "safeAreaInsets", - "key.namelength" : 14, - "key.nameoffset" : 4223, - "key.offset" : 4219, - "key.parsed_declaration" : "public var safeAreaInsets : UIEdgeInsets", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 94, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI17ListContentBoundsV7ContextV14safeAreaInsetsSo06UIEdgeI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var direction: LayoutDirection<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4304 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The layout direction.", - "key.doc.column" : 20, - "key.doc.comment" : "The layout direction.", - "key.doc.declaration" : "public var direction: LayoutDirection", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "direction<\/Name>s:10ListableUI17ListContentBoundsV7ContextV9directionAA15LayoutDirectionOvp<\/USR>public var direction: LayoutDirection<\/Declaration>The layout direction.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 97, - "key.doc.name" : "direction", - "key.doc.type" : "Other", - "key.doclength" : 26, - "key.docoffset" : 4270, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 97, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 4315, - "key.offset" : 4311, - "key.parsed_declaration" : "public var direction : LayoutDirection", - "key.parsed_scope.end" : 97, - "key.parsed_scope.start" : 97, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI17ListContentBoundsV7ContextV9directionAA15LayoutDirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(viewSize: CGSize<\/Type>, safeAreaInsets: UIEdgeInsets<\/Type>, direction: LayoutDirection<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4449 - } - ], - "key.bodylength" : 134, - "key.bodyoffset" : 4585, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new context to use in the `ListEnvironment`'s `listContentBounds`.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new context to use in the `ListEnvironment`'s `listContentBounds`.", - "key.doc.declaration" : "public init(viewSize: CGSize, safeAreaInsets: UIEdgeInsets, direction: LayoutDirection)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "init(viewSize:safeAreaInsets:direction:)<\/Name>s:10ListableUI17ListContentBoundsV7ContextV8viewSize14safeAreaInsets9directionAESo6CGSizeV_So06UIEdgeK0VAA15LayoutDirectionOtcfc<\/USR>public init(viewSize: CGSize, safeAreaInsets: UIEdgeInsets, direction: LayoutDirection)<\/Declaration>Creates a new context to use in the ListEnvironment<\/codeVoice>’s listContentBounds<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 100, - "key.doc.name" : "init(viewSize:safeAreaInsets:direction:)", - "key.doc.type" : "Function", - "key.doclength" : 81, - "key.docoffset" : 4360, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(viewSize<\/decl.var.parameter.argument_label>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, safeAreaInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 264, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "init(viewSize:safeAreaInsets:direction:)", - "key.namelength" : 127, - "key.nameoffset" : 4456, - "key.offset" : 4456, - "key.parsed_declaration" : "public init(\n viewSize: CGSize,\n safeAreaInsets : UIEdgeInsets,\n direction: LayoutDirection\n)", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 100, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListContentBounds.Context.Type) -> (CGSize, UIEdgeInsets, LayoutDirection) -> ListContentBounds.Context", - "key.typeusr" : "$s8viewSize14safeAreaInsets9direction10ListableUI17ListContentBoundsV7ContextVSo6CGSizeV_So06UIEdgeE0VAD15LayoutDirectionOtcD", - "key.usr" : "s:10ListableUI17ListContentBoundsV7ContextV8viewSize14safeAreaInsets9directionAESo6CGSizeV_So06UIEdgeK0VAA15LayoutDirectionOtcfc" - } - ], - "key.typename" : "ListContentBounds.Context.Type", - "key.typeusr" : "$s10ListableUI17ListContentBoundsV7ContextVmD", - "key.usr" : "s:10ListableUI17ListContentBoundsV7ContextV" - } - ], - "key.typename" : "ListContentBounds.Type", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVmD", - "key.usr" : "s:10ListableUI17ListContentBoundsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ListContentBoundsKey : ListEnvironmentKey<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4932 - } - ], - "key.bodylength" : 193, - "key.bodyoffset" : 4987, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A key used to store default \/ provided bounds into the list's environment.\nUseful if a parent screen would like to provide default width constraints\nto be applied to participating layouts.", - "key.doc.column" : 13, - "key.doc.comment" : "A key used to store default \/ provided bounds into the list's environment.\nUseful if a parent screen would like to provide default width constraints\nto be applied to participating layouts.", - "key.doc.declaration" : "public enum ListContentBoundsKey : ListEnvironmentKey", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.doc.full_as_xml" : "ListContentBoundsKey<\/Name>s:10ListableUI20ListContentBoundsKeyO<\/USR>public enum ListContentBoundsKey : ListEnvironmentKey<\/Declaration>A key used to store default \/ provided bounds into the list’s environment. Useful if a parent screen would like to provide default width constraints to be applied to participating layouts.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 116, - "key.doc.name" : "ListContentBoundsKey", - "key.doc.type" : "Other", - "key.doclength" : 201, - "key.docoffset" : 4731, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 18, - "key.offset" : 4967 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListContentBoundsKey<\/decl.name> : ListEnvironmentKey<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "ListEnvironmentKey" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 242, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "ListContentBoundsKey", - "key.namelength" : 20, - "key.nameoffset" : 4944, - "key.offset" : 4939, - "key.parsed_declaration" : "public enum ListContentBoundsKey : ListEnvironmentKey", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListContentBoundsKey<\/Type>.Provider = (ListContentBounds<\/Type>.Context<\/Type>) -> ListContentBounds<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4997 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListContentBoundsKey<\/ref.enum>.Provider<\/decl.name> = (ListContentBounds<\/ref.struct>.Context<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListContentBounds<\/ref.struct><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 69, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "Provider", - "key.namelength" : 8, - "key.nameoffset" : 5014, - "key.offset" : 5004, - "key.parsed_declaration" : "public typealias Provider = (ListContentBounds.Context) -> ListContentBounds", - "key.parsed_scope.end" : 118, - "key.parsed_scope.start" : 118, - "key.reusingastcontext" : false, - "key.typename" : "((ListContentBounds.Context) -> ListContentBounds).Type", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVAC7ContextVcmD", - "key.usr" : "s:10ListableUI20ListContentBoundsKeyO8Providera" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListContentBoundsKey<\/Type>.Value = Provider<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5078 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The type of value stored by this key.", - "key.doc.column" : 20, - "key.doc.declaration" : "associatedtype Value", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.doc.full_as_xml" : "Value<\/Name>s:10ListableUI18ListEnvironmentKeyP5ValueQa<\/USR>associatedtype Value<\/Declaration>The type of value stored by this key.<\/Para><\/Abstract>This documentation comment was inherited from ListEnvironmentKey<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "Value", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListContentBoundsKey<\/ref.enum>.Value<\/decl.name> = Provider<\/ref.typealias>?<\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 27, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 5095, - "key.offset" : 5085, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP5ValueQa" - } - ], - "key.parsed_declaration" : "public typealias Value = Provider?", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.typename" : "((ListContentBounds.Context) -> ListContentBounds)?.Type", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVAC7ContextVcSgmD", - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP5ValueQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: Value<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5122 - } - ], - "key.bodylength" : 17, - "key.bodyoffset" : 5161, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value that will be vended by an `Environment` for this key if no other value has been set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self.Value { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract>This documentation comment was inherited from ListEnvironmentKey<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentBounds\/ListContentBounds.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Value<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 50, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 5140, - "key.offset" : 5129, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue: Value", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.typename" : "((ListContentBounds.Context) -> ListContentBounds)?", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVAC7ContextVcSgD", - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ" - } - ], - "key.typename" : "ListContentBoundsKey.Type", - "key.typeusr" : "$s10ListableUI20ListContentBoundsKeyOmD", - "key.usr" : "s:10ListableUI20ListContentBoundsKeyO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentContext.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1364, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ContentContext : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 808 - } - ], - "key.bodylength" : 512, - "key.bodyoffset" : 850, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `Equatable` value which represents the overall context for all content presented in a list.\n\nEg, you might pass a theme here, the traits for your screen (eg, dark mode, a11y settings, etc), or\nany other value which when changed, should cause the entire list to re-render.\n\nIf the `ContentContext` changes across list renders, all list measurements will be thrown out\nand re-measured during the next render pass.\n\n```\nlistView.content.context = .init(\n MyTraits(textSize: .medium)\n)\n\n\/\/ Changing to large will cause the list to re-render all contents.\nlistView.content.context = .init(\n MyTraits(textSize: .large)\n)\n```", - "key.doc.column" : 15, - "key.doc.comment" : "An `Equatable` value which represents the overall context for all content presented in a list.\n\nEg, you might pass a theme here, the traits for your screen (eg, dark mode, a11y settings, etc), or\nany other value which when changed, should cause the entire list to re-render.\n\nIf the `ContentContext` changes across list renders, all list measurements will be thrown out\nand re-measured during the next render pass.\n\n```\nlistView.content.context = .init(\n MyTraits(textSize: .medium)\n)\n\n\/\/ Changing to large will cause the list to re-render all contents.\nlistView.content.context = .init(\n MyTraits(textSize: .large)\n)\n```", - "key.doc.declaration" : "public struct ContentContext : Equatable", - "key.doc.discussion" : [ - { - "Para" : "Eg, you might pass a theme here, the traits for your screen (eg, dark mode, a11y settings, etc), or any other value which when changed, should cause the entire list to re-render." - }, - { - "Para" : "If the `ContentContext` changes across list renders, all list measurements will be thrown out and re-measured during the next render pass." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentContext.swift", - "key.doc.full_as_xml" : "ContentContext<\/Name>s:10ListableUI14ContentContextV<\/USR>public struct ContentContext : Equatable<\/Declaration>An Equatable<\/codeVoice> value which represents the overall context for all content presented in a list.<\/Para><\/Abstract>Eg, you might pass a theme here, the traits for your screen (eg, dark mode, a11y settings, etc), or any other value which when changed, should cause the entire list to re-render.<\/Para>If the ContentContext<\/codeVoice> changes across list renders, all list measurements will be thrown out and re-measured during the next render pass.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 29, - "key.doc.name" : "ContentContext", - "key.doc.type" : "Class", - "key.doclength" : 696, - "key.docoffset" : 112, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 839 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentContext.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ContentContext<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 548, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "ContentContext", - "key.namelength" : 14, - "key.nameoffset" : 822, - "key.offset" : 815, - "key.parsed_declaration" : "public struct ContentContext : Equatable", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let value: Any<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 860 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentContext.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> value<\/decl.name>: Any<\/syntaxtype.keyword><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "value", - "key.namelength" : 5, - "key.nameoffset" : 872, - "key.offset" : 868, - "key.parsed_declaration" : "private let value : Any", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.typename" : "Any", - "key.typeusr" : "$sypD", - "key.usr" : "s:10ListableUI14ContentContextV5value33_9A813A63B9ABF1DBAE4F0D7044DF32A2LLypvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let isEqual: (Any) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 888 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentContext.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> isEqual<\/decl.name>: (Any<\/syntaxtype.keyword><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "isEqual", - "key.namelength" : 7, - "key.nameoffset" : 900, - "key.offset" : 896, - "key.parsed_declaration" : "private let isEqual : (Any) -> Bool", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 32, - "key.reusingastcontext" : false, - "key.typename" : "(Any) -> Bool", - "key.typeusr" : "$sySbypcD", - "key.usr" : "s:10ListableUI14ContentContextV7isEqual33_9A813A63B9ABF1DBAE4F0D7044DF32A2LLySbypcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<Value>(_ value: Value<\/Type>) where Value<\/Type> : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1000 - } - ], - "key.bodylength" : 190, - "key.bodyoffset" : 1047, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new context with the provided `Equatable` value.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new context with the provided `Equatable` value.", - "key.doc.declaration" : "public init(_ value: Value) where Value : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentContext.swift", - "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI14ContentContextVyACxcSQRzlufc<\/USR>public init<Value>(_ value: Value) where Value : Equatable<\/Declaration>Creates a new context with the provided Equatable<\/codeVoice> value.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 35, - "key.doc.name" : "init(_:)", - "key.doc.type" : "Function", - "key.doclength" : 63, - "key.docoffset" : 933, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentContext.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Value<\/ref.generic_type_param> : Equatable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 231, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 38, - "key.nameoffset" : 1007, - "key.offset" : 1007, - "key.parsed_declaration" : "public init(_ value : Value)", - "key.parsed_scope.end" : 42, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value : Equatable<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1018 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentContext.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name> : Equatable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 15, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 1012, - "key.offset" : 1012, - "key.parsed_declaration" : "public init (ContentContext.Type) -> (Value) -> ContentContext", - "key.typeusr" : "$sy10ListableUI14ContentContextVxcSQRzluD", - "key.usr" : "s:10ListableUI14ContentContextVyACxcSQRzlufc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func == (lhs: ContentContext<\/Type>, rhs: ContentContext<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1248 - } - ], - "key.bodylength" : 36, - "key.bodyoffset" : 1324, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns a Boolean value indicating whether two values are equal.\n\nEquality is the inverse of inequality. For any values `a` and `b`,\n`a == b` implies that `a != b` is `false`.\n\n- Parameters:\n - lhs: A value to compare.\n - rhs: Another value to compare.", - "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "Equality is the inverse of inequality. For any values `a` and `b`, `a == b` implies that `a != b` is `false`." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "==(_:_:)<\/Name>s:SQ2eeoiySbx_xtFZ<\/USR>static func == (lhs: Self, rhs: Self) -> Bool<\/Declaration>Returns a Boolean value indicating whether two values are equal.<\/Para><\/Abstract>lhs<\/Name>in<\/Direction>A value to compare.<\/Para><\/Discussion><\/Parameter>rhs<\/Name>in<\/Direction>Another value to compare.<\/Para><\/Discussion><\/Parameter><\/Parameters>Equality is the inverse of inequality. For any values a<\/codeVoice> and b<\/codeVoice>, a == b<\/codeVoice> implies that a != b<\/codeVoice> is false<\/codeVoice>.<\/Para>This documentation comment was inherited from Equatable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "==(_:_:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A value to compare." - } - ], - "name" : "lhs" - }, - { - "discussion" : [ - { - "Para" : "Another value to compare." - } - ], - "name" : "rhs" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentContext.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: ContentContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: ContentContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 106, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "==(_:_:)", - "key.namelength" : 47, - "key.nameoffset" : 1267, - "key.offset" : 1255, - "key.overrides" : [ - { - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.parsed_declaration" : "public static func == (lhs : ContentContext, rhs : ContentContext) -> Bool", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ContentContext.Type) -> (ContentContext, ContentContext) -> Bool", - "key.typeusr" : "$sySb10ListableUI14ContentContextV_ACtcD", - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.typename" : "ContentContext.Type", - "key.typeusr" : "$s10ListableUI14ContentContextVmD", - "key.usr" : "s:10ListableUI14ContentContextV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1417, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ContentFilters : Hashable<\/Type>, CaseIterable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 401 - } - ], - "key.bodylength" : 961, - "key.bodyoffset" : 454, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A filter enum which allows you to query the types of content contained in a `Content` or `Section` object.\n\nFor example, to see if `Content` contains any items or section headers, you could do:\n```\nlet contains = content.contains(any: [.items, .sectionHeaders])\n```", - "key.doc.column" : 13, - "key.doc.comment" : "A filter enum which allows you to query the types of content contained in a `Content` or `Section` object.\n\nFor example, to see if `Content` contains any items or section headers, you could do:\n```\nlet contains = content.contains(any: [.items, .sectionHeaders])\n```", - "key.doc.declaration" : "public enum ContentFilters : Hashable, CaseIterable", - "key.doc.discussion" : [ - { - "Para" : "For example, to see if `Content` contains any items or section headers, you could do:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "ContentFilters<\/Name>s:10ListableUI14ContentFiltersO<\/USR>public enum ContentFilters : Hashable, CaseIterable<\/Declaration>A filter enum which allows you to query the types of content contained in a Content<\/codeVoice> or Section<\/codeVoice> object.<\/Para><\/Abstract>For example, to see if Content<\/codeVoice> contains any items or section headers, you could do:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "ContentFilters", - "key.doc.type" : "Other", - "key.doclength" : 289, - "key.docoffset" : 112, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 430 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 12, - "key.offset" : 440 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ContentFilters<\/decl.name> : Hashable<\/ref.protocol>, CaseIterable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - }, - { - "key.name" : "CaseIterable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1008, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "ContentFilters", - "key.namelength" : 14, - "key.nameoffset" : 413, - "key.offset" : 408, - "key.parsed_declaration" : "public enum ContentFilters : Hashable, CaseIterable", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var anyContent: Set<\/Type><`Self`> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 547 - } - ], - "key.bodylength" : 32, - "key.bodyoffset" : 589, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If there is any content in the list at all, including headers and footers.", - "key.doc.column" : 23, - "key.doc.comment" : "If there is any content in the list at all, including headers and footers.", - "key.doc.declaration" : "public static var anyContent: Set<`Self`> { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "anyContent<\/Name>s:10ListableUI14ContentFiltersO03anyC0ShyACGvpZ<\/USR>public static var anyContent: Set<`Self`> { get }<\/Declaration>If there is any content in the list at all, including headers and footers.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "anyContent", - "key.doc.type" : "Other", - "key.doclength" : 79, - "key.docoffset" : 464, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> anyContent<\/decl.name>: Set<\/ref.struct><`Self`><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 68, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "anyContent", - "key.namelength" : 10, - "key.nameoffset" : 565, - "key.offset" : 554, - "key.parsed_declaration" : "public static var anyContent : Set", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI14ContentFiltersOGD", - "key.usr" : "s:10ListableUI14ContentFiltersO03anyC0ShyACGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var sectionsOnly: Set<\/Type><`Self`> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 755 - } - ], - "key.bodylength" : 102, - "key.bodyoffset" : 799, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Check if the content in the list is section-driven content, with the\ncheck ignoring any list-level fields.", - "key.doc.column" : 23, - "key.doc.comment" : "Check if the content in the list is section-driven content, with the\ncheck ignoring any list-level fields.", - "key.doc.declaration" : "public static var sectionsOnly: Set<`Self`> { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "sectionsOnly<\/Name>s:10ListableUI14ContentFiltersO12sectionsOnlyShyACGvpZ<\/USR>public static var sectionsOnly: Set<`Self`> { get }<\/Declaration>Check if the content in the list is section-driven content, with the check ignoring any list-level fields.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 26, - "key.doc.name" : "sectionsOnly", - "key.doc.type" : "Other", - "key.doclength" : 119, - "key.docoffset" : 632, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionsOnly<\/decl.name>: Set<\/ref.struct><`Self`><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 140, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "sectionsOnly", - "key.namelength" : 12, - "key.nameoffset" : 773, - "key.offset" : 762, - "key.parsed_declaration" : "public static var sectionsOnly : Set", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI14ContentFiltersOGD", - "key.usr" : "s:10ListableUI14ContentFiltersO12sectionsOnlyShyACGvpZ" - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 24, - "key.offset" : 967, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case listContainerHeader<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the list has a list-level container header.", - "key.doc.column" : 10, - "key.doc.comment" : "If the list has a list-level container header.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "listContainerHeader<\/Name>s:10ListableUI14ContentFiltersO19listContainerHeaderyA2CmF<\/USR><\/Declaration>If the list has a list-level container header.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 35, - "key.doc.name" : "listContainerHeader", - "key.doc.type" : "Other", - "key.doclength" : 51, - "key.docoffset" : 912, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listContainerHeader<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 19, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "listContainerHeader", - "key.namelength" : 19, - "key.nameoffset" : 972, - "key.offset" : 972, - "key.parsed_declaration" : "case listContainerHeader", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.typename" : "(ContentFilters.Type) -> ContentFilters", - "key.typeusr" : "$sy10ListableUI14ContentFiltersOACmcD", - "key.usr" : "s:10ListableUI14ContentFiltersO19listContainerHeaderyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 15, - "key.offset" : 1041, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case listHeader<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the list has a list-level header.", - "key.doc.column" : 10, - "key.doc.comment" : "If the list has a list-level header.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "listHeader<\/Name>s:10ListableUI14ContentFiltersO10listHeaderyA2CmF<\/USR><\/Declaration>If the list has a list-level header.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 37, - "key.doc.name" : "listHeader", - "key.doc.type" : "Other", - "key.doclength" : 41, - "key.docoffset" : 996, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listHeader<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 10, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "listHeader", - "key.namelength" : 10, - "key.nameoffset" : 1046, - "key.offset" : 1046, - "key.parsed_declaration" : "case listHeader", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.typename" : "(ContentFilters.Type) -> ContentFilters", - "key.typeusr" : "$sy10ListableUI14ContentFiltersOACmcD", - "key.usr" : "s:10ListableUI14ContentFiltersO10listHeaderyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 15, - "key.offset" : 1106, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case listFooter<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the list has a list-level footer.", - "key.doc.column" : 10, - "key.doc.comment" : "If the list has a list-level footer.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "listFooter<\/Name>s:10ListableUI14ContentFiltersO10listFooteryA2CmF<\/USR><\/Declaration>If the list has a list-level footer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 39, - "key.doc.name" : "listFooter", - "key.doc.type" : "Other", - "key.doclength" : 41, - "key.docoffset" : 1061, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listFooter<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 10, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "listFooter", - "key.namelength" : 10, - "key.nameoffset" : 1111, - "key.offset" : 1111, - "key.parsed_declaration" : "case listFooter", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.typename" : "(ContentFilters.Type) -> ContentFilters", - "key.typeusr" : "$sy10ListableUI14ContentFiltersOACmcD", - "key.usr" : "s:10ListableUI14ContentFiltersO10listFooteryA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 21, - "key.offset" : 1172, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case overscrollFooter<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the list has an overscroll footer.", - "key.doc.column" : 10, - "key.doc.comment" : "If the list has an overscroll footer.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "overscrollFooter<\/Name>s:10ListableUI14ContentFiltersO16overscrollFooteryA2CmF<\/USR><\/Declaration>If the list has an overscroll footer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 41, - "key.doc.name" : "overscrollFooter", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 1126, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> overscrollFooter<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 16, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "overscrollFooter", - "key.namelength" : 16, - "key.nameoffset" : 1177, - "key.offset" : 1177, - "key.parsed_declaration" : "case overscrollFooter", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 41, - "key.reusingastcontext" : false, - "key.typename" : "(ContentFilters.Type) -> ContentFilters", - "key.typeusr" : "$sy10ListableUI14ContentFiltersOACmcD", - "key.usr" : "s:10ListableUI14ContentFiltersO16overscrollFooteryA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 10, - "key.offset" : 1258, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case items<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the sections in the list contain any items.", - "key.doc.column" : 10, - "key.doc.comment" : "If the sections in the list contain any items.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI14ContentFiltersO5itemsyA2CmF<\/USR><\/Declaration>If the sections in the list contain any items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 44, - "key.doc.name" : "items", - "key.doc.type" : "Other", - "key.doclength" : 51, - "key.docoffset" : 1203, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> items<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 5, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 1263, - "key.offset" : 1263, - "key.parsed_declaration" : "case items", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.typename" : "(ContentFilters.Type) -> ContentFilters", - "key.typeusr" : "$sy10ListableUI14ContentFiltersOACmcD", - "key.usr" : "s:10ListableUI14ContentFiltersO5itemsyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 1322, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case sectionHeaders<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If any section in the list has a header.", - "key.doc.column" : 10, - "key.doc.comment" : "If any section in the list has a header.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "sectionHeaders<\/Name>s:10ListableUI14ContentFiltersO14sectionHeadersyA2CmF<\/USR><\/Declaration>If any section in the list has a header.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 46, - "key.doc.name" : "sectionHeaders", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 1273, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionHeaders<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "sectionHeaders", - "key.namelength" : 14, - "key.nameoffset" : 1327, - "key.offset" : 1327, - "key.parsed_declaration" : "case sectionHeaders", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.typename" : "(ContentFilters.Type) -> ContentFilters", - "key.typeusr" : "$sy10ListableUI14ContentFiltersOACmcD", - "key.usr" : "s:10ListableUI14ContentFiltersO14sectionHeadersyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 1395, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case sectionFooters<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If any section in the list has a footer.", - "key.doc.column" : 10, - "key.doc.comment" : "If any section in the list has a footer.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.doc.full_as_xml" : "sectionFooters<\/Name>s:10ListableUI14ContentFiltersO14sectionFootersyA2CmF<\/USR><\/Declaration>If any section in the list has a footer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 48, - "key.doc.name" : "sectionFooters", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 1346, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentFilters.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionFooters<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "sectionFooters", - "key.namelength" : 14, - "key.nameoffset" : 1400, - "key.offset" : 1400, - "key.parsed_declaration" : "case sectionFooters", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 48, - "key.reusingastcontext" : false, - "key.typename" : "(ContentFilters.Type) -> ContentFilters", - "key.typeusr" : "$sy10ListableUI14ContentFiltersOACmcD", - "key.usr" : "s:10ListableUI14ContentFiltersO14sectionFootersyA2CmF" - } - ] - } - ], - "key.typename" : "ContentFilters.Type", - "key.typeusr" : "$s10ListableUI14ContentFiltersOmD", - "key.usr" : "s:10ListableUI14ContentFiltersO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentLayoutsStorage.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 900, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ContentLayoutsStorage<\/Declaration>", - "key.bodylength" : 607, - "key.bodyoffset" : 291, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Underlying storage used in `ItemLayouts`, `HeaderFooterLayouts`, and `SectionLayouts`.\nSee those types for more information.\n", - "key.doc.column" : 8, - "key.doc.comment" : "\nUnderlying storage used in `ItemLayouts`, `HeaderFooterLayouts`, and `SectionLayouts`.\nSee those types for more information.", - "key.doc.declaration" : "struct ContentLayoutsStorage", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentLayoutsStorage.swift", - "key.doc.full_as_xml" : "ContentLayoutsStorage<\/Name>s:10ListableUI21ContentLayoutsStorageV<\/USR>struct ContentLayoutsStorage<\/Declaration>Underlying storage used in ItemLayouts<\/codeVoice>, HeaderFooterLayouts<\/codeVoice>, and SectionLayouts<\/codeVoice>. See those types for more information.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 16, - "key.doc.name" : "ContentLayoutsStorage", - "key.doc.type" : "Class", - "key.doclength" : 141, - "key.docoffset" : 120, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentLayoutsStorage.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ContentLayoutsStorage<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 638, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "ContentLayoutsStorage", - "key.namelength" : 21, - "key.nameoffset" : 268, - "key.offset" : 261, - "key.parsed_declaration" : "struct ContentLayoutsStorage", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var storage: [ObjectIdentifier<\/Type> : Any]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 301 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentLayoutsStorage.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> storage<\/decl.name>: [ObjectIdentifier<\/ref.struct> : Any<\/syntaxtype.keyword>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "storage", - "key.namelength" : 7, - "key.nameoffset" : 313, - "key.offset" : 309, - "key.parsed_declaration" : "private var storage : [ObjectIdentifier:Any] = [:]", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[ObjectIdentifier : Any]", - "key.typeusr" : "$sSDySOypGD", - "key.usr" : "s:10ListableUI21ContentLayoutsStorageV7storage33_F248E6F61551767C4A010A1266E652AALLSDySOypGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func get<ValueType>(_ valueType: ValueType<\/Type>.Type, default defaultValue: @autoclosure () -> ValueType<\/Type>) -> ValueType<\/Type><\/Declaration>", - "key.bodylength" : 207, - "key.bodyoffset" : 504, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentLayoutsStorage.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> get<\/decl.name><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>, default<\/decl.var.parameter.argument_label> defaultValue<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ValueType<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ValueType<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 351, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "get(_:default:)", - "key.namelength" : 119, - "key.nameoffset" : 366, - "key.offset" : 361, - "key.parsed_declaration" : "func get(\n _ valueType : ValueType.Type,\n default defaultValue : @autoclosure () -> ValueType\n) -> ValueType", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "ValueType<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentLayoutsStorage.swift", - "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 9, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "ValueType", - "key.namelength" : 9, - "key.nameoffset" : 370, - "key.offset" : 370, - "key.parsed_declaration" : "func getlet ID: ObjectIdentifier<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentLayoutsStorage.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> ID<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 36, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "ID", - "key.namelength" : 2, - "key.nameoffset" : 517, - "key.offset" : 513, - "key.parsed_declaration" : "let ID = ObjectIdentifier(valueType)", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.typename" : "ObjectIdentifier", - "key.typeusr" : "$sSOD", - "key.usr" : "s:10ListableUI21ContentLayoutsStorageV3get_7defaultxxm_xyXKtlF2IDL_SOvp" - } - ], - "key.typename" : " (ContentLayoutsStorage) -> (ValueType.Type, @autoclosure () -> ValueType) -> ValueType", - "key.typeusr" : "$s_7defaultxxm_xyXKtcluD", - "key.usr" : "s:10ListableUI21ContentLayoutsStorageV3get_7defaultxxm_xyXKtlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "mutating func set<ValueType>(_ valueType: ValueType<\/Type>.Type, new newValue: ValueType<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 722 - } - ], - "key.bodylength" : 66, - "key.bodyoffset" : 830, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentLayoutsStorage.swift", - "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label> newValue<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 166, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "set(_:new:)", - "key.namelength" : 92, - "key.nameoffset" : 736, - "key.offset" : 731, - "key.parsed_declaration" : "mutating func set(\n _ valueType : ValueType.Type,\n new newValue : ValueType\n)", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 34, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "ValueType<\/Declaration>", - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ContentLayoutsStorage.swift", - "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 9, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "ValueType", - "key.namelength" : 9, - "key.nameoffset" : 740, - "key.offset" : 740, - "key.parsed_declaration" : "mutating func set (inout ContentLayoutsStorage) -> (ValueType.Type, ValueType) -> ()", - "key.typeusr" : "$s_3newyxm_xtcluD", - "key.usr" : "s:10ListableUI21ContentLayoutsStorageV3set_3newyxm_xtlF" - } - ], - "key.typename" : "ContentLayoutsStorage.Type", - "key.typeusr" : "$s10ListableUI21ContentLayoutsStorageVmD", - "key.usr" : "s:10ListableUI21ContentLayoutsStorageV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3871, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "class OSLog : NSObject<\/Type><\/Declaration>", - "key.bodylength" : 511, - "key.bodyoffset" : 170, - "key.column" : 1, - "key.decl_lang" : "source.lang.objc", - "key.doc.comment" : "Log types available within Listable.", - "key.doclength" : 41, - "key.docoffset" : 112, - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/usr\/include\/os\/log.h", - "key.fully_annotated_decl" : "class<\/syntaxtype.keyword> OSLog<\/decl.name> : NSObject<\/ref.class><\/decl.class>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 529, - "key.line" : 23, - "key.modulename" : "os.log", - "key.name" : "OSLog", - "key.namelength" : 5, - "key.nameoffset" : 163, - "key.offset" : 153, - "key.parsed_declaration" : "extension OSLog", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static let updateContent: OSLog<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> updateContent<\/decl.name>: OSLog<\/ref.class><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 114, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "updateContent", - "key.namelength" : 13, - "key.nameoffset" : 186, - "key.offset" : 175, - "key.parsed_declaration" : "static let updateContent = OSLog(\n subsystem: \"com.kve.Listable\",\n category: \"ListView Update\"\n)", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "OSLog", - "key.typeusr" : "$sSo9OS_os_logCD", - "key.usr" : "s:So9OS_os_logC10ListableUIE13updateContentABvpZ" - }, - { - "key.annotated_decl" : "static let scrollView: OSLog<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> scrollView<\/decl.name>: OSLog<\/ref.class><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 115, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "scrollView", - "key.namelength" : 10, - "key.nameoffset" : 310, - "key.offset" : 299, - "key.parsed_declaration" : "static let scrollView = OSLog(\n subsystem: \"com.kve.Listable\",\n category: \"ListView ScrollView\"\n)", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.typename" : "OSLog", - "key.typeusr" : "$sSo9OS_os_logCD", - "key.usr" : "s:So9OS_os_logC10ListableUIE10scrollViewABvpZ" - }, - { - "key.annotated_decl" : "static let listInteraction: OSLog<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> listInteraction<\/decl.name>: OSLog<\/ref.class><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 121, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "listInteraction", - "key.namelength" : 15, - "key.nameoffset" : 435, - "key.offset" : 424, - "key.parsed_declaration" : "static let listInteraction = OSLog(\n subsystem: \"com.kve.Listable\",\n category: \"ListView Interaction\"\n)", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.typename" : "OSLog", - "key.typeusr" : "$sSo9OS_os_logCD", - "key.usr" : "s:So9OS_os_logC10ListableUIE15listInteractionABvpZ" - }, - { - "key.annotated_decl" : "static let stateObserver: OSLog<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> stateObserver<\/decl.name>: OSLog<\/ref.class><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 125, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "stateObserver", - "key.namelength" : 13, - "key.nameoffset" : 566, - "key.offset" : 555, - "key.parsed_declaration" : "static let stateObserver = OSLog(\n subsystem: \"com.kve.Listable\",\n category: \"ListView ListStateObserver\"\n)", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.typename" : "OSLog", - "key.typeusr" : "$sSo9OS_os_logCD", - "key.usr" : "s:So9OS_os_logC10ListableUIE13stateObserverABvpZ" - } - ], - "key.typename" : "OSLog.Type", - "key.typeusr" : "$sSo9OS_os_logCmD", - "key.usr" : "c:objc(cs)OS_os_log" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "protocol SignpostLoggable<\/Declaration>", - "key.bodylength" : 52, - "key.bodyoffset" : 767, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An object which can be logged to `SignpostLogger`.", - "key.doc.column" : 10, - "key.doc.comment" : "An object which can be logged to `SignpostLogger`.", - "key.doc.declaration" : "protocol SignpostLoggable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.doc.full_as_xml" : "SignpostLoggable<\/Name>s:10ListableUI16SignpostLoggableP<\/USR>protocol SignpostLoggable<\/Declaration>An object which can be logged to SignpostLogger<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 36, - "key.doc.name" : "SignpostLoggable", - "key.doc.type" : "Class", - "key.doclength" : 55, - "key.docoffset" : 685, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> SignpostLoggable<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 80, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "SignpostLoggable", - "key.namelength" : 16, - "key.nameoffset" : 749, - "key.offset" : 740, - "key.parsed_declaration" : "protocol SignpostLoggable", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var signpostInfo: SignpostLoggingInfo<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 812, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> signpostInfo<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "signpostInfo", - "key.namelength" : 12, - "key.nameoffset" : 776, - "key.offset" : 772, - "key.parsed_declaration" : "var signpostInfo : SignpostLoggingInfo", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16SignpostLoggableP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "SignpostLoggingInfo", - "key.typeusr" : "$s10ListableUI19SignpostLoggingInfoVD", - "key.usr" : "s:10ListableUI16SignpostLoggableP12signpostInfoAA0c7LoggingF0Vvp" - } - ], - "key.typename" : "SignpostLoggable.Type", - "key.typeusr" : "$s10ListableUI16SignpostLoggable_pmD", - "key.usr" : "s:10ListableUI16SignpostLoggableP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SignpostLoggingInfo<\/Declaration>", - "key.bodylength" : 67, - "key.bodyoffset" : 918, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The info logged to `SignpostLogger` from a `SignpostLoggable`.", - "key.doc.column" : 8, - "key.doc.comment" : "The info logged to `SignpostLogger` from a `SignpostLoggable`.", - "key.doc.declaration" : "struct SignpostLoggingInfo", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.doc.full_as_xml" : "SignpostLoggingInfo<\/Name>s:10ListableUI19SignpostLoggingInfoV<\/USR>struct SignpostLoggingInfo<\/Declaration>The info logged to SignpostLogger<\/codeVoice> from a SignpostLoggable<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "SignpostLoggingInfo", - "key.doc.type" : "Class", - "key.doclength" : 67, - "key.docoffset" : 823, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SignpostLoggingInfo<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 96, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "SignpostLoggingInfo", - "key.namelength" : 19, - "key.nameoffset" : 897, - "key.offset" : 890, - "key.parsed_declaration" : "struct SignpostLoggingInfo", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var identifier: String<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 927, - "key.offset" : 923, - "key.parsed_declaration" : "var identifier : String?", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI19SignpostLoggingInfoV10identifierSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var instanceIdentifier: String<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> instanceIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "instanceIdentifier", - "key.namelength" : 18, - "key.nameoffset" : 956, - "key.offset" : 952, - "key.parsed_declaration" : "var instanceIdentifier : String?", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI19SignpostLoggingInfoV18instanceIdentifierSSSgvp" - } - ], - "key.typename" : "SignpostLoggingInfo.Type", - "key.typeusr" : "$s10ListableUI19SignpostLoggingInfoVmD", - "key.usr" : "s:10ListableUI19SignpostLoggingInfoV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SignpostLogger<\/Declaration>", - "key.bodylength" : 2350, - "key.bodyoffset" : 1518, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Signpost logging is logging visible in Instruments.app\n\nListable utilizes signpost logging to instrument various parts of the\nlist update cycle: Content diffing, Collection View updating, item and header\/footer\nsizing, etc. \n\nResources\n---------\n WWDC 2018: https:\/\/developer.apple.com\/videos\/play\/wwdc2018\/405\/\n WWDC 2019: https:\/\/developer.apple.com\/wwdc20\/10168\n Swift By Sundell: https:\/\/www.swiftbysundell.com\/wwdc2018\/getting-started-with-signposts\/\n", - "key.doc.column" : 8, - "key.doc.comment" : "\nSignpost logging is logging visible in Instruments.app\n\nListable utilizes signpost logging to instrument various parts of the\nlist update cycle: Content diffing, Collection View updating, item and header\/footer\nsizing, etc. \n\nResources\n---------\n WWDC 2018: https:\/\/developer.apple.com\/videos\/play\/wwdc2018\/405\/\n WWDC 2019: https:\/\/developer.apple.com\/wwdc20\/10168\n Swift By Sundell: https:\/\/www.swiftbysundell.com\/wwdc2018\/getting-started-with-signposts\/", - "key.doc.declaration" : "struct SignpostLogger", - "key.doc.discussion" : [ - { - "Para" : "Listable utilizes signpost logging to instrument various parts of the list update cycle: Content diffing, Collection View updating, item and header\/footer sizing, etc." - }, - { - "Para" : "WWDC 2018: https:\/\/developer.apple.com\/videos\/play\/wwdc2018\/405\/ WWDC 2019: https:\/\/developer.apple.com\/wwdc20\/10168 Swift By Sundell: https:\/\/www.swiftbysundell.com\/wwdc2018\/getting-started-with-signposts\/" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.doc.full_as_xml" : "SignpostLogger<\/Name>s:10ListableUI14SignpostLoggerV<\/USR>struct SignpostLogger<\/Declaration>Signpost logging is logging visible in Instruments.app<\/Para><\/Abstract>Listable utilizes signpost logging to instrument various parts of the list update cycle: Content diffing, Collection View updating, item and header\/footer sizing, etc.<\/Para>]]><\/rawHTML>Resources]]><\/rawHTML>WWDC 2018: https:\/\/developer.apple.com\/videos\/play\/wwdc2018\/405\/ WWDC 2019: https:\/\/developer.apple.com\/wwdc20\/10168 Swift By Sundell: https:\/\/www.swiftbysundell.com\/wwdc2018\/getting-started-with-signposts\/<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 61, - "key.doc.name" : "SignpostLogger", - "key.doc.type" : "Class", - "key.doclength" : 506, - "key.docoffset" : 989, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SignpostLogger<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2374, - "key.line" : 61, - "key.modulename" : "ListableUI", - "key.name" : "SignpostLogger", - "key.namelength" : 14, - "key.nameoffset" : 1502, - "key.offset" : 1495, - "key.parsed_declaration" : "struct SignpostLogger", - "key.parsed_scope.end" : 146, - "key.parsed_scope.start" : 61, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static let isLoggingEnabled: Bool<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "You may temporarily set this param to `false` to disable os_signpost logging,\nfor example if debugging performance in Instruments.app.\n\nNote that tests will fail while this is set to `false` in `DEBUG`, to ensure\nthis is not accidentally commited as `false`.", - "key.doc.column" : 16, - "key.doc.comment" : "You may temporarily set this param to `false` to disable os_signpost logging,\nfor example if debugging performance in Instruments.app.\n\nNote that tests will fail while this is set to `false` in `DEBUG`, to ensure\nthis is not accidentally commited as `false`.", - "key.doc.declaration" : "static let isLoggingEnabled: Bool", - "key.doc.discussion" : [ - { - "Para" : "Note that tests will fail while this is set to `false` in `DEBUG`, to ensure this is not accidentally commited as `false`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.doc.full_as_xml" : "isLoggingEnabled<\/Name>s:10ListableUI14SignpostLoggerV16isLoggingEnabledSbvpZ<\/USR>static let isLoggingEnabled: Bool<\/Declaration>You may temporarily set this param to false<\/codeVoice> to disable os_signpost logging, for example if debugging performance in Instruments.app.<\/Para><\/Abstract>Note that tests will fail while this is set to false<\/codeVoice> in DEBUG<\/codeVoice>, to ensure this is not accidentally commited as false<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 69, - "key.doc.name" : "isLoggingEnabled", - "key.doc.type" : "Other", - "key.doclength" : 294, - "key.docoffset" : 1542, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> isLoggingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 34, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "isLoggingEnabled", - "key.namelength" : 16, - "key.nameoffset" : 1851, - "key.offset" : 1840, - "key.parsed_declaration" : "static let isLoggingEnabled = true", - "key.parsed_scope.end" : 69, - "key.parsed_scope.start" : 69, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI14SignpostLoggerV16isLoggingEnabledSbvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.internal_diagnostic" : "Unable to resolve cursor info.", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 35, - "key.name" : "isLoggingEnabled", - "key.namelength" : 16, - "key.nameoffset" : 1900, - "key.offset" : 1889 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func log<Output>(log: OSLog<\/Type>, name: StaticString<\/Type>, for loggable: SignpostLoggable<\/Type>? = nil, _ output: () -> Output<\/Type>) -> Output<\/Type><\/Declaration>", - "key.bodylength" : 296, - "key.bodyoffset" : 2082, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> log<\/decl.name><Output<\/decl.generic_type_param.name><\/decl.generic_type_param>>(log<\/decl.var.parameter.argument_label>: OSLog<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, name<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> loggable<\/decl.var.parameter.name>: SignpostLoggable<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> output<\/decl.var.parameter.name>: () -> Output<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Output<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 434, - "key.line" : 74, - "key.modulename" : "ListableUI", - "key.name" : "log(log:name:for:_:)", - "key.namelength" : 109, - "key.nameoffset" : 1957, - "key.offset" : 1945, - "key.parsed_declaration" : "static func log(log : OSLog, name: StaticString, for loggable : SignpostLoggable? = nil, _ output : () -> Output) -> Output", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 74, - "key.related_decls" : [ - { - "key.annotated_decl" : "log(_:log:name:for:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Output<\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "Output<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 74, - "key.modulename" : "ListableUI", - "key.name" : "Output", - "key.namelength" : 6, - "key.nameoffset" : 1961, - "key.offset" : 1961, - "key.parsed_declaration" : "static func loglet output: Output<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> output<\/decl.name>: Output<\/ref.generic_type_param><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 21, - "key.line" : 82, - "key.modulename" : "ListableUI", - "key.name" : "output", - "key.namelength" : 6, - "key.nameoffset" : 2256, - "key.offset" : 2252, - "key.parsed_declaration" : "let output = output()", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 82, - "key.reusingastcontext" : false, - "key.typename" : "Output", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI14SignpostLoggerV3logAD4name3for_xSo06OS_os_E0C_s12StaticStringVAA0C8Loggable_pSgxyXEtlFZ6outputL0_xvp" - } - ], - "key.typename" : " (SignpostLogger.Type) -> (OSLog, StaticString, (any SignpostLoggable)?, () -> Output) -> Output", - "key.typeusr" : "$s3log4name3for_xSo06OS_os_A0C_s12StaticStringV10ListableUI16SignpostLoggable_pSgxyXEtcluD", - "key.usr" : "s:10ListableUI14SignpostLoggerV3logAD4name3for_xSo06OS_os_E0C_s12StaticStringVAA0C8Loggable_pSgxyXEtlFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func log(_ type: EventType<\/Type>, log: OSLog<\/Type>, name: StaticString<\/Type>, for loggable: SignpostLoggable<\/Type>? = nil)<\/Declaration>", - "key.bodylength" : 495, - "key.bodyoffset" : 2503, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> log<\/decl.name>(_<\/decl.var.parameter.argument_label> type<\/decl.var.parameter.name>: EventType<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, log<\/decl.var.parameter.argument_label>: OSLog<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, name<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> loggable<\/decl.var.parameter.name>: SignpostLoggable<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 610, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "log(_:log:name:for:)", - "key.namelength" : 96, - "key.nameoffset" : 2401, - "key.offset" : 2389, - "key.parsed_declaration" : "static func log(_ type : EventType, log : OSLog, name: StaticString, for loggable : SignpostLoggable? = nil)", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 89, - "key.related_decls" : [ - { - "key.annotated_decl" : "log(log:name:for:_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SignpostLogger.Type) -> (SignpostLogger.EventType, OSLog, StaticString, (any SignpostLoggable)?) -> ()", - "key.typeusr" : "$s_3log4name3fory10ListableUI14SignpostLoggerV9EventTypeO_So06OS_os_A0Cs12StaticStringVAD0F8Loggable_pSgtcD", - "key.usr" : "s:10ListableUI14SignpostLoggerV3log_AD4name3foryAC9EventTypeO_So06OS_os_E0Cs12StaticStringVAA0C8Loggable_pSgtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum SignpostLogger<\/Type>.EventType<\/Declaration>", - "key.bodylength" : 278, - "key.bodyoffset" : 3025, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> SignpostLogger<\/ref.struct>.EventType<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 295, - "key.line" : 112, - "key.modulename" : "ListableUI", - "key.name" : "EventType", - "key.namelength" : 9, - "key.nameoffset" : 3014, - "key.offset" : 3009, - "key.parsed_declaration" : "enum EventType", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 112, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 10, - "key.offset" : 3034, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case begin<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> begin<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 5, - "key.line" : 113, - "key.modulename" : "ListableUI", - "key.name" : "begin", - "key.namelength" : 5, - "key.nameoffset" : 3039, - "key.offset" : 3039, - "key.parsed_declaration" : "case begin", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 113, - "key.reusingastcontext" : false, - "key.typename" : "(SignpostLogger.EventType.Type) -> SignpostLogger.EventType", - "key.typeusr" : "$sy10ListableUI14SignpostLoggerV9EventTypeOAEmcD", - "key.usr" : "s:10ListableUI14SignpostLoggerV9EventTypeO5beginyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 10, - "key.offset" : 3053, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case event<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> event<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 5, - "key.line" : 114, - "key.modulename" : "ListableUI", - "key.name" : "event", - "key.namelength" : 5, - "key.nameoffset" : 3058, - "key.offset" : 3058, - "key.parsed_declaration" : "case event", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 114, - "key.reusingastcontext" : false, - "key.typename" : "(SignpostLogger.EventType.Type) -> SignpostLogger.EventType", - "key.typeusr" : "$sy10ListableUI14SignpostLoggerV9EventTypeOAEmcD", - "key.usr" : "s:10ListableUI14SignpostLoggerV9EventTypeO5eventyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 8, - "key.offset" : 3072, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case end<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> end<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 3, - "key.line" : 115, - "key.modulename" : "ListableUI", - "key.name" : "end", - "key.namelength" : 3, - "key.nameoffset" : 3077, - "key.offset" : 3077, - "key.parsed_declaration" : "case end", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 115, - "key.reusingastcontext" : false, - "key.typename" : "(SignpostLogger.EventType.Type) -> SignpostLogger.EventType", - "key.typeusr" : "$sy10ListableUI14SignpostLoggerV9EventTypeOAEmcD", - "key.usr" : "s:10ListableUI14SignpostLoggerV9EventTypeO3endyA2EmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var toSignpostType: OSSignpostType<\/Type> { get }<\/Declaration>", - "key.bodylength" : 162, - "key.bodyoffset" : 3135, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toSignpostType<\/decl.name>: OSSignpostType<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 200, - "key.line" : 117, - "key.modulename" : "ListableUI", - "key.name" : "toSignpostType", - "key.namelength" : 14, - "key.nameoffset" : 3102, - "key.offset" : 3098, - "key.parsed_declaration" : "var toSignpostType : OSSignpostType", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 117, - "key.reusingastcontext" : false, - "key.typename" : "OSSignpostType", - "key.typeusr" : "$sSo18os_signpost_type_taD", - "key.usr" : "s:10ListableUI14SignpostLoggerV9EventTypeO02tocF0So18os_signpost_type_tavp" - } - ], - "key.typename" : "SignpostLogger.EventType.Type", - "key.typeusr" : "$s10ListableUI14SignpostLoggerV9EventTypeOmD", - "key.usr" : "s:10ListableUI14SignpostLoggerV9EventTypeO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private static func debuggingIdentifier(for loggable: SignpostLoggable<\/Type>) -> String<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3314 - } - ], - "key.bodylength" : 468, - "key.bodyoffset" : 3398, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>(for<\/decl.var.parameter.argument_label> loggable<\/decl.var.parameter.name>: SignpostLoggable<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> String<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 545, - "key.line" : 126, - "key.modulename" : "ListableUI", - "key.name" : "debuggingIdentifier(for:)", - "key.namelength" : 52, - "key.nameoffset" : 3334, - "key.offset" : 3322, - "key.parsed_declaration" : "private static func debuggingIdentifier(for loggable : SignpostLoggable) -> String", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 126, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let info: SignpostLoggingInfo<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 32, - "key.line" : 128, - "key.modulename" : "ListableUI", - "key.name" : "info", - "key.namelength" : 4, - "key.nameoffset" : 3420, - "key.offset" : 3416, - "key.parsed_declaration" : "let info = loggable.signpostInfo", - "key.parsed_scope.end" : 128, - "key.parsed_scope.start" : 128, - "key.reusingastcontext" : false, - "key.typename" : "SignpostLoggingInfo", - "key.typeusr" : "$s10ListableUI19SignpostLoggingInfoVD", - "key.usr" : "s:10ListableUI14SignpostLoggerV19debuggingIdentifier33_DED91A9F15380E1536C4C4958A08DE30LL3forSSAA0C8Loggable_p_tFZ4infoL_AA0C11LoggingInfoVvp" - }, - { - "key.annotated_decl" : "var components: [String<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/DebuggingAndLogging\/SignpostLogger.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> components<\/decl.name>: [String<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 27, - "key.line" : 130, - "key.modulename" : "ListableUI", - "key.name" : "components", - "key.namelength" : 10, - "key.nameoffset" : 3470, - "key.offset" : 3466, - "key.parsed_declaration" : "var components = [String]()", - "key.parsed_scope.end" : 130, - "key.parsed_scope.start" : 130, - "key.reusingastcontext" : false, - "key.typename" : "[String]", - "key.typeusr" : "$sSaySSGD", - "key.usr" : "s:10ListableUI14SignpostLoggerV19debuggingIdentifier33_DED91A9F15380E1536C4C4958A08DE30LL3forSSAA0C8Loggable_p_tFZ10componentsL_SaySSGvp" - } - ], - "key.typename" : "(SignpostLogger.Type) -> (any SignpostLoggable) -> String", - "key.typeusr" : "$s3forSS10ListableUI16SignpostLoggable_p_tcD", - "key.usr" : "s:10ListableUI14SignpostLoggerV19debuggingIdentifier33_DED91A9F15380E1536C4C4958A08DE30LL3forSSAA0C8Loggable_p_tFZ" - } - ], - "key.typename" : "SignpostLogger.Type", - "key.typeusr" : "$s10ListableUI14SignpostLoggerVmD", - "key.usr" : "s:10ListableUI14SignpostLoggerV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Deprecations.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1526, - "key.offset" : 0, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 29, - "key.name" : "MARK: Deprecated Jan 22, 2021", - "key.offset" : 1241 - }, - { - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 220, - "key.bodyoffset" : 1304, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `LayoutDescription`, well, describes the type of and properties of a layout to apply to a list view.\n\nYou use a `LayoutDescription` by passing a closure to its initializer, which you use to\ncustomize the `layoutAppearance` of the provided list type.\n\nFor example, to use a standard list layout, and customize the layout, your code would look something like this:\n\n```\nlistView.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```\n\nOr a layout for your own custom layout type would look somewhat like this:\n\n```\nMyCustomLayout.describe {\n $0.myLayoutOption = true\n $0.anotherLayoutOption = .polkadots\n}\n```\n\nNote\n----\nUnder the hood, Listable is smart, and will only re-create the underlying\nlayout object when needed (when the layout type or layout appearance changes).\n", - "key.doc.column" : 15, - "key.doc.comment" : "\nThis file contains deprecations which have occurred in Listable, for which there are reasonable\nforward-moving defaults (eg, renames), to ease transitions for consumers when they update their library version.\n\nTo add new deprecations and changes:\n------------------------------------\n1) Add a new `MARK: Deprecated ` section for the deprecations you are adding.\n\n2) Add deprecation annotations like so:\n ```\n @available(*, deprecated, renamed: \"ItemContent\")\n public typealias ItemElement = ItemContent\n ```\n\n Or, when deprecating properties, add a passthrough like so:\n ```\n public extension Item {\n @available(*, deprecated, renamed: \"content\")\n var element : Content {\n self.content\n }\n }\n ```\n\n3) After 1-2 months has passed, mark the previously `deprecated` items as `unavailable`:\n ```\n @available(*, unavailable, renamed: \"ItemContent\")\n ```\n\n4) After another 1-2 months have passed, feel free to remove the `MARK: Deprecated` section you added.", - "key.doc.declaration" : "public struct LayoutDescription : Equatable", - "key.doc.discussion" : [ - { - "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type." - }, - { - "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Or a layout for your own custom layout type would look somewhat like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription : Equatable<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "LayoutDescription", - "key.doc.type" : "Class", - "key.doclength" : 1125, - "key.docoffset" : 109, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 250, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDescription", - "key.namelength" : 17, - "key.nameoffset" : 1285, - "key.offset" : 1275, - "key.parsed_declaration" : "extension LayoutDescription", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1358 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 44, - "key.offset" : 1309 - } - ], - "key.bodylength" : 61, - "key.bodyoffset" : 1461, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 158, - "key.name" : "list(_:)", - "key.namelength" : 70, - "key.nameoffset" : 1377, - "key.offset" : 1365, - "key.substructure" : [ - - ], - "key.typename" : "Self" - } - ], - "key.typename" : "LayoutDescription.Type", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3991, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type>, AnyItemConvertible<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 106 - } - ], - "key.bodylength" : 1020, - "key.bodyoffset" : 159, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `Item` is one of the core types deployed by Listable, allowing you to specify\nand control many of the behaviors, appearance options, and callbacks for interacting\nwith rows within a list.\n\n`Item` wraps an `ItemContent` struct (a protocol you implement to provide content),\nwhich drives the primary content of the row the `Item` displays.\n\nIf you are used to working with a collection view or table view, you can think of `ItemContent`\nas what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional\noptions of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.\n\nOnce added to a section, `Item` is type erased to`AnyItem`,\nto allow for mixed collections of content within a section.", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct Item : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "`Item` wraps an `ItemContent` struct (a protocol you implement to provide content), which drives the primary content of the row the `Item` displays." - }, - { - "Para" : "If you are used to working with a collection view or table view, you can think of `ItemContent` as what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc." - }, - { - "Para" : "Once added to a section, `Item` is type erased to`AnyItem`, to allow for mixed collections of content within a section." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.doc.full_as_xml" : "Item<\/Name>s:10ListableUI4ItemV<\/USR>public struct Item<Content> : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent<\/Declaration>An Item<\/codeVoice> is one of the core types deployed by Listable, allowing you to specify and control many of the behaviors, appearance options, and callbacks for interacting with rows within a list.<\/Para><\/Abstract>Item<\/codeVoice> wraps an ItemContent<\/codeVoice> struct (a protocol you implement to provide content), which drives the primary content of the row the Item<\/codeVoice> displays.<\/Para>If you are used to working with a collection view or table view, you can think of ItemContent<\/codeVoice> as what you put in the contentView<\/codeVoice> of your cell, and you can think of Item<\/codeVoice> as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.<\/Para>Once added to a section, Item<\/codeVoice> is type erased toAnyItem<\/codeVoice>, to allow for mixed collections of content within a section.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 22, - "key.doc.name" : "Item", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol>, AnyItemConvertible<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1067, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 123, - "key.offset" : 113, - "key.parsed_declaration" : "public extension Item where Content == EmbeddedList", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func list<Identifier>(_ identifier: Identifier<\/Type>, sizing: EmbeddedList<\/Type>.Sizing<\/Type>, configure: ListProperties<\/Type>.Configure<\/Type>) -> Item<\/Type><EmbeddedList<\/Type>> where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 262, - "key.bodyoffset" : 915, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates an `Item` which can be used to embed a list inside another list,\nfor example if you'd like to place a horizontally scrollable list within a vertically scrolling\nlist, or vice versa.\n\n```\nsection += Item.list(\n \"my-identifier\",\n sizing: .fixed(height: 200)\n) { list in\n\n list.layout = .table {\n $0.direction = .horizontal\n }\n\n list += Section(\"section-id\") {\n ...\n }\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "Creates an `Item` which can be used to embed a list inside another list,\nfor example if you'd like to place a horizontally scrollable list within a vertically scrolling\nlist, or vice versa.\n\n```\nsection += Item.list(\n \"my-identifier\",\n sizing: .fixed(height: 200)\n) { list in\n\n list.layout = .table {\n $0.direction = .horizontal\n }\n\n list += Section(\"section-id\") {\n ...\n }\n}\n```", - "key.doc.declaration" : "static func list(_ identifier: Identifier, sizing: EmbeddedList.Sizing, configure: ListProperties.Configure) -> Item where Identifier : Hashable", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.doc.full_as_xml" : "list(_:sizing:configure:)<\/Name>s:10ListableUI4ItemVA2A12EmbeddedListVRszrlE4list_6sizing9configureACyAEGqd___AE6SizingOyAA0E10PropertiesVzXEtSHRd__lFZ<\/USR>static func list<Identifier>(_ identifier: Identifier, sizing: EmbeddedList.Sizing, configure: ListProperties.Configure) -> Item<EmbeddedList> where Identifier : Hashable<\/Declaration>Creates an Item<\/codeVoice> which can be used to embed a list inside another list, for example if you’d like to place a horizontally scrollable list within a vertically scrolling list, or vice versa.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 32, - "key.doc.name" : "list(_:sizing:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 557, - "key.docoffset" : 164, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> list<\/decl.name><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: EmbeddedList<\/ref.struct>.Sizing<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: ListProperties<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Item<\/ref.struct><EmbeddedList<\/ref.struct>><\/decl.function.returntype> where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 453, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "list(_:sizing:configure:)", - "key.namelength" : 150, - "key.nameoffset" : 737, - "key.offset" : 725, - "key.parsed_declaration" : "static func list(\n _ identifier : Identifier,\n sizing : EmbeddedList.Sizing,\n configure : ListProperties.Configure\n) -> Item", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 32, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Identifier : Hashable<\/Type><\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 753 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 742, - "key.offset" : 742, - "key.parsed_declaration" : "static func listIdentifier<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Identifier.Type", - "key.typeusr" : "$sqd__mD", - "key.usr" : "s:10ListableUI4ItemVA2A12EmbeddedListVRszrlE4list_6sizing9configureACyAEGqd___AE6SizingOyAA0E10PropertiesVzXEtSHRd__lFZ10IdentifierL_qd__mfp" - } - ], - "key.typename" : " (Item.Type) -> (Identifier, EmbeddedList.Sizing, (inout ListProperties) -> ()) -> Item", - "key.typeusr" : "$s_6sizing9configure10ListableUI4ItemVyAC12EmbeddedListVGqd___AG6SizingOyAC0G10PropertiesVzXEtcSHRd__luD", - "key.usr" : "s:10ListableUI4ItemVA2A12EmbeddedListVRszrlE4list_6sizing9configureACyAEGqd___AE6SizingOyAA0E10PropertiesVzXEtSHRd__lFZ" - } - ], - "key.typename" : "Item.Type", - "key.typeusr" : "$s10ListableUI4ItemVyxGmD", - "key.usr" : "s:10ListableUI4ItemV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct EmbeddedList : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1617 - } - ], - "key.bodylength" : 1490, - "key.bodyoffset" : 1659, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes item content which can be used to embed a list inside another list,\nfor example if you'd like to place a horizontally scrollable list within a vertically scrolling\nlist, or vice versa.\n\nYou rarely use this type directly. Instead, use the static `.list` function on `Item`.\n\nInternal TODO: This should use a coordinator to manage the scroll position of the contained list\nduring cell reuse.\n", - "key.doc.column" : 15, - "key.doc.comment" : "Describes item content which can be used to embed a list inside another list,\nfor example if you'd like to place a horizontally scrollable list within a vertically scrolling\nlist, or vice versa.\n\nYou rarely use this type directly. Instead, use the static `.list` function on `Item`.\n\nInternal TODO: This should use a coordinator to manage the scroll position of the contained list\nduring cell reuse.", - "key.doc.declaration" : "public struct EmbeddedList : ItemContent", - "key.doc.discussion" : [ - { - "Para" : "You rarely use this type directly. Instead, use the static `.list` function on `Item`." - }, - { - "Para" : "Internal TODO: This should use a coordinator to manage the scroll position of the contained list during cell reuse." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.doc.full_as_xml" : "EmbeddedList<\/Name>s:10ListableUI12EmbeddedListV<\/USR>public struct EmbeddedList : ItemContent<\/Declaration>Describes item content which can be used to embed a list inside another list, for example if you’d like to place a horizontally scrollable list within a vertically scrolling list, or vice versa.<\/Para><\/Abstract>You rarely use this type directly. Instead, use the static .list<\/codeVoice> function on Item<\/codeVoice>.<\/Para>Internal TODO: This should use a coordinator to manage the scroll position of the contained list during cell reuse.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 60, - "key.doc.name" : "EmbeddedList", - "key.doc.type" : "Class", - "key.doclength" : 434, - "key.docoffset" : 1183, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 1646 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> EmbeddedList<\/decl.name> : ItemContent<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1526, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "EmbeddedList", - "key.namelength" : 12, - "key.nameoffset" : 1631, - "key.offset" : 1624, - "key.parsed_declaration" : "public struct EmbeddedList : ItemContent", - "key.parsed_scope.end" : 118, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Public Properties", - "key.offset" : 1674 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var properties: ListProperties<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1714 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> properties<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "properties", - "key.namelength" : 10, - "key.nameoffset" : 1725, - "key.offset" : 1721, - "key.parsed_declaration" : "public var properties : ListProperties", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListProperties", - "key.typeusr" : "$s10ListableUI14ListPropertiesVD", - "key.usr" : "s:10ListableUI12EmbeddedListV10propertiesAA0D10PropertiesVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var contentIdentifier: AnyHashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1757 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentIdentifier<\/decl.name>: AnyHashable<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "contentIdentifier", - "key.namelength" : 17, - "key.nameoffset" : 1768, - "key.offset" : 1764, - "key.parsed_declaration" : "public var contentIdentifier : AnyHashable", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 67, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AnyHashable", - "key.typeusr" : "$ss11AnyHashableVD", - "key.usr" : "s:10ListableUI12EmbeddedListV17contentIdentifiers11AnyHashableVvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 1819 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<Identifier>(identifier: Identifier<\/Type>, configure: ListProperties<\/Type>.Configure<\/Type>) where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1856 - } - ], - "key.bodylength" : 586, - "key.bodyoffset" : 1957, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(identifier<\/decl.var.parameter.argument_label>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: ListProperties<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 681, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "init(identifier:configure:)", - "key.namelength" : 88, - "key.nameoffset" : 1863, - "key.offset" : 1863, - "key.parsed_declaration" : "public init(identifier : Identifier, configure : ListProperties.Configure)", - "key.parsed_scope.end" : 92, - "key.parsed_scope.start" : 73, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Identifier : Hashable<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 1879 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 1868, - "key.offset" : 1868, - "key.parsed_declaration" : "public initIdentifier<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Identifier.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI12EmbeddedListV10identifier9configureACx_yAA0D10PropertiesVzXEtcSHRzlufc10IdentifierL_xmfp" - } - ], - "key.typename" : " (EmbeddedList.Type) -> (Identifier, (inout ListProperties) -> ()) -> EmbeddedList", - "key.typeusr" : "$s10identifier9configure10ListableUI12EmbeddedListVx_yAC0F10PropertiesVzXEtcSHRzluD", - "key.usr" : "s:10ListableUI12EmbeddedListV10identifier9configureACx_yAA0D10PropertiesVzXEtcSHRzlufc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 17, - "key.name" : "MARK: ItemContent", - "key.offset" : 2564 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias EmbeddedList<\/Type>.ContentView = ListView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2602 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content view used to draw the content.\nThe content view is drawn at the top of the view hierarchy, above the background views.", - "key.doc.column" : 20, - "key.doc.declaration" : "associatedtype ContentView : UIView", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ContentView<\/Name>s:10ListableUI11ItemContentP0D4ViewQa<\/USR>associatedtype ContentView : UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 367, - "key.doc.name" : "ContentView", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> EmbeddedList<\/ref.struct>.ContentView<\/decl.name> = ListView<\/ref.class><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 32, - "key.line" : 98, - "key.modulename" : "ListableUI", - "key.name" : "ContentView", - "key.namelength" : 11, - "key.nameoffset" : 2619, - "key.offset" : 2609, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP0D4ViewQa" - } - ], - "key.parsed_declaration" : "public typealias ContentView = ListView", - "key.parsed_scope.end" : 98, - "key.parsed_scope.start" : 98, - "key.reusingastcontext" : false, - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "s:10ListableUI11ItemContentP0D4ViewQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var identifierValue: AnyHashable<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2651 - } - ], - "key.bodylength" : 43, - "key.bodyoffset" : 2692, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used to unique the item, control its lifetime, and identify it across update operations.\n\n### Identifier Stability\nThis value must be stable. Changing the `identifier` will mean that the list will think\nthe item has been removed from the list (and a new one inserted), which can cause\nundesired animations or other undesired behavior when a new view is created and inserted.\n\n```swift\nstruct MyItemContent : ItemContent {\n\n var identifierValue : UUID {\n \/\/ 🚫 Wrong; will change every time the item is accessed.\n UUID()\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let contentID = UUID()\n\n var identifierValue : UUID {\n \/\/ 🚫 Also wrong, will change every time the item is built.\n self.contentID()\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model \/\/ Conforms to Hashable\n\n var identifierValue : String {\n \/\/ 🚫 Wrong! This will change the value of the identifier\n \/\/ any time any value within our content changes.\n\n self.model\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : String {\n \/\/ 🚫 Still wrong! Same as above, but with reflection. You should\n \/\/ never used a reflecting or describing method to generate an identifier.\n\n String(describing\/reflecting: self.model)\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ ✅ Good! Stable across updates.\n self.model.serverID\n }\n}\n```\n\nIdentifier stability is especially important with items that embed interactive controls, like buttons, sliders,\ntext fields, etc. The identifier of the control should be stable and **independent of the value\nthe control is currently representing**. Including the value the control is currently representing\nin the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one.\n```swift\nstruct MySearchBarRow : ItemContent {\n\n let searchText : String\n\n var identifierValue : String {\n \/\/ 🚫 Wrong; identifier will change every time the search text changes.\n searchText\n }\n}\n\nstruct MySearchBarRow : ItemContent {\n\n let searchText : String\n let id : String \/\/ Something like \"item-search\".\n\n var identifierValue : String {\n \/\/ ✅ Good! Stable across updates.\n id\n }\n}\n```\n\n### Identifier Uniqueness\nWhile identifiers do need to be _stable_, they do not need to be globally unique – the list will make a\n\"best guess\" if there are multiple items with the same identifier. However, diffing of changes\nwill be more visually correct with a unique identifier.\n\nIf you are backing your content with some sort of client or server-provided data, consider using its\nserver or client UUID here, or some other stable unique identifier from the underlying data model.\n\nGenerally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID\nas mentioned above. For something without the concept of identity, consider providing a value\nbased on what the content represents (eg, a row title like \"Settings\").\n\n```swift\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ 🚫 Likely wrong. If entered by the user,\n \/\/ there could be many items with this name,\n \/\/ or multiple items with no name at all, leading\n \/\/ to identifier collisions.\n\n self.model.name\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let setting : Setting\n\n var identifierValue : UUID {\n \/\/ 🤔 Probably good enough! Since this item\n \/\/ represents a setting in a settings screen,\n \/\/ returning the title of the row is likely\n \/\/ unique enough to guarantee stability.\n\n self.setting.name \/\/ Something like \"Location Services\".\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ ✅ Good! Very unique.\n self.model.serverID\n }\n}\n```\n\n### Identifier Leverages The Type System\nYour ``ItemContent\/identifierValue-swift.property`` gets wrapped up in an `Identifier`\nwhen it used by the list to unique the item, control its lifetime, and identify it across update operations. This\nadditional type information is used to further unique the identifier. You do not need to provide any\nadditional type-salting and uniquing information in your ``ItemContent\/identifierValue-swift.property`` besides the value from your content.\n\nEven once the ``Identifier`` is type-erased to ``AnyIdentifier``, this type information is retained:\n```swift\nlet first : AnyIdentifier = Identifier(\"a-value\")\nlet second : AnyIdentifier = Identifier(\"a-value\")\n\nlet isEqual = first == second \/\/ false\n```\n\nIn practical terms, this means that your ``ItemContent\/identifierValue-swift.property`` implementation should be:\n```swift\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : String {\n \/\/ 🚫 Not needed: Type information will be encoded into the Identifier.\n \"MyItemContent-\\(model.serverID)\"\n }\n}\n\nstruct MySearchBarRow : ItemContent {\n\n let model : Model\n\n var identifierValue : searchText {\n \/\/ ✅ Good! No need for the string interpolation.\n model.serverID\n }\n}\n```", - "key.doc.column" : 9, - "key.doc.declaration" : "var identifierValue: IdentifierValue { get }", - "key.doc.discussion" : [ - { - "Para" : "This value must be stable. Changing the `identifier` will mean that the list will think the item has been removed from the list (and a new one inserted), which can cause undesired animations or other undesired behavior when a new view is created and inserted." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Identifier stability is especially important with items that embed interactive controls, like buttons, sliders, text fields, etc. The identifier of the control should be stable and . Including the value the control is currently representing in the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one." - }, - { - "CodeListing" : "" - }, - { - "Para" : "While identifiers do need to be , they do not need to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more visually correct with a unique identifier." - }, - { - "Para" : "If you are backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other stable unique identifier from the underlying data model." - }, - { - "Para" : "Generally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID as mentioned above. For something without the concept of identity, consider providing a value based on what the content represents (eg, a row title like “Settings”)." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Your `ItemContent\/identifierValue-swift.property` gets wrapped up in an `Identifier` when it used by the list to unique the item, control its lifetime, and identify it across update operations. This additional type information is used to further unique the identifier. You do not need to provide any additional type-salting and uniquing information in your `ItemContent\/identifierValue-swift.property` besides the value from your content." - }, - { - "Para" : "Even once the `Identifier` is type-erased to `AnyIdentifier`, this type information is retained:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "In practical terms, this means that your `ItemContent\/identifierValue-swift.property` implementation should be:" - }, - { - "CodeListing" : "" - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "identifierValue<\/Name>s:10ListableUI11ItemContentP15identifierValue010IdentifierF0Qzvp<\/USR>var identifierValue: IdentifierValue { get }<\/Declaration>Used to unique the item, control its lifetime, and identify it across update operations.<\/Para><\/Abstract>]]><\/rawHTML>Identifier Stability]]><\/rawHTML>This value must be stable. Changing the identifier<\/codeVoice> will mean that the list will think the item has been removed from the list (and a new one inserted), which can cause undesired animations or other undesired behavior when a new view is created and inserted.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Identifier stability is especially important with items that embed interactive controls, like buttons, sliders, text fields, etc. The identifier of the control should be stable and independent of the value the control is currently representing<\/bold>. Including the value the control is currently representing in the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Identifier Uniqueness]]><\/rawHTML>While identifiers do need to be stable<\/emphasis>, they do not need to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more visually correct with a unique identifier.<\/Para>If you are backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other stable unique identifier from the underlying data model.<\/Para>Generally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID as mentioned above. For something without the concept of identity, consider providing a value based on what the content represents (eg, a row title like “Settings”).<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Identifier Leverages The Type System]]><\/rawHTML>Your ItemContent\/identifierValue-swift.property<\/codeVoice> gets wrapped up in an Identifier<YourItemContent, IdentifierValue><\/codeVoice> when it used by the list to unique the item, control its lifetime, and identify it across update operations. This additional type information is used to further unique the identifier. You do not need to provide any additional type-salting and uniquing information in your ItemContent\/identifierValue-swift.property<\/codeVoice> besides the value from your content.<\/Para>Even once the Identifier<\/codeVoice> is type-erased to AnyIdentifier<\/codeVoice>, this type information is retained:<\/Para>(\"a-value\")]]><\/zCodeLineNumbered>(\"a-value\")]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In practical terms, this means that your ItemContent\/identifierValue-swift.property<\/codeVoice> implementation should be:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 235, - "key.doc.name" : "identifierValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifierValue<\/decl.name>: AnyHashable<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 78, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "identifierValue", - "key.namelength" : 15, - "key.nameoffset" : 2662, - "key.offset" : 2658, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP15identifierValue010IdentifierF0Qzvp" - } - ], - "key.parsed_declaration" : "public var identifierValue: AnyHashable", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 100, - "key.reusingastcontext" : false, - "key.typename" : "AnyHashable", - "key.typeusr" : "$ss11AnyHashableVD", - "key.usr" : "s:10ListableUI11ItemContentP15identifierValue010IdentifierF0Qzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func apply(to views: ItemContentViews<\/Type><`Self`>, for reason: ApplyReason<\/Type>, with info: ApplyItemContentInfo<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2746 - } - ], - "key.bodylength" : 60, - "key.bodyoffset" : 2863, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Called when rendering the content. This is where you should push data from your\ncontent into the passed in views.\n\nDo not retain a reference to the passed in views – they are reused by the list.\n", - "key.doc.column" : 10, - "key.doc.declaration" : "func apply(to views: ItemContentViews, for reason: ApplyReason, with info: ApplyItemContentInfo)", - "key.doc.discussion" : [ - { - "Para" : "Do not retain a reference to the passed in views – they are reused by the list." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "apply(to:for:with:)<\/Name>s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF<\/USR>func apply(to views: ItemContentViews<Self>, for reason: ApplyReason, with info: ApplyItemContentInfo)<\/Declaration>Called when rendering the content. This is where you should push data from your content into the passed in views.<\/Para><\/Abstract>Do not retain a reference to the passed in views – they are reused by the list.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 338, - "key.doc.name" : "apply(to:for:with:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: ItemContentViews<\/ref.struct><`Self`><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 171, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "apply(to:for:with:)", - "key.namelength" : 99, - "key.nameoffset" : 2758, - "key.offset" : 2753, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF" - } - ], - "key.parsed_declaration" : "public func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo)", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 104, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(EmbeddedList) -> (ItemContentViews, ApplyReason, ApplyItemContentInfo) -> ()", - "key.typeusr" : "$s2to3for4withy10ListableUI16ItemContentViewsVyAD12EmbeddedListVG_AD11ApplyReasonOAD0kfG4InfoVtcD", - "key.usr" : "s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func isEquivalent(to other: EmbeddedList<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2934 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 2996, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used by the list to determine when the content of the item has changed; in order to\nremeasure the item and re-layout the list.\n\nYou should return `false` from this method when any content within your item that\naffects visual appearance or layout (and in particular, sizing) changes. When the list\nreceives `false` back from this method, it will invalidate any cached sizing it has stored\nfor the item, and re-measure + re-layout the content.\n\n```swift\nstruct MyItemContent : ItemContent, Equatable {\n\n var identifierValue : UUID\n var title : String\n var detail : String\n var theme : MyTheme\n var onTapDetail : () -> ()\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ 🚫 Missing checks for title and detail.\n \/\/ If they change, they likely affect sizing,\n \/\/ which would result in incorrect item sizing.\n\n self.theme == other.theme\n }\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ 🚫 Missing check for theme.\n \/\/ If the theme changed; its likely that the device's\n \/\/ accessibility settings changed; dark mode was enabled,\n \/\/ etc. All of these can affect the appearance or sizing\n \/\/ of the item.\n\n self.title == other.title &&\n self.detail == other.detail\n }\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ ✅ Checking all parameters which can affect appearance + layout.\n \/\/ Not checking identifierValue or onTapDetail, since they do not affect appearance + layout.\n\n self.theme == other.theme &&\n self.title == other.title &&\n self.detail == other.detail\n }\n}\n\nstruct MyItemContent : ItemContent, Equatable {\n \/\/ ✅ Nothing else needed!\n \/\/ `Equatable` conformance provides `isEquivalent(to:) for free!`\n}\n```\n\n#### Note\nIf your ``ItemContent`` conforms to ``Equatable``, there is a default\nimplementation of this method which simply returns `self == other`.\n", - "key.doc.column" : 10, - "key.doc.declaration" : "func isEquivalent(to other: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "You should return `false` from this method when any content within your item that affects visual appearance or layout (and in particular, sizing) changes. When the list receives `false` back from this method, it will invalidate any cached sizing it has stored for the item, and re-measure + re-layout the content." - }, - { - "CodeListing" : "" - }, - { - "Para" : "If your `ItemContent` conforms to `Equatable`, there is a default implementation of this method which simply returns `self == other`." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Used by the list to determine when the content of the item has changed; in order to remeasure the item and re-layout the list.<\/Para><\/Abstract>You should return false<\/codeVoice> from this method when any content within your item that affects visual appearance or layout (and in particular, sizing) changes. When the list receives false<\/codeVoice> back from this method, it will invalidate any cached sizing it has stored for the item, and re-measure + re-layout the content.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ()]]><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>If your ItemContent<\/codeVoice> conforms to Equatable<\/codeVoice>, there is a default implementation of this method which simply returns self == other<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 298, - "key.doc.name" : "isEquivalent(to:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: EmbeddedList<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 82, - "key.line" : 109, - "key.modulename" : "ListableUI", - "key.name" : "isEquivalent(to:)", - "key.namelength" : 36, - "key.nameoffset" : 2946, - "key.offset" : 2941, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF" - } - ], - "key.parsed_declaration" : "public func isEquivalent(to other: EmbeddedList) -> Bool", - "key.parsed_scope.end" : 112, - "key.parsed_scope.start" : 109, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(EmbeddedList) -> (EmbeddedList) -> Bool", - "key.typeusr" : "$s2toSb10ListableUI12EmbeddedListV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func createReusableContentView(frame: CGRect<\/Type>) -> ListView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3033 - } - ], - "key.bodylength" : 36, - "key.bodyoffset" : 3111, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new content view used to render the content.\n\n### Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableContentView(frame: CGRect) -> ContentView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 375, - "key.doc.name" : "createReusableContentView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListView<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 108, - "key.line" : 114, - "key.modulename" : "ListableUI", - "key.name" : "createReusableContentView(frame:)", - "key.namelength" : 41, - "key.nameoffset" : 3052, - "key.offset" : 3040, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ" - } - ], - "key.parsed_declaration" : "public static func createReusableContentView(frame : CGRect) -> ListView", - "key.parsed_scope.end" : 117, - "key.parsed_scope.start" : 114, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(EmbeddedList.Type) -> (CGRect) -> ListView", - "key.typeusr" : "$s5frame10ListableUI8ListViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ" - } - ], - "key.typename" : "EmbeddedList.Type", - "key.typeusr" : "$s10ListableUI12EmbeddedListVmD", - "key.usr" : "s:10ListableUI12EmbeddedListV" - }, - { - "key.annotated_decl" : "public struct EmbeddedList : ItemContent<\/Type><\/Declaration>", - "key.bodylength" : 812, - "key.bodyoffset" : 3177, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes item content which can be used to embed a list inside another list,\nfor example if you'd like to place a horizontally scrollable list within a vertically scrolling\nlist, or vice versa.\n\nYou rarely use this type directly. Instead, use the static `.list` function on `Item`.\n\nInternal TODO: This should use a coordinator to manage the scroll position of the contained list\nduring cell reuse.\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct EmbeddedList : ItemContent", - "key.doc.discussion" : [ - { - "Para" : "You rarely use this type directly. Instead, use the static `.list` function on `Item`." - }, - { - "Para" : "Internal TODO: This should use a coordinator to manage the scroll position of the contained list during cell reuse." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.doc.full_as_xml" : "EmbeddedList<\/Name>s:10ListableUI12EmbeddedListV<\/USR>public struct EmbeddedList : ItemContent<\/Declaration>Describes item content which can be used to embed a list inside another list, for example if you’d like to place a horizontally scrollable list within a vertically scrolling list, or vice versa.<\/Para><\/Abstract>You rarely use this type directly. Instead, use the static .list<\/codeVoice> function on Item<\/codeVoice>.<\/Para>Internal TODO: This should use a coordinator to manage the scroll position of the contained list during cell reuse.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 60, - "key.doc.name" : "EmbeddedList", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> EmbeddedList<\/decl.name> : ItemContent<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 837, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "EmbeddedList", - "key.namelength" : 12, - "key.nameoffset" : 3163, - "key.offset" : 3153, - "key.parsed_declaration" : "extension EmbeddedList", - "key.parsed_scope.end" : 140, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum Sizing : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3418 - } - ], - "key.bodylength" : 533, - "key.bodyoffset" : 3454, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How you specify sizing for an embedded list. The surface area\nof this `Sizing` enum is intentionally reduced from the standard `Sizing`\nenum, because several of those values do not make sense for embedded lists.", - "key.doc.column" : 17, - "key.doc.comment" : "How you specify sizing for an embedded list. The surface area\nof this `Sizing` enum is intentionally reduced from the standard `Sizing`\nenum, because several of those values do not make sense for embedded lists.", - "key.doc.declaration" : "public enum Sizing : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI12EmbeddedListV6SizingO<\/USR>public enum Sizing : Equatable<\/Declaration>How you specify sizing for an embedded list. The surface area of this Sizing<\/codeVoice> enum is intentionally reduced from the standard Sizing<\/codeVoice> enum, because several of those values do not make sense for embedded lists.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 126, - "key.doc.name" : "Sizing", - "key.doc.type" : "Other", - "key.doclength" : 232, - "key.docoffset" : 3182, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 3439 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sizing<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 563, - "key.line" : 126, - "key.modulename" : "ListableUI", - "key.name" : "Sizing", - "key.namelength" : 6, - "key.nameoffset" : 3430, - "key.offset" : 3425, - "key.parsed_declaration" : "public enum Sizing : Equatable", - "key.parsed_scope.end" : 139, - "key.parsed_scope.start" : 126, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 56, - "key.offset" : 3742, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fixed(width: CGFloat<\/Type> = 0.0, height: CGFloat<\/Type> = 0.0)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A fixed size item with the given width or height.\n\nNote: Depending on the list layout type, only one of width or height may be used.\nEg, for list layouts, vertical lists only use the height, and horizontal lists only use the width.", - "key.doc.column" : 14, - "key.doc.comment" : "A fixed size item with the given width or height.\n\nNote: Depending on the list layout type, only one of width or height may be used.\nEg, for list layouts, vertical lists only use the height, and horizontal lists only use the width.", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "Note: Depending on the list layout type, only one of width or height may be used. Eg, for list layouts, vertical lists only use the height, and horizontal lists only use the width." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.doc.full_as_xml" : "fixed(width:height:)<\/Name>s:10ListableUI12EmbeddedListV6SizingO5fixedyAE14CoreFoundation7CGFloatV_AItcAEmF<\/USR><\/Declaration>A fixed size item with the given width or height.<\/Para><\/Abstract>Note: Depending on the list layout type, only one of width or height may be used. Eg, for list layouts, vertical lists only use the height, and horizontal lists only use the width.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 132, - "key.doc.name" : "fixed(width:height:)", - "key.doc.type" : "Other", - "key.doclength" : 271, - "key.docoffset" : 3463, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 51, - "key.line" : 132, - "key.modulename" : "ListableUI", - "key.name" : "fixed(width:height:)", - "key.namelength" : 51, - "key.nameoffset" : 3747, - "key.offset" : 3747, - "key.parsed_declaration" : "case fixed(width: CGFloat = 0.0, height : CGFloat = 0.0)", - "key.parsed_scope.end" : 132, - "key.parsed_scope.start" : 132, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(EmbeddedList.Sizing.Type) -> (CGFloat, CGFloat) -> EmbeddedList.Sizing", - "key.typeusr" : "$sy10ListableUI12EmbeddedListV6SizingO14CoreFoundation7CGFloatV_AHtcAEmcD", - "key.usr" : "s:10ListableUI12EmbeddedListV6SizingO5fixedyAE14CoreFoundation7CGFloatV_AItcAEmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var toStandardSizing: ListableUI.Sizing<\/Type> { get }<\/Declaration>", - "key.bodylength" : 123, - "key.bodyoffset" : 3858, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/EmbeddedList.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toStandardSizing<\/decl.name>: ListableUI.Sizing<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 166, - "key.line" : 134, - "key.modulename" : "ListableUI", - "key.name" : "toStandardSizing", - "key.namelength" : 16, - "key.nameoffset" : 3820, - "key.offset" : 3816, - "key.parsed_declaration" : "var toStandardSizing : ListableUI.Sizing", - "key.parsed_scope.end" : 138, - "key.parsed_scope.start" : 134, - "key.reusingastcontext" : false, - "key.typename" : "Sizing", - "key.typeusr" : "$s10ListableUI6SizingOD", - "key.usr" : "s:10ListableUI12EmbeddedListV6SizingO010toStandardE0AaDOvp" - } - ], - "key.typename" : "EmbeddedList.Sizing.Type", - "key.typeusr" : "$s10ListableUI12EmbeddedListV6SizingOmD", - "key.usr" : "s:10ListableUI12EmbeddedListV6SizingO" - } - ], - "key.typename" : "EmbeddedList.Type", - "key.typeusr" : "$s10ListableUI12EmbeddedListVmD", - "key.usr" : "s:10ListableUI12EmbeddedListV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1886, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListEnvironment<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1187 - } - ], - "key.bodylength" : 665, - "key.bodyoffset" : 1218, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An environment of keys and values that are passed to every `ItemContent` and `HeaderFooter`\nduring layout and measurement, to allow passing down data.\n\nThis type is similar to the SwiftUI or Blueprint `Environment`, where you define a `ListEnvironmentKey`,\nand then provide a custom getter and setter to read and write the content:\n\n```\nenum MyLayoutTypeKey : ListEnvironmentKey {\n var defaultValue : MyLayoutType {\n .defaultLayout\n }\n}\n\nextension ListEnvironment {\n var myLayoutType : MyLayoutType {\n get { self[MyLayoutTypeKey.self] }\n set { self[MyLayoutTypeKey.self] = newValue }\n }\n}\n```\n\nYou can retrieve the `ListEnvironment` through the `info` object passed in `ItemContent` and `HeaderFooter`'s\n`apply(to:for:with:)` methods.\n\n```\nfunc apply(\n to views : ItemContentViews,\n for reason: ApplyReason,\n with info : ApplyItemContentInfo\n) {\n switch info.environment.myLayoutType {\n ...\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.comment" : "An environment of keys and values that are passed to every `ItemContent` and `HeaderFooter`\nduring layout and measurement, to allow passing down data.\n\nThis type is similar to the SwiftUI or Blueprint `Environment`, where you define a `ListEnvironmentKey`,\nand then provide a custom getter and setter to read and write the content:\n\n```\nenum MyLayoutTypeKey : ListEnvironmentKey {\n var defaultValue : MyLayoutType {\n .defaultLayout\n }\n}\n\nextension ListEnvironment {\n var myLayoutType : MyLayoutType {\n get { self[MyLayoutTypeKey.self] }\n set { self[MyLayoutTypeKey.self] = newValue }\n }\n}\n```\n\nYou can retrieve the `ListEnvironment` through the `info` object passed in `ItemContent` and `HeaderFooter`'s\n`apply(to:for:with:)` methods.\n\n```\nfunc apply(\n to views : ItemContentViews,\n for reason: ApplyReason,\n with info : ApplyItemContentInfo\n) {\n switch info.environment.myLayoutType {\n ...\n }\n}\n```", - "key.doc.declaration" : "public struct ListEnvironment", - "key.doc.discussion" : [ - { - "Para" : "This type is similar to the SwiftUI or Blueprint `Environment`, where you define a `ListEnvironmentKey`, and then provide a custom getter and setter to read and write the content:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can retrieve the `ListEnvironment` through the `info` object passed in `ItemContent` and `HeaderFooter`’s `apply(to:for:with:)` methods." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.doc.full_as_xml" : "ListEnvironment<\/Name>s:10ListableUI15ListEnvironmentV<\/USR>public struct ListEnvironment<\/Declaration>An environment of keys and values that are passed to every ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice> during layout and measurement, to allow passing down data.<\/Para><\/Abstract>This type is similar to the SwiftUI or Blueprint Environment<\/codeVoice>, where you define a ListEnvironmentKey<\/codeVoice>, and then provide a custom getter and setter to read and write the content:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can retrieve the ListEnvironment<\/codeVoice> through the info<\/codeVoice> object passed in ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice>’s apply(to:for:with:)<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered>,]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 44, - "key.doc.name" : "ListEnvironment", - "key.doc.type" : "Class", - "key.doclength" : 1092, - "key.docoffset" : 95, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListEnvironment<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 690, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "ListEnvironment", - "key.namelength" : 15, - "key.nameoffset" : 1201, - "key.offset" : 1194, - "key.parsed_declaration" : "public struct ListEnvironment", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let empty: ListEnvironment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1342 - } - ], - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A default \"empty\" environment, with no values overridden.\nEach key will return its default value.", - "key.doc.column" : 23, - "key.doc.comment" : "A default \"empty\" environment, with no values overridden.\nEach key will return its default value.", - "key.doc.declaration" : "public static let empty: ListableUI.ListEnvironment", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.doc.full_as_xml" : "empty<\/Name>s:10ListableUI15ListEnvironmentV5emptyACvpZ<\/USR>public static let empty: ListableUI.ListEnvironment<\/Declaration>A default “empty” environment, with no values overridden. Each key will return its default value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 48, - "key.doc.name" : "empty", - "key.doc.type" : "Other", - "key.doclength" : 110, - "key.docoffset" : 1228, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> empty<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 36, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "empty", - "key.namelength" : 5, - "key.nameoffset" : 1360, - "key.offset" : 1349, - "key.parsed_declaration" : "public static let empty = ListEnvironment()", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 48, - "key.reusingastcontext" : false, - "key.typename" : "ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVD", - "key.usr" : "s:10ListableUI15ListEnvironmentV5emptyACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public subscript<Key>(key: Key<\/Type>.Type) -> Key<\/Type>.Value<\/Type> where Key<\/Type> : ListEnvironmentKey<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1445 - } - ], - "key.bodylength" : 296, - "key.bodyoffset" : 1526, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Gets or sets an environment value by its key.", - "key.doc.column" : 12, - "key.doc.comment" : "Gets or sets an environment value by its key.", - "key.doc.declaration" : "public subscript(key: Key.Type) -> Key.Value where Key : ListableUI.ListEnvironmentKey { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:10ListableUI15ListEnvironmentVy5ValueQzxmcAA0cD3KeyRzluip<\/USR>public subscript<Key>(key: Key.Type) -> Key.Value where Key : ListableUI.ListEnvironmentKey { get set }<\/Declaration>Gets or sets an environment value by its key.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 51, - "key.doc.name" : "subscript(_:)", - "key.doc.type" : "Other", - "key.doclength" : 50, - "key.docoffset" : 1391, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><Key<\/decl.generic_type_param.name><\/decl.generic_type_param>>(key<\/decl.var.parameter.name>: Key<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> Key<\/ref.generic_type_param>.Value<\/ref.associatedtype><\/decl.function.returntype> where<\/syntaxtype.keyword> Key<\/ref.generic_type_param> : ListEnvironmentKey<\/ref.protocol><\/decl.generic_type_requirement> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>", - "key.kind" : "source.lang.swift.decl.function.subscript", - "key.length" : 371, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "subscript(_:)", - "key.namelength" : 29, - "key.nameoffset" : 1452, - "key.offset" : 1452, - "key.parsed_declaration" : "public subscript(key: Key.Type) -> Key.Value where Key: ListEnvironmentKey", - "key.parsed_scope.end" : 64, - "key.parsed_scope.start" : 51, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.substructure" : [ - { - "key.annotated_decl" : "Key<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.fully_annotated_decl" : "Key<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 3, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "Key", - "key.namelength" : 3, - "key.nameoffset" : 1462, - "key.offset" : 1462, - "key.parsed_declaration" : "public subscript (Key.Type) -> Key.Value", - "key.typeusr" : "$sy5ValueQzxmc10ListableUI18ListEnvironmentKeyRzluD", - "key.usr" : "s:10ListableUI15ListEnvironmentVy5ValueQzxmcAA0cD3KeyRzluip" - }, - { - "key.annotated_decl" : "let objectId: ObjectIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> objectId<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 36, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "objectId", - "key.namelength" : 8, - "key.nameoffset" : 1557, - "key.offset" : 1553, - "key.parsed_declaration" : "let objectId = ObjectIdentifier(key)", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 53, - "key.reusingastcontext" : false, - "key.typename" : "ObjectIdentifier", - "key.typeusr" : "$sSOD", - "key.usr" : "s:10ListableUI15ListEnvironmentVy5ValueQzxmcAA0cD3KeyRzluig8objectIdL_SOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var values: [ObjectIdentifier<\/Type> : Any]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1833 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> values<\/decl.name>: [ObjectIdentifier<\/ref.struct> : Any<\/syntaxtype.keyword>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "values", - "key.namelength" : 6, - "key.nameoffset" : 1845, - "key.offset" : 1841, - "key.parsed_declaration" : "private var values: [ObjectIdentifier: Any] = [:]", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[ObjectIdentifier : Any]", - "key.typeusr" : "$sSDySOypGD", - "key.usr" : "s:10ListableUI15ListEnvironmentV6values33_E2BBBD1B174472683F6C63A6F1DB6EC2LLSDySOypGvp" - } - ], - "key.typename" : "ListEnvironment.Type", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVmD", - "key.usr" : "s:10ListableUI15ListEnvironmentV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 520, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ListEnvironmentKey<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 245 - } - ], - "key.bodylength" : 237, - "key.bodyoffset" : 281, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Defines a value stored in the `ListEnvironment` of a list.\n\nSee `ListEnvironment` for more info and examples.", - "key.doc.column" : 17, - "key.doc.comment" : "Defines a value stored in the `ListEnvironment` of a list.\n\nSee `ListEnvironment` for more info and examples.", - "key.doc.declaration" : "public protocol ListEnvironmentKey", - "key.doc.discussion" : [ - { - "Para" : "See `ListEnvironment` for more info and examples." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.doc.full_as_xml" : "ListEnvironmentKey<\/Name>s:10ListableUI18ListEnvironmentKeyP<\/USR>public protocol ListEnvironmentKey<\/Declaration>Defines a value stored in the ListEnvironment<\/codeVoice> of a list.<\/Para><\/Abstract>See ListEnvironment<\/codeVoice> for more info and examples.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 14, - "key.doc.name" : "ListEnvironmentKey", - "key.doc.type" : "Class", - "key.doclength" : 121, - "key.docoffset" : 124, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListEnvironmentKey<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 267, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "ListEnvironmentKey", - "key.namelength" : 18, - "key.nameoffset" : 261, - "key.offset" : 252, - "key.parsed_declaration" : "public protocol ListEnvironmentKey", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype Value<\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The type of value stored by this key.", - "key.doc.column" : 20, - "key.doc.comment" : "The type of value stored by this key.", - "key.doc.declaration" : "associatedtype Value", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.doc.full_as_xml" : "Value<\/Name>s:10ListableUI18ListEnvironmentKeyP5ValueQa<\/USR>associatedtype Value<\/Declaration>The type of value stored by this key.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "Value", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 291, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> Value<\/decl.name><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 20, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 352, - "key.offset" : 337, - "key.parsed_declaration" : "associatedtype Value", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.Value.Type", - "key.typeusr" : "$s5ValueQzmD", - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP5ValueQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var defaultValue: Self<\/Type>.Value<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 511, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value that will be vended by an `Environment` for this key if no other value has been set.", - "key.doc.column" : 16, - "key.doc.comment" : "The default value that will be vended by an `Environment` for this key if no other value has been set.", - "key.doc.declaration" : "static var defaultValue: Self.Value { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.doclength" : 107, - "key.docoffset" : 363, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Self<\/ref.generic_type_param>.Value<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 43, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 485, - "key.offset" : 474, - "key.parsed_declaration" : "static var defaultValue: Self.Value", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.Value", - "key.typeusr" : "$s5ValueQzD", - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ" - } - ], - "key.typename" : "ListEnvironmentKey.Type", - "key.typeusr" : "$s10ListableUI18ListEnvironmentKey_pmD", - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 903, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol AnyHeaderFooter : AnyHeaderFooterConvertible<\/Type>, AnyHeaderFooter_Internal<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 127 - } - ], - "key.bodylength" : 193, - "key.bodyoffset" : 215, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 26, - "key.offset" : 161 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 24, - "key.offset" : 189 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyHeaderFooter<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol>, AnyHeaderFooter_Internal<\/ref.protocol><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyHeaderFooterConvertible" - }, - { - "key.name" : "AnyHeaderFooter_Internal" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 275, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "AnyHeaderFooter", - "key.namelength" : 15, - "key.nameoffset" : 143, - "key.offset" : 134, - "key.parsed_declaration" : "public protocol AnyHeaderFooter : AnyHeaderFooterConvertible, AnyHeaderFooter_Internal", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var anyContent: Any { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 242, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyContent<\/decl.name>: Any<\/syntaxtype.keyword><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "anyContent", - "key.namelength" : 10, - "key.nameoffset" : 224, - "key.offset" : 220, - "key.parsed_declaration" : "var anyContent : Any", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI15AnyHeaderFooterP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Any", - "key.typeusr" : "$sypD", - "key.usr" : "s:10ListableUI15AnyHeaderFooterP10anyContentypvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var sizing: Sizing<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 279, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "sizing", - "key.namelength" : 6, - "key.nameoffset" : 262, - "key.offset" : 258, - "key.parsed_declaration" : "var sizing : Sizing", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI15AnyHeaderFooterP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Sizing", - "key.typeusr" : "$s10ListableUI6SizingOD", - "key.usr" : "s:10ListableUI15AnyHeaderFooterP6sizingAA6SizingOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var layouts: HeaderFooterLayouts<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 329, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layouts<\/decl.name>: HeaderFooterLayouts<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 298, - "key.offset" : 294, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP7layoutsAA0dE7LayoutsVvp" - } - ], - "key.parsed_declaration" : "var layouts : HeaderFooterLayouts", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI15AnyHeaderFooterP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "HeaderFooterLayouts", - "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVD", - "key.usr" : "s:10ListableUI15AnyHeaderFooterP7layoutsAA0dE7LayoutsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var reappliesToVisibleView: ReappliesToVisibleView<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 401, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reappliesToVisibleView<\/decl.name>: ReappliesToVisibleView<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 58, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "reappliesToVisibleView", - "key.namelength" : 22, - "key.nameoffset" : 353, - "key.offset" : 349, - "key.parsed_declaration" : "var reappliesToVisibleView: ReappliesToVisibleView", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI15AnyHeaderFooterP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ReappliesToVisibleView", - "key.typeusr" : "$s10ListableUI22ReappliesToVisibleViewOD", - "key.usr" : "s:10ListableUI15AnyHeaderFooterP22reappliesToVisibleViewAA09ReappliesghI0Ovp" - } - ], - "key.typename" : "AnyHeaderFooter.Type", - "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pmD", - "key.usr" : "s:10ListableUI15AnyHeaderFooterP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol AnyHeaderFooter_Internal<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 412 - } - ], - "key.bodylength" : 447, - "key.bodyoffset" : 454, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyHeaderFooter_Internal<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 483, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "AnyHeaderFooter_Internal", - "key.namelength" : 24, - "key.nameoffset" : 428, - "key.offset" : 419, - "key.parsed_declaration" : "public protocol AnyHeaderFooter_Internal", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var isStickySectionHeader: Bool<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 494, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isStickySectionHeader<\/decl.name>: Bool<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "isStickySectionHeader", - "key.namelength" : 21, - "key.nameoffset" : 463, - "key.offset" : 459, - "key.parsed_declaration" : "var isStickySectionHeader : Bool?", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool?", - "key.typeusr" : "$sSbSgD", - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP015isStickySectionD0SbSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var layouts: HeaderFooterLayouts<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 545, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layouts<\/decl.name>: HeaderFooterLayouts<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 514, - "key.offset" : 510, - "key.parsed_declaration" : "var layouts : HeaderFooterLayouts", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterLayouts", - "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVD", - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP7layoutsAA0dE7LayoutsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func apply(to headerFooterView: UIView<\/Type>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> headerFooterView<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 138, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "apply(to:for:with:)", - "key.namelength" : 133, - "key.nameoffset" : 566, - "key.offset" : 561, - "key.parsed_declaration" : "func apply(\n to headerFooterView : UIView,\n for reason : ApplyReason,\n with info : ApplyHeaderFooterContentInfo\n)", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (UIView, ApplyReason, ApplyHeaderFooterContentInfo) -> ()", - "key.typeusr" : "$s2to3for4withySo6UIViewC_10ListableUI11ApplyReasonOAF0G23HeaderFooterContentInfoVtcD", - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0ldE11ContentInfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func anyIsEquivalent(to other: AnyHeaderFooter<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> anyIsEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 56, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "anyIsEquivalent(to:)", - "key.namelength" : 43, - "key.nameoffset" : 714, - "key.offset" : 709, - "key.parsed_declaration" : "func anyIsEquivalent(to other : AnyHeaderFooter) -> Bool", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 35, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyHeaderFooter) -> Bool", - "key.typeusr" : "$s2toSb10ListableUI15AnyHeaderFooter_p_tcD", - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP15anyIsEquivalent2toSbAA0cdE0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func newPresentationHeaderFooterState(kind: SupplementaryKind<\/Type>, performsContentCallbacks: Bool<\/Type>) -> Any<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> newPresentationHeaderFooterState<\/decl.name>(kind<\/decl.var.parameter.argument_label>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Any<\/syntaxtype.keyword><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 125, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "newPresentationHeaderFooterState(kind:performsContentCallbacks:)", - "key.namelength" : 113, - "key.nameoffset" : 780, - "key.offset" : 775, - "key.parsed_declaration" : "func newPresentationHeaderFooterState(\n kind : SupplementaryKind,\n performsContentCallbacks : Bool\n) -> Any", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (SupplementaryKind, Bool) -> Any", - "key.typeusr" : "$s4kind24performsContentCallbacksyp10ListableUI17SupplementaryKindO_SbtcD", - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP015newPresentationdE5State4kind24performsContentCallbacksypAA17SupplementaryKindO_SbtF" - } - ], - "key.typename" : "AnyHeaderFooter_Internal.Type", - "key.typeusr" : "$s10ListableUI24AnyHeaderFooter_Internal_pmD", - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooterConvertible.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1050, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol AnyHeaderFooterConvertible<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 873 - } - ], - "key.bodylength" : 129, - "key.bodyoffset" : 917, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A type which can be converted into a `HeaderFooter`, so you\ndo not need to explicitly wrap \/ convert your `HeaderFooterContent`\nin a `HeaderFooter` when providing an header or footer to a list or section:\n\n```\nSection(\"id\") { section in\n section.header = MyHeaderContent(title: \"Hello, World!\")\n}\n\nstruct MyHeaderContent : HeaderFooterContent {\n var title : String\n ...\n}\n```\n\nOnly two types conform to this protocol:\n\n### `HeaderFooter`\nThe `HeaderFooter` conformance simply returns self.\n\n### `HeaderFooterContent`\nThe `HeaderFooterContent` conformance returns `HeaderFooter(self)`,\nutilizing the default values from the `HeaderFooter` initializer.\n", - "key.doc.column" : 17, - "key.doc.comment" : "A type which can be converted into a `HeaderFooter`, so you\ndo not need to explicitly wrap \/ convert your `HeaderFooterContent`\nin a `HeaderFooter` when providing an header or footer to a list or section:\n\n```\nSection(\"id\") { section in\n section.header = MyHeaderContent(title: \"Hello, World!\")\n}\n\nstruct MyHeaderContent : HeaderFooterContent {\n var title : String\n ...\n}\n```\n\nOnly two types conform to this protocol:\n\n### `HeaderFooter`\nThe `HeaderFooter` conformance simply returns self.\n\n### `HeaderFooterContent`\nThe `HeaderFooterContent` conformance returns `HeaderFooter(self)`,\nutilizing the default values from the `HeaderFooter` initializer.", - "key.doc.declaration" : "public protocol AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "CodeListing" : "" - }, - { - "Para" : "Only two types conform to this protocol:" - }, - { - "Para" : "The `HeaderFooter` conformance simply returns self." - }, - { - "Para" : "The `HeaderFooterContent` conformance returns `HeaderFooter(self)`, utilizing the default values from the `HeaderFooter` initializer." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooterConvertible.swift", - "key.doc.full_as_xml" : "AnyHeaderFooterConvertible<\/Name>s:10ListableUI26AnyHeaderFooterConvertibleP<\/USR>public protocol AnyHeaderFooterConvertible<\/Declaration>A type which can be converted into a HeaderFooter<\/codeVoice>, so you do not need to explicitly wrap \/ convert your HeaderFooterContent<\/codeVoice> in a HeaderFooter<\/codeVoice> when providing an header or footer to a list or section:<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Only two types conform to this protocol:<\/Para>]]><\/rawHTML>HeaderFooter<\/codeVoice>]]><\/rawHTML>The HeaderFooter<\/codeVoice> conformance simply returns self.<\/Para>]]><\/rawHTML>HeaderFooterContent<\/codeVoice>]]><\/rawHTML>The HeaderFooterContent<\/codeVoice> conformance returns HeaderFooter(self)<\/codeVoice>, utilizing the default values from the HeaderFooter<\/codeVoice> initializer.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 35, - "key.doc.name" : "AnyHeaderFooterConvertible", - "key.doc.type" : "Class", - "key.doclength" : 749, - "key.docoffset" : 124, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooterConvertible.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyHeaderFooterConvertible<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 167, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "AnyHeaderFooterConvertible", - "key.namelength" : 26, - "key.nameoffset" : 889, - "key.offset" : 880, - "key.parsed_declaration" : "public protocol AnyHeaderFooterConvertible", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func asAnyHeaderFooter() -> AnyHeaderFooter<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Converts the object into a type-erased `AnyHeaderFooter` instance.", - "key.doc.column" : 10, - "key.doc.comment" : "Converts the object into a type-erased `AnyHeaderFooter` instance.", - "key.doc.declaration" : "func asAnyHeaderFooter() -> AnyHeaderFooter", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooterConvertible.swift", - "key.doc.full_as_xml" : "asAnyHeaderFooter()<\/Name>s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF<\/USR>func asAnyHeaderFooter() -> AnyHeaderFooter<\/Declaration>Converts the object into a type-erased AnyHeaderFooter<\/codeVoice> instance.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 38, - "key.doc.name" : "asAnyHeaderFooter()", - "key.doc.type" : "Function", - "key.doclength" : 71, - "key.docoffset" : 927, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooterConvertible.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> asAnyHeaderFooter<\/decl.name>() -> AnyHeaderFooter<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 43, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "asAnyHeaderFooter()", - "key.namelength" : 19, - "key.nameoffset" : 1007, - "key.offset" : 1002, - "key.parsed_declaration" : "func asAnyHeaderFooter() -> AnyHeaderFooter", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 38, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> any AnyHeaderFooter", - "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pycD", - "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF" - } - ], - "key.typename" : "AnyHeaderFooterConvertible.Type", - "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pmD", - "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1872, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct DefaultHeaderFooterProperties<ContentType> where ContentType<\/Type> : HeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 645 - } - ], - "key.bodylength" : 1147, - "key.bodyoffset" : 723, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows specifying default properties to apply to a header \/ footer when it is initialized,\nif those values are not provided to the initializer.\nOnly non-nil values are used – if you do not want to provide a default value,\nsimply leave the property nil.\n\nThe order of precedence used when assigning values is:\n1) The value passed to the initializer.\n2) The value from `defaultHeaderFooterProperties` on the contained `HeaderFooterContent`, if non-nil.\n3) A standard, default value.", - "key.doc.column" : 15, - "key.doc.comment" : "Allows specifying default properties to apply to a header \/ footer when it is initialized,\nif those values are not provided to the initializer.\nOnly non-nil values are used – if you do not want to provide a default value,\nsimply leave the property nil.\n\nThe order of precedence used when assigning values is:\n1) The value passed to the initializer.\n2) The value from `defaultHeaderFooterProperties` on the contained `HeaderFooterContent`, if non-nil.\n3) A standard, default value.", - "key.doc.declaration" : "public struct DefaultHeaderFooterProperties where ContentType : ListableUI.HeaderFooterContent", - "key.doc.discussion" : [ - { - "Para" : "The order of precedence used when assigning values is:" - }, - { - "List-Number" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.doc.full_as_xml" : "DefaultHeaderFooterProperties<\/Name>s:10ListableUI29DefaultHeaderFooterPropertiesV<\/USR>public struct DefaultHeaderFooterProperties<ContentType> where ContentType : ListableUI.HeaderFooterContent<\/Declaration>Allows specifying default properties to apply to a header \/ footer when it is initialized, if those values are not provided to the initializer. Only non-nil values are used – if you do not want to provide a default value, simply leave the property nil.<\/Para><\/Abstract>The order of precedence used when assigning values is:<\/Para>The value passed to the initializer.<\/Para><\/Item>The value from defaultHeaderFooterProperties<\/codeVoice> on the contained HeaderFooterContent<\/codeVoice>, if non-nil.<\/Para><\/Item>A standard, default value.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 20, - "key.doc.name" : "DefaultHeaderFooterProperties", - "key.doc.type" : "Class", - "key.doclength" : 518, - "key.docoffset" : 127, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> DefaultHeaderFooterProperties<\/decl.name><ContentType<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> ContentType<\/ref.generic_type_param> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1219, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "DefaultHeaderFooterProperties", - "key.namelength" : 29, - "key.nameoffset" : 659, - "key.offset" : 652, - "key.parsed_declaration" : "public struct DefaultHeaderFooterProperties", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "ContentType : HeaderFooterContent<\/Type><\/Declaration>", - "key.column" : 45, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 701 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "ContentType<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 31, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "ContentType", - "key.namelength" : 11, - "key.nameoffset" : 689, - "key.offset" : 689, - "key.parsed_declaration" : "public struct DefaultHeaderFooterPropertiespublic typealias DefaultHeaderFooterProperties<\/Type><ContentType<\/Type>>.HeaderFooter = ListableUI.HeaderFooter<\/Type><ContentType<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 728 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> DefaultHeaderFooterProperties<\/ref.struct><ContentType<\/ref.generic_type_param>>.HeaderFooter<\/decl.name> = ListableUI.HeaderFooter<\/ref.struct><ContentType<\/ref.generic_type_param>><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 61, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooter", - "key.namelength" : 12, - "key.nameoffset" : 745, - "key.offset" : 735, - "key.parsed_declaration" : "public typealias HeaderFooter = ListableUI.HeaderFooter", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooter.Type", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGmD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV0dE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sizing: Sizing<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 806 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "sizing", - "key.namelength" : 6, - "key.nameoffset" : 817, - "key.offset" : 813, - "key.parsed_declaration" : "public var sizing : Sizing?", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Sizing?", - "key.typeusr" : "$s10ListableUI6SizingOSgD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV6sizingAA6SizingOSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layouts: HeaderFooterLayouts<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 838 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: HeaderFooterLayouts<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 849, - "key.offset" : 845, - "key.parsed_declaration" : "public var layouts : HeaderFooterLayouts?", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "HeaderFooterLayouts?", - "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVSgD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV7layoutsAA0dE7LayoutsVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onTap: HeaderFooter<\/Type>.OnTap<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 884 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onTap<\/decl.name>: HeaderFooter<\/ref.typealias>.OnTap<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "onTap", - "key.namelength" : 5, - "key.nameoffset" : 895, - "key.offset" : 891, - "key.parsed_declaration" : "public var onTap : HeaderFooter.OnTap?", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(() -> ())?", - "key.typeusr" : "$syycSgD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV5onTapyycSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onDisplay: HeaderFooter<\/Type>.OnDisplay<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 927 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onDisplay<\/decl.name>: HeaderFooter<\/ref.typealias>.OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "onDisplay", - "key.namelength" : 9, - "key.nameoffset" : 938, - "key.offset" : 934, - "key.parsed_declaration" : "public var onDisplay : HeaderFooter.OnDisplay.Callback?", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((HeaderFooter.OnDisplay) -> ())?", - "key.typeusr" : "$sy10ListableUI12HeaderFooterV9OnDisplayVyx_GcSgD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV9onDisplayyAA0dE0V02OnH0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onEndDisplay: HeaderFooter<\/Type>.OnEndDisplay<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 987 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onEndDisplay<\/decl.name>: HeaderFooter<\/ref.typealias>.OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 54, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "onEndDisplay", - "key.namelength" : 12, - "key.nameoffset" : 998, - "key.offset" : 994, - "key.parsed_declaration" : "public var onEndDisplay : HeaderFooter.OnEndDisplay.Callback?", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((HeaderFooter.OnEndDisplay) -> ())?", - "key.typeusr" : "$sy10ListableUI12HeaderFooterV12OnEndDisplayVyx_GcSgD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV12onEndDisplayyAA0dE0V02OnhI0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var debuggingIdentifier: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1053 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "debuggingIdentifier", - "key.namelength" : 19, - "key.nameoffset" : 1064, - "key.offset" : 1060, - "key.parsed_declaration" : "public var debuggingIdentifier : String?", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV19debuggingIdentifierSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(sizing: Sizing<\/Type>? = nil, layouts: HeaderFooterLayouts<\/Type>? = nil, onTap: HeaderFooter<\/Type>.OnTap<\/Type>? = nil, onDisplay: HeaderFooter<\/Type>.OnDisplay<\/Type>.Callback<\/Type>? = nil, onEndDisplay: HeaderFooter<\/Type>.OnEndDisplay<\/Type>.Callback<\/Type>? = nil, debuggingIdentifier: String<\/Type>? = nil, configure: (inout `Self`) -> () = { _ in })<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1103 - } - ], - "key.bodylength" : 257, - "key.bodyoffset" : 1474, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: HeaderFooterLayouts<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onTap<\/decl.var.parameter.argument_label>: HeaderFooter<\/ref.typealias>.OnTap<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDisplay<\/decl.var.parameter.argument_label>: HeaderFooter<\/ref.typealias>.OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onEndDisplay<\/decl.var.parameter.argument_label>: HeaderFooter<\/ref.typealias>.OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, debuggingIdentifier<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 622, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "init(sizing:layouts:onTap:onDisplay:onEndDisplay:debuggingIdentifier:configure:)", - "key.namelength" : 362, - "key.nameoffset" : 1110, - "key.offset" : 1110, - "key.parsed_declaration" : "public init(\n sizing : Sizing? = nil,\n layouts : HeaderFooterLayouts? = nil,\n onTap : HeaderFooter.OnTap? = nil,\n onDisplay : HeaderFooter.OnDisplay.Callback? = nil,\n onEndDisplay : HeaderFooter.OnEndDisplay.Callback? = nil,\n debuggingIdentifier : String? = nil,\n \n configure : (inout Self) -> () = { _ in }\n)", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DefaultHeaderFooterProperties.Type) -> (Sizing?, HeaderFooterLayouts?, (() -> ())?, ((HeaderFooter.OnDisplay) -> ())?, ((HeaderFooter.OnEndDisplay) -> ())?, String?, (inout DefaultHeaderFooterProperties) -> ()) -> DefaultHeaderFooterProperties", - "key.typeusr" : "$s6sizing7layouts5onTap0C7Display0c3EndE019debuggingIdentifier9configure10ListableUI29DefaultHeaderFooterPropertiesVyxGAH6SizingOSg_AH0mN7LayoutsVSgyycSgyAH0mN0V02OnE0Vyx_GcSgyAT0rfE0Vyx_GcSgSSSgyAKzXEtcD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV6sizing7layouts5onTap0I7Display0i3EndK019debuggingIdentifier9configureACyxGAA6SizingOSg_AA0dE7LayoutsVSgyycSgyAA0dE0V02OnK0Vyx_GcSgyAT0rlK0Vyx_GcSgSSSgyAKzXEtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func defaults(with configure: (inout `Self`) -> () = { _ in }) -> DefaultHeaderFooterProperties<\/Type><ContentType<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1742 - } - ], - "key.bodylength" : 41, - "key.bodyoffset" : 1827, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/DefaultHeaderFooterProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> defaults<\/decl.name>(with<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> DefaultHeaderFooterProperties<\/ref.struct><ContentType<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 120, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "defaults(with:)", - "key.namelength" : 56, - "key.nameoffset" : 1761, - "key.offset" : 1749, - "key.parsed_declaration" : "public static func defaults(with configure : (inout Self) -> () = { _ in }) -> Self", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 51, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DefaultHeaderFooterProperties.Type) -> ((inout DefaultHeaderFooterProperties) -> ()) -> DefaultHeaderFooterProperties", - "key.typeusr" : "$s4with10ListableUI29DefaultHeaderFooterPropertiesVyxGyAEzXE_tcD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV8defaults4withACyxGyAFzXE_tFZ" - } - ], - "key.typename" : "DefaultHeaderFooterProperties.Type", - "key.typeusr" : "$s10ListableUI29DefaultHeaderFooterPropertiesVyxGmD", - "key.usr" : "s:10ListableUI29DefaultHeaderFooterPropertiesV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 4804, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Header<Content> = HeaderFooter<\/Type><Content<\/Type>> where Content<\/Type> : HeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 105 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Header<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> = HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 69, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Header", - "key.namelength" : 6, - "key.nameoffset" : 122, - "key.offset" : 112, - "key.parsed_declaration" : "public typealias Header = HeaderFooter", - "key.parsed_scope.end" : 11, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : HeaderFooterContent<\/Type><\/Declaration>", - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 137 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 27, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 129, - "key.offset" : 129, - "key.parsed_declaration" : "public typealias HeaderContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI6Headera7Contentxmfp" - } - ], - "key.typename" : "HeaderFooter.Type", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGmD", - "key.usr" : "s:10ListableUI6Headera" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Footer<Content> = HeaderFooter<\/Type><Content<\/Type>> where Content<\/Type> : HeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 182 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Footer<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> = HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 69, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "Footer", - "key.namelength" : 6, - "key.nameoffset" : 199, - "key.offset" : 189, - "key.parsed_declaration" : "public typealias Footer = HeaderFooter", - "key.parsed_scope.end" : 12, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : HeaderFooterContent<\/Type><\/Declaration>", - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 214 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 27, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 206, - "key.offset" : 206, - "key.parsed_declaration" : "public typealias FooterContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI6Footera7Contentxmfp" - } - ], - "key.typename" : "HeaderFooter.Type", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGmD", - "key.usr" : "s:10ListableUI6Footera" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct HeaderFooter<Content> : AnyHeaderFooter<\/Type> where Content<\/Type> : HeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 261 - } - ], - "key.bodylength" : 3046, - "key.bodyoffset" : 336, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 15, - "key.offset" : 319 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooter<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyHeaderFooter<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyHeaderFooter" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3115, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooter", - "key.namelength" : 12, - "key.nameoffset" : 275, - "key.offset" : 268, - "key.parsed_declaration" : "public struct HeaderFooter : AnyHeaderFooter", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : HeaderFooterContent<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 296 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 27, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 288, - "key.offset" : 288, - "key.parsed_declaration" : "public struct HeaderFooterpublic var content: Content<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 341 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 352, - "key.offset" : 348, - "key.parsed_declaration" : "public var content : Content", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Content", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI12HeaderFooterV7contentxvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sizing: Sizing<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 379 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "sizing", - "key.namelength" : 6, - "key.nameoffset" : 390, - "key.offset" : 386, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI15AnyHeaderFooterP6sizingAA6SizingOvp" - } - ], - "key.parsed_declaration" : "public var sizing : Sizing", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Sizing", - "key.typeusr" : "$s10ListableUI6SizingOD", - "key.usr" : "s:10ListableUI12HeaderFooterV6sizingAA6SizingOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layouts: HeaderFooterLayouts<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 410 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: HeaderFooterLayouts<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 421, - "key.offset" : 417, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI15AnyHeaderFooterP7layoutsAA0dE7LayoutsVvp" - }, - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP7layoutsAA0dE7LayoutsVvp" - } - ], - "key.parsed_declaration" : "public var layouts : HeaderFooterLayouts", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "HeaderFooterLayouts", - "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVD", - "key.usr" : "s:10ListableUI12HeaderFooterV7layoutsAA0cD7LayoutsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias HeaderFooter<\/Type><Content<\/Type>>.OnTap = () -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 460 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>>.OnTap<\/decl.name> = () -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 26, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "OnTap", - "key.namelength" : 5, - "key.nameoffset" : 477, - "key.offset" : 467, - "key.parsed_declaration" : "public typealias OnTap = () -> ()", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.typename" : "(() -> ()).Type", - "key.typeusr" : "$syycmD", - "key.usr" : "s:10ListableUI12HeaderFooterV5OnTapa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onTap: OnTap<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 498 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onTap<\/decl.name>: OnTap<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "onTap", - "key.namelength" : 5, - "key.nameoffset" : 509, - "key.offset" : 505, - "key.parsed_declaration" : "public var onTap : OnTap?", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(() -> ())?", - "key.typeusr" : "$syycSgD", - "key.usr" : "s:10ListableUI12HeaderFooterV5onTapyycSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onDisplay: OnDisplay<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 533 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onDisplay<\/decl.name>: OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "onDisplay", - "key.namelength" : 9, - "key.nameoffset" : 544, - "key.offset" : 540, - "key.parsed_declaration" : "public var onDisplay : OnDisplay.Callback?", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((HeaderFooter.OnDisplay) -> ())?", - "key.typeusr" : "$sy10ListableUI12HeaderFooterV9OnDisplayVyx_GcSgD", - "key.usr" : "s:10ListableUI12HeaderFooterV9onDisplayyAC02OnF0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onEndDisplay: OnEndDisplay<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 580 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onEndDisplay<\/decl.name>: OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "onEndDisplay", - "key.namelength" : 12, - "key.nameoffset" : 591, - "key.offset" : 587, - "key.parsed_declaration" : "public var onEndDisplay : OnEndDisplay.Callback?", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((HeaderFooter.OnEndDisplay) -> ())?", - "key.typeusr" : "$sy10ListableUI12HeaderFooterV12OnEndDisplayVyx_GcSgD", - "key.usr" : "s:10ListableUI12HeaderFooterV12onEndDisplayyAC02OnfG0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var debuggingIdentifier: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 638 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "debuggingIdentifier", - "key.namelength" : 19, - "key.nameoffset" : 649, - "key.offset" : 645, - "key.parsed_declaration" : "public var debuggingIdentifier : String? = nil", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI12HeaderFooterV19debuggingIdentifierSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal let reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 694 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> let<\/syntaxtype.keyword> reuseIdentifier<\/decl.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "reuseIdentifier", - "key.namelength" : 15, - "key.nameoffset" : 707, - "key.offset" : 703, - "key.parsed_declaration" : "internal let reuseIdentifier : ReuseIdentifier", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.typename" : "ReuseIdentifier", - "key.typeusr" : "$s10ListableUI15ReuseIdentifierCyxGD", - "key.usr" : "s:10ListableUI12HeaderFooterV15reuseIdentifierAA05ReuseF0CyxGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 769 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias HeaderFooter<\/Type><Content<\/Type>>.Configure = (inout HeaderFooter<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 806 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>>.Configure<\/decl.name> = (inout<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 48, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "Configure", - "key.namelength" : 9, - "key.nameoffset" : 823, - "key.offset" : 813, - "key.parsed_declaration" : "public typealias Configure = (inout HeaderFooter) -> ()", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.typename" : "((inout HeaderFooter) -> ()).Type", - "key.typeusr" : "$sy10ListableUI12HeaderFooterVyxGzcmD", - "key.usr" : "s:10ListableUI12HeaderFooterV9Configurea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ content: Content<\/Type>, configure: Configure<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 871 - } - ], - "key.bodylength" : 66, - "key.bodyoffset" : 950, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 139, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "init(_:configure:)", - "key.namelength" : 70, - "key.nameoffset" : 878, - "key.offset" : 878, - "key.parsed_declaration" : "public init(\n _ content : Content,\n configure : Configure\n)", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 38, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:sizing:layouts:onTap:onDisplay:onEndDisplay:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (HeaderFooter.Type) -> (Content, (inout HeaderFooter) -> ()) -> HeaderFooter", - "key.typeusr" : "$s_9configure10ListableUI12HeaderFooterVyxGx_yAEzXEtcD", - "key.usr" : "s:10ListableUI12HeaderFooterV_9configureACyxGx_yAEzXEtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ content: Content<\/Type>, sizing: Sizing<\/Type>? = nil, layouts: HeaderFooterLayouts<\/Type>? = nil, onTap: OnTap<\/Type>? = nil, onDisplay: OnDisplay<\/Type>.Callback<\/Type>? = nil, onEndDisplay: OnEndDisplay<\/Type>.Callback<\/Type>? = nil)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1027 - } - ], - "key.bodylength" : 625, - "key.bodyoffset" : 1283, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: HeaderFooterLayouts<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onTap<\/decl.var.parameter.argument_label>: OnTap<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDisplay<\/decl.var.parameter.argument_label>: OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onEndDisplay<\/decl.var.parameter.argument_label>: OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 875, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "init(_:sizing:layouts:onTap:onDisplay:onEndDisplay:)", - "key.namelength" : 247, - "key.nameoffset" : 1034, - "key.offset" : 1034, - "key.parsed_declaration" : "public init(\n _ content : Content,\n sizing : Sizing? = nil,\n layouts : HeaderFooterLayouts? = nil,\n onTap : OnTap? = nil,\n onDisplay : OnDisplay.Callback? = nil,\n onEndDisplay : OnEndDisplay.Callback? = nil\n)", - "key.parsed_scope.end" : 69, - "key.parsed_scope.start" : 47, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:configure:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let defaults: DefaultHeaderFooterProperties<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> defaults<\/decl.name>: DefaultHeaderFooterProperties<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 57, - "key.line" : 59, - "key.modulename" : "ListableUI", - "key.name" : "defaults", - "key.namelength" : 8, - "key.nameoffset" : 1385, - "key.offset" : 1381, - "key.parsed_declaration" : "let defaults = self.content.defaultHeaderFooterProperties", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 59, - "key.reusingastcontext" : false, - "key.typename" : "DefaultHeaderFooterProperties", - "key.typeusr" : "$s10ListableUI29DefaultHeaderFooterPropertiesVyxGD", - "key.usr" : "s:10ListableUI12HeaderFooterV_6sizing7layouts5onTap0G7Display0g3EndI0ACyxGx_AA6SizingOSgAA0cD7LayoutsVSgyycSgyAC02OnI0Vyx_GcSgyAC0mjI0Vyx_GcSgtcfc8defaultsL_AA07DefaultcD10PropertiesVyxGvp" - } - ], - "key.typename" : " (HeaderFooter.Type) -> (Content, Sizing?, HeaderFooterLayouts?, (() -> ())?, ((HeaderFooter.OnDisplay) -> ())?, ((HeaderFooter.OnEndDisplay) -> ())?) -> HeaderFooter", - "key.typeusr" : "$s_6sizing7layouts5onTap0C7Display0c3EndE010ListableUI12HeaderFooterVyxGx_AF6SizingOSgAF0iJ7LayoutsVSgyycSgyAH02OnE0Vyx_GcSgyAH0mfE0Vyx_GcSgtcD", - "key.usr" : "s:10ListableUI12HeaderFooterV_6sizing7layouts5onTap0G7Display0g3EndI0ACyxGx_AA6SizingOSgAA0cD7LayoutsVSgyycSgyAC02OnI0Vyx_GcSgyAC0mjI0Vyx_GcSgtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 21, - "key.name" : "MARK: AnyHeaderFooter", - "key.offset" : 1922 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var anyContent: Any { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1953 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 1981, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> anyContent<\/decl.name>: Any<\/syntaxtype.keyword><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "anyContent", - "key.namelength" : 10, - "key.nameoffset" : 1964, - "key.offset" : 1960, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI15AnyHeaderFooterP10anyContentypvp" - } - ], - "key.parsed_declaration" : "public var anyContent: Any", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 73, - "key.reusingastcontext" : false, - "key.typename" : "Any", - "key.typeusr" : "$sypD", - "key.usr" : "s:10ListableUI12HeaderFooterV10anyContentypvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var reappliesToVisibleView: ReappliesToVisibleView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2018 - } - ], - "key.bodylength" : 49, - "key.bodyoffset" : 2077, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> reappliesToVisibleView<\/decl.name>: ReappliesToVisibleView<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 102, - "key.line" : 77, - "key.modulename" : "ListableUI", - "key.name" : "reappliesToVisibleView", - "key.namelength" : 22, - "key.nameoffset" : 2029, - "key.offset" : 2025, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI15AnyHeaderFooterP22reappliesToVisibleViewAA09ReappliesghI0Ovp" - } - ], - "key.parsed_declaration" : "public var reappliesToVisibleView: ReappliesToVisibleView", - "key.parsed_scope.end" : 79, - "key.parsed_scope.start" : 77, - "key.reusingastcontext" : false, - "key.typename" : "ReappliesToVisibleView", - "key.typeusr" : "$s10ListableUI22ReappliesToVisibleViewOD", - "key.usr" : "s:10ListableUI12HeaderFooterV22reappliesToVisibleViewAA09ReappliesfgH0Ovp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 32, - "key.name" : "MARK: AnyHeaderFooterConvertible", - "key.offset" : 2140 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func asAnyHeaderFooter() -> AnyHeaderFooter<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2182 - } - ], - "key.bodylength" : 18, - "key.bodyoffset" : 2234, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Converts the object into a type-erased `AnyHeaderFooter` instance.", - "key.doc.column" : 10, - "key.doc.declaration" : "func asAnyHeaderFooter() -> AnyHeaderFooter", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooterConvertible.swift", - "key.doc.full_as_xml" : "asAnyHeaderFooter()<\/Name>s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF<\/USR>func asAnyHeaderFooter() -> AnyHeaderFooter<\/Declaration>Converts the object into a type-erased AnyHeaderFooter<\/codeVoice> instance.<\/Para><\/Abstract>This documentation comment was inherited from AnyHeaderFooterConvertible<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 38, - "key.doc.name" : "asAnyHeaderFooter()", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> asAnyHeaderFooter<\/decl.name>() -> AnyHeaderFooter<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 64, - "key.line" : 83, - "key.modulename" : "ListableUI", - "key.name" : "asAnyHeaderFooter()", - "key.namelength" : 19, - "key.nameoffset" : 2194, - "key.offset" : 2189, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF" - } - ], - "key.parsed_declaration" : "public func asAnyHeaderFooter() -> AnyHeaderFooter", - "key.parsed_scope.end" : 85, - "key.parsed_scope.start" : 83, - "key.reusingastcontext" : false, - "key.typename" : " (HeaderFooter) -> () -> any AnyHeaderFooter", - "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pycD", - "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 30, - "key.name" : "MARK: AnyHeaderFooter_Internal", - "key.offset" : 2266 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isStickySectionHeader: Bool<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2306 - } - ], - "key.bodylength" : 43, - "key.bodyoffset" : 2347, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isStickySectionHeader<\/decl.name>: Bool<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 78, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "isStickySectionHeader", - "key.namelength" : 21, - "key.nameoffset" : 2317, - "key.offset" : 2313, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP015isStickySectionD0SbSgvp" - } - ], - "key.parsed_declaration" : "public var isStickySectionHeader: Bool?", - "key.parsed_scope.end" : 91, - "key.parsed_scope.start" : 89, - "key.reusingastcontext" : false, - "key.typename" : "Bool?", - "key.typeusr" : "$sSbSgD", - "key.usr" : "s:10ListableUI12HeaderFooterV015isStickySectionC0SbSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func apply(to anyView: UIView<\/Type>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2401 - } - ], - "key.bodylength" : 262, - "key.bodyoffset" : 2539, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> anyView<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 394, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "apply(to:for:with:)", - "key.namelength" : 124, - "key.nameoffset" : 2413, - "key.offset" : 2408, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0ldE11ContentInfoVtF" - } - ], - "key.parsed_declaration" : "public func apply(\n to anyView : UIView,\n for reason : ApplyReason,\n with info : ApplyHeaderFooterContentInfo\n)", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: HeaderFooterContentView<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: HeaderFooterContentView<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 55, - "key.line" : 98, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 2552, - "key.offset" : 2548, - "key.parsed_declaration" : "let view = anyView as! HeaderFooterContentView", - "key.parsed_scope.end" : 98, - "key.parsed_scope.start" : 98, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContentView", - "key.typeusr" : "$s10ListableUI23HeaderFooterContentViewCyxGD", - "key.usr" : "s:10ListableUI12HeaderFooterV5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0jcD11ContentInfoVtF4viewL_AA0cdL4ViewCyxGvp" - }, - { - "key.annotated_decl" : "let views: HeaderFooterContentViews<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> views<\/decl.name>: HeaderFooterContentViews<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 57, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "views", - "key.namelength" : 5, - "key.nameoffset" : 2625, - "key.offset" : 2621, - "key.parsed_declaration" : "let views = HeaderFooterContentViews(view: view)", - "key.parsed_scope.end" : 100, - "key.parsed_scope.start" : 100, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContentViews", - "key.typeusr" : "$s10ListableUI24HeaderFooterContentViewsVyxGD", - "key.usr" : "s:10ListableUI12HeaderFooterV5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0jcD11ContentInfoVtF5viewsL_AA0cdL5ViewsVyxGvp" - } - ], - "key.typename" : " (HeaderFooter) -> (UIView, ApplyReason, ApplyHeaderFooterContentInfo) -> ()", - "key.typeusr" : "$s2to3for4withySo6UIViewC_10ListableUI11ApplyReasonOAF0G23HeaderFooterContentInfoVtcD", - "key.usr" : "s:10ListableUI12HeaderFooterV5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0jcD11ContentInfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func anyIsEquivalent(to other: AnyHeaderFooter<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2816 - } - ], - "key.bodylength" : 174, - "key.bodyoffset" : 2885, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> anyIsEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 237, - "key.line" : 109, - "key.modulename" : "ListableUI", - "key.name" : "anyIsEquivalent(to:)", - "key.namelength" : 43, - "key.nameoffset" : 2828, - "key.offset" : 2823, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP15anyIsEquivalent2toSbAA0cdE0_p_tF" - } - ], - "key.parsed_declaration" : "public func anyIsEquivalent(to other : AnyHeaderFooter) -> Bool", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 109, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (HeaderFooter) -> (any AnyHeaderFooter) -> Bool", - "key.typeusr" : "$s2toSb10ListableUI15AnyHeaderFooter_p_tcD", - "key.usr" : "s:10ListableUI12HeaderFooterV15anyIsEquivalent2toSbAA03AnycD0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func newPresentationHeaderFooterState(kind: SupplementaryKind<\/Type>, performsContentCallbacks: Bool<\/Type>) -> Any<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3070 - } - ], - "key.bodylength" : 172, - "key.bodyoffset" : 3208, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newPresentationHeaderFooterState<\/decl.name>(kind<\/decl.var.parameter.argument_label>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Any<\/syntaxtype.keyword><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 304, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "newPresentationHeaderFooterState(kind:performsContentCallbacks:)", - "key.namelength" : 113, - "key.nameoffset" : 3082, - "key.offset" : 3077, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP015newPresentationdE5State4kind24performsContentCallbacksypAA17SupplementaryKindO_SbtF" - } - ], - "key.parsed_declaration" : "public func newPresentationHeaderFooterState(\n kind : SupplementaryKind,\n performsContentCallbacks : Bool\n) -> Any", - "key.parsed_scope.end" : 128, - "key.parsed_scope.start" : 118, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (HeaderFooter) -> (SupplementaryKind, Bool) -> Any", - "key.typeusr" : "$s4kind24performsContentCallbacksyp10ListableUI17SupplementaryKindO_SbtcD", - "key.usr" : "s:10ListableUI12HeaderFooterV015newPresentationcD5State4kind24performsContentCallbacksypAA17SupplementaryKindO_SbtF" - } - ], - "key.typename" : "HeaderFooter.Type", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGmD", - "key.usr" : "s:10ListableUI12HeaderFooterV" - }, - { - "key.annotated_decl" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible<\/Type><\/Declaration>", - "key.bodylength" : 1161, - "key.bodyoffset" : 3417, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "Para" : "A non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 47, - "key.doc.name" : "HeaderFooterContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1193, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContent", - "key.namelength" : 19, - "key.nameoffset" : 3396, - "key.offset" : 3386, - "key.parsed_declaration" : "extension HeaderFooterContent", - "key.parsed_scope.end" : 169, - "key.parsed_scope.start" : 132, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func with(sizing: Sizing<\/Type>? = nil, layouts: HeaderFooterLayouts<\/Type>? = nil, onTap: HeaderFooter<\/Type><Self<\/Type>>.OnTap<\/Type>? = nil, onDisplay: HeaderFooter<\/Type><Self<\/Type>>.OnDisplay<\/Type>.Callback<\/Type>? = nil, onEndDisplay: HeaderFooter<\/Type><Self<\/Type>>.OnEndDisplay<\/Type>.Callback<\/Type>? = nil) -> HeaderFooter<\/Type><Self<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4049 - } - ], - "key.bodylength" : 212, - "key.bodyoffset" : 4364, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Identical to `HeaderFooter.init` which takes in a `HeaderFooterContent`,\nexcept you can call this on the `HeaderFooterContent` itself, instead of wrapping it,\nto avoid additional nesting, and to hoist your content up in your code.\n\n```\nSection(\"id\") { section in\n section.header = MyHeaderContent(\n title: \"Hello, World!\"\n )\n .with(\n sizing: .thatFits(.noConstraint),\n )\n\nstruct MyHeaderContent : HeaderFooterContent {\n var title : String\n ...\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "Identical to `HeaderFooter.init` which takes in a `HeaderFooterContent`,\nexcept you can call this on the `HeaderFooterContent` itself, instead of wrapping it,\nto avoid additional nesting, and to hoist your content up in your code.\n\n```\nSection(\"id\") { section in\n section.header = MyHeaderContent(\n title: \"Hello, World!\"\n )\n .with(\n sizing: .thatFits(.noConstraint),\n )\n\nstruct MyHeaderContent : HeaderFooterContent {\n var title : String\n ...\n}\n```", - "key.doc.declaration" : "public func with(sizing: Sizing? = nil, layouts: HeaderFooterLayouts? = nil, onTap: HeaderFooter.OnTap? = nil, onDisplay: HeaderFooter.OnDisplay.Callback? = nil, onEndDisplay: HeaderFooter.OnEndDisplay.Callback? = nil) -> HeaderFooter", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.doc.full_as_xml" : "with(sizing:layouts:onTap:onDisplay:onEndDisplay:)<\/Name>s:10ListableUI19HeaderFooterContentPAAE4with6sizing7layouts5onTap0I7Display0i3EndK0AA0cD0VyxGAA6SizingOSg_AA0cD7LayoutsVSgyycSgyAK02OnK0Vyx_GcSgyAK0olK0Vyx_GcSgtF<\/USR>public func with(sizing: Sizing? = nil, layouts: HeaderFooterLayouts? = nil, onTap: HeaderFooter<Self>.OnTap? = nil, onDisplay: HeaderFooter<Self>.OnDisplay.Callback? = nil, onEndDisplay: HeaderFooter<Self>.OnEndDisplay.Callback? = nil) -> HeaderFooter<Self><\/Declaration>Identical to HeaderFooter.init<\/codeVoice> which takes in a HeaderFooterContent<\/codeVoice>, except you can call this on the HeaderFooterContent<\/codeVoice> itself, instead of wrapping it, to avoid additional nesting, and to hoist your content up in your code.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 152, - "key.doc.name" : "with(sizing:layouts:onTap:onDisplay:onEndDisplay:)", - "key.doc.type" : "Function", - "key.doclength" : 618, - "key.docoffset" : 3427, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> with<\/decl.name>(sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: HeaderFooterLayouts<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onTap<\/decl.var.parameter.argument_label>: HeaderFooter<\/ref.struct><Self<\/ref.generic_type_param>>.OnTap<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDisplay<\/decl.var.parameter.argument_label>: HeaderFooter<\/ref.struct><Self<\/ref.generic_type_param>>.OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onEndDisplay<\/decl.var.parameter.argument_label>: HeaderFooter<\/ref.struct><Self<\/ref.generic_type_param>>.OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>) -> HeaderFooter<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 521, - "key.line" : 152, - "key.modulename" : "ListableUI", - "key.name" : "with(sizing:layouts:onTap:onDisplay:onEndDisplay:)", - "key.namelength" : 275, - "key.nameoffset" : 4061, - "key.offset" : 4056, - "key.parsed_declaration" : "public func with(\n sizing : Sizing? = nil,\n layouts : HeaderFooterLayouts? = nil,\n onTap : HeaderFooter.OnTap? = nil,\n onDisplay : HeaderFooter.OnDisplay.Callback? = nil,\n onEndDisplay : HeaderFooter.OnEndDisplay.Callback? = nil\n) -> HeaderFooter", - "key.parsed_scope.end" : 168, - "key.parsed_scope.start" : 152, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Sizing?, HeaderFooterLayouts?, (() -> ())?, ((HeaderFooter.OnDisplay) -> ())?, ((HeaderFooter.OnEndDisplay) -> ())?) -> HeaderFooter", - "key.typeusr" : "$s6sizing7layouts5onTap0C7Display0c3EndE010ListableUI12HeaderFooterVyxGAF6SizingOSg_AF0iJ7LayoutsVSgyycSgyAH02OnE0Vyx_GcSgyAH0mfE0Vyx_GcSgtcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentPAAE4with6sizing7layouts5onTap0I7Display0i3EndK0AA0cD0VyxGAA6SizingOSg_AA0cD7LayoutsVSgyycSgyAK02OnK0Vyx_GcSgyAK0olK0Vyx_GcSgtF" - } - ], - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - }, - { - "key.annotated_decl" : "public struct HeaderFooter<Content> : AnyHeaderFooter<\/Type> where Content<\/Type> : HeaderFooterContent<\/Type><\/Declaration>", - "key.bodylength" : 177, - "key.bodyoffset" : 4625, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 4607 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooter<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyHeaderFooter<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "SignpostLoggable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 221, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooter", - "key.namelength" : 12, - "key.nameoffset" : 4592, - "key.offset" : 4582, - "key.parsed_declaration" : "extension HeaderFooter : SignpostLoggable", - "key.parsed_scope.end" : 180, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var signpostInfo: SignpostLoggingInfo<\/Type> { get }<\/Declaration>", - "key.bodylength" : 130, - "key.bodyoffset" : 4670, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> signpostInfo<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 171, - "key.line" : 174, - "key.modulename" : "ListableUI", - "key.name" : "signpostInfo", - "key.namelength" : 12, - "key.nameoffset" : 4634, - "key.offset" : 4630, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16SignpostLoggableP12signpostInfoAA0c7LoggingF0Vvp" - } - ], - "key.parsed_declaration" : "var signpostInfo : SignpostLoggingInfo", - "key.parsed_scope.end" : 179, - "key.parsed_scope.start" : 174, - "key.reusingastcontext" : false, - "key.typename" : "SignpostLoggingInfo", - "key.typeusr" : "$s10ListableUI19SignpostLoggingInfoVD", - "key.usr" : "s:10ListableUI12HeaderFooterV12signpostInfoAA015SignpostLoggingF0Vvp" - } - ], - "key.typename" : "HeaderFooter.Type", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGmD", - "key.usr" : "s:10ListableUI12HeaderFooterV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 690, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "public struct HeaderFooter<Content> : AnyHeaderFooter<\/Type> where Content<\/Type> : HeaderFooterContent<\/Type><\/Declaration>", - "key.bodylength" : 546, - "key.bodyoffset" : 142, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooter<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyHeaderFooter<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 571, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooter", - "key.namelength" : 12, - "key.nameoffset" : 128, - "key.offset" : 118, - "key.parsed_declaration" : "extension HeaderFooter", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct OnDisplay<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 221 - } - ], - "key.bodylength" : 157, - "key.bodyoffset" : 250, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Value passed to the `onDisplay` callback for `HeaderFooter`.", - "key.doc.column" : 19, - "key.doc.comment" : "Value passed to the `onDisplay` callback for `HeaderFooter`.", - "key.doc.declaration" : "public struct OnDisplay", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.doc.full_as_xml" : "OnDisplay<\/Name>s:10ListableUI12HeaderFooterV9OnDisplayV<\/USR>public struct OnDisplay<\/Declaration>Value passed to the onDisplay<\/codeVoice> callback for HeaderFooter<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 14, - "key.doc.name" : "OnDisplay", - "key.doc.type" : "Class", - "key.doclength" : 65, - "key.docoffset" : 152, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> OnDisplay<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 180, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "OnDisplay", - "key.namelength" : 9, - "key.nameoffset" : 235, - "key.offset" : 228, - "key.parsed_declaration" : "public struct OnDisplay", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias HeaderFooter<\/Type><Content<\/Type>>.OnDisplay<\/Type>.Callback = (OnDisplay<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 259 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>>.OnDisplay<\/ref.struct>.Callback<\/decl.name> = (OnDisplay<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 38, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 276, - "key.offset" : 266, - "key.parsed_declaration" : "public typealias Callback = (OnDisplay) -> ()", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "((HeaderFooter.OnDisplay) -> ()).Type", - "key.typeusr" : "$sy10ListableUI12HeaderFooterV9OnDisplayVyx_GcmD", - "key.usr" : "s:10ListableUI12HeaderFooterV9OnDisplayV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var headerFooter: HeaderFooter<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 314 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> headerFooter<\/decl.name>: HeaderFooter<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "headerFooter", - "key.namelength" : 12, - "key.nameoffset" : 325, - "key.offset" : 321, - "key.parsed_declaration" : "public var headerFooter : HeaderFooter", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "HeaderFooter", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGD", - "key.usr" : "s:10ListableUI12HeaderFooterV9OnDisplayV06headerD0ACyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isFirstDisplay: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 370 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "isFirstDisplay", - "key.namelength" : 14, - "key.nameoffset" : 381, - "key.offset" : 377, - "key.parsed_declaration" : "public var isFirstDisplay : Bool", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI12HeaderFooterV9OnDisplayV07isFirstF0Sbvp" - } - ], - "key.typename" : "HeaderFooter.OnDisplay.Type", - "key.typeusr" : "$s10ListableUI12HeaderFooterV9OnDisplayVyx_GmD", - "key.usr" : "s:10ListableUI12HeaderFooterV9OnDisplayV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct OnEndDisplay<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 490 - } - ], - "key.bodylength" : 163, - "key.bodyoffset" : 522, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Value passed to the `onEndDisplay` callback for `HeaderFooter`.", - "key.doc.column" : 19, - "key.doc.comment" : "Value passed to the `onEndDisplay` callback for `HeaderFooter`.", - "key.doc.declaration" : "public struct OnEndDisplay", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.doc.full_as_xml" : "OnEndDisplay<\/Name>s:10ListableUI12HeaderFooterV12OnEndDisplayV<\/USR>public struct OnEndDisplay<\/Declaration>Value passed to the onEndDisplay<\/codeVoice> callback for HeaderFooter<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 24, - "key.doc.name" : "OnEndDisplay", - "key.doc.type" : "Class", - "key.doclength" : 68, - "key.docoffset" : 418, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> OnEndDisplay<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 189, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "OnEndDisplay", - "key.namelength" : 12, - "key.nameoffset" : 504, - "key.offset" : 497, - "key.parsed_declaration" : "public struct OnEndDisplay", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias HeaderFooter<\/Type><Content<\/Type>>.OnEndDisplay<\/Type>.Callback = (OnEndDisplay<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 531 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>>.OnEndDisplay<\/ref.struct>.Callback<\/decl.name> = (OnEndDisplay<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 41, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 548, - "key.offset" : 538, - "key.parsed_declaration" : "public typealias Callback = (OnEndDisplay) -> ()", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.typename" : "((HeaderFooter.OnEndDisplay) -> ()).Type", - "key.typeusr" : "$sy10ListableUI12HeaderFooterV12OnEndDisplayVyx_GcmD", - "key.usr" : "s:10ListableUI12HeaderFooterV12OnEndDisplayV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var headerFooter: HeaderFooter<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 589 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> headerFooter<\/decl.name>: HeaderFooter<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "headerFooter", - "key.namelength" : 12, - "key.nameoffset" : 600, - "key.offset" : 596, - "key.parsed_declaration" : "public var headerFooter : HeaderFooter", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "HeaderFooter", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGD", - "key.usr" : "s:10ListableUI12HeaderFooterV12OnEndDisplayV06headerD0ACyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isFirstEndDisplay: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 645 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstEndDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "isFirstEndDisplay", - "key.namelength" : 17, - "key.nameoffset" : 656, - "key.offset" : 652, - "key.parsed_declaration" : "public var isFirstEndDisplay : Bool", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI12HeaderFooterV12OnEndDisplayV07isFirstfG0Sbvp" - } - ], - "key.typename" : "HeaderFooter.OnEndDisplay.Type", - "key.typeusr" : "$s10ListableUI12HeaderFooterV12OnEndDisplayVyx_GmD", - "key.usr" : "s:10ListableUI12HeaderFooterV12OnEndDisplayV" - } - ], - "key.typename" : "HeaderFooter.Type", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGmD", - "key.usr" : "s:10ListableUI12HeaderFooterV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 8823, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias HeaderContent = HeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 112 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> HeaderContent<\/decl.name> = HeaderFooterContent<\/ref.protocol><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 45, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "HeaderContent", - "key.namelength" : 13, - "key.nameoffset" : 129, - "key.offset" : 119, - "key.parsed_declaration" : "public typealias HeaderContent = HeaderFooterContent", - "key.parsed_scope.end" : 11, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI13HeaderContenta" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias FooterContent = HeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 165 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> FooterContent<\/decl.name> = HeaderFooterContent<\/ref.protocol><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 45, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "FooterContent", - "key.namelength" : 13, - "key.nameoffset" : 182, - "key.offset" : 172, - "key.parsed_declaration" : "public typealias FooterContent = HeaderFooterContent", - "key.parsed_scope.end" : 12, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI13FooterContenta" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1626 - } - ], - "key.bodylength" : 4097, - "key.bodyoffset" : 1692, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nA `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`", - "key.doc.declaration" : "public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "Para" : "A non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 47, - "key.doc.name" : "HeaderFooterContent", - "key.doc.type" : "Class", - "key.doclength" : 1406, - "key.docoffset" : 220, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 26, - "key.offset" : 1664 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyHeaderFooterConvertible" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 4157, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContent", - "key.namelength" : 19, - "key.nameoffset" : 1642, - "key.offset" : 1633, - "key.parsed_declaration" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible", - "key.parsed_scope.end" : 155, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 22, - "key.name" : "MARK: Tracking Changes", - "key.offset" : 1707 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func isEquivalent(to other: Self<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If your `HeaderFooterContent` is `Equatable`, `isEquivalent` is based on the `Equatable` implementation.", - "key.doc.column" : 10, - "key.doc.declaration" : "func isEquivalent(to other: Self) -> Bool", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI19HeaderFooterContentPAASQRzrlE12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>If your HeaderFooterContent<\/codeVoice> is Equatable<\/codeVoice>, isEquivalent<\/codeVoice> is based on the Equatable<\/codeVoice> implementation.<\/Para><\/Abstract>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 224, - "key.doc.name" : "isEquivalent(to:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 42, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "isEquivalent(to:)", - "key.namelength" : 29, - "key.nameoffset" : 1751, - "key.offset" : 1746, - "key.parsed_declaration" : "func isEquivalent(to other : Self) -> Bool", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 53, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "isEquivalent(to: Self) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Self) -> Bool", - "key.typeusr" : "$s2toSbx_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentPAASQRzrlE12isEquivalent2toSbx_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Default Properties", - "key.offset" : 1808 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "typealias HeaderFooterContent<\/Type>.DefaultProperties = DefaultHeaderFooterProperties<\/Type><Self<\/Type>><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> HeaderFooterContent<\/ref.protocol>.DefaultProperties<\/decl.name> = DefaultHeaderFooterProperties<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 65, - "key.line" : 59, - "key.modulename" : "ListableUI", - "key.name" : "DefaultProperties", - "key.namelength" : 17, - "key.nameoffset" : 1859, - "key.offset" : 1849, - "key.parsed_declaration" : "typealias DefaultProperties = DefaultHeaderFooterProperties", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 59, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "DefaultHeaderFooterProperties.Type", - "key.typeusr" : "$s10ListableUI29DefaultHeaderFooterPropertiesVyxGmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP17DefaultPropertiesa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var defaultHeaderFooterProperties: DefaultProperties<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 2170, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Default values to assign to various properties on the `HeaderFooter` which wraps\nthis `HeaderFooterContent`, if those values are not passed to the `HeaderFooter` initializer.", - "key.doc.column" : 9, - "key.doc.comment" : "Default values to assign to various properties on the `HeaderFooter` which wraps\nthis `HeaderFooterContent`, if those values are not passed to the `HeaderFooter` initializer.", - "key.doc.declaration" : "var defaultHeaderFooterProperties: DefaultProperties { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "defaultHeaderFooterProperties<\/Name>s:10ListableUI19HeaderFooterContentP07defaultcD10PropertiesAA07DefaultcdG0VyxGvp<\/USR>var defaultHeaderFooterProperties: DefaultProperties { get }<\/Declaration>Default values to assign to various properties on the HeaderFooter<\/codeVoice> which wraps this HeaderFooterContent<\/codeVoice>, if those values are not passed to the HeaderFooter<\/codeVoice> initializer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 63, - "key.doc.name" : "defaultHeaderFooterProperties", - "key.doc.type" : "Other", - "key.doclength" : 187, - "key.docoffset" : 1924, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultHeaderFooterProperties<\/decl.name>: DefaultProperties<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 61, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "defaultHeaderFooterProperties", - "key.namelength" : 29, - "key.nameoffset" : 2119, - "key.offset" : 2115, - "key.parsed_declaration" : "var defaultHeaderFooterProperties : DefaultProperties", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "defaultHeaderFooterProperties<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "DefaultHeaderFooterProperties", - "key.typeusr" : "$s10ListableUI29DefaultHeaderFooterPropertiesVyxGD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP07defaultcD10PropertiesAA07DefaultcdG0VyxGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 16, - "key.name" : "MARK: Properties", - "key.offset" : 2196 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var isStickySectionHeader: Bool<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 2480, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If this `HeaderFooterContent` is used as a header in a section,\nsetting this value to `true` will result in the header being sticky at the\ntop of the list while the section's rect is visible.", - "key.doc.column" : 9, - "key.doc.comment" : "If this `HeaderFooterContent` is used as a header in a section,\nsetting this value to `true` will result in the header being sticky at the\ntop of the list while the section's rect is visible.", - "key.doc.declaration" : "var isStickySectionHeader: Bool? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "isStickySectionHeader<\/Name>s:10ListableUI19HeaderFooterContentP015isStickySectionC0SbSgvp<\/USR>var isStickySectionHeader: Bool? { get }<\/Declaration>If this HeaderFooterContent<\/codeVoice> is used as a header in a section, setting this value to true<\/codeVoice> will result in the header being sticky at the top of the list while the section’s rect is visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 72, - "key.doc.name" : "isStickySectionHeader", - "key.doc.type" : "Other", - "key.doclength" : 212, - "key.docoffset" : 2229, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isStickySectionHeader<\/decl.name>: Bool<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 72, - "key.modulename" : "ListableUI", - "key.name" : "isStickySectionHeader", - "key.namelength" : 21, - "key.nameoffset" : 2449, - "key.offset" : 2445, - "key.parsed_declaration" : "var isStickySectionHeader : Bool?", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 72, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "isStickySectionHeader<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool?", - "key.typeusr" : "$sSbSgD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP015isStickySectionC0SbSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 32, - "key.name" : "MARK: Applying To Displayed View", - "key.offset" : 2506 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func apply(to views: HeaderFooterContentViews<\/Type><Self<\/Type>>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: HeaderFooterContentViews<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 151, - "key.line" : 78, - "key.modulename" : "ListableUI", - "key.name" : "apply(to:for:with:)", - "key.namelength" : 146, - "key.nameoffset" : 2560, - "key.offset" : 2555, - "key.parsed_declaration" : "func apply(\n to views : HeaderFooterContentViews,\n for reason : ApplyReason,\n with info : ApplyHeaderFooterContentInfo\n)", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 78, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (HeaderFooterContentViews, ApplyReason, ApplyHeaderFooterContentInfo) -> ()", - "key.typeusr" : "$s2to3for4withy10ListableUI24HeaderFooterContentViewsVyxG_AD11ApplyReasonOAD0jfgH4InfoVtcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP5apply2to3for4withyAA0cdE5ViewsVyxG_AA11ApplyReasonOAA0kcdE4InfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var reappliesToVisibleView: ReappliesToVisibleView<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3014, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the `HeaderFooterContent` is on screen, controls how and when to apply updates\nto the view.\n\nDefaults to ``ReappliesToVisibleView\/always``.\n\nSee ``ReappliesToVisibleView`` for a full discussion.", - "key.doc.column" : 9, - "key.doc.comment" : "When the `HeaderFooterContent` is on screen, controls how and when to apply updates\nto the view.\n\nDefaults to ``ReappliesToVisibleView\/always``.\n\nSee ``ReappliesToVisibleView`` for a full discussion.", - "key.doc.declaration" : "var reappliesToVisibleView: ReappliesToVisibleView { get }", - "key.doc.discussion" : [ - { - "Para" : "Defaults to `ReappliesToVisibleView\/always`." - }, - { - "Para" : "See `ReappliesToVisibleView` for a full discussion." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "reappliesToVisibleView<\/Name>s:10ListableUI19HeaderFooterContentP22reappliesToVisibleViewAA09ReappliesghI0Ovp<\/USR>var reappliesToVisibleView: ReappliesToVisibleView { get }<\/Declaration>When the HeaderFooterContent<\/codeVoice> is on screen, controls how and when to apply updates to the view.<\/Para><\/Abstract>Defaults to ReappliesToVisibleView\/always<\/codeVoice>.<\/Para>See ReappliesToVisibleView<\/codeVoice> for a full discussion.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 90, - "key.doc.name" : "reappliesToVisibleView", - "key.doc.type" : "Other", - "key.doclength" : 242, - "key.docoffset" : 2716, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reappliesToVisibleView<\/decl.name>: ReappliesToVisibleView<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 58, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "reappliesToVisibleView", - "key.namelength" : 22, - "key.nameoffset" : 2966, - "key.offset" : 2962, - "key.parsed_declaration" : "var reappliesToVisibleView: ReappliesToVisibleView", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 90, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "reappliesToVisibleView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ReappliesToVisibleView", - "key.typeusr" : "$s10ListableUI22ReappliesToVisibleViewOD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP22reappliesToVisibleViewAA09ReappliesghI0Ovp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 40, - "key.name" : "MARK: Creating & Providing Content Views", - "key.offset" : 3040 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype ContentView : UIView<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content view used to draw the content.\nThe content view is drawn at the top of the view hierarchy, above the background views.", - "key.doc.column" : 20, - "key.doc.comment" : "The content view used to draw the content.\nThe content view is drawn at the top of the view hierarchy, above the background views.", - "key.doc.declaration" : "associatedtype ContentView : UIView", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "ContentView<\/Name>s:10ListableUI19HeaderFooterContentP0E4ViewQa<\/USR>associatedtype ContentView : UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 98, - "key.doc.name" : "ContentView", - "key.doc.type" : "Other", - "key.doclength" : 143, - "key.docoffset" : 3097, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> ContentView<\/decl.name> : UIView<\/ref.class><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 33, - "key.line" : 98, - "key.modulename" : "ListableUI", - "key.name" : "ContentView", - "key.namelength" : 11, - "key.nameoffset" : 3259, - "key.offset" : 3244, - "key.parsed_declaration" : "associatedtype ContentView:UIView", - "key.parsed_scope.end" : 98, - "key.parsed_scope.start" : 98, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.ContentView.Type", - "key.typeusr" : "$s11ContentViewQzmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP0E4ViewQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableContentView(frame: CGRect<\/Type>) -> ContentView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new content view used to render the content.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "Create and return a new content view used to render the content.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.declaration" : "static func createReusableContentView(frame: CGRect) -> ContentView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 107, - "key.doc.name" : "createReusableContentView(frame:)", - "key.doc.type" : "Function", - "key.doclength" : 328, - "key.docoffset" : 3288, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ContentView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 68, - "key.line" : 107, - "key.modulename" : "ListableUI", - "key.name" : "createReusableContentView(frame:)", - "key.namelength" : 41, - "key.nameoffset" : 3632, - "key.offset" : 3620, - "key.parsed_declaration" : "static func createReusableContentView(frame : CGRect) -> ContentView", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 107, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.ContentView", - "key.typeusr" : "$s5frame11ContentViewQzSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 43, - "key.name" : "MARK: Creating & Providing Background Views", - "key.offset" : 3708 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype BackgroundView : UIView<\/Type> = UIView<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background view used to draw the background of the content.\nThe background view is drawn below the content view.\n\nNote\n----\nDefaults to a `UIView` with no drawn appearance or state.\nYou do not need to provide this `typealias` unless you would like\nto draw a background view.\n", - "key.doc.column" : 20, - "key.doc.comment" : "The background view used to draw the background of the content.\nThe background view is drawn below the content view.\n\nNote\n----\nDefaults to a `UIView` with no drawn appearance or state.\nYou do not need to provide this `typealias` unless you would like\nto draw a background view.", - "key.doc.declaration" : "associatedtype BackgroundView : UIView = UIView", - "key.doc.discussion" : [ - { - "Para" : "Defaults to a `UIView` with no drawn appearance or state. You do not need to provide this `typealias` unless you would like to draw a background view." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "BackgroundView<\/Name>s:10ListableUI19HeaderFooterContentP14BackgroundViewQa<\/USR>associatedtype BackgroundView : UIView = UIView<\/Declaration>The background view used to draw the background of the content. The background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a background view.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 122, - "key.doc.name" : "BackgroundView", - "key.doc.type" : "Other", - "key.doclength" : 346, - "key.docoffset" : 3768, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> BackgroundView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 45, - "key.line" : 122, - "key.modulename" : "ListableUI", - "key.name" : "BackgroundView", - "key.namelength" : 14, - "key.nameoffset" : 4133, - "key.offset" : 4118, - "key.parsed_declaration" : "associatedtype BackgroundView:UIView = UIView", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 122, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.BackgroundView.Type", - "key.typeusr" : "$s14BackgroundViewQzmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP14BackgroundViewQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableBackgroundView(frame: CGRect<\/Type>) -> BackgroundView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's background.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "Create and return a new background view used to render the content's background.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.declaration" : "static func createReusableBackgroundView(frame: CGRect) -> BackgroundView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 130, - "key.doc.name" : "createReusableBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.doclength" : 344, - "key.docoffset" : 4173, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 74, - "key.line" : 130, - "key.modulename" : "ListableUI", - "key.name" : "createReusableBackgroundView(frame:)", - "key.namelength" : 44, - "key.nameoffset" : 4533, - "key.offset" : 4521, - "key.parsed_declaration" : "static func createReusableBackgroundView(frame : CGRect) -> BackgroundView", - "key.parsed_scope.end" : 130, - "key.parsed_scope.start" : 130, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.BackgroundView", - "key.typeusr" : "$s5frame14BackgroundViewQzSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype PressedBackgroundView : UIView<\/Type> = UIView<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The selected background view used to draw the background of the content when it is selected or highlighted.\nThe selected background view is drawn below the content view.\n\nNote\n----\nDefaults to a `UIView` with no drawn appearance or state.\nYou do not need to provide this `typealias` unless you would like\nto draw a selected background view.\n", - "key.doc.column" : 20, - "key.doc.comment" : "The selected background view used to draw the background of the content when it is selected or highlighted.\nThe selected background view is drawn below the content view.\n\nNote\n----\nDefaults to a `UIView` with no drawn appearance or state.\nYou do not need to provide this `typealias` unless you would like\nto draw a selected background view.", - "key.doc.declaration" : "associatedtype PressedBackgroundView : UIView = UIView", - "key.doc.discussion" : [ - { - "Para" : "Defaults to a `UIView` with no drawn appearance or state. You do not need to provide this `typealias` unless you would like to draw a selected background view." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "PressedBackgroundView<\/Name>s:10ListableUI19HeaderFooterContentP21PressedBackgroundViewQa<\/USR>associatedtype PressedBackgroundView : UIView = UIView<\/Declaration>The selected background view used to draw the background of the content when it is selected or highlighted. The selected background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a selected background view.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 141, - "key.doc.name" : "PressedBackgroundView", - "key.doc.type" : "Other", - "key.doclength" : 408, - "key.docoffset" : 4605, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> PressedBackgroundView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 52, - "key.line" : 141, - "key.modulename" : "ListableUI", - "key.name" : "PressedBackgroundView", - "key.namelength" : 21, - "key.nameoffset" : 5032, - "key.offset" : 5017, - "key.parsed_declaration" : "associatedtype PressedBackgroundView:UIView = UIView", - "key.parsed_scope.end" : 141, - "key.parsed_scope.start" : 141, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.PressedBackgroundView.Type", - "key.typeusr" : "$s21PressedBackgroundViewQzmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP21PressedBackgroundViewQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusablePressedBackgroundView(frame: CGRect<\/Type>) -> PressedBackgroundView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's pressed background.\n\nThis view is displayed when the user taps\/presses the header \/ footer.\n\nIf your `BackgroundView` and `SelectedBackgroundView` are the same type, this method\nis provided automatically by calling `createReusableBackgroundView`.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "Create and return a new background view used to render the content's pressed background.\n\nThis view is displayed when the user taps\/presses the header \/ footer.\n\nIf your `BackgroundView` and `SelectedBackgroundView` are the same type, this method\nis provided automatically by calling `createReusableBackgroundView`.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.declaration" : "static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView", - "key.doc.discussion" : [ - { - "Para" : "This view is displayed when the user taps\/presses the header \/ footer." - }, - { - "Para" : "If your `BackgroundView` and `SelectedBackgroundView` are the same type, this method is provided automatically by calling `createReusableBackgroundView`." - }, - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "createReusablePressedBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ<\/USR>static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s pressed background.<\/Para><\/Abstract>This view is displayed when the user taps\/presses the header \/ footer.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 154, - "key.doc.name" : "createReusablePressedBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.doclength" : 617, - "key.docoffset" : 5079, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusablePressedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> PressedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 88, - "key.line" : 154, - "key.modulename" : "ListableUI", - "key.name" : "createReusablePressedBackgroundView(frame:)", - "key.namelength" : 51, - "key.nameoffset" : 5712, - "key.offset" : 5700, - "key.parsed_declaration" : "static func createReusablePressedBackgroundView(frame : CGRect) -> PressedBackgroundView", - "key.parsed_scope.end" : 154, - "key.parsed_scope.start" : 154, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.PressedBackgroundView", - "key.typeusr" : "$s5frame21PressedBackgroundViewQzSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ" - } - ], - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ApplyHeaderFooterContentInfo<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5995 - } - ], - "key.bodylength" : 147, - "key.bodyoffset" : 6039, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Information about the current state of the content, which is passed to `apply(to:for:with:)`\nduring configuration and preparation for display.\n\nTODO: Rename to `ApplyHeaderFooterContext`", - "key.doc.column" : 15, - "key.doc.comment" : "Information about the current state of the content, which is passed to `apply(to:for:with:)`\nduring configuration and preparation for display.\n\nTODO: Rename to `ApplyHeaderFooterContext`", - "key.doc.declaration" : "public struct ApplyHeaderFooterContentInfo", - "key.doc.discussion" : [ - { - "Para" : "TODO: Rename to `ApplyHeaderFooterContext`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "ApplyHeaderFooterContentInfo<\/Name>s:10ListableUI28ApplyHeaderFooterContentInfoV<\/USR>public struct ApplyHeaderFooterContentInfo<\/Declaration>Information about the current state of the content, which is passed to apply(to:for:with:)<\/codeVoice> during configuration and preparation for display.<\/Para><\/Abstract>TODO: Rename to ApplyHeaderFooterContext<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 162, - "key.doc.name" : "ApplyHeaderFooterContentInfo", - "key.doc.type" : "Class", - "key.doclength" : 202, - "key.docoffset" : 5793, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ApplyHeaderFooterContentInfo<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 185, - "key.line" : 162, - "key.modulename" : "ListableUI", - "key.name" : "ApplyHeaderFooterContentInfo", - "key.namelength" : 28, - "key.nameoffset" : 6009, - "key.offset" : 6002, - "key.parsed_declaration" : "public struct ApplyHeaderFooterContentInfo", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 162, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var environment: ListEnvironment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6145 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The environment of the containing list.\nSee `ListEnvironment` for usage information.", - "key.doc.column" : 16, - "key.doc.comment" : "The environment of the containing list.\nSee `ListEnvironment` for usage information.", - "key.doc.declaration" : "public var environment: ListEnvironment", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI28ApplyHeaderFooterContentInfoV11environmentAA15ListEnvironmentVvp<\/USR>public var environment: ListEnvironment<\/Declaration>The environment of the containing list. See ListEnvironment<\/codeVoice> for usage information.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 166, - "key.doc.name" : "environment", - "key.doc.type" : "Other", - "key.doclength" : 97, - "key.docoffset" : 6044, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 166, - "key.modulename" : "ListableUI", - "key.name" : "environment", - "key.namelength" : 11, - "key.nameoffset" : 6156, - "key.offset" : 6152, - "key.parsed_declaration" : "public var environment : ListEnvironment", - "key.parsed_scope.end" : 166, - "key.parsed_scope.start" : 166, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVD", - "key.usr" : "s:10ListableUI28ApplyHeaderFooterContentInfoV11environmentAA15ListEnvironmentVvp" - } - ], - "key.typename" : "ApplyHeaderFooterContentInfo.Type", - "key.typeusr" : "$s10ListableUI28ApplyHeaderFooterContentInfoVmD", - "key.usr" : "s:10ListableUI28ApplyHeaderFooterContentInfoV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct HeaderFooterContentViews<Content> where Content<\/Type> : HeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6295 - } - ], - "key.bodylength" : 897, - "key.bodyoffset" : 6364, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The views owned by the item content, passed to the `apply(to:) method to theme and provide content.`", - "key.doc.column" : 15, - "key.doc.comment" : "The views owned by the item content, passed to the `apply(to:) method to theme and provide content.`", - "key.doc.declaration" : "public struct HeaderFooterContentViews where Content : ListableUI.HeaderFooterContent", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContentViews<\/Name>s:10ListableUI24HeaderFooterContentViewsV<\/USR>public struct HeaderFooterContentViews<Content> where Content : ListableUI.HeaderFooterContent<\/Declaration>The views owned by the item content, passed to the apply(to:) method to theme and provide content.<\/codeVoice><\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 171, - "key.doc.name" : "HeaderFooterContentViews", - "key.doc.type" : "Class", - "key.doclength" : 105, - "key.docoffset" : 6190, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterContentViews<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 960, - "key.line" : 171, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContentViews", - "key.namelength" : 24, - "key.nameoffset" : 6309, - "key.offset" : 6302, - "key.parsed_declaration" : "public struct HeaderFooterContentViews", - "key.parsed_scope.end" : 199, - "key.parsed_scope.start" : 171, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : HeaderFooterContent<\/Type><\/Declaration>", - "key.column" : 40, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 6342 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 27, - "key.line" : 171, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 6334, - "key.offset" : 6334, - "key.parsed_declaration" : "public struct HeaderFooterContentViewslet view: HeaderFooterContentView<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: HeaderFooterContentView<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 173, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 6373, - "key.offset" : 6369, - "key.parsed_declaration" : "let view : HeaderFooterContentView", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 173, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContentView", - "key.typeusr" : "$s10ListableUI23HeaderFooterContentViewCyxGD", - "key.usr" : "s:10ListableUI24HeaderFooterContentViewsV4viewAA0cdE4ViewCyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var content: Content<\/Type>.ContentView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6463 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 6505, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content view of the content.", - "key.doc.column" : 16, - "key.doc.comment" : "The content view of the content.", - "key.doc.declaration" : "public var content: Content.ContentView { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI24HeaderFooterContentViewsV7content0E4ViewQzvp<\/USR>public var content: Content.ContentView { get }<\/Declaration>The content view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 176, - "key.doc.name" : "content", - "key.doc.type" : "Other", - "key.doclength" : 37, - "key.docoffset" : 6422, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param>.ContentView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 62, - "key.line" : 176, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 6474, - "key.offset" : 6470, - "key.parsed_declaration" : "public var content : Content.ContentView", - "key.parsed_scope.end" : 178, - "key.parsed_scope.start" : 176, - "key.reusingastcontext" : false, - "key.typename" : "Content.ContentView", - "key.typeusr" : "$s11ContentViewQzD", - "key.usr" : "s:10ListableUI24HeaderFooterContentViewsV7content0E4ViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var background: Content<\/Type>.BackgroundView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6586 - } - ], - "key.bodylength" : 29, - "key.bodyoffset" : 6634, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background view of the content.", - "key.doc.column" : 16, - "key.doc.comment" : "The background view of the content.", - "key.doc.declaration" : "public var background: Content.BackgroundView { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "background<\/Name>s:10ListableUI24HeaderFooterContentViewsV10background14BackgroundViewQzvp<\/USR>public var background: Content.BackgroundView { get }<\/Declaration>The background view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 181, - "key.doc.name" : "background", - "key.doc.type" : "Other", - "key.doclength" : 40, - "key.docoffset" : 6542, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> background<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 71, - "key.line" : 181, - "key.modulename" : "ListableUI", - "key.name" : "background", - "key.namelength" : 10, - "key.nameoffset" : 6597, - "key.offset" : 6593, - "key.parsed_declaration" : "public var background : Content.BackgroundView", - "key.parsed_scope.end" : 183, - "key.parsed_scope.start" : 181, - "key.reusingastcontext" : false, - "key.typename" : "Content.BackgroundView", - "key.typeusr" : "$s14BackgroundViewQzD", - "key.usr" : "s:10ListableUI24HeaderFooterContentViewsV10background14BackgroundViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var backgroundIfLoaded: Content<\/Type>.BackgroundView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6739 - } - ], - "key.bodylength" : 37, - "key.bodyoffset" : 6796, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background view of the content, if it has been used.", - "key.doc.column" : 16, - "key.doc.comment" : "The background view of the content, if it has been used.", - "key.doc.declaration" : "public var backgroundIfLoaded: Content.BackgroundView? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "backgroundIfLoaded<\/Name>s:10ListableUI24HeaderFooterContentViewsV18backgroundIfLoaded14BackgroundViewQzSgvp<\/USR>public var backgroundIfLoaded: Content.BackgroundView? { get }<\/Declaration>The background view of the content, if it has been used.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 186, - "key.doc.name" : "backgroundIfLoaded", - "key.doc.type" : "Other", - "key.doclength" : 61, - "key.docoffset" : 6674, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> backgroundIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 88, - "key.line" : 186, - "key.modulename" : "ListableUI", - "key.name" : "backgroundIfLoaded", - "key.namelength" : 18, - "key.nameoffset" : 6750, - "key.offset" : 6746, - "key.parsed_declaration" : "public var backgroundIfLoaded : Content.BackgroundView?", - "key.parsed_scope.end" : 188, - "key.parsed_scope.start" : 186, - "key.reusingastcontext" : false, - "key.typename" : "Content.BackgroundView?", - "key.typeusr" : "$s14BackgroundViewQzSgD", - "key.usr" : "s:10ListableUI24HeaderFooterContentViewsV18backgroundIfLoaded14BackgroundViewQzSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var pressedBackground: Content<\/Type>.PressedBackgroundView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6929 - } - ], - "key.bodylength" : 36, - "key.bodyoffset" : 6991, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background view of the content that's displayed while a press is active.", - "key.doc.column" : 16, - "key.doc.comment" : "The background view of the content that's displayed while a press is active.", - "key.doc.declaration" : "public var pressedBackground: Content.PressedBackgroundView { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "pressedBackground<\/Name>s:10ListableUI24HeaderFooterContentViewsV17pressedBackground07PressedH4ViewQzvp<\/USR>public var pressedBackground: Content.PressedBackgroundView { get }<\/Declaration>The background view of the content that’s displayed while a press is active.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 191, - "key.doc.name" : "pressedBackground", - "key.doc.type" : "Other", - "key.doclength" : 81, - "key.docoffset" : 6844, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pressedBackground<\/decl.name>: Content<\/ref.generic_type_param>.PressedBackgroundView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 92, - "key.line" : 191, - "key.modulename" : "ListableUI", - "key.name" : "pressedBackground", - "key.namelength" : 17, - "key.nameoffset" : 6940, - "key.offset" : 6936, - "key.parsed_declaration" : "public var pressedBackground : Content.PressedBackgroundView", - "key.parsed_scope.end" : 193, - "key.parsed_scope.start" : 191, - "key.reusingastcontext" : false, - "key.typename" : "Content.PressedBackgroundView", - "key.typeusr" : "$s21PressedBackgroundViewQzD", - "key.usr" : "s:10ListableUI24HeaderFooterContentViewsV17pressedBackground07PressedH4ViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var pressedBackgroundIfLoaded: Content<\/Type>.PressedBackgroundView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7144 - } - ], - "key.bodylength" : 44, - "key.bodyoffset" : 7215, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background view of the content that's displayed while a press is active, if it has been used.", - "key.doc.column" : 16, - "key.doc.comment" : "The background view of the content that's displayed while a press is active, if it has been used.", - "key.doc.declaration" : "public var pressedBackgroundIfLoaded: Content.PressedBackgroundView? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "pressedBackgroundIfLoaded<\/Name>s:10ListableUI24HeaderFooterContentViewsV25pressedBackgroundIfLoaded07PressedH4ViewQzSgvp<\/USR>public var pressedBackgroundIfLoaded: Content.PressedBackgroundView? { get }<\/Declaration>The background view of the content that’s displayed while a press is active, if it has been used.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 196, - "key.doc.name" : "pressedBackgroundIfLoaded", - "key.doc.type" : "Other", - "key.doclength" : 102, - "key.docoffset" : 7038, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pressedBackgroundIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.PressedBackgroundView<\/ref.associatedtype>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 109, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "pressedBackgroundIfLoaded", - "key.namelength" : 25, - "key.nameoffset" : 7155, - "key.offset" : 7151, - "key.parsed_declaration" : "public var pressedBackgroundIfLoaded : Content.PressedBackgroundView?", - "key.parsed_scope.end" : 198, - "key.parsed_scope.start" : 196, - "key.reusingastcontext" : false, - "key.typename" : "Content.PressedBackgroundView?", - "key.typeusr" : "$s21PressedBackgroundViewQzSgD", - "key.usr" : "s:10ListableUI24HeaderFooterContentViewsV25pressedBackgroundIfLoaded07PressedH4ViewQzSgvp" - } - ], - "key.typename" : "HeaderFooterContentViews.Type", - "key.typeusr" : "$s10ListableUI24HeaderFooterContentViewsVyxGmD", - "key.usr" : "s:10ListableUI24HeaderFooterContentViewsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7355 - } - ], - "key.bodylength" : 85, - "key.bodyoffset" : 7393, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provide a default implementation of `reappliesToVisibleView` which returns `.always`.", - "key.doc.declaration" : "public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "Para" : "A non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 47, - "key.doc.name" : "HeaderFooterContent", - "key.doc.type" : "Class", - "key.doclength" : 90, - "key.docoffset" : 7265, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 117, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContent", - "key.namelength" : 19, - "key.nameoffset" : 7372, - "key.offset" : 7362, - "key.parsed_declaration" : "public extension HeaderFooterContent", - "key.parsed_scope.end" : 208, - "key.parsed_scope.start" : 203, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var reappliesToVisibleView: ReappliesToVisibleView<\/Type> { get }<\/Declaration>", - "key.bodylength" : 21, - "key.bodyoffset" : 7455, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the `HeaderFooterContent` is on screen, controls how and when to apply updates\nto the view.\n\nDefaults to ``ReappliesToVisibleView\/always``.\n\nSee ``ReappliesToVisibleView`` for a full discussion.", - "key.doc.column" : 9, - "key.doc.declaration" : "var reappliesToVisibleView: ReappliesToVisibleView { get }", - "key.doc.discussion" : [ - { - "Para" : "Defaults to `ReappliesToVisibleView\/always`." - }, - { - "Para" : "See `ReappliesToVisibleView` for a full discussion." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "reappliesToVisibleView<\/Name>s:10ListableUI19HeaderFooterContentP22reappliesToVisibleViewAA09ReappliesghI0Ovp<\/USR>var reappliesToVisibleView: ReappliesToVisibleView { get }<\/Declaration>When the HeaderFooterContent<\/codeVoice> is on screen, controls how and when to apply updates to the view.<\/Para><\/Abstract>Defaults to ReappliesToVisibleView\/always<\/codeVoice>.<\/Para>See ReappliesToVisibleView<\/codeVoice> for a full discussion.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 90, - "key.doc.name" : "reappliesToVisibleView", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reappliesToVisibleView<\/decl.name>: ReappliesToVisibleView<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 74, - "key.line" : 205, - "key.modulename" : "ListableUI", - "key.name" : "reappliesToVisibleView", - "key.namelength" : 22, - "key.nameoffset" : 7407, - "key.offset" : 7403, - "key.parsed_declaration" : "var reappliesToVisibleView: ReappliesToVisibleView", - "key.parsed_scope.end" : 207, - "key.parsed_scope.start" : 205, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "reappliesToVisibleView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ReappliesToVisibleView", - "key.typeusr" : "$s10ListableUI22ReappliesToVisibleViewOD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP22reappliesToVisibleViewAA09ReappliesghI0Ovp" - } - ], - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7482 - } - ], - "key.bodylength" : 134, - "key.bodyoffset" : 7520, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "Para" : "A non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 47, - "key.doc.name" : "HeaderFooterContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 166, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContent", - "key.namelength" : 19, - "key.nameoffset" : 7499, - "key.offset" : 7489, - "key.parsed_declaration" : "public extension HeaderFooterContent", - "key.parsed_scope.end" : 218, - "key.parsed_scope.start" : 211, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 32, - "key.name" : "MARK: AnyHeaderFooterConvertible", - "key.offset" : 7533 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func asAnyHeaderFooter() -> AnyHeaderFooter<\/Type><\/Declaration>", - "key.bodylength" : 32, - "key.bodyoffset" : 7620, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Converts the object into a type-erased `AnyHeaderFooter` instance.", - "key.doc.column" : 10, - "key.doc.declaration" : "func asAnyHeaderFooter() -> AnyHeaderFooter", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooterConvertible.swift", - "key.doc.full_as_xml" : "asAnyHeaderFooter()<\/Name>s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF<\/USR>func asAnyHeaderFooter() -> AnyHeaderFooter<\/Declaration>Converts the object into a type-erased AnyHeaderFooter<\/codeVoice> instance.<\/Para><\/Abstract>This documentation comment was inherited from AnyHeaderFooterConvertible<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 38, - "key.doc.name" : "asAnyHeaderFooter()", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> asAnyHeaderFooter<\/decl.name>() -> AnyHeaderFooter<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 78, - "key.line" : 215, - "key.modulename" : "ListableUI", - "key.name" : "asAnyHeaderFooter()", - "key.namelength" : 19, - "key.nameoffset" : 7580, - "key.offset" : 7575, - "key.parsed_declaration" : "func asAnyHeaderFooter() -> AnyHeaderFooter", - "key.parsed_scope.end" : 217, - "key.parsed_scope.start" : 215, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "asAnyHeaderFooter() -> AnyHeaderFooter<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> () -> any AnyHeaderFooter", - "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pycD", - "key.usr" : "s:10ListableUI26AnyHeaderFooterConvertibleP02ascdE0AA0cdE0_pyF" - } - ], - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7658 - } - ], - "key.bodylength" : 191, - "key.bodyoffset" : 7717, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "Para" : "A non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 47, - "key.doc.name" : "HeaderFooterContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 244, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContent", - "key.namelength" : 19, - "key.nameoffset" : 7675, - "key.offset" : 7665, - "key.parsed_declaration" : "public extension HeaderFooterContent where Self:Equatable", - "key.parsed_scope.end" : 227, - "key.parsed_scope.start" : 221, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func isEquivalent(to other: Self<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 27, - "key.bodyoffset" : 7879, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If your `HeaderFooterContent` is `Equatable`, `isEquivalent` is based on the `Equatable` implementation.", - "key.doc.column" : 10, - "key.doc.comment" : "If your `HeaderFooterContent` is `Equatable`, `isEquivalent` is based on the `Equatable` implementation.", - "key.doc.declaration" : "func isEquivalent(to other: Self) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI19HeaderFooterContentPAASQRzrlE12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>If your HeaderFooterContent<\/codeVoice> is Equatable<\/codeVoice>, isEquivalent<\/codeVoice> is based on the Equatable<\/codeVoice> implementation.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 224, - "key.doc.name" : "isEquivalent(to:)", - "key.doc.type" : "Function", - "key.doclength" : 109, - "key.docoffset" : 7722, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 72, - "key.line" : 224, - "key.modulename" : "ListableUI", - "key.name" : "isEquivalent(to:)", - "key.namelength" : 29, - "key.nameoffset" : 7840, - "key.offset" : 7835, - "key.parsed_declaration" : "func isEquivalent(to other : Self) -> Bool", - "key.parsed_scope.end" : 226, - "key.parsed_scope.start" : 224, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "isEquivalent(to: Self) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Self) -> Bool", - "key.typeusr" : "$s2toSbx_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentPAASQRzrlE12isEquivalent2toSbx_tF" - } - ], - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7912 - } - ], - "key.bodylength" : 129, - "key.bodyoffset" : 7986, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "Para" : "A non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 47, - "key.doc.name" : "HeaderFooterContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 197, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContent", - "key.namelength" : 19, - "key.nameoffset" : 7929, - "key.offset" : 7919, - "key.parsed_declaration" : "public extension HeaderFooterContent where Self.BackgroundView == UIView", - "key.parsed_scope.end" : 236, - "key.parsed_scope.start" : 230, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableBackgroundView(frame: CGRect<\/Type>) -> BackgroundView<\/Type><\/Declaration>", - "key.bodylength" : 42, - "key.bodyoffset" : 8071, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's background.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableBackgroundView(frame: CGRect) -> BackgroundView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 130, - "key.doc.name" : "createReusableBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 123, - "key.line" : 232, - "key.modulename" : "ListableUI", - "key.name" : "createReusableBackgroundView(frame:)", - "key.namelength" : 44, - "key.nameoffset" : 8003, - "key.offset" : 7991, - "key.parsed_declaration" : "static func createReusableBackgroundView(frame : CGRect) -> BackgroundView", - "key.parsed_scope.end" : 235, - "key.parsed_scope.start" : 232, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.BackgroundView", - "key.typeusr" : "$s5frameSo6UIViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ" - } - ], - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8119 - } - ], - "key.bodylength" : 150, - "key.bodyoffset" : 8200, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "Para" : "A non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 47, - "key.doc.name" : "HeaderFooterContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 225, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContent", - "key.namelength" : 19, - "key.nameoffset" : 8136, - "key.offset" : 8126, - "key.parsed_declaration" : "public extension HeaderFooterContent where Self.PressedBackgroundView == UIView", - "key.parsed_scope.end" : 245, - "key.parsed_scope.start" : 239, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusablePressedBackgroundView(frame: CGRect<\/Type>) -> PressedBackgroundView<\/Type><\/Declaration>", - "key.bodylength" : 49, - "key.bodyoffset" : 8299, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's pressed background.\n\nThis view is displayed when the user taps\/presses the header \/ footer.\n\nIf your `BackgroundView` and `SelectedBackgroundView` are the same type, this method\nis provided automatically by calling `createReusableBackgroundView`.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView", - "key.doc.discussion" : [ - { - "Para" : "This view is displayed when the user taps\/presses the header \/ footer." - }, - { - "Para" : "If your `BackgroundView` and `SelectedBackgroundView` are the same type, this method is provided automatically by calling `createReusableBackgroundView`." - }, - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "createReusablePressedBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ<\/USR>static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s pressed background.<\/Para><\/Abstract>This view is displayed when the user taps\/presses the header \/ footer.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 154, - "key.doc.name" : "createReusablePressedBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusablePressedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> PressedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 144, - "key.line" : 241, - "key.modulename" : "ListableUI", - "key.name" : "createReusablePressedBackgroundView(frame:)", - "key.namelength" : 51, - "key.nameoffset" : 8217, - "key.offset" : 8205, - "key.parsed_declaration" : "static func createReusablePressedBackgroundView(frame : CGRect) -> PressedBackgroundView", - "key.parsed_scope.end" : 244, - "key.parsed_scope.start" : 241, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.PressedBackgroundView", - "key.typeusr" : "$s5frameSo6UIViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ" - } - ], - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8498 - } - ], - "key.bodylength" : 83, - "key.bodyoffset" : 8536, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provide a default implementation of `defaultHeaderFooterProperties` which returns an\nempty instance that does not provide any defaults.", - "key.doc.declaration" : "public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "Para" : "A non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 47, - "key.doc.name" : "HeaderFooterContent", - "key.doc.type" : "Class", - "key.doclength" : 144, - "key.docoffset" : 8354, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 115, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContent", - "key.namelength" : 19, - "key.nameoffset" : 8515, - "key.offset" : 8505, - "key.parsed_declaration" : "public extension HeaderFooterContent", - "key.parsed_scope.end" : 255, - "key.parsed_scope.start" : 250, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var defaultHeaderFooterProperties: DefaultProperties<\/Type> { get }<\/Declaration>", - "key.bodylength" : 21, - "key.bodyoffset" : 8596, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Default values to assign to various properties on the `HeaderFooter` which wraps\nthis `HeaderFooterContent`, if those values are not passed to the `HeaderFooter` initializer.", - "key.doc.column" : 9, - "key.doc.declaration" : "var defaultHeaderFooterProperties: DefaultProperties { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "defaultHeaderFooterProperties<\/Name>s:10ListableUI19HeaderFooterContentP07defaultcD10PropertiesAA07DefaultcdG0VyxGvp<\/USR>var defaultHeaderFooterProperties: DefaultProperties { get }<\/Declaration>Default values to assign to various properties on the HeaderFooter<\/codeVoice> which wraps this HeaderFooterContent<\/codeVoice>, if those values are not passed to the HeaderFooter<\/codeVoice> initializer.<\/Para><\/Abstract>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 63, - "key.doc.name" : "defaultHeaderFooterProperties", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultHeaderFooterProperties<\/decl.name>: DefaultProperties<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 77, - "key.line" : 252, - "key.modulename" : "ListableUI", - "key.name" : "defaultHeaderFooterProperties", - "key.namelength" : 29, - "key.nameoffset" : 8545, - "key.offset" : 8541, - "key.parsed_declaration" : "var defaultHeaderFooterProperties : DefaultProperties", - "key.parsed_scope.end" : 254, - "key.parsed_scope.start" : 252, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "defaultHeaderFooterProperties<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "DefaultHeaderFooterProperties", - "key.typeusr" : "$s10ListableUI29DefaultHeaderFooterPropertiesVyxGD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP07defaultcD10PropertiesAA07DefaultcdG0VyxGvp" - } - ], - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol HeaderFooterContent : AnyHeaderFooterConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8623 - } - ], - "key.bodylength" : 160, - "key.bodyoffset" : 8661, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `HeaderFooterContent` is a type which specifies the content of a header, footer,\nor other supplementary view within a listable list.\n\nA non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):\n```\nstruct MyHeaderContent : HeaderFooterContent, Equatable\n{\n var title : String\n\n static func createReusableContentView(frame : CGRect) -> MyHeaderView {\n MyHeaderView(frame: frame)\n }\n\n func apply(to views : HeaderFooterContentViews, reason : ApplyReason) {\n views.content.text = self.title\n views.content.leftIcon = UIImage(named: \"person_icon\")\n }\n}\n```\nThe header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`,\nbased on the header's properties.\n\nIf you want to add support for rendering a background view and a pressed state, you should provide\nboth `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-Index 3) `ContentView`\nz-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.)\nz-Index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible", - "key.doc.discussion" : [ - { - "Para" : "A non-tappable header that shows a label and icon might look like this (implementation of `MyHeaderView` left up to the reader):" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties." - }, - { - "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `createReusableBackgroundView` and `createReusablePressedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent : ListableUI.AnyHeaderFooterConvertible<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 47, - "key.doc.name" : "HeaderFooterContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name> : AnyHeaderFooterConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 192, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContent", - "key.namelength" : 19, - "key.nameoffset" : 8640, - "key.offset" : 8630, - "key.parsed_declaration" : "public extension HeaderFooterContent", - "key.parsed_scope.end" : 264, - "key.parsed_scope.start" : 258, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var isStickySectionHeader: Bool<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 17, - "key.bodyoffset" : 8802, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "By default, headers will be sticky depending on their content or section configuration.", - "key.doc.column" : 9, - "key.doc.comment" : "By default, headers will be sticky depending on their content or section configuration.", - "key.doc.declaration" : "var isStickySectionHeader: Bool? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.doc.full_as_xml" : "isStickySectionHeader<\/Name>s:10ListableUI19HeaderFooterContentPAAE015isStickySectionC0SbSgvp<\/USR>var isStickySectionHeader: Bool? { get }<\/Declaration>By default, headers will be sticky depending on their content or section configuration.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 261, - "key.doc.name" : "isStickySectionHeader", - "key.doc.type" : "Other", - "key.doclength" : 92, - "key.docoffset" : 8671, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isStickySectionHeader<\/decl.name>: Bool<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 53, - "key.line" : 261, - "key.modulename" : "ListableUI", - "key.name" : "isStickySectionHeader", - "key.namelength" : 21, - "key.nameoffset" : 8771, - "key.offset" : 8767, - "key.parsed_declaration" : "var isStickySectionHeader : Bool?", - "key.parsed_scope.end" : 263, - "key.parsed_scope.start" : 261, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "isStickySectionHeader<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool?", - "key.typeusr" : "$sSbSgD", - "key.usr" : "s:10ListableUI19HeaderFooterContentPAAE015isStickySectionC0SbSgvp" - } - ], - "key.typename" : "HeaderFooterContent.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterContent_pmD", - "key.usr" : "s:10ListableUI19HeaderFooterContentP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3861, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct HeaderFooterLayouts<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1543 - } - ], - "key.bodylength" : 1294, - "key.bodyoffset" : 1578, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`HeaderFooterLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your header:\n\n```\nmyHeader.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `HeaderFooter` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyHeader.layouts.table = .init(\n width: .fill\n)\n\nmyHeader.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n padding: 10\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`,\nto provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:\n\n```\nextension HeaderFooterLayouts {\n public var table : TableAppearance.HeaderFooter.Layout {\n get { self[TableAppearance.HeaderFooter.Layout.self] }\n set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.comment" : "\n`HeaderFooterLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your header:\n\n```\nmyHeader.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `HeaderFooter` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyHeader.layouts.table = .init(\n width: .fill\n)\n\nmyHeader.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n padding: 10\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`,\nto provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:\n\n```\nextension HeaderFooterLayouts {\n public var table : TableAppearance.HeaderFooter.Layout {\n get { self[TableAppearance.HeaderFooter.Layout.self] }\n set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }\n }\n}\n```", - "key.doc.declaration" : "public struct HeaderFooterLayouts", - "key.doc.discussion" : [ - { - "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your header:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "And then, when the `HeaderFooter` is used within a `.table` style list layout, the provided layout will be used." - }, - { - "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`, to provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "HeaderFooterLayouts<\/Name>s:10ListableUI19HeaderFooterLayoutsV<\/USR>public struct HeaderFooterLayouts<\/Declaration>HeaderFooterLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your header:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the HeaderFooter<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to HeaderFooterLayouts<\/codeVoice>, to provide easier access to your layout-specific HeaderFooterLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 55, - "key.doc.name" : "HeaderFooterLayouts", - "key.doc.type" : "Class", - "key.doclength" : 1426, - "key.docoffset" : 117, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayouts<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1323, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayouts", - "key.namelength" : 19, - "key.nameoffset" : 1557, - "key.offset" : 1550, - "key.parsed_declaration" : "public struct HeaderFooterLayouts", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1720 - } - ], - "key.bodylength" : 70, - "key.bodyoffset" : 1792, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new instance of the layouts, with an optional `configure`\nclosure, to allow you to set up styling inline.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new instance of the layouts, with an optional `configure`\nclosure, to allow you to set up styling inline.", - "key.doc.declaration" : "public init(_ configure: (inout `Self`) -> () = { _ in })", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI19HeaderFooterLayoutsVyACyACzXEcfc<\/USR>public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>Creates a new instance of the layouts, with an optional configure<\/codeVoice> closure, to allow you to set up styling inline.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 59, - "key.doc.name" : "init(_:)", - "key.doc.type" : "Function", - "key.doclength" : 128, - "key.docoffset" : 1588, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 136, - "key.line" : 59, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 63, - "key.nameoffset" : 1727, - "key.offset" : 1727, - "key.parsed_declaration" : "public init(\n _ configure : (inout Self) -> () = { _ in }\n)", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 59, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(HeaderFooterLayouts.Type) -> ((inout HeaderFooterLayouts) -> ()) -> HeaderFooterLayouts", - "key.typeusr" : "$sy10ListableUI19HeaderFooterLayoutsVyACzXEcD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsVyACyACzXEcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var storage: ContentLayoutsStorage<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1873 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> storage<\/decl.name>: ContentLayoutsStorage<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "storage", - "key.namelength" : 7, - "key.nameoffset" : 1885, - "key.offset" : 1881, - "key.parsed_declaration" : "private var storage : ContentLayoutsStorage", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 67, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ContentLayoutsStorage", - "key.typeusr" : "$s10ListableUI21ContentLayoutsStorageVD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV7storage33_AEFF59B9891C827F923FD7D479A9E22ALLAA07ContentE7StorageVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public subscript<ValueType>(valueType: ValueType<\/Type>.Type) -> ValueType<\/Type> where ValueType<\/Type> : HeaderFooterLayoutsValue<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2632 - } - ], - "key.bodylength" : 141, - "key.bodyoffset" : 2729, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows accessing the various `HeaderFooterLayoutValue`s stored within the object.\nThis method will return the `defaultValue` for a value if none is set.\n\n### Note\nWhen implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`,\nto provide easier access to your layout-specific `HeaderFooterLayoutsValue` type.\n\n```\nextension HeaderFooterLayouts {\n public var table : TableAppearance.HeaderFooter.Layout {\n get { self[TableAppearance.HeaderFooter.Layout.self] }\n set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 12, - "key.doc.comment" : "Allows accessing the various `HeaderFooterLayoutValue`s stored within the object.\nThis method will return the `defaultValue` for a value if none is set.\n\n### Note\nWhen implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`,\nto provide easier access to your layout-specific `HeaderFooterLayoutsValue` type.\n\n```\nextension HeaderFooterLayouts {\n public var table : TableAppearance.HeaderFooter.Layout {\n get { self[TableAppearance.HeaderFooter.Layout.self] }\n set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }\n }\n}\n```", - "key.doc.declaration" : "public subscript(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.HeaderFooterLayoutsValue { get set }", - "key.doc.discussion" : [ - { - "Para" : "When implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`, to provide easier access to your layout-specific `HeaderFooterLayoutsValue` type." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:10ListableUI19HeaderFooterLayoutsVyxxmcAA0cdE5ValueRzluip<\/USR>public subscript<ValueType>(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.HeaderFooterLayoutsValue { get set }<\/Declaration>Allows accessing the various HeaderFooterLayoutValue<\/codeVoice>s stored within the object. This method will return the defaultValue<\/codeVoice> for a value if none is set.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to HeaderFooterLayouts<\/codeVoice>, to provide easier access to your layout-specific HeaderFooterLayoutsValue<\/codeVoice> type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 84, - "key.doc.name" : "subscript(_:)", - "key.doc.type" : "Other", - "key.doclength" : 702, - "key.docoffset" : 1926, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ValueType<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> ValueType<\/ref.generic_type_param> : HeaderFooterLayoutsValue<\/ref.protocol><\/decl.generic_type_requirement> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>", - "key.kind" : "source.lang.swift.decl.function.subscript", - "key.length" : 232, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "subscript(_:)", - "key.namelength" : 75, - "key.nameoffset" : 2639, - "key.offset" : 2639, - "key.parsed_declaration" : "public subscript(_ valueType : ValueType.Type) -> ValueType", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 84, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.substructure" : [ - { - "key.annotated_decl" : "ValueType : HeaderFooterLayoutsValue<\/Type><\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 24, - "key.offset" : 2659 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name> : HeaderFooterLayoutsValue<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 34, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "ValueType", - "key.namelength" : 9, - "key.nameoffset" : 2649, - "key.offset" : 2649, - "key.parsed_declaration" : "public subscript (ValueType.Type) -> ValueType", - "key.typeusr" : "$syxxmc10ListableUI24HeaderFooterLayoutsValueRzluD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsVyxxmcAA0cdE5ValueRzluip" - } - ], - "key.typename" : "HeaderFooterLayouts.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVmD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol HeaderFooterLayoutsValue<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3424 - } - ], - "key.bodylength" : 118, - "key.bodyoffset" : 3466, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `HeaderFooterLayoutsValue` protocol provides a default value for the different layouts stored\nwithin `HeaderFooterLayouts`. Provide a `defaultValue` with reasonable defaults, as the\ndeveloper should not need to set these values at all times when using your layout.\n\n```\npublic struct Layout : Equatable, HeaderFooterLayoutsValue\n{\n public var width : CGFloat\n public var minHeight : CGFloat\n\n ...\n\n public static var defaultValue : Self {\n ...\n }\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "\nThe `HeaderFooterLayoutsValue` protocol provides a default value for the different layouts stored\nwithin `HeaderFooterLayouts`. Provide a `defaultValue` with reasonable defaults, as the\ndeveloper should not need to set these values at all times when using your layout.\n\n```\npublic struct Layout : Equatable, HeaderFooterLayoutsValue\n{\n public var width : CGFloat\n public var minHeight : CGFloat\n\n ...\n\n public static var defaultValue : Self {\n ...\n }\n}\n```", - "key.doc.declaration" : "public protocol HeaderFooterLayoutsValue", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "HeaderFooterLayoutsValue<\/Name>s:10ListableUI24HeaderFooterLayoutsValueP<\/USR>public protocol HeaderFooterLayoutsValue<\/Declaration>The HeaderFooterLayoutsValue<\/codeVoice> protocol provides a default value for the different layouts stored within HeaderFooterLayouts<\/codeVoice>. Provide a defaultValue<\/codeVoice> with reasonable defaults, as the developer should not need to set these values at all times when using your layout.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 109, - "key.doc.name" : "HeaderFooterLayoutsValue", - "key.doc.type" : "Class", - "key.doclength" : 548, - "key.docoffset" : 2876, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterLayoutsValue<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 154, - "key.line" : 109, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayoutsValue", - "key.namelength" : 24, - "key.nameoffset" : 3440, - "key.offset" : 3431, - "key.parsed_declaration" : "public protocol HeaderFooterLayoutsValue", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 109, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var defaultValue: Self<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3577, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.comment" : "The default value used when accessing the value, if none is set.", - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.doclength" : 69, - "key.docoffset" : 3472, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 38, - "key.line" : 112, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 3556, - "key.offset" : 3545, - "key.parsed_declaration" : "static var defaultValue : Self", - "key.parsed_scope.end" : 112, - "key.parsed_scope.start" : 112, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ" - } - ], - "key.typename" : "HeaderFooterLayoutsValue.Type", - "key.typeusr" : "$s10ListableUI24HeaderFooterLayoutsValue_pmD", - "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct EmptyHeaderFooterLayoutsValue : HeaderFooterLayoutsValue<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3665 - } - ], - "key.bodylength" : 122, - "key.bodyoffset" : 3737, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Use this type if you have no `HeaderFooterLayout` for your `ListLayout`.", - "key.doc.column" : 15, - "key.doc.comment" : "Use this type if you have no `HeaderFooterLayout` for your `ListLayout`.", - "key.doc.declaration" : "public struct EmptyHeaderFooterLayoutsValue : HeaderFooterLayoutsValue", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "EmptyHeaderFooterLayoutsValue<\/Name>s:10ListableUI29EmptyHeaderFooterLayoutsValueV<\/USR>public struct EmptyHeaderFooterLayoutsValue : HeaderFooterLayoutsValue<\/Declaration>Use this type if you have no HeaderFooterLayout<\/codeVoice> for your ListLayout<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 117, - "key.doc.name" : "EmptyHeaderFooterLayoutsValue", - "key.doc.type" : "Class", - "key.doclength" : 77, - "key.docoffset" : 3588, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 24, - "key.offset" : 3711 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> EmptyHeaderFooterLayoutsValue<\/decl.name> : HeaderFooterLayoutsValue<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 188, - "key.line" : 117, - "key.modulename" : "ListableUI", - "key.name" : "EmptyHeaderFooterLayoutsValue", - "key.namelength" : 29, - "key.nameoffset" : 3679, - "key.offset" : 3672, - "key.parsed_declaration" : "public struct EmptyHeaderFooterLayoutsValue : HeaderFooterLayoutsValue", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 117, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3747 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 3762, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 9, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 3754, - "key.offset" : 3754, - "key.parsed_declaration" : "public init()", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.typename" : "(EmptyHeaderFooterLayoutsValue.Type) -> () -> EmptyHeaderFooterLayoutsValue", - "key.typeusr" : "$s10ListableUI29EmptyHeaderFooterLayoutsValueVycD", - "key.usr" : "s:10ListableUI29EmptyHeaderFooterLayoutsValueVACycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: EmptyHeaderFooterLayoutsValue<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3773 - } - ], - "key.bodylength" : 21, - "key.bodyoffset" : 3836, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from HeaderFooterLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: EmptyHeaderFooterLayoutsValue<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 78, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 3791, - "key.offset" : 3780, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue: EmptyHeaderFooterLayoutsValue", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.typename" : "EmptyHeaderFooterLayoutsValue", - "key.typeusr" : "$s10ListableUI29EmptyHeaderFooterLayoutsValueVD", - "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ" - } - ], - "key.typename" : "EmptyHeaderFooterLayoutsValue.Type", - "key.typeusr" : "$s10ListableUI29EmptyHeaderFooterLayoutsValueVmD", - "key.usr" : "s:10ListableUI29EmptyHeaderFooterLayoutsValueV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 5941, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class Identifier<Represented, Value> : AnyIdentifier<\/Type> where Value<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 1546 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1539 - } - ], - "key.bodylength" : 1585, - "key.bodyoffset" : 1615, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `Identifier` is used to unique items in Listable lists. Sections,\nand items in those sections have identifiers, which are used to keep track\nof those items and sections as updates are pushed through the list view.\n\nIdentifiers for content shouldn't change – if it does, the item or section is\ntreated as new. This means that for your `ItemContent` or `Section`,\nyou should use a stable identifier like server ID or other\nunique value that does not change across updates to the list.\n\nIdentifiers do _not_ have to be unique, but it certainly helps.\nWhen applying updates, Listable will convert duplicate identifiers to\nunique identifiers by counting upward for each equal identifier it finds: (eg, \"myID\".1, \"myID\".2, \"myID\".3\", etc).\nHowever, you should do your best to ensure identifiers are unique,\nas this helps generate a visually correct diff when applying updates.\n\nIdentifiers are strongly typed; alongside their contained value,\nthey also encode their `Represented` type. This means that these two\nidentifiers are different, despite having the same `value`.\n```swift\nlet first = Identifier(\"value\")\nlet second = Identifier(\"value\")\n```\nEven once type-erased to `AnyIdentifier`, these identifiers will still not be\nequal, because their underlying `Represented` type is different.\n", - "key.doc.column" : 20, - "key.doc.comment" : "\nAn `Identifier` is used to unique items in Listable lists. Sections,\nand items in those sections have identifiers, which are used to keep track\nof those items and sections as updates are pushed through the list view.\n\nIdentifiers for content shouldn't change – if it does, the item or section is\ntreated as new. This means that for your `ItemContent` or `Section`,\nyou should use a stable identifier like server ID or other\nunique value that does not change across updates to the list.\n\nIdentifiers do _not_ have to be unique, but it certainly helps.\nWhen applying updates, Listable will convert duplicate identifiers to\nunique identifiers by counting upward for each equal identifier it finds: (eg, \"myID\".1, \"myID\".2, \"myID\".3\", etc).\nHowever, you should do your best to ensure identifiers are unique,\nas this helps generate a visually correct diff when applying updates.\n\nIdentifiers are strongly typed; alongside their contained value,\nthey also encode their `Represented` type. This means that these two\nidentifiers are different, despite having the same `value`.\n```swift\nlet first = Identifier(\"value\")\nlet second = Identifier(\"value\")\n```\nEven once type-erased to `AnyIdentifier`, these identifiers will still not be\nequal, because their underlying `Represented` type is different.", - "key.doc.declaration" : "public final class Identifier : AnyIdentifier where Value : Hashable", - "key.doc.discussion" : [ - { - "Para" : "Identifiers for content shouldn’t change – if it does, the item or section is treated as new. This means that for your `ItemContent` or `Section`, you should use a stable identifier like server ID or other unique value that does not change across updates to the list." - }, - { - "Para" : "Identifiers do have to be unique, but it certainly helps. When applying updates, Listable will convert duplicate identifiers to unique identifiers by counting upward for each equal identifier it finds: (eg, “myID”.1, “myID”.2, “myID”.3”, etc). However, you should do your best to ensure identifiers are unique, as this helps generate a visually correct diff when applying updates." - }, - { - "Para" : "Identifiers are strongly typed; alongside their contained value, they also encode their `Represented` type. This means that these two identifiers are different, despite having the same `value`." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Even once type-erased to `AnyIdentifier`, these identifiers will still not be equal, because their underlying `Represented` type is different." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.doc.full_as_xml" : "Identifier<\/Name>s:10ListableUI10IdentifierC<\/USR>public final class Identifier<Represented, Value> : AnyIdentifier where Value : Hashable<\/Declaration>An Identifier<\/codeVoice> is used to unique items in Listable lists. Sections, and items in those sections have identifiers, which are used to keep track of those items and sections as updates are pushed through the list view.<\/Para><\/Abstract>Identifiers for content shouldn’t change – if it does, the item or section is treated as new. This means that for your ItemContent<\/codeVoice> or Section<\/codeVoice>, you should use a stable identifier like server ID or other unique value that does not change across updates to the list.<\/Para>Identifiers do not<\/emphasis> have to be unique, but it certainly helps. When applying updates, Listable will convert duplicate identifiers to unique identifiers by counting upward for each equal identifier it finds: (eg, “myID”.1, “myID”.2, “myID”.3”, etc). However, you should do your best to ensure identifiers are unique, as this helps generate a visually correct diff when applying updates.<\/Para>Identifiers are strongly typed; alongside their contained value, they also encode their Represented<\/codeVoice> type. This means that these two identifiers are different, despite having the same value<\/codeVoice>.<\/Para>(\"value\")]]><\/zCodeLineNumbered>(\"value\")]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Even once type-erased to AnyIdentifier<\/codeVoice>, these identifiers will still not be equal, because their underlying Represented<\/codeVoice> type is different.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 37, - "key.doc.name" : "Identifier", - "key.doc.type" : "Class", - "key.doclength" : 1432, - "key.docoffset" : 107, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 13, - "key.offset" : 1600 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Identifier<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>, Value<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyIdentifier<\/ref.class> where<\/syntaxtype.keyword> Value<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyIdentifier" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1649, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 1558, - "key.offset" : 1552, - "key.parsed_declaration" : "public final class Identifier : AnyIdentifier", - "key.parsed_scope.end" : 83, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Represented<\/Declaration>", - "key.column" : 31, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 11, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "Represented", - "key.namelength" : 11, - "key.nameoffset" : 1569, - "key.offset" : 1569, - "key.parsed_declaration" : "public final class IdentifierValue : Hashable<\/Type><\/Declaration>", - "key.column" : 44, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 1588 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 14, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 1582, - "key.offset" : 1582, - "key.parsed_declaration" : "public final class Identifierpublic var value: Value<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1900 - } - ], - "key.bodylength" : 42, - "key.bodyoffset" : 1926, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The underlying value that backs the identifier.\nFor example, if you create an identifier using:\n```swift\nIdentifier(\"1\")\n```\nThen the value of `value` will be `\"1\"`.\n", - "key.doc.column" : 16, - "key.doc.comment" : "\nThe underlying value that backs the identifier.\nFor example, if you create an identifier using:\n```swift\nIdentifier(\"1\")\n```\nThen the value of `value` will be `\"1\"`.", - "key.doc.declaration" : "public var value: Value { get }", - "key.doc.discussion" : [ - { - "CodeListing" : "" - }, - { - "Para" : "Then the value of `value` will be `\"1\"`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.doc.full_as_xml" : "value<\/Name>s:10ListableUI10IdentifierC5valueq_vp<\/USR>public var value: Value { get }<\/Declaration>The underlying value that backs the identifier. For example, if you create an identifier using:<\/Para><\/Abstract>(\"1\")]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Then the value of value<\/codeVoice> will be "1"<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 49, - "key.doc.name" : "value", - "key.doc.type" : "Other", - "key.doclength" : 243, - "key.docoffset" : 1653, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> value<\/decl.name>: Value<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 62, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "value", - "key.namelength" : 5, - "key.nameoffset" : 1911, - "key.offset" : 1907, - "key.parsed_declaration" : "public var value : Value", - "key.parsed_scope.end" : 51, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.typename" : "Value", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI10IdentifierC5valueq_vp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 1982 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(_ value: Value<\/Type>)<\/Declaration>", - "key.bodylength" : 127, - "key.bodyoffset" : 2822, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates an identifier which identifies by both `Represented`, and the `value` passed to init.\n\n### Note\nIt is intentional that this method is internal. You should not directly create identifiers\nby calling this method. Instead, use the extensions on `Section` and `ItemContent` to create\nstrongly typed identifiers with the correct `Value` type:\n```swift\nMyItem.identifier(with: \"my-id\") \/\/ ✅ OK\nMyItem.identifier(with: 1) \/\/ 🚫 Error: MyItem's IdentifierValue is String.\n```\n\nYou can also read ``Item.identifier-swift.property`` or ``AnyItem.anyIdentifier-swift.property``\nto get the identifier of an item that has been created in a type safe manner.\n", - "key.doc.column" : 5, - "key.doc.comment" : "\nCreates an identifier which identifies by both `Represented`, and the `value` passed to init.\n\n### Note\nIt is intentional that this method is internal. You should not directly create identifiers\nby calling this method. Instead, use the extensions on `Section` and `ItemContent` to create\nstrongly typed identifiers with the correct `Value` type:\n```swift\nMyItem.identifier(with: \"my-id\") \/\/ ✅ OK\nMyItem.identifier(with: 1) \/\/ 🚫 Error: MyItem's IdentifierValue is String.\n```\n\nYou can also read ``Item.identifier-swift.property`` or ``AnyItem.anyIdentifier-swift.property``\nto get the identifier of an item that has been created in a type safe manner.", - "key.doc.declaration" : "init(_ value: Value)", - "key.doc.discussion" : [ - { - "Para" : "It is intentional that this method is internal. You should not directly create identifiers by calling this method. Instead, use the extensions on `Section` and `ItemContent` to create strongly typed identifiers with the correct `Value` type:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can also read `Item.identifier-swift.property` or `AnyItem.anyIdentifier-swift.property` to get the identifier of an item that has been created in a type safe manner." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI10IdentifierCyACyxq_Gq_cfc<\/USR>init(_ value: Value)<\/Declaration>Creates an identifier which identifies by both Represented<\/codeVoice>, and the value<\/codeVoice> passed to init.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>It is intentional that this method is internal. You should not directly create identifiers by calling this method. Instead, use the extensions on Section<\/codeVoice> and ItemContent<\/codeVoice> to create strongly typed identifiers with the correct Value<\/codeVoice> type:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can also read Item.identifier-swift.property<\/codeVoice> or AnyItem.anyIdentifier-swift.property<\/codeVoice> to get the identifier of an item that has been created in a type safe manner.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 70, - "key.doc.name" : "init(_:)", - "key.doc.type" : "Function", - "key.doclength" : 779, - "key.docoffset" : 2012, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 155, - "key.line" : 70, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 21, - "key.nameoffset" : 2795, - "key.offset" : 2795, - "key.parsed_declaration" : "init(_ value : Value)", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 70, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Identifier.Type) -> (Value) -> Identifier", - "key.typeusr" : "$sy10ListableUI10IdentifierCyxq_Gq_cD", - "key.usr" : "s:10ListableUI10IdentifierCyACyxq_Gq_cfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 34, - "key.name" : "MARK: CustomDebugStringConvertible", - "key.offset" : 2963 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public override var debugDescription: String<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 3014 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3007 - } - ], - "key.bodylength" : 144, - "key.bodyoffset" : 3054, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A textual representation of this instance, suitable for debugging.\n\nCalling this property directly is discouraged. Instead, convert an\ninstance of any type to a string by using the `String(reflecting:)`\ninitializer. This initializer works with any type, and uses the custom\n`debugDescription` property for types that conform to\n`CustomDebugStringConvertible`:\n\n struct Point: CustomDebugStringConvertible {\n let x: Int, y: Int\n\n var debugDescription: String {\n return \"(\\(x), \\(y))\"\n }\n }\n\n let p = Point(x: 21, y: 30)\n let s = String(reflecting: p)\n print(s)\n \/\/ Prints \"(21, 30)\"\n\nThe conversion of `p` to a string in the assignment to `s` uses the\n`Point` type's `debugDescription` property.", - "key.doc.declaration" : "var debugDescription: String { get }", - "key.doc.discussion" : [ - { - "Para" : "Calling this property directly is discouraged. Instead, convert an instance of any type to a string by using the `String(reflecting:)` initializer. This initializer works with any type, and uses the custom `debugDescription` property for types that conform to `CustomDebugStringConvertible`:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The conversion of `p` to a string in the assignment to `s` uses the `Point` type’s `debugDescription` property." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "debugDescription<\/Name>s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp<\/USR>var debugDescription: String { get }<\/Declaration>A textual representation of this instance, suitable for debugging.<\/Para><\/Abstract>Calling this property directly is discouraged. Instead, convert an instance of any type to a string by using the String(reflecting:)<\/codeVoice> initializer. This initializer works with any type, and uses the custom debugDescription<\/codeVoice> property for types that conform to CustomDebugStringConvertible<\/codeVoice>:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The conversion of p<\/codeVoice> to a string in the assignment to s<\/codeVoice> uses the Point<\/codeVoice> type’s debugDescription<\/codeVoice> property.<\/Para>This documentation comment was inherited from CustomDebugStringConvertible<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.name" : "debugDescription", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debugDescription<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 176, - "key.line" : 80, - "key.modulename" : "ListableUI", - "key.name" : "debugDescription", - "key.namelength" : 16, - "key.nameoffset" : 3027, - "key.offset" : 3023, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyIdentifierC16debugDescriptionSSvp" - }, - { - "key.usr" : "s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp" - } - ], - "key.parsed_declaration" : "public override var debugDescription : String", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 80, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp" - } - ], - "key.typename" : "Identifier.Type", - "key.typeusr" : "$s10ListableUI10IdentifierCyxq_GmD", - "key.usr" : "s:10ListableUI10IdentifierC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public class AnyIdentifier : Hashable<\/Type>, CustomDebugStringConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3968 - } - ], - "key.bodylength" : 1532, - "key.bodyoffset" : 4037, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A type-erased `Identifier` used to identify content in a list.\n\nEven though type-erased, the original `Represented` type from the `Identifier`\nis still retained when being type erased, meaning comparing two `AnyIdentifiers`\nwith the same `value` but different `Represented` types will report `false`:\n```swift\nlet first = Identifier(\"value\") as AnyIdentifier\nlet second = Identifier(\"value\") as AnyIdentifier\n\nlet equal = first == second \/\/ false\n```\n\n**Note** – Like Swift's`KeyPath`, `AnyIdentifier` is the base type for\n`Identifier`. This is done for performance reasons;\nit allows free bridging from `Identifier` to `AnyIdentifier`.\n", - "key.doc.column" : 14, - "key.doc.comment" : "\nA type-erased `Identifier` used to identify content in a list.\n\nEven though type-erased, the original `Represented` type from the `Identifier`\nis still retained when being type erased, meaning comparing two `AnyIdentifiers`\nwith the same `value` but different `Represented` types will report `false`:\n```swift\nlet first = Identifier(\"value\") as AnyIdentifier\nlet second = Identifier(\"value\") as AnyIdentifier\n\nlet equal = first == second \/\/ false\n```\n\n**Note** – Like Swift's`KeyPath`, `AnyIdentifier` is the base type for\n`Identifier`. This is done for performance reasons;\nit allows free bridging from `Identifier` to `AnyIdentifier`.", - "key.doc.declaration" : "public class AnyIdentifier : Hashable, CustomDebugStringConvertible", - "key.doc.discussion" : [ - { - "Para" : "Even though type-erased, the original `Represented` type from the `Identifier` is still retained when being type erased, meaning comparing two `AnyIdentifiers` with the same `value` but different `Represented` types will report `false`:" - }, - { - "CodeListing" : "" - }, - { - "Para" : " – Like Swift’s`KeyPath`, `AnyIdentifier` is the base type for `Identifier`. This is done for performance reasons; it allows free bridging from `Identifier` to `AnyIdentifier`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.doc.full_as_xml" : "AnyIdentifier<\/Name>s:10ListableUI13AnyIdentifierC<\/USR>public class AnyIdentifier : Hashable, CustomDebugStringConvertible<\/Declaration>A type-erased Identifier<\/codeVoice> used to identify content in a list.<\/Para><\/Abstract>Even though type-erased, the original Represented<\/codeVoice> type from the Identifier<\/codeVoice> is still retained when being type erased, meaning comparing two AnyIdentifiers<\/codeVoice> with the same value<\/codeVoice> but different Represented<\/codeVoice> types will report false<\/codeVoice>:<\/Para>(\"value\") as AnyIdentifier]]><\/zCodeLineNumbered>(\"value\") as AnyIdentifier]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Note<\/bold> – Like Swift’sKeyPath<\/codeVoice>, AnyIdentifier<\/codeVoice> is the base type for Identifier<Represented, Value><\/codeVoice>. This is done for performance reasons; it allows free bridging from Identifier<\/codeVoice> to AnyIdentifier<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 103, - "key.doc.name" : "AnyIdentifier", - "key.doc.type" : "Class", - "key.doclength" : 764, - "key.docoffset" : 3204, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 3997 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 28, - "key.offset" : 4007 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> class<\/syntaxtype.keyword> AnyIdentifier<\/decl.name> : Hashable<\/ref.protocol>, CustomDebugStringConvertible<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - }, - { - "key.name" : "CustomDebugStringConvertible" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1595, - "key.line" : 103, - "key.modulename" : "ListableUI", - "key.name" : "AnyIdentifier", - "key.namelength" : 13, - "key.nameoffset" : 3981, - "key.offset" : 3975, - "key.parsed_declaration" : "public class AnyIdentifier : Hashable, CustomDebugStringConvertible", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 103, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let anyValue: AnyHashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4373 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The underlying value that backs the identifier.\nFor example, if you create an identifier using:\n```swift\nIdentifier(\"1\")\n```\nThen the value of `anyValue` will be `AnyHashable(\"1\")`.\n\nTo directly read the value, access `anyValue.base`.\n", - "key.doc.column" : 16, - "key.doc.comment" : "\nThe underlying value that backs the identifier.\nFor example, if you create an identifier using:\n```swift\nIdentifier(\"1\")\n```\nThen the value of `anyValue` will be `AnyHashable(\"1\")`.\n\nTo directly read the value, access `anyValue.base`.", - "key.doc.declaration" : "public let anyValue: AnyHashable", - "key.doc.discussion" : [ - { - "CodeListing" : "" - }, - { - "Para" : "Then the value of `anyValue` will be `AnyHashable(\"1\")`." - }, - { - "Para" : "To directly read the value, access `anyValue.base`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.doc.full_as_xml" : "anyValue<\/Name>s:10ListableUI13AnyIdentifierC8anyValues0C8HashableVvp<\/USR>public let anyValue: AnyHashable<\/Declaration>The underlying value that backs the identifier. For example, if you create an identifier using:<\/Para><\/Abstract>(\"1\")]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Then the value of anyValue<\/codeVoice> will be AnyHashable("1")<\/codeVoice>.<\/Para>To directly read the value, access anyValue.base<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 115, - "key.doc.name" : "anyValue", - "key.doc.type" : "Other", - "key.doclength" : 327, - "key.docoffset" : 4042, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> anyValue<\/decl.name>: AnyHashable<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 115, - "key.modulename" : "ListableUI", - "key.name" : "anyValue", - "key.namelength" : 8, - "key.nameoffset" : 4384, - "key.offset" : 4380, - "key.parsed_declaration" : "public let anyValue : AnyHashable", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 115, - "key.reusingastcontext" : false, - "key.typename" : "AnyHashable", - "key.typeusr" : "$ss11AnyHashableVD", - "key.usr" : "s:10ListableUI13AnyIdentifierC8anyValues0C8HashableVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let representedType: ObjectIdentifier<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4699 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The underlying type that backs the identifier.\nFor example, if you create an identifier using:\n```swift\nIdentifier(\"1\")\n```\nThen the value of `representedType` will be `ObjectIdentifier(MyThing.self)`.\n", - "key.doc.column" : 16, - "key.doc.comment" : "\nThe underlying type that backs the identifier.\nFor example, if you create an identifier using:\n```swift\nIdentifier(\"1\")\n```\nThen the value of `representedType` will be `ObjectIdentifier(MyThing.self)`.", - "key.doc.declaration" : "public let representedType: ObjectIdentifier", - "key.doc.discussion" : [ - { - "CodeListing" : "" - }, - { - "Para" : "Then the value of `representedType` will be `ObjectIdentifier(MyThing.self)`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.doc.full_as_xml" : "representedType<\/Name>s:10ListableUI13AnyIdentifierC15representedTypeSOvp<\/USR>public let representedType: ObjectIdentifier<\/Declaration>The underlying type that backs the identifier. For example, if you create an identifier using:<\/Para><\/Abstract>(\"1\")]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Then the value of representedType<\/codeVoice> will be ObjectIdentifier(MyThing.self)<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 125, - "key.doc.name" : "representedType", - "key.doc.type" : "Other", - "key.doclength" : 279, - "key.docoffset" : 4416, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> representedType<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 125, - "key.modulename" : "ListableUI", - "key.name" : "representedType", - "key.namelength" : 15, - "key.nameoffset" : 4710, - "key.offset" : 4706, - "key.parsed_declaration" : "public let representedType : ObjectIdentifier", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 125, - "key.reusingastcontext" : false, - "key.typename" : "ObjectIdentifier", - "key.typeusr" : "$sSOD", - "key.usr" : "s:10ListableUI13AnyIdentifierC15representedTypeSOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let hash: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4754 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> hash<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 14, - "key.line" : 127, - "key.modulename" : "ListableUI", - "key.name" : "hash", - "key.namelength" : 4, - "key.nameoffset" : 4766, - "key.offset" : 4762, - "key.parsed_declaration" : "private let hash : Int", - "key.parsed_scope.end" : 127, - "key.parsed_scope.start" : 127, - "key.related_decls" : [ - { - "key.annotated_decl" : "hash(into:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13AnyIdentifierC4hash33_BA28FAC8DEEB4752FC6A34FE3F1788FCLLSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate init(type: ObjectIdentifier<\/Type>, value: AnyHashable<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 4786 - } - ], - "key.bodylength" : 231, - "key.bodyoffset" : 4854, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(type<\/decl.var.parameter.argument_label>: ObjectIdentifier<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, value<\/decl.var.parameter.argument_label>: AnyHashable<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 288, - "key.line" : 129, - "key.modulename" : "ListableUI", - "key.name" : "init(type:value:)", - "key.namelength" : 50, - "key.nameoffset" : 4798, - "key.offset" : 4798, - "key.parsed_declaration" : "fileprivate init(type : ObjectIdentifier, value : AnyHashable)", - "key.parsed_scope.end" : 138, - "key.parsed_scope.start" : 129, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyIdentifierC" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var hasher: Hasher<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> hasher<\/decl.name>: Hasher<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 21, - "key.line" : 134, - "key.modulename" : "ListableUI", - "key.name" : "hasher", - "key.namelength" : 6, - "key.nameoffset" : 4942, - "key.offset" : 4938, - "key.parsed_declaration" : "var hasher = Hasher()", - "key.parsed_scope.end" : 134, - "key.parsed_scope.start" : 134, - "key.reusingastcontext" : false, - "key.typename" : "Hasher", - "key.typeusr" : "$ss6HasherVD", - "key.usr" : "s:10ListableUI13AnyIdentifierC4type5valueACSO_s0C8HashableVtc33_BA28FAC8DEEB4752FC6A34FE3F1788FCLlfc6hasherL_s6HasherVvp" - } - ], - "key.typename" : "(AnyIdentifier.Type) -> (ObjectIdentifier, AnyHashable) -> AnyIdentifier", - "key.typeusr" : "$s4type5value10ListableUI13AnyIdentifierCSO_s0E8HashableVtcD", - "key.usr" : "s:10ListableUI13AnyIdentifierC4type5valueACSO_s0C8HashableVtc33_BA28FAC8DEEB4752FC6A34FE3F1788FCLlfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 15, - "key.name" : "MARK: Equatable", - "key.offset" : 5099 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func == (lhs: AnyIdentifier<\/Type>, rhs: AnyIdentifier<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5124 - } - ], - "key.bodylength" : 119, - "key.bodyoffset" : 5200, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns a Boolean value indicating whether two values are equal.\n\nEquality is the inverse of inequality. For any values `a` and `b`,\n`a == b` implies that `a != b` is `false`.\n\n- Parameters:\n - lhs: A value to compare.\n - rhs: Another value to compare.", - "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "Equality is the inverse of inequality. For any values `a` and `b`, `a == b` implies that `a != b` is `false`." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "==(_:_:)<\/Name>s:SQ2eeoiySbx_xtFZ<\/USR>static func == (lhs: Self, rhs: Self) -> Bool<\/Declaration>Returns a Boolean value indicating whether two values are equal.<\/Para><\/Abstract>lhs<\/Name>in<\/Direction>A value to compare.<\/Para><\/Discussion><\/Parameter>rhs<\/Name>in<\/Direction>Another value to compare.<\/Para><\/Discussion><\/Parameter><\/Parameters>Equality is the inverse of inequality. For any values a<\/codeVoice> and b<\/codeVoice>, a == b<\/codeVoice> implies that a != b<\/codeVoice> is false<\/codeVoice>.<\/Para>This documentation comment was inherited from Equatable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "==(_:_:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A value to compare." - } - ], - "name" : "lhs" - }, - { - "discussion" : [ - { - "Para" : "Another value to compare." - } - ], - "name" : "rhs" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 189, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "==(_:_:)", - "key.namelength" : 43, - "key.nameoffset" : 5143, - "key.offset" : 5131, - "key.overrides" : [ - { - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.parsed_declaration" : "public static func == (lhs: AnyIdentifier, rhs: AnyIdentifier) -> Bool", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 142, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(AnyIdentifier.Type) -> (AnyIdentifier, AnyIdentifier) -> Bool", - "key.typeusr" : "$sySb10ListableUI13AnyIdentifierC_ACtcD", - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 14, - "key.name" : "MARK: Hashable", - "key.offset" : 5333 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func hash(into hasher: inout Hasher<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5357 - } - ], - "key.bodylength" : 39, - "key.bodyoffset" : 5406, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Hashes the essential components of this value by feeding them into the\ngiven hasher.\n\nImplement this method to conform to the `Hashable` protocol. The\ncomponents used for hashing must be the same as the components compared\nin your type's `==` operator implementation. Call `hasher.combine(_:)`\nwith each of these components.\n\n- Important: In your implementation of `hash(into:)`,\n don't call `finalize()` on the `hasher` instance provided,\n or replace it with a different instance.\n Doing so may become a compile-time error in the future.\n\n- Parameter hasher: The hasher to use when combining the components\n of this instance.", - "key.doc.declaration" : "func hash(into hasher: inout Hasher)", - "key.doc.discussion" : [ - { - "Para" : "Implement this method to conform to the `Hashable` protocol. The components used for hashing must be the same as the components compared in your type’s `==` operator implementation. Call `hasher.combine(_:)` with each of these components." - }, - { - "Important" : "" - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "hash(into:)<\/Name>s:SH4hash4intoys6HasherVz_tF<\/USR>func hash(into hasher: inout Hasher)<\/Declaration>Hashes the essential components of this value by feeding them into the given hasher.<\/Para><\/Abstract>hasher<\/Name>in<\/Direction>The hasher to use when combining the components of this instance.<\/Para><\/Discussion><\/Parameter><\/Parameters>Implement this method to conform to the Hashable<\/codeVoice> protocol. The components used for hashing must be the same as the components compared in your type’s ==<\/codeVoice> operator implementation. Call hasher.combine(_:)<\/codeVoice> with each of these components.<\/Para>In your implementation of hash(into:)<\/codeVoice>, don’t call finalize()<\/codeVoice> on the hasher<\/codeVoice> instance provided, or replace it with a different instance. Doing so may become a compile-time error in the future.<\/Para><\/Important>This documentation comment was inherited from Hashable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "hash(into:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The hasher to use when combining the components of this instance." - } - ], - "name" : "hasher" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 82, - "key.line" : 149, - "key.modulename" : "ListableUI", - "key.name" : "hash(into:)", - "key.namelength" : 31, - "key.nameoffset" : 5369, - "key.offset" : 5364, - "key.overrides" : [ - { - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - } - ], - "key.parsed_declaration" : "public func hash(into hasher: inout Hasher)", - "key.parsed_scope.end" : 152, - "key.parsed_scope.start" : 149, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyIdentifierC" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "hash<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(AnyIdentifier) -> (inout Hasher) -> ()", - "key.typeusr" : "$s4intoys6HasherVz_tcD", - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 34, - "key.name" : "MARK: CustomDebugStringConvertible", - "key.offset" : 5459 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var debugDescription: String<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5503 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 5541, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A textual representation of this instance, suitable for debugging.\n\nCalling this property directly is discouraged. Instead, convert an\ninstance of any type to a string by using the `String(reflecting:)`\ninitializer. This initializer works with any type, and uses the custom\n`debugDescription` property for types that conform to\n`CustomDebugStringConvertible`:\n\n struct Point: CustomDebugStringConvertible {\n let x: Int, y: Int\n\n var debugDescription: String {\n return \"(\\(x), \\(y))\"\n }\n }\n\n let p = Point(x: 21, y: 30)\n let s = String(reflecting: p)\n print(s)\n \/\/ Prints \"(21, 30)\"\n\nThe conversion of `p` to a string in the assignment to `s` uses the\n`Point` type's `debugDescription` property.", - "key.doc.declaration" : "var debugDescription: String { get }", - "key.doc.discussion" : [ - { - "Para" : "Calling this property directly is discouraged. Instead, convert an instance of any type to a string by using the `String(reflecting:)` initializer. This initializer works with any type, and uses the custom `debugDescription` property for types that conform to `CustomDebugStringConvertible`:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The conversion of `p` to a string in the assignment to `s` uses the `Point` type’s `debugDescription` property." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "debugDescription<\/Name>s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp<\/USR>var debugDescription: String { get }<\/Declaration>A textual representation of this instance, suitable for debugging.<\/Para><\/Abstract>Calling this property directly is discouraged. Instead, convert an instance of any type to a string by using the String(reflecting:)<\/codeVoice> initializer. This initializer works with any type, and uses the custom debugDescription<\/codeVoice> property for types that conform to CustomDebugStringConvertible<\/codeVoice>:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The conversion of p<\/codeVoice> to a string in the assignment to s<\/codeVoice> uses the Point<\/codeVoice> type’s debugDescription<\/codeVoice> property.<\/Para>This documentation comment was inherited from CustomDebugStringConvertible<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.name" : "debugDescription", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debugDescription<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 58, - "key.line" : 156, - "key.modulename" : "ListableUI", - "key.name" : "debugDescription", - "key.namelength" : 16, - "key.nameoffset" : 5514, - "key.offset" : 5510, - "key.overrides" : [ - { - "key.usr" : "s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp" - } - ], - "key.parsed_declaration" : "public var debugDescription : String", - "key.parsed_scope.end" : 158, - "key.parsed_scope.start" : 156, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyIdentifierC" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp" - } - ], - "key.typename" : "AnyIdentifier.Type", - "key.typeusr" : "$s10ListableUI13AnyIdentifierCmD", - "key.usr" : "s:10ListableUI13AnyIdentifierC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@frozen struct AnyHashable<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 5573 - } - ], - "key.bodylength" : 331, - "key.bodyoffset" : 5608, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A type-erased hashable value.\n\nThe `AnyHashable` type forwards equality comparisons and hashing operations\nto an underlying hashable value, hiding the type of the wrapped value.\n\nWhere conversion using `as` or `as?` is possible between two types (such as\n`Int` and `NSNumber`), `AnyHashable` uses a canonical representation of the\ntype-erased value so that instances wrapping the same value of either type\ncompare as equal. For example, `AnyHashable(42)` compares as equal to\n`AnyHashable(42 as NSNumber)`.\n\nYou can store mixed-type keys in dictionaries and other collections that\nrequire `Hashable` conformance by wrapping mixed-type keys in\n`AnyHashable` instances:\n\n let descriptions: [AnyHashable: Any] = [\n 42: \"an Int\",\n 43 as Int8: \"an Int8\",\n [\"a\", \"b\"] as Set: \"a set of strings\"\n ]\n print(descriptions[42]!) \/\/ prints \"an Int\"\n print(descriptions[42 as Int8]!) \/\/ prints \"an Int\"\n print(descriptions[43 as Int8]!) \/\/ prints \"an Int8\"\n print(descriptions[44]) \/\/ prints \"nil\"\n print(descriptions[[\"a\", \"b\"] as Set]!) \/\/ prints \"a set of strings\"\n\nNote that `AnyHashable` does not guarantee that it preserves the hash\nencoding of wrapped values. Do not rely on `AnyHashable` generating such\ncompatible hashes, as the hash encoding that it uses may change between any\ntwo releases of the standard library.", - "key.doc.declaration" : "@frozen struct AnyHashable", - "key.doc.discussion" : [ - { - "Para" : "The `AnyHashable` type forwards equality comparisons and hashing operations to an underlying hashable value, hiding the type of the wrapped value." - }, - { - "Para" : "Where conversion using `as` or `as?` is possible between two types (such as `Int` and `NSNumber`), `AnyHashable` uses a canonical representation of the type-erased value so that instances wrapping the same value of either type compare as equal. For example, `AnyHashable(42)` compares as equal to `AnyHashable(42 as NSNumber)`." - }, - { - "Para" : "You can store mixed-type keys in dictionaries and other collections that require `Hashable` conformance by wrapping mixed-type keys in `AnyHashable` instances:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Note that `AnyHashable` does not guarantee that it preserves the hash encoding of wrapped values. Do not rely on `AnyHashable` generating such compatible hashes, as the hash encoding that it uses may change between any two releases of the standard library." - } - ], - "key.doc.full_as_xml" : "AnyHashable<\/Name>s:s11AnyHashableV<\/USR>@frozen struct AnyHashable<\/Declaration>A type-erased hashable value.<\/Para><\/Abstract>The AnyHashable<\/codeVoice> type forwards equality comparisons and hashing operations to an underlying hashable value, hiding the type of the wrapped value.<\/Para>Where conversion using as<\/codeVoice> or as?<\/codeVoice> is possible between two types (such as Int<\/codeVoice> and NSNumber<\/codeVoice>), AnyHashable<\/codeVoice> uses a canonical representation of the type-erased value so that instances wrapping the same value of either type compare as equal. For example, AnyHashable(42)<\/codeVoice> compares as equal to AnyHashable(42 as NSNumber)<\/codeVoice>.<\/Para>You can store mixed-type keys in dictionaries and other collections that require Hashable<\/codeVoice> conformance by wrapping mixed-type keys in AnyHashable<\/codeVoice> instances:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Note that AnyHashable<\/codeVoice> does not guarantee that it preserves the hash encoding of wrapped values. Do not rely on AnyHashable<\/codeVoice> generating such compatible hashes, as the hash encoding that it uses may change between any two releases of the standard library.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.name" : "AnyHashable", - "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> AnyHashable<\/decl.name><\/decl.struct>", - "key.groupname" : "Hashing", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 355, - "key.modulename" : "Swift", - "key.name" : "AnyHashable", - "key.namelength" : 11, - "key.nameoffset" : 5595, - "key.offset" : 5585, - "key.parsed_declaration" : "fileprivate extension AnyHashable", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 162, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "var identifierContentString: String<\/Type> { get }<\/Declaration>", - "key.bodylength" : 286, - "key.bodyoffset" : 5651, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Identifier.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifierContentString<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 325, - "key.line" : 164, - "key.modulename" : "ListableUI", - "key.name" : "identifierContentString", - "key.namelength" : 23, - "key.nameoffset" : 5617, - "key.offset" : 5613, - "key.parsed_declaration" : "var identifierContentString : String", - "key.parsed_scope.end" : 172, - "key.parsed_scope.start" : 164, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:s11AnyHashableV10ListableUIE23identifierContentString33_BA28FAC8DEEB4752FC6A34FE3F1788FCLLSSvp" - } - ], - "key.typename" : "AnyHashable.Type", - "key.typeusr" : "$ss11AnyHashableVmD", - "key.usr" : "s:s11AnyHashableV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2072, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "@frozen @_eagerMove struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", - "key.bodylength" : 1949, - "key.bodyoffset" : 121, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An ordered, random-access collection.\n\nArrays are one of the most commonly used data types in an app. You use\narrays to organize your app's data. Specifically, you use the `Array` type\nto hold elements of a single type, the array's `Element` type. An array\ncan store any kind of elements---from integers to strings to classes.\n\nSwift makes it easy to create arrays in your code using an array literal:\nsimply surround a comma-separated list of values with square brackets.\nWithout any other information, Swift creates an array that includes the\nspecified values, automatically inferring the array's `Element` type. For\nexample:\n\n \/\/ An array of 'Int' elements\n let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]\n\n \/\/ An array of 'String' elements\n let streets = [\"Albemarle\", \"Brandywine\", \"Chesapeake\"]\n\nYou can create an empty array by specifying the `Element` type of your\narray in the declaration. For example:\n\n \/\/ Shortened forms are preferred\n var emptyDoubles: [Double] = []\n\n \/\/ The full type name is also allowed\n var emptyFloats: Array = Array()\n\nIf you need an array that is preinitialized with a fixed number of default\nvalues, use the `Array(repeating:count:)` initializer.\n\n var digitCounts = Array(repeating: 0, count: 10)\n print(digitCounts)\n \/\/ Prints \"[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\"\n\nAccessing Array Values\n======================\n\nWhen you need to perform an operation on all of an array's elements, use a\n`for`-`in` loop to iterate through the array's contents.\n\n for street in streets {\n print(\"I don't live on \\(street).\")\n }\n \/\/ Prints \"I don't live on Albemarle.\"\n \/\/ Prints \"I don't live on Brandywine.\"\n \/\/ Prints \"I don't live on Chesapeake.\"\n\nUse the `isEmpty` property to check quickly whether an array has any\nelements, or use the `count` property to find the number of elements in\nthe array.\n\n if oddNumbers.isEmpty {\n print(\"I don't know any odd numbers.\")\n } else {\n print(\"I know \\(oddNumbers.count) odd numbers.\")\n }\n \/\/ Prints \"I know 8 odd numbers.\"\n\nUse the `first` and `last` properties for safe access to the value of the\narray's first and last elements. If the array is empty, these properties\nare `nil`.\n\n if let firstElement = oddNumbers.first, let lastElement = oddNumbers.last {\n print(firstElement, lastElement, separator: \", \")\n }\n \/\/ Prints \"1, 15\"\n\n print(emptyDoubles.first, emptyDoubles.last, separator: \", \")\n \/\/ Prints \"nil, nil\"\n\nYou can access individual array elements through a subscript. The first\nelement of a nonempty array is always at index zero. You can subscript an\narray with any integer from zero up to, but not including, the count of\nthe array. Using a negative number or an index equal to or greater than\n`count` triggers a runtime error. For example:\n\n print(oddNumbers[0], oddNumbers[3], separator: \", \")\n \/\/ Prints \"1, 7\"\n\n print(emptyDoubles[0])\n \/\/ Triggers runtime error: Index out of range\n\nAdding and Removing Elements\n============================\n\nSuppose you need to store a list of the names of students that are signed\nup for a class you're teaching. During the registration period, you need\nto add and remove names as students add and drop the class.\n\n var students = [\"Ben\", \"Ivy\", \"Jordell\"]\n\nTo add single elements to the end of an array, use the `append(_:)` method.\nAdd multiple elements at the same time by passing another array or a\nsequence of any kind to the `append(contentsOf:)` method.\n\n students.append(\"Maxime\")\n students.append(contentsOf: [\"Shakia\", \"William\"])\n \/\/ [\"Ben\", \"Ivy\", \"Jordell\", \"Maxime\", \"Shakia\", \"William\"]\n\nYou can add new elements in the middle of an array by using the\n`insert(_:at:)` method for single elements and by using\n`insert(contentsOf:at:)` to insert multiple elements from another\ncollection or array literal. The elements at that index and later indices\nare shifted back to make room.\n\n students.insert(\"Liam\", at: 3)\n \/\/ [\"Ben\", \"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\", \"William\"]\n\nTo remove elements from an array, use the `remove(at:)`,\n`removeSubrange(_:)`, and `removeLast()` methods.\n\n \/\/ Ben's family is moving to another state\n students.remove(at: 0)\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\", \"William\"]\n\n \/\/ William is signing up for a different class\n students.removeLast()\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\"]\n\nYou can replace an existing element with a new value by assigning the new\nvalue to the subscript.\n\n if let i = students.firstIndex(of: \"Maxime\") {\n students[i] = \"Max\"\n }\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Max\", \"Shakia\"]\n\nGrowing the Size of an Array\n----------------------------\n\nEvery array reserves a specific amount of memory to hold its contents. When\nyou add elements to an array and that array begins to exceed its reserved\ncapacity, the array allocates a larger region of memory and copies its\nelements into the new storage. The new storage is a multiple of the old\nstorage's size. This exponential growth strategy means that appending an\nelement happens in constant time, averaging the performance of many append\noperations. Append operations that trigger reallocation have a performance\ncost, but they occur less and less often as the array grows larger.\n\nIf you know approximately how many elements you will need to store, use the\n`reserveCapacity(_:)` method before appending to the array to avoid\nintermediate reallocations. Use the `capacity` and `count` properties to\ndetermine how many more elements the array can store without allocating\nlarger storage.\n\nFor arrays of most `Element` types, this storage is a contiguous block of\nmemory. For arrays with an `Element` type that is a class or `@objc`\nprotocol type, this storage can be a contiguous block of memory or an\ninstance of `NSArray`. Because any arbitrary subclass of `NSArray` can\nbecome an `Array`, there are no guarantees about representation or\nefficiency in this case.\n\nModifying Copies of Arrays\n==========================\n\nEach array has an independent value that includes the values of all of its\nelements. For simple types such as integers and other structures, this\nmeans that when you change a value in one array, the value of that element\ndoes not change in any copies of the array. For example:\n\n var numbers = [1, 2, 3, 4, 5]\n var numbersCopy = numbers\n numbers[0] = 100\n print(numbers)\n \/\/ Prints \"[100, 2, 3, 4, 5]\"\n print(numbersCopy)\n \/\/ Prints \"[1, 2, 3, 4, 5]\"\n\nIf the elements in an array are instances of a class, the semantics are the\nsame, though they might appear different at first. In this case, the\nvalues stored in the array are references to objects that live outside the\narray. If you change a reference to an object in one array, only that\narray has a reference to the new object. However, if two arrays contain\nreferences to the same object, you can observe changes to that object's\nproperties from both arrays. For example:\n\n \/\/ An integer type with reference semantics\n class IntegerReference {\n var value = 10\n }\n var firstIntegers = [IntegerReference(), IntegerReference()]\n var secondIntegers = firstIntegers\n\n \/\/ Modifications to an instance are visible from either array\n firstIntegers[0].value = 100\n print(secondIntegers[0].value)\n \/\/ Prints \"100\"\n\n \/\/ Replacements, additions, and removals are still visible\n \/\/ only in the modified array\n firstIntegers[0] = IntegerReference()\n print(firstIntegers[0].value)\n \/\/ Prints \"10\"\n print(secondIntegers[0].value)\n \/\/ Prints \"100\"\n\nArrays, like all variable-size collections in the standard library, use\ncopy-on-write optimization. Multiple copies of an array share the same\nstorage until you modify one of the copies. When that happens, the array\nbeing modified replaces its storage with a uniquely owned copy of itself,\nwhich is then modified in place. Optimizations are sometimes applied that\ncan reduce the amount of copying.\n\nThis means that if an array is sharing storage with other copies, the first\nmutating operation on that array incurs the cost of copying the array. An\narray that is the sole owner of its storage can perform mutating\noperations in place.\n\nIn the example below, a `numbers` array is created along with two copies\nthat share the same storage. When the original `numbers` array is\nmodified, it makes a unique copy of its storage before making the\nmodification. Further modifications to `numbers` are made in place, while\nthe two copies continue to share the original storage.\n\n var numbers = [1, 2, 3, 4, 5]\n var firstCopy = numbers\n var secondCopy = numbers\n\n \/\/ The storage for 'numbers' is copied here\n numbers[0] = 100\n numbers[1] = 200\n numbers[2] = 300\n \/\/ 'numbers' is [100, 200, 300, 4, 5]\n \/\/ 'firstCopy' and 'secondCopy' are [1, 2, 3, 4, 5]\n\nBridging Between Array and NSArray\n==================================\n\nWhen you need to access APIs that require data in an `NSArray` instance\ninstead of `Array`, use the type-cast operator (`as`) to bridge your\ninstance. For bridging to be possible, the `Element` type of your array\nmust be a class, an `@objc` protocol (a protocol imported from Objective-C\nor marked with the `@objc` attribute), or a type that bridges to a\nFoundation type.\n\nThe following example shows how you can bridge an `Array` instance to\n`NSArray` to use the `write(to:atomically:)` method. In this example, the\n`colors` array can be bridged to `NSArray` because the `colors` array's\n`String` elements bridge to `NSString`. The compiler prevents bridging the\n`moreColors` array, on the other hand, because its `Element` type is\n`Optional`, which does *not* bridge to a Foundation type.\n\n let colors = [\"periwinkle\", \"rose\", \"moss\"]\n let moreColors: [String?] = [\"ochre\", \"pine\"]\n\n let url = URL(fileURLWithPath: \"names.plist\")\n (colors as NSArray).write(to: url, atomically: true)\n \/\/ true\n\n (moreColors as NSArray).write(to: url, atomically: true)\n \/\/ error: cannot convert value of type '[String?]' to type 'NSArray'\n\nBridging from `Array` to `NSArray` takes O(1) time and O(1) space if the\narray's elements are already instances of a class or an `@objc` protocol;\notherwise, it takes O(*n*) time and space.\n\nWhen the destination array's element type is a class or an `@objc`\nprotocol, bridging from `NSArray` to `Array` first calls the `copy(with:)`\n(`- copyWithZone:` in Objective-C) method on the array to get an immutable\ncopy and then performs additional Swift bookkeeping work that takes O(1)\ntime. For instances of `NSArray` that are already immutable, `copy(with:)`\nusually returns the same array in O(1) time; otherwise, the copying\nperformance is unspecified. If `copy(with:)` returns the same array, the\ninstances of `NSArray` and `Array` share storage using the same\ncopy-on-write optimization that is used when two instances of `Array`\nshare storage.\n\nWhen the destination array's element type is a nonclass type that bridges\nto a Foundation type, bridging from `NSArray` to `Array` performs a\nbridging copy of the elements to contiguous storage in O(*n*) time. For\nexample, bridging from `NSArray` to `Array` performs such a copy. No\nfurther bridging is required when accessing elements of the `Array`\ninstance.\n\n- Note: The `ContiguousArray` and `ArraySlice` types are not bridged;\n instances of those types always have a contiguous block of memory as\n their storage.", - "key.doc.declaration" : "@frozen struct Array : _DestructorSafeContainer", - "key.doc.discussion" : [ - { - "Para" : "Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the `Array` type to hold elements of a single type, the array’s `Element` type. An array can store any kind of elements—from integers to strings to classes." - }, - { - "Para" : "Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s `Element` type. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can create an empty array by specifying the `Element` type of your array in the declaration. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you need an array that is preinitialized with a fixed number of default values, use the `Array(repeating:count:)` initializer." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When you need to perform an operation on all of an array’s elements, use a `for`-`in` loop to iterate through the array’s contents." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Use the `isEmpty` property to check quickly whether an array has any elements, or use the `count` property to find the number of elements in the array." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Use the `first` and `last` properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are `nil`." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than `count` triggers a runtime error. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To add single elements to the end of an array, use the `append(_:)` method. Add multiple elements at the same time by passing another array or a sequence of any kind to the `append(contentsOf:)` method." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can add new elements in the middle of an array by using the `insert(_:at:)` method for single elements and by using `insert(contentsOf:at:)` to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To remove elements from an array, use the `remove(at:)`, `removeSubrange(_:)`, and `removeLast()` methods." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can replace an existing element with a new value by assigning the new value to the subscript." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger." - }, - { - "Para" : "If you know approximately how many elements you will need to store, use the `reserveCapacity(_:)` method before appending to the array to avoid intermediate reallocations. Use the `capacity` and `count` properties to determine how many more elements the array can store without allocating larger storage." - }, - { - "Para" : "For arrays of most `Element` types, this storage is a contiguous block of memory. For arrays with an `Element` type that is a class or `@objc` protocol type, this storage can be a contiguous block of memory or an instance of `NSArray`. Because any arbitrary subclass of `NSArray` can become an `Array`, there are no guarantees about representation or efficiency in this case." - }, - { - "Para" : "Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying." - }, - { - "Para" : "This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place." - }, - { - "Para" : "In the example below, a `numbers` array is created along with two copies that share the same storage. When the original `numbers` array is modified, it makes a unique copy of its storage before making the modification. Further modifications to `numbers` are made in place, while the two copies continue to share the original storage." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When you need to access APIs that require data in an `NSArray` instance instead of `Array`, use the type-cast operator (`as`) to bridge your instance. For bridging to be possible, the `Element` type of your array must be a class, an `@objc` protocol (a protocol imported from Objective-C or marked with the `@objc` attribute), or a type that bridges to a Foundation type." - }, - { - "Para" : "The following example shows how you can bridge an `Array` instance to `NSArray` to use the `write(to:atomically:)` method. In this example, the `colors` array can be bridged to `NSArray` because the `colors` array’s `String` elements bridge to `NSString`. The compiler prevents bridging the `moreColors` array, on the other hand, because its `Element` type is `Optional`, which does bridge to a Foundation type." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Bridging from `Array` to `NSArray` takes O(1) time and O(1) space if the array’s elements are already instances of a class or an `@objc` protocol; otherwise, it takes O() time and space." - }, - { - "Para" : "When the destination array’s element type is a class or an `@objc` protocol, bridging from `NSArray` to `Array` first calls the `copy(with:)` (`- copyWithZone:` in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of `NSArray` that are already immutable, `copy(with:)` usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If `copy(with:)` returns the same array, the instances of `NSArray` and `Array` share storage using the same copy-on-write optimization that is used when two instances of `Array` share storage." - }, - { - "Para" : "When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from `NSArray` to `Array` performs a bridging copy of the elements to contiguous storage in O() time. For example, bridging from `NSArray` to `Array` performs such a copy. No further bridging is required when accessing elements of the `Array` instance." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element> : _DestructorSafeContainer<\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>", - "key.doc.name" : "Array", - "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", - "key.groupname" : "Collection\/Array", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1967, - "key.modulename" : "Swift", - "key.name" : "Array", - "key.namelength" : 5, - "key.nameoffset" : 114, - "key.offset" : 104, - "key.parsed_declaration" : "extension Array", - "key.parsed_scope.end" : 81, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func forEachWithIndex(_ block: (Int<\/Type>, Bool<\/Type>, Element<\/Type>) -> ())<\/Declaration>", - "key.bodylength" : 230, - "key.bodyoffset" : 191, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> forEachWithIndex<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 296, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "forEachWithIndex(_:)", - "key.namelength" : 54, - "key.nameoffset" : 131, - "key.offset" : 126, - "key.parsed_declaration" : "func forEachWithIndex(_ block : (Int, Bool, Element) -> ())", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let count: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 22, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "count", - "key.namelength" : 5, - "key.nameoffset" : 204, - "key.offset" : 200, - "key.parsed_declaration" : "let count = self.count", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:Sa10ListableUIE16forEachWithIndexyyySi_SbxtXEF5countL_Sivp" - }, - { - "key.annotated_decl" : "var index: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 19, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "index", - "key.namelength" : 5, - "key.nameoffset" : 235, - "key.offset" : 231, - "key.parsed_declaration" : "var index : Int = 0", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.related_decls" : [ - { - "key.annotated_decl" : "index(_:_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:Sa10ListableUIE16forEachWithIndexyyySi_SbxtXEF5indexL_Sivp" - } - ], - "key.typename" : " (Array) -> ((Int, Bool, Element) -> ()) -> ()", - "key.typeusr" : "$syyySi_SbxtXEcD", - "key.usr" : "s:Sa10ListableUIE16forEachWithIndexyyySi_SbxtXEF" - }, - { - "key.annotated_decl" : "func mapWithIndex<Mapped>(_ block: (Int<\/Type>, Bool<\/Type>, Element<\/Type>) -> Mapped<\/Type>) -> [Mapped<\/Type>]<\/Declaration>", - "key.bodylength" : 360, - "key.bodyoffset" : 517, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> mapWithIndex<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 446, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "mapWithIndex(_:)", - "key.namelength" : 62, - "key.nameoffset" : 437, - "key.offset" : 432, - "key.parsed_declaration" : "func mapWithIndex(_ block : (Int, Bool, Element) -> Mapped) -> [Mapped]", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 450, - "key.offset" : 450, - "key.parsed_declaration" : "func mapWithIndexvar mapped: [Mapped<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: [Mapped<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 23, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "mapped", - "key.namelength" : 6, - "key.nameoffset" : 530, - "key.offset" : 526, - "key.parsed_declaration" : "var mapped = [Mapped]()", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.typename" : "[Mapped]", - "key.typeusr" : "$sSayqd__GD", - "key.usr" : "s:Sa10ListableUIE12mapWithIndexySayqd__Gqd__Si_SbxtXElF6mappedL_ACvp" - }, - { - "key.annotated_decl" : "let count: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 22, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "count", - "key.namelength" : 5, - "key.nameoffset" : 614, - "key.offset" : 610, - "key.parsed_declaration" : "let count = self.count", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:Sa10ListableUIE12mapWithIndexySayqd__Gqd__Si_SbxtXElF5countL_Sivp" - }, - { - "key.annotated_decl" : "var index: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 19, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "index", - "key.namelength" : 5, - "key.nameoffset" : 645, - "key.offset" : 641, - "key.parsed_declaration" : "var index : Int = 0", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.related_decls" : [ - { - "key.annotated_decl" : "index(_:_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:Sa10ListableUIE12mapWithIndexySayqd__Gqd__Si_SbxtXElF5indexL_Sivp" - } - ], - "key.typename" : " (Array) -> ((Int, Bool, Element) -> Mapped) -> [Mapped]", - "key.typeusr" : "$sySayqd__Gqd__Si_SbxtXEcluD", - "key.usr" : "s:Sa10ListableUIE12mapWithIndexySayqd__Gqd__Si_SbxtXElF" - }, - { - "key.annotated_decl" : "func compactMapWithIndex<Mapped>(_ block: (Int<\/Type>, Bool<\/Type>, Element<\/Type>) -> Mapped<\/Type>?) -> [Mapped<\/Type>]<\/Declaration>", - "key.bodylength" : 439, - "key.bodyoffset" : 981, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> compactMapWithIndex<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param>?<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 533, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "compactMapWithIndex(_:)", - "key.namelength" : 70, - "key.nameoffset" : 893, - "key.offset" : 888, - "key.parsed_declaration" : "func compactMapWithIndex(_ block : (Int, Bool, Element) -> Mapped?) -> [Mapped]", - "key.parsed_scope.end" : 61, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 30, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 913, - "key.offset" : 913, - "key.parsed_declaration" : "func compactMapWithIndexvar mapped: [Mapped<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: [Mapped<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 23, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "mapped", - "key.namelength" : 6, - "key.nameoffset" : 994, - "key.offset" : 990, - "key.parsed_declaration" : "var mapped = [Mapped]()", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.typename" : "[Mapped]", - "key.typeusr" : "$sSayqd__GD", - "key.usr" : "s:Sa10ListableUIE19compactMapWithIndexySayqd__Gqd__SgSi_SbxtXElF6mappedL_ACvp" - }, - { - "key.annotated_decl" : "let count: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 22, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "count", - "key.namelength" : 5, - "key.nameoffset" : 1078, - "key.offset" : 1074, - "key.parsed_declaration" : "let count = self.count", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:Sa10ListableUIE19compactMapWithIndexySayqd__Gqd__SgSi_SbxtXElF5countL_Sivp" - }, - { - "key.annotated_decl" : "var index: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 19, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "index", - "key.namelength" : 5, - "key.nameoffset" : 1109, - "key.offset" : 1105, - "key.parsed_declaration" : "var index : Int = 0", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 48, - "key.related_decls" : [ - { - "key.annotated_decl" : "index(_:_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:Sa10ListableUIE19compactMapWithIndexySayqd__Gqd__SgSi_SbxtXElF5indexL_Sivp" - } - ], - "key.typename" : " (Array) -> ((Int, Bool, Element) -> Mapped?) -> [Mapped]", - "key.typeusr" : "$sySayqd__Gqd__SgSi_SbxtXEcluD", - "key.usr" : "s:Sa10ListableUIE19compactMapWithIndexySayqd__Gqd__SgSi_SbxtXElF" - }, - { - "key.annotated_decl" : "mutating func popPassing(_ predicate: (Element<\/Type>) -> Bool<\/Type>) -> [Element<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 1634 - } - ], - "key.bodylength" : 362, - "key.bodyoffset" : 1706, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Pops all of the items passing the given `predicate` from the beginning of the array.\nIf there are no passing elements at the beginning, or the array is empty, an empty array is returned.", - "key.doc.column" : 19, - "key.doc.comment" : "Pops all of the items passing the given `predicate` from the beginning of the array.\nIf there are no passing elements at the beginning, or the array is empty, an empty array is returned.", - "key.doc.declaration" : "mutating func popPassing(_ predicate: (Element) -> Bool) -> [Element]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.doc.full_as_xml" : "popPassing(_:)<\/Name>s:Sa10ListableUIE10popPassingySayxGSbxXEF<\/USR>mutating func popPassing(_ predicate: (Element) -> Bool) -> [Element]<\/Declaration>Pops all of the items passing the given predicate<\/codeVoice> from the beginning of the array. If there are no passing elements at the beginning, or the array is empty, an empty array is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 65, - "key.doc.name" : "popPassing(_:)", - "key.doc.type" : "Function", - "key.doclength" : 199, - "key.docoffset" : 1431, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> popPassing<\/decl.name>(_<\/decl.var.parameter.argument_label> predicate<\/decl.var.parameter.name>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Element<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 426, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "popPassing(_:)", - "key.namelength" : 43, - "key.nameoffset" : 1648, - "key.offset" : 1643, - "key.parsed_declaration" : "mutating func popPassing(_ predicate : (Element) -> Bool) -> [Element]", - "key.parsed_scope.end" : 80, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let all: [Element<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Array.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> all<\/decl.name>: [Element<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 14, - "key.line" : 76, - "key.modulename" : "ListableUI", - "key.name" : "all", - "key.namelength" : 3, - "key.nameoffset" : 2000, - "key.offset" : 1996, - "key.parsed_declaration" : "let all = self", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 76, - "key.related_decls" : [ - { - "key.annotated_decl" : "all(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "[Element]", - "key.typeusr" : "$sSayxGD", - "key.usr" : "s:Sa10ListableUIE10popPassingySayxGSbxXEF3allL_ACvp" - } - ], - "key.typename" : " (inout Array) -> ((Element) -> Bool) -> [Element]", - "key.typeusr" : "$sySayxGSbxXEcD", - "key.usr" : "s:Sa10ListableUIE10popPassingySayxGSbxXEF" - } - ], - "key.typename" : "Array.Type", - "key.typeusr" : "$sSayxGmD", - "key.usr" : "s:Sa" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Assertions.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1802, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@inline(__always) func listableInternalFatal(_ message: @autoclosure () -> String<\/Type> = String(), file: StaticString<\/Type> = #file, line: UInt<\/Type> = #line) -> Never<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.inline", - "key.length" : 17, - "key.offset" : 108 - } - ], - "key.bodylength" : 230, - "key.bodyoffset" : 274, - "key.column" : 6, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Assertions.swift", - "key.fully_annotated_decl" : "@inline(__always)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> listableInternalFatal<\/decl.name>(_<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>) -> Never<\/ref.enum><\/decl.function.returntype><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 379, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "listableInternalFatal(_:file:line:)", - "key.namelength" : 132, - "key.nameoffset" : 131, - "key.offset" : 126, - "key.parsed_declaration" : "func listableInternalFatal(\n _ message: @autoclosure () -> String = String(),\n file: StaticString = #file,\n line: UInt = #line\n) -> Never", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(@autoclosure () -> String, StaticString, UInt) -> Never", - "key.typeusr" : "$s_4file4lines5NeverOSSyXK_s12StaticStringVSutcD", - "key.usr" : "s:10ListableUI21listableInternalFatal_4file4lines5NeverOSSyXK_s12StaticStringVSutF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@inline(__always) func listableInternalPrecondition(_ condition: @autoclosure () -> Bool<\/Type>, _ message: @autoclosure () -> String<\/Type> = String(), file: StaticString<\/Type> = #file, line: UInt<\/Type> = #line)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.inline", - "key.length" : 17, - "key.offset" : 507 - } - ], - "key.bodylength" : 270, - "key.bodyoffset" : 713, - "key.column" : 6, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Assertions.swift", - "key.fully_annotated_decl" : "@inline(__always)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> listableInternalPrecondition<\/decl.name>(_<\/decl.var.parameter.argument_label> condition<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>)<\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 459, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "listableInternalPrecondition(_:_:file:line:)", - "key.namelength" : 181, - "key.nameoffset" : 530, - "key.offset" : 525, - "key.parsed_declaration" : "func listableInternalPrecondition(\n _ condition: @autoclosure () -> Bool,\n _ message: @autoclosure () -> String = String(),\n file: StaticString = #file,\n line: UInt = #line\n)", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(@autoclosure () -> Bool, @autoclosure () -> String, StaticString, UInt) -> ()", - "key.typeusr" : "$s__4file4lineySbyXK_SSyXKs12StaticStringVSutcD", - "key.usr" : "s:10ListableUI28listableInternalPrecondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@inline(__always) func precondition(_ condition: @autoclosure () -> Bool<\/Type>, _ message: @autoclosure () -> String<\/Type> = String(), file: StaticString<\/Type> = #file, line: UInt<\/Type> = #line)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.inline", - "key.length" : 17, - "key.offset" : 1137 - } - ], - "key.bodylength" : 91, - "key.bodyoffset" : 1327, - "key.column" : 6, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "By default, `precondition` error messages are not included in release builds. We would like that!\nhttps:\/\/github.com\/apple\/swift\/issues\/43517", - "key.doc.column" : 6, - "key.doc.comment" : "By default, `precondition` error messages are not included in release builds. We would like that!\nhttps:\/\/github.com\/apple\/swift\/issues\/43517", - "key.doc.declaration" : "func precondition(_ condition: @autoclosure () -> Bool, _ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Assertions.swift", - "key.doc.full_as_xml" : "precondition(_:_:file:line:)<\/Name>s:10ListableUI12precondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF<\/USR>func precondition(_ condition: @autoclosure () -> Bool, _ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line)<\/Declaration>By default, precondition<\/codeVoice> error messages are not included in release builds. We would like that! https:\/\/github.com\/apple\/swift\/issues\/43517<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 55, - "key.doc.name" : "precondition(_:_:file:line:)", - "key.doc.type" : "Function", - "key.doclength" : 150, - "key.docoffset" : 987, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Assertions.swift", - "key.fully_annotated_decl" : "@inline(__always)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> precondition<\/decl.name>(_<\/decl.var.parameter.argument_label> condition<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>)<\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 264, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "precondition(_:_:file:line:)", - "key.namelength" : 165, - "key.nameoffset" : 1160, - "key.offset" : 1155, - "key.parsed_declaration" : "func precondition(\n _ condition: @autoclosure () -> Bool,\n _ message: @autoclosure () -> String = String(),\n file: StaticString = #file,\n line: UInt = #line\n)", - "key.parsed_scope.end" : 64, - "key.parsed_scope.start" : 55, - "key.related_decls" : [ - { - "key.annotated_decl" : "precondition(_: @autoclosure () -> Bool, _: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(@autoclosure () -> Bool, @autoclosure () -> String, StaticString, UInt) -> ()", - "key.typeusr" : "$s__4file4lineySbyXK_SSyXKs12StaticStringVSutcD", - "key.usr" : "s:10ListableUI12precondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@inline(__always) public func preconditionFailure(_ message: @autoclosure () -> String<\/Type> = String(), file: StaticString<\/Type> = #file, line: UInt<\/Type> = #line) -> Never<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1596 - }, - { - "key.attribute" : "source.decl.attribute.inline", - "key.length" : 17, - "key.offset" : 1578 - } - ], - "key.bodylength" : 51, - "key.bodyoffset" : 1749, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "By default, `preconditionFailure` error messages are not included in release builds. We would like that!\nhttps:\/\/github.com\/apple\/swift\/issues\/43517", - "key.doc.column" : 13, - "key.doc.comment" : "By default, `preconditionFailure` error messages are not included in release builds. We would like that!\nhttps:\/\/github.com\/apple\/swift\/issues\/43517", - "key.doc.declaration" : "public func preconditionFailure(_ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line) -> Never", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Assertions.swift", - "key.doc.full_as_xml" : "preconditionFailure(_:file:line:)<\/Name>s:10ListableUI19preconditionFailure_4file4lines5NeverOSSyXK_s12StaticStringVSutF<\/USR>public func preconditionFailure(_ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line) -> Never<\/Declaration>By default, preconditionFailure<\/codeVoice> error messages are not included in release builds. We would like that! https:\/\/github.com\/apple\/swift\/issues\/43517<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 69, - "key.doc.name" : "preconditionFailure(_:file:line:)", - "key.doc.type" : "Function", - "key.doclength" : 157, - "key.docoffset" : 1421, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Assertions.swift", - "key.fully_annotated_decl" : "@inline(__always)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preconditionFailure<\/decl.name>(_<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>) -> Never<\/ref.enum><\/decl.function.returntype><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 198, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "preconditionFailure(_:file:line:)", - "key.namelength" : 130, - "key.nameoffset" : 1608, - "key.offset" : 1603, - "key.parsed_declaration" : "public func preconditionFailure(\n _ message: @autoclosure () -> String = String(),\n file: StaticString = #file,\n line: UInt = #line\n) -> Never", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 69, - "key.related_decls" : [ - { - "key.annotated_decl" : "preconditionFailure(_: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line) -> Never<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(@autoclosure () -> String, StaticString, UInt) -> Never", - "key.typeusr" : "$s_4file4lines5NeverOSSyXK_s12StaticStringVSutcD", - "key.usr" : "s:10ListableUI19preconditionFailure_4file4lines5NeverOSSyXK_s12StaticStringVSutF" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/CGRect.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 993, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "struct CGRect<\/Declaration>", - "key.bodylength" : 954, - "key.bodyoffset" : 37, - "key.column" : 8, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/CoreFoundation.framework\/Headers\/CFCGTypes.h", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CGRect<\/decl.name><\/decl.struct>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 973, - "key.line" : 76, - "key.modulename" : "CoreFoundation.CFCGTypes", - "key.name" : "CGRect", - "key.namelength" : 6, - "key.nameoffset" : 29, - "key.offset" : 19, - "key.parsed_declaration" : "extension CGRect", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 3, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func percentageVisible(inside container: CGRect<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.bodylength" : 793, - "key.bodyoffset" : 196, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the percentage from `0.0` to `1.0` that this rect overlaps `container`.", - "key.doc.column" : 10, - "key.doc.comment" : "Returns the percentage from `0.0` to `1.0` that this rect overlaps `container`.", - "key.doc.declaration" : "func percentageVisible(inside container: CGRect) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/CGRect.swift", - "key.doc.full_as_xml" : "percentageVisible(inside:)<\/Name>s:So6CGRectV10ListableUIE17percentageVisible6inside14CoreFoundation7CGFloatVAB_tF<\/USR>func percentageVisible(inside container: CGRect) -> CGFloat<\/Declaration>Returns the percentage from 0.0<\/codeVoice> to 1.0<\/codeVoice> that this rect overlaps container<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 6, - "key.doc.name" : "percentageVisible(inside:)", - "key.doc.type" : "Function", - "key.doclength" : 84, - "key.docoffset" : 47, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/CGRect.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> percentageVisible<\/decl.name>(inside<\/decl.var.parameter.argument_label> container<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 855, - "key.line" : 6, - "key.modulename" : "ListableUI", - "key.name" : "percentageVisible(inside:)", - "key.namelength" : 43, - "key.nameoffset" : 140, - "key.offset" : 135, - "key.parsed_declaration" : "func percentageVisible(inside container: CGRect) -> CGFloat", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 6, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let container: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/CGRect.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> container<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 202, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "container", - "key.namelength" : 9, - "key.nameoffset" : 607, - "key.offset" : 603, - "key.parsed_declaration" : "let container = CGRect(\n x: floor(container.origin.x),\n y: floor(container.origin.y),\n width: ceil(container.width),\n height: ceil(container.height)\n)", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:So6CGRectV10ListableUIE17percentageVisible6inside14CoreFoundation7CGFloatVAB_tF9containerL0_ABvp" - }, - { - "key.annotated_decl" : "let overlap: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/CGRect.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> overlap<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 37, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "overlap", - "key.namelength" : 7, - "key.nameoffset" : 818, - "key.offset" : 814, - "key.parsed_declaration" : "let overlap = intersection(container)", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:So6CGRectV10ListableUIE17percentageVisible6inside14CoreFoundation7CGFloatVAB_tF7overlapL_ABvp" - }, - { - "key.annotated_decl" : "let area: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/CGRect.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> area<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 27, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "area", - "key.namelength" : 4, - "key.nameoffset" : 864, - "key.offset" : 860, - "key.parsed_declaration" : "let area = (width * height)", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:So6CGRectV10ListableUIE17percentageVisible6inside14CoreFoundation7CGFloatVAB_tF4areaL_AHvp" - } - ], - "key.typename" : "(CGRect) -> (CGRect) -> CGFloat", - "key.typeusr" : "$s6inside14CoreFoundation7CGFloatVSo6CGRectV_tcD", - "key.usr" : "s:So6CGRectV10ListableUIE17percentageVisible6inside14CoreFoundation7CGFloatVAB_tF" - } - ], - "key.typename" : "CGRect.Type", - "key.typeusr" : "$sSo6CGRectVmD", - "key.usr" : "c:@S@CGRect" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/CGSize.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 234, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct CGSize<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 118 - } - ], - "key.bodylength" : 87, - "key.bodyoffset" : 145, - "key.column" : 8, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/CoreFoundation.framework\/Headers\/CFCGTypes.h", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CGSize<\/decl.name><\/decl.struct>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 106, - "key.line" : 58, - "key.modulename" : "CoreFoundation.CFCGTypes", - "key.name" : "CGSize", - "key.namelength" : 6, - "key.nameoffset" : 137, - "key.offset" : 127, - "key.parsed_declaration" : "internal extension CGSize", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isEmpty: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 60, - "key.bodyoffset" : 170, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/CGSize.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 81, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "isEmpty", - "key.namelength" : 7, - "key.nameoffset" : 154, - "key.offset" : 150, - "key.parsed_declaration" : "var isEmpty : Bool", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:So6CGSizeV10ListableUIE7isEmptySbvp" - } - ], - "key.typename" : "CGSize.Type", - "key.typeusr" : "$sSo6CGSizeVmD", - "key.usr" : "c:@S@CGSize" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 19113, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ArrayDiff<Element, Identifier> where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 9006, - "key.bodyoffset" : 156, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 9055, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ArrayDiff", - "key.namelength" : 9, - "key.nameoffset" : 115, - "key.offset" : 108, - "key.parsed_declaration" : "struct ArrayDiff", - "key.parsed_scope.end" : 319, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Element<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Element<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Element", - "key.namelength" : 7, - "key.nameoffset" : 125, - "key.offset" : 125, - "key.parsed_declaration" : "struct ArrayDiffIdentifier : Hashable<\/Type><\/Declaration>", - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 145 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 134, - "key.offset" : 134, - "key.parsed_declaration" : "struct ArrayDiffvar added: [Added<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> added<\/decl.name>: [Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "added", - "key.namelength" : 5, - "key.nameoffset" : 165, - "key.offset" : 161, - "key.parsed_declaration" : "var added : [Added]", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[ArrayDiff.Added]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV5AddedVyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV5addedSayAC5AddedVyxq__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var removed: [Removed<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> removed<\/decl.name>: [Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "removed", - "key.namelength" : 7, - "key.nameoffset" : 189, - "key.offset" : 185, - "key.parsed_declaration" : "var removed : [Removed]", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[ArrayDiff.Removed]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV7RemovedVyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV7removedSayAC7RemovedVyxq__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var moved: [Moved<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> moved<\/decl.name>: [Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "moved", - "key.namelength" : 5, - "key.nameoffset" : 222, - "key.offset" : 218, - "key.parsed_declaration" : "var moved : [Moved]", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[ArrayDiff.Moved]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV5MovedVyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV5movedSayAC5MovedVyxq__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var updated: [Updated<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updated<\/decl.name>: [Updated<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "updated", - "key.namelength" : 7, - "key.nameoffset" : 246, - "key.offset" : 242, - "key.parsed_declaration" : "var updated : [Updated]", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[ArrayDiff.Updated]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV7UpdatedVyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV7updatedSayAC7UpdatedVyxq__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var noChange: [NoChange<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> noChange<\/decl.name>: [NoChange<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "noChange", - "key.namelength" : 8, - "key.nameoffset" : 274, - "key.offset" : 270, - "key.parsed_declaration" : "var noChange : [NoChange]", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[ArrayDiff.NoChange]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV8NoChangeVyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV8noChangeSayAC02NoF0Vyxq__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var changeCount: Int<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> changeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "changeCount", - "key.namelength" : 11, - "key.nameoffset" : 309, - "key.offset" : 305, - "key.parsed_declaration" : "var changeCount : Int", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI9ArrayDiffV11changeCountSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let usedFastPath: Bool<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> usedFastPath<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "usedFastPath", - "key.namelength" : 12, - "key.nameoffset" : 340, - "key.offset" : 336, - "key.parsed_declaration" : "let usedFastPath : Bool", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI9ArrayDiffV12usedFastPathSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Added<\/Declaration>", - "key.bodylength" : 112, - "key.bodyoffset" : 387, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Added<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 131, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "Added", - "key.namelength" : 5, - "key.nameoffset" : 376, - "key.offset" : 369, - "key.parsed_declaration" : "struct Added", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 400, - "key.offset" : 396, - "key.parsed_declaration" : "let identifier : Identifier", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.typename" : "Identifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI9ArrayDiffV5AddedV10identifierq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 445, - "key.offset" : 441, - "key.parsed_declaration" : "let newIndex : Int", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI9ArrayDiffV5AddedV8newIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let new: Element<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 481, - "key.offset" : 477, - "key.parsed_declaration" : "let new : Element", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.typename" : "Element", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI9ArrayDiffV5AddedV3newxvp" - } - ], - "key.typename" : "ArrayDiff.Added.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV5AddedVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV5AddedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Removed<\/Declaration>", - "key.bodylength" : 112, - "key.bodyoffset" : 530, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Removed<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 133, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "Removed", - "key.namelength" : 7, - "key.nameoffset" : 517, - "key.offset" : 510, - "key.parsed_declaration" : "struct Removed", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 543, - "key.offset" : 539, - "key.parsed_declaration" : "let identifier : Identifier", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.typename" : "Identifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI9ArrayDiffV7RemovedV10identifierq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 588, - "key.offset" : 584, - "key.parsed_declaration" : "let oldIndex : Int", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI9ArrayDiffV7RemovedV8oldIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let old: Element<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 624, - "key.offset" : 620, - "key.parsed_declaration" : "let old : Element", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.typename" : "Element", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI9ArrayDiffV7RemovedV3oldxvp" - } - ], - "key.typename" : "ArrayDiff.Removed.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV7RemovedVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV7RemovedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Moved<\/Declaration>", - "key.bodylength" : 100, - "key.bodyoffset" : 671, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Moved<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 119, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "Moved", - "key.namelength" : 5, - "key.nameoffset" : 660, - "key.offset" : 653, - "key.parsed_declaration" : "struct Moved", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 684, - "key.offset" : 680, - "key.parsed_declaration" : "let identifier : Identifier", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.typename" : "Identifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI9ArrayDiffV5MovedV10identifierq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let old: Removed<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Removed<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 729, - "key.offset" : 725, - "key.parsed_declaration" : "let old : Removed", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.Removed", - "key.typeusr" : "$s10ListableUI9ArrayDiffV7RemovedVyxq__GD", - "key.usr" : "s:10ListableUI9ArrayDiffV5MovedV3oldAC7RemovedVyxq__Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let new: Added<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Added<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 755, - "key.offset" : 751, - "key.parsed_declaration" : "let new : Added", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.Added", - "key.typeusr" : "$s10ListableUI9ArrayDiffV5AddedVyxq__GD", - "key.usr" : "s:10ListableUI9ArrayDiffV5MovedV3newAC5AddedVyxq__Gvp" - } - ], - "key.typename" : "ArrayDiff.Moved.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV5MovedVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV5MovedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Updated<\/Declaration>", - "key.bodylength" : 165, - "key.bodyoffset" : 802, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Updated<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 186, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "Updated", - "key.namelength" : 7, - "key.nameoffset" : 789, - "key.offset" : 782, - "key.parsed_declaration" : "struct Updated", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 52, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 815, - "key.offset" : 811, - "key.parsed_declaration" : "let identifier : Identifier", - "key.parsed_scope.end" : 52, - "key.parsed_scope.start" : 52, - "key.reusingastcontext" : false, - "key.typename" : "Identifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV10identifierq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/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" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 860, - "key.offset" : 856, - "key.parsed_declaration" : "let oldIndex : Int", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 54, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV8oldIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 887, - "key.offset" : 883, - "key.parsed_declaration" : "let newIndex : Int", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV8newIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let old: Element<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 57, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 923, - "key.offset" : 919, - "key.parsed_declaration" : "let old : Element", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.typename" : "Element", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV3oldxvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let new: Element<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 949, - "key.offset" : 945, - "key.parsed_declaration" : "let new : Element", - "key.parsed_scope.end" : 58, - "key.parsed_scope.start" : 58, - "key.reusingastcontext" : false, - "key.typename" : "Element", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV3newxvp" - } - ], - "key.typename" : "ArrayDiff.Updated.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV7UpdatedVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.NoChange<\/Declaration>", - "key.bodylength" : 165, - "key.bodyoffset" : 999, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.NoChange<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 187, - "key.line" : 61, - "key.modulename" : "ListableUI", - "key.name" : "NoChange", - "key.namelength" : 8, - "key.nameoffset" : 985, - "key.offset" : 978, - "key.parsed_declaration" : "struct NoChange", - "key.parsed_scope.end" : 70, - "key.parsed_scope.start" : 61, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 1012, - "key.offset" : 1008, - "key.parsed_declaration" : "let identifier : Identifier", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.typename" : "Identifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV10identifierq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 1057, - "key.offset" : 1053, - "key.parsed_declaration" : "let oldIndex : Int", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV8oldIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 1084, - "key.offset" : 1080, - "key.parsed_declaration" : "let newIndex : Int", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV8newIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let old: Element<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 1120, - "key.offset" : 1116, - "key.parsed_declaration" : "let old : Element", - "key.parsed_scope.end" : 68, - "key.parsed_scope.start" : 68, - "key.reusingastcontext" : false, - "key.typename" : "Element", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV3oldxvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let new: Element<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 1146, - "key.offset" : 1142, - "key.parsed_declaration" : "let new : Element", - "key.parsed_scope.end" : 69, - "key.parsed_scope.start" : 69, - "key.reusingastcontext" : false, - "key.typename" : "Element", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV3newxvp" - } - ], - "key.typename" : "ArrayDiff.NoChange.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV8NoChangeVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(old: [Element<\/Type>], new: [Element<\/Type>], identifierProvider: (Element<\/Type>) -> Identifier<\/Type>, movedHint: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>, updated: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 4515, - "key.bodyoffset" : 1393, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: [Element<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Element<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, identifierProvider<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, movedHint<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 4734, - "key.line" : 72, - "key.modulename" : "ListableUI", - "key.name" : "init(old:new:identifierProvider:movedHint:updated:)", - "key.namelength" : 212, - "key.nameoffset" : 1175, - "key.offset" : 1175, - "key.parsed_declaration" : "init(\n old : [Element],\n new : [Element],\n identifierProvider : (Element) -> Identifier,\n movedHint : (Element, Element) -> Bool,\n updated : (Element, Element) -> Bool\n )", - "key.parsed_scope.end" : 211, - "key.parsed_scope.start" : 72, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let old: DiffableCollection<\/Type><Element<\/Type>, Identifier<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: DiffableCollection<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 63, - "key.line" : 107, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 2237, - "key.offset" : 2233, - "key.parsed_declaration" : "let old = DiffableCollection(elements: old, identifierProvider)", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 107, - "key.reusingastcontext" : false, - "key.typename" : "DiffableCollection", - "key.typeusr" : "$s10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD", - "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfcADL0_AA18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_Gvp" - }, - { - "key.annotated_decl" : "let new: DiffableCollection<\/Type><Element<\/Type>, Identifier<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: DiffableCollection<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 63, - "key.line" : 108, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 2309, - "key.offset" : 2305, - "key.parsed_declaration" : "let new = DiffableCollection(elements: new, identifierProvider)", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 108, - "key.reusingastcontext" : false, - "key.typename" : "DiffableCollection", - "key.typeusr" : "$s10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD", - "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfcAEL0_AA18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_Gvp" - }, - { - "key.annotated_decl" : "let added: [DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> added<\/decl.name>: [DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 114, - "key.modulename" : "ListableUI", - "key.name" : "added", - "key.namelength" : 5, - "key.nameoffset" : 2456, - "key.offset" : 2452, - "key.parsed_declaration" : "let added = new.subtractDifference(from: old)", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 114, - "key.reusingastcontext" : false, - "key.typename" : "[DiffContainer]", - "key.typeusr" : "$sSay10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc5addedL_SayAA0D9Container33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGvp" - }, - { - "key.annotated_decl" : "let removed: [DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: [DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 47, - "key.line" : 115, - "key.modulename" : "ListableUI", - "key.name" : "removed", - "key.namelength" : 7, - "key.nameoffset" : 2510, - "key.offset" : 2506, - "key.parsed_declaration" : "let removed = old.subtractDifference(from: new)", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 115, - "key.reusingastcontext" : false, - "key.typename" : "[DiffContainer]", - "key.typeusr" : "$sSay10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc7removedL_SayAA0D9Container33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGvp" - }, - { - "key.annotated_decl" : "let pairs: [ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Pair<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> pairs<\/decl.name>: [ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Pair<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 86, - "key.line" : 143, - "key.modulename" : "ListableUI", - "key.name" : "pairs", - "key.namelength" : 5, - "key.nameoffset" : 3198, - "key.offset" : 3194, - "key.parsed_declaration" : "let pairs = Pair.pairs(withNew: new, old: old, movedHint: movedHint, updated: updated)", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 143, - "key.reusingastcontext" : false, - "key.typename" : "[ArrayDiff.Pair]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc5pairsL_SayAC4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGvp" - }, - { - "key.annotated_decl" : "let moveHinted: [ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Pair<\/Type>]<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moveHinted<\/decl.name>: [ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Pair<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 76, - "key.line" : 145, - "key.modulename" : "ListableUI", - "key.name" : "moveHinted", - "key.namelength" : 10, - "key.nameoffset" : 3303, - "key.offset" : 3298, - "key.parsed_declaration" : "let (moveHinted, moveNotHinted) = pairs.separate { pair in pair.moveHinted }", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 145, - "key.reusingastcontext" : false, - "key.typename" : "[ArrayDiff.Pair]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc10moveHintedL_SayAC4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGvp" - }, - { - "key.annotated_decl" : "let moveNotHinted: [ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Pair<\/Type>]<\/Declaration>", - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moveNotHinted<\/decl.name>: [ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Pair<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 76, - "key.line" : 145, - "key.modulename" : "ListableUI", - "key.name" : "moveNotHinted", - "key.namelength" : 13, - "key.nameoffset" : 3315, - "key.offset" : 3298, - "key.parsed_declaration" : "let (moveHinted, moveNotHinted) = pairs.separate { pair in pair.moveHinted }", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 145, - "key.reusingastcontext" : false, - "key.typename" : "[ArrayDiff.Pair]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc13moveNotHintedL_SayAC4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGvp" - }, - { - "key.annotated_decl" : "var sorted: [ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Pair<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sorted<\/decl.name>: [ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Pair<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 21, - "key.line" : 150, - "key.modulename" : "ListableUI", - "key.name" : "sorted", - "key.namelength" : 6, - "key.nameoffset" : 3596, - "key.offset" : 3592, - "key.parsed_declaration" : "var sorted = [Pair]()", - "key.parsed_scope.end" : 150, - "key.parsed_scope.start" : 150, - "key.reusingastcontext" : false, - "key.typename" : "[ArrayDiff.Pair]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc6sortedL_SayAC4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGvp" - } - ], - "key.typename" : " (ArrayDiff.Type) -> ([Element], [Element], (Element) -> Identifier, (Element, Element) -> Bool, (Element, Element) -> Bool) -> ArrayDiff", - "key.typeusr" : "$s3old3new18identifierProvider9movedHint7updated10ListableUI9ArrayDiffVyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcD", - "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func fastPastDiff(old: [Element<\/Type>], new: [Element<\/Type>], identifierProvider: (Element<\/Type>) -> Identifier<\/Type>, updated: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>) -> ([Updated<\/Type>], [NoChange<\/Type>])?<\/Declaration>", - "key.bodylength" : 1186, - "key.bodyoffset" : 6133, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> fastPastDiff<\/decl.name>(old<\/decl.var.parameter.argument_label>: [Element<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Element<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, identifierProvider<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ([Updated<\/ref.struct>]<\/tuple.element.type><\/tuple.element>, [NoChange<\/ref.struct>]<\/tuple.element.type><\/tuple.element>)<\/tuple>?<\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 1401, - "key.line" : 213, - "key.modulename" : "ListableUI", - "key.name" : "fastPastDiff(old:new:identifierProvider:updated:)", - "key.namelength" : 168, - "key.nameoffset" : 5931, - "key.offset" : 5919, - "key.parsed_declaration" : "static func fastPastDiff(\n old : [Element],\n new : [Element],\n identifierProvider : (Element) -> Identifier,\n updated : (Element, Element) -> Bool\n) -> ([Updated], [NoChange])?", - "key.parsed_scope.end" : 262, - "key.parsed_scope.start" : 213, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var updates: [ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Updated<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updates<\/decl.name>: [ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Updated<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 25, - "key.line" : 224, - "key.modulename" : "ListableUI", - "key.name" : "updates", - "key.namelength" : 7, - "key.nameoffset" : 6232, - "key.offset" : 6228, - "key.parsed_declaration" : "var updates = [Updated]()", - "key.parsed_scope.end" : 224, - "key.parsed_scope.start" : 224, - "key.reusingastcontext" : false, - "key.typename" : "[ArrayDiff.Updated]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV7UpdatedVyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV08fastPastD03old3new18identifierProvider7updatedSayAC7UpdatedVyxq__GG_SayAC8NoChangeVyxq__GGtSgSayxG_ARq_xXESbx_xtXEtFZ7updatesL_ALvp" - }, - { - "key.annotated_decl" : "var notChanged: [ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.NoChange<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> notChanged<\/decl.name>: [ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.NoChange<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 29, - "key.line" : 226, - "key.modulename" : "ListableUI", - "key.name" : "notChanged", - "key.namelength" : 10, - "key.nameoffset" : 6275, - "key.offset" : 6271, - "key.parsed_declaration" : "var notChanged = [NoChange]()", - "key.parsed_scope.end" : 226, - "key.parsed_scope.start" : 226, - "key.reusingastcontext" : false, - "key.typename" : "[ArrayDiff.NoChange]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV8NoChangeVyxq__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV08fastPastD03old3new18identifierProvider7updatedSayAC7UpdatedVyxq__GG_SayAC8NoChangeVyxq__GGtSgSayxG_ARq_xXESbx_xtXEtFZ10notChangedL_APvp" - } - ], - "key.typename" : " (ArrayDiff.Type) -> ([Element], [Element], (Element) -> Identifier, (Element, Element) -> Bool) -> ([ArrayDiff.Updated], [ArrayDiff.NoChange])?", - "key.typeusr" : "$s3old3new18identifierProvider7updatedSay10ListableUI9ArrayDiffV7UpdatedVyxq__GG_SayAG8NoChangeVyxq__GGtSgSayxG_AQq_xXESbx_xtXEtcD", - "key.usr" : "s:10ListableUI9ArrayDiffV08fastPastD03old3new18identifierProvider7updatedSayAC7UpdatedVyxq__GG_SayAC8NoChangeVyxq__GGtSgSayxG_ARq_xXESbx_xtXEtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private final class ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Pair<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 7338 - }, - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 7330 - } - ], - "key.bodylength" : 1800, - "key.bodyoffset" : 7360, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Pair<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1817, - "key.line" : 264, - "key.modulename" : "ListableUI", - "key.name" : "Pair", - "key.namelength" : 4, - "key.nameoffset" : 7350, - "key.offset" : 7344, - "key.parsed_declaration" : "private final class Pair", - "key.parsed_scope.end" : 318, - "key.parsed_scope.start" : 264, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let new: DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 266, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 7373, - "key.offset" : 7369, - "key.parsed_declaration" : "let new : DiffContainer", - "key.parsed_scope.end" : 266, - "key.parsed_scope.start" : 266, - "key.reusingastcontext" : false, - "key.typename" : "DiffContainer", - "key.typeusr" : "$s10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD", - "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC3newAA0D9ContainerAELLCyxq_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let old: DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 267, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 7426, - "key.offset" : 7422, - "key.parsed_declaration" : "let old : DiffContainer", - "key.parsed_scope.end" : 267, - "key.parsed_scope.start" : 267, - "key.reusingastcontext" : false, - "key.typename" : "DiffContainer", - "key.typeusr" : "$s10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD", - "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC3oldAA0D9ContainerAELLCyxq_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: UniqueIdentifier<\/Type><Element<\/Type>, Identifier<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: UniqueIdentifier<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 54, - "key.line" : 269, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 7488, - "key.offset" : 7484, - "key.parsed_declaration" : "let identifier : UniqueIdentifier", - "key.parsed_scope.end" : 269, - "key.parsed_scope.start" : 269, - "key.reusingastcontext" : false, - "key.typename" : "UniqueIdentifier", - "key.typeusr" : "$s10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_GD", - "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC10identifierAA16UniqueIdentifierAELLVyxq_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let distance: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> distance<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 271, - "key.modulename" : "ListableUI", - "key.name" : "distance", - "key.namelength" : 8, - "key.nameoffset" : 7560, - "key.offset" : 7556, - "key.parsed_declaration" : "let distance : Int", - "key.parsed_scope.end" : 271, - "key.parsed_scope.start" : 271, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC8distanceSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let moveHinted: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moveHinted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 273, - "key.modulename" : "ListableUI", - "key.name" : "moveHinted", - "key.namelength" : 10, - "key.nameoffset" : 7596, - "key.offset" : 7592, - "key.parsed_declaration" : "let moveHinted : Bool", - "key.parsed_scope.end" : 273, - "key.parsed_scope.start" : 273, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC10moveHintedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let updated: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> updated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 274, - "key.modulename" : "ListableUI", - "key.name" : "updated", - "key.namelength" : 7, - "key.nameoffset" : 7626, - "key.offset" : 7622, - "key.parsed_declaration" : "let updated : Bool", - "key.parsed_scope.end" : 274, - "key.parsed_scope.start" : 274, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC7updatedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(new: DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>>, old: DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>>, identifier: UniqueIdentifier<\/Type><Element<\/Type>, Identifier<\/Type>>, distance: Int<\/Type>, moveHinted: Bool<\/Type>, updated: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 256, - "key.bodyoffset" : 7945, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(new<\/decl.var.parameter.argument_label>: DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, old<\/decl.var.parameter.argument_label>: DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, identifier<\/decl.var.parameter.argument_label>: UniqueIdentifier<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, distance<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, moveHinted<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 544, - "key.line" : 276, - "key.modulename" : "ListableUI", - "key.name" : "init(new:old:identifier:distance:moveHinted:updated:)", - "key.namelength" : 277, - "key.nameoffset" : 7658, - "key.offset" : 7658, - "key.parsed_declaration" : "init(\n new : DiffContainer,\n old : DiffContainer,\n identifier : UniqueIdentifier,\n distance : Int,\n moveHinted : Bool,\n updated : Bool\n )", - "key.parsed_scope.end" : 294, - "key.parsed_scope.start" : 276, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ArrayDiff.Pair.Type) -> (DiffContainer, DiffContainer, UniqueIdentifier, Int, Bool, Bool) -> ArrayDiff.Pair", - "key.typeusr" : "$s3new3old10identifier8distance10moveHinted7updated10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GAG0K9ContainerAKLLCyxq_G_ApG16UniqueIdentifierAKLLVyxq_GSiS2btcD", - "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC3new3old10identifier8distance10moveHinted7updatedAFyxq__GAA0D9ContainerAELLCyxq_G_ApA16UniqueIdentifierAELLVyxq_GSiS2btcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func pairs(withNew new: DiffableCollection<\/Type><Element<\/Type>, Identifier<\/Type>>, old: DiffableCollection<\/Type><Element<\/Type>, Identifier<\/Type>>, movedHint: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>, updated: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>) -> [Pair<\/Type>]<\/Declaration>", - "key.bodylength" : 655, - "key.bodyoffset" : 8499, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> pairs<\/decl.name>(withNew<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: DiffableCollection<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, old<\/decl.var.parameter.argument_label>: DiffableCollection<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, movedHint<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Pair<\/ref.class>]<\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 935, - "key.line" : 296, - "key.modulename" : "ListableUI", - "key.name" : "pairs(withNew:old:movedHint:updated:)", - "key.namelength" : 247, - "key.nameoffset" : 8232, - "key.offset" : 8220, - "key.parsed_declaration" : "static func pairs(\n withNew new : DiffableCollection,\n old : DiffableCollection,\n movedHint : (Element, Element) -> Bool,\n updated : (Element, Element) -> Bool\n ) -> [Pair]", - "key.parsed_scope.end" : 317, - "key.parsed_scope.start" : 296, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ArrayDiff.Pair.Type) -> (DiffableCollection, DiffableCollection, (Element, Element) -> Bool, (Element, Element) -> Bool) -> [ArrayDiff.Pair]", - "key.typeusr" : "$s7withNew3old9movedHint7updatedSay10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGAE18DiffableCollectionAILLCyxq_G_AOSbx_xtXESbx_xtXEtcD", - "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC5pairs7withNew3old9movedHint7updatedSayAFyxq__GGAA18DiffableCollectionAELLCyxq_G_APSbx_xtXESbx_xtXEtFZ" - } - ], - "key.typename" : "ArrayDiff.Pair.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC" - } - ], - "key.typename" : "ArrayDiff.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffVyxq_GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV" - }, - { - "key.annotated_decl" : "struct ArrayDiff<Element, Identifier> where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 9224, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 9187 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 60, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ArrayDiff", - "key.namelength" : 9, - "key.nameoffset" : 9175, - "key.offset" : 9165, - "key.parsed_declaration" : "extension ArrayDiff : Equatable where Element : Equatable", - "key.parsed_scope.end" : 321, - "key.parsed_scope.start" : 321, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffVyxq_GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV" - }, - { - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Added<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 9292, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 9255 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Added<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 66, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "ArrayDiff.Added", - "key.namelength" : 15, - "key.nameoffset" : 9237, - "key.offset" : 9227, - "key.parsed_declaration" : "extension ArrayDiff.Added : Equatable where Element : Equatable", - "key.parsed_scope.end" : 323, - "key.parsed_scope.start" : 323, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.Added.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV5AddedVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV5AddedV" - }, - { - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Removed<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 9361, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 9324 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Removed<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 68, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "ArrayDiff.Removed", - "key.namelength" : 17, - "key.nameoffset" : 9304, - "key.offset" : 9294, - "key.parsed_declaration" : "extension ArrayDiff.Removed : Equatable where Element : Equatable", - "key.parsed_scope.end" : 324, - "key.parsed_scope.start" : 324, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.Removed.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV7RemovedVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV7RemovedV" - }, - { - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Moved<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 9428, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 9391 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Moved<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 66, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "ArrayDiff.Moved", - "key.namelength" : 15, - "key.nameoffset" : 9373, - "key.offset" : 9363, - "key.parsed_declaration" : "extension ArrayDiff.Moved : Equatable where Element : Equatable", - "key.parsed_scope.end" : 325, - "key.parsed_scope.start" : 325, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.Moved.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV5MovedVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV5MovedV" - }, - { - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Updated<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 9497, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 9460 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Updated<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 68, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "ArrayDiff.Updated", - "key.namelength" : 17, - "key.nameoffset" : 9440, - "key.offset" : 9430, - "key.parsed_declaration" : "extension ArrayDiff.Updated : Equatable where Element : Equatable", - "key.parsed_scope.end" : 326, - "key.parsed_scope.start" : 326, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.Updated.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV7UpdatedVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV" - }, - { - "key.annotated_decl" : "struct ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.NoChange<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 9567, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 9530 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.NoChange<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 69, - "key.line" : 61, - "key.modulename" : "ListableUI", - "key.name" : "ArrayDiff.NoChange", - "key.namelength" : 18, - "key.nameoffset" : 9509, - "key.offset" : 9499, - "key.parsed_declaration" : "extension ArrayDiff.NoChange : Equatable where Element : Equatable", - "key.parsed_scope.end" : 327, - "key.parsed_scope.start" : 327, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.NoChange.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV8NoChangeVyxq__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV" - }, - { - "key.annotated_decl" : "struct ArrayDiff<Element, Identifier> where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 2918, - "key.bodyoffset" : 9592, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2940, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ArrayDiff", - "key.namelength" : 9, - "key.nameoffset" : 9581, - "key.offset" : 9571, - "key.parsed_declaration" : "extension ArrayDiff", - "key.parsed_scope.end" : 433, - "key.parsed_scope.start" : 330, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func transform<Mapped>(old: [Mapped<\/Type>], removed: (Element<\/Type>, Mapped<\/Type>) -> (), added: (Element<\/Type>) -> Mapped<\/Type>, moved: (Element<\/Type>, Element<\/Type>, inout Mapped<\/Type>) -> (), updated: (Element<\/Type>, Element<\/Type>, inout Mapped<\/Type>) -> (), noChange: (Element<\/Type>, Element<\/Type>, inout Mapped<\/Type>) -> ()) -> [Mapped<\/Type>]<\/Declaration>", - "key.bodylength" : 2068, - "key.bodyoffset" : 9924, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> transform<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(old<\/decl.var.parameter.argument_label>: [Mapped<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, removed<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, added<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, moved<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, noChange<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2396, - "key.line" : 332, - "key.modulename" : "ListableUI", - "key.name" : "transform(old:removed:added:moved:updated:noChange:)", - "key.namelength" : 304, - "key.nameoffset" : 9602, - "key.offset" : 9597, - "key.parsed_declaration" : "func transform(\n old : [Mapped],\n removed : (Element, Mapped) -> (),\n added : (Element) -> Mapped,\n moved : (Element, Element, inout Mapped) -> (),\n updated : (Element, Element, inout Mapped) -> (),\n noChange : (Element, Element, inout Mapped) -> ()\n ) -> [Mapped]", - "key.parsed_scope.end" : 408, - "key.parsed_scope.start" : 332, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 332, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 9612, - "key.offset" : 9612, - "key.parsed_declaration" : "func transformvar removes: [ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Removal<\/Type><Mapped<\/Type>>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> removes<\/decl.name>: [ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Removal<\/ref.class><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 33, - "key.line" : 345, - "key.modulename" : "ListableUI", - "key.name" : "removes", - "key.namelength" : 7, - "key.nameoffset" : 10098, - "key.offset" : 10094, - "key.parsed_declaration" : "var removes = [Removal]()", - "key.parsed_scope.end" : 345, - "key.parsed_scope.start" : 345, - "key.reusingastcontext" : false, - "key.typename" : "[ArrayDiff.Removal]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV9transform3old7removed5added5moved7updated8noChangeSayqd__GAK_yx_qd__tXEqd__xXEyx_xqd__ztXEyx_xqd__ztXEyx_xqd__ztXEtlF7removesL_SayAC7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GGvp" - }, - { - "key.annotated_decl" : "var inserts: [ArrayDiff<\/Type><Element<\/Type>, Identifier<\/Type>>.Insertion<\/Type><Mapped<\/Type>>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> inserts<\/decl.name>: [ArrayDiff<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Insertion<\/ref.class><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 35, - "key.line" : 361, - "key.modulename" : "ListableUI", - "key.name" : "inserts", - "key.namelength" : 7, - "key.nameoffset" : 10629, - "key.offset" : 10625, - "key.parsed_declaration" : "var inserts = [Insertion]()", - "key.parsed_scope.end" : 361, - "key.parsed_scope.start" : 361, - "key.reusingastcontext" : false, - "key.typename" : "[ArrayDiff.Insertion]", - "key.typeusr" : "$sSay10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GGD", - "key.usr" : "s:10ListableUI9ArrayDiffV9transform3old7removed5added5moved7updated8noChangeSayqd__GAK_yx_qd__tXEqd__xXEyx_xqd__ztXEyx_xqd__ztXEyx_xqd__ztXEtlF7insertsL_SayAC9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GGvp" - }, - { - "key.annotated_decl" : "var new: [Mapped<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: [Mapped<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 13, - "key.line" : 379, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 11241, - "key.offset" : 11237, - "key.parsed_declaration" : "var new = old", - "key.parsed_scope.end" : 379, - "key.parsed_scope.start" : 379, - "key.reusingastcontext" : false, - "key.typename" : "[Mapped]", - "key.typeusr" : "$sSayqd__GD", - "key.usr" : "s:10ListableUI9ArrayDiffV9transform3old7removed5added5moved7updated8noChangeSayqd__GAK_yx_qd__tXEqd__xXEyx_xqd__ztXEyx_xqd__ztXEyx_xqd__ztXEtlF3newL_AKvp" - } - ], - "key.typename" : " (ArrayDiff) -> ([Mapped], (Element, Mapped) -> (), (Element) -> Mapped, (Element, Element, inout Mapped) -> (), (Element, Element, inout Mapped) -> (), (Element, Element, inout Mapped) -> ()) -> [Mapped]", - "key.typeusr" : "$s3old7removed5added5moved7updated8noChangeSayqd__GAG_yx_qd__tXEqd__xXEyx_xqd__ztXEyx_xqd__ztXEyx_xqd__ztXEtcluD", - "key.usr" : "s:10ListableUI9ArrayDiffV9transform3old7removed5added5moved7updated8noChangeSayqd__GAK_yx_qd__tXEqd__xXEyx_xqd__ztXEyx_xqd__ztXEyx_xqd__ztXEtlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "final private class Insertion<Mapped><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 12009 - }, - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 12003 - } - ], - "key.bodylength" : 201, - "key.bodyoffset" : 12046, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Insertion<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 231, - "key.line" : 410, - "key.modulename" : "ListableUI", - "key.name" : "Insertion", - "key.namelength" : 9, - "key.nameoffset" : 12023, - "key.offset" : 12017, - "key.parsed_declaration" : "final private class Insertion", - "key.parsed_scope.end" : 420, - "key.parsed_scope.start" : 410, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 35, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 410, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 12033, - "key.offset" : 12033, - "key.parsed_declaration" : "final private class Insertionlet mapped: Mapped<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 412, - "key.modulename" : "ListableUI", - "key.name" : "mapped", - "key.namelength" : 6, - "key.nameoffset" : 12059, - "key.offset" : 12055, - "key.parsed_declaration" : "let mapped : Mapped", - "key.parsed_scope.end" : 412, - "key.parsed_scope.start" : 412, - "key.reusingastcontext" : false, - "key.typename" : "Mapped", - "key.typeusr" : "$sqd__D", - "key.usr" : "s:10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLC6mappedqd__vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let insert: Added<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insert<\/decl.name>: Added<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 413, - "key.modulename" : "ListableUI", - "key.name" : "insert", - "key.namelength" : 6, - "key.nameoffset" : 12087, - "key.offset" : 12083, - "key.parsed_declaration" : "let insert : Added", - "key.parsed_scope.end" : 413, - "key.parsed_scope.start" : 413, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.Added", - "key.typeusr" : "$s10ListableUI9ArrayDiffV5AddedVyxq__GD", - "key.usr" : "s:10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLC6insertAC5AddedVyxq__Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(mapped: Mapped<\/Type>, insert: Added<\/Type>)<\/Declaration>", - "key.bodylength" : 75, - "key.bodyoffset" : 12166, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(mapped<\/decl.var.parameter.argument_label>: Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, insert<\/decl.var.parameter.argument_label>: Added<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 123, - "key.line" : 415, - "key.modulename" : "ListableUI", - "key.name" : "init(mapped:insert:)", - "key.namelength" : 37, - "key.nameoffset" : 12119, - "key.offset" : 12119, - "key.parsed_declaration" : "init(mapped : Mapped, insert : Added)", - "key.parsed_scope.end" : 419, - "key.parsed_scope.start" : 415, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ArrayDiff.Insertion.Type) -> (Mapped, ArrayDiff.Added) -> ArrayDiff.Insertion", - "key.typeusr" : "$s6mapped6insert10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__Gqd___AE5AddedVyxq__GtcD", - "key.usr" : "s:10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLC6mapped6insertAFyxq__qd__Gqd___AC5AddedVyxq__Gtcfc" - } - ], - "key.typename" : "ArrayDiff.Insertion.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "final private class Removal<Mapped><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 12264 - }, - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 12258 - } - ], - "key.bodylength" : 209, - "key.bodyoffset" : 12299, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Removal<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 237, - "key.line" : 422, - "key.modulename" : "ListableUI", - "key.name" : "Removal", - "key.namelength" : 7, - "key.nameoffset" : 12278, - "key.offset" : 12272, - "key.parsed_declaration" : "final private class Removal", - "key.parsed_scope.end" : 432, - "key.parsed_scope.start" : 422, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 33, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 422, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 12286, - "key.offset" : 12286, - "key.parsed_declaration" : "final private class Removallet mapped: Mapped<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 424, - "key.modulename" : "ListableUI", - "key.name" : "mapped", - "key.namelength" : 6, - "key.nameoffset" : 12312, - "key.offset" : 12308, - "key.parsed_declaration" : "let mapped : Mapped", - "key.parsed_scope.end" : 424, - "key.parsed_scope.start" : 424, - "key.reusingastcontext" : false, - "key.typename" : "Mapped", - "key.typeusr" : "$sqd__D", - "key.usr" : "s:10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLC6mappedqd__vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let removed: Removed<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: Removed<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 425, - "key.modulename" : "ListableUI", - "key.name" : "removed", - "key.namelength" : 7, - "key.nameoffset" : 12340, - "key.offset" : 12336, - "key.parsed_declaration" : "let removed : Removed", - "key.parsed_scope.end" : 425, - "key.parsed_scope.start" : 425, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff.Removed", - "key.typeusr" : "$s10ListableUI9ArrayDiffV7RemovedVyxq__GD", - "key.usr" : "s:10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLC7removedAC7RemovedVyxq__Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(mapped: Mapped<\/Type>, removed: Removed<\/Type>)<\/Declaration>", - "key.bodylength" : 77, - "key.bodyoffset" : 12425, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(mapped<\/decl.var.parameter.argument_label>: Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, removed<\/decl.var.parameter.argument_label>: Removed<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 128, - "key.line" : 427, - "key.modulename" : "ListableUI", - "key.name" : "init(mapped:removed:)", - "key.namelength" : 40, - "key.nameoffset" : 12375, - "key.offset" : 12375, - "key.parsed_declaration" : "init(mapped : Mapped, removed : Removed)", - "key.parsed_scope.end" : 431, - "key.parsed_scope.start" : 427, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ArrayDiff.Removal.Type) -> (Mapped, ArrayDiff.Removed) -> ArrayDiff.Removal", - "key.typeusr" : "$s6mapped7removed10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__Gqd___AE7RemovedVyxq__GtcD", - "key.usr" : "s:10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLC6mapped7removedAFyxq__qd__Gqd___AC7RemovedVyxq__Gtcfc" - } - ], - "key.typename" : "ArrayDiff.Removal.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLC" - } - ], - "key.typename" : "ArrayDiff.Type", - "key.typeusr" : "$s10ListableUI9ArrayDiffVyxq_GmD", - "key.usr" : "s:10ListableUI9ArrayDiffV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private class DiffContainer<Value, Identifier> where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 12514 - } - ], - "key.bodylength" : 1022, - "key.bodyoffset" : 12571, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DiffContainer<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1072, - "key.line" : 436, - "key.modulename" : "ListableUI", - "key.name" : "DiffContainer", - "key.namelength" : 13, - "key.nameoffset" : 12528, - "key.offset" : 12522, - "key.parsed_declaration" : "private class DiffContainer", - "key.parsed_scope.end" : 469, - "key.parsed_scope.start" : 436, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value<\/Declaration>", - "key.column" : 29, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 436, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 12542, - "key.offset" : 12542, - "key.parsed_declaration" : "private class DiffContainerIdentifier : Hashable<\/Type><\/Declaration>", - "key.column" : 36, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 12560 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 436, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 12549, - "key.offset" : 12549, - "key.parsed_declaration" : "private class DiffContainerlet identifier: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 438, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 12580, - "key.offset" : 12576, - "key.parsed_declaration" : "let identifier : UniqueIdentifier", - "key.parsed_scope.end" : 438, - "key.parsed_scope.start" : 438, - "key.reusingastcontext" : false, - "key.typename" : "UniqueIdentifier", - "key.typeusr" : "$s10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_GD", - "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC10identifierAA16UniqueIdentifierACLLVyxq_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let value: Value<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> value<\/decl.name>: Value<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 439, - "key.modulename" : "ListableUI", - "key.name" : "value", - "key.namelength" : 5, - "key.nameoffset" : 12637, - "key.offset" : 12633, - "key.parsed_declaration" : "let value : Value", - "key.parsed_scope.end" : 439, - "key.parsed_scope.start" : 439, - "key.reusingastcontext" : false, - "key.typename" : "Value", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC5valuexvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let index: Int<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 440, - "key.modulename" : "ListableUI", - "key.name" : "index", - "key.namelength" : 5, - "key.nameoffset" : 12659, - "key.offset" : 12655, - "key.parsed_declaration" : "let index : Int", - "key.parsed_scope.end" : 440, - "key.parsed_scope.start" : 440, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC5indexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(value: Value<\/Type>, index: Int<\/Type>, identifierProvider: (Value<\/Type>) -> Identifier<\/Type>, identifierFactory: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>>.Factory<\/Type>)<\/Declaration>", - "key.bodylength" : 160, - "key.bodyoffset" : 12869, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(value<\/decl.var.parameter.argument_label>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, index<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, identifierProvider<\/decl.var.parameter.argument_label>: (Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, identifierFactory<\/decl.var.parameter.argument_label>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Factory<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 350, - "key.line" : 442, - "key.modulename" : "ListableUI", - "key.name" : "init(value:index:identifierProvider:identifierFactory:)", - "key.namelength" : 183, - "key.nameoffset" : 12680, - "key.offset" : 12680, - "key.parsed_declaration" : "init(\n value : Value,\n index : Int,\n identifierProvider : (Value) -> Identifier,\n identifierFactory : UniqueIdentifier.Factory\n )", - "key.parsed_scope.end" : 453, - "key.parsed_scope.start" : 442, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DiffContainer.Type) -> (Value, Int, (Value) -> Identifier, UniqueIdentifier.Factory) -> DiffContainer", - "key.typeusr" : "$s5value5index18identifierProvider0C7Factory10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_Gx_Siq_xXEAE16UniqueIdentifierAGLLV0E0Cyxq__GtcD", - "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC5value5index18identifierProvider0O7FactoryADyxq_Gx_Siq_xXEAA16UniqueIdentifierACLLV0Q0Cyxq__Gtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func containers(with elements: [Value<\/Type>], identifierProvider: (Value<\/Type>) -> Identifier<\/Type>) -> [DiffContainer<\/Type>]<\/Declaration>", - "key.bodylength" : 435, - "key.bodyoffset" : 13156, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> containers<\/decl.name>(with<\/decl.var.parameter.argument_label> elements<\/decl.var.parameter.name>: [Value<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, identifierProvider<\/decl.var.parameter.argument_label>: (Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [DiffContainer<\/ref.class>]<\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 552, - "key.line" : 455, - "key.modulename" : "ListableUI", - "key.name" : "containers(with:identifierProvider:)", - "key.namelength" : 79, - "key.nameoffset" : 13052, - "key.offset" : 13040, - "key.parsed_declaration" : "static func containers(with elements : [Value], identifierProvider : (Value) -> Identifier) -> [DiffContainer]", - "key.parsed_scope.end" : 468, - "key.parsed_scope.start" : 455, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let identifierFactory: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>>.Factory<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifierFactory<\/decl.name>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Factory<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 69, - "key.line" : 457, - "key.modulename" : "ListableUI", - "key.name" : "identifierFactory", - "key.namelength" : 17, - "key.nameoffset" : 13169, - "key.offset" : 13165, - "key.parsed_declaration" : "let identifierFactory = UniqueIdentifier.Factory()", - "key.parsed_scope.end" : 457, - "key.parsed_scope.start" : 457, - "key.reusingastcontext" : false, - "key.typename" : "UniqueIdentifier.Factory", - "key.typeusr" : "$s10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV7FactoryCyxq__GD", - "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC10containers4with18identifierProviderSayADyxq_GGSayxG_q_xXEtFZ0O7FactoryL_AA16UniqueIdentifierACLLV0Q0Cyxq__Gvp" - } - ], - "key.typename" : " (DiffContainer.Type) -> ([Value], (Value) -> Identifier) -> [DiffContainer]", - "key.typeusr" : "$s4with18identifierProviderSay10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGSayxG_q_xXEtcD", - "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC10containers4with18identifierProviderSayADyxq_GGSayxG_q_xXEtFZ" - } - ], - "key.typename" : "DiffContainer.Type", - "key.typeusr" : "$s10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GmD", - "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private struct UniqueIdentifier<Type, Identifier> : Hashable<\/Type> where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 13597 - } - ], - "key.bodylength" : 1155, - "key.bodyoffset" : 13668, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 13658 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> UniqueIdentifier<\/decl.name><Type<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> : Hashable<\/ref.protocol> where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1219, - "key.line" : 472, - "key.modulename" : "ListableUI", - "key.name" : "UniqueIdentifier", - "key.namelength" : 16, - "key.nameoffset" : 13612, - "key.offset" : 13605, - "key.parsed_declaration" : "private struct UniqueIdentifier : Hashable", - "key.parsed_scope.end" : 519, - "key.parsed_scope.start" : 472, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Type<\/Declaration>", - "key.column" : 33, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Type<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 4, - "key.line" : 472, - "key.modulename" : "ListableUI", - "key.name" : "Type", - "key.namelength" : 4, - "key.nameoffset" : 13629, - "key.offset" : 13629, - "key.parsed_declaration" : "private struct UniqueIdentifierIdentifier : Hashable<\/Type><\/Declaration>", - "key.column" : 39, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 13646 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 472, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 13635, - "key.offset" : 13635, - "key.parsed_declaration" : "private struct UniqueIdentifierlet base: Identifier<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> base<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 474, - "key.modulename" : "ListableUI", - "key.name" : "base", - "key.namelength" : 4, - "key.nameoffset" : 13677, - "key.offset" : 13673, - "key.parsed_declaration" : "let base : Identifier", - "key.parsed_scope.end" : 474, - "key.parsed_scope.start" : 474, - "key.reusingastcontext" : false, - "key.typename" : "Identifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV4baseq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let modifier: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 13704 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> modifier<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 476, - "key.modulename" : "ListableUI", - "key.name" : "modifier", - "key.namelength" : 8, - "key.nameoffset" : 13716, - "key.offset" : 13712, - "key.parsed_declaration" : "private let modifier : Int", - "key.parsed_scope.end" : 476, - "key.parsed_scope.start" : 476, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV8modifierSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let hash: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 13740 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> hash<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 14, - "key.line" : 478, - "key.modulename" : "ListableUI", - "key.name" : "hash", - "key.namelength" : 4, - "key.nameoffset" : 13752, - "key.offset" : 13748, - "key.parsed_declaration" : "private let hash : Int", - "key.parsed_scope.end" : 478, - "key.parsed_scope.start" : 478, - "key.related_decls" : [ - { - "key.annotated_decl" : "hash(into:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV4hashSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(base: Identifier<\/Type>, modifier: Int<\/Type>)<\/Declaration>", - "key.bodylength" : 212, - "key.bodyoffset" : 13817, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(base<\/decl.var.parameter.argument_label>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, modifier<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 258, - "key.line" : 480, - "key.modulename" : "ListableUI", - "key.name" : "init(base:modifier:)", - "key.namelength" : 39, - "key.nameoffset" : 13772, - "key.offset" : 13772, - "key.parsed_declaration" : "init(base : Identifier, modifier : Int)", - "key.parsed_scope.end" : 489, - "key.parsed_scope.start" : 480, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var hasher: Hasher<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> hasher<\/decl.name>: Hasher<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 21, - "key.line" : 485, - "key.modulename" : "ListableUI", - "key.name" : "hasher", - "key.namelength" : 6, - "key.nameoffset" : 13897, - "key.offset" : 13893, - "key.parsed_declaration" : "var hasher = Hasher()", - "key.parsed_scope.end" : 485, - "key.parsed_scope.start" : 485, - "key.reusingastcontext" : false, - "key.typename" : "Hasher", - "key.typeusr" : "$ss6HasherVD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV4base8modifierADyxq_Gq__Sitcfc6hasherL_s6HasherVvp" - } - ], - "key.typename" : " (UniqueIdentifier.Type) -> (Identifier, Int) -> UniqueIdentifier", - "key.typeusr" : "$s4base8modifier10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_Gq__SitcD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV4base8modifierADyxq_Gq__Sitcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func == (lhs: UniqueIdentifier<\/Type>, rhs: UniqueIdentifier<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 97, - "key.bodyoffset" : 14115, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns a Boolean value indicating whether two values are equal.\n\nEquality is the inverse of inequality. For any values `a` and `b`,\n`a == b` implies that `a != b` is `false`.\n\n- Parameters:\n - lhs: A value to compare.\n - rhs: Another value to compare.", - "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "Equality is the inverse of inequality. For any values `a` and `b`, `a == b` implies that `a != b` is `false`." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "==(_:_:)<\/Name>s:SQ2eeoiySbx_xtFZ<\/USR>static func == (lhs: Self, rhs: Self) -> Bool<\/Declaration>Returns a Boolean value indicating whether two values are equal.<\/Para><\/Abstract>lhs<\/Name>in<\/Direction>A value to compare.<\/Para><\/Discussion><\/Parameter>rhs<\/Name>in<\/Direction>Another value to compare.<\/Para><\/Discussion><\/Parameter><\/Parameters>Equality is the inverse of inequality. For any values a<\/codeVoice> and b<\/codeVoice>, a == b<\/codeVoice> implies that a != b<\/codeVoice> is false<\/codeVoice>.<\/Para>This documentation comment was inherited from Equatable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "==(_:_:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A value to compare." - } - ], - "name" : "lhs" - }, - { - "discussion" : [ - { - "Para" : "Another value to compare." - } - ], - "name" : "rhs" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: UniqueIdentifier<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: UniqueIdentifier<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 173, - "key.line" : 491, - "key.modulename" : "ListableUI", - "key.name" : "==(_:_:)", - "key.namelength" : 49, - "key.nameoffset" : 14052, - "key.offset" : 14040, - "key.overrides" : [ - { - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.parsed_declaration" : "static func == (lhs: UniqueIdentifier, rhs: UniqueIdentifier) -> Bool", - "key.parsed_scope.end" : 494, - "key.parsed_scope.start" : 491, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (UniqueIdentifier.Type) -> (UniqueIdentifier, UniqueIdentifier) -> Bool", - "key.typeusr" : "$sySb10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_G_AEtcD", - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func hash(into hasher: inout Hasher<\/Type>)<\/Declaration>", - "key.bodylength" : 39, - "key.bodyoffset" : 14265, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Hashes the essential components of this value by feeding them into the\ngiven hasher.\n\nImplement this method to conform to the `Hashable` protocol. The\ncomponents used for hashing must be the same as the components compared\nin your type's `==` operator implementation. Call `hasher.combine(_:)`\nwith each of these components.\n\n- Important: In your implementation of `hash(into:)`,\n don't call `finalize()` on the `hasher` instance provided,\n or replace it with a different instance.\n Doing so may become a compile-time error in the future.\n\n- Parameter hasher: The hasher to use when combining the components\n of this instance.", - "key.doc.declaration" : "func hash(into hasher: inout Hasher)", - "key.doc.discussion" : [ - { - "Para" : "Implement this method to conform to the `Hashable` protocol. The components used for hashing must be the same as the components compared in your type’s `==` operator implementation. Call `hasher.combine(_:)` with each of these components." - }, - { - "Important" : "" - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "hash(into:)<\/Name>s:SH4hash4intoys6HasherVz_tF<\/USR>func hash(into hasher: inout Hasher)<\/Declaration>Hashes the essential components of this value by feeding them into the given hasher.<\/Para><\/Abstract>hasher<\/Name>in<\/Direction>The hasher to use when combining the components of this instance.<\/Para><\/Discussion><\/Parameter><\/Parameters>Implement this method to conform to the Hashable<\/codeVoice> protocol. The components used for hashing must be the same as the components compared in your type’s ==<\/codeVoice> operator implementation. Call hasher.combine(_:)<\/codeVoice> with each of these components.<\/Para>In your implementation of hash(into:)<\/codeVoice>, don’t call finalize()<\/codeVoice> on the hasher<\/codeVoice> instance provided, or replace it with a different instance. Doing so may become a compile-time error in the future.<\/Para><\/Important>This documentation comment was inherited from Hashable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "hash(into:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The hasher to use when combining the components of this instance." - } - ], - "name" : "hasher" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 82, - "key.line" : 496, - "key.modulename" : "ListableUI", - "key.name" : "hash(into:)", - "key.namelength" : 31, - "key.nameoffset" : 14228, - "key.offset" : 14223, - "key.overrides" : [ - { - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - } - ], - "key.parsed_declaration" : "func hash(into hasher: inout Hasher)", - "key.parsed_scope.end" : 499, - "key.parsed_scope.start" : 496, - "key.related_decls" : [ - { - "key.annotated_decl" : "hash<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (UniqueIdentifier) -> (inout Hasher) -> ()", - "key.typeusr" : "$s4intoys6HasherVz_tcD", - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class UniqueIdentifier<\/Type><Type<\/Type>, Identifier<\/Type>>.Factory<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 14315 - } - ], - "key.bodylength" : 481, - "key.bodyoffset" : 14340, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> UniqueIdentifier<\/ref.struct><Type<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Factory<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 501, - "key.line" : 501, - "key.modulename" : "ListableUI", - "key.name" : "Factory", - "key.namelength" : 7, - "key.nameoffset" : 14327, - "key.offset" : 14321, - "key.parsed_declaration" : "final class Factory", - "key.parsed_scope.end" : 518, - "key.parsed_scope.start" : 501, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var counts: [Identifier<\/Type> : Int<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 14349 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> counts<\/decl.name>: [Identifier<\/ref.generic_type_param> : Int<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 503, - "key.modulename" : "ListableUI", - "key.name" : "counts", - "key.namelength" : 6, - "key.nameoffset" : 14361, - "key.offset" : 14357, - "key.parsed_declaration" : "private var counts : [Identifier:Int] = [:]", - "key.parsed_scope.end" : 503, - "key.parsed_scope.start" : 503, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[Identifier : Int]", - "key.typeusr" : "$sSDyq_SiGD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV7FactoryC6countsSDyq_SiGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func reserveCapacity(_ minimumCapacity: Int<\/Type>)<\/Declaration>", - "key.bodylength" : 66, - "key.bodyoffset" : 14465, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> reserveCapacity<\/decl.name>(_<\/decl.var.parameter.argument_label> minimumCapacity<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 122, - "key.line" : 505, - "key.modulename" : "ListableUI", - "key.name" : "reserveCapacity(_:)", - "key.namelength" : 40, - "key.nameoffset" : 14415, - "key.offset" : 14410, - "key.parsed_declaration" : "func reserveCapacity(_ minimumCapacity : Int)", - "key.parsed_scope.end" : 508, - "key.parsed_scope.start" : 505, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (UniqueIdentifier.Factory) -> (Int) -> ()", - "key.typeusr" : "$syySicD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV7FactoryC15reserveCapacityyySiF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func identifier(for base: Identifier<\/Type>) -> UniqueIdentifier<\/Type><\/Declaration>", - "key.bodylength" : 197, - "key.bodyoffset" : 14618, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> identifier<\/decl.name>(for<\/decl.var.parameter.argument_label> base<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> UniqueIdentifier<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 266, - "key.line" : 510, - "key.modulename" : "ListableUI", - "key.name" : "identifier(for:)", - "key.namelength" : 33, - "key.nameoffset" : 14555, - "key.offset" : 14550, - "key.parsed_declaration" : "func identifier(for base : Identifier) -> UniqueIdentifier", - "key.parsed_scope.end" : 517, - "key.parsed_scope.start" : 510, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let count: Int<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 40, - "key.line" : 512, - "key.modulename" : "ListableUI", - "key.name" : "count", - "key.namelength" : 5, - "key.nameoffset" : 14635, - "key.offset" : 14631, - "key.parsed_declaration" : "let count = self.counts[base, default:1]", - "key.parsed_scope.end" : 512, - "key.parsed_scope.start" : 512, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV7FactoryC10identifier3forADyxq_Gq__tF5countL_Sivp" - } - ], - "key.typename" : " (UniqueIdentifier.Factory) -> (Identifier) -> UniqueIdentifier", - "key.typeusr" : "$s3for10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_Gq__tcD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV7FactoryC10identifier3forADyxq_Gq__tF" - } - ], - "key.typename" : "UniqueIdentifier.Factory.Type", - "key.typeusr" : "$s10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV7FactoryCyxq__GmD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV7FactoryC" - } - ], - "key.typename" : "UniqueIdentifier.Type", - "key.typeusr" : "$s10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_GmD", - "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private final class DiffableCollection<Value, Identifier> where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 14834 - }, - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 14826 - } - ], - "key.bodylength" : 3166, - "key.bodyoffset" : 14894, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DiffableCollection<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 3221, - "key.line" : 521, - "key.modulename" : "ListableUI", - "key.name" : "DiffableCollection", - "key.namelength" : 18, - "key.nameoffset" : 14846, - "key.offset" : 14840, - "key.parsed_declaration" : "private final class DiffableCollection", - "key.parsed_scope.end" : 628, - "key.parsed_scope.start" : 521, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value<\/Declaration>", - "key.column" : 40, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 521, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 14865, - "key.offset" : 14865, - "key.parsed_declaration" : "private final class DiffableCollectionIdentifier : Hashable<\/Type><\/Declaration>", - "key.column" : 47, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 14883 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 521, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 14872, - "key.offset" : 14872, - "key.parsed_declaration" : "private final class DiffableCollectionprivate(set) var containers: [DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 14899 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> containers<\/decl.name>: [DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 523, - "key.modulename" : "ListableUI", - "key.name" : "containers", - "key.namelength" : 10, - "key.nameoffset" : 14916, - "key.offset" : 14912, - "key.parsed_declaration" : "private(set) var containers : [DiffContainer]", - "key.parsed_scope.end" : 523, - "key.parsed_scope.start" : 523, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[DiffContainer]", - "key.typeusr" : "$sSay10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC10containersSayAA13DiffContainerACLLCyxq_GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var containersByIdentifier: [UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>> : DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 14968 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> containersByIdentifier<\/decl.name>: [UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>> : DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 99, - "key.line" : 524, - "key.modulename" : "ListableUI", - "key.name" : "containersByIdentifier", - "key.namelength" : 22, - "key.nameoffset" : 14980, - "key.offset" : 14976, - "key.parsed_declaration" : "private var containersByIdentifier : [UniqueIdentifier:DiffContainer]", - "key.parsed_scope.end" : 524, - "key.parsed_scope.start" : 524, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[UniqueIdentifier : DiffContainer]", - "key.typeusr" : "$sSDy10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_GAA13DiffContainerACLLCyxq_GGD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC22containersByIdentifierSDyAA06UniqueO0ACLLVyxq_GAA13DiffContainerACLLCyxq_GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(elements: [Value<\/Type>], _ identifierProvider: (Value<\/Type>) -> Identifier<\/Type>)<\/Declaration>", - "key.bodylength" : 353, - "key.bodyoffset" : 15161, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(elements<\/decl.var.parameter.argument_label>: [Value<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> identifierProvider<\/decl.var.parameter.name>: (Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 430, - "key.line" : 526, - "key.modulename" : "ListableUI", - "key.name" : "init(elements:_:)", - "key.namelength" : 70, - "key.nameoffset" : 15085, - "key.offset" : 15085, - "key.parsed_declaration" : "init(elements : [Value], _ identifierProvider : (Value) -> Identifier)", - "key.parsed_scope.end" : 535, - "key.parsed_scope.start" : 526, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DiffableCollection.Type) -> ([Value], (Value) -> Identifier) -> DiffableCollection", - "key.typeusr" : "$s8elements_10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GSayxG_q_xXEtcD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC8elements_ADyxq_GSayxG_q_xXEtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 29, - "key.name" : "MARK: Querying The Collection", - "key.offset" : 15528 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func index(of identifier: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>>) -> Int<\/Type><\/Declaration>", - "key.bodylength" : 115, - "key.bodyoffset" : 15643, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> index<\/decl.name>(of<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 192, - "key.line" : 539, - "key.modulename" : "ListableUI", - "key.name" : "index(of:)", - "key.namelength" : 58, - "key.nameoffset" : 15572, - "key.offset" : 15567, - "key.parsed_declaration" : "func index(of identifier : UniqueIdentifier) -> Int", - "key.parsed_scope.end" : 544, - "key.parsed_scope.start" : 539, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DiffableCollection) -> (UniqueIdentifier) -> Int", - "key.typeusr" : "$s2ofSi10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_G_tcD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC5index2ofSiAA16UniqueIdentifierACLLVyxq_G_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func contains(identifier: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 67, - "key.bodyoffset" : 15846, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> contains<\/decl.name>(identifier<\/decl.var.parameter.argument_label>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 145, - "key.line" : 546, - "key.modulename" : "ListableUI", - "key.name" : "contains(identifier:)", - "key.namelength" : 58, - "key.nameoffset" : 15774, - "key.offset" : 15769, - "key.parsed_declaration" : "func contains(identifier : UniqueIdentifier) -> Bool", - "key.parsed_scope.end" : 549, - "key.parsed_scope.start" : 546, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DiffableCollection) -> (UniqueIdentifier) -> Bool", - "key.typeusr" : "$s10identifierSb10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_G_tcD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC8contains10identifierSbAA16UniqueIdentifierACLLVyxq_G_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func container(for identifier: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>>) -> DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>><\/Declaration>", - "key.bodylength" : 61, - "key.bodyoffset" : 16034, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> container<\/decl.name>(for<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 172, - "key.line" : 551, - "key.modulename" : "ListableUI", - "key.name" : "container(for:)", - "key.namelength" : 63, - "key.nameoffset" : 15929, - "key.offset" : 15924, - "key.parsed_declaration" : "func container(for identifier : UniqueIdentifier) -> DiffContainer", - "key.parsed_scope.end" : 554, - "key.parsed_scope.start" : 551, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DiffableCollection) -> (UniqueIdentifier) -> DiffContainer", - "key.typeusr" : "$s3for10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GAB16UniqueIdentifierADLLVyxq_G_tcD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC9container3forAA13DiffContainerACLLCyxq_GAA16UniqueIdentifierACLLVyxq_G_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func difference(from other: DiffableCollection<\/Type>) -> [DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>>]<\/Declaration>", - "key.bodylength" : 236, - "key.bodyoffset" : 16198, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> difference<\/decl.name>(from<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: DiffableCollection<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> [DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 329, - "key.line" : 556, - "key.modulename" : "ListableUI", - "key.name" : "difference(from:)", - "key.namelength" : 43, - "key.nameoffset" : 16111, - "key.offset" : 16106, - "key.parsed_declaration" : "func difference(from other : DiffableCollection) -> [DiffContainer]", - "key.parsed_scope.end" : 565, - "key.parsed_scope.start" : 556, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DiffableCollection) -> (DiffableCollection) -> [DiffContainer]", - "key.typeusr" : "$s4fromSay10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGAB18DiffableCollectionADLLCyxq_G_tcD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC10difference4fromSayAA13DiffContainerACLLCyxq_GGADyxq_G_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func subtractDifference(from other: DiffableCollection<\/Type>) -> [DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>>]<\/Declaration>", - "key.bodylength" : 147, - "key.bodyoffset" : 16545, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> subtractDifference<\/decl.name>(from<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: DiffableCollection<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> [DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 248, - "key.line" : 567, - "key.modulename" : "ListableUI", - "key.name" : "subtractDifference(from:)", - "key.namelength" : 51, - "key.nameoffset" : 16450, - "key.offset" : 16445, - "key.parsed_declaration" : "func subtractDifference(from other : DiffableCollection) -> [DiffContainer]", - "key.parsed_scope.end" : 574, - "key.parsed_scope.start" : 567, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let difference: [DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> difference<\/decl.name>: [DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 569, - "key.modulename" : "ListableUI", - "key.name" : "difference", - "key.namelength" : 10, - "key.nameoffset" : 16558, - "key.offset" : 16554, - "key.parsed_declaration" : "let difference = self.difference(from: other)", - "key.parsed_scope.end" : 569, - "key.parsed_scope.start" : 569, - "key.reusingastcontext" : false, - "key.typename" : "[DiffContainer]", - "key.typeusr" : "$sSay10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC18subtractDifference4fromSayAA13DiffContainerACLLCyxq_GGADyxq_G_tF10differenceL_AJvp" - } - ], - "key.typename" : " (DiffableCollection) -> (DiffableCollection) -> [DiffContainer]", - "key.typeusr" : "$s4fromSay10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGAB18DiffableCollectionADLLCyxq_G_tcD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC18subtractDifference4fromSayAA13DiffContainerACLLCyxq_GGADyxq_G_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 27, - "key.name" : "MARK: Core Mutating Methods", - "key.offset" : 16706 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func move(from: Int<\/Type>, to: Int<\/Type>)<\/Declaration>", - "key.bodylength" : 255, - "key.bodyoffset" : 16779, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> move<\/decl.name>(from<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 292, - "key.line" : 578, - "key.modulename" : "ListableUI", - "key.name" : "move(from:to:)", - "key.namelength" : 25, - "key.nameoffset" : 16748, - "key.offset" : 16743, - "key.parsed_declaration" : "func move(from : Int, to: Int)", - "key.parsed_scope.end" : 590, - "key.parsed_scope.start" : 578, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let value: DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> value<\/decl.name>: DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 33, - "key.line" : 584, - "key.modulename" : "ListableUI", - "key.name" : "value", - "key.namelength" : 5, - "key.nameoffset" : 16862, - "key.offset" : 16858, - "key.parsed_declaration" : "let value = self.containers[from]", - "key.parsed_scope.end" : 584, - "key.parsed_scope.start" : 584, - "key.reusingastcontext" : false, - "key.typename" : "DiffContainer", - "key.typeusr" : "$s10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC4move4from2toySi_SitF5valueL_AA13DiffContainerACLLCyxq_Gvp" - } - ], - "key.typename" : " (DiffableCollection) -> (Int, Int) -> ()", - "key.typeusr" : "$s4from2toySi_SitcD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC4move4from2toySi_SitF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func remove(containers: [DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>>])<\/Declaration>", - "key.bodylength" : 381, - "key.bodyoffset" : 17111, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> remove<\/decl.name>(containers<\/decl.var.parameter.argument_label>: [DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 448, - "key.line" : 592, - "key.modulename" : "ListableUI", - "key.name" : "remove(containers:)", - "key.namelength" : 55, - "key.nameoffset" : 17050, - "key.offset" : 17045, - "key.parsed_declaration" : "func remove(containers : [DiffContainer])", - "key.parsed_scope.end" : 607, - "key.parsed_scope.start" : 592, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let indexes: [Int<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexes<\/decl.name>: [Int<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 114, - "key.line" : 598, - "key.modulename" : "ListableUI", - "key.name" : "indexes", - "key.namelength" : 7, - "key.nameoffset" : 17247, - "key.offset" : 17243, - "key.parsed_declaration" : "let indexes = containers.map({\n return self.index(of: $0.identifier)\n}).sorted(by: { $0 > $1 })", - "key.parsed_scope.end" : 598, - "key.parsed_scope.start" : 598, - "key.reusingastcontext" : false, - "key.typename" : "[Int]", - "key.typeusr" : "$sSaySiGD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC6remove10containersySayAA13DiffContainerACLLCyxq_GG_tF7indexesL_SaySiGvp" - } - ], - "key.typename" : " (DiffableCollection) -> ([DiffContainer]) -> ()", - "key.typeusr" : "$s10containersySay10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GG_tcD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC6remove10containersySayAA13DiffContainerACLLCyxq_GG_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 21, - "key.name" : "MARK: Private Methods", - "key.offset" : 17506 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var uniqueIdentifierIndexes: [UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>> : Int<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 17537 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> uniqueIdentifierIndexes<\/decl.name>: [UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>> : Int<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 77, - "key.line" : 611, - "key.modulename" : "ListableUI", - "key.name" : "uniqueIdentifierIndexes", - "key.namelength" : 23, - "key.nameoffset" : 17549, - "key.offset" : 17545, - "key.parsed_declaration" : "private var uniqueIdentifierIndexes : [UniqueIdentifier:Int] = [:]", - "key.parsed_scope.end" : 611, - "key.parsed_scope.start" : 611, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[UniqueIdentifier : Int]", - "key.typeusr" : "$sSDy10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_GSiGD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC23uniqueIdentifierIndexesSDyAA06UniqueN0ACLLVyxq_GSiGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func resetIndexLookups()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 17632 - } - ], - "key.bodylength" : 75, - "key.bodyoffset" : 17670, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> resetIndexLookups<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 106, - "key.line" : 613, - "key.modulename" : "ListableUI", - "key.name" : "resetIndexLookups()", - "key.namelength" : 19, - "key.nameoffset" : 17645, - "key.offset" : 17640, - "key.parsed_declaration" : "private func resetIndexLookups()", - "key.parsed_scope.end" : 616, - "key.parsed_scope.start" : 613, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DiffableCollection) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC17resetIndexLookupsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func generateIndexLookupsIfNeeded()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 17756 - } - ], - "key.bodylength" : 253, - "key.bodyoffset" : 17805, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> generateIndexLookupsIfNeeded<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 295, - "key.line" : 618, - "key.modulename" : "ListableUI", - "key.name" : "generateIndexLookupsIfNeeded()", - "key.namelength" : 30, - "key.nameoffset" : 17769, - "key.offset" : 17764, - "key.parsed_declaration" : "private func generateIndexLookupsIfNeeded()", - "key.parsed_scope.end" : 627, - "key.parsed_scope.start" : 618, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DiffableCollection) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC28generateIndexLookupsIfNeededyyF" - } - ], - "key.typename" : "DiffableCollection.Type", - "key.typeusr" : "$s10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GmD", - "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@frozen @_eagerMove struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 18063 - } - ], - "key.bodylength" : 378, - "key.bodyoffset" : 18088, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An ordered, random-access collection.\n\nArrays are one of the most commonly used data types in an app. You use\narrays to organize your app's data. Specifically, you use the `Array` type\nto hold elements of a single type, the array's `Element` type. An array\ncan store any kind of elements---from integers to strings to classes.\n\nSwift makes it easy to create arrays in your code using an array literal:\nsimply surround a comma-separated list of values with square brackets.\nWithout any other information, Swift creates an array that includes the\nspecified values, automatically inferring the array's `Element` type. For\nexample:\n\n \/\/ An array of 'Int' elements\n let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]\n\n \/\/ An array of 'String' elements\n let streets = [\"Albemarle\", \"Brandywine\", \"Chesapeake\"]\n\nYou can create an empty array by specifying the `Element` type of your\narray in the declaration. For example:\n\n \/\/ Shortened forms are preferred\n var emptyDoubles: [Double] = []\n\n \/\/ The full type name is also allowed\n var emptyFloats: Array = Array()\n\nIf you need an array that is preinitialized with a fixed number of default\nvalues, use the `Array(repeating:count:)` initializer.\n\n var digitCounts = Array(repeating: 0, count: 10)\n print(digitCounts)\n \/\/ Prints \"[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\"\n\nAccessing Array Values\n======================\n\nWhen you need to perform an operation on all of an array's elements, use a\n`for`-`in` loop to iterate through the array's contents.\n\n for street in streets {\n print(\"I don't live on \\(street).\")\n }\n \/\/ Prints \"I don't live on Albemarle.\"\n \/\/ Prints \"I don't live on Brandywine.\"\n \/\/ Prints \"I don't live on Chesapeake.\"\n\nUse the `isEmpty` property to check quickly whether an array has any\nelements, or use the `count` property to find the number of elements in\nthe array.\n\n if oddNumbers.isEmpty {\n print(\"I don't know any odd numbers.\")\n } else {\n print(\"I know \\(oddNumbers.count) odd numbers.\")\n }\n \/\/ Prints \"I know 8 odd numbers.\"\n\nUse the `first` and `last` properties for safe access to the value of the\narray's first and last elements. If the array is empty, these properties\nare `nil`.\n\n if let firstElement = oddNumbers.first, let lastElement = oddNumbers.last {\n print(firstElement, lastElement, separator: \", \")\n }\n \/\/ Prints \"1, 15\"\n\n print(emptyDoubles.first, emptyDoubles.last, separator: \", \")\n \/\/ Prints \"nil, nil\"\n\nYou can access individual array elements through a subscript. The first\nelement of a nonempty array is always at index zero. You can subscript an\narray with any integer from zero up to, but not including, the count of\nthe array. Using a negative number or an index equal to or greater than\n`count` triggers a runtime error. For example:\n\n print(oddNumbers[0], oddNumbers[3], separator: \", \")\n \/\/ Prints \"1, 7\"\n\n print(emptyDoubles[0])\n \/\/ Triggers runtime error: Index out of range\n\nAdding and Removing Elements\n============================\n\nSuppose you need to store a list of the names of students that are signed\nup for a class you're teaching. During the registration period, you need\nto add and remove names as students add and drop the class.\n\n var students = [\"Ben\", \"Ivy\", \"Jordell\"]\n\nTo add single elements to the end of an array, use the `append(_:)` method.\nAdd multiple elements at the same time by passing another array or a\nsequence of any kind to the `append(contentsOf:)` method.\n\n students.append(\"Maxime\")\n students.append(contentsOf: [\"Shakia\", \"William\"])\n \/\/ [\"Ben\", \"Ivy\", \"Jordell\", \"Maxime\", \"Shakia\", \"William\"]\n\nYou can add new elements in the middle of an array by using the\n`insert(_:at:)` method for single elements and by using\n`insert(contentsOf:at:)` to insert multiple elements from another\ncollection or array literal. The elements at that index and later indices\nare shifted back to make room.\n\n students.insert(\"Liam\", at: 3)\n \/\/ [\"Ben\", \"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\", \"William\"]\n\nTo remove elements from an array, use the `remove(at:)`,\n`removeSubrange(_:)`, and `removeLast()` methods.\n\n \/\/ Ben's family is moving to another state\n students.remove(at: 0)\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\", \"William\"]\n\n \/\/ William is signing up for a different class\n students.removeLast()\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\"]\n\nYou can replace an existing element with a new value by assigning the new\nvalue to the subscript.\n\n if let i = students.firstIndex(of: \"Maxime\") {\n students[i] = \"Max\"\n }\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Max\", \"Shakia\"]\n\nGrowing the Size of an Array\n----------------------------\n\nEvery array reserves a specific amount of memory to hold its contents. When\nyou add elements to an array and that array begins to exceed its reserved\ncapacity, the array allocates a larger region of memory and copies its\nelements into the new storage. The new storage is a multiple of the old\nstorage's size. This exponential growth strategy means that appending an\nelement happens in constant time, averaging the performance of many append\noperations. Append operations that trigger reallocation have a performance\ncost, but they occur less and less often as the array grows larger.\n\nIf you know approximately how many elements you will need to store, use the\n`reserveCapacity(_:)` method before appending to the array to avoid\nintermediate reallocations. Use the `capacity` and `count` properties to\ndetermine how many more elements the array can store without allocating\nlarger storage.\n\nFor arrays of most `Element` types, this storage is a contiguous block of\nmemory. For arrays with an `Element` type that is a class or `@objc`\nprotocol type, this storage can be a contiguous block of memory or an\ninstance of `NSArray`. Because any arbitrary subclass of `NSArray` can\nbecome an `Array`, there are no guarantees about representation or\nefficiency in this case.\n\nModifying Copies of Arrays\n==========================\n\nEach array has an independent value that includes the values of all of its\nelements. For simple types such as integers and other structures, this\nmeans that when you change a value in one array, the value of that element\ndoes not change in any copies of the array. For example:\n\n var numbers = [1, 2, 3, 4, 5]\n var numbersCopy = numbers\n numbers[0] = 100\n print(numbers)\n \/\/ Prints \"[100, 2, 3, 4, 5]\"\n print(numbersCopy)\n \/\/ Prints \"[1, 2, 3, 4, 5]\"\n\nIf the elements in an array are instances of a class, the semantics are the\nsame, though they might appear different at first. In this case, the\nvalues stored in the array are references to objects that live outside the\narray. If you change a reference to an object in one array, only that\narray has a reference to the new object. However, if two arrays contain\nreferences to the same object, you can observe changes to that object's\nproperties from both arrays. For example:\n\n \/\/ An integer type with reference semantics\n class IntegerReference {\n var value = 10\n }\n var firstIntegers = [IntegerReference(), IntegerReference()]\n var secondIntegers = firstIntegers\n\n \/\/ Modifications to an instance are visible from either array\n firstIntegers[0].value = 100\n print(secondIntegers[0].value)\n \/\/ Prints \"100\"\n\n \/\/ Replacements, additions, and removals are still visible\n \/\/ only in the modified array\n firstIntegers[0] = IntegerReference()\n print(firstIntegers[0].value)\n \/\/ Prints \"10\"\n print(secondIntegers[0].value)\n \/\/ Prints \"100\"\n\nArrays, like all variable-size collections in the standard library, use\ncopy-on-write optimization. Multiple copies of an array share the same\nstorage until you modify one of the copies. When that happens, the array\nbeing modified replaces its storage with a uniquely owned copy of itself,\nwhich is then modified in place. Optimizations are sometimes applied that\ncan reduce the amount of copying.\n\nThis means that if an array is sharing storage with other copies, the first\nmutating operation on that array incurs the cost of copying the array. An\narray that is the sole owner of its storage can perform mutating\noperations in place.\n\nIn the example below, a `numbers` array is created along with two copies\nthat share the same storage. When the original `numbers` array is\nmodified, it makes a unique copy of its storage before making the\nmodification. Further modifications to `numbers` are made in place, while\nthe two copies continue to share the original storage.\n\n var numbers = [1, 2, 3, 4, 5]\n var firstCopy = numbers\n var secondCopy = numbers\n\n \/\/ The storage for 'numbers' is copied here\n numbers[0] = 100\n numbers[1] = 200\n numbers[2] = 300\n \/\/ 'numbers' is [100, 200, 300, 4, 5]\n \/\/ 'firstCopy' and 'secondCopy' are [1, 2, 3, 4, 5]\n\nBridging Between Array and NSArray\n==================================\n\nWhen you need to access APIs that require data in an `NSArray` instance\ninstead of `Array`, use the type-cast operator (`as`) to bridge your\ninstance. For bridging to be possible, the `Element` type of your array\nmust be a class, an `@objc` protocol (a protocol imported from Objective-C\nor marked with the `@objc` attribute), or a type that bridges to a\nFoundation type.\n\nThe following example shows how you can bridge an `Array` instance to\n`NSArray` to use the `write(to:atomically:)` method. In this example, the\n`colors` array can be bridged to `NSArray` because the `colors` array's\n`String` elements bridge to `NSString`. The compiler prevents bridging the\n`moreColors` array, on the other hand, because its `Element` type is\n`Optional`, which does *not* bridge to a Foundation type.\n\n let colors = [\"periwinkle\", \"rose\", \"moss\"]\n let moreColors: [String?] = [\"ochre\", \"pine\"]\n\n let url = URL(fileURLWithPath: \"names.plist\")\n (colors as NSArray).write(to: url, atomically: true)\n \/\/ true\n\n (moreColors as NSArray).write(to: url, atomically: true)\n \/\/ error: cannot convert value of type '[String?]' to type 'NSArray'\n\nBridging from `Array` to `NSArray` takes O(1) time and O(1) space if the\narray's elements are already instances of a class or an `@objc` protocol;\notherwise, it takes O(*n*) time and space.\n\nWhen the destination array's element type is a class or an `@objc`\nprotocol, bridging from `NSArray` to `Array` first calls the `copy(with:)`\n(`- copyWithZone:` in Objective-C) method on the array to get an immutable\ncopy and then performs additional Swift bookkeeping work that takes O(1)\ntime. For instances of `NSArray` that are already immutable, `copy(with:)`\nusually returns the same array in O(1) time; otherwise, the copying\nperformance is unspecified. If `copy(with:)` returns the same array, the\ninstances of `NSArray` and `Array` share storage using the same\ncopy-on-write optimization that is used when two instances of `Array`\nshare storage.\n\nWhen the destination array's element type is a nonclass type that bridges\nto a Foundation type, bridging from `NSArray` to `Array` performs a\nbridging copy of the elements to contiguous storage in O(*n*) time. For\nexample, bridging from `NSArray` to `Array` performs such a copy. No\nfurther bridging is required when accessing elements of the `Array`\ninstance.\n\n- Note: The `ContiguousArray` and `ArraySlice` types are not bridged;\n instances of those types always have a contiguous block of memory as\n their storage.", - "key.doc.declaration" : "@frozen struct Array : _DestructorSafeContainer", - "key.doc.discussion" : [ - { - "Para" : "Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the `Array` type to hold elements of a single type, the array’s `Element` type. An array can store any kind of elements—from integers to strings to classes." - }, - { - "Para" : "Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s `Element` type. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can create an empty array by specifying the `Element` type of your array in the declaration. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you need an array that is preinitialized with a fixed number of default values, use the `Array(repeating:count:)` initializer." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When you need to perform an operation on all of an array’s elements, use a `for`-`in` loop to iterate through the array’s contents." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Use the `isEmpty` property to check quickly whether an array has any elements, or use the `count` property to find the number of elements in the array." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Use the `first` and `last` properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are `nil`." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than `count` triggers a runtime error. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To add single elements to the end of an array, use the `append(_:)` method. Add multiple elements at the same time by passing another array or a sequence of any kind to the `append(contentsOf:)` method." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can add new elements in the middle of an array by using the `insert(_:at:)` method for single elements and by using `insert(contentsOf:at:)` to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To remove elements from an array, use the `remove(at:)`, `removeSubrange(_:)`, and `removeLast()` methods." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can replace an existing element with a new value by assigning the new value to the subscript." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger." - }, - { - "Para" : "If you know approximately how many elements you will need to store, use the `reserveCapacity(_:)` method before appending to the array to avoid intermediate reallocations. Use the `capacity` and `count` properties to determine how many more elements the array can store without allocating larger storage." - }, - { - "Para" : "For arrays of most `Element` types, this storage is a contiguous block of memory. For arrays with an `Element` type that is a class or `@objc` protocol type, this storage can be a contiguous block of memory or an instance of `NSArray`. Because any arbitrary subclass of `NSArray` can become an `Array`, there are no guarantees about representation or efficiency in this case." - }, - { - "Para" : "Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying." - }, - { - "Para" : "This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place." - }, - { - "Para" : "In the example below, a `numbers` array is created along with two copies that share the same storage. When the original `numbers` array is modified, it makes a unique copy of its storage before making the modification. Further modifications to `numbers` are made in place, while the two copies continue to share the original storage." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When you need to access APIs that require data in an `NSArray` instance instead of `Array`, use the type-cast operator (`as`) to bridge your instance. For bridging to be possible, the `Element` type of your array must be a class, an `@objc` protocol (a protocol imported from Objective-C or marked with the `@objc` attribute), or a type that bridges to a Foundation type." - }, - { - "Para" : "The following example shows how you can bridge an `Array` instance to `NSArray` to use the `write(to:atomically:)` method. In this example, the `colors` array can be bridged to `NSArray` because the `colors` array’s `String` elements bridge to `NSString`. The compiler prevents bridging the `moreColors` array, on the other hand, because its `Element` type is `Optional`, which does bridge to a Foundation type." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Bridging from `Array` to `NSArray` takes O(1) time and O(1) space if the array’s elements are already instances of a class or an `@objc` protocol; otherwise, it takes O() time and space." - }, - { - "Para" : "When the destination array’s element type is a class or an `@objc` protocol, bridging from `NSArray` to `Array` first calls the `copy(with:)` (`- copyWithZone:` in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of `NSArray` that are already immutable, `copy(with:)` usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If `copy(with:)` returns the same array, the instances of `NSArray` and `Array` share storage using the same copy-on-write optimization that is used when two instances of `Array` share storage." - }, - { - "Para" : "When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from `NSArray` to `Array` performs a bridging copy of the elements to contiguous storage in O() time. For example, bridging from `NSArray` to `Array` performs such a copy. No further bridging is required when accessing elements of the `Array` instance." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element> : _DestructorSafeContainer<\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>", - "key.doc.name" : "Array", - "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", - "key.groupname" : "Collection\/Array", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 396, - "key.modulename" : "Swift", - "key.name" : "Array", - "key.namelength" : 5, - "key.nameoffset" : 18081, - "key.offset" : 18071, - "key.parsed_declaration" : "private extension Array", - "key.parsed_scope.end" : 647, - "key.parsed_scope.start" : 630, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "func separate(_ block: (Element<\/Type>) -> Bool<\/Type>) -> ([Element<\/Type>], [Element<\/Type>])<\/Declaration>", - "key.bodylength" : 297, - "key.bodyoffset" : 18167, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> separate<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ([Element<\/ref.generic_type_param>]<\/tuple.element.type><\/tuple.element>, [Element<\/ref.generic_type_param>]<\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 372, - "key.line" : 632, - "key.modulename" : "ListableUI", - "key.name" : "separate(_:)", - "key.namelength" : 37, - "key.nameoffset" : 18098, - "key.offset" : 18093, - "key.parsed_declaration" : "func separate(_ block : (Element) -> Bool) -> ([Element], [Element])", - "key.parsed_scope.end" : 646, - "key.parsed_scope.start" : 632, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var left: [Element<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> left<\/decl.name>: [Element<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 22, - "key.line" : 634, - "key.modulename" : "ListableUI", - "key.name" : "left", - "key.namelength" : 4, - "key.nameoffset" : 18180, - "key.offset" : 18176, - "key.parsed_declaration" : "var left = [Element]()", - "key.parsed_scope.end" : 634, - "key.parsed_scope.start" : 634, - "key.reusingastcontext" : false, - "key.typename" : "[Element]", - "key.typeusr" : "$sSayxGD", - "key.usr" : "s:Sa10ListableUIE8separate33_C15E326CC9B009491D3ADB78FA7FFECBLLySayxG_ADtSbxXEF4leftL_ADvp" - }, - { - "key.annotated_decl" : "var right: [Element<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> right<\/decl.name>: [Element<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 23, - "key.line" : 635, - "key.modulename" : "ListableUI", - "key.name" : "right", - "key.namelength" : 5, - "key.nameoffset" : 18211, - "key.offset" : 18207, - "key.parsed_declaration" : "var right = [Element]()", - "key.parsed_scope.end" : 635, - "key.parsed_scope.start" : 635, - "key.reusingastcontext" : false, - "key.typename" : "[Element]", - "key.typeusr" : "$sSayxGD", - "key.usr" : "s:Sa10ListableUIE8separate33_C15E326CC9B009491D3ADB78FA7FFECBLLySayxG_ADtSbxXEF5rightL_ADvp" - } - ], - "key.typename" : " (Array) -> ((Element) -> Bool) -> ([Element], [Element])", - "key.typeusr" : "$sySayxG_AAtSbxXEcD", - "key.usr" : "s:Sa10ListableUIE8separate33_C15E326CC9B009491D3ADB78FA7FFECBLLySayxG_ADtSbxXEF" - } - ], - "key.typename" : "Array.Type", - "key.typeusr" : "$sSayxGmD", - "key.usr" : "s:Sa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@frozen @_eagerMove struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 18469 - } - ], - "key.bodylength" : 617, - "key.bodyoffset" : 18494, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An ordered, random-access collection.\n\nArrays are one of the most commonly used data types in an app. You use\narrays to organize your app's data. Specifically, you use the `Array` type\nto hold elements of a single type, the array's `Element` type. An array\ncan store any kind of elements---from integers to strings to classes.\n\nSwift makes it easy to create arrays in your code using an array literal:\nsimply surround a comma-separated list of values with square brackets.\nWithout any other information, Swift creates an array that includes the\nspecified values, automatically inferring the array's `Element` type. For\nexample:\n\n \/\/ An array of 'Int' elements\n let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]\n\n \/\/ An array of 'String' elements\n let streets = [\"Albemarle\", \"Brandywine\", \"Chesapeake\"]\n\nYou can create an empty array by specifying the `Element` type of your\narray in the declaration. For example:\n\n \/\/ Shortened forms are preferred\n var emptyDoubles: [Double] = []\n\n \/\/ The full type name is also allowed\n var emptyFloats: Array = Array()\n\nIf you need an array that is preinitialized with a fixed number of default\nvalues, use the `Array(repeating:count:)` initializer.\n\n var digitCounts = Array(repeating: 0, count: 10)\n print(digitCounts)\n \/\/ Prints \"[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\"\n\nAccessing Array Values\n======================\n\nWhen you need to perform an operation on all of an array's elements, use a\n`for`-`in` loop to iterate through the array's contents.\n\n for street in streets {\n print(\"I don't live on \\(street).\")\n }\n \/\/ Prints \"I don't live on Albemarle.\"\n \/\/ Prints \"I don't live on Brandywine.\"\n \/\/ Prints \"I don't live on Chesapeake.\"\n\nUse the `isEmpty` property to check quickly whether an array has any\nelements, or use the `count` property to find the number of elements in\nthe array.\n\n if oddNumbers.isEmpty {\n print(\"I don't know any odd numbers.\")\n } else {\n print(\"I know \\(oddNumbers.count) odd numbers.\")\n }\n \/\/ Prints \"I know 8 odd numbers.\"\n\nUse the `first` and `last` properties for safe access to the value of the\narray's first and last elements. If the array is empty, these properties\nare `nil`.\n\n if let firstElement = oddNumbers.first, let lastElement = oddNumbers.last {\n print(firstElement, lastElement, separator: \", \")\n }\n \/\/ Prints \"1, 15\"\n\n print(emptyDoubles.first, emptyDoubles.last, separator: \", \")\n \/\/ Prints \"nil, nil\"\n\nYou can access individual array elements through a subscript. The first\nelement of a nonempty array is always at index zero. You can subscript an\narray with any integer from zero up to, but not including, the count of\nthe array. Using a negative number or an index equal to or greater than\n`count` triggers a runtime error. For example:\n\n print(oddNumbers[0], oddNumbers[3], separator: \", \")\n \/\/ Prints \"1, 7\"\n\n print(emptyDoubles[0])\n \/\/ Triggers runtime error: Index out of range\n\nAdding and Removing Elements\n============================\n\nSuppose you need to store a list of the names of students that are signed\nup for a class you're teaching. During the registration period, you need\nto add and remove names as students add and drop the class.\n\n var students = [\"Ben\", \"Ivy\", \"Jordell\"]\n\nTo add single elements to the end of an array, use the `append(_:)` method.\nAdd multiple elements at the same time by passing another array or a\nsequence of any kind to the `append(contentsOf:)` method.\n\n students.append(\"Maxime\")\n students.append(contentsOf: [\"Shakia\", \"William\"])\n \/\/ [\"Ben\", \"Ivy\", \"Jordell\", \"Maxime\", \"Shakia\", \"William\"]\n\nYou can add new elements in the middle of an array by using the\n`insert(_:at:)` method for single elements and by using\n`insert(contentsOf:at:)` to insert multiple elements from another\ncollection or array literal. The elements at that index and later indices\nare shifted back to make room.\n\n students.insert(\"Liam\", at: 3)\n \/\/ [\"Ben\", \"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\", \"William\"]\n\nTo remove elements from an array, use the `remove(at:)`,\n`removeSubrange(_:)`, and `removeLast()` methods.\n\n \/\/ Ben's family is moving to another state\n students.remove(at: 0)\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\", \"William\"]\n\n \/\/ William is signing up for a different class\n students.removeLast()\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\"]\n\nYou can replace an existing element with a new value by assigning the new\nvalue to the subscript.\n\n if let i = students.firstIndex(of: \"Maxime\") {\n students[i] = \"Max\"\n }\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Max\", \"Shakia\"]\n\nGrowing the Size of an Array\n----------------------------\n\nEvery array reserves a specific amount of memory to hold its contents. When\nyou add elements to an array and that array begins to exceed its reserved\ncapacity, the array allocates a larger region of memory and copies its\nelements into the new storage. The new storage is a multiple of the old\nstorage's size. This exponential growth strategy means that appending an\nelement happens in constant time, averaging the performance of many append\noperations. Append operations that trigger reallocation have a performance\ncost, but they occur less and less often as the array grows larger.\n\nIf you know approximately how many elements you will need to store, use the\n`reserveCapacity(_:)` method before appending to the array to avoid\nintermediate reallocations. Use the `capacity` and `count` properties to\ndetermine how many more elements the array can store without allocating\nlarger storage.\n\nFor arrays of most `Element` types, this storage is a contiguous block of\nmemory. For arrays with an `Element` type that is a class or `@objc`\nprotocol type, this storage can be a contiguous block of memory or an\ninstance of `NSArray`. Because any arbitrary subclass of `NSArray` can\nbecome an `Array`, there are no guarantees about representation or\nefficiency in this case.\n\nModifying Copies of Arrays\n==========================\n\nEach array has an independent value that includes the values of all of its\nelements. For simple types such as integers and other structures, this\nmeans that when you change a value in one array, the value of that element\ndoes not change in any copies of the array. For example:\n\n var numbers = [1, 2, 3, 4, 5]\n var numbersCopy = numbers\n numbers[0] = 100\n print(numbers)\n \/\/ Prints \"[100, 2, 3, 4, 5]\"\n print(numbersCopy)\n \/\/ Prints \"[1, 2, 3, 4, 5]\"\n\nIf the elements in an array are instances of a class, the semantics are the\nsame, though they might appear different at first. In this case, the\nvalues stored in the array are references to objects that live outside the\narray. If you change a reference to an object in one array, only that\narray has a reference to the new object. However, if two arrays contain\nreferences to the same object, you can observe changes to that object's\nproperties from both arrays. For example:\n\n \/\/ An integer type with reference semantics\n class IntegerReference {\n var value = 10\n }\n var firstIntegers = [IntegerReference(), IntegerReference()]\n var secondIntegers = firstIntegers\n\n \/\/ Modifications to an instance are visible from either array\n firstIntegers[0].value = 100\n print(secondIntegers[0].value)\n \/\/ Prints \"100\"\n\n \/\/ Replacements, additions, and removals are still visible\n \/\/ only in the modified array\n firstIntegers[0] = IntegerReference()\n print(firstIntegers[0].value)\n \/\/ Prints \"10\"\n print(secondIntegers[0].value)\n \/\/ Prints \"100\"\n\nArrays, like all variable-size collections in the standard library, use\ncopy-on-write optimization. Multiple copies of an array share the same\nstorage until you modify one of the copies. When that happens, the array\nbeing modified replaces its storage with a uniquely owned copy of itself,\nwhich is then modified in place. Optimizations are sometimes applied that\ncan reduce the amount of copying.\n\nThis means that if an array is sharing storage with other copies, the first\nmutating operation on that array incurs the cost of copying the array. An\narray that is the sole owner of its storage can perform mutating\noperations in place.\n\nIn the example below, a `numbers` array is created along with two copies\nthat share the same storage. When the original `numbers` array is\nmodified, it makes a unique copy of its storage before making the\nmodification. Further modifications to `numbers` are made in place, while\nthe two copies continue to share the original storage.\n\n var numbers = [1, 2, 3, 4, 5]\n var firstCopy = numbers\n var secondCopy = numbers\n\n \/\/ The storage for 'numbers' is copied here\n numbers[0] = 100\n numbers[1] = 200\n numbers[2] = 300\n \/\/ 'numbers' is [100, 200, 300, 4, 5]\n \/\/ 'firstCopy' and 'secondCopy' are [1, 2, 3, 4, 5]\n\nBridging Between Array and NSArray\n==================================\n\nWhen you need to access APIs that require data in an `NSArray` instance\ninstead of `Array`, use the type-cast operator (`as`) to bridge your\ninstance. For bridging to be possible, the `Element` type of your array\nmust be a class, an `@objc` protocol (a protocol imported from Objective-C\nor marked with the `@objc` attribute), or a type that bridges to a\nFoundation type.\n\nThe following example shows how you can bridge an `Array` instance to\n`NSArray` to use the `write(to:atomically:)` method. In this example, the\n`colors` array can be bridged to `NSArray` because the `colors` array's\n`String` elements bridge to `NSString`. The compiler prevents bridging the\n`moreColors` array, on the other hand, because its `Element` type is\n`Optional`, which does *not* bridge to a Foundation type.\n\n let colors = [\"periwinkle\", \"rose\", \"moss\"]\n let moreColors: [String?] = [\"ochre\", \"pine\"]\n\n let url = URL(fileURLWithPath: \"names.plist\")\n (colors as NSArray).write(to: url, atomically: true)\n \/\/ true\n\n (moreColors as NSArray).write(to: url, atomically: true)\n \/\/ error: cannot convert value of type '[String?]' to type 'NSArray'\n\nBridging from `Array` to `NSArray` takes O(1) time and O(1) space if the\narray's elements are already instances of a class or an `@objc` protocol;\notherwise, it takes O(*n*) time and space.\n\nWhen the destination array's element type is a class or an `@objc`\nprotocol, bridging from `NSArray` to `Array` first calls the `copy(with:)`\n(`- copyWithZone:` in Objective-C) method on the array to get an immutable\ncopy and then performs additional Swift bookkeeping work that takes O(1)\ntime. For instances of `NSArray` that are already immutable, `copy(with:)`\nusually returns the same array in O(1) time; otherwise, the copying\nperformance is unspecified. If `copy(with:)` returns the same array, the\ninstances of `NSArray` and `Array` share storage using the same\ncopy-on-write optimization that is used when two instances of `Array`\nshare storage.\n\nWhen the destination array's element type is a nonclass type that bridges\nto a Foundation type, bridging from `NSArray` to `Array` performs a\nbridging copy of the elements to contiguous storage in O(*n*) time. For\nexample, bridging from `NSArray` to `Array` performs such a copy. No\nfurther bridging is required when accessing elements of the `Array`\ninstance.\n\n- Note: The `ContiguousArray` and `ArraySlice` types are not bridged;\n instances of those types always have a contiguous block of memory as\n their storage.", - "key.doc.declaration" : "@frozen struct Array : _DestructorSafeContainer", - "key.doc.discussion" : [ - { - "Para" : "Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the `Array` type to hold elements of a single type, the array’s `Element` type. An array can store any kind of elements—from integers to strings to classes." - }, - { - "Para" : "Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s `Element` type. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can create an empty array by specifying the `Element` type of your array in the declaration. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you need an array that is preinitialized with a fixed number of default values, use the `Array(repeating:count:)` initializer." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When you need to perform an operation on all of an array’s elements, use a `for`-`in` loop to iterate through the array’s contents." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Use the `isEmpty` property to check quickly whether an array has any elements, or use the `count` property to find the number of elements in the array." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Use the `first` and `last` properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are `nil`." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than `count` triggers a runtime error. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To add single elements to the end of an array, use the `append(_:)` method. Add multiple elements at the same time by passing another array or a sequence of any kind to the `append(contentsOf:)` method." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can add new elements in the middle of an array by using the `insert(_:at:)` method for single elements and by using `insert(contentsOf:at:)` to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To remove elements from an array, use the `remove(at:)`, `removeSubrange(_:)`, and `removeLast()` methods." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can replace an existing element with a new value by assigning the new value to the subscript." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger." - }, - { - "Para" : "If you know approximately how many elements you will need to store, use the `reserveCapacity(_:)` method before appending to the array to avoid intermediate reallocations. Use the `capacity` and `count` properties to determine how many more elements the array can store without allocating larger storage." - }, - { - "Para" : "For arrays of most `Element` types, this storage is a contiguous block of memory. For arrays with an `Element` type that is a class or `@objc` protocol type, this storage can be a contiguous block of memory or an instance of `NSArray`. Because any arbitrary subclass of `NSArray` can become an `Array`, there are no guarantees about representation or efficiency in this case." - }, - { - "Para" : "Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying." - }, - { - "Para" : "This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place." - }, - { - "Para" : "In the example below, a `numbers` array is created along with two copies that share the same storage. When the original `numbers` array is modified, it makes a unique copy of its storage before making the modification. Further modifications to `numbers` are made in place, while the two copies continue to share the original storage." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When you need to access APIs that require data in an `NSArray` instance instead of `Array`, use the type-cast operator (`as`) to bridge your instance. For bridging to be possible, the `Element` type of your array must be a class, an `@objc` protocol (a protocol imported from Objective-C or marked with the `@objc` attribute), or a type that bridges to a Foundation type." - }, - { - "Para" : "The following example shows how you can bridge an `Array` instance to `NSArray` to use the `write(to:atomically:)` method. In this example, the `colors` array can be bridged to `NSArray` because the `colors` array’s `String` elements bridge to `NSString`. The compiler prevents bridging the `moreColors` array, on the other hand, because its `Element` type is `Optional`, which does bridge to a Foundation type." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Bridging from `Array` to `NSArray` takes O(1) time and O(1) space if the array’s elements are already instances of a class or an `@objc` protocol; otherwise, it takes O() time and space." - }, - { - "Para" : "When the destination array’s element type is a class or an `@objc` protocol, bridging from `NSArray` to `Array` first calls the `copy(with:)` (`- copyWithZone:` in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of `NSArray` that are already immutable, `copy(with:)` usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If `copy(with:)` returns the same array, the instances of `NSArray` and `Array` share storage using the same copy-on-write optimization that is used when two instances of `Array` share storage." - }, - { - "Para" : "When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from `NSArray` to `Array` performs a bridging copy of the elements to contiguous storage in O() time. For example, bridging from `NSArray` to `Array` performs such a copy. No further bridging is required when accessing elements of the `Array` instance." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element> : _DestructorSafeContainer<\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>", - "key.doc.name" : "Array", - "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", - "key.groupname" : "Collection\/Array", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 635, - "key.modulename" : "Swift", - "key.name" : "Array", - "key.namelength" : 5, - "key.nameoffset" : 18487, - "key.offset" : 18477, - "key.parsed_declaration" : "private extension Array", - "key.parsed_scope.end" : 668, - "key.parsed_scope.start" : 649, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "func toUniqueDictionary<Key, Value>(_ block: (Int<\/Type>, Element<\/Type>) -> (Key<\/Type>, Value<\/Type>)) -> Dictionary<\/Type><Key<\/Type>, Value<\/Type>> where Key<\/Type> : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 493, - "key.bodyoffset" : 18616, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> toUniqueDictionary<\/decl.name><Key<\/decl.generic_type_param.name><\/decl.generic_type_param>, Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> (Key<\/ref.generic_type_param><\/tuple.element.type><\/tuple.element>, Value<\/ref.generic_type_param><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Dictionary<\/ref.struct><Key<\/ref.generic_type_param>, Value<\/ref.generic_type_param>><\/decl.function.returntype> where<\/syntaxtype.keyword> Key<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 611, - "key.line" : 651, - "key.modulename" : "ListableUI", - "key.name" : "toUniqueDictionary(_:)", - "key.namelength" : 81, - "key.nameoffset" : 18504, - "key.offset" : 18499, - "key.parsed_declaration" : "func toUniqueDictionary(_ block : (Int, Element) -> (Key, Value)) -> Dictionary", - "key.parsed_scope.end" : 667, - "key.parsed_scope.start" : 651, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Key : Hashable<\/Type><\/Declaration>", - "key.column" : 29, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 18527 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Key<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 12, - "key.line" : 651, - "key.modulename" : "ListableUI", - "key.name" : "Key", - "key.namelength" : 3, - "key.nameoffset" : 18523, - "key.offset" : 18523, - "key.parsed_declaration" : "func toUniqueDictionaryValue<\/Declaration>", - "key.column" : 43, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 651, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 18537, - "key.offset" : 18537, - "key.parsed_declaration" : "func toUniqueDictionaryvar dictionary: [Key<\/Type> : Value<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> dictionary<\/decl.name>: [Key<\/ref.generic_type_param> : Value<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 40, - "key.line" : 653, - "key.modulename" : "ListableUI", - "key.name" : "dictionary", - "key.namelength" : 10, - "key.nameoffset" : 18629, - "key.offset" : 18625, - "key.parsed_declaration" : "var dictionary = Dictionary()", - "key.parsed_scope.end" : 653, - "key.parsed_scope.start" : 653, - "key.reusingastcontext" : false, - "key.typename" : "[Key : Value]", - "key.typeusr" : "$sSDyqd__qd_0_GD", - "key.usr" : "s:Sa10ListableUIE18toUniqueDictionary33_C15E326CC9B009491D3ADB78FA7FFECBLLySDyqd__qd_0_Gqd___qd_0_tSi_xtXESHRd__r0_lF10dictionaryL_ADvp" - } - ], - "key.typename" : " (Array) -> ((Int, Element) -> (Key, Value)) -> Dictionary", - "key.typeusr" : "$sySDyqd__qd_0_Gqd___qd_0_tSi_xtXEcSHRd__r0_luD", - "key.usr" : "s:Sa10ListableUIE18toUniqueDictionary33_C15E326CC9B009491D3ADB78FA7FFECBLLySDyqd__qd_0_Gqd___qd_0_tSi_xtXESHRd__r0_lF" - } - ], - "key.typename" : "Array.Type", - "key.typeusr" : "$sSayxGmD", - "key.usr" : "s:Sa" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 19690, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<Section, SectionIdentifier, Item, ItemIdentifier> where SectionIdentifier<\/Type> : Hashable<\/Type>, ItemIdentifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 11641, - "key.bodyoffset" : 202, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/decl.name><Section<\/decl.generic_type_param.name><\/decl.generic_type_param>, SectionIdentifier<\/decl.generic_type_param.name><\/decl.generic_type_param>, Item<\/decl.generic_type_param.name><\/decl.generic_type_param>, ItemIdentifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> SectionIdentifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement>, ItemIdentifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 11732, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff", - "key.namelength" : 13, - "key.nameoffset" : 119, - "key.offset" : 112, - "key.parsed_declaration" : "struct SectionedDiff", - "key.parsed_scope.end" : 391, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Section<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "Section<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Section", - "key.namelength" : 7, - "key.nameoffset" : 133, - "key.offset" : 133, - "key.parsed_declaration" : "struct SectionedDiffSectionIdentifier : Hashable<\/Type><\/Declaration>", - "key.column" : 31, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 160 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "SectionIdentifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 26, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "SectionIdentifier", - "key.namelength" : 17, - "key.nameoffset" : 142, - "key.offset" : 142, - "key.parsed_declaration" : "struct SectionedDiffItem<\/Declaration>", - "key.column" : 59, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "Item<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 4, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 170, - "key.offset" : 170, - "key.parsed_declaration" : "struct SectionedDiffItemIdentifier : Hashable<\/Type><\/Declaration>", - "key.column" : 65, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 191 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "ItemIdentifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 23, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ItemIdentifier", - "key.namelength" : 14, - "key.nameoffset" : 176, - "key.offset" : 176, - "key.parsed_declaration" : "struct SectionedDifflet old: [Section<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: [Section<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 211, - "key.offset" : 207, - "key.parsed_declaration" : "let old : [Section]", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "[Section]", - "key.typeusr" : "$sSayxGD", - "key.usr" : "s:10ListableUI13SectionedDiffV3oldSayxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let new: [Section<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: [Section<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 235, - "key.offset" : 231, - "key.parsed_declaration" : "let new : [Section]", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.typename" : "[Section]", - "key.typeusr" : "$sSayxGD", - "key.usr" : "s:10ListableUI13SectionedDiffV3newSayxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let changes: SectionChanges<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> changes<\/decl.name>: SectionChanges<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "changes", - "key.namelength" : 7, - "key.nameoffset" : 264, - "key.offset" : 260, - "key.parsed_declaration" : "let changes : SectionChanges", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.SectionChanges", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesVyxq_q0_q1__GD", - "key.usr" : "s:10ListableUI13SectionedDiffV7changesAC14SectionChangesVyxq_q0_q1__Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(old: [Section<\/Type>], new: [Section<\/Type>], configuration: Configuration<\/Type>)<\/Declaration>", - "key.bodylength" : 194, - "key.bodyoffset" : 372, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 269, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "init(old:new:configuration:)", - "key.namelength" : 68, - "key.nameoffset" : 298, - "key.offset" : 298, - "key.parsed_declaration" : "init(old : [Section], new: [Section], configuration : Configuration)", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.Type) -> ([Section], [Section], SectionedDiff.Configuration) -> SectionedDiff", - "key.typeusr" : "$s3old3new13configuration10ListableUI13SectionedDiffVyxq_q0_q1_GSayxG_AhF13ConfigurationVyxq_q0_q1__GtcD", - "key.usr" : "s:10ListableUI13SectionedDiffV3old3new13configurationACyxq_q0_q1_GSayxG_AhC13ConfigurationVyxq_q0_q1__Gtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.Configuration<\/Declaration>", - "key.bodylength" : 1477, - "key.bodyoffset" : 603, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.Configuration<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1504, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "Configuration", - "key.namelength" : 13, - "key.nameoffset" : 584, - "key.offset" : 577, - "key.parsed_declaration" : "struct Configuration", - "key.parsed_scope.end" : 79, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var section: SectionProviders<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> section<\/decl.name>: SectionProviders<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "section", - "key.namelength" : 7, - "key.nameoffset" : 616, - "key.offset" : 612, - "key.parsed_declaration" : "var section : SectionProviders", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 32, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "SectionedDiff.Configuration.SectionProviders", - "key.typeusr" : "$s10ListableUI13SectionedDiffV13ConfigurationV16SectionProvidersVyxq_q0_q1___GD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV7sectionAE16SectionProvidersVyxq_q0_q1___Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var item: ItemProviders<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> item<\/decl.name>: ItemProviders<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 655, - "key.offset" : 651, - "key.parsed_declaration" : "var item : ItemProviders", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "SectionedDiff.Configuration.ItemProviders", - "key.typeusr" : "$s10ListableUI13SectionedDiffV13ConfigurationV13ItemProvidersVyxq_q0_q1___GD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV4itemAE13ItemProvidersVyxq_q0_q1___Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(section: SectionProviders<\/Type>, item: ItemProviders<\/Type>)<\/Declaration>", - "key.bodylength" : 73, - "key.bodyoffset" : 757, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(section<\/decl.var.parameter.argument_label>: SectionProviders<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, item<\/decl.var.parameter.argument_label>: ItemProviders<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 138, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "init(section:item:)", - "key.namelength" : 54, - "key.nameoffset" : 693, - "key.offset" : 693, - "key.parsed_declaration" : "init(section : SectionProviders, item : ItemProviders)", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.Configuration.Type) -> (SectionedDiff.Configuration.SectionProviders, SectionedDiff.Configuration.ItemProviders) -> SectionedDiff.Configuration", - "key.typeusr" : "$s7section4item10ListableUI13SectionedDiffV13ConfigurationVyxq_q0_q1__GAG16SectionProvidersVyxq_q0_q1___G_AG04ItemI0Vyxq_q0_q1___GtcD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV7section4itemAEyxq_q0_q1__GAE16SectionProvidersVyxq_q0_q1___G_AE04ItemI0Vyxq_q0_q1___Gtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.Configuration<\/Type>.SectionProviders<\/Declaration>", - "key.bodylength" : 585, - "key.bodyoffset" : 882, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.Configuration<\/ref.struct>.SectionProviders<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 619, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "SectionProviders", - "key.namelength" : 16, - "key.nameoffset" : 856, - "key.offset" : 849, - "key.parsed_declaration" : "struct SectionProviders", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 41, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var identifier: (Section<\/Type>) -> SectionIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> SectionIdentifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 899, - "key.offset" : 895, - "key.parsed_declaration" : "var identifier : (Section) -> SectionIdentifier", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(Section) -> SectionIdentifier", - "key.typeusr" : "$syq_xcD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV16SectionProvidersV10identifieryq_xcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var items: (Section<\/Type>) -> [Item<\/Type>]<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Item<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 45, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 972, - "key.offset" : 968, - "key.parsed_declaration" : "var items : (Section) -> [Item]", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 45, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(Section) -> [Item]", - "key.typeusr" : "$sySayq0_GxcD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV16SectionProvidersV5itemsySayq0_Gxcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var movedHint: (Section<\/Type>, Section<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> movedHint<\/decl.name>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "movedHint", - "key.namelength" : 9, - "key.nameoffset" : 1029, - "key.offset" : 1025, - "key.parsed_declaration" : "var movedHint : (Section, Section) -> Bool", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(Section, Section) -> Bool", - "key.typeusr" : "$sySbx_xtcD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV16SectionProvidersV9movedHintySbx_xtcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(identifier: @escaping (Section<\/Type>) -> SectionIdentifier<\/Type>, items: @escaping (Section<\/Type>) -> [Item<\/Type>], movedHint: @escaping (Section<\/Type>, Section<\/Type>) -> Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 136, - "key.bodyoffset" : 1321, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(identifier<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> SectionIdentifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Item<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, movedHint<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 365, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "init(identifier:items:movedHint:)", - "key.namelength" : 214, - "key.nameoffset" : 1093, - "key.offset" : 1093, - "key.parsed_declaration" : "init(\n identifier : @escaping (Section) -> SectionIdentifier,\n items : @escaping (Section) -> [Item],\n movedHint : @escaping (Section, Section) -> Bool\n )", - "key.parsed_scope.end" : 58, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.Configuration.SectionProviders.Type) -> (@escaping (Section) -> SectionIdentifier, @escaping (Section) -> [Item], @escaping (Section, Section) -> Bool) -> SectionedDiff.Configuration.SectionProviders", - "key.typeusr" : "$s10identifier5items9movedHint10ListableUI13SectionedDiffV13ConfigurationV16SectionProvidersVyxq_q0_q1___Gq_xc_Sayq0_GxcSbx_xtctcD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV16SectionProvidersV10identifier5items9movedHintAGyxq_q0_q1___Gq_xc_Sayq0_GxcSbx_xtctcfc" - } - ], - "key.typename" : "SectionedDiff.Configuration.SectionProviders.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV13ConfigurationV16SectionProvidersVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV16SectionProvidersV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.Configuration<\/Type>.ItemProviders<\/Declaration>", - "key.bodylength" : 558, - "key.bodyoffset" : 1516, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.Configuration<\/ref.struct>.ItemProviders<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 589, - "key.line" : 61, - "key.modulename" : "ListableUI", - "key.name" : "ItemProviders", - "key.namelength" : 13, - "key.nameoffset" : 1493, - "key.offset" : 1486, - "key.parsed_declaration" : "struct ItemProviders", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 61, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var identifier: (Item<\/Type>) -> ItemIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ItemIdentifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 1533, - "key.offset" : 1529, - "key.parsed_declaration" : "var identifier : (Item) -> ItemIdentifier", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(Item) -> ItemIdentifier", - "key.typeusr" : "$syq1_q0_cD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV13ItemProvidersV10identifieryq1_q0_cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var updated: (Item<\/Type>, Item<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updated<\/decl.name>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "updated", - "key.namelength" : 7, - "key.nameoffset" : 1600, - "key.offset" : 1596, - "key.parsed_declaration" : "var updated : (Item, Item) -> Bool", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(Item, Item) -> Bool", - "key.typeusr" : "$sySbq0__q0_tcD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV13ItemProvidersV7updatedySbq0__q0_tcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var movedHint: (Item<\/Type>, Item<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> movedHint<\/decl.name>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "movedHint", - "key.namelength" : 9, - "key.nameoffset" : 1647, - "key.offset" : 1643, - "key.parsed_declaration" : "var movedHint : (Item, Item) -> Bool", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(Item, Item) -> Bool", - "key.typeusr" : "$sySbq0__q0_tcD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV13ItemProvidersV9movedHintySbq0__q0_tcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(identifier: @escaping (Item<\/Type>) -> ItemIdentifier<\/Type>, updated: @escaping (Item<\/Type>, Item<\/Type>) -> Bool<\/Type>, movedHint: @escaping (Item<\/Type>, Item<\/Type>) -> Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 140, - "key.bodyoffset" : 1924, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(identifier<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ItemIdentifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, movedHint<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 360, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "init(identifier:updated:movedHint:)", - "key.namelength" : 205, - "key.nameoffset" : 1705, - "key.offset" : 1705, - "key.parsed_declaration" : "init(\n identifier : @escaping (Item) -> ItemIdentifier,\n updated : @escaping (Item, Item) -> Bool,\n movedHint : @escaping (Item, Item) -> Bool\n )", - "key.parsed_scope.end" : 77, - "key.parsed_scope.start" : 68, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.Configuration.ItemProviders.Type) -> (@escaping (Item) -> ItemIdentifier, @escaping (Item, Item) -> Bool, @escaping (Item, Item) -> Bool) -> SectionedDiff.Configuration.ItemProviders", - "key.typeusr" : "$s10identifier7updated9movedHint10ListableUI13SectionedDiffV13ConfigurationV13ItemProvidersVyxq_q0_q1___Gq1_q0_c_Sbq0__q0_tcSbq0__q0_tctcD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV13ItemProvidersV10identifier7updated9movedHintAGyxq_q0_q1___Gq1_q0_c_Sbq0__q0_tcSbq0__q0_tctcfc" - } - ], - "key.typename" : "SectionedDiff.Configuration.ItemProviders.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV13ConfigurationV13ItemProvidersVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV13ItemProvidersV" - } - ], - "key.typename" : "SectionedDiff.Configuration.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV13ConfigurationVyxq_q0_q1__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV13ConfigurationV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Declaration>", - "key.bodylength" : 5494, - "key.bodyoffset" : 2118, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 5522, - "key.line" : 81, - "key.modulename" : "ListableUI", - "key.name" : "SectionChanges", - "key.namelength" : 14, - "key.nameoffset" : 2098, - "key.offset" : 2091, - "key.parsed_declaration" : "struct SectionChanges", - "key.parsed_scope.end" : 251, - "key.parsed_scope.start" : 81, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let added: [Added<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> added<\/decl.name>: [Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 83, - "key.modulename" : "ListableUI", - "key.name" : "added", - "key.namelength" : 5, - "key.nameoffset" : 2131, - "key.offset" : 2127, - "key.parsed_declaration" : "let added : [Added]", - "key.parsed_scope.end" : 83, - "key.parsed_scope.start" : 83, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.SectionChanges.Added]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV5AddedVyxq_q0_q1___GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5addedSayAE5AddedVyxq_q0_q1___GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let removed: [Removed<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: [Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "removed", - "key.namelength" : 7, - "key.nameoffset" : 2159, - "key.offset" : 2155, - "key.parsed_declaration" : "let removed : [Removed]", - "key.parsed_scope.end" : 84, - "key.parsed_scope.start" : 84, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.SectionChanges.Removed]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV7RemovedVyxq_q0_q1___GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7removedSayAE7RemovedVyxq_q0_q1___GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let moved: [Moved<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moved<\/decl.name>: [Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 86, - "key.modulename" : "ListableUI", - "key.name" : "moved", - "key.namelength" : 5, - "key.nameoffset" : 2200, - "key.offset" : 2196, - "key.parsed_declaration" : "let moved : [Moved]", - "key.parsed_scope.end" : 86, - "key.parsed_scope.start" : 86, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.SectionChanges.Moved]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV5MovedVyxq_q0_q1___GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5movedSayAE5MovedVyxq_q0_q1___GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let noChange: [NoChange<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> noChange<\/decl.name>: [NoChange<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 87, - "key.modulename" : "ListableUI", - "key.name" : "noChange", - "key.namelength" : 8, - "key.nameoffset" : 2228, - "key.offset" : 2224, - "key.parsed_declaration" : "let noChange : [NoChange]", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 87, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.SectionChanges.NoChange]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV8NoChangeVyxq_q0_q1___GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8noChangeSayAE02NoH0Vyxq_q0_q1___GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let addedItemIdentifiers: Set<\/Type><ItemIdentifier<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> addedItemIdentifiers<\/decl.name>: Set<\/ref.struct><ItemIdentifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "addedItemIdentifiers", - "key.namelength" : 20, - "key.nameoffset" : 2271, - "key.offset" : 2267, - "key.parsed_declaration" : "let addedItemIdentifiers : Set", - "key.parsed_scope.end" : 89, - "key.parsed_scope.start" : 89, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShyq1_GD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV20addedItemIdentifiersShyq1_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let removedItemIdentifiers: Set<\/Type><ItemIdentifier<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removedItemIdentifiers<\/decl.name>: Set<\/ref.struct><ItemIdentifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "removedItemIdentifiers", - "key.namelength" : 22, - "key.nameoffset" : 2326, - "key.offset" : 2322, - "key.parsed_declaration" : "let removedItemIdentifiers : Set", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 90, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShyq1_GD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV22removedItemIdentifiersShyq1_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let sectionsChangeCount: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sectionsChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 92, - "key.modulename" : "ListableUI", - "key.name" : "sectionsChangeCount", - "key.namelength" : 19, - "key.nameoffset" : 2392, - "key.offset" : 2388, - "key.parsed_declaration" : "let sectionsChangeCount : Int", - "key.parsed_scope.end" : 92, - "key.parsed_scope.start" : 92, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV19sectionsChangeCountSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let itemsChangeCount: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemsChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "itemsChangeCount", - "key.namelength" : 16, - "key.nameoffset" : 2430, - "key.offset" : 2426, - "key.parsed_declaration" : "let itemsChangeCount : Int", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV16itemsChangeCountSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var totalChangeCount: Int<\/Type> { get }<\/Declaration>", - "key.bodylength" : 70, - "key.bodyoffset" : 2498, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> totalChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 99, - "key.line" : 95, - "key.modulename" : "ListableUI", - "key.name" : "totalChangeCount", - "key.namelength" : 16, - "key.nameoffset" : 2474, - "key.offset" : 2470, - "key.parsed_declaration" : "var totalChangeCount : Int", - "key.parsed_scope.end" : 97, - "key.parsed_scope.start" : 95, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV16totalChangeCountSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isEmpty: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 2607, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 69, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "isEmpty", - "key.namelength" : 7, - "key.nameoffset" : 2591, - "key.offset" : 2587, - "key.parsed_declaration" : "var isEmpty : Bool", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 99, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7isEmptySbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let diff: ArrayDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 2674 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> diff<\/decl.name>: ArrayDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 103, - "key.modulename" : "ListableUI", - "key.name" : "diff", - "key.namelength" : 4, - "key.nameoffset" : 2686, - "key.offset" : 2682, - "key.parsed_declaration" : "private let diff : ArrayDiff", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 103, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff", - "key.typeusr" : "$s10ListableUI9ArrayDiffVyxq_GD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV4diff33_459A16665E334F63AE247A06F35B0E51LLAA05ArrayD0Vyxq_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(old: [Section<\/Type>], new: [Section<\/Type>], configuration: Configuration<\/Type>)<\/Declaration>", - "key.bodylength" : 3326, - "key.bodyoffset" : 2827, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3406, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "init(old:new:configuration:)", - "key.namelength" : 69, - "key.nameoffset" : 2748, - "key.offset" : 2748, - "key.parsed_declaration" : "init(old : [Section], new : [Section], configuration : Configuration)", - "key.parsed_scope.end" : 193, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let sectionsChangeCount: Int<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sectionsChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 130, - "key.line" : 167, - "key.modulename" : "ListableUI", - "key.name" : "sectionsChangeCount", - "key.namelength" : 19, - "key.nameoffset" : 4958, - "key.offset" : 4954, - "key.parsed_declaration" : "let sectionsChangeCount =\n self.added.count\n + self.removed.count\n + self.moved.count", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 167, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc19sectionsChangeCountL_Sivp" - }, - { - "key.annotated_decl" : "let itemsChangeCount: Int<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemsChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 175, - "key.line" : 172, - "key.modulename" : "ListableUI", - "key.name" : "itemsChangeCount", - "key.namelength" : 16, - "key.nameoffset" : 5114, - "key.offset" : 5110, - "key.parsed_declaration" : "let itemsChangeCount =\n self.moved.reduce(0, { $0 + $1.itemChanges.changeCount })\n + self.noChange.reduce(0, { $0 + $1.itemChanges.changeCount })", - "key.parsed_scope.end" : 172, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc16itemsChangeCountL_Sivp" - }, - { - "key.annotated_decl" : "let hasChanges: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> hasChanges<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 64, - "key.line" : 179, - "key.modulename" : "ListableUI", - "key.name" : "hasChanges", - "key.namelength" : 10, - "key.nameoffset" : 5440, - "key.offset" : 5436, - "key.parsed_declaration" : "let hasChanges = itemsChangeCount > 0 || sectionsChangeCount > 0", - "key.parsed_scope.end" : 179, - "key.parsed_scope.start" : 179, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc03hasF0L_Sbvp" - } - ], - "key.typename" : " (SectionedDiff.SectionChanges.Type) -> ([Section], [Section], SectionedDiff.Configuration) -> SectionedDiff.SectionChanges", - "key.typeusr" : "$s3old3new13configuration10ListableUI13SectionedDiffV14SectionChangesVyxq_q0_q1__GSayxG_AjF13ConfigurationVyxq_q0_q1__GtcD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private static func allItemIDs(in sections: [Section<\/Type>], configuration: Configuration<\/Type>) -> Set<\/Type><ItemIdentifier<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6172 - } - ], - "key.bodylength" : 320, - "key.bodyoffset" : 6283, - "key.column" : 29, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> allItemIDs<\/decl.name>(in<\/decl.var.parameter.argument_label> sections<\/decl.var.parameter.name>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Set<\/ref.struct><ItemIdentifier<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 424, - "key.line" : 195, - "key.modulename" : "ListableUI", - "key.name" : "allItemIDs(in:configuration:)", - "key.namelength" : 66, - "key.nameoffset" : 6192, - "key.offset" : 6180, - "key.parsed_declaration" : "private static func allItemIDs(in sections : [Section], configuration : Configuration) -> Set", - "key.parsed_scope.end" : 206, - "key.parsed_scope.start" : 195, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var IDs: Set<\/Type><ItemIdentifier<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> IDs<\/decl.name>: Set<\/ref.struct><ItemIdentifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 31, - "key.line" : 197, - "key.modulename" : "ListableUI", - "key.name" : "IDs", - "key.namelength" : 3, - "key.nameoffset" : 6313, - "key.offset" : 6309, - "key.parsed_declaration" : "var IDs = Set()", - "key.parsed_scope.end" : 197, - "key.parsed_scope.start" : 197, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShyq1_GD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV10allItemIDs33_459A16665E334F63AE247A06F35B0E51LL2in13configurationShyq1_GSayxG_AC13ConfigurationVyxq_q0_q1__GtFZ0I0L_AJvp" - } - ], - "key.typename" : " (SectionedDiff.SectionChanges.Type) -> ([Section], SectionedDiff.Configuration) -> Set", - "key.typeusr" : "$s2in13configurationShyq1_GSayxG_10ListableUI13SectionedDiffV13ConfigurationVyxq_q0_q1__GtcD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV10allItemIDs33_459A16665E334F63AE247A06F35B0E51LL2in13configurationShyq1_GSayxG_AC13ConfigurationVyxq_q0_q1__GtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Type>.Added<\/Declaration>", - "key.bodylength" : 148, - "key.bodyoffset" : 6644, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/ref.struct>.Added<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 171, - "key.line" : 208, - "key.modulename" : "ListableUI", - "key.name" : "Added", - "key.namelength" : 5, - "key.nameoffset" : 6629, - "key.offset" : 6622, - "key.parsed_declaration" : "struct Added", - "key.parsed_scope.end" : 215, - "key.parsed_scope.start" : 208, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: SectionIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: SectionIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 210, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 6661, - "key.offset" : 6657, - "key.parsed_declaration" : "let identifier : SectionIdentifier", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 210, - "key.reusingastcontext" : false, - "key.typename" : "SectionIdentifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5AddedV10identifierq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 212, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 6721, - "key.offset" : 6717, - "key.parsed_declaration" : "let newIndex : Int", - "key.parsed_scope.end" : 212, - "key.parsed_scope.start" : 212, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5AddedV8newIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newValue: Section<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 214, - "key.modulename" : "ListableUI", - "key.name" : "newValue", - "key.namelength" : 8, - "key.nameoffset" : 6765, - "key.offset" : 6761, - "key.parsed_declaration" : "let newValue : Section", - "key.parsed_scope.end" : 214, - "key.parsed_scope.start" : 214, - "key.reusingastcontext" : false, - "key.typename" : "Section", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5AddedV8newValuexvp" - } - ], - "key.typename" : "SectionedDiff.SectionChanges.Added.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV5AddedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5AddedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Type>.Removed<\/Declaration>", - "key.bodylength" : 148, - "key.bodyoffset" : 6835, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/ref.struct>.Removed<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 173, - "key.line" : 217, - "key.modulename" : "ListableUI", - "key.name" : "Removed", - "key.namelength" : 7, - "key.nameoffset" : 6818, - "key.offset" : 6811, - "key.parsed_declaration" : "struct Removed", - "key.parsed_scope.end" : 224, - "key.parsed_scope.start" : 217, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: SectionIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: SectionIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 219, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 6852, - "key.offset" : 6848, - "key.parsed_declaration" : "let identifier : SectionIdentifier", - "key.parsed_scope.end" : 219, - "key.parsed_scope.start" : 219, - "key.reusingastcontext" : false, - "key.typename" : "SectionIdentifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7RemovedV10identifierq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 221, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 6912, - "key.offset" : 6908, - "key.parsed_declaration" : "let oldIndex : Int", - "key.parsed_scope.end" : 221, - "key.parsed_scope.start" : 221, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7RemovedV8oldIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldValue: Section<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 223, - "key.modulename" : "ListableUI", - "key.name" : "oldValue", - "key.namelength" : 8, - "key.nameoffset" : 6956, - "key.offset" : 6952, - "key.parsed_declaration" : "let oldValue : Section", - "key.parsed_scope.end" : 223, - "key.parsed_scope.start" : 223, - "key.reusingastcontext" : false, - "key.typename" : "Section", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7RemovedV8oldValuexvp" - } - ], - "key.typename" : "SectionedDiff.SectionChanges.Removed.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV7RemovedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7RemovedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Type>.Moved<\/Declaration>", - "key.bodylength" : 269, - "key.bodyoffset" : 7024, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/ref.struct>.Moved<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 292, - "key.line" : 226, - "key.modulename" : "ListableUI", - "key.name" : "Moved", - "key.namelength" : 5, - "key.nameoffset" : 7009, - "key.offset" : 7002, - "key.parsed_declaration" : "struct Moved", - "key.parsed_scope.end" : 237, - "key.parsed_scope.start" : 226, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: SectionIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: SectionIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 228, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 7041, - "key.offset" : 7037, - "key.parsed_declaration" : "let identifier : SectionIdentifier", - "key.parsed_scope.end" : 228, - "key.parsed_scope.start" : 228, - "key.reusingastcontext" : false, - "key.typename" : "SectionIdentifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV10identifierq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 230, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 7101, - "key.offset" : 7097, - "key.parsed_declaration" : "let oldIndex : Int", - "key.parsed_scope.end" : 230, - "key.parsed_scope.start" : 230, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV8oldIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 231, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 7132, - "key.offset" : 7128, - "key.parsed_declaration" : "let newIndex : Int", - "key.parsed_scope.end" : 231, - "key.parsed_scope.start" : 231, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV8newIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldValue: Section<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 233, - "key.modulename" : "ListableUI", - "key.name" : "oldValue", - "key.namelength" : 8, - "key.nameoffset" : 7176, - "key.offset" : 7172, - "key.parsed_declaration" : "let oldValue : Section", - "key.parsed_scope.end" : 233, - "key.parsed_scope.start" : 233, - "key.reusingastcontext" : false, - "key.typename" : "Section", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV8oldValuexvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newValue: Section<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 234, - "key.modulename" : "ListableUI", - "key.name" : "newValue", - "key.namelength" : 8, - "key.nameoffset" : 7211, - "key.offset" : 7207, - "key.parsed_declaration" : "let newValue : Section", - "key.parsed_scope.end" : 234, - "key.parsed_scope.start" : 234, - "key.reusingastcontext" : false, - "key.typename" : "Section", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV8newValuexvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let itemChanges: ItemChanges<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemChanges<\/decl.name>: ItemChanges<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 236, - "key.modulename" : "ListableUI", - "key.name" : "itemChanges", - "key.namelength" : 11, - "key.nameoffset" : 7259, - "key.offset" : 7255, - "key.parsed_declaration" : "let itemChanges : ItemChanges", - "key.parsed_scope.end" : 236, - "key.parsed_scope.start" : 236, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__GD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV04itemF0AC04ItemF0Vyxq_q0_q1__Gvp" - } - ], - "key.typename" : "SectionedDiff.SectionChanges.Moved.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV5MovedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Type>.NoChange<\/Declaration>", - "key.bodylength" : 269, - "key.bodyoffset" : 7337, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/ref.struct>.NoChange<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 295, - "key.line" : 239, - "key.modulename" : "ListableUI", - "key.name" : "NoChange", - "key.namelength" : 8, - "key.nameoffset" : 7319, - "key.offset" : 7312, - "key.parsed_declaration" : "struct NoChange", - "key.parsed_scope.end" : 250, - "key.parsed_scope.start" : 239, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: SectionIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: SectionIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 241, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 7354, - "key.offset" : 7350, - "key.parsed_declaration" : "let identifier : SectionIdentifier", - "key.parsed_scope.end" : 241, - "key.parsed_scope.start" : 241, - "key.reusingastcontext" : false, - "key.typename" : "SectionIdentifier", - "key.typeusr" : "$sq_D", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV10identifierq_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 243, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 7414, - "key.offset" : 7410, - "key.parsed_declaration" : "let oldIndex : Int", - "key.parsed_scope.end" : 243, - "key.parsed_scope.start" : 243, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV8oldIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 244, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 7445, - "key.offset" : 7441, - "key.parsed_declaration" : "let newIndex : Int", - "key.parsed_scope.end" : 244, - "key.parsed_scope.start" : 244, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV8newIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldValue: Section<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 246, - "key.modulename" : "ListableUI", - "key.name" : "oldValue", - "key.namelength" : 8, - "key.nameoffset" : 7489, - "key.offset" : 7485, - "key.parsed_declaration" : "let oldValue : Section", - "key.parsed_scope.end" : 246, - "key.parsed_scope.start" : 246, - "key.reusingastcontext" : false, - "key.typename" : "Section", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV8oldValuexvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newValue: Section<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 247, - "key.modulename" : "ListableUI", - "key.name" : "newValue", - "key.namelength" : 8, - "key.nameoffset" : 7524, - "key.offset" : 7520, - "key.parsed_declaration" : "let newValue : Section", - "key.parsed_scope.end" : 247, - "key.parsed_scope.start" : 247, - "key.reusingastcontext" : false, - "key.typename" : "Section", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV8newValuexvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let itemChanges: ItemChanges<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemChanges<\/decl.name>: ItemChanges<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 249, - "key.modulename" : "ListableUI", - "key.name" : "itemChanges", - "key.namelength" : 11, - "key.nameoffset" : 7572, - "key.offset" : 7568, - "key.parsed_declaration" : "let itemChanges : ItemChanges", - "key.parsed_scope.end" : 249, - "key.parsed_scope.start" : 249, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__GD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV04itemF0AC04ItemF0Vyxq_q0_q1__Gvp" - } - ], - "key.typename" : "SectionedDiff.SectionChanges.NoChange.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV8NoChangeVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV" - } - ], - "key.typename" : "SectionedDiff.SectionChanges.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesVyxq_q0_q1__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Declaration>", - "key.bodylength" : 4189, - "key.bodyoffset" : 7652, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 4214, - "key.line" : 254, - "key.modulename" : "ListableUI", - "key.name" : "ItemChanges", - "key.namelength" : 11, - "key.nameoffset" : 7635, - "key.offset" : 7628, - "key.parsed_declaration" : "struct ItemChanges", - "key.parsed_scope.end" : 390, - "key.parsed_scope.start" : 254, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let added: [Added<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> added<\/decl.name>: [Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 256, - "key.modulename" : "ListableUI", - "key.name" : "added", - "key.namelength" : 5, - "key.nameoffset" : 7665, - "key.offset" : 7661, - "key.parsed_declaration" : "let added : [Added]", - "key.parsed_scope.end" : 256, - "key.parsed_scope.start" : 256, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.ItemChanges.Added]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV5AddedVyxq_q0_q1___GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5addedSayAE5AddedVyxq_q0_q1___GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let removed: [Removed<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: [Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 257, - "key.modulename" : "ListableUI", - "key.name" : "removed", - "key.namelength" : 7, - "key.nameoffset" : 7693, - "key.offset" : 7689, - "key.parsed_declaration" : "let removed : [Removed]", - "key.parsed_scope.end" : 257, - "key.parsed_scope.start" : 257, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.ItemChanges.Removed]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7RemovedVyxq_q0_q1___GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7removedSayAE7RemovedVyxq_q0_q1___GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let moved: [Moved<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moved<\/decl.name>: [Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 259, - "key.modulename" : "ListableUI", - "key.name" : "moved", - "key.namelength" : 5, - "key.nameoffset" : 7734, - "key.offset" : 7730, - "key.parsed_declaration" : "let moved : [Moved]", - "key.parsed_scope.end" : 259, - "key.parsed_scope.start" : 259, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.ItemChanges.Moved]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV5MovedVyxq_q0_q1___GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5movedSayAE5MovedVyxq_q0_q1___GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let updated: [Updated<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> updated<\/decl.name>: [Updated<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 260, - "key.modulename" : "ListableUI", - "key.name" : "updated", - "key.namelength" : 7, - "key.nameoffset" : 7762, - "key.offset" : 7758, - "key.parsed_declaration" : "let updated : [Updated]", - "key.parsed_scope.end" : 260, - "key.parsed_scope.start" : 260, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.ItemChanges.Updated]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7UpdatedVyxq_q0_q1___GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7updatedSayAE7UpdatedVyxq_q0_q1___GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let noChange: [NoChange<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> noChange<\/decl.name>: [NoChange<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 261, - "key.modulename" : "ListableUI", - "key.name" : "noChange", - "key.namelength" : 8, - "key.nameoffset" : 7794, - "key.offset" : 7790, - "key.parsed_declaration" : "let noChange : [NoChange]", - "key.parsed_scope.end" : 261, - "key.parsed_scope.start" : 261, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.ItemChanges.NoChange]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV8NoChangeVyxq_q0_q1___GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8noChangeSayAE02NoH0Vyxq_q0_q1___GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let changeCount: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> changeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 263, - "key.modulename" : "ListableUI", - "key.name" : "changeCount", - "key.namelength" : 11, - "key.nameoffset" : 7837, - "key.offset" : 7833, - "key.parsed_declaration" : "let changeCount : Int", - "key.parsed_scope.end" : 263, - "key.parsed_scope.start" : 263, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV11changeCountSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let diff: ArrayDiff<\/Type><Item<\/Type>, ItemIdentifier<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> diff<\/decl.name>: ArrayDiff<\/ref.struct><Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 265, - "key.modulename" : "ListableUI", - "key.name" : "diff", - "key.namelength" : 4, - "key.nameoffset" : 7876, - "key.offset" : 7872, - "key.parsed_declaration" : "let diff : ArrayDiff", - "key.parsed_scope.end" : 265, - "key.parsed_scope.start" : 265, - "key.reusingastcontext" : false, - "key.typename" : "ArrayDiff", - "key.typeusr" : "$s10ListableUI9ArrayDiffVyq0_q1_GD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV4diffAA05ArrayD0Vyq0_q1_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(old: Section<\/Type>, oldIndex: Int<\/Type>, new: Section<\/Type>, newIndex: Int<\/Type>, configuration: Configuration<\/Type>)<\/Declaration>", - "key.bodylength" : 273, - "key.bodyoffset" : 8038, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, oldIndex<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, newIndex<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 380, - "key.line" : 267, - "key.modulename" : "ListableUI", - "key.name" : "init(old:oldIndex:new:newIndex:configuration:)", - "key.namelength" : 96, - "key.nameoffset" : 7932, - "key.offset" : 7932, - "key.parsed_declaration" : "init(old : Section, oldIndex : Int, new : Section, newIndex : Int, configuration: Configuration)", - "key.parsed_scope.end" : 276, - "key.parsed_scope.start" : 267, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(old: [Item], oldIndex: Int, new: [Item], newIndex: Int, configuration: Configuration)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.ItemChanges.Type) -> (Section, Int, Section, Int, SectionedDiff.Configuration) -> SectionedDiff.ItemChanges", - "key.typeusr" : "$s3old0A5Index3new0cB013configuration10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__Gx_SixSiAH13ConfigurationVyxq_q0_q1__GtcD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV3old0G5Index3new0iH013configurationAEyxq_q0_q1__Gx_SixSiAC13ConfigurationVyxq_q0_q1__Gtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(old: [Item<\/Type>], oldIndex: Int<\/Type>, new: [Item<\/Type>], newIndex: Int<\/Type>, configuration: Configuration<\/Type>)<\/Declaration>", - "key.bodylength" : 2241, - "key.bodyoffset" : 8435, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: [Item<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, oldIndex<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Item<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, newIndex<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2347, - "key.line" : 278, - "key.modulename" : "ListableUI", - "key.name" : "init(old:oldIndex:new:newIndex:configuration:)", - "key.namelength" : 95, - "key.nameoffset" : 8330, - "key.offset" : 8330, - "key.parsed_declaration" : "init(old : [Item], oldIndex : Int, new : [Item], newIndex : Int, configuration : Configuration)", - "key.parsed_scope.end" : 338, - "key.parsed_scope.start" : 278, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(old: Section, oldIndex: Int, new: Section, newIndex: Int, configuration: Configuration)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.ItemChanges.Type) -> ([Item], Int, [Item], Int, SectionedDiff.Configuration) -> SectionedDiff.ItemChanges", - "key.typeusr" : "$s3old0A5Index3new0cB013configuration10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__GSayq0_G_SiALSiAH13ConfigurationVyxq_q0_q1__GtcD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV3old0G5Index3new0iH013configurationAEyxq_q0_q1__GSayq0_G_SiALSiAC13ConfigurationVyxq_q0_q1__Gtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.Added<\/Declaration>", - "key.bodylength" : 148, - "key.bodyoffset" : 10717, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.Added<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 171, - "key.line" : 340, - "key.modulename" : "ListableUI", - "key.name" : "Added", - "key.namelength" : 5, - "key.nameoffset" : 10702, - "key.offset" : 10695, - "key.parsed_declaration" : "struct Added", - "key.parsed_scope.end" : 347, - "key.parsed_scope.start" : 340, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 342, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 10734, - "key.offset" : 10730, - "key.parsed_declaration" : "let identifier : ItemIdentifier", - "key.parsed_scope.end" : 342, - "key.parsed_scope.start" : 342, - "key.reusingastcontext" : false, - "key.typename" : "ItemIdentifier", - "key.typeusr" : "$sq1_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5AddedV10identifierq1_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 344, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 10791, - "key.offset" : 10787, - "key.parsed_declaration" : "let newIndex : IndexPath", - "key.parsed_scope.end" : 344, - "key.parsed_scope.start" : 344, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5AddedV8newIndex10Foundation0I4PathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newValue: Item<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 346, - "key.modulename" : "ListableUI", - "key.name" : "newValue", - "key.namelength" : 8, - "key.nameoffset" : 10841, - "key.offset" : 10837, - "key.parsed_declaration" : "let newValue : Item", - "key.parsed_scope.end" : 346, - "key.parsed_scope.start" : 346, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$sq0_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5AddedV8newValueq0_vp" - } - ], - "key.typename" : "SectionedDiff.ItemChanges.Added.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV5AddedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5AddedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.Removed<\/Declaration>", - "key.bodylength" : 148, - "key.bodyoffset" : 10908, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.Removed<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 173, - "key.line" : 349, - "key.modulename" : "ListableUI", - "key.name" : "Removed", - "key.namelength" : 7, - "key.nameoffset" : 10891, - "key.offset" : 10884, - "key.parsed_declaration" : "struct Removed", - "key.parsed_scope.end" : 356, - "key.parsed_scope.start" : 349, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 351, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 10925, - "key.offset" : 10921, - "key.parsed_declaration" : "let identifier : ItemIdentifier", - "key.parsed_scope.end" : 351, - "key.parsed_scope.start" : 351, - "key.reusingastcontext" : false, - "key.typename" : "ItemIdentifier", - "key.typeusr" : "$sq1_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7RemovedV10identifierq1_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 353, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 10982, - "key.offset" : 10978, - "key.parsed_declaration" : "let oldIndex : IndexPath", - "key.parsed_scope.end" : 353, - "key.parsed_scope.start" : 353, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7RemovedV8oldIndex10Foundation0I4PathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldValue: Item<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 355, - "key.modulename" : "ListableUI", - "key.name" : "oldValue", - "key.namelength" : 8, - "key.nameoffset" : 11032, - "key.offset" : 11028, - "key.parsed_declaration" : "let oldValue : Item", - "key.parsed_scope.end" : 355, - "key.parsed_scope.start" : 355, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$sq0_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7RemovedV8oldValueq0_vp" - } - ], - "key.typename" : "SectionedDiff.ItemChanges.Removed.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV7RemovedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7RemovedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.Moved<\/Declaration>", - "key.bodylength" : 217, - "key.bodyoffset" : 11097, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.Moved<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 240, - "key.line" : 358, - "key.modulename" : "ListableUI", - "key.name" : "Moved", - "key.namelength" : 5, - "key.nameoffset" : 11082, - "key.offset" : 11075, - "key.parsed_declaration" : "struct Moved", - "key.parsed_scope.end" : 367, - "key.parsed_scope.start" : 358, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 360, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 11114, - "key.offset" : 11110, - "key.parsed_declaration" : "let identifier : ItemIdentifier", - "key.parsed_scope.end" : 360, - "key.parsed_scope.start" : 360, - "key.reusingastcontext" : false, - "key.typename" : "ItemIdentifier", - "key.typeusr" : "$sq1_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV10identifierq1_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 362, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 11171, - "key.offset" : 11167, - "key.parsed_declaration" : "let oldIndex : IndexPath", - "key.parsed_scope.end" : 362, - "key.parsed_scope.start" : 362, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV8oldIndex10Foundation0I4PathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 363, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 11208, - "key.offset" : 11204, - "key.parsed_declaration" : "let newIndex : IndexPath", - "key.parsed_scope.end" : 363, - "key.parsed_scope.start" : 363, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV8newIndex10Foundation0I4PathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var oldValue: Item<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 365, - "key.modulename" : "ListableUI", - "key.name" : "oldValue", - "key.namelength" : 8, - "key.nameoffset" : 11258, - "key.offset" : 11254, - "key.parsed_declaration" : "var oldValue : Item", - "key.parsed_scope.end" : 365, - "key.parsed_scope.start" : 365, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Item", - "key.typeusr" : "$sq0_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV8oldValueq0_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var newValue: Item<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 366, - "key.modulename" : "ListableUI", - "key.name" : "newValue", - "key.namelength" : 8, - "key.nameoffset" : 11290, - "key.offset" : 11286, - "key.parsed_declaration" : "var newValue : Item", - "key.parsed_scope.end" : 366, - "key.parsed_scope.start" : 366, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Item", - "key.typeusr" : "$sq0_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV8newValueq0_vp" - } - ], - "key.typename" : "SectionedDiff.ItemChanges.Moved.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV5MovedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.Updated<\/Declaration>", - "key.bodylength" : 217, - "key.bodyoffset" : 11357, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.Updated<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 242, - "key.line" : 369, - "key.modulename" : "ListableUI", - "key.name" : "Updated", - "key.namelength" : 7, - "key.nameoffset" : 11340, - "key.offset" : 11333, - "key.parsed_declaration" : "struct Updated", - "key.parsed_scope.end" : 378, - "key.parsed_scope.start" : 369, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 371, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 11374, - "key.offset" : 11370, - "key.parsed_declaration" : "let identifier : ItemIdentifier", - "key.parsed_scope.end" : 371, - "key.parsed_scope.start" : 371, - "key.reusingastcontext" : false, - "key.typename" : "ItemIdentifier", - "key.typeusr" : "$sq1_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV10identifierq1_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 373, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 11431, - "key.offset" : 11427, - "key.parsed_declaration" : "let oldIndex : IndexPath", - "key.parsed_scope.end" : 373, - "key.parsed_scope.start" : 373, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV8oldIndex10Foundation0I4PathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 374, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 11468, - "key.offset" : 11464, - "key.parsed_declaration" : "let newIndex : IndexPath", - "key.parsed_scope.end" : 374, - "key.parsed_scope.start" : 374, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV8newIndex10Foundation0I4PathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldValue: Item<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 376, - "key.modulename" : "ListableUI", - "key.name" : "oldValue", - "key.namelength" : 8, - "key.nameoffset" : 11518, - "key.offset" : 11514, - "key.parsed_declaration" : "let oldValue : Item", - "key.parsed_scope.end" : 376, - "key.parsed_scope.start" : 376, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$sq0_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV8oldValueq0_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newValue: Item<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 377, - "key.modulename" : "ListableUI", - "key.name" : "newValue", - "key.namelength" : 8, - "key.nameoffset" : 11550, - "key.offset" : 11546, - "key.parsed_declaration" : "let newValue : Item", - "key.parsed_scope.end" : 377, - "key.parsed_scope.start" : 377, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$sq0_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV8newValueq0_vp" - } - ], - "key.typename" : "SectionedDiff.ItemChanges.Updated.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV7UpdatedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.NoChange<\/Declaration>", - "key.bodylength" : 217, - "key.bodyoffset" : 11618, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.NoChange<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 243, - "key.line" : 380, - "key.modulename" : "ListableUI", - "key.name" : "NoChange", - "key.namelength" : 8, - "key.nameoffset" : 11600, - "key.offset" : 11593, - "key.parsed_declaration" : "struct NoChange", - "key.parsed_scope.end" : 389, - "key.parsed_scope.start" : 380, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 382, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 11635, - "key.offset" : 11631, - "key.parsed_declaration" : "let identifier : ItemIdentifier", - "key.parsed_scope.end" : 382, - "key.parsed_scope.start" : 382, - "key.reusingastcontext" : false, - "key.typename" : "ItemIdentifier", - "key.typeusr" : "$sq1_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV10identifierq1_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldIndex: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 384, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 11692, - "key.offset" : 11688, - "key.parsed_declaration" : "let oldIndex : IndexPath", - "key.parsed_scope.end" : 384, - "key.parsed_scope.start" : 384, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV8oldIndex10Foundation0J4PathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newIndex: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 385, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 11729, - "key.offset" : 11725, - "key.parsed_declaration" : "let newIndex : IndexPath", - "key.parsed_scope.end" : 385, - "key.parsed_scope.start" : 385, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV8newIndex10Foundation0J4PathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let oldValue: Item<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 387, - "key.modulename" : "ListableUI", - "key.name" : "oldValue", - "key.namelength" : 8, - "key.nameoffset" : 11779, - "key.offset" : 11775, - "key.parsed_declaration" : "let oldValue : Item", - "key.parsed_scope.end" : 387, - "key.parsed_scope.start" : 387, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$sq0_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV8oldValueq0_vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let newValue: Item<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 388, - "key.modulename" : "ListableUI", - "key.name" : "newValue", - "key.namelength" : 8, - "key.nameoffset" : 11811, - "key.offset" : 11807, - "key.parsed_declaration" : "let newValue : Item", - "key.parsed_scope.end" : 388, - "key.parsed_scope.start" : 388, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$sq0_D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV8newValueq0_vp" - } - ], - "key.typename" : "SectionedDiff.ItemChanges.NoChange.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV8NoChangeVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV" - } - ], - "key.typename" : "SectionedDiff.ItemChanges.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV" - } - ], - "key.typename" : "SectionedDiff.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffVyxq_q0_q1_GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Type>.Added<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 11944, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 11893 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/ref.struct>.Added<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 99, - "key.line" : 208, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.SectionChanges.Added", - "key.namelength" : 34, - "key.nameoffset" : 11856, - "key.offset" : 11846, - "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.Added : Equatable where Section:Equatable, Item:Equatable", - "key.parsed_scope.end" : 393, - "key.parsed_scope.start" : 393, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.SectionChanges.Added.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV5AddedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5AddedV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Type>.Removed<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 12046, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 11995 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/ref.struct>.Removed<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 101, - "key.line" : 217, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.SectionChanges.Removed", - "key.namelength" : 36, - "key.nameoffset" : 11956, - "key.offset" : 11946, - "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.Removed : Equatable where Section:Equatable, Item:Equatable", - "key.parsed_scope.end" : 394, - "key.parsed_scope.start" : 394, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.SectionChanges.Removed.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV7RemovedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7RemovedV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Type>.Moved<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 12146, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12095 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/ref.struct>.Moved<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 99, - "key.line" : 226, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.SectionChanges.Moved", - "key.namelength" : 34, - "key.nameoffset" : 12058, - "key.offset" : 12048, - "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.Moved : Equatable where Section:Equatable, Item:Equatable", - "key.parsed_scope.end" : 395, - "key.parsed_scope.start" : 395, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.SectionChanges.Moved.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV5MovedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Type>.NoChange<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 12249, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12198 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/ref.struct>.NoChange<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 102, - "key.line" : 239, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.SectionChanges.NoChange", - "key.namelength" : 37, - "key.nameoffset" : 12158, - "key.offset" : 12148, - "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.NoChange : Equatable where Section:Equatable, Item:Equatable", - "key.parsed_scope.end" : 396, - "key.parsed_scope.start" : 396, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.SectionChanges.NoChange.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV8NoChangeVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 12322, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12290 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 71, - "key.line" : 254, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.ItemChanges", - "key.namelength" : 25, - "key.nameoffset" : 12262, - "key.offset" : 12252, - "key.parsed_declaration" : "extension SectionedDiff.ItemChanges : Equatable where Item:Equatable", - "key.parsed_scope.end" : 398, - "key.parsed_scope.start" : 398, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.Added<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 12401, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12369 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.Added<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 77, - "key.line" : 340, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.ItemChanges.Added", - "key.namelength" : 31, - "key.nameoffset" : 12335, - "key.offset" : 12325, - "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.Added : Equatable where Item:Equatable", - "key.parsed_scope.end" : 400, - "key.parsed_scope.start" : 400, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges.Added.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV5AddedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5AddedV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.Removed<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 12481, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12449 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.Removed<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 79, - "key.line" : 349, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.ItemChanges.Removed", - "key.namelength" : 33, - "key.nameoffset" : 12413, - "key.offset" : 12403, - "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.Removed : Equatable where Item:Equatable", - "key.parsed_scope.end" : 401, - "key.parsed_scope.start" : 401, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges.Removed.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV7RemovedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7RemovedV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.Moved<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 12559, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12527 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.Moved<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 77, - "key.line" : 358, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.ItemChanges.Moved", - "key.namelength" : 31, - "key.nameoffset" : 12493, - "key.offset" : 12483, - "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.Moved : Equatable where Item:Equatable", - "key.parsed_scope.end" : 402, - "key.parsed_scope.start" : 402, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges.Moved.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV5MovedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.Updated<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 12639, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12607 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.Updated<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 79, - "key.line" : 369, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.ItemChanges.Updated", - "key.namelength" : 33, - "key.nameoffset" : 12571, - "key.offset" : 12561, - "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.Updated : Equatable where Item:Equatable", - "key.parsed_scope.end" : 403, - "key.parsed_scope.start" : 403, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges.Updated.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV7UpdatedVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Type>.NoChange<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 12720, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12688 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/ref.struct>.NoChange<\/decl.name><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 80, - "key.line" : 380, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.ItemChanges.NoChange", - "key.namelength" : 34, - "key.nameoffset" : 12651, - "key.offset" : 12641, - "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.NoChange : Equatable where Item:Equatable", - "key.parsed_scope.end" : 404, - "key.parsed_scope.start" : 404, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges.NoChange.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV8NoChangeVyxq_q0_q1___GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<Section, SectionIdentifier, Item, ItemIdentifier> where SectionIdentifier<\/Type> : Hashable<\/Type>, ItemIdentifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 1403, - "key.bodyoffset" : 12749, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/decl.name><Section<\/decl.generic_type_param.name><\/decl.generic_type_param>, SectionIdentifier<\/decl.generic_type_param.name><\/decl.generic_type_param>, Item<\/decl.generic_type_param.name><\/decl.generic_type_param>, ItemIdentifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> SectionIdentifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement>, ItemIdentifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1429, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff", - "key.namelength" : 13, - "key.nameoffset" : 12734, - "key.offset" : 12724, - "key.parsed_declaration" : "extension SectionedDiff", - "key.parsed_scope.end" : 438, - "key.parsed_scope.start" : 407, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func transform<Mapped>(input: [Mapped<\/Type>], removed: (Section<\/Type>, Mapped<\/Type>) -> (), added: (Section<\/Type>) -> Mapped<\/Type>, moved: (Section<\/Type>, Section<\/Type>, ItemChanges<\/Type>, inout Mapped<\/Type>) -> (), noChange: (Section<\/Type>, Section<\/Type>, ItemChanges<\/Type>, inout Mapped<\/Type>) -> (), mappedItemCount: (Mapped<\/Type>) -> Int<\/Type>, sectionItemCount: (Section<\/Type>) -> Int<\/Type>) -> [Mapped<\/Type>]<\/Declaration>", - "key.bodylength" : 823, - "key.bodyoffset" : 13327, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Takes the content of the `input` array, and transforms it using the diff's changes\ninto a newly returned array, creating, moving, or updating the content as required.", - "key.doc.column" : 10, - "key.doc.comment" : "Takes the content of the `input` array, and transforms it using the diff's changes\ninto a newly returned array, creating, moving, or updating the content as required.", - "key.doc.declaration" : "func transform(input: [Mapped], removed: (Section, Mapped) -> (), added: (Section) -> Mapped, moved: (Section, Section, ItemChanges, inout Mapped) -> (), noChange: (Section, Section, ItemChanges, inout Mapped) -> (), mappedItemCount: (Mapped) -> Int, sectionItemCount: (Section) -> Int) -> [Mapped]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.doc.full_as_xml" : "transform(input:removed:added:moved:noChange:mappedItemCount:sectionItemCount:)<\/Name>s:10ListableUI13SectionedDiffV9transform5input7removed5added5moved8noChange15mappedItemCount07sectionmN0Sayqd__GAL_yx_qd__tXEqd__xXEyx_xAC0M7ChangesVyxq_q0_q1__Gqd__ztXEyx_xAOqd__ztXESiqd__XESixXEtlF<\/USR>func transform<Mapped>(input: [Mapped], removed: (Section, Mapped) -> (), added: (Section) -> Mapped, moved: (Section, Section, ItemChanges, inout Mapped) -> (), noChange: (Section, Section, ItemChanges, inout Mapped) -> (), mappedItemCount: (Mapped) -> Int, sectionItemCount: (Section) -> Int) -> [Mapped]<\/Declaration>Takes the content of the input<\/codeVoice> array, and transforms it using the diff’s changes into a newly returned array, creating, moving, or updating the content as required.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 411, - "key.doc.name" : "transform(input:removed:added:moved:noChange:mappedItemCount:sectionItemCount:)", - "key.doc.type" : "Function", - "key.doclength" : 179, - "key.docoffset" : 12759, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> transform<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(input<\/decl.var.parameter.argument_label>: [Mapped<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, removed<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, added<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, moved<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ItemChanges<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, noChange<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ItemChanges<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, mappedItemCount<\/decl.var.parameter.argument_label>: (Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, sectionItemCount<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1209, - "key.line" : 411, - "key.modulename" : "ListableUI", - "key.name" : "transform(input:removed:added:moved:noChange:mappedItemCount:sectionItemCount:)", - "key.namelength" : 362, - "key.nameoffset" : 12947, - "key.offset" : 12942, - "key.parsed_declaration" : "func transform(\n input : [Mapped],\n removed : (Section, Mapped) -> (),\n added : (Section) -> Mapped,\n moved : (Section, Section, ItemChanges, inout Mapped) -> (),\n noChange : (Section, Section, ItemChanges, inout Mapped) -> (),\n mappedItemCount : (Mapped) -> Int,\n sectionItemCount : (Section) -> Int\n ) -> [Mapped]", - "key.parsed_scope.end" : 437, - "key.parsed_scope.start" : 411, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 411, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 12957, - "key.offset" : 12957, - "key.parsed_declaration" : "func transformlet oldSizes: [Int<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldSizes<\/decl.name>: [Int<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 60, - "key.line" : 421, - "key.modulename" : "ListableUI", - "key.name" : "oldSizes", - "key.namelength" : 8, - "key.nameoffset" : 13340, - "key.offset" : 13336, - "key.parsed_declaration" : "let oldSizes : [Int] = self.old.map { sectionItemCount($0) }", - "key.parsed_scope.end" : 421, - "key.parsed_scope.start" : 421, - "key.reusingastcontext" : false, - "key.typename" : "[Int]", - "key.typeusr" : "$sSaySiGD", - "key.usr" : "s:10ListableUI13SectionedDiffV9transform5input7removed5added5moved8noChange15mappedItemCount07sectionmN0Sayqd__GAL_yx_qd__tXEqd__xXEyx_xAC0M7ChangesVyxq_q0_q1__Gqd__ztXEyx_xAOqd__ztXESiqd__XESixXEtlF8oldSizesL_SaySiGvp" - }, - { - "key.annotated_decl" : "let inputSizes: [Int<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> inputSizes<\/decl.name>: [Int<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 58, - "key.line" : 422, - "key.modulename" : "ListableUI", - "key.name" : "inputSizes", - "key.namelength" : 10, - "key.nameoffset" : 13409, - "key.offset" : 13405, - "key.parsed_declaration" : "let inputSizes : [Int] = input.map { mappedItemCount($0) }", - "key.parsed_scope.end" : 422, - "key.parsed_scope.start" : 422, - "key.reusingastcontext" : false, - "key.typename" : "[Int]", - "key.typeusr" : "$sSaySiGD", - "key.usr" : "s:10ListableUI13SectionedDiffV9transform5input7removed5added5moved8noChange15mappedItemCount07sectionmN0Sayqd__GAL_yx_qd__tXEqd__xXEyx_xAC0M7ChangesVyxq_q0_q1__Gqd__ztXEyx_xAOqd__ztXESiqd__XESixXEtlF0F5SizesL_SaySiGvp" - } - ], - "key.typename" : " (SectionedDiff) -> ([Mapped], (Section, Mapped) -> (), (Section) -> Mapped, (Section, Section, SectionedDiff.ItemChanges, inout Mapped) -> (), (Section, Section, SectionedDiff.ItemChanges, inout Mapped) -> (), (Mapped) -> Int, (Section) -> Int) -> [Mapped]", - "key.typeusr" : "$s5input7removed5added5moved8noChange15mappedItemCount07sectionhI0Sayqd__GAH_yx_qd__tXEqd__xXEyx_x10ListableUI13SectionedDiffV0H7ChangesVyxq_q0_q1__Gqd__ztXEyx_xANqd__ztXESiqd__XESixXEtcluD", - "key.usr" : "s:10ListableUI13SectionedDiffV9transform5input7removed5added5moved8noChange15mappedItemCount07sectionmN0Sayqd__GAL_yx_qd__tXEqd__xXEyx_xAC0M7ChangesVyxq_q0_q1__Gqd__ztXEyx_xAOqd__ztXESiqd__XESixXEtlF" - } - ], - "key.typename" : "SectionedDiff.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffVyxq_q0_q1_GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.SectionChanges<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 14155 - } - ], - "key.bodylength" : 2576, - "key.bodyoffset" : 14207, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.SectionChanges<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2617, - "key.line" : 81, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.SectionChanges", - "key.namelength" : 28, - "key.nameoffset" : 14177, - "key.offset" : 14167, - "key.parsed_declaration" : "fileprivate extension SectionedDiff.SectionChanges", - "key.parsed_scope.end" : 526, - "key.parsed_scope.start" : 440, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "func transform<Mapped>(input: [Mapped<\/Type>], removed: (Section<\/Type>, Mapped<\/Type>) -> (), added: (Section<\/Type>) -> Mapped<\/Type>, moved: (Section<\/Type>, Section<\/Type>, SectionedDiff<\/Type>.ItemChanges<\/Type>, inout Mapped<\/Type>) -> (), noChange: (Section<\/Type>, Section<\/Type>, SectionedDiff<\/Type>.ItemChanges<\/Type>, inout Mapped<\/Type>) -> ()) -> [Mapped<\/Type>]<\/Declaration>", - "key.bodylength" : 1201, - "key.bodyoffset" : 14537, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> transform<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(input<\/decl.var.parameter.argument_label>: [Mapped<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, removed<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, added<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, moved<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, SectionedDiff<\/ref.struct>.ItemChanges<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, noChange<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, SectionedDiff<\/ref.struct>.ItemChanges<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1527, - "key.line" : 442, - "key.modulename" : "ListableUI", - "key.name" : "transform(input:removed:added:moved:noChange:)", - "key.namelength" : 302, - "key.nameoffset" : 14217, - "key.offset" : 14212, - "key.parsed_declaration" : "func transform(\n input : [Mapped],\n removed : (Section, Mapped) -> (),\n added : (Section) -> Mapped,\n moved : (Section, Section, SectionedDiff.ItemChanges, inout Mapped) -> (),\n noChange : (Section, Section, SectionedDiff.ItemChanges, inout Mapped) -> ()\n ) -> [Mapped]", - "key.parsed_scope.end" : 485, - "key.parsed_scope.start" : 442, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 442, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 14227, - "key.offset" : 14227, - "key.parsed_declaration" : "func transformlet removes: [Removal<\/Type><Mapped<\/Type>>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removes<\/decl.name>: [Removal<\/ref.enum><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 281, - "key.line" : 450, - "key.modulename" : "ListableUI", - "key.name" : "removes", - "key.namelength" : 7, - "key.nameoffset" : 14550, - "key.offset" : 14546, - "key.parsed_declaration" : "let removes : [Removal] = (self.removed.map({\n removed($0.oldValue, input[$0.oldIndex])\n return .remove(input[$0.oldIndex], $0)\n}) + self.moved.map({\n .move(input[$0.oldIndex], $0)\n})).sorted(by: {$0.oldIndex > $1.oldIndex})", - "key.parsed_scope.end" : 450, - "key.parsed_scope.start" : 450, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.SectionChanges.Removal]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9transform33_459A16665E334F63AE247A06F35B0E51LL5input7removed5added5moved8noChangeSayqd__GAM_yx_qd__tXEqd__xXEyx_xAC04ItemF0Vyxq_q0_q1__Gqd__ztXEyx_xAPqd__ztXEtlF7removesL_SayAE7RemovalAGLLOyxq_q0_q1___qd__GGvp" - }, - { - "key.annotated_decl" : "let inserts: [Insertion<\/Type><Mapped<\/Type>>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> inserts<\/decl.name>: [Insertion<\/ref.enum><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 360, - "key.line" : 457, - "key.modulename" : "ListableUI", - "key.name" : "inserts", - "key.namelength" : 7, - "key.nameoffset" : 14849, - "key.offset" : 14845, - "key.parsed_declaration" : "let inserts : [Insertion] = (self.added.map({\n let value = added($0.newValue)\n return .add(value, $0)\n}) + self.moved.map({\n var value = input[$0.oldIndex]\n moved($0.oldValue, $0.newValue, $0.itemChanges, &value)\n return .move(value, $0)\n})).sorted(by: {$0.newIndex < $1.newIndex})", - "key.parsed_scope.end" : 457, - "key.parsed_scope.start" : 457, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.SectionChanges.Insertion]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9transform33_459A16665E334F63AE247A06F35B0E51LL5input7removed5added5moved8noChangeSayqd__GAM_yx_qd__tXEqd__xXEyx_xAC04ItemF0Vyxq_q0_q1__Gqd__ztXEyx_xAPqd__ztXEtlF7insertsL_SayAE9InsertionAGLLOyxq_q0_q1___qd__GGvp" - }, - { - "key.annotated_decl" : "var new: [Mapped<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: [Mapped<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 15, - "key.line" : 466, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 15227, - "key.offset" : 15223, - "key.parsed_declaration" : "var new = input", - "key.parsed_scope.end" : 466, - "key.parsed_scope.start" : 466, - "key.reusingastcontext" : false, - "key.typename" : "[Mapped]", - "key.typeusr" : "$sSayqd__GD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9transform33_459A16665E334F63AE247A06F35B0E51LL5input7removed5added5moved8noChangeSayqd__GAM_yx_qd__tXEqd__xXEyx_xAC04ItemF0Vyxq_q0_q1__Gqd__ztXEyx_xAPqd__ztXEtlF3newL_AMvp" - } - ], - "key.typename" : " (SectionedDiff.SectionChanges) -> ([Mapped], (Section, Mapped) -> (), (Section) -> Mapped, (Section, Section, SectionedDiff.ItemChanges, inout Mapped) -> (), (Section, Section, SectionedDiff.ItemChanges, inout Mapped) -> ()) -> [Mapped]", - "key.typeusr" : "$s5input7removed5added5moved8noChangeSayqd__GAF_yx_qd__tXEqd__xXEyx_x10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__Gqd__ztXEyx_xALqd__ztXEtcluD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9transform33_459A16665E334F63AE247A06F35B0E51LL5input7removed5added5moved8noChangeSayqd__GAM_yx_qd__tXEqd__xXEyx_xAC04ItemF0Vyxq_q0_q1__Gqd__ztXEyx_xAPqd__ztXEtlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private enum Insertion<Mapped><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 15749 - } - ], - "key.bodylength" : 469, - "key.bodyoffset" : 15785, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Insertion<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 498, - "key.line" : 487, - "key.modulename" : "ListableUI", - "key.name" : "Insertion", - "key.namelength" : 9, - "key.nameoffset" : 15762, - "key.offset" : 15757, - "key.parsed_declaration" : "private enum Insertion", - "key.parsed_scope.end" : 505, - "key.parsed_scope.start" : 487, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 487, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 15772, - "key.offset" : 15772, - "key.parsed_declaration" : "private enum Insertioncase add(Mapped<\/Type>, Added<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> add<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Added<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 18, - "key.line" : 489, - "key.modulename" : "ListableUI", - "key.name" : "add(_:_:)", - "key.namelength" : 18, - "key.nameoffset" : 15799, - "key.offset" : 15799, - "key.parsed_declaration" : "case add(Mapped, Added)", - "key.parsed_scope.end" : 489, - "key.parsed_scope.start" : 489, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.SectionChanges.Insertion.Type) -> (Mapped, SectionedDiff.SectionChanges.Added) -> SectionedDiff.SectionChanges.Insertion", - "key.typeusr" : "$sy10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__Gqd___AE5AddedVyxq_q0_q1___GtcAImcSHR_SHR1_r2__luD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO3addyAHyxq_q0_q1___qd__Gqd___AE5AddedVyxq_q0_q1___GtcAJmSHR_SHR1_r2__lF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 24, - "key.offset" : 15826, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case move(Mapped<\/Type>, Moved<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> move<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Moved<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 19, - "key.line" : 490, - "key.modulename" : "ListableUI", - "key.name" : "move(_:_:)", - "key.namelength" : 19, - "key.nameoffset" : 15831, - "key.offset" : 15831, - "key.parsed_declaration" : "case move(Mapped, Moved)", - "key.parsed_scope.end" : 490, - "key.parsed_scope.start" : 490, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.SectionChanges.Insertion.Type) -> (Mapped, SectionedDiff.SectionChanges.Moved) -> SectionedDiff.SectionChanges.Insertion", - "key.typeusr" : "$sy10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__Gqd___AE5MovedVyxq_q0_q1___GtcAImcSHR_SHR1_r2__luD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO4moveyAHyxq_q0_q1___qd__Gqd___AE5MovedVyxq_q0_q1___GtcAJmSHR_SHR1_r2__lF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var mapped: Mapped<\/Type> { get }<\/Declaration>", - "key.bodylength" : 154, - "key.bodyoffset" : 15889, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 176, - "key.line" : 492, - "key.modulename" : "ListableUI", - "key.name" : "mapped", - "key.namelength" : 6, - "key.nameoffset" : 15872, - "key.offset" : 15868, - "key.parsed_declaration" : "var mapped : Mapped", - "key.parsed_scope.end" : 497, - "key.parsed_scope.start" : 492, - "key.reusingastcontext" : false, - "key.typename" : "Mapped", - "key.typeusr" : "$sqd__D", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO6mappedqd__vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var newIndex: Int<\/Type> { get }<\/Declaration>", - "key.bodylength" : 166, - "key.bodyoffset" : 16082, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 187, - "key.line" : 499, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 16066, - "key.offset" : 16062, - "key.parsed_declaration" : "var newIndex : Int", - "key.parsed_scope.end" : 504, - "key.parsed_scope.start" : 499, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO8newIndexSivp" - } - ], - "key.typename" : "SectionedDiff.SectionChanges.Insertion.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private enum Removal<Mapped><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 16265 - } - ], - "key.bodylength" : 482, - "key.bodyoffset" : 16299, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Removal<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 509, - "key.line" : 507, - "key.modulename" : "ListableUI", - "key.name" : "Removal", - "key.namelength" : 7, - "key.nameoffset" : 16278, - "key.offset" : 16273, - "key.parsed_declaration" : "private enum Removal", - "key.parsed_scope.end" : 525, - "key.parsed_scope.start" : 507, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 507, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 16286, - "key.offset" : 16286, - "key.parsed_declaration" : "private enum Removalcase remove(Mapped<\/Type>, Removed<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> remove<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Removed<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 23, - "key.line" : 509, - "key.modulename" : "ListableUI", - "key.name" : "remove(_:_:)", - "key.namelength" : 23, - "key.nameoffset" : 16313, - "key.offset" : 16313, - "key.parsed_declaration" : "case remove(Mapped, Removed)", - "key.parsed_scope.end" : 509, - "key.parsed_scope.start" : 509, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.SectionChanges.Removal.Type) -> (Mapped, SectionedDiff.SectionChanges.Removed) -> SectionedDiff.SectionChanges.Removal", - "key.typeusr" : "$sy10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__Gqd___AE7RemovedVyxq_q0_q1___GtcAImcSHR_SHR1_r2__luD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO6removeyAHyxq_q0_q1___qd__Gqd___AE7RemovedVyxq_q0_q1___GtcAJmSHR_SHR1_r2__lF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 24, - "key.offset" : 16345, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case move(Mapped<\/Type>, Moved<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> move<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Moved<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 19, - "key.line" : 510, - "key.modulename" : "ListableUI", - "key.name" : "move(_:_:)", - "key.namelength" : 19, - "key.nameoffset" : 16350, - "key.offset" : 16350, - "key.parsed_declaration" : "case move(Mapped, Moved)", - "key.parsed_scope.end" : 510, - "key.parsed_scope.start" : 510, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.SectionChanges.Removal.Type) -> (Mapped, SectionedDiff.SectionChanges.Moved) -> SectionedDiff.SectionChanges.Removal", - "key.typeusr" : "$sy10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__Gqd___AE5MovedVyxq_q0_q1___GtcAImcSHR_SHR1_r2__luD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO4moveyAHyxq_q0_q1___qd__Gqd___AE5MovedVyxq_q0_q1___GtcAJmSHR_SHR1_r2__lF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var mapped: Mapped<\/Type> { get }<\/Declaration>", - "key.bodylength" : 157, - "key.bodyoffset" : 16408, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 179, - "key.line" : 512, - "key.modulename" : "ListableUI", - "key.name" : "mapped", - "key.namelength" : 6, - "key.nameoffset" : 16391, - "key.offset" : 16387, - "key.parsed_declaration" : "var mapped : Mapped", - "key.parsed_scope.end" : 517, - "key.parsed_scope.start" : 512, - "key.reusingastcontext" : false, - "key.typename" : "Mapped", - "key.typeusr" : "$sqd__D", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO6mappedqd__vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var oldIndex: Int<\/Type> { get }<\/Declaration>", - "key.bodylength" : 171, - "key.bodyoffset" : 16604, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 192, - "key.line" : 519, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 16588, - "key.offset" : 16584, - "key.parsed_declaration" : "var oldIndex : Int", - "key.parsed_scope.end" : 524, - "key.parsed_scope.start" : 519, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO8oldIndexSivp" - } - ], - "key.typename" : "SectionedDiff.SectionChanges.Removal.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO" - } - ], - "key.typename" : "SectionedDiff.SectionChanges.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesVyxq_q0_q1__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV" - }, - { - "key.annotated_decl" : "struct SectionedDiff<\/Type><Section<\/Type>, SectionIdentifier<\/Type>, Item<\/Type>, ItemIdentifier<\/Type>>.ItemChanges<\/Declaration>", - "key.bodylength" : 2864, - "key.bodyoffset" : 16824, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>, Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>>.ItemChanges<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2902, - "key.line" : 254, - "key.modulename" : "ListableUI", - "key.name" : "SectionedDiff.ItemChanges", - "key.namelength" : 25, - "key.nameoffset" : 16797, - "key.offset" : 16787, - "key.parsed_declaration" : "extension SectionedDiff.ItemChanges", - "key.parsed_scope.end" : 624, - "key.parsed_scope.start" : 529, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func transform<Mapped>(old: [Mapped<\/Type>], removed: (Item<\/Type>, Mapped<\/Type>) -> (), added: (Item<\/Type>) -> Mapped<\/Type>, moved: (Item<\/Type>, Item<\/Type>, inout Mapped<\/Type>) -> (), updated: (Item<\/Type>, Item<\/Type>, inout Mapped<\/Type>) -> (), noChange: (Item<\/Type>, Item<\/Type>, inout Mapped<\/Type>) -> ()) -> [Mapped<\/Type>]<\/Declaration>", - "key.bodylength" : 1491, - "key.bodyoffset" : 17132, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> transform<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(old<\/decl.var.parameter.argument_label>: [Mapped<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, removed<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, added<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, moved<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, noChange<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1795, - "key.line" : 531, - "key.modulename" : "ListableUI", - "key.name" : "transform(old:removed:added:moved:updated:noChange:)", - "key.namelength" : 280, - "key.nameoffset" : 16834, - "key.offset" : 16829, - "key.parsed_declaration" : "func transform(\n old : [Mapped],\n removed : (Item, Mapped) -> (),\n added : (Item) -> Mapped,\n moved : (Item, Item, inout Mapped) -> (),\n updated : (Item, Item, inout Mapped) -> (),\n noChange : (Item, Item, inout Mapped) -> ()\n ) -> [Mapped]", - "key.parsed_scope.end" : 583, - "key.parsed_scope.start" : 531, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 531, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 16844, - "key.offset" : 16844, - "key.parsed_declaration" : "func transformlet removes: [Removal<\/Type><Mapped<\/Type>>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removes<\/decl.name>: [Removal<\/ref.enum><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 299, - "key.line" : 542, - "key.modulename" : "ListableUI", - "key.name" : "removes", - "key.namelength" : 7, - "key.nameoffset" : 17233, - "key.offset" : 17229, - "key.parsed_declaration" : "let removes : [Removal] = (self.removed.map({\n removed($0.oldValue, old[$0.oldIndex.item])\n return .remove(old[$0.oldIndex.item], $0)\n}) + self.moved.map({\n return .move(old[$0.oldIndex.item], $0)\n})).sorted(by: { $0.oldIndex > $1.oldIndex })", - "key.parsed_scope.end" : 542, - "key.parsed_scope.start" : 542, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.ItemChanges.Removal]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9transform3old7removed5added5moved7updated8noChangeSayqd__GAM_yq0__qd__tXEqd__q0_XEyq0__q0_qd__ztXEyq0__q0_qd__ztXEyq0__q0_qd__ztXEtlF7removesL_SayAE7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGvp" - }, - { - "key.annotated_decl" : "let inserts: [Insertion<\/Type><Mapped<\/Type>>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> inserts<\/decl.name>: [Insertion<\/ref.enum><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 349, - "key.line" : 549, - "key.modulename" : "ListableUI", - "key.name" : "inserts", - "key.namelength" : 7, - "key.nameoffset" : 17550, - "key.offset" : 17546, - "key.parsed_declaration" : "let inserts : [Insertion] = (self.added.map({\n let value = added($0.newValue)\n return .add(value, $0)\n}) + self.moved.map({\n var value = old[$0.oldIndex.item]\n moved($0.oldValue, $0.newValue, &value)\n return .move(value, $0)\n})).sorted(by: { $0.newIndex < $1.newIndex })", - "key.parsed_scope.end" : 549, - "key.parsed_scope.start" : 549, - "key.reusingastcontext" : false, - "key.typename" : "[SectionedDiff.ItemChanges.Insertion]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9transform3old7removed5added5moved7updated8noChangeSayqd__GAM_yq0__qd__tXEqd__q0_XEyq0__q0_qd__ztXEyq0__q0_qd__ztXEyq0__q0_qd__ztXEtlF7insertsL_SayAE9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGvp" - }, - { - "key.annotated_decl" : "var new: [Mapped<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: [Mapped<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 13, - "key.line" : 558, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 17917, - "key.offset" : 17913, - "key.parsed_declaration" : "var new = old", - "key.parsed_scope.end" : 558, - "key.parsed_scope.start" : 558, - "key.reusingastcontext" : false, - "key.typename" : "[Mapped]", - "key.typeusr" : "$sSayqd__GD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9transform3old7removed5added5moved7updated8noChangeSayqd__GAM_yq0__qd__tXEqd__q0_XEyq0__q0_qd__ztXEyq0__q0_qd__ztXEyq0__q0_qd__ztXEtlF3newL_AMvp" - } - ], - "key.typename" : " (SectionedDiff.ItemChanges) -> ([Mapped], (Item, Mapped) -> (), (Item) -> Mapped, (Item, Item, inout Mapped) -> (), (Item, Item, inout Mapped) -> (), (Item, Item, inout Mapped) -> ()) -> [Mapped]", - "key.typeusr" : "$s3old7removed5added5moved7updated8noChangeSayqd__GAG_yq0__qd__tXEqd__q0_XEyq0__q0_qd__ztXEyq0__q0_qd__ztXEyq0__q0_qd__ztXEtcluD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9transform3old7removed5added5moved7updated8noChangeSayqd__GAM_yq0__qd__tXEqd__q0_XEyq0__q0_qd__ztXEyq0__q0_qd__ztXEyq0__q0_qd__ztXEtlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private enum Insertion<Mapped><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 18634 - } - ], - "key.bodylength" : 479, - "key.bodyoffset" : 18670, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Insertion<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 508, - "key.line" : 585, - "key.modulename" : "ListableUI", - "key.name" : "Insertion", - "key.namelength" : 9, - "key.nameoffset" : 18647, - "key.offset" : 18642, - "key.parsed_declaration" : "private enum Insertion", - "key.parsed_scope.end" : 603, - "key.parsed_scope.start" : 585, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 585, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 18657, - "key.offset" : 18657, - "key.parsed_declaration" : "private enum Insertioncase add(Mapped<\/Type>, Added<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> add<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Added<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 18, - "key.line" : 587, - "key.modulename" : "ListableUI", - "key.name" : "add(_:_:)", - "key.namelength" : 18, - "key.nameoffset" : 18684, - "key.offset" : 18684, - "key.parsed_declaration" : "case add(Mapped, Added)", - "key.parsed_scope.end" : 587, - "key.parsed_scope.start" : 587, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.ItemChanges.Insertion.Type) -> (Mapped, SectionedDiff.ItemChanges.Added) -> SectionedDiff.ItemChanges.Insertion", - "key.typeusr" : "$sy10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__Gqd___AE5AddedVyxq_q0_q1___GtcAImcSHR_SHR1_r2__luD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO3addyAHyxq_q0_q1___qd__Gqd___AE5AddedVyxq_q0_q1___GtcAJmSHR_SHR1_r2__lF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 24, - "key.offset" : 18711, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case move(Mapped<\/Type>, Moved<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> move<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Moved<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 19, - "key.line" : 588, - "key.modulename" : "ListableUI", - "key.name" : "move(_:_:)", - "key.namelength" : 19, - "key.nameoffset" : 18716, - "key.offset" : 18716, - "key.parsed_declaration" : "case move(Mapped, Moved)", - "key.parsed_scope.end" : 588, - "key.parsed_scope.start" : 588, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.ItemChanges.Insertion.Type) -> (Mapped, SectionedDiff.ItemChanges.Moved) -> SectionedDiff.ItemChanges.Insertion", - "key.typeusr" : "$sy10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__Gqd___AE5MovedVyxq_q0_q1___GtcAImcSHR_SHR1_r2__luD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO4moveyAHyxq_q0_q1___qd__Gqd___AE5MovedVyxq_q0_q1___GtcAJmSHR_SHR1_r2__lF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var mapped: Mapped<\/Type> { get }<\/Declaration>", - "key.bodylength" : 154, - "key.bodyoffset" : 18774, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 176, - "key.line" : 590, - "key.modulename" : "ListableUI", - "key.name" : "mapped", - "key.namelength" : 6, - "key.nameoffset" : 18757, - "key.offset" : 18753, - "key.parsed_declaration" : "var mapped : Mapped", - "key.parsed_scope.end" : 595, - "key.parsed_scope.start" : 590, - "key.reusingastcontext" : false, - "key.typename" : "Mapped", - "key.typeusr" : "$sqd__D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO6mappedqd__vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var newIndex: Int<\/Type> { get }<\/Declaration>", - "key.bodylength" : 176, - "key.bodyoffset" : 18967, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 197, - "key.line" : 597, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 18951, - "key.offset" : 18947, - "key.parsed_declaration" : "var newIndex : Int", - "key.parsed_scope.end" : 602, - "key.parsed_scope.start" : 597, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO8newIndexSivp" - } - ], - "key.typename" : "SectionedDiff.ItemChanges.Insertion.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private enum Removal<Mapped><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 19160 - } - ], - "key.bodylength" : 492, - "key.bodyoffset" : 19194, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Removal<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 519, - "key.line" : 605, - "key.modulename" : "ListableUI", - "key.name" : "Removal", - "key.namelength" : 7, - "key.nameoffset" : 19173, - "key.offset" : 19168, - "key.parsed_declaration" : "private enum Removal", - "key.parsed_scope.end" : 623, - "key.parsed_scope.start" : 605, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Mapped<\/Declaration>", - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 605, - "key.modulename" : "ListableUI", - "key.name" : "Mapped", - "key.namelength" : 6, - "key.nameoffset" : 19181, - "key.offset" : 19181, - "key.parsed_declaration" : "private enum Removalcase remove(Mapped<\/Type>, Removed<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> remove<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Removed<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 23, - "key.line" : 607, - "key.modulename" : "ListableUI", - "key.name" : "remove(_:_:)", - "key.namelength" : 23, - "key.nameoffset" : 19208, - "key.offset" : 19208, - "key.parsed_declaration" : "case remove(Mapped, Removed)", - "key.parsed_scope.end" : 607, - "key.parsed_scope.start" : 607, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.ItemChanges.Removal.Type) -> (Mapped, SectionedDiff.ItemChanges.Removed) -> SectionedDiff.ItemChanges.Removal", - "key.typeusr" : "$sy10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__Gqd___AE7RemovedVyxq_q0_q1___GtcAImcSHR_SHR1_r2__luD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO6removeyAHyxq_q0_q1___qd__Gqd___AE7RemovedVyxq_q0_q1___GtcAJmSHR_SHR1_r2__lF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 24, - "key.offset" : 19240, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case move(Mapped<\/Type>, Moved<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> move<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Moved<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 19, - "key.line" : 608, - "key.modulename" : "ListableUI", - "key.name" : "move(_:_:)", - "key.namelength" : 19, - "key.nameoffset" : 19245, - "key.offset" : 19245, - "key.parsed_declaration" : "case move(Mapped, Moved)", - "key.parsed_scope.end" : 608, - "key.parsed_scope.start" : 608, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SectionedDiff.ItemChanges.Removal.Type) -> (Mapped, SectionedDiff.ItemChanges.Moved) -> SectionedDiff.ItemChanges.Removal", - "key.typeusr" : "$sy10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__Gqd___AE5MovedVyxq_q0_q1___GtcAImcSHR_SHR1_r2__luD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO4moveyAHyxq_q0_q1___qd__Gqd___AE5MovedVyxq_q0_q1___GtcAJmSHR_SHR1_r2__lF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var mapped: Mapped<\/Type> { get }<\/Declaration>", - "key.bodylength" : 157, - "key.bodyoffset" : 19303, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 179, - "key.line" : 610, - "key.modulename" : "ListableUI", - "key.name" : "mapped", - "key.namelength" : 6, - "key.nameoffset" : 19286, - "key.offset" : 19282, - "key.parsed_declaration" : "var mapped : Mapped", - "key.parsed_scope.end" : 615, - "key.parsed_scope.start" : 610, - "key.reusingastcontext" : false, - "key.typename" : "Mapped", - "key.typeusr" : "$sqd__D", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO6mappedqd__vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var oldIndex: Int<\/Type> { get }<\/Declaration>", - "key.bodylength" : 181, - "key.bodyoffset" : 19499, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 202, - "key.line" : 617, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 19483, - "key.offset" : 19479, - "key.parsed_declaration" : "var oldIndex : Int", - "key.parsed_scope.end" : 622, - "key.parsed_scope.start" : 617, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO8oldIndexSivp" - } - ], - "key.typename" : "SectionedDiff.ItemChanges.Removal.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO" - } - ], - "key.typename" : "SectionedDiff.ItemChanges.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__GmD", - "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1266, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> final class DirectionalPanGestureRecognizer : UIPanGestureRecognizer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 79 - } - ], - "key.bodylength" : 1116, - "key.bodyoffset" : 148, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Tracks horizontal pans that begin in a particular direction.", - "key.doc.column" : 13, - "key.doc.comment" : "Tracks horizontal pans that begin in a particular direction.", - "key.doc.declaration" : "@MainActor final class DirectionalPanGestureRecognizer : UIPanGestureRecognizer", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.doc.full_as_xml" : "DirectionalPanGestureRecognizer<\/Name>c:@M@ListableUI@objc(cs)DirectionalPanGestureRecognizer<\/USR>@MainActor final class DirectionalPanGestureRecognizer : UIPanGestureRecognizer<\/Declaration>Tracks horizontal pans that begin in a particular direction.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 4, - "key.doc.name" : "DirectionalPanGestureRecognizer", - "key.doc.type" : "Class", - "key.doclength" : 65, - "key.docoffset" : 14, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 22, - "key.offset" : 124 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DirectionalPanGestureRecognizer<\/decl.name> : UIPanGestureRecognizer<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIPanGestureRecognizer" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1180, - "key.line" : 4, - "key.modulename" : "ListableUI", - "key.name" : "DirectionalPanGestureRecognizer", - "key.namelength" : 31, - "key.nameoffset" : 91, - "key.offset" : 85, - "key.parsed_declaration" : "final class DirectionalPanGestureRecognizer: UIPanGestureRecognizer", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 4, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum DirectionalPanGestureRecognizer<\/Type>.Direction<\/Declaration>", - "key.bodylength" : 55, - "key.bodyoffset" : 206, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A horizontal direction.", - "key.doc.column" : 10, - "key.doc.comment" : "A horizontal direction.", - "key.doc.declaration" : "enum ListableUI.DirectionalPanGestureRecognizer.Direction", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.doc.full_as_xml" : "Direction<\/Name>s:10ListableUI31DirectionalPanGestureRecognizerC9DirectionO<\/USR>enum ListableUI.DirectionalPanGestureRecognizer.Direction<\/Declaration>A horizontal direction.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 7, - "key.doc.name" : "Direction", - "key.doc.type" : "Other", - "key.doclength" : 28, - "key.docoffset" : 158, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> DirectionalPanGestureRecognizer<\/ref.class>.Direction<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 72, - "key.line" : 7, - "key.modulename" : "ListableUI", - "key.name" : "Direction", - "key.namelength" : 9, - "key.nameoffset" : 195, - "key.offset" : 190, - "key.parsed_declaration" : "enum Direction", - "key.parsed_scope.end" : 10, - "key.parsed_scope.start" : 7, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 215, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case rightToLeft<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> rightToLeft<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 8, - "key.modulename" : "ListableUI", - "key.name" : "rightToLeft", - "key.namelength" : 11, - "key.nameoffset" : 220, - "key.offset" : 220, - "key.parsed_declaration" : "case rightToLeft", - "key.parsed_scope.end" : 8, - "key.parsed_scope.start" : 8, - "key.reusingastcontext" : false, - "key.typename" : "(DirectionalPanGestureRecognizer.Direction.Type) -> DirectionalPanGestureRecognizer.Direction", - "key.typeusr" : "$sy10ListableUI31DirectionalPanGestureRecognizerC9DirectionOAEmcD", - "key.usr" : "s:10ListableUI31DirectionalPanGestureRecognizerC9DirectionO11rightToLeftyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 240, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case leftToRight<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> leftToRight<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 9, - "key.modulename" : "ListableUI", - "key.name" : "leftToRight", - "key.namelength" : 11, - "key.nameoffset" : 245, - "key.offset" : 245, - "key.parsed_declaration" : "case leftToRight", - "key.parsed_scope.end" : 9, - "key.parsed_scope.start" : 9, - "key.reusingastcontext" : false, - "key.typename" : "(DirectionalPanGestureRecognizer.Direction.Type) -> DirectionalPanGestureRecognizer.Direction", - "key.typeusr" : "$sy10ListableUI31DirectionalPanGestureRecognizerC9DirectionOAEmcD", - "key.usr" : "s:10ListableUI31DirectionalPanGestureRecognizerC9DirectionO11leftToRightyA2EmF" - } - ] - } - ], - "key.typename" : "DirectionalPanGestureRecognizer.Direction.Type", - "key.typeusr" : "$s10ListableUI31DirectionalPanGestureRecognizerC9DirectionOmD", - "key.usr" : "s:10ListableUI31DirectionalPanGestureRecognizerC9DirectionO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public let direction: Direction<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 322 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The direction of the tracked pan gesture.", - "key.doc.column" : 16, - "key.doc.comment" : "The direction of the tracked pan gesture.", - "key.doc.declaration" : "@MainActor public let direction: Direction", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.doc.full_as_xml" : "direction<\/Name>s:10ListableUI31DirectionalPanGestureRecognizerC9directionAC9DirectionOvp<\/USR>@MainActor public let direction: Direction<\/Declaration>The direction of the tracked pan gesture.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 13, - "key.doc.name" : "direction", - "key.doc.type" : "Other", - "key.doclength" : 46, - "key.docoffset" : 272, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> direction<\/decl.name>: Direction<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 333, - "key.offset" : 329, - "key.parsed_declaration" : "public let direction: Direction", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "DirectionalPanGestureRecognizer.Direction", - "key.typeusr" : "$s10ListableUI31DirectionalPanGestureRecognizerC9DirectionOD", - "key.usr" : "s:10ListableUI31DirectionalPanGestureRecognizerC9directionAC9DirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> init(direction: Direction<\/Type>, target: Any?, action: Selector<\/Type>?)<\/Declaration>", - "key.bodylength" : 91, - "key.bodyoffset" : 424, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> init<\/syntaxtype.keyword>(direction<\/decl.var.parameter.argument_label>: Direction<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, target<\/decl.var.parameter.argument_label>: Any<\/syntaxtype.keyword>?<\/decl.var.parameter.type><\/decl.var.parameter>, action<\/decl.var.parameter.argument_label>: Selector<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 153, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "init(direction:target:action:)", - "key.namelength" : 59, - "key.nameoffset" : 363, - "key.offset" : 363, - "key.parsed_declaration" : "init(direction: Direction, target: Any?, action: Selector?)", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(DirectionalPanGestureRecognizer.Type) -> (DirectionalPanGestureRecognizer.Direction, Any?, Selector?) -> DirectionalPanGestureRecognizer", - "key.typeusr" : "$s9direction6target6action10ListableUI31DirectionalPanGestureRecognizerCAF9DirectionO_ypSg10ObjectiveC8SelectorVSgtcD", - "key.usr" : "s:10ListableUI31DirectionalPanGestureRecognizerC9direction6target6actionA2C9DirectionO_ypSg10ObjectiveC8SelectorVSgtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func touchesMoved(_ touches: Set<\/Type><UITouch<\/Type>>, with event: UIEvent<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 522 - } - ], - "key.bodylength" : 666, - "key.bodyoffset" : 596, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/DirectionalPanGestureRecognizer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> touchesMoved<\/decl.name>(_<\/decl.var.parameter.argument_label> touches<\/decl.var.parameter.name>: Set<\/ref.struct><UITouch<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 732, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "touchesMoved(_:with:)", - "key.namelength" : 58, - "key.nameoffset" : 536, - "key.offset" : 531, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIGestureRecognizer(im)touchesMoved:withEvent:" - } - ], - "key.parsed_declaration" : "override func touchesMoved(_ touches: Set, with event: UIEvent)", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(DirectionalPanGestureRecognizer) -> (Set, UIEvent) -> ()", - "key.typeusr" : "$s_4withyShySo7UITouchCG_So7UIEventCtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)DirectionalPanGestureRecognizer(im)touchesMoved:withEvent:" - } - ], - "key.typename" : "DirectionalPanGestureRecognizer.Type", - "key.typeusr" : "$s10ListableUI31DirectionalPanGestureRecognizerCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)DirectionalPanGestureRecognizer" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 5948, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> final class HeaderFooterContentView<Content> : UIView<\/Type> where Content<\/Type> : HeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 116 - } - ], - "key.bodylength" : 4252, - "key.bodyoffset" : 191, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 183 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> HeaderFooterContentView<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UIView<\/ref.class> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIView" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 4322, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterContentView", - "key.namelength" : 23, - "key.nameoffset" : 128, - "key.offset" : 122, - "key.parsed_declaration" : "final class HeaderFooterContentView : UIView", - "key.parsed_scope.end" : 165, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : HeaderFooterContent<\/Type><\/Declaration>", - "key.column" : 37, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 160 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 27, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 152, - "key.offset" : 152, - "key.parsed_declaration" : "final class HeaderFooterContentViewtypealias HeaderFooterContentView<\/Type><Content<\/Type>>.OnTap = () -> ()<\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> HeaderFooterContentView<\/ref.class><Content<\/ref.generic_type_param>>.OnTap<\/decl.name> = () -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 26, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "OnTap", - "key.namelength" : 5, - "key.nameoffset" : 249, - "key.offset" : 239, - "key.parsed_declaration" : "typealias OnTap = () -> ()", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "(() -> ()).Type", - "key.typeusr" : "$syycmD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC5OnTapa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var onTap: OnTap<\/Type>? { get set }<\/Declaration>", - "key.bodylength" : 48, - "key.bodyoffset" : 301, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> onTap<\/decl.name>: OnTap<\/ref.typealias>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 75, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "onTap", - "key.namelength" : 5, - "key.nameoffset" : 279, - "key.offset" : 275, - "key.parsed_declaration" : "var onTap : OnTap? = nil", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(() -> ())?", - "key.typeusr" : "$syycSgD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC5onTapyycSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let content: Content<\/Type>.ContentView<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param>.ContentView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 364, - "key.offset" : 360, - "key.parsed_declaration" : "let content : Content.ContentView", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.typename" : "Content.ContentView", - "key.typeusr" : "$s11ContentViewQzD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC7content0eF0Qzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) lazy var background: Content<\/Type>.BackgroundView<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.lazy", - "key.length" : 4, - "key.offset" : 416 - }, - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 403 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) lazy<\/syntaxtype.keyword> var<\/syntaxtype.keyword> background<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 338, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "background", - "key.namelength" : 10, - "key.nameoffset" : 425, - "key.offset" : 421, - "key.parsed_declaration" : "private(set) lazy var background : Content.BackgroundView = {\n \n let background = Content.createReusableBackgroundView(frame: bounds)\n \n self.insertSubview(background, belowSubview: self.content)\n \n self.backgroundIfLoaded = background\n \n updateIsTappable()\n \n return background\n}()", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Content.BackgroundView", - "key.typeusr" : "$s14BackgroundViewQzD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC10background010BackgroundF0Qzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var backgroundIfLoaded: Content<\/Type>.BackgroundView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 769 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> backgroundIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "backgroundIfLoaded", - "key.namelength" : 18, - "key.nameoffset" : 786, - "key.offset" : 782, - "key.parsed_declaration" : "private(set) var backgroundIfLoaded : Content.BackgroundView?", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 38, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Content.BackgroundView?", - "key.typeusr" : "$s14BackgroundViewQzSgD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC18backgroundIfLoaded010BackgroundF0QzSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) lazy var pressedBackground: Content<\/Type>.PressedBackgroundView<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.lazy", - "key.length" : 4, - "key.offset" : 853 - }, - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 840 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) lazy<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pressedBackground<\/decl.name>: Content<\/ref.generic_type_param>.PressedBackgroundView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 440, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "pressedBackground", - "key.namelength" : 17, - "key.nameoffset" : 862, - "key.offset" : 858, - "key.parsed_declaration" : "private(set) lazy var pressedBackground : Content.PressedBackgroundView = {\n \n let background = Content.createReusablePressedBackgroundView(frame: bounds)\n\n \/\/\/ Loads the background so subviews are inserted in the proper order.\n self.insertSubview(background, aboveSubview: self.background)\n \n self.pressedBackgroundIfLoaded = background\n \n updateIsTappable()\n \n return background\n}()", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Content.PressedBackgroundView", - "key.typeusr" : "$s21PressedBackgroundViewQzD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC17pressedBackground07PressedhF0Qzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var pressedBackgroundIfLoaded: Content<\/Type>.PressedBackgroundView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 1308 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Loads the background so subviews are inserted in the proper order.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> pressedBackgroundIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.PressedBackgroundView<\/ref.associatedtype>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 62, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "pressedBackgroundIfLoaded", - "key.namelength" : 25, - "key.nameoffset" : 1325, - "key.offset" : 1321, - "key.parsed_declaration" : "private(set) var pressedBackgroundIfLoaded : Content.PressedBackgroundView?", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 54, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Content.PressedBackgroundView?", - "key.typeusr" : "$s21PressedBackgroundViewQzSgD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC25pressedBackgroundIfLoaded07PressedhF0QzSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private let pressRecognizer: PressGestureRecognizer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1393 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> pressRecognizer<\/decl.name>: PressGestureRecognizer<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 56, - "key.modulename" : "ListableUI", - "key.name" : "pressRecognizer", - "key.namelength" : 15, - "key.nameoffset" : 1405, - "key.offset" : 1401, - "key.parsed_declaration" : "private let pressRecognizer : PressGestureRecognizer", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 56, - "key.reusingastcontext" : false, - "key.typename" : "PressGestureRecognizer", - "key.typeusr" : "$s10ListableUI22PressGestureRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLCD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC15pressRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLAA012PressGestureH0AELLCvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 1465 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override init(frame: CGRect<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 1502 - } - ], - "key.bodylength" : 559, - "key.bodyoffset" : 1532, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 581, - "key.line" : 62, - "key.modulename" : "ListableUI", - "key.name" : "init(frame:)", - "key.namelength" : 19, - "key.nameoffset" : 1511, - "key.offset" : 1511, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)initWithFrame:" - } - ], - "key.parsed_declaration" : "override init(frame: CGRect)", - "key.parsed_scope.end" : 79, - "key.parsed_scope.start" : 62, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let bounds: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 64, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 1554, - "key.offset" : 1550, - "key.parsed_declaration" : "let bounds = CGRect(origin: .zero, size: frame.size)", - "key.parsed_scope.end" : 64, - "key.parsed_scope.start" : 64, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC5frameACyxGSo6CGRectV_tcfc6boundsL_AGvp" - } - ], - "key.typename" : " (HeaderFooterContentView.Type) -> (CGRect) -> HeaderFooterContentView", - "key.typeusr" : "$s5frame10ListableUI23HeaderFooterContentViewCyxGSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC5frameACyxGSo6CGRectV_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 2133 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 2102 - } - ], - "key.bodylength" : 14, - "key.bodyoffset" : 2165, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 38, - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 2142, - "key.offset" : 2142, - "key.substructure" : [ - - ] - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 12, - "key.name" : "MARK: UIView", - "key.offset" : 2200 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func sizeThatFits(_ size: CGSize<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 2229 - } - ], - "key.bodylength" : 45, - "key.bodyoffset" : 2283, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sizeThatFits<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 91, - "key.line" : 88, - "key.modulename" : "ListableUI", - "key.name" : "sizeThatFits(_:)", - "key.namelength" : 28, - "key.nameoffset" : 2243, - "key.offset" : 2238, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)sizeThatFits:" - } - ], - "key.parsed_declaration" : "override func sizeThatFits(_ size: CGSize) -> CGSize", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 88, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (HeaderFooterContentView) -> (CGSize) -> CGSize", - "key.typeusr" : "$sySo6CGSizeVABcD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC12sizeThatFitsySo6CGSizeVAFF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func systemLayoutSizeFitting(_ targetSize: CGSize<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 2339 - } - ], - "key.bodylength" : 62, - "key.bodyoffset" : 2410, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 125, - "key.line" : 92, - "key.modulename" : "ListableUI", - "key.name" : "systemLayoutSizeFitting(_:)", - "key.namelength" : 45, - "key.nameoffset" : 2353, - "key.offset" : 2348, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)systemLayoutSizeFittingSize:" - } - ], - "key.parsed_declaration" : "override func systemLayoutSizeFitting(_ targetSize: CGSize) -> CGSize", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 92, - "key.related_decls" : [ - { - "key.annotated_decl" : "systemLayoutSizeFitting(_:withHorizontalFittingPriority:verticalFittingPriority:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (HeaderFooterContentView) -> (CGSize) -> CGSize", - "key.typeusr" : "$sySo6CGSizeVABcD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC23systemLayoutSizeFittingySo6CGSizeVAFF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func systemLayoutSizeFitting(_ targetSize: CGSize<\/Type>, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority<\/Type>, verticalFittingPriority: UILayoutPriority<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 2483 - } - ], - "key.bodylength" : 216, - "key.bodyoffset" : 2702, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withHorizontalFittingPriority<\/decl.var.parameter.argument_label> horizontalFittingPriority<\/decl.var.parameter.name>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, verticalFittingPriority<\/decl.var.parameter.argument_label>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 427, - "key.line" : 96, - "key.modulename" : "ListableUI", - "key.name" : "systemLayoutSizeFitting(_:withHorizontalFittingPriority:verticalFittingPriority:)", - "key.namelength" : 193, - "key.nameoffset" : 2497, - "key.offset" : 2492, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:" - } - ], - "key.parsed_declaration" : "override func systemLayoutSizeFitting(\n _ targetSize: CGSize,\n withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority,\n verticalFittingPriority: UILayoutPriority\n) -> CGSize", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 96, - "key.related_decls" : [ - { - "key.annotated_decl" : "systemLayoutSizeFitting(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (HeaderFooterContentView) -> (CGSize, UILayoutPriority, UILayoutPriority) -> CGSize", - "key.typeusr" : "$s_29withHorizontalFittingPriority08verticalcD0So6CGSizeVAD_So08UILayoutD0aAFtcD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC23systemLayoutSizeFitting_014withHorizontalJ8Priority08verticaljM0So6CGSizeVAH_So08UILayoutM0aAJtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutSubviews()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 2929 - } - ], - "key.bodylength" : 208, - "key.bodyoffset" : 2961, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 232, - "key.line" : 108, - "key.modulename" : "ListableUI", - "key.name" : "layoutSubviews()", - "key.namelength" : 16, - "key.nameoffset" : 2943, - "key.offset" : 2938, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)layoutSubviews" - } - ], - "key.parsed_declaration" : "override func layoutSubviews()", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 108, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (HeaderFooterContentView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC14layoutSubviewsyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 18, - "key.name" : "MARK: Tap Handling", - "key.offset" : 3190 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func updateIsTappable()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3225 - } - ], - "key.bodylength" : 514, - "key.bodyoffset" : 3262, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateIsTappable<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 544, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "updateIsTappable()", - "key.namelength" : 18, - "key.nameoffset" : 3238, - "key.offset" : 3233, - "key.parsed_declaration" : "private func updateIsTappable()", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (HeaderFooterContentView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC16updateIsTappable33_6202C71BFECBDA9D223BE2E392A6DDC7LLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func pressStateChanged()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3793 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 3787 - } - ], - "key.bodylength" : 614, - "key.bodyoffset" : 3827, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> pressStateChanged<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 641, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "pressStateChanged()", - "key.namelength" : 19, - "key.nameoffset" : 3806, - "key.offset" : 3801, - "key.parsed_declaration" : "@objc private func pressStateChanged()", - "key.parsed_scope.end" : 164, - "key.parsed_scope.start" : 139, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let state: UIGestureRecognizer<\/Type>.State<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> state<\/decl.name>: UIGestureRecognizer<\/ref.class>.State<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 38, - "key.line" : 141, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 3849, - "key.offset" : 3845, - "key.parsed_declaration" : "let state = self.pressRecognizer.state", - "key.parsed_scope.end" : 141, - "key.parsed_scope.start" : 141, - "key.reusingastcontext" : false, - "key.typename" : "UIGestureRecognizer.State", - "key.typeusr" : "$sSo24UIGestureRecognizerStateVD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC17pressStateChanged33_6202C71BFECBDA9D223BE2E392A6DDC7LLyyF5stateL_So019UIGestureRecognizerH0Vvp" - } - ], - "key.typename" : " (HeaderFooterContentView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC17pressStateChanged33_6202C71BFECBDA9D223BE2E392A6DDC7LLyyF" - } - ], - "key.typename" : "HeaderFooterContentView.Type", - "key.typeusr" : "$s10ListableUI23HeaderFooterContentViewCyxGmD", - "key.usr" : "s:10ListableUI23HeaderFooterContentViewC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@MainActor<\/Type> fileprivate final class PressGestureRecognizer : UILongPressGestureRecognizer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 4459 - }, - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 4447 - } - ], - "key.bodylength" : 1420, - "key.bodyoffset" : 4526, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 28, - "key.offset" : 4496 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> fileprivate<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PressGestureRecognizer<\/decl.name> : UILongPressGestureRecognizer<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UILongPressGestureRecognizer" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1482, - "key.line" : 168, - "key.modulename" : "ListableUI", - "key.name" : "PressGestureRecognizer", - "key.namelength" : 22, - "key.nameoffset" : 4471, - "key.offset" : 4465, - "key.parsed_declaration" : "fileprivate final class PressGestureRecognizer : UILongPressGestureRecognizer", - "key.parsed_scope.end" : 211, - "key.parsed_scope.start" : 168, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var allowableMovementAfterBegin: CGFloat<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> allowableMovementAfterBegin<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 170, - "key.modulename" : "ListableUI", - "key.name" : "allowableMovementAfterBegin", - "key.namelength" : 27, - "key.nameoffset" : 4540, - "key.offset" : 4536, - "key.parsed_declaration" : "var allowableMovementAfterBegin : CGFloat = 0.0", - "key.parsed_scope.end" : 170, - "key.parsed_scope.start" : 170, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI22PressGestureRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLC27allowableMovementAfterBegin14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var initialPoint: CGPoint<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4593 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> initialPoint<\/decl.name>: CGPoint<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 172, - "key.modulename" : "ListableUI", - "key.name" : "initialPoint", - "key.namelength" : 12, - "key.nameoffset" : 4605, - "key.offset" : 4601, - "key.parsed_declaration" : "private var initialPoint : CGPoint? = nil", - "key.parsed_scope.end" : 172, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CGPoint?", - "key.typeusr" : "$sSo7CGPointVSgD", - "key.usr" : "s:10ListableUI22PressGestureRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLC12initialPointSo7CGPointVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func reset()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 4644 - } - ], - "key.bodylength" : 68, - "key.bodyoffset" : 4667, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> reset<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 83, - "key.line" : 174, - "key.modulename" : "ListableUI", - "key.name" : "reset()", - "key.namelength" : 7, - "key.nameoffset" : 4658, - "key.offset" : 4653, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIGestureRecognizer(im)reset" - } - ], - "key.parsed_declaration" : "override func reset()", - "key.parsed_scope.end" : 178, - "key.parsed_scope.start" : 174, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PressGestureRecognizer) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI22PressGestureRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLC5resetyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func touchesBegan(_ touches: Set<\/Type><UITouch<\/Type>>, with event: UIEvent<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 4746 - } - ], - "key.bodylength" : 120, - "key.bodyoffset" : 4820, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> touchesBegan<\/decl.name>(_<\/decl.var.parameter.argument_label> touches<\/decl.var.parameter.name>: Set<\/ref.struct><UITouch<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 186, - "key.line" : 180, - "key.modulename" : "ListableUI", - "key.name" : "touchesBegan(_:with:)", - "key.namelength" : 58, - "key.nameoffset" : 4760, - "key.offset" : 4755, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIGestureRecognizer(im)touchesBegan:withEvent:" - } - ], - "key.parsed_declaration" : "override func touchesBegan(_ touches: Set, with event: UIEvent)", - "key.parsed_scope.end" : 184, - "key.parsed_scope.start" : 180, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PressGestureRecognizer) -> (Set, UIEvent) -> ()", - "key.typeusr" : "$s_4withyShySo7UITouchCG_So7UIEventCtcD", - "key.usr" : "s:10ListableUI22PressGestureRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLC12touchesBegan_4withyShySo7UITouchCG_So7UIEventCtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func canPrevent(_ gesture: UIGestureRecognizer<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 4951 - } - ], - "key.bodylength" : 396, - "key.bodyoffset" : 5017, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> canPrevent<\/decl.name>(_<\/decl.var.parameter.argument_label> gesture<\/decl.var.parameter.name>: UIGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 454, - "key.line" : 186, - "key.modulename" : "ListableUI", - "key.name" : "canPrevent(_:)", - "key.namelength" : 42, - "key.nameoffset" : 4965, - "key.offset" : 4960, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIGestureRecognizer(im)canPreventGestureRecognizer:" - } - ], - "key.parsed_declaration" : "override func canPrevent(_ gesture: UIGestureRecognizer) -> Bool", - "key.parsed_scope.end" : 196, - "key.parsed_scope.start" : 186, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PressGestureRecognizer) -> (UIGestureRecognizer) -> Bool", - "key.typeusr" : "$sySbSo19UIGestureRecognizerCcD", - "key.usr" : "s:10ListableUI22PressGestureRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLC10canPreventySbSo09UIGestureE0CF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func touchesMoved(_ touches: Set<\/Type><UITouch<\/Type>>, with event: UIEvent<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 5424 - } - ], - "key.bodylength" : 446, - "key.bodyoffset" : 5498, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> touchesMoved<\/decl.name>(_<\/decl.var.parameter.argument_label> touches<\/decl.var.parameter.name>: Set<\/ref.struct><UITouch<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 512, - "key.line" : 198, - "key.modulename" : "ListableUI", - "key.name" : "touchesMoved(_:with:)", - "key.namelength" : 58, - "key.nameoffset" : 5438, - "key.offset" : 5433, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIGestureRecognizer(im)touchesMoved:withEvent:" - } - ], - "key.parsed_declaration" : "override func touchesMoved(_ touches: Set, with event: UIEvent)", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 198, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PressGestureRecognizer) -> (Set, UIEvent) -> ()", - "key.typeusr" : "$s_4withyShySo7UITouchCG_So7UIEventCtcD", - "key.usr" : "s:10ListableUI22PressGestureRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLC12touchesMoved_4withyShySo7UITouchCG_So7UIEventCtF" - } - ], - "key.typename" : "PressGestureRecognizer.Type", - "key.typeusr" : "$s10ListableUI22PressGestureRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLCmD", - "key.usr" : "s:10ListableUI22PressGestureRecognizer33_6202C71BFECBDA9D223BE2E392A6DDC7LLC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 14589, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "final class ItemCell<Content> : UICollectionViewCell<\/Type>, AnyItemCell<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.bodylength" : 12660, - "key.bodyoffset" : 142, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An internal cell type used to render items in the list.\n\nInformation on how cell selection appearance customization works:\nhttps:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells\n", - "key.doc.column" : 13, - "key.doc.declaration" : "final class ItemCell : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.doc.full_as_xml" : "ItemCell<\/Name>s:10ListableUI8ItemCellC<\/USR>final class ItemCell<Content> : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent<\/Declaration>An internal cell type used to render items in the list.<\/Para><\/Abstract>Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 29, - "key.doc.name" : "ItemCell", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemCell<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UICollectionViewCell<\/ref.class>, AnyItemCell<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 12681, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "ItemCell", - "key.namelength" : 8, - "key.nameoffset" : 132, - "key.offset" : 122, - "key.parsed_declaration" : "extension ItemCell", - "key.parsed_scope.end" : 360, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private typealias Side = SwipeActionsView<\/Type>.Side<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 152 - } - ], - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Side<\/decl.name> = SwipeActionsView<\/ref.class>.Side<\/ref.enum><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 38, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "Side", - "key.namelength" : 4, - "key.nameoffset" : 170, - "key.offset" : 160, - "key.parsed_declaration" : "private typealias Side = SwipeActionsView.Side", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsView.Side.Type", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOmD", - "key.usr" : "s:10ListableUI8ItemCellC4Side33_A7F567565BF168C7DEE5B4CF43486FBDLLa" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> final class ContentContainerView : UIView<\/Type>, UIGestureRecognizerDelegate<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 204 - } - ], - "key.bodylength" : 12273, - "key.bodyoffset" : 276, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 239 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 27, - "key.offset" : 247 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ContentContainerView<\/decl.name> : UIView<\/ref.class>, UIGestureRecognizerDelegate<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIView" - }, - { - "key.name" : "UIGestureRecognizerDelegate" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 12340, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "ContentContainerView", - "key.namelength" : 20, - "key.nameoffset" : 216, - "key.offset" : 210, - "key.parsed_declaration" : "final class ContentContainerView : UIView, UIGestureRecognizerDelegate", - "key.parsed_scope.end" : 351, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let contentView: Content<\/Type>.ContentView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> contentView<\/decl.name>: Content<\/ref.generic_type_param>.ContentView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "contentView", - "key.namelength" : 11, - "key.nameoffset" : 290, - "key.offset" : 286, - "key.parsed_declaration" : "let contentView : Content.ContentView", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "Content.ContentView", - "key.typeusr" : "$s11ContentViewQzD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC07contentG00eG0Qzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var configurations: [Side<\/Type> : SwipeConfiguration<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 333 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> configurations<\/decl.name>: [Side<\/ref.typealias> : SwipeConfiguration<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "configurations", - "key.namelength" : 14, - "key.nameoffset" : 345, - "key.offset" : 341, - "key.parsed_declaration" : "private var configurations: [Side: SwipeConfiguration] = [:]", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[SwipeActionsView.Side : ItemCell.SwipeConfiguration]", - "key.typeusr" : "$sSDy10ListableUI16SwipeActionsViewC4SideOAA8ItemCellC0C13Configuration33_A7F567565BF168C7DEE5B4CF43486FBDLLVyx_GGD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC14configurations33_A7F567565BF168C7DEE5B4CF43486FBDLLSDyAA012SwipeActionsG0C4SideOAC0Q13ConfigurationAGLLVyx_GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var swipeAccessibilityCustomActions: [Side<\/Type> : [AccessibilitySwipeAction<\/Type>]] { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 411 - } - ], - "key.bodylength" : 95, - "key.bodyoffset" : 498, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> swipeAccessibilityCustomActions<\/decl.name>: [Side<\/ref.typealias> : [AccessibilitySwipeAction<\/ref.class>]]<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 175, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "swipeAccessibilityCustomActions", - "key.namelength" : 31, - "key.nameoffset" : 423, - "key.offset" : 419, - "key.parsed_declaration" : "private var swipeAccessibilityCustomActions: [Side: [AccessibilitySwipeAction]] = [:]", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[SwipeActionsView.Side : [AccessibilitySwipeAction]]", - "key.typeusr" : "$sSDy10ListableUI16SwipeActionsViewC4SideOSayAA013AccessibilityC6Action33_A7F567565BF168C7DEE5B4CF43486FBDLLCGGD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC31swipeAccessibilityCustomActions33_A7F567565BF168C7DEE5B4CF43486FBDLLSDyAA05SwipekG0C4SideOSayAA0iT6ActionAGLLCGGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var swipeState: SwipeActionState<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 604 - } - ], - "key.bodylength" : 198, - "key.bodyoffset" : 661, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> swipeState<\/decl.name>: SwipeActionState<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 243, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "swipeState", - "key.namelength" : 10, - "key.nameoffset" : 621, - "key.offset" : 617, - "key.parsed_declaration" : "private(set) var swipeState: SwipeActionState = .closed", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "SwipeActionState", - "key.typeusr" : "$s10ListableUI16SwipeActionStateOD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC10swipeStateAA011SwipeActionI0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override init(frame: CGRect<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 870 - } - ], - "key.bodylength" : 240, - "key.bodyoffset" : 901, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 263, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "init(frame:)", - "key.namelength" : 20, - "key.nameoffset" : 879, - "key.offset" : 879, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)initWithFrame:" - } - ], - "key.parsed_declaration" : "override init(frame : CGRect)", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 35, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let bounds: CGRect<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 918, - "key.offset" : 914, - "key.parsed_declaration" : "let bounds = CGRect(origin: .zero, size: frame.size)", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC5frameAEyx_GSo6CGRectV_tcfc6boundsL_AIvp" - } - ], - "key.typename" : " (ItemCell.ContentContainerView.Type) -> (CGRect) -> ItemCell.ContentContainerView", - "key.typeusr" : "$s5frame10ListableUI8ItemCellC20ContentContainerViewCyx_GSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC5frameAEyx_GSo6CGRectV_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 1187 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 1152 - } - ], - "key.bodylength" : 14, - "key.bodyoffset" : 1219, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 38, - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 1196, - "key.offset" : 1196, - "key.substructure" : [ - - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutSubviews()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 1244 - } - ], - "key.bodylength" : 237, - "key.bodyoffset" : 1276, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 261, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "layoutSubviews()", - "key.namelength" : 16, - "key.nameoffset" : 1258, - "key.offset" : 1253, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)layoutSubviews" - } - ], - "key.parsed_declaration" : "override func layoutSubviews()", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 48, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC14layoutSubviewsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func updateFrames(using configuration: SwipeConfiguration<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1524 - } - ], - "key.bodylength" : 1979, - "key.bodyoffset" : 1592, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateFrames<\/decl.name>(using<\/decl.var.parameter.argument_label> configuration<\/decl.var.parameter.name>: SwipeConfiguration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2040, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "updateFrames(using:)", - "key.namelength" : 53, - "key.nameoffset" : 1537, - "key.offset" : 1532, - "key.parsed_declaration" : "private func updateFrames(using configuration: SwipeConfiguration)", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 58, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let swipeViewSide: SwipeActionsView<\/Type>.Side<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> swipeViewSide<\/decl.name>: SwipeActionsView<\/ref.class>.Side<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 48, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "swipeViewSide", - "key.namelength" : 13, - "key.nameoffset" : 1622, - "key.offset" : 1618, - "key.parsed_declaration" : "let swipeViewSide = configuration.swipeView.side", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsView.Side", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC12updateFrames33_A7F567565BF168C7DEE5B4CF43486FBDLL5usingyAC18SwipeConfigurationAGLLVyx_G_tF05swipeG4SideL_AA0s7ActionsG0C0V0Ovp" - }, - { - "key.annotated_decl" : "let xOriginOffset: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> xOriginOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 26, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "xOriginOffset", - "key.namelength" : 13, - "key.nameoffset" : 1817, - "key.offset" : 1813, - "key.parsed_declaration" : "let xOriginOffset: CGFloat", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC12updateFrames33_A7F567565BF168C7DEE5B4CF43486FBDLL5usingyAC18SwipeConfigurationAGLLVyx_G_tF13xOriginOffsetL_14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (ItemCell.SwipeConfiguration) -> ()", - "key.typeusr" : "$s5usingy10ListableUI8ItemCellC18SwipeConfiguration33_A7F567565BF168C7DEE5B4CF43486FBDLLVyx_G_tcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC12updateFrames33_A7F567565BF168C7DEE5B4CF43486FBDLL5usingyAC18SwipeConfigurationAGLLVyx_G_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 26, - "key.name" : "MARK: - Swipe Registration", - "key.offset" : 3593 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func deregisterLeadingSwipeIfNeeded()<\/Declaration>", - "key.bodylength" : 57, - "key.bodyoffset" : 3676, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> deregisterLeadingSwipeIfNeeded<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 97, - "key.line" : 123, - "key.modulename" : "ListableUI", - "key.name" : "deregisterLeadingSwipeIfNeeded()", - "key.namelength" : 32, - "key.nameoffset" : 3642, - "key.offset" : 3637, - "key.parsed_declaration" : "func deregisterLeadingSwipeIfNeeded()", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 123, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC30deregisterLeadingSwipeIfNeededyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func deregisterTrailingSwipeIfNeeded()<\/Declaration>", - "key.bodylength" : 58, - "key.bodyoffset" : 3784, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> deregisterTrailingSwipeIfNeeded<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 99, - "key.line" : 127, - "key.modulename" : "ListableUI", - "key.name" : "deregisterTrailingSwipeIfNeeded()", - "key.namelength" : 33, - "key.nameoffset" : 3749, - "key.offset" : 3744, - "key.parsed_declaration" : "func deregisterTrailingSwipeIfNeeded()", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 127, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC31deregisterTrailingSwipeIfNeededyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func registerLeadingSwipeActionsIfNeeded(actions: SwipeActionsConfiguration<\/Type>, style: SwipeActionsViewStyle<\/Type>, reason: ApplyReason<\/Type>)<\/Declaration>", - "key.bodylength" : 111, - "key.bodyoffset" : 3990, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> registerLeadingSwipeActionsIfNeeded<\/decl.name>(actions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, style<\/decl.var.parameter.argument_label>: SwipeActionsViewStyle<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 241, - "key.line" : 131, - "key.modulename" : "ListableUI", - "key.name" : "registerLeadingSwipeActionsIfNeeded(actions:style:reason:)", - "key.namelength" : 122, - "key.nameoffset" : 3866, - "key.offset" : 3861, - "key.parsed_declaration" : "func registerLeadingSwipeActionsIfNeeded(actions: SwipeActionsConfiguration, style: SwipeActionsViewStyle, reason: ApplyReason)", - "key.parsed_scope.end" : 133, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (SwipeActionsConfiguration, SwipeActionsViewStyle, ApplyReason) -> ()", - "key.typeusr" : "$s7actions5style6reasony10ListableUI25SwipeActionsConfigurationV_AD0fG9ViewStyleVAD11ApplyReasonOtcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC35registerLeadingSwipeActionsIfNeeded7actions5style6reasonyAA0jK13ConfigurationV_AA0jkG5StyleVAA11ApplyReasonOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func registerTrailingSwipeActionsIfNeeded(actions: SwipeActionsConfiguration<\/Type>, style: SwipeActionsViewStyle<\/Type>, reason: ApplyReason<\/Type>)<\/Declaration>", - "key.bodylength" : 112, - "key.bodyoffset" : 4250, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> registerTrailingSwipeActionsIfNeeded<\/decl.name>(actions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, style<\/decl.var.parameter.argument_label>: SwipeActionsViewStyle<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 243, - "key.line" : 135, - "key.modulename" : "ListableUI", - "key.name" : "registerTrailingSwipeActionsIfNeeded(actions:style:reason:)", - "key.namelength" : 123, - "key.nameoffset" : 4125, - "key.offset" : 4120, - "key.parsed_declaration" : "func registerTrailingSwipeActionsIfNeeded(actions: SwipeActionsConfiguration, style: SwipeActionsViewStyle, reason: ApplyReason)", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 135, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (SwipeActionsConfiguration, SwipeActionsViewStyle, ApplyReason) -> ()", - "key.typeusr" : "$s7actions5style6reasony10ListableUI25SwipeActionsConfigurationV_AD0fG9ViewStyleVAD11ApplyReasonOtcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC36registerTrailingSwipeActionsIfNeeded7actions5style6reasonyAA0jK13ConfigurationV_AA0jkG5StyleVAA11ApplyReasonOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func registerSwipeActionsIfNeeded(side: SwipeActionsView<\/Type>.Side<\/Type>, actions: SwipeActionsConfiguration<\/Type>, style: SwipeActionsViewStyle<\/Type>, reason: ApplyReason<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4381 - } - ], - "key.bodylength" : 1752, - "key.bodyoffset" : 4598, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> registerSwipeActionsIfNeeded<\/decl.name>(side<\/decl.var.parameter.argument_label>: SwipeActionsView<\/ref.class>.Side<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, actions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, style<\/decl.var.parameter.argument_label>: SwipeActionsViewStyle<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1962, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "registerSwipeActionsIfNeeded(side:actions:style:reason:)", - "key.namelength" : 202, - "key.nameoffset" : 4394, - "key.offset" : 4389, - "key.parsed_declaration" : "private func registerSwipeActionsIfNeeded(\n side: SwipeActionsView.Side,\n actions: SwipeActionsConfiguration,\n style: SwipeActionsViewStyle,\n reason: ApplyReason\n)", - "key.parsed_scope.end" : 182, - "key.parsed_scope.start" : 139, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (SwipeActionsView.Side, SwipeActionsConfiguration, SwipeActionsViewStyle, ApplyReason) -> ()", - "key.typeusr" : "$s4side7actions5style6reasony10ListableUI16SwipeActionsViewC4SideO_AE0gH13ConfigurationVAE0ghI5StyleVAE11ApplyReasonOtcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC28registerSwipeActionsIfNeeded33_A7F567565BF168C7DEE5B4CF43486FBDLL4side7actions5style6reasonyAA0ijG0C4SideO_AA0iJ13ConfigurationVAA0ijG5StyleVAA11ApplyReasonOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private weak var listView: ListView<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 6369 - }, - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6361 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 184, - "key.modulename" : "ListableUI", - "key.name" : "listView", - "key.namelength" : 8, - "key.nameoffset" : 6378, - "key.offset" : 6374, - "key.parsed_declaration" : "private weak var listView : ListView? = nil", - "key.parsed_scope.end" : 184, - "key.parsed_scope.start" : 184, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ListView?", - "key.typeusr" : "$s10ListableUI8ListViewCSgD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC04listG033_A7F567565BF168C7DEE5B4CF43486FBDLLAA04ListG0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func handleTap(sender: UITapGestureRecognizer<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6420 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 6414 - } - ], - "key.bodylength" : 156, - "key.bodyoffset" : 6476, - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> handleTap<\/decl.name>(sender<\/decl.var.parameter.argument_label>: UITapGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 205, - "key.line" : 186, - "key.modulename" : "ListableUI", - "key.name" : "handleTap(sender:)", - "key.namelength" : 41, - "key.nameoffset" : 6433, - "key.offset" : 6428, - "key.parsed_declaration" : "@objc private func handleTap(sender: UITapGestureRecognizer)", - "key.parsed_scope.end" : 189, - "key.parsed_scope.start" : 186, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (UITapGestureRecognizer) -> ()", - "key.typeusr" : "$s6senderySo22UITapGestureRecognizerC_tcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handleTap33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UITapGestureRecognizerC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func handlePan(sender: UIPanGestureRecognizer<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6649 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 6643 - } - ], - "key.bodylength" : 2592, - "key.bodyoffset" : 6705, - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> handlePan<\/decl.name>(sender<\/decl.var.parameter.argument_label>: UIPanGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2641, - "key.line" : 191, - "key.modulename" : "ListableUI", - "key.name" : "handlePan(sender:)", - "key.namelength" : 41, - "key.nameoffset" : 6662, - "key.offset" : 6657, - "key.parsed_declaration" : "@objc private func handlePan(sender: UIPanGestureRecognizer)", - "key.parsed_scope.end" : 267, - "key.parsed_scope.start" : 191, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let side: SwipeActionsView<\/Type>.Side<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> side<\/decl.name>: SwipeActionsView<\/ref.class>.Side<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 39, - "key.line" : 203, - "key.modulename" : "ListableUI", - "key.name" : "side", - "key.namelength" : 4, - "key.nameoffset" : 7050, - "key.offset" : 7046, - "key.parsed_declaration" : "let side = configuration.swipeView.side", - "key.parsed_scope.end" : 203, - "key.parsed_scope.start" : 203, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsView.Side", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF4sideL_AA012SwipeActionsG0C4SideOvp" - }, - { - "key.annotated_decl" : "let offsetMultiplier: Double<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> offsetMultiplier<\/decl.name>: Double<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 69, - "key.line" : 204, - "key.modulename" : "ListableUI", - "key.name" : "offsetMultiplier", - "key.namelength" : 16, - "key.nameoffset" : 7102, - "key.offset" : 7098, - "key.parsed_declaration" : "let offsetMultiplier = configuration.numberOfActions == 1 ? 0.5 : 0.7", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 204, - "key.reusingastcontext" : false, - "key.typename" : "Double", - "key.typeusr" : "$sSdD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF16offsetMultiplierL_Sdvp" - }, - { - "key.annotated_decl" : "let performActionOffset: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> performActionOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 65, - "key.line" : 205, - "key.modulename" : "ListableUI", - "key.name" : "performActionOffset", - "key.namelength" : 19, - "key.nameoffset" : 7184, - "key.offset" : 7180, - "key.parsed_declaration" : "let performActionOffset = frame.width * CGFloat(offsetMultiplier)", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 205, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF19performActionOffsetL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let currentSwipeOffset: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> currentSwipeOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 31, - "key.line" : 207, - "key.modulename" : "ListableUI", - "key.name" : "currentSwipeOffset", - "key.namelength" : 18, - "key.nameoffset" : 7275, - "key.offset" : 7271, - "key.parsed_declaration" : "let currentSwipeOffset: CGFloat", - "key.parsed_scope.end" : 207, - "key.parsed_scope.start" : 207, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF18currentSwipeOffsetL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let willPerformAction: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> willPerformAction<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 130, - "key.line" : 215, - "key.modulename" : "ListableUI", - "key.name" : "willPerformAction", - "key.namelength" : 17, - "key.nameoffset" : 7550, - "key.offset" : 7546, - "key.parsed_declaration" : "let willPerformAction = currentSwipeOffset > performActionOffset\n && configuration.performsFirstActionWithFullSwipe", - "key.parsed_scope.end" : 215, - "key.parsed_scope.start" : 215, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF17willPerformActionL_Sbvp" - } - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (UIPanGestureRecognizer) -> ()", - "key.typeusr" : "$s6senderySo22UIPanGestureRecognizerC_tcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func didPerformAction(animation: SwipeAction<\/Type>.OnDidPerformActionAnimation<\/Type>, side: SwipeActionsView<\/Type>.Side<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 9308 - } - ], - "key.bodylength" : 246, - "key.bodyoffset" : 9420, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> didPerformAction<\/decl.name>(animation<\/decl.var.parameter.argument_label>: SwipeAction<\/ref.struct>.OnDidPerformActionAnimation<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, side<\/decl.var.parameter.argument_label>: SwipeActionsView<\/ref.class>.Side<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 351, - "key.line" : 269, - "key.modulename" : "ListableUI", - "key.name" : "didPerformAction(animation:side:)", - "key.namelength" : 97, - "key.nameoffset" : 9321, - "key.offset" : 9316, - "key.parsed_declaration" : "private func didPerformAction(animation: SwipeAction.OnDidPerformActionAnimation, side: SwipeActionsView.Side)", - "key.parsed_scope.end" : 276, - "key.parsed_scope.start" : 269, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (SwipeAction.OnDidPerformActionAnimation, SwipeActionsView.Side) -> ()", - "key.typeusr" : "$s9animation4sidey10ListableUI11SwipeActionV012OnDidPerformF9AnimationO_AC0E11ActionsViewC4SideOtcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC16didPerformAction33_A7F567565BF168C7DEE5B4CF43486FBDLL9animation4sideyAA05SwipeJ0V05OnDidiJ9AnimationO_AA0u7ActionsG0C4SideOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func openSwipeActionsAnimated(on side: SwipeActionState<\/Type>.Side<\/Type>)<\/Declaration>", - "key.bodylength" : 66, - "key.bodyoffset" : 9741, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> openSwipeActionsAnimated<\/decl.name>(on<\/decl.var.parameter.argument_label> side<\/decl.var.parameter.name>: SwipeActionState<\/ref.enum>.Side<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 131, - "key.line" : 278, - "key.modulename" : "ListableUI", - "key.name" : "openSwipeActionsAnimated(on:)", - "key.namelength" : 57, - "key.nameoffset" : 9682, - "key.offset" : 9677, - "key.parsed_declaration" : "func openSwipeActionsAnimated(on side : SwipeActionState.Side)", - "key.parsed_scope.end" : 280, - "key.parsed_scope.start" : 278, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (SwipeActionsView.Side) -> ()", - "key.typeusr" : "$s2ony10ListableUI16SwipeActionsViewC4SideO_tcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC24openSwipeActionsAnimated2onyAA0ijG0C4SideO_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func performAnimatedClose()<\/Declaration>", - "key.bodylength" : 62, - "key.bodyoffset" : 9855, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> performAnimatedClose<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 92, - "key.line" : 282, - "key.modulename" : "ListableUI", - "key.name" : "performAnimatedClose()", - "key.namelength" : 22, - "key.nameoffset" : 9831, - "key.offset" : 9826, - "key.parsed_declaration" : "func performAnimatedClose()", - "key.parsed_scope.end" : 284, - "key.parsed_scope.start" : 282, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC20performAnimatedCloseyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func set(state: SwipeActionState<\/Type>, animated: Bool<\/Type> = false)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 9928 - } - ], - "key.bodylength" : 792, - "key.bodyoffset" : 9995, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(state<\/decl.var.parameter.argument_label>: SwipeActionState<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 852, - "key.line" : 286, - "key.modulename" : "ListableUI", - "key.name" : "set(state:animated:)", - "key.namelength" : 52, - "key.nameoffset" : 9941, - "key.offset" : 9936, - "key.parsed_declaration" : "private func set(state: SwipeActionState, animated: Bool = false)", - "key.parsed_scope.end" : 308, - "key.parsed_scope.start" : 286, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (SwipeActionState, Bool) -> ()", - "key.typeusr" : "$s5state8animatedy10ListableUI16SwipeActionStateO_SbtcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC3set33_A7F567565BF168C7DEE5B4CF43486FBDLL5state8animatedyAA16SwipeActionStateO_SbtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func performAccessibilityAction(_ action: AccessibilitySwipeAction<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 10804 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 10798 - } - ], - "key.bodylength" : 182, - "key.bodyoffset" : 10889, - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performAccessibilityAction<\/decl.name>(_<\/decl.var.parameter.argument_label> action<\/decl.var.parameter.name>: AccessibilitySwipeAction<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 260, - "key.line" : 310, - "key.modulename" : "ListableUI", - "key.name" : "performAccessibilityAction(_:)", - "key.namelength" : 62, - "key.nameoffset" : 10817, - "key.offset" : 10812, - "key.parsed_declaration" : "@objc private func performAccessibilityAction(_ action: AccessibilitySwipeAction) -> Bool", - "key.parsed_scope.end" : 316, - "key.parsed_scope.start" : 310, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (AccessibilitySwipeAction) -> Bool", - "key.typeusr" : "$sySb10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLCcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC26performAccessibilityAction33_A7F567565BF168C7DEE5B4CF43486FBDLLySbAA0i5SwipeJ0AGLLCF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func configureAccessibilityActions(_ actions: [SwipeAction<\/Type>], for side: Side<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 11082 - } - ], - "key.bodylength" : 217, - "key.bodyoffset" : 11168, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> configureAccessibilityActions<\/decl.name>(_<\/decl.var.parameter.argument_label> actions<\/decl.var.parameter.name>: [SwipeAction<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> side<\/decl.var.parameter.name>: Side<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 296, - "key.line" : 318, - "key.modulename" : "ListableUI", - "key.name" : "configureAccessibilityActions(_:for:)", - "key.namelength" : 71, - "key.nameoffset" : 11095, - "key.offset" : 11090, - "key.parsed_declaration" : "private func configureAccessibilityActions(_ actions: [SwipeAction], for side: Side)", - "key.parsed_scope.end" : 322, - "key.parsed_scope.start" : 318, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> ([SwipeAction], SwipeActionsView.Side) -> ()", - "key.typeusr" : "$s_3forySay10ListableUI11SwipeActionVG_AB0D11ActionsViewC4SideOtcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC29configureAccessibilityActions33_A7F567565BF168C7DEE5B4CF43486FBDLL_3forySayAA11SwipeActionVG_AA0tjG0C4SideOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func updateAccessibilityCustomActions()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 11404 - } - ], - "key.bodylength" : 143, - "key.bodyoffset" : 11453, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateAccessibilityCustomActions<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 185, - "key.line" : 324, - "key.modulename" : "ListableUI", - "key.name" : "updateAccessibilityCustomActions()", - "key.namelength" : 34, - "key.nameoffset" : 11417, - "key.offset" : 11412, - "key.parsed_declaration" : "private func updateAccessibilityCustomActions()", - "key.parsed_scope.end" : 328, - "key.parsed_scope.start" : 324, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC32updateAccessibilityCustomActions33_A7F567565BF168C7DEE5B4CF43486FBDLLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func deregisterSwipeIfNeeded(for side: Side<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 11615 - } - ], - "key.bodylength" : 374, - "key.bodyoffset" : 11669, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> deregisterSwipeIfNeeded<\/decl.name>(for<\/decl.var.parameter.argument_label> side<\/decl.var.parameter.name>: Side<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 421, - "key.line" : 330, - "key.modulename" : "ListableUI", - "key.name" : "deregisterSwipeIfNeeded(for:)", - "key.namelength" : 39, - "key.nameoffset" : 11628, - "key.offset" : 11623, - "key.parsed_declaration" : "private func deregisterSwipeIfNeeded(for side: Side)", - "key.parsed_scope.end" : 341, - "key.parsed_scope.start" : 330, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (SwipeActionsView.Side) -> ()", - "key.typeusr" : "$s3fory10ListableUI16SwipeActionsViewC4SideO_tcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC23deregisterSwipeIfNeeded33_A7F567565BF168C7DEE5B4CF43486FBDLL3foryAA0i7ActionsG0C4SideO_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 12094 - } - ], - "key.bodylength" : 355, - "key.bodyoffset" : 12188, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> gestureRecognizerShouldBegin<\/decl.name>(_<\/decl.var.parameter.argument_label> gestureRecognizer<\/decl.var.parameter.name>: UIGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 441, - "key.line" : 344, - "key.modulename" : "ListableUI", - "key.name" : "gestureRecognizerShouldBegin(_:)", - "key.namelength" : 70, - "key.nameoffset" : 12108, - "key.offset" : 12103, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UIGestureRecognizerDelegate(im)gestureRecognizerShouldBegin:" - }, - { - "key.usr" : "c:objc(cs)UIView(im)gestureRecognizerShouldBegin:" - } - ], - "key.parsed_declaration" : "override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool", - "key.parsed_scope.end" : 350, - "key.parsed_scope.start" : 344, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let location: CGPoint<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> location<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 71, - "key.line" : 348, - "key.modulename" : "ListableUI", - "key.name" : "location", - "key.namelength" : 8, - "key.nameoffset" : 12405, - "key.offset" : 12401, - "key.parsed_declaration" : "let location = tapRecognizer.location(ofTouch: 0, in: self.contentView)", - "key.parsed_scope.end" : 348, - "key.parsed_scope.start" : 348, - "key.reusingastcontext" : false, - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC28gestureRecognizerShouldBeginySbSo09UIGestureI0CF8locationL_So7CGPointVvp" - } - ], - "key.typename" : " (ItemCell.ContentContainerView) -> (UIGestureRecognizer) -> Bool", - "key.typeusr" : "$sySbSo19UIGestureRecognizerCcD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC28gestureRecognizerShouldBeginySbSo09UIGestureI0CF" - } - ], - "key.typename" : "ItemCell.ContentContainerView.Type", - "key.typeusr" : "$s10ListableUI8ItemCellC20ContentContainerViewCyx_GmD", - "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private struct SwipeConfiguration<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 12556 - } - ], - "key.bodylength" : 209, - "key.bodyoffset" : 12591, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SwipeConfiguration<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 237, - "key.line" : 353, - "key.modulename" : "ListableUI", - "key.name" : "SwipeConfiguration", - "key.namelength" : 18, - "key.nameoffset" : 12571, - "key.offset" : 12564, - "key.parsed_declaration" : "private struct SwipeConfiguration", - "key.parsed_scope.end" : 359, - "key.parsed_scope.start" : 353, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let panGestureRecognizer: UIPanGestureRecognizer<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> panGestureRecognizer<\/decl.name>: UIPanGestureRecognizer<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 354, - "key.modulename" : "ListableUI", - "key.name" : "panGestureRecognizer", - "key.namelength" : 20, - "key.nameoffset" : 12604, - "key.offset" : 12600, - "key.parsed_declaration" : "let panGestureRecognizer: UIPanGestureRecognizer", - "key.parsed_scope.end" : 354, - "key.parsed_scope.start" : 354, - "key.reusingastcontext" : false, - "key.typename" : "UIPanGestureRecognizer", - "key.typeusr" : "$sSo22UIPanGestureRecognizerCD", - "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfiguration33_A7F567565BF168C7DEE5B4CF43486FBDLLV20panGestureRecognizerSo05UIPanpQ0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let swipeView: SwipeActionsView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> swipeView<\/decl.name>: SwipeActionsView<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 355, - "key.modulename" : "ListableUI", - "key.name" : "swipeView", - "key.namelength" : 9, - "key.nameoffset" : 12661, - "key.offset" : 12657, - "key.parsed_declaration" : "let swipeView: SwipeActionsView", - "key.parsed_scope.end" : 355, - "key.parsed_scope.start" : 355, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsView", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewCD", - "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfiguration33_A7F567565BF168C7DEE5B4CF43486FBDLLV9swipeViewAA0e7ActionsP0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var numberOfActions: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> numberOfActions<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 356, - "key.modulename" : "ListableUI", - "key.name" : "numberOfActions", - "key.namelength" : 15, - "key.nameoffset" : 12701, - "key.offset" : 12697, - "key.parsed_declaration" : "var numberOfActions: Int", - "key.parsed_scope.end" : 356, - "key.parsed_scope.start" : 356, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfiguration33_A7F567565BF168C7DEE5B4CF43486FBDLLV15numberOfActionsSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var performsFirstActionWithFullSwipe: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> performsFirstActionWithFullSwipe<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 357, - "key.modulename" : "ListableUI", - "key.name" : "performsFirstActionWithFullSwipe", - "key.namelength" : 32, - "key.nameoffset" : 12734, - "key.offset" : 12730, - "key.parsed_declaration" : "var performsFirstActionWithFullSwipe: Bool", - "key.parsed_scope.end" : 357, - "key.parsed_scope.start" : 357, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfiguration33_A7F567565BF168C7DEE5B4CF43486FBDLLV027performsFirstActionWithFullE0Sbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var side: Side<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> side<\/decl.name>: Side<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 14, - "key.line" : 358, - "key.modulename" : "ListableUI", - "key.name" : "side", - "key.namelength" : 4, - "key.nameoffset" : 12785, - "key.offset" : 12781, - "key.parsed_declaration" : "var side: Side", - "key.parsed_scope.end" : 358, - "key.parsed_scope.start" : 358, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "SwipeActionsView.Side", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOD", - "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfiguration33_A7F567565BF168C7DEE5B4CF43486FBDLLV4sideAA0E11ActionsViewC4SideOvp" - } - ], - "key.typename" : "ItemCell.SwipeConfiguration.Type", - "key.typeusr" : "$s10ListableUI8ItemCellC18SwipeConfiguration33_A7F567565BF168C7DEE5B4CF43486FBDLLVyx_GmD", - "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfiguration33_A7F567565BF168C7DEE5B4CF43486FBDLLV" - } - ], - "key.typename" : "ItemCell.Type", - "key.typeusr" : "$s10ListableUI8ItemCellCyxGmD", - "key.usr" : "s:10ListableUI8ItemCellC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private class AccessibilitySwipeAction : UIAccessibilityCustomAction<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 12805 - } - ], - "key.bodylength" : 404, - "key.bodyoffset" : 12874, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 27, - "key.offset" : 12845 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> AccessibilitySwipeAction<\/decl.name> : UIAccessibilityCustomAction<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIAccessibilityCustomAction" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 466, - "key.line" : 362, - "key.modulename" : "ListableUI", - "key.name" : "AccessibilitySwipeAction", - "key.namelength" : 24, - "key.nameoffset" : 12819, - "key.offset" : 12813, - "key.parsed_declaration" : "private class AccessibilitySwipeAction: UIAccessibilityCustomAction", - "key.parsed_scope.end" : 376, - "key.parsed_scope.start" : 362, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias AccessibilitySwipeAction<\/Type>.Side = SwipeActionsView<\/Type>.Side<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> AccessibilitySwipeAction<\/ref.class>.Side<\/decl.name> = SwipeActionsView<\/ref.class>.Side<\/ref.enum><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 38, - "key.line" : 363, - "key.modulename" : "ListableUI", - "key.name" : "Side", - "key.namelength" : 4, - "key.nameoffset" : 12889, - "key.offset" : 12879, - "key.parsed_declaration" : "typealias Side = SwipeActionsView.Side", - "key.parsed_scope.end" : 363, - "key.parsed_scope.start" : 363, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLC" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsView.Side.Type", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOmD", - "key.usr" : "s:10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLC4Sidea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let action: SwipeAction<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> action<\/decl.name>: SwipeAction<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 365, - "key.modulename" : "ListableUI", - "key.name" : "action", - "key.namelength" : 6, - "key.nameoffset" : 12931, - "key.offset" : 12927, - "key.parsed_declaration" : "let action: SwipeAction", - "key.parsed_scope.end" : 365, - "key.parsed_scope.start" : 365, - "key.reusingastcontext" : false, - "key.typename" : "SwipeAction", - "key.typeusr" : "$s10ListableUI11SwipeActionVD", - "key.usr" : "s:10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLC6actionAA0dE0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let side: SwipeActionsView<\/Type>.Side<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> side<\/decl.name>: SwipeActionsView<\/ref.class>.Side<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 366, - "key.modulename" : "ListableUI", - "key.name" : "side", - "key.namelength" : 4, - "key.nameoffset" : 12959, - "key.offset" : 12955, - "key.parsed_declaration" : "let side: SwipeActionsView.Side", - "key.parsed_scope.end" : 366, - "key.parsed_scope.start" : 366, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsView.Side", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOD", - "key.usr" : "s:10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLC4sideAA0D11ActionsViewC4SideOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> init(action: SwipeAction<\/Type>, side: Side<\/Type>, target: Any?, selector: Selector<\/Type>)<\/Declaration>", - "key.bodylength" : 211, - "key.bodyoffset" : 13065, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> init<\/syntaxtype.keyword>(action<\/decl.var.parameter.argument_label>: SwipeAction<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, side<\/decl.var.parameter.argument_label>: Side<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, target<\/decl.var.parameter.argument_label>: Any<\/syntaxtype.keyword>?<\/decl.var.parameter.type><\/decl.var.parameter>, selector<\/decl.var.parameter.argument_label>: Selector<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 285, - "key.line" : 368, - "key.modulename" : "ListableUI", - "key.name" : "init(action:side:target:selector:)", - "key.namelength" : 71, - "key.nameoffset" : 12992, - "key.offset" : 12992, - "key.parsed_declaration" : "init(action: SwipeAction, side: Side, target: Any?, selector: Selector)", - "key.parsed_scope.end" : 375, - "key.parsed_scope.start" : 368, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLC" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let name: String<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> name<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 58, - "key.line" : 372, - "key.modulename" : "ListableUI", - "key.name" : "name", - "key.namelength" : 4, - "key.nameoffset" : 13141, - "key.offset" : 13137, - "key.parsed_declaration" : "let name = action.accessibilityLabel ?? action.title ?? \"\"", - "key.parsed_scope.end" : 372, - "key.parsed_scope.start" : 372, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLC6action4side6target8selectorAdA0dE0V_AA0D11ActionsViewC4SideOypSg10ObjectiveC8SelectorVtcfc4nameL_SSvp" - } - ], - "key.typename" : "(AccessibilitySwipeAction.Type) -> (SwipeAction, SwipeActionsView.Side, Any?, Selector) -> AccessibilitySwipeAction", - "key.typeusr" : "$s6action4side6target8selector10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLCAE0hI0V_AE0H11ActionsViewC4SideOypSg10ObjectiveC8SelectorVtcD", - "key.usr" : "s:10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLC6action4side6target8selectorAdA0dE0V_AA0D11ActionsViewC4SideOypSg10ObjectiveC8SelectorVtcfc" - } - ], - "key.typename" : "AccessibilitySwipeAction.Type", - "key.typeusr" : "$s10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLCmD", - "key.usr" : "s:10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum SwipeActionState : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 951, - "key.bodyoffset" : 13373, - "key.column" : 6, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "These states dictate the layout of the swipe actions.", - "key.doc.column" : 6, - "key.doc.comment" : "These states dictate the layout of the swipe actions.", - "key.doc.declaration" : "enum SwipeActionState : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.doc.full_as_xml" : "SwipeActionState<\/Name>s:10ListableUI16SwipeActionStateO<\/USR>enum SwipeActionState : Equatable<\/Declaration>These states dictate the layout of the swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 379, - "key.doc.name" : "SwipeActionState", - "key.doc.type" : "Other", - "key.doclength" : 58, - "key.docoffset" : 13281, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 13362 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> SwipeActionState<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 986, - "key.line" : 379, - "key.modulename" : "ListableUI", - "key.name" : "SwipeActionState", - "key.namelength" : 16, - "key.nameoffset" : 13344, - "key.offset" : 13339, - "key.parsed_declaration" : "enum SwipeActionState: Equatable", - "key.parsed_scope.end" : 408, - "key.parsed_scope.start" : 379, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias SwipeActionState<\/Type>.Side = SwipeActionsView<\/Type>.Side<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> SwipeActionState<\/ref.enum>.Side<\/decl.name> = SwipeActionsView<\/ref.class>.Side<\/ref.enum><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 38, - "key.line" : 380, - "key.modulename" : "ListableUI", - "key.name" : "Side", - "key.namelength" : 4, - "key.nameoffset" : 13388, - "key.offset" : 13378, - "key.parsed_declaration" : "typealias Side = SwipeActionsView.Side", - "key.parsed_scope.end" : 380, - "key.parsed_scope.start" : 380, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsView.Side.Type", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOmD", - "key.usr" : "s:10ListableUI16SwipeActionStateO4Sidea" - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 13472, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case closed<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The actions are completely collapsed.", - "key.doc.column" : 10, - "key.doc.comment" : "The actions are completely collapsed.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.doc.full_as_xml" : "closed<\/Name>s:10ListableUI16SwipeActionStateO6closedyA2CmF<\/USR><\/Declaration>The actions are completely collapsed.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 383, - "key.doc.name" : "closed", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 13426, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> closed<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 383, - "key.modulename" : "ListableUI", - "key.name" : "closed", - "key.namelength" : 6, - "key.nameoffset" : 13477, - "key.offset" : 13477, - "key.parsed_declaration" : "case closed", - "key.parsed_scope.end" : 383, - "key.parsed_scope.start" : 383, - "key.reusingastcontext" : false, - "key.typename" : "(SwipeActionState.Type) -> SwipeActionState", - "key.typeusr" : "$sy10ListableUI16SwipeActionStateOACmcD", - "key.usr" : "s:10ListableUI16SwipeActionStateO6closedyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 15, - "key.offset" : 13541, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case open(Side<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The actions are open to their natural size.", - "key.doc.column" : 10, - "key.doc.comment" : "The actions are open to their natural size.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.doc.full_as_xml" : "open(_:)<\/Name>s:10ListableUI16SwipeActionStateO4openyAcA0C11ActionsViewC4SideOcACmF<\/USR><\/Declaration>The actions are open to their natural size.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 386, - "key.doc.name" : "open(_:)", - "key.doc.type" : "Other", - "key.doclength" : 48, - "key.docoffset" : 13489, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> open<\/decl.name>(Side<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 10, - "key.line" : 386, - "key.modulename" : "ListableUI", - "key.name" : "open(_:)", - "key.namelength" : 10, - "key.nameoffset" : 13546, - "key.offset" : 13546, - "key.parsed_declaration" : "case open(Side)", - "key.parsed_scope.end" : 386, - "key.parsed_scope.start" : 386, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionState.Type) -> (SwipeActionsView.Side) -> SwipeActionState", - "key.typeusr" : "$sy10ListableUI16SwipeActionStateOAA0C11ActionsViewC4SideOcACmcD", - "key.usr" : "s:10ListableUI16SwipeActionStateO4openyAcA0C11ActionsViewC4SideOcACmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 43, - "key.offset" : 13651, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case swiping(Side<\/Type>, willPerformAction: Bool<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The actions are being swiped and the size is affected by the gesture recognizer.", - "key.doc.column" : 10, - "key.doc.comment" : "The actions are being swiped and the size is affected by the gesture recognizer.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.doc.full_as_xml" : "swiping(_:willPerformAction:)<\/Name>s:10ListableUI16SwipeActionStateO7swipingyAcA0C11ActionsViewC4SideO_SbtcACmF<\/USR><\/Declaration>The actions are being swiped and the size is affected by the gesture recognizer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 389, - "key.doc.name" : "swiping(_:willPerformAction:)", - "key.doc.type" : "Other", - "key.doclength" : 85, - "key.docoffset" : 13562, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> swiping<\/decl.name>(Side<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, willPerformAction<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 38, - "key.line" : 389, - "key.modulename" : "ListableUI", - "key.name" : "swiping(_:willPerformAction:)", - "key.namelength" : 38, - "key.nameoffset" : 13656, - "key.offset" : 13656, - "key.parsed_declaration" : "case swiping(Side, willPerformAction: Bool)", - "key.parsed_scope.end" : 389, - "key.parsed_scope.start" : 389, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionState.Type) -> (SwipeActionsView.Side, Bool) -> SwipeActionState", - "key.typeusr" : "$sy10ListableUI16SwipeActionStateOAA0C11ActionsViewC4SideO_SbtcACmcD", - "key.usr" : "s:10ListableUI16SwipeActionStateO7swipingyAcA0C11ActionsViewC4SideO_SbtcACmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 46, - "key.offset" : 13777, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case willPerformFirstActionAutomatically(Side<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The actions have been swiped far enough to confirm the first action.", - "key.doc.column" : 10, - "key.doc.comment" : "The actions have been swiped far enough to confirm the first action.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.doc.full_as_xml" : "willPerformFirstActionAutomatically(_:)<\/Name>s:10ListableUI16SwipeActionStateO016willPerformFirstD13AutomaticallyyAcA0C11ActionsViewC4SideOcACmF<\/USR><\/Declaration>The actions have been swiped far enough to confirm the first action.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 392, - "key.doc.name" : "willPerformFirstActionAutomatically(_:)", - "key.doc.type" : "Other", - "key.doclength" : 73, - "key.docoffset" : 13700, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> willPerformFirstActionAutomatically<\/decl.name>(Side<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 41, - "key.line" : 392, - "key.modulename" : "ListableUI", - "key.name" : "willPerformFirstActionAutomatically(_:)", - "key.namelength" : 41, - "key.nameoffset" : 13782, - "key.offset" : 13782, - "key.parsed_declaration" : "case willPerformFirstActionAutomatically(Side)", - "key.parsed_scope.end" : 392, - "key.parsed_scope.start" : 392, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionState.Type) -> (SwipeActionsView.Side) -> SwipeActionState", - "key.typeusr" : "$sy10ListableUI16SwipeActionStateOAA0C11ActionsViewC4SideOcACmcD", - "key.usr" : "s:10ListableUI16SwipeActionStateO016willPerformFirstD13AutomaticallyyAcA0C11ActionsViewC4SideOcACmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 24, - "key.offset" : 13933, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case expandActions(Side<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The actions have been asked to completely expand (typically because the item is being deleted).", - "key.doc.column" : 10, - "key.doc.comment" : "The actions have been asked to completely expand (typically because the item is being deleted).", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.doc.full_as_xml" : "expandActions(_:)<\/Name>s:10ListableUI16SwipeActionStateO13expandActionsyAcA0cG4ViewC4SideOcACmF<\/USR><\/Declaration>The actions have been asked to completely expand (typically because the item is being deleted).<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 395, - "key.doc.name" : "expandActions(_:)", - "key.doc.type" : "Other", - "key.doclength" : 100, - "key.docoffset" : 13829, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> expandActions<\/decl.name>(Side<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 19, - "key.line" : 395, - "key.modulename" : "ListableUI", - "key.name" : "expandActions(_:)", - "key.namelength" : 19, - "key.nameoffset" : 13938, - "key.offset" : 13938, - "key.parsed_declaration" : "case expandActions(Side)", - "key.parsed_scope.end" : 395, - "key.parsed_scope.start" : 395, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionState.Type) -> (SwipeActionsView.Side) -> SwipeActionState", - "key.typeusr" : "$sy10ListableUI16SwipeActionStateOAA0C11ActionsViewC4SideOcACmcD", - "key.usr" : "s:10ListableUI16SwipeActionStateO13expandActionsyAcA0cG4ViewC4SideOcACmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func isRelevantFor(side: Side<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 315, - "key.bodyoffset" : 14007, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isRelevantFor<\/decl.name>(side<\/decl.var.parameter.argument_label>: Side<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 356, - "key.line" : 397, - "key.modulename" : "ListableUI", - "key.name" : "isRelevantFor(side:)", - "key.namelength" : 25, - "key.nameoffset" : 13972, - "key.offset" : 13967, - "key.parsed_declaration" : "func isRelevantFor(side: Side) -> Bool", - "key.parsed_scope.end" : 407, - "key.parsed_scope.start" : 397, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionState) -> (SwipeActionsView.Side) -> Bool", - "key.typeusr" : "$s4sideSb10ListableUI16SwipeActionsViewC4SideO_tcD", - "key.usr" : "s:10ListableUI16SwipeActionStateO13isRelevantFor4sideSbAA0C11ActionsViewC4SideO_tF" - } - ], - "key.typename" : "SwipeActionState.Type", - "key.typeusr" : "$s10ListableUI16SwipeActionStateOmD", - "key.usr" : "s:10ListableUI16SwipeActionStateO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "enum SwipeActionsView<\/Type>.Side : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 14327 - } - ], - "key.bodylength" : 219, - "key.bodyoffset" : 14368, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> SwipeActionsView<\/ref.class>.Side<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 253, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "SwipeActionsView.Side", - "key.namelength" : 21, - "key.nameoffset" : 14345, - "key.offset" : 14335, - "key.parsed_declaration" : "private extension SwipeActionsView.Side", - "key.parsed_scope.end" : 420, - "key.parsed_scope.start" : 410, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "var gestureDirection: DirectionalPanGestureRecognizer<\/Type>.Direction<\/Type> { get }<\/Declaration>", - "key.bodylength" : 142, - "key.bodyoffset" : 14443, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> gestureDirection<\/decl.name>: DirectionalPanGestureRecognizer<\/ref.class>.Direction<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 208, - "key.line" : 412, - "key.modulename" : "ListableUI", - "key.name" : "gestureDirection", - "key.namelength" : 16, - "key.nameoffset" : 14382, - "key.offset" : 14378, - "key.parsed_declaration" : "var gestureDirection: DirectionalPanGestureRecognizer.Direction", - "key.parsed_scope.end" : 419, - "key.parsed_scope.start" : 412, - "key.reusingastcontext" : false, - "key.typename" : "DirectionalPanGestureRecognizer.Direction", - "key.typeusr" : "$s10ListableUI31DirectionalPanGestureRecognizerC9DirectionOD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC4SideO16gestureDirection33_A7F567565BF168C7DEE5B4CF43486FBDLLAA31DirectionalPanGestureRecognizerC0H0Ovp" - } - ], - "key.typename" : "SwipeActionsView.Side.Type", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOmD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC4SideO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 11192, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "protocol AnyItemCell : UICollectionViewCell<\/Type><\/Declaration>", - "key.bodylength" : 212, - "key.bodyoffset" : 146, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 20, - "key.offset" : 124 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> AnyItemCell<\/decl.name> : UICollectionViewCell<\/ref.class><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "UICollectionViewCell" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 258, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "AnyItemCell", - "key.namelength" : 11, - "key.nameoffset" : 110, - "key.offset" : 101, - "key.parsed_declaration" : "protocol AnyItemCell : UICollectionViewCell", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func openLeadingSwipeActions()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> openLeadingSwipeActions<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 30, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "openLeadingSwipeActions()", - "key.namelength" : 25, - "key.nameoffset" : 156, - "key.offset" : 151, - "key.parsed_declaration" : "func openLeadingSwipeActions()", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI11AnyItemCellP23openLeadingSwipeActionsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func openTrailingSwipeActions()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> openTrailingSwipeActions<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 31, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "openTrailingSwipeActions()", - "key.namelength" : 26, - "key.nameoffset" : 191, - "key.offset" : 186, - "key.parsed_declaration" : "func openTrailingSwipeActions()", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI11AnyItemCellP24openTrailingSwipeActionsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func closeSwipeActions()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> closeSwipeActions<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 24, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "closeSwipeActions()", - "key.namelength" : 19, - "key.nameoffset" : 232, - "key.offset" : 227, - "key.parsed_declaration" : "func closeSwipeActions()", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI11AnyItemCellP17closeSwipeActionsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var areSwipeActionsVisible: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 297, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> areSwipeActionsVisible<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "areSwipeActionsVisible", - "key.namelength" : 22, - "key.nameoffset" : 265, - "key.offset" : 261, - "key.parsed_declaration" : "var areSwipeActionsVisible : Bool", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI11AnyItemCellP22areSwipeActionsVisibleSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func wasDequeued(with liveCells: LiveCells<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasDequeued<\/decl.name>(with<\/decl.var.parameter.argument_label> liveCells<\/decl.var.parameter.name>: LiveCells<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 44, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "wasDequeued(with:)", - "key.namelength" : 39, - "key.nameoffset" : 318, - "key.offset" : 313, - "key.parsed_declaration" : "func wasDequeued(with liveCells : LiveCells)", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (LiveCells) -> ()", - "key.typeusr" : "$s4withy10ListableUI9LiveCellsC_tcD", - "key.usr" : "s:10ListableUI11AnyItemCellP11wasDequeued4withyAA9LiveCellsC_tF" - } - ], - "key.typename" : "AnyItemCell.Type", - "key.typeusr" : "$s10ListableUI11AnyItemCell_pmD", - "key.usr" : "s:10ListableUI11AnyItemCellP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> final class ItemCell<Content> : UICollectionViewCell<\/Type>, AnyItemCell<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 638 - } - ], - "key.bodylength" : 7442, - "key.bodyoffset" : 717, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An internal cell type used to render items in the list.\n\nInformation on how cell selection appearance customization works:\nhttps:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells\n", - "key.doc.column" : 13, - "key.doc.comment" : "\nAn internal cell type used to render items in the list.\n\nInformation on how cell selection appearance customization works:\nhttps:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells", - "key.doc.declaration" : "@MainActor final class ItemCell : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.doc.full_as_xml" : "ItemCell<\/Name>s:10ListableUI8ItemCellC<\/USR>@MainActor final class ItemCell<Content> : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent<\/Declaration>An internal cell type used to render items in the list.<\/Para><\/Abstract>Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 29, - "key.doc.name" : "ItemCell", - "key.doc.type" : "Class", - "key.doclength" : 277, - "key.docoffset" : 361, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 20, - "key.offset" : 682 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 704 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemCell<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UICollectionViewCell<\/ref.class>, AnyItemCell<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UICollectionViewCell" - }, - { - "key.name" : "AnyItemCell" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 7516, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "ItemCell", - "key.namelength" : 8, - "key.nameoffset" : 650, - "key.offset" : 644, - "key.parsed_declaration" : "final class ItemCell : UICollectionViewCell, AnyItemCell", - "key.parsed_scope.end" : 234, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 667 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 659, - "key.offset" : 659, - "key.parsed_declaration" : "final class ItemCell@MainActor<\/Type> private(set) lazy var overlayDecoration: DecorationView<\/Type><Content<\/Type>.OverlayDecorationView<\/Type>> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.lazy", - "key.length" : 4, - "key.offset" : 735 - }, - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 722 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) lazy<\/syntaxtype.keyword> var<\/syntaxtype.keyword> overlayDecoration<\/decl.name>: DecorationView<\/ref.class><Content<\/ref.generic_type_param>.OverlayDecorationView<\/ref.associatedtype>><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 438, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "overlayDecoration", - "key.namelength" : 17, - "key.nameoffset" : 744, - "key.offset" : 740, - "key.parsed_declaration" : "private(set) lazy var overlayDecoration : DecorationView = {\n let view = DecorationView(\n content: Content.createReusableOverlayDecorationView(frame:bounds),\n frame: bounds\n )\n \n self.overlayDecorationIfLoaded = view\n \n self.contentView.insertSubview(view, aboveSubview: self.contentContainer)\n \n return view\n}()", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ItemCell.DecorationView", - "key.typeusr" : "$s10ListableUI8ItemCellC14DecorationViewCyx_07OverlayeF0QzGD", - "key.usr" : "s:10ListableUI8ItemCellC17overlayDecorationAC0F4ViewCyx_07OverlayfG0QzGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var overlayDecorationIfLoaded: DecorationView<\/Type><Content<\/Type>.OverlayDecorationView<\/Type>>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 1188 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> overlayDecorationIfLoaded<\/decl.name>: DecorationView<\/ref.class><Content<\/ref.generic_type_param>.OverlayDecorationView<\/ref.associatedtype>>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 84, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "overlayDecorationIfLoaded", - "key.namelength" : 25, - "key.nameoffset" : 1205, - "key.offset" : 1201, - "key.parsed_declaration" : "private(set) var overlayDecorationIfLoaded : DecorationView? = nil", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ItemCell.DecorationView?", - "key.typeusr" : "$s10ListableUI8ItemCellC14DecorationViewCyx_07OverlayeF0QzGSgD", - "key.usr" : "s:10ListableUI8ItemCellC25overlayDecorationIfLoadedAC0F4ViewCyx_07OverlayfI0QzGSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) lazy var underlayDecoration: DecorationView<\/Type><Content<\/Type>.UnderlayDecorationView<\/Type>> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.lazy", - "key.length" : 4, - "key.offset" : 1308 - }, - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 1295 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) lazy<\/syntaxtype.keyword> var<\/syntaxtype.keyword> underlayDecoration<\/decl.name>: DecorationView<\/ref.class><Content<\/ref.generic_type_param>.UnderlayDecorationView<\/ref.associatedtype>><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 443, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "underlayDecoration", - "key.namelength" : 18, - "key.nameoffset" : 1317, - "key.offset" : 1313, - "key.parsed_declaration" : "private(set) lazy var underlayDecoration : DecorationView = {\n let view = DecorationView(\n content: Content.createReusableUnderlayDecorationView(frame:bounds),\n frame: bounds\n )\n \n self.underlayDecorationIfLoaded = view\n \n self.contentView.insertSubview(view, belowSubview: self.contentContainer)\n \n return view\n}()", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ItemCell.DecorationView", - "key.typeusr" : "$s10ListableUI8ItemCellC14DecorationViewCyx_08UnderlayeF0QzGD", - "key.usr" : "s:10ListableUI8ItemCellC18underlayDecorationAC0F4ViewCyx_08UnderlayfG0QzGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var underlayDecorationIfLoaded: DecorationView<\/Type><Content<\/Type>.UnderlayDecorationView<\/Type>>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 1766 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> underlayDecorationIfLoaded<\/decl.name>: DecorationView<\/ref.class><Content<\/ref.generic_type_param>.UnderlayDecorationView<\/ref.associatedtype>>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 86, - "key.line" : 59, - "key.modulename" : "ListableUI", - "key.name" : "underlayDecorationIfLoaded", - "key.namelength" : 26, - "key.nameoffset" : 1783, - "key.offset" : 1779, - "key.parsed_declaration" : "private(set) var underlayDecorationIfLoaded : DecorationView? = nil", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 59, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ItemCell.DecorationView?", - "key.typeusr" : "$s10ListableUI8ItemCellC14DecorationViewCyx_08UnderlayeF0QzGSgD", - "key.usr" : "s:10ListableUI8ItemCellC26underlayDecorationIfLoadedAC0F4ViewCyx_08UnderlayfI0QzGSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let contentContainer: ContentContainerView<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> contentContainer<\/decl.name>: ContentContainerView<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 61, - "key.modulename" : "ListableUI", - "key.name" : "contentContainer", - "key.namelength" : 16, - "key.nameoffset" : 1879, - "key.offset" : 1875, - "key.parsed_declaration" : "let contentContainer : ContentContainerView", - "key.parsed_scope.end" : 61, - "key.parsed_scope.start" : 61, - "key.reusingastcontext" : false, - "key.typename" : "ItemCell.ContentContainerView", - "key.typeusr" : "$s10ListableUI8ItemCellC20ContentContainerViewCyx_GD", - "key.usr" : "s:10ListableUI8ItemCellC16contentContainerAC07ContentF4ViewCyx_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) lazy var background: Content<\/Type>.BackgroundView<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.lazy", - "key.length" : 4, - "key.offset" : 1937 - }, - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 1924 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) lazy<\/syntaxtype.keyword> var<\/syntaxtype.keyword> background<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 258, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "background", - "key.namelength" : 10, - "key.nameoffset" : 1946, - "key.offset" : 1942, - "key.parsed_declaration" : "private(set) lazy var background : Content.BackgroundView = {\n let background = Content.createReusableBackgroundView(frame: bounds)\n \n self.backgroundView = background\n self.backgroundIfLoaded = background\n \n return background\n}()", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Content.BackgroundView", - "key.typeusr" : "$s14BackgroundViewQzD", - "key.usr" : "s:10ListableUI8ItemCellC10background14BackgroundViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var backgroundIfLoaded: Content<\/Type>.BackgroundView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 2210 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> backgroundIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 72, - "key.modulename" : "ListableUI", - "key.name" : "backgroundIfLoaded", - "key.namelength" : 18, - "key.nameoffset" : 2227, - "key.offset" : 2223, - "key.parsed_declaration" : "private(set) var backgroundIfLoaded : Content.BackgroundView?", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 72, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Content.BackgroundView?", - "key.typeusr" : "$s14BackgroundViewQzSgD", - "key.usr" : "s:10ListableUI8ItemCellC18backgroundIfLoaded14BackgroundViewQzSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) lazy var selectedBackground: Content<\/Type>.SelectedBackgroundView<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.lazy", - "key.length" : 4, - "key.offset" : 2294 - }, - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 2281 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) lazy<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectedBackground<\/decl.name>: Content<\/ref.generic_type_param>.SelectedBackgroundView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 316, - "key.line" : 74, - "key.modulename" : "ListableUI", - "key.name" : "selectedBackground", - "key.namelength" : 18, - "key.nameoffset" : 2303, - "key.offset" : 2299, - "key.parsed_declaration" : "private(set) lazy var selectedBackground : Content.SelectedBackgroundView = {\n \n let background = Content.createReusableSelectedBackgroundView(frame: bounds)\n \n self.selectedBackgroundView = background\n self.selectedBackgroundIfLoaded = background\n \n return background\n \n}()", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 74, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Content.SelectedBackgroundView", - "key.typeusr" : "$s22SelectedBackgroundViewQzD", - "key.usr" : "s:10ListableUI8ItemCellC18selectedBackground08SelectedF4ViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var selectedBackgroundIfLoaded: Content<\/Type>.SelectedBackgroundView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 2625 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> selectedBackgroundIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.SelectedBackgroundView<\/ref.associatedtype>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 64, - "key.line" : 85, - "key.modulename" : "ListableUI", - "key.name" : "selectedBackgroundIfLoaded", - "key.namelength" : 26, - "key.nameoffset" : 2642, - "key.offset" : 2638, - "key.parsed_declaration" : "private(set) var selectedBackgroundIfLoaded : Content.SelectedBackgroundView?", - "key.parsed_scope.end" : 85, - "key.parsed_scope.start" : 85, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Content.SelectedBackgroundView?", - "key.typeusr" : "$s22SelectedBackgroundViewQzSgD", - "key.usr" : "s:10ListableUI8ItemCellC26selectedBackgroundIfLoaded08SelectedF4ViewQzSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var isReorderable: Bool<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> isReorderable<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 87, - "key.modulename" : "ListableUI", - "key.name" : "isReorderable", - "key.namelength" : 13, - "key.nameoffset" : 2716, - "key.offset" : 2712, - "key.parsed_declaration" : "var isReorderable: Bool = false", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 87, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ItemCellC13isReorderableSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override init(frame: CGRect<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 2753 - } - ], - "key.bodylength" : 459, - "key.bodyoffset" : 2787, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 485, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "init(frame:)", - "key.namelength" : 19, - "key.nameoffset" : 2762, - "key.offset" : 2762, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)initWithFrame:" - } - ], - "key.parsed_declaration" : "override init(frame: CGRect)", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 89, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let bounds: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 91, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 2800, - "key.offset" : 2796, - "key.parsed_declaration" : "let bounds = CGRect(origin: .zero, size: frame.size)", - "key.parsed_scope.end" : 91, - "key.parsed_scope.start" : 91, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI8ItemCellC5frameACyxGSo6CGRectV_tcfc6boundsL_AGvp" - } - ], - "key.typename" : " (ItemCell.Type) -> (CGRect) -> ItemCell", - "key.typeusr" : "$s5frame10ListableUI8ItemCellCyxGSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI8ItemCellC5frameACyxGSo6CGRectV_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 3288 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 3257 - } - ], - "key.bodylength" : 25, - "key.bodyoffset" : 3320, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 49, - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 3297, - "key.offset" : 3297, - "key.substructure" : [ - - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 3356 - } - ], - "key.bodylength" : 1901, - "key.bodyoffset" : 3498, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preferredLayoutAttributesFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> layoutAttributes<\/decl.var.parameter.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2035, - "key.line" : 111, - "key.modulename" : "ListableUI", - "key.name" : "preferredLayoutAttributesFitting(_:)", - "key.namelength" : 86, - "key.nameoffset" : 3370, - "key.offset" : 3365, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionReusableView(im)preferredLayoutAttributesFittingAttributes:" - } - ], - "key.parsed_declaration" : "override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes", - "key.parsed_scope.end" : 144, - "key.parsed_scope.start" : 111, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> (UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes", - "key.typeusr" : "$sySo32UICollectionViewLayoutAttributesCABcD", - "key.usr" : "s:10ListableUI8ItemCellC32preferredLayoutAttributesFittingySo016UICollectionViewfG0CAFF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func prepareForReuse()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 5410 - } - ], - "key.bodylength" : 71, - "key.bodyoffset" : 5443, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Listable already properly sizes each cell. We do not use self-sizing cells.\nThus, just return the existing layout attributes.\n\nThis avoids an expensive call to sizeThatFits to \"re-size\" the cell to the same size\nduring each of UICollectionView's layout passes:\n\n#0 ItemElementCell.sizeThatFits(_:)\n#1 @objc ItemElementCell.sizeThatFits(_:) ()\n#2 -[UICollectionViewCell systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:] ()\n#3 -[UICollectionReusableView preferredLayoutAttributesFittingAttributes:] ()\n#4 -[UICollectionReusableView _preferredLayoutAttributesFittingAttributes:] ()\n#5 -[UICollectionView _checkForPreferredAttributesInView:originalAttributes:] ()\n#6 -[UICollectionView _updateVisibleCellsNow:] ()\n#7 -[UICollectionView layoutSubviews] ()\n\nReturning the passed in value without calling super is OK, per the docs:\nhttps:\/\/developer.apple.com\/documentation\/uikit\/uicollectionreusableview\/1620132-preferredlayoutattributesfitting\n\n | The default implementation of this method adjusts the size values to accommodate changes made by a self-sizing cell.\n | Subclasses can override this method and use it to adjust other layout attributes too.\n | If you override this method and want the cell size adjustments, call super first and make your own modifications to the returned attributes.\n\nImportant part being \"If you override this method **and want the cell size adjustments**, call super first\".\n\nWe do not want these. Thus, this is fine.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> prepareForReuse<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 96, - "key.line" : 146, - "key.modulename" : "ListableUI", - "key.name" : "prepareForReuse()", - "key.namelength" : 17, - "key.nameoffset" : 5424, - "key.offset" : 5419, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionReusableView(im)prepareForReuse" - } - ], - "key.parsed_declaration" : "override func prepareForReuse()", - "key.parsed_scope.end" : 149, - "key.parsed_scope.start" : 146, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC15prepareForReuseyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 12, - "key.name" : "MARK: UIView", - "key.offset" : 5528 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func sizeThatFits(_ size: CGSize<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 5550 - } - ], - "key.bodylength" : 66, - "key.bodyoffset" : 5604, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sizeThatFits<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 112, - "key.line" : 153, - "key.modulename" : "ListableUI", - "key.name" : "sizeThatFits(_:)", - "key.namelength" : 28, - "key.nameoffset" : 5564, - "key.offset" : 5559, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)sizeThatFits:" - } - ], - "key.parsed_declaration" : "override func sizeThatFits(_ size: CGSize) -> CGSize", - "key.parsed_scope.end" : 155, - "key.parsed_scope.start" : 153, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> (CGSize) -> CGSize", - "key.typeusr" : "$sySo6CGSizeVABcD", - "key.usr" : "s:10ListableUI8ItemCellC12sizeThatFitsySo6CGSizeVAFF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func systemLayoutSizeFitting(_ targetSize: CGSize<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 5681 - } - ], - "key.bodylength" : 83, - "key.bodyoffset" : 5752, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 146, - "key.line" : 157, - "key.modulename" : "ListableUI", - "key.name" : "systemLayoutSizeFitting(_:)", - "key.namelength" : 45, - "key.nameoffset" : 5695, - "key.offset" : 5690, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)systemLayoutSizeFittingSize:" - } - ], - "key.parsed_declaration" : "override func systemLayoutSizeFitting(_ targetSize: CGSize) -> CGSize", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 157, - "key.related_decls" : [ - { - "key.annotated_decl" : "systemLayoutSizeFitting(_:withHorizontalFittingPriority:verticalFittingPriority:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> (CGSize) -> CGSize", - "key.typeusr" : "$sySo6CGSizeVABcD", - "key.usr" : "s:10ListableUI8ItemCellC23systemLayoutSizeFittingySo6CGSizeVAFF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func systemLayoutSizeFitting(_ targetSize: CGSize<\/Type>, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority<\/Type>, verticalFittingPriority: UILayoutPriority<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 5846 - } - ], - "key.bodylength" : 237, - "key.bodyoffset" : 6065, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withHorizontalFittingPriority<\/decl.var.parameter.argument_label> horizontalFittingPriority<\/decl.var.parameter.name>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, verticalFittingPriority<\/decl.var.parameter.argument_label>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 448, - "key.line" : 161, - "key.modulename" : "ListableUI", - "key.name" : "systemLayoutSizeFitting(_:withHorizontalFittingPriority:verticalFittingPriority:)", - "key.namelength" : 193, - "key.nameoffset" : 5860, - "key.offset" : 5855, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:" - } - ], - "key.parsed_declaration" : "override func systemLayoutSizeFitting(\n _ targetSize: CGSize,\n withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority,\n verticalFittingPriority: UILayoutPriority\n) -> CGSize", - "key.parsed_scope.end" : 171, - "key.parsed_scope.start" : 161, - "key.related_decls" : [ - { - "key.annotated_decl" : "systemLayoutSizeFitting(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> (CGSize, UILayoutPriority, UILayoutPriority) -> CGSize", - "key.typeusr" : "$s_29withHorizontalFittingPriority08verticalcD0So6CGSizeVAD_So08UILayoutD0aAFtcD", - "key.usr" : "s:10ListableUI8ItemCellC23systemLayoutSizeFitting_014withHorizontalH8Priority08verticalhK0So6CGSizeVAH_So08UILayoutK0aAJtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutSubviews()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 6309 - } - ], - "key.bodylength" : 261, - "key.bodyoffset" : 6345, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 289, - "key.line" : 173, - "key.modulename" : "ListableUI", - "key.name" : "layoutSubviews()", - "key.namelength" : 16, - "key.nameoffset" : 6323, - "key.offset" : 6318, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)layoutSubviews" - } - ], - "key.parsed_declaration" : "override func layoutSubviews()", - "key.parsed_scope.end" : 181, - "key.parsed_scope.start" : 173, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC14layoutSubviewsyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 17, - "key.name" : "MARK: AnyItemCell", - "key.offset" : 6620 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func openLeadingSwipeActions()<\/Declaration>", - "key.bodylength" : 71, - "key.bodyoffset" : 6679, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> openLeadingSwipeActions<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 104, - "key.line" : 185, - "key.modulename" : "ListableUI", - "key.name" : "openLeadingSwipeActions()", - "key.namelength" : 25, - "key.nameoffset" : 6652, - "key.offset" : 6647, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP23openLeadingSwipeActionsyyF" - } - ], - "key.parsed_declaration" : "func openLeadingSwipeActions()", - "key.parsed_scope.end" : 187, - "key.parsed_scope.start" : 185, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC23openLeadingSwipeActionsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func openTrailingSwipeActions()<\/Declaration>", - "key.bodylength" : 72, - "key.bodyoffset" : 6794, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> openTrailingSwipeActions<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 106, - "key.line" : 189, - "key.modulename" : "ListableUI", - "key.name" : "openTrailingSwipeActions()", - "key.namelength" : 26, - "key.nameoffset" : 6766, - "key.offset" : 6761, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP24openTrailingSwipeActionsyyF" - } - ], - "key.parsed_declaration" : "func openTrailingSwipeActions()", - "key.parsed_scope.end" : 191, - "key.parsed_scope.start" : 189, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC24openTrailingSwipeActionsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func closeSwipeActions()<\/Declaration>", - "key.bodylength" : 58, - "key.bodyoffset" : 6903, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> closeSwipeActions<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 85, - "key.line" : 193, - "key.modulename" : "ListableUI", - "key.name" : "closeSwipeActions()", - "key.namelength" : 19, - "key.nameoffset" : 6882, - "key.offset" : 6877, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP17closeSwipeActionsyyF" - } - ], - "key.parsed_declaration" : "func closeSwipeActions()", - "key.parsed_scope.end" : 195, - "key.parsed_scope.start" : 193, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC17closeSwipeActionsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var areSwipeActionsVisible: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 151, - "key.bodyoffset" : 7007, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> areSwipeActionsVisible<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 187, - "key.line" : 197, - "key.modulename" : "ListableUI", - "key.name" : "areSwipeActionsVisible", - "key.namelength" : 22, - "key.nameoffset" : 6976, - "key.offset" : 6972, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP22areSwipeActionsVisibleSbvp" - } - ], - "key.parsed_declaration" : "var areSwipeActionsVisible : Bool", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 197, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ItemCellC22areSwipeActionsVisibleSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var hasBeenDequeued: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 7169 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasBeenDequeued<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 206, - "key.modulename" : "ListableUI", - "key.name" : "hasBeenDequeued", - "key.namelength" : 15, - "key.nameoffset" : 7181, - "key.offset" : 7177, - "key.parsed_declaration" : "private var hasBeenDequeued = false", - "key.parsed_scope.end" : 206, - "key.parsed_scope.start" : 206, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ItemCellC15hasBeenDequeued33_FCA59516AE250BEC3B0DC8416FB30D6ELLSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func wasDequeued(with liveCells: LiveCells<\/Type>)<\/Declaration>", - "key.bodylength" : 162, - "key.bodyoffset" : 7260, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> wasDequeued<\/decl.name>(with<\/decl.var.parameter.argument_label> liveCells<\/decl.var.parameter.name>: LiveCells<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 209, - "key.line" : 208, - "key.modulename" : "ListableUI", - "key.name" : "wasDequeued(with:)", - "key.namelength" : 39, - "key.nameoffset" : 7219, - "key.offset" : 7214, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI11AnyItemCellP11wasDequeued4withyAA9LiveCellsC_tF" - } - ], - "key.parsed_declaration" : "func wasDequeued(with liveCells : LiveCells)", - "key.parsed_scope.end" : 216, - "key.parsed_scope.start" : 208, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell) -> (LiveCells) -> ()", - "key.typeusr" : "$s4withy10ListableUI9LiveCellsC_tcD", - "key.usr" : "s:10ListableUI8ItemCellC11wasDequeued4withyAA9LiveCellsC_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: AccessibilityLabel", - "key.offset" : 7441 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var _accessibilityLabel: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 7800 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> _accessibilityLabel<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 222, - "key.modulename" : "ListableUI", - "key.name" : "_accessibilityLabel", - "key.namelength" : 19, - "key.nameoffset" : 7812, - "key.offset" : 7808, - "key.parsed_declaration" : "private var _accessibilityLabel: String?", - "key.parsed_scope.end" : 222, - "key.parsed_scope.start" : 222, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI8ItemCellC19_accessibilityLabel33_FCA59516AE250BEC3B0DC8416FB30D6ELLSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override var accessibilityLabel: String<\/Type>? { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 7845 - } - ], - "key.bodylength" : 270, - "key.bodyoffset" : 7887, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> accessibilityLabel<\/decl.name>: String<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 304, - "key.line" : 223, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityLabel", - "key.namelength" : 18, - "key.nameoffset" : 7858, - "key.offset" : 7854, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)NSObject(py)accessibilityLabel" - } - ], - "key.parsed_declaration" : "override var accessibilityLabel: String?", - "key.parsed_scope.end" : 233, - "key.parsed_scope.start" : 223, - "key.related_decls" : [ - { - "key.annotated_decl" : "accessibilityLabel()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI8ItemCellC18accessibilityLabelSSSgvp" - } - ], - "key.typename" : "ItemCell.Type", - "key.typeusr" : "$s10ListableUI8ItemCellCyxGmD", - "key.usr" : "s:10ListableUI8ItemCellC" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> final class ItemCell<Content> : UICollectionViewCell<\/Type>, AnyItemCell<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.bodylength" : 1102, - "key.bodyoffset" : 8183, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An internal cell type used to render items in the list.\n\nInformation on how cell selection appearance customization works:\nhttps:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells\n", - "key.doc.column" : 13, - "key.doc.declaration" : "@MainActor final class ItemCell : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.doc.full_as_xml" : "ItemCell<\/Name>s:10ListableUI8ItemCellC<\/USR>@MainActor final class ItemCell<Content> : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent<\/Declaration>An internal cell type used to render items in the list.<\/Para><\/Abstract>Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 29, - "key.doc.name" : "ItemCell", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemCell<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UICollectionViewCell<\/ref.class>, AnyItemCell<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1123, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "ItemCell", - "key.namelength" : 8, - "key.nameoffset" : 8173, - "key.offset" : 8163, - "key.parsed_declaration" : "extension ItemCell", - "key.parsed_scope.end" : 277, - "key.parsed_scope.start" : 237, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> final class DecorationView<ContentView> : UIView<\/Type> where ContentView<\/Type> : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 8193 - } - ], - "key.bodylength" : 1033, - "key.bodyoffset" : 8250, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 8242 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DecorationView<\/decl.name><ContentView<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UIView<\/ref.class> where<\/syntaxtype.keyword> ContentView<\/ref.generic_type_param> : UIView<\/ref.class><\/decl.generic_type_requirement><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIView" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1085, - "key.line" : 239, - "key.modulename" : "ListableUI", - "key.name" : "DecorationView", - "key.namelength" : 14, - "key.nameoffset" : 8205, - "key.offset" : 8199, - "key.parsed_declaration" : "final class DecorationView : UIView", - "key.parsed_scope.end" : 276, - "key.parsed_scope.start" : 239, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "ContentView : UIView<\/Type><\/Declaration>", - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 8232 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "ContentView<\/decl.generic_type_param.name> : UIView<\/ref.class><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "UIView" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 18, - "key.line" : 239, - "key.modulename" : "ListableUI", - "key.name" : "ContentView", - "key.namelength" : 11, - "key.nameoffset" : 8220, - "key.offset" : 8220, - "key.parsed_declaration" : "final class DecorationView@MainActor<\/Type> let content: ContentView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> content<\/decl.name>: ContentView<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 241, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 8272, - "key.offset" : 8268, - "key.parsed_declaration" : "let content : ContentView", - "key.parsed_scope.end" : 241, - "key.parsed_scope.start" : 241, - "key.reusingastcontext" : false, - "key.typename" : "ContentView", - "key.typeusr" : "$sqd__D", - "key.usr" : "s:10ListableUI8ItemCellC14DecorationViewC7contentqd__vp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> init(content: ContentView<\/Type>, frame: CGRect<\/Type>)<\/Declaration>", - "key.bodylength" : 265, - "key.bodyoffset" : 8355, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> init<\/syntaxtype.keyword>(content<\/decl.var.parameter.argument_label>: ContentView<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 310, - "key.line" : 243, - "key.modulename" : "ListableUI", - "key.name" : "init(content:frame:)", - "key.namelength" : 42, - "key.nameoffset" : 8311, - "key.offset" : 8311, - "key.parsed_declaration" : "init(content : ContentView, frame: CGRect)", - "key.parsed_scope.end" : 253, - "key.parsed_scope.start" : 243, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.DecorationView.Type) -> (ContentView, CGRect) -> ItemCell.DecorationView", - "key.typeusr" : "$s7content5frame10ListableUI8ItemCellC14DecorationViewCyx_qd__Gqd___So6CGRectVtcD", - "key.usr" : "s:10ListableUI8ItemCellC14DecorationViewC7content5frameAEyx_qd__Gqd___So6CGRectVtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 8674 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 8639 - } - ], - "key.bodylength" : 14, - "key.bodyoffset" : 8706, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 38, - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 8683, - "key.offset" : 8683, - "key.substructure" : [ - - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutSubviews()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 8739 - } - ], - "key.bodylength" : 102, - "key.bodyoffset" : 8771, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 126, - "key.line" : 258, - "key.modulename" : "ListableUI", - "key.name" : "layoutSubviews()", - "key.namelength" : 16, - "key.nameoffset" : 8753, - "key.offset" : 8748, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)layoutSubviews" - } - ], - "key.parsed_declaration" : "override func layoutSubviews()", - "key.parsed_scope.end" : 262, - "key.parsed_scope.start" : 258, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.DecorationView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ItemCellC14DecorationViewC14layoutSubviewsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override var isAccessibilityElement: Bool<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 8892 - } - ], - "key.bodylength" : 104, - "key.bodyoffset" : 8935, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isAccessibilityElement<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 139, - "key.line" : 264, - "key.modulename" : "ListableUI", - "key.name" : "isAccessibilityElement", - "key.namelength" : 22, - "key.nameoffset" : 8905, - "key.offset" : 8901, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)NSObject(py)isAccessibilityElement" - } - ], - "key.parsed_declaration" : "override var isAccessibilityElement: Bool", - "key.parsed_scope.end" : 267, - "key.parsed_scope.start" : 264, - "key.related_decls" : [ - { - "key.annotated_decl" : "isAccessibilityElement()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ItemCellC14DecorationViewC22isAccessibilityElementSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func point(inside point: CGPoint<\/Type>, with event: UIEvent<\/Type>?) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 9058 - } - ], - "key.bodylength" : 27, - "key.bodyoffset" : 9132, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> point<\/decl.name>(inside<\/decl.var.parameter.argument_label> point<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 93, - "key.line" : 269, - "key.modulename" : "ListableUI", - "key.name" : "point(inside:with:)", - "key.namelength" : 50, - "key.nameoffset" : 9072, - "key.offset" : 9067, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)pointInside:withEvent:" - } - ], - "key.parsed_declaration" : "override func point(inside point: CGPoint, with event: UIEvent?) -> Bool", - "key.parsed_scope.end" : 271, - "key.parsed_scope.start" : 269, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.DecorationView) -> (CGPoint, UIEvent?) -> Bool", - "key.typeusr" : "$s6inside4withSbSo7CGPointV_So7UIEventCSgtcD", - "key.usr" : "s:10ListableUI8ItemCellC14DecorationViewC5point6inside4withSbSo7CGPointV_So7UIEventCSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func hitTest(_ point: CGPoint<\/Type>, with event: UIEvent<\/Type>?) -> UIView<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 9178 - } - ], - "key.bodylength" : 25, - "key.bodyoffset" : 9252, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> hitTest<\/decl.name>(_<\/decl.var.parameter.argument_label> point<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> UIView<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 91, - "key.line" : 273, - "key.modulename" : "ListableUI", - "key.name" : "hitTest(_:with:)", - "key.namelength" : 47, - "key.nameoffset" : 9192, - "key.offset" : 9187, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)hitTest:withEvent:" - } - ], - "key.parsed_declaration" : "override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView?", - "key.parsed_scope.end" : 275, - "key.parsed_scope.start" : 273, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemCell.DecorationView) -> (CGPoint, UIEvent?) -> UIView?", - "key.typeusr" : "$s_4withSo6UIViewCSgSo7CGPointV_So7UIEventCSgtcD", - "key.usr" : "s:10ListableUI8ItemCellC14DecorationViewC7hitTest_4withSo6UIViewCSgSo7CGPointV_So7UIEventCSgtF" - } - ], - "key.typename" : "ItemCell.DecorationView.Type", - "key.typeusr" : "$s10ListableUI8ItemCellC14DecorationViewCyx_qd__GmD", - "key.usr" : "s:10ListableUI8ItemCellC14DecorationViewC" - } - ], - "key.typename" : "ItemCell.Type", - "key.typeusr" : "$s10ListableUI8ItemCellCyxGmD", - "key.usr" : "s:10ListableUI8ItemCellC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class LiveCells<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 9289 - } - ], - "key.bodylength" : 852, - "key.bodyoffset" : 9312, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> LiveCells<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 870, - "key.line" : 280, - "key.modulename" : "ListableUI", - "key.name" : "LiveCells", - "key.namelength" : 9, - "key.nameoffset" : 9301, - "key.offset" : 9295, - "key.parsed_declaration" : "final class LiveCells", - "key.parsed_scope.end" : 317, - "key.parsed_scope.start" : 280, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func add(_ cell: AnyItemCell<\/Type>)<\/Declaration>", - "key.bodylength" : 117, - "key.bodyoffset" : 9354, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> add<\/decl.name>(_<\/decl.var.parameter.argument_label> cell<\/decl.var.parameter.name>: AnyItemCell<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 150, - "key.line" : 282, - "key.modulename" : "ListableUI", - "key.name" : "add(_:)", - "key.namelength" : 25, - "key.nameoffset" : 9327, - "key.offset" : 9322, - "key.parsed_declaration" : "func add(_ cell : AnyItemCell)", - "key.parsed_scope.end" : 286, - "key.parsed_scope.start" : 282, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LiveCells) -> (any AnyItemCell) -> ()", - "key.typeusr" : "$syy10ListableUI11AnyItemCell_pcD", - "key.usr" : "s:10ListableUI9LiveCellsC3addyyAA11AnyItemCell_pF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func perform(_ block: (AnyItemCell<\/Type>) -> ())<\/Declaration>", - "key.bodylength" : 122, - "key.bodyoffset" : 9527, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> perform<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (AnyItemCell<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 168, - "key.line" : 288, - "key.modulename" : "ListableUI", - "key.name" : "perform(_:)", - "key.namelength" : 38, - "key.nameoffset" : 9487, - "key.offset" : 9482, - "key.parsed_declaration" : "func perform(_ block : (AnyItemCell) -> ())", - "key.parsed_scope.end" : 294, - "key.parsed_scope.start" : 288, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LiveCells) -> ((any AnyItemCell) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI11AnyItemCell_pXEcD", - "key.usr" : "s:10ListableUI9LiveCellsC7performyyyAA11AnyItemCell_pXEF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func first(where check: (AnyItemCell<\/Type>) -> Bool<\/Type>) -> AnyItemCell<\/Type>?<\/Declaration>", - "key.bodylength" : 218, - "key.bodyoffset" : 9725, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> first<\/decl.name>(where<\/decl.var.parameter.argument_label> check<\/decl.var.parameter.name>: (AnyItemCell<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyItemCell<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 284, - "key.line" : 296, - "key.modulename" : "ListableUI", - "key.name" : "first(where:)", - "key.namelength" : 42, - "key.nameoffset" : 9665, - "key.offset" : 9660, - "key.parsed_declaration" : "func first(where check : (AnyItemCell) -> Bool) -> AnyItemCell?", - "key.parsed_scope.end" : 306, - "key.parsed_scope.start" : 296, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let cell: LiveCells<\/Type>.LiveCell<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: LiveCells<\/ref.class>.LiveCell<\/ref.struct>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 169, - "key.line" : 297, - "key.modulename" : "ListableUI", - "key.name" : "cell", - "key.namelength" : 4, - "key.nameoffset" : 9738, - "key.offset" : 9734, - "key.parsed_declaration" : "let cell = cells.first {\n if let cell = $0.cell {\n return check(cell)\n } else {\n return false\n }\n}", - "key.parsed_scope.end" : 297, - "key.parsed_scope.start" : 297, - "key.reusingastcontext" : false, - "key.typename" : "LiveCells.LiveCell?", - "key.typeusr" : "$s10ListableUI9LiveCellsC0C4CellVSgD", - "key.usr" : "s:10ListableUI9LiveCellsC5first5whereAA11AnyItemCell_pSgSbAaF_pXE_tF4cellL_AC0cI0VSgvp" - } - ], - "key.typename" : "(LiveCells) -> ((any AnyItemCell) -> Bool) -> (any AnyItemCell)?", - "key.typeusr" : "$s5where10ListableUI11AnyItemCell_pSgSbAbC_pXE_tcD", - "key.usr" : "s:10ListableUI9LiveCellsC5first5whereAA11AnyItemCell_pSgSbAaF_pXE_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var activeSwipeCell: AnyItemCell<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 52, - "key.bodyoffset" : 9990, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> activeSwipeCell<\/decl.name>: AnyItemCell<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 89, - "key.line" : 308, - "key.modulename" : "ListableUI", - "key.name" : "activeSwipeCell", - "key.namelength" : 15, - "key.nameoffset" : 9958, - "key.offset" : 9954, - "key.parsed_declaration" : "var activeSwipeCell : AnyItemCell?", - "key.parsed_scope.end" : 310, - "key.parsed_scope.start" : 308, - "key.reusingastcontext" : false, - "key.typename" : "(any AnyItemCell)?", - "key.typeusr" : "$s10ListableUI11AnyItemCell_pSgD", - "key.usr" : "s:10ListableUI9LiveCellsC15activeSwipeCellAA07AnyItemG0_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var cells: [LiveCell<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 10053 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> cells<\/decl.name>: [LiveCell<\/ref.struct>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 312, - "key.modulename" : "ListableUI", - "key.name" : "cells", - "key.namelength" : 5, - "key.nameoffset" : 10070, - "key.offset" : 10066, - "key.parsed_declaration" : "private(set) var cells : [LiveCell] = []", - "key.parsed_scope.end" : 312, - "key.parsed_scope.start" : 312, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[LiveCells.LiveCell]", - "key.typeusr" : "$sSay10ListableUI9LiveCellsC0C4CellVGD", - "key.usr" : "s:10ListableUI9LiveCellsC5cellsSayAC0C4CellVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct LiveCells<\/Type>.LiveCell<\/Declaration>", - "key.bodylength" : 42, - "key.bodyoffset" : 10120, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> LiveCells<\/ref.class>.LiveCell<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 60, - "key.line" : 314, - "key.modulename" : "ListableUI", - "key.name" : "LiveCell", - "key.namelength" : 8, - "key.nameoffset" : 10110, - "key.offset" : 10103, - "key.parsed_declaration" : "struct LiveCell", - "key.parsed_scope.end" : 316, - "key.parsed_scope.start" : 314, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "weak var cell: AnyItemCell<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 10129 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> cell<\/decl.name>: AnyItemCell<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 315, - "key.modulename" : "ListableUI", - "key.name" : "cell", - "key.namelength" : 4, - "key.nameoffset" : 10138, - "key.offset" : 10134, - "key.parsed_declaration" : "weak var cell : AnyItemCell?", - "key.parsed_scope.end" : 315, - "key.parsed_scope.start" : 315, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(any AnyItemCell)?", - "key.typeusr" : "$s10ListableUI11AnyItemCell_pSgD", - "key.usr" : "s:10ListableUI9LiveCellsC0C4CellV4cellAA07AnyItemE0_pSgvp" - } - ], - "key.typename" : "LiveCells.LiveCell.Type", - "key.typeusr" : "$s10ListableUI9LiveCellsC0C4CellVmD", - "key.usr" : "s:10ListableUI9LiveCellsC0C4CellV" - } - ], - "key.typename" : "LiveCells.Type", - "key.typeusr" : "$s10ListableUI9LiveCellsCmD", - "key.usr" : "s:10ListableUI9LiveCellsC" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> final class ItemCell<Content> : UICollectionViewCell<\/Type>, AnyItemCell<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.bodylength" : 228, - "key.bodyoffset" : 10187, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An internal cell type used to render items in the list.\n\nInformation on how cell selection appearance customization works:\nhttps:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells\n", - "key.doc.column" : 13, - "key.doc.declaration" : "@MainActor final class ItemCell : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.doc.full_as_xml" : "ItemCell<\/Name>s:10ListableUI8ItemCellC<\/USR>@MainActor final class ItemCell<Content> : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent<\/Declaration>An internal cell type used to render items in the list.<\/Para><\/Abstract>Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 29, - "key.doc.name" : "ItemCell", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemCell<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UICollectionViewCell<\/ref.class>, AnyItemCell<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 249, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "ItemCell", - "key.namelength" : 8, - "key.nameoffset" : 10177, - "key.offset" : 10167, - "key.parsed_declaration" : "extension ItemCell", - "key.parsed_scope.end" : 327, - "key.parsed_scope.start" : 319, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> var reorderingAccessibilityLabel: String<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 173, - "key.bodyoffset" : 10240, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> reorderingAccessibilityLabel<\/decl.name>: String<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 217, - "key.line" : 321, - "key.modulename" : "ListableUI", - "key.name" : "reorderingAccessibilityLabel", - "key.namelength" : 28, - "key.nameoffset" : 10201, - "key.offset" : 10197, - "key.parsed_declaration" : "var reorderingAccessibilityLabel: String?", - "key.parsed_scope.end" : 326, - "key.parsed_scope.start" : 321, - "key.reusingastcontext" : false, - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI8ItemCellC28reorderingAccessibilityLabelSSSgvp" - } - ], - "key.typename" : "ItemCell.Type", - "key.typeusr" : "$s10ListableUI8ItemCellCyxGmD", - "key.usr" : "s:10ListableUI8ItemCellC" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> @_nonSendable(_assumed) class UIView : UIResponder<\/Type>, NSCoding<\/Type>, UIAppearance<\/Type>, UIAppearanceContainer<\/Type>, UIDynamicItem<\/Type>, UITraitEnvironment<\/Type>, UICoordinateSpace<\/Type>, UIFocusItem<\/Type>, UIFocusItemContainer<\/Type>, CALayerDelegate<\/Type><\/Declaration>", - "key.bodylength" : 753, - "key.bodyoffset" : 10437, - "key.column" : 12, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIView.h", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIView<\/decl.name> : UIResponder<\/ref.class>, NSCoding<\/ref.protocol>, UIAppearance<\/ref.protocol>, UIAppearanceContainer<\/ref.protocol>, UIDynamicItem<\/ref.protocol>, UITraitEnvironment<\/ref.protocol>, UICoordinateSpace<\/ref.protocol>, UIFocusItem<\/ref.protocol>, UIFocusItemContainer<\/ref.protocol>, CALayerDelegate<\/ref.protocol><\/decl.class>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 772, - "key.line" : 148, - "key.modulename" : "UIKit.UIView", - "key.name" : "UIView", - "key.namelength" : 6, - "key.nameoffset" : 10429, - "key.offset" : 10419, - "key.parsed_declaration" : "extension UIView", - "key.parsed_scope.end" : 352, - "key.parsed_scope.start" : 330, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@MainActor<\/Type> fileprivate func firstAccessibleChild() -> NSObject<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 10446 - } - ], - "key.bodylength" : 148, - "key.bodyoffset" : 10500, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> fileprivate<\/syntaxtype.keyword> func<\/syntaxtype.keyword> firstAccessibleChild<\/decl.name>() -> NSObject<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 191, - "key.line" : 332, - "key.modulename" : "ListableUI", - "key.name" : "firstAccessibleChild()", - "key.namelength" : 22, - "key.nameoffset" : 10463, - "key.offset" : 10458, - "key.parsed_declaration" : "fileprivate func firstAccessibleChild() -> NSObject?", - "key.parsed_scope.end" : 337, - "key.parsed_scope.start" : 332, - "key.receivers" : [ - { - "key.usr" : "c:objc(cs)UIView" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UIView) -> () -> NSObject?", - "key.typeusr" : "$sSo8NSObjectCSgycD", - "key.usr" : "s:So6UIViewC10ListableUIE20firstAccessibleChild33_FCA59516AE250BEC3B0DC8416FB30D6ELLSo8NSObjectCSgyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@MainActor<\/Type> fileprivate func recursiveAccessibleSubviews() -> [Any]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 10659 - } - ], - "key.bodylength" : 472, - "key.bodyoffset" : 10716, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ItemCell.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> fileprivate<\/syntaxtype.keyword> func<\/syntaxtype.keyword> recursiveAccessibleSubviews<\/decl.name>() -> [Any<\/syntaxtype.keyword>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 518, - "key.line" : 339, - "key.modulename" : "ListableUI", - "key.name" : "recursiveAccessibleSubviews()", - "key.namelength" : 29, - "key.nameoffset" : 10676, - "key.offset" : 10671, - "key.parsed_declaration" : "fileprivate func recursiveAccessibleSubviews() -> [Any]", - "key.parsed_scope.end" : 351, - "key.parsed_scope.start" : 339, - "key.receivers" : [ - { - "key.usr" : "c:objc(cs)UIView" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UIView) -> () -> [Any]", - "key.typeusr" : "$sSayypGycD", - "key.usr" : "s:So6UIViewC10ListableUIE27recursiveAccessibleSubviews33_FCA59516AE250BEC3B0DC8416FB30D6ELLSayypGyF" - } - ], - "key.typename" : "UIView.Type", - "key.typeusr" : "$sSo6UIViewCmD", - "key.usr" : "c:objc(cs)UIView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Modify.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 245, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func modified<Value>(_ initial: Value<\/Type>, _ modify: (inout Value<\/Type>) -> ()) -> Value<\/Type><\/Declaration>", - "key.bodylength" : 58, - "key.bodyoffset" : 185, - "key.column" : 6, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Modify.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> modified<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> initial<\/decl.var.parameter.name>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> modify<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 141, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "modified(_:_:)", - "key.namelength" : 66, - "key.nameoffset" : 108, - "key.offset" : 103, - "key.parsed_declaration" : "func modified(_ initial : Value, _ modify : (inout Value) -> ()) -> Value", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value<\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Modify.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 117, - "key.offset" : 117, - "key.parsed_declaration" : "func modifiedvar copy: Value<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Modify.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> copy<\/decl.name>: Value<\/ref.generic_type_param><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 18, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "copy", - "key.namelength" : 4, - "key.nameoffset" : 194, - "key.offset" : 190, - "key.parsed_declaration" : "var copy = initial", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "Value", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI8modifiedyxx_yxzXEtlF4copyL_xvp" - } - ], - "key.typename" : " (Value, (inout Value) -> ()) -> Value", - "key.typeusr" : "$syxx_yxzXEtcluD", - "key.usr" : "s:10ListableUI8modifiedyxx_yxzXEtlF" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 10714, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "protocol AnyPresentationHeaderFooterState : AnyObject<\/Declaration>", - "key.bodylength" : 1111, - "key.bodyoffset" : 201, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 190 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> AnyPresentationHeaderFooterState<\/decl.name> : AnyObject<\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 1167, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "AnyPresentationHeaderFooterState", - "key.namelength" : 32, - "key.nameoffset" : 155, - "key.offset" : 146, - "key.parsed_declaration" : "protocol AnyPresentationHeaderFooterState : AnyObject", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isDisplayed: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 230, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isDisplayed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "isDisplayed", - "key.namelength" : 11, - "key.nameoffset" : 210, - "key.offset" : 206, - "key.parsed_declaration" : "var isDisplayed : Bool", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP11isDisplayedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func setAndPerform(isDisplayed: Bool<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setAndPerform<\/decl.name>(isDisplayed<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 37, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "setAndPerform(isDisplayed:)", - "key.namelength" : 32, - "key.nameoffset" : 246, - "key.offset" : 241, - "key.parsed_declaration" : "func setAndPerform(isDisplayed: Bool)", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Bool) -> ()", - "key.typeusr" : "$s11isDisplayedySb_tcD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP13setAndPerform11isDisplayedySb_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var anyModel: AnyHeaderFooter<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 320, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyModel<\/decl.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "anyModel", - "key.namelength" : 8, - "key.nameoffset" : 292, - "key.offset" : 288, - "key.parsed_declaration" : "var anyModel : AnyHeaderFooter", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "any AnyHeaderFooter", - "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP8anyModelAA0ceF0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var kind: SupplementaryKind<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 366, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "kind", - "key.namelength" : 4, - "key.nameoffset" : 340, - "key.offset" : 336, - "key.parsed_declaration" : "var kind : SupplementaryKind", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "SupplementaryKind", - "key.typeusr" : "$s10ListableUI17SupplementaryKindOD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP4kindAA17SupplementaryKindOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var oldIndexPath: IndexPath<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 413, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndexPath<\/decl.name>: IndexPath<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "oldIndexPath", - "key.namelength" : 12, - "key.nameoffset" : 386, - "key.offset" : 382, - "key.parsed_declaration" : "var oldIndexPath : IndexPath?", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "IndexPath?", - "key.typeusr" : "$s10Foundation9IndexPathVSgD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP12oldIndexPath10Foundation0iJ0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var containsFirstResponder: Bool<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 464, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> containsFirstResponder<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "containsFirstResponder", - "key.namelength" : 22, - "key.nameoffset" : 433, - "key.offset" : 429, - "key.parsed_declaration" : "var containsFirstResponder : Bool", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP22containsFirstResponderSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func updateOldIndexPath(in section: Int<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateOldIndexPath<\/decl.name>(in<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 41, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "updateOldIndexPath(in:)", - "key.namelength" : 36, - "key.nameoffset" : 489, - "key.offset" : 484, - "key.parsed_declaration" : "func updateOldIndexPath(in section : Int)", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Int) -> ()", - "key.typeusr" : "$s2inySi_tcD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP18updateOldIndexPath2inySi_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func dequeueAndPrepareReusableHeaderFooterView(in cache: ReusableViewCache<\/Type>, frame: CGRect<\/Type>, environment: ListEnvironment<\/Type>) -> UIView<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> dequeueAndPrepareReusableHeaderFooterView<\/decl.name>(in<\/decl.var.parameter.argument_label> cache<\/decl.var.parameter.name>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIView<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 163, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "dequeueAndPrepareReusableHeaderFooterView(in:frame:environment:)", - "key.namelength" : 148, - "key.nameoffset" : 544, - "key.offset" : 539, - "key.parsed_declaration" : "func dequeueAndPrepareReusableHeaderFooterView(\n in cache : ReusableViewCache,\n frame : CGRect,\n environment : ListEnvironment\n) -> UIView", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ReusableViewCache, CGRect, ListEnvironment) -> UIView", - "key.typeusr" : "$s2in5frame11environmentSo6UIViewC10ListableUI17ReusableViewCacheC_So6CGRectVAF15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP025dequeueAndPrepareReusableeF4View2in5frame11environmentSo6UIViewCAA0kL5CacheC_So6CGRectVAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func enqueueReusableHeaderFooterView(_ view: UIView<\/Type>, in cache: ReusableViewCache<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> enqueueReusableHeaderFooterView<\/decl.name>(_<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> cache<\/decl.var.parameter.name>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 83, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "enqueueReusableHeaderFooterView(_:in:)", - "key.namelength" : 78, - "key.nameoffset" : 717, - "key.offset" : 712, - "key.parsed_declaration" : "func enqueueReusableHeaderFooterView(_ view : UIView, in cache : ReusableViewCache)", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 33, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (UIView, ReusableViewCache) -> ()", - "key.typeusr" : "$s_2inySo6UIViewC_10ListableUI17ReusableViewCacheCtcD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP015enqueueReusableeF4View_2inySo6UIViewC_AA0iJ5CacheCtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func applyTo(view: UIView<\/Type>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyTo<\/decl.name>(view<\/decl.var.parameter.argument_label>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 125, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "applyTo(view:for:with:)", - "key.namelength" : 120, - "key.nameoffset" : 810, - "key.offset" : 805, - "key.parsed_declaration" : "func applyTo(\n view : UIView,\n for reason : ApplyReason,\n with info : ApplyHeaderFooterContentInfo\n)", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 35, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (UIView, ApplyReason, ApplyHeaderFooterContentInfo) -> ()", - "key.typeusr" : "$s4view3for4withySo6UIViewC_10ListableUI11ApplyReasonOAF0G23HeaderFooterContentInfoVtcD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP7applyTo4view3for4withySo6UIViewC_AA11ApplyReasonOAA0neF11ContentInfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func set(new: AnyHeaderFooter<\/Type>, reason: ApplyReason<\/Type>, visibleView: UIView<\/Type>?, updateCallbacks: UpdateCallbacks<\/Type>, info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(new<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, visibleView<\/decl.var.parameter.argument_label>: UIView<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 194, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "set(new:reason:visibleView:updateCallbacks:info:)", - "key.namelength" : 189, - "key.nameoffset" : 941, - "key.offset" : 936, - "key.parsed_declaration" : "func set(\n new : AnyHeaderFooter,\n reason : ApplyReason,\n visibleView : UIView?,\n updateCallbacks : UpdateCallbacks,\n info : ApplyHeaderFooterContentInfo\n)", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 41, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyHeaderFooter, ApplyReason, UIView?, UpdateCallbacks, ApplyHeaderFooterContentInfo) -> ()", - "key.typeusr" : "$s3new6reason11visibleView15updateCallbacks4infoy10ListableUI15AnyHeaderFooter_p_AF11ApplyReasonOSo6UIViewCSgAF06UpdateF0CAF0mkL11ContentInfoVtcD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP3set3new6reason11visibleView15updateCallbacks4infoyAA0ceF0_p_AA11ApplyReasonOSo6UIViewCSgAA06UpdateN0CAA0peF11ContentInfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func resetCachedSizes()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetCachedSizes<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 23, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "resetCachedSizes()", - "key.namelength" : 18, - "key.nameoffset" : 1145, - "key.offset" : 1140, - "key.parsed_declaration" : "func resetCachedSizes()", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 49, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP16resetCachedSizesyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func size(for info: Sizing<\/Type>.MeasureInfo<\/Type>, cache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, cache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 138, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "size(for:cache:environment:)", - "key.namelength" : 123, - "key.nameoffset" : 1178, - "key.offset" : 1173, - "key.parsed_declaration" : "func size(\n for info : Sizing.MeasureInfo,\n cache : ReusableViewCache,\n environment : ListEnvironment\n) -> CGSize", - "key.parsed_scope.end" : 51, - "key.parsed_scope.start" : 51, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Sizing.MeasureInfo, ReusableViewCache, ListEnvironment) -> CGSize", - "key.typeusr" : "$s3for5cache11environmentSo6CGSizeV10ListableUI6SizingO11MeasureInfoV_AF17ReusableViewCacheCAF15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP4size3for5cache11environmentSo6CGSizeVAA6SizingO11MeasureInfoV_AA17ReusableViewCacheCAA15ListEnvironmentVtF" - } - ], - "key.typename" : "AnyPresentationHeaderFooterState.Type", - "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pmD", - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP" - }, - { - "key.annotated_decl" : "final class PresentationState<\/Declaration>", - "key.bodylength" : 9367, - "key.bodyoffset" : 1345, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).", - "key.doc.column" : 13, - "key.doc.declaration" : "final class PresentationState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "PresentationState", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 9397, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "PresentationState", - "key.namelength" : 17, - "key.nameoffset" : 1326, - "key.offset" : 1316, - "key.parsed_declaration" : "extension PresentationState", - "key.parsed_scope.end" : 326, - "key.parsed_scope.start" : 59, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "final class HeaderFooterViewStatePair<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 1350 - } - ], - "key.bodylength" : 3120, - "key.bodyoffset" : 1393, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> HeaderFooterViewStatePair<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 3158, - "key.line" : 61, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterViewStatePair", - "key.namelength" : 25, - "key.nameoffset" : 1362, - "key.offset" : 1356, - "key.parsed_declaration" : "final class HeaderFooterViewStatePair", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 61, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var state: AnyPresentationHeaderFooterState<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 1402 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> state<\/decl.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 1419, - "key.offset" : 1415, - "key.parsed_declaration" : "private(set) var state : AnyPresentationHeaderFooterState?", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "(any AnyPresentationHeaderFooterState)?", - "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", - "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC5stateAA03AnycefD0_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var visibleContainer: SupplementaryContainerView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 1478 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> visibleContainer<\/decl.name>: SupplementaryContainerView<\/ref.class>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "visibleContainer", - "key.namelength" : 16, - "key.nameoffset" : 1495, - "key.offset" : 1491, - "key.parsed_declaration" : "private(set) var visibleContainer : SupplementaryContainerView?", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "SupplementaryContainerView?", - "key.typeusr" : "$s10ListableUI26SupplementaryContainerViewCSgD", - "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC16visibleContainerAA013SupplementaryjG0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(state: AnyPresentationHeaderFooterState<\/Type>?)<\/Declaration>", - "key.bodylength" : 40, - "key.bodyoffset" : 1608, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(state<\/decl.var.parameter.argument_label>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 90, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "init(state:)", - "key.namelength" : 47, - "key.nameoffset" : 1559, - "key.offset" : 1559, - "key.parsed_declaration" : "init(state : AnyPresentationHeaderFooterState?)", - "key.parsed_scope.end" : 69, - "key.parsed_scope.start" : 67, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.HeaderFooterViewStatePair.Type) -> ((any AnyPresentationHeaderFooterState)?) -> PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s5state10ListableUI17PresentationStateC016HeaderFooterViewE4PairCAB03AnydfgE0_pSg_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC5stateAeA03AnycefD0_pSg_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func update(with state: AnyPresentationHeaderFooterState<\/Type>?, new: AnyHeaderFooterConvertible<\/Type>?, reason: ApplyReason<\/Type>, animated: Bool<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.bodylength" : 705, - "key.bodyoffset" : 1947, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 986, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "update(with:new:reason:animated:updateCallbacks:environment:)", - "key.namelength" : 273, - "key.nameoffset" : 1672, - "key.offset" : 1667, - "key.parsed_declaration" : "func update(\n with state : AnyPresentationHeaderFooterState?,\n new: AnyHeaderFooterConvertible?,\n reason: ApplyReason,\n animated : Bool,\n updateCallbacks : UpdateCallbacks,\n environment: ListEnvironment\n)", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 71, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.HeaderFooterViewStatePair) -> ((any AnyPresentationHeaderFooterState)?, (any AnyHeaderFooterConvertible)?, ApplyReason, Bool, UpdateCallbacks, ListEnvironment) -> ()", - "key.typeusr" : "$s4with3new6reason8animated15updateCallbacks11environmenty10ListableUI32AnyPresentationHeaderFooterState_pSg_AG0jlM11Convertible_pSgAG11ApplyReasonOSbAG06UpdateF0CAG15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC6update4with3new6reason8animated0I9Callbacks11environmentyAA03AnycefD0_pSg_AA0peF11Convertible_pSgAA11ApplyReasonOSbAA06UpdateN0CAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func collectionViewWillDisplay(view: SupplementaryContainerView<\/Type>)<\/Declaration>", - "key.bodylength" : 488, - "key.bodyoffset" : 2746, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionViewWillDisplay<\/decl.name>(view<\/decl.var.parameter.argument_label>: SupplementaryContainerView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 564, - "key.line" : 97, - "key.modulename" : "ListableUI", - "key.name" : "collectionViewWillDisplay(view:)", - "key.namelength" : 60, - "key.nameoffset" : 2676, - "key.offset" : 2671, - "key.parsed_declaration" : "func collectionViewWillDisplay(view : SupplementaryContainerView)", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 97, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.HeaderFooterViewStatePair) -> (SupplementaryContainerView) -> ()", - "key.typeusr" : "$s4viewy10ListableUI26SupplementaryContainerViewC_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC010collectionG11WillDisplay4viewyAA022SupplementaryContainerG0C_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func collectionViewDidEndDisplay(of view: SupplementaryContainerView<\/Type>)<\/Declaration>", - "key.bodylength" : 1052, - "key.bodyoffset" : 3333, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "**Note**: It's possible for this method and the below\nto be called in an unbalanced manner (eg, we get moved to a new supplementary view),\n_without_ an associated call to `collectionViewDidEndDisplay(of:)`.\n\nThus, if any logic added to this method depends on the instance\nof `visibleContainer` changing, wrap it in a `===` check.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionViewDidEndDisplay<\/decl.name>(of<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: SupplementaryContainerView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1133, - "key.line" : 109, - "key.modulename" : "ListableUI", - "key.name" : "collectionViewDidEndDisplay(of:)", - "key.namelength" : 65, - "key.nameoffset" : 3258, - "key.offset" : 3253, - "key.parsed_declaration" : "func collectionViewDidEndDisplay(of view : SupplementaryContainerView)", - "key.parsed_scope.end" : 130, - "key.parsed_scope.start" : 109, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.HeaderFooterViewStatePair) -> (SupplementaryContainerView) -> ()", - "key.typeusr" : "$s2ofy10ListableUI26SupplementaryContainerViewC_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC010collectionG13DidEndDisplay2ofyAA022SupplementaryContainerG0C_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func updateOldIndexPath(in section: Int<\/Type>)<\/Declaration>", - "key.bodylength" : 60, - "key.bodyoffset" : 4447, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "**Note**: This method is called _after_ the animation that removes\nsupplementary views from the collection view, so the ordering can be:\n\n1) `collectionViewWillDisplay` of new supplementary view\n2) We're moved to that new supplementary view.\n2) Collection view finishes animation\n3) `collectionViewDidEndDisplay` is called.\n\nBecause we manage the `HeaderFooter` view instances ourselves,\nand simply insert them into a whatever supplementary view the collection view\nis currently vending us, it's possible that `collectionViewWillDisplay`\nhas already assigned us a new supplementary view. Make sure the one\nwe're being asked to remove is the one we know about, otherwise, do nothing.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateOldIndexPath<\/decl.name>(in<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 104, - "key.line" : 132, - "key.modulename" : "ListableUI", - "key.name" : "updateOldIndexPath(in:)", - "key.namelength" : 36, - "key.nameoffset" : 4409, - "key.offset" : 4404, - "key.parsed_declaration" : "func updateOldIndexPath(in section : Int)", - "key.parsed_scope.end" : 134, - "key.parsed_scope.start" : 132, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.HeaderFooterViewStatePair) -> (Int) -> ()", - "key.typeusr" : "$s2inySi_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC18updateOldIndexPath2inySi_tF" - } - ], - "key.typename" : "PresentationState.HeaderFooterViewStatePair.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCmD", - "key.usr" : "s:10ListableUI17PresentationStateC016HeaderFooterViewD4PairC" - }, - { - "key.annotated_decl" : "final class HeaderFooterState<Content> : AnyPresentationHeaderFooterState<\/Type> where Content<\/Type> : HeaderFooterContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 4529 - } - ], - "key.bodylength" : 6082, - "key.bodyoffset" : 4628, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 32, - "key.offset" : 4590 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> HeaderFooterState<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyPresentationHeaderFooterState<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyPresentationHeaderFooterState" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 6176, - "key.line" : 138, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterState", - "key.namelength" : 17, - "key.nameoffset" : 4541, - "key.offset" : 4535, - "key.parsed_declaration" : "final class HeaderFooterState : AnyPresentationHeaderFooterState", - "key.parsed_scope.end" : 325, - "key.parsed_scope.start" : 138, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : HeaderFooterContent<\/Type><\/Declaration>", - "key.column" : 35, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 4567 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "HeaderFooterContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 27, - "key.line" : 138, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 4559, - "key.offset" : 4559, - "key.parsed_declaration" : "final class HeaderFooterStatevar model: HeaderFooter<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> model<\/decl.name>: HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 140, - "key.modulename" : "ListableUI", - "key.name" : "model", - "key.namelength" : 5, - "key.nameoffset" : 4641, - "key.offset" : 4637, - "key.parsed_declaration" : "var model : HeaderFooter", - "key.parsed_scope.end" : 140, - "key.parsed_scope.start" : 140, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "HeaderFooter", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C5modelAA0eF0VyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let performsContentCallbacks: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "performsContentCallbacks", - "key.namelength" : 24, - "key.nameoffset" : 4692, - "key.offset" : 4688, - "key.parsed_declaration" : "let performsContentCallbacks : Bool", - "key.parsed_scope.end" : 142, - "key.parsed_scope.start" : 142, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C24performsContentCallbacksSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(_ model: HeaderFooter<\/Type><Content<\/Type>>, kind: SupplementaryKind<\/Type>, performsContentCallbacks: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 138, - "key.bodyoffset" : 4900, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, kind<\/decl.var.parameter.argument_label>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 290, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "init(_:kind:performsContentCallbacks:)", - "key.namelength" : 141, - "key.nameoffset" : 4749, - "key.offset" : 4749, - "key.parsed_declaration" : "init(\n _ model : HeaderFooter,\n kind: SupplementaryKind,\n performsContentCallbacks : Bool\n)", - "key.parsed_scope.end" : 153, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.HeaderFooterState.Type) -> (HeaderFooter, SupplementaryKind, Bool) -> PresentationState.HeaderFooterState", - "key.typeusr" : "$s_4kind24performsContentCallbacks10ListableUI17PresentationStateC012HeaderFooterH0Cy_xGAC0iJ0VyxG_AC17SupplementaryKindOSbtcD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C_4kind24performsContentCallbacksAEy_xGAA0eF0VyxG_AA17SupplementaryKindOSbtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 38, - "key.name" : "MARK: AnyPresentationHeaderFooterState", - "key.offset" : 5060 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var isDisplayed: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 5116 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> isDisplayed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 157, - "key.modulename" : "ListableUI", - "key.name" : "isDisplayed", - "key.namelength" : 11, - "key.nameoffset" : 5133, - "key.offset" : 5129, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP11isDisplayedSbvp" - } - ], - "key.parsed_declaration" : "private(set) var isDisplayed : Bool = false", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 157, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C11isDisplayedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var hasDisplayed: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5177 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasDisplayed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 159, - "key.modulename" : "ListableUI", - "key.name" : "hasDisplayed", - "key.namelength" : 12, - "key.nameoffset" : 5189, - "key.offset" : 5185, - "key.parsed_declaration" : "private var hasDisplayed : Bool = false", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 159, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C12hasDisplayed33_82D05BE98CB32DA6F52803499B473A43LLSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var hasEndedDisplay: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5225 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasEndedDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 160, - "key.modulename" : "ListableUI", - "key.name" : "hasEndedDisplay", - "key.namelength" : 15, - "key.nameoffset" : 5237, - "key.offset" : 5233, - "key.parsed_declaration" : "private var hasEndedDisplay : Bool = false", - "key.parsed_scope.end" : 160, - "key.parsed_scope.start" : 160, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C15hasEndedDisplay33_82D05BE98CB32DA6F52803499B473A43LLSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func setAndPerform(isDisplayed: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 935, - "key.bodyoffset" : 5324, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setAndPerform<\/decl.name>(isDisplayed<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 975, - "key.line" : 162, - "key.modulename" : "ListableUI", - "key.name" : "setAndPerform(isDisplayed:)", - "key.namelength" : 32, - "key.nameoffset" : 5290, - "key.offset" : 5285, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP13setAndPerform11isDisplayedySb_tF" - } - ], - "key.parsed_declaration" : "func setAndPerform(isDisplayed: Bool)", - "key.parsed_scope.end" : 190, - "key.parsed_scope.start" : 162, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.HeaderFooterState) -> (Bool) -> ()", - "key.typeusr" : "$s11isDisplayedySb_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C13setAndPerform11isDisplayedySb_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var anyModel: AnyHeaderFooter<\/Type> { get }<\/Declaration>", - "key.bodylength" : 39, - "key.bodyoffset" : 6309, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyModel<\/decl.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 71, - "key.line" : 192, - "key.modulename" : "ListableUI", - "key.name" : "anyModel", - "key.namelength" : 8, - "key.nameoffset" : 6282, - "key.offset" : 6278, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP8anyModelAA0ceF0_pvp" - } - ], - "key.parsed_declaration" : "var anyModel: AnyHeaderFooter", - "key.parsed_scope.end" : 194, - "key.parsed_scope.start" : 192, - "key.reusingastcontext" : false, - "key.typename" : "any AnyHeaderFooter", - "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C8anyModelAA03AnyeF0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var kind: SupplementaryKind<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 6367 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "kind", - "key.namelength" : 4, - "key.nameoffset" : 6384, - "key.offset" : 6380, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP4kindAA17SupplementaryKindOvp" - } - ], - "key.parsed_declaration" : "private(set) var kind : SupplementaryKind", - "key.parsed_scope.end" : 196, - "key.parsed_scope.start" : 196, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "SupplementaryKind", - "key.typeusr" : "$s10ListableUI17SupplementaryKindOD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C4kindAA17SupplementaryKindOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var oldIndexPath: IndexPath<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndexPath<\/decl.name>: IndexPath<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 198, - "key.modulename" : "ListableUI", - "key.name" : "oldIndexPath", - "key.namelength" : 12, - "key.nameoffset" : 6430, - "key.offset" : 6426, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP12oldIndexPath10Foundation0iJ0VSgvp" - } - ], - "key.parsed_declaration" : "var oldIndexPath : IndexPath? = nil", - "key.parsed_scope.end" : 198, - "key.parsed_scope.start" : 198, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "IndexPath?", - "key.typeusr" : "$s10Foundation9IndexPathVSgD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C12oldIndexPath10Foundation0hI0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var containsFirstResponder: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> containsFirstResponder<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 200, - "key.modulename" : "ListableUI", - "key.name" : "containsFirstResponder", - "key.namelength" : 22, - "key.nameoffset" : 6483, - "key.offset" : 6479, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP22containsFirstResponderSbvp" - } - ], - "key.parsed_declaration" : "var containsFirstResponder : Bool = false", - "key.parsed_scope.end" : 200, - "key.parsed_scope.start" : 200, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C22containsFirstResponderSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func updateOldIndexPath(in section: Int<\/Type>)<\/Declaration>", - "key.bodylength" : 64, - "key.bodyoffset" : 6581, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateOldIndexPath<\/decl.name>(in<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 108, - "key.line" : 202, - "key.modulename" : "ListableUI", - "key.name" : "updateOldIndexPath(in:)", - "key.namelength" : 36, - "key.nameoffset" : 6543, - "key.offset" : 6538, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP18updateOldIndexPath2inySi_tF" - } - ], - "key.parsed_declaration" : "func updateOldIndexPath(in section : Int)", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 202, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.HeaderFooterState) -> (Int) -> ()", - "key.typeusr" : "$s2inySi_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C18updateOldIndexPath2inySi_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func dequeueAndPrepareReusableHeaderFooterView(in cache: ReusableViewCache<\/Type>, frame: CGRect<\/Type>, environment: ListEnvironment<\/Type>) -> UIView<\/Type><\/Declaration>", - "key.bodylength" : 362, - "key.bodyoffset" : 6861, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> dequeueAndPrepareReusableHeaderFooterView<\/decl.name>(in<\/decl.var.parameter.argument_label> cache<\/decl.var.parameter.name>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIView<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 552, - "key.line" : 206, - "key.modulename" : "ListableUI", - "key.name" : "dequeueAndPrepareReusableHeaderFooterView(in:frame:environment:)", - "key.namelength" : 164, - "key.nameoffset" : 6677, - "key.offset" : 6672, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP025dequeueAndPrepareReusableeF4View2in5frame11environmentSo6UIViewCAA0kL5CacheC_So6CGRectVAA15ListEnvironmentVtF" - } - ], - "key.parsed_declaration" : "func dequeueAndPrepareReusableHeaderFooterView(\n in cache : ReusableViewCache,\n frame : CGRect,\n environment : ListEnvironment\n) -> UIView", - "key.parsed_scope.end" : 223, - "key.parsed_scope.start" : 206, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: HeaderFooterContentView<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: HeaderFooterContentView<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 133, - "key.line" : 212, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 6878, - "key.offset" : 6874, - "key.parsed_declaration" : "let view = cache.pop(with: self.model.reuseIdentifier) {\n HeaderFooterContentView(frame: frame)\n}", - "key.parsed_scope.end" : 212, - "key.parsed_scope.start" : 212, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContentView", - "key.typeusr" : "$s10ListableUI23HeaderFooterContentViewCyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C025dequeueAndPrepareReusableeF4View2in5frame11environmentSo6UIViewCAA0jK5CacheC_So6CGRectVAA15ListEnvironmentVtF4viewL_AA0ef7ContentK0CyxGvp" - } - ], - "key.typename" : " (PresentationState.HeaderFooterState) -> (ReusableViewCache, CGRect, ListEnvironment) -> UIView", - "key.typeusr" : "$s2in5frame11environmentSo6UIViewC10ListableUI17ReusableViewCacheC_So6CGRectVAF15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C025dequeueAndPrepareReusableeF4View2in5frame11environmentSo6UIViewCAA0jK5CacheC_So6CGRectVAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func enqueueReusableHeaderFooterView(_ view: UIView<\/Type>, in cache: ReusableViewCache<\/Type>)<\/Declaration>", - "key.bodylength" : 72, - "key.bodyoffset" : 7335, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> enqueueReusableHeaderFooterView<\/decl.name>(_<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> cache<\/decl.var.parameter.name>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 166, - "key.line" : 225, - "key.modulename" : "ListableUI", - "key.name" : "enqueueReusableHeaderFooterView(_:in:)", - "key.namelength" : 78, - "key.nameoffset" : 7247, - "key.offset" : 7242, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP015enqueueReusableeF4View_2inySo6UIViewC_AA0iJ5CacheCtF" - } - ], - "key.parsed_declaration" : "func enqueueReusableHeaderFooterView(_ view : UIView, in cache : ReusableViewCache)", - "key.parsed_scope.end" : 228, - "key.parsed_scope.start" : 225, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.HeaderFooterState) -> (UIView, ReusableViewCache) -> ()", - "key.typeusr" : "$s_2inySo6UIViewC_10ListableUI17ReusableViewCacheCtcD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C015enqueueReusableeF4View_2inySo6UIViewC_AA0hI5CacheCtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func applyTo(view: UIView<\/Type>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>", - "key.bodylength" : 298, - "key.bodyoffset" : 7569, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyTo<\/decl.name>(view<\/decl.var.parameter.argument_label>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 442, - "key.line" : 230, - "key.modulename" : "ListableUI", - "key.name" : "applyTo(view:for:with:)", - "key.namelength" : 136, - "key.nameoffset" : 7431, - "key.offset" : 7426, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP7applyTo4view3for4withySo6UIViewC_AA11ApplyReasonOAA0neF11ContentInfoVtF" - } - ], - "key.parsed_declaration" : "func applyTo(\n view : UIView,\n for reason : ApplyReason,\n with info : ApplyHeaderFooterContentInfo\n)", - "key.parsed_scope.end" : 242, - "key.parsed_scope.start" : 230, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: HeaderFooterContentView<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: HeaderFooterContentView<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 235, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 7586, - "key.offset" : 7582, - "key.parsed_declaration" : "let view = view as! HeaderFooterContentView", - "key.parsed_scope.end" : 235, - "key.parsed_scope.start" : 235, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContentView", - "key.typeusr" : "$s10ListableUI23HeaderFooterContentViewCyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C7applyTo4view3for4withySo6UIViewC_AA11ApplyReasonOAA0meF11ContentInfoVtFAGL0_AA0efO4ViewCyxGvp" - }, - { - "key.annotated_decl" : "let views: HeaderFooterContentViews<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> views<\/decl.name>: HeaderFooterContentViews<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 57, - "key.line" : 237, - "key.modulename" : "ListableUI", - "key.name" : "views", - "key.namelength" : 5, - "key.nameoffset" : 7664, - "key.offset" : 7660, - "key.parsed_declaration" : "let views = HeaderFooterContentViews(view: view)", - "key.parsed_scope.end" : 237, - "key.parsed_scope.start" : 237, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterContentViews", - "key.typeusr" : "$s10ListableUI24HeaderFooterContentViewsVyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C7applyTo4view3for4withySo6UIViewC_AA11ApplyReasonOAA0meF11ContentInfoVtF5viewsL_AA0efO5ViewsVyxGvp" - } - ], - "key.typename" : " (PresentationState.HeaderFooterState) -> (UIView, ApplyReason, ApplyHeaderFooterContentInfo) -> ()", - "key.typeusr" : "$s4view3for4withySo6UIViewC_10ListableUI11ApplyReasonOAF0G23HeaderFooterContentInfoVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C7applyTo4view3for4withySo6UIViewC_AA11ApplyReasonOAA0meF11ContentInfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func set(new: AnyHeaderFooter<\/Type>, reason: ApplyReason<\/Type>, visibleView: UIView<\/Type>?, updateCallbacks: UpdateCallbacks<\/Type>, info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>", - "key.bodylength" : 733, - "key.bodyoffset" : 8106, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(new<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, visibleView<\/decl.var.parameter.argument_label>: UIView<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 954, - "key.line" : 244, - "key.modulename" : "ListableUI", - "key.name" : "set(new:reason:visibleView:updateCallbacks:info:)", - "key.namelength" : 213, - "key.nameoffset" : 7891, - "key.offset" : 7886, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP3set3new6reason11visibleView15updateCallbacks4infoyAA0ceF0_p_AA11ApplyReasonOSo6UIViewCSgAA06UpdateN0CAA0peF11ContentInfoVtF" - } - ], - "key.parsed_declaration" : "func set(\n new : AnyHeaderFooter,\n reason : ApplyReason,\n visibleView : UIView?,\n updateCallbacks : UpdateCallbacks,\n info : ApplyHeaderFooterContentInfo\n)", - "key.parsed_scope.end" : 271, - "key.parsed_scope.start" : 244, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let old: HeaderFooter<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 20, - "key.line" : 251, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 8123, - "key.offset" : 8119, - "key.parsed_declaration" : "let old = self.model", - "key.parsed_scope.end" : 251, - "key.parsed_scope.start" : 251, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooter", - "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C3set3new6reason11visibleView15updateCallbacks4infoyAA03AnyeF0_p_AA11ApplyReasonOSo6UIViewCSgAA06UpdateM0CAA0peF11ContentInfoVtF3oldL_AA0eF0VyxGvp" - }, - { - "key.annotated_decl" : "let isEquivalent: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isEquivalent<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 54, - "key.line" : 255, - "key.modulename" : "ListableUI", - "key.name" : "isEquivalent", - "key.namelength" : 12, - "key.nameoffset" : 8237, - "key.offset" : 8233, - "key.parsed_declaration" : "let isEquivalent = self.model.anyIsEquivalent(to: old)", - "key.parsed_scope.end" : 255, - "key.parsed_scope.start" : 255, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C3set3new6reason11visibleView15updateCallbacks4infoyAA03AnyeF0_p_AA11ApplyReasonOSo6UIViewCSgAA06UpdateM0CAA0peF11ContentInfoVtF12isEquivalentL_Sbvp" - }, - { - "key.annotated_decl" : "let wantsReapplication: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wantsReapplication<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 185, - "key.line" : 257, - "key.modulename" : "ListableUI", - "key.name" : "wantsReapplication", - "key.namelength" : 18, - "key.nameoffset" : 8317, - "key.offset" : 8313, - "key.parsed_declaration" : "let wantsReapplication = self.model.reappliesToVisibleView.shouldReapply(\n comparing: old.reappliesToVisibleView,\n isEquivalent: isEquivalent\n)", - "key.parsed_scope.end" : 257, - "key.parsed_scope.start" : 257, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C3set3new6reason11visibleView15updateCallbacks4infoyAA03AnyeF0_p_AA11ApplyReasonOSo6UIViewCSgAA06UpdateM0CAA0peF11ContentInfoVtF18wantsReapplicationL_Sbvp" - } - ], - "key.typename" : " (PresentationState.HeaderFooterState) -> (any AnyHeaderFooter, ApplyReason, UIView?, UpdateCallbacks, ApplyHeaderFooterContentInfo) -> ()", - "key.typeusr" : "$s3new6reason11visibleView15updateCallbacks4infoy10ListableUI15AnyHeaderFooter_p_AF11ApplyReasonOSo6UIViewCSgAF06UpdateF0CAF0mkL11ContentInfoVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C3set3new6reason11visibleView15updateCallbacks4infoyAA03AnyeF0_p_AA11ApplyReasonOSo6UIViewCSgAA06UpdateM0CAA0peF11ContentInfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var cachedSizes: [SizeKey<\/Type> : CGSize<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 8858 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> cachedSizes<\/decl.name>: [SizeKey<\/ref.struct> : CGSize<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 273, - "key.modulename" : "ListableUI", - "key.name" : "cachedSizes", - "key.namelength" : 11, - "key.nameoffset" : 8870, - "key.offset" : 8866, - "key.parsed_declaration" : "private var cachedSizes : [SizeKey:CGSize] = [:]", - "key.parsed_scope.end" : 273, - "key.parsed_scope.start" : 273, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[PresentationState.SizeKey : CGSize]", - "key.typeusr" : "$sSDy10ListableUI17PresentationStateC7SizeKeyVSo6CGSizeVGD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C11cachedSizes33_82D05BE98CB32DA6F52803499B473A43LLSDyAC7SizeKeyVSo6CGSizeVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func resetCachedSizes()<\/Declaration>", - "key.bodylength" : 50, - "key.bodyoffset" : 8957, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetCachedSizes<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 84, - "key.line" : 275, - "key.modulename" : "ListableUI", - "key.name" : "resetCachedSizes()", - "key.namelength" : 18, - "key.nameoffset" : 8929, - "key.offset" : 8924, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP16resetCachedSizesyyF" - } - ], - "key.parsed_declaration" : "func resetCachedSizes()", - "key.parsed_scope.end" : 278, - "key.parsed_scope.start" : 275, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.HeaderFooterState) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C16resetCachedSizesyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func size(for info: Sizing<\/Type>.MeasureInfo<\/Type>, cache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.bodylength" : 1514, - "key.bodyoffset" : 9190, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, cache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1679, - "key.line" : 280, - "key.modulename" : "ListableUI", - "key.name" : "size(for:cache:environment:)", - "key.namelength" : 139, - "key.nameoffset" : 9031, - "key.offset" : 9026, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI32AnyPresentationHeaderFooterStateP4size3for5cache11environmentSo6CGSizeVAA6SizingO11MeasureInfoV_AA17ReusableViewCacheCAA15ListEnvironmentVtF" - } - ], - "key.parsed_declaration" : "func size(\n for info : Sizing.MeasureInfo,\n cache : ReusableViewCache,\n environment : ListEnvironment\n) -> CGSize", - "key.parsed_scope.end" : 324, - "key.parsed_scope.start" : 280, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let key: PresentationState<\/Type>.SizeKey<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.HeaderFooterState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> key<\/decl.name>: PresentationState<\/ref.class>.SizeKey<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 225, - "key.line" : 290, - "key.modulename" : "ListableUI", - "key.name" : "key", - "key.namelength" : 3, - "key.nameoffset" : 9325, - "key.offset" : 9321, - "key.parsed_declaration" : "let key = SizeKey(\n width: info.sizeConstraint.width,\n height: info.sizeConstraint.height,\n layoutDirection: info.direction,\n sizing: self.model.sizing\n)", - "key.parsed_scope.end" : 290, - "key.parsed_scope.start" : 290, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.SizeKey", - "key.typeusr" : "$s10ListableUI17PresentationStateC7SizeKeyVD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C4size3for5cache11environmentSo6CGSizeVAA6SizingO11MeasureInfoV_AA17ReusableViewCacheCAA15ListEnvironmentVtF3keyL_AC7SizeKeyVvp" - } - ], - "key.typename" : " (PresentationState.HeaderFooterState) -> (Sizing.MeasureInfo, ReusableViewCache, ListEnvironment) -> CGSize", - "key.typeusr" : "$s3for5cache11environmentSo6CGSizeV10ListableUI6SizingO11MeasureInfoV_AF17ReusableViewCacheCAF15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C4size3for5cache11environmentSo6CGSizeVAA6SizingO11MeasureInfoV_AA17ReusableViewCacheCAA15ListEnvironmentVtF" - } - ], - "key.typename" : "PresentationState.HeaderFooterState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC012HeaderFooterD0Cy_xGmD", - "key.usr" : "s:10ListableUI17PresentationStateC012HeaderFooterD0C" - } - ], - "key.typename" : "PresentationState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateCmD", - "key.usr" : "s:10ListableUI17PresentationStateC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 22800, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "protocol AnyPresentationItemState : AnyObject<\/Declaration>", - "key.bodylength" : 1818, - "key.bodyoffset" : 185, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 174 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> AnyPresentationItemState<\/decl.name> : AnyObject<\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 1866, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "AnyPresentationItemState", - "key.namelength" : 24, - "key.nameoffset" : 147, - "key.offset" : 138, - "key.parsed_declaration" : "protocol AnyPresentationItemState : AnyObject", - "key.parsed_scope.end" : 70, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isDisplayed: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 214, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isDisplayed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "isDisplayed", - "key.namelength" : 11, - "key.nameoffset" : 194, - "key.offset" : 190, - "key.parsed_declaration" : "var isDisplayed : Bool", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP11isDisplayedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func setAndPerform(isDisplayed: Bool<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setAndPerform<\/decl.name>(isDisplayed<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 37, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "setAndPerform(isDisplayed:)", - "key.namelength" : 32, - "key.nameoffset" : 230, - "key.offset" : 225, - "key.parsed_declaration" : "func setAndPerform(isDisplayed: Bool)", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Bool) -> ()", - "key.typeusr" : "$s11isDisplayedySb_tcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP13setAndPerform11isDisplayedySb_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var itemPosition: ItemPosition<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 305, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> itemPosition<\/decl.name>: ItemPosition<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "itemPosition", - "key.namelength" : 12, - "key.nameoffset" : 276, - "key.offset" : 272, - "key.parsed_declaration" : "var itemPosition : ItemPosition", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ItemPosition", - "key.typeusr" : "$s10ListableUI12ItemPositionOD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP12itemPositionAA0eH0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var anyModel: AnyItem<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 349, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyModel<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "anyModel", - "key.namelength" : 8, - "key.nameoffset" : 329, - "key.offset" : 325, - "key.parsed_declaration" : "var anyModel : AnyItem", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP8anyModelAA0cE0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var reorderingActions: ReorderingActions<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 408, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reorderingActions<\/decl.name>: ReorderingActions<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 49, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "reorderingActions", - "key.namelength" : 17, - "key.nameoffset" : 369, - "key.offset" : 365, - "key.parsed_declaration" : "var reorderingActions : ReorderingActions", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ReorderingActions", - "key.typeusr" : "$s10ListableUI17ReorderingActionsCD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP17reorderingActionsAA010ReorderingH0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var cellRegistrationInfo: (class: AnyClass<\/Type>, reuseIdentifier: String<\/Type>) { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 497, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> cellRegistrationInfo<\/decl.name>: (class<\/tuple.element.argument_label>: AnyClass<\/ref.typealias><\/tuple.element.type><\/tuple.element>, reuseIdentifier<\/tuple.element.argument_label>: String<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 75, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "cellRegistrationInfo", - "key.namelength" : 20, - "key.nameoffset" : 432, - "key.offset" : 428, - "key.parsed_declaration" : "var cellRegistrationInfo : (class:AnyClass, reuseIdentifier:String)", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "(class: any AnyObject.Type, reuseIdentifier: String)", - "key.typeusr" : "$syXlXp5class_SS15reuseIdentifiertD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP20cellRegistrationInfoyXlXp5class_SS15reuseIdentifiertvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func dequeueAndPrepareCollectionViewCell(in collectionView: UICollectionView<\/Type>, for indexPath: IndexPath<\/Type>, environment: ListEnvironment<\/Type>) -> AnyItemCell<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> dequeueAndPrepareCollectionViewCell<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyItemCell<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 181, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "dequeueAndPrepareCollectionViewCell(in:for:environment:)", - "key.namelength" : 161, - "key.nameoffset" : 518, - "key.offset" : 513, - "key.parsed_declaration" : "func dequeueAndPrepareCollectionViewCell(\n in collectionView : UICollectionView,\n for indexPath : IndexPath,\n environment : ListEnvironment\n) -> AnyItemCell", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (UICollectionView, IndexPath, ListEnvironment) -> any AnyItemCell", - "key.typeusr" : "$s2in3for11environment10ListableUI11AnyItemCell_pSo16UICollectionViewC_10Foundation9IndexPathVAD15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP35dequeueAndPrepareCollectionViewCell2in3for11environmentAA0ceL0_pSo012UICollectionK0C_10Foundation9IndexPathVAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func applyTo(cell anyCell: UICollectionViewCell<\/Type>, itemState: ListableUI.ItemState<\/Type>, reason: ApplyReason<\/Type>, environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyTo<\/decl.name>(cell<\/decl.var.parameter.argument_label> anyCell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, itemState<\/decl.var.parameter.argument_label>: ListableUI.ItemState<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 174, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "applyTo(cell:itemState:reason:environment:)", - "key.namelength" : 169, - "key.nameoffset" : 709, - "key.offset" : 704, - "key.parsed_declaration" : "func applyTo(\n cell anyCell : UICollectionViewCell,\n itemState : ListableUI.ItemState,\n reason : ApplyReason,\n environment : ListEnvironment\n)", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (UICollectionViewCell, ItemState, ApplyReason, ListEnvironment) -> ()", - "key.typeusr" : "$s4cell9itemState6reason11environmentySo20UICollectionViewCellC_10ListableUI04ItemC0VAG11ApplyReasonOAG15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP7applyTo4cell04itemF06reason11environmentySo20UICollectionViewCellC_AA0eF0VAA11ApplyReasonOAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func applyToVisibleCell(with environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyToVisibleCell<\/decl.name>(with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 59, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "applyToVisibleCell(with:)", - "key.namelength" : 54, - "key.nameoffset" : 893, - "key.offset" : 888, - "key.parsed_declaration" : "func applyToVisibleCell(with environment : ListEnvironment)", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 38, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ListEnvironment) -> ()", - "key.typeusr" : "$s4withy10ListableUI15ListEnvironmentV_tcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP18applyToVisibleCell4withyAA15ListEnvironmentV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func set(new: AnyItem<\/Type>, reason: PresentationState<\/Type>.ItemUpdateReason<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(new<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: PresentationState<\/ref.class>.ItemUpdateReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 172, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "set(new:reason:updateCallbacks:environment:)", - "key.namelength" : 167, - "key.nameoffset" : 966, - "key.offset" : 961, - "key.parsed_declaration" : "func set(\n new : AnyItem,\n reason : PresentationState.ItemUpdateReason,\n updateCallbacks : UpdateCallbacks,\n environment : ListEnvironment\n)", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "set(isSelected:performCallbacks:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyItem, PresentationState.ItemUpdateReason, UpdateCallbacks, ListEnvironment) -> ()", - "key.typeusr" : "$s3new6reason15updateCallbacks11environmenty10ListableUI7AnyItem_p_AE17PresentationStateC0I12UpdateReasonOAE0lD0CAE15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP3set3new6reason15updateCallbacks11environmentyAA0cE0_p_AA0dF0C0E12UpdateReasonOAA0mK0CAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func willDisplay(cell: UICollectionViewCell<\/Type>, in collectionView: UICollectionView<\/Type>, for indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> willDisplay<\/decl.name>(cell<\/decl.var.parameter.argument_label>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 110, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "willDisplay(cell:in:for:)", - "key.namelength" : 105, - "key.nameoffset" : 1148, - "key.offset" : 1143, - "key.parsed_declaration" : "func willDisplay(cell : UICollectionViewCell, in collectionView : UICollectionView, for indexPath : IndexPath)", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (UICollectionViewCell, UICollectionView, IndexPath) -> ()", - "key.typeusr" : "$s4cell2in3forySo20UICollectionViewCellC_So0dE0C10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP11willDisplay4cell2in3forySo20UICollectionViewCellC_So0lM0C10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func didEndDisplay()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> didEndDisplay<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 20, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "didEndDisplay()", - "key.namelength" : 15, - "key.nameoffset" : 1263, - "key.offset" : 1258, - "key.parsed_declaration" : "func didEndDisplay()", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 48, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP13didEndDisplayyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func wasRemoved(updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 50, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "wasRemoved(updateCallbacks:)", - "key.namelength" : 45, - "key.nameoffset" : 1293, - "key.offset" : 1288, - "key.parsed_declaration" : "func wasRemoved(updateCallbacks : UpdateCallbacks)", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 50, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (UpdateCallbacks) -> ()", - "key.typeusr" : "$s15updateCallbacksy10ListableUI06UpdateB0C_tcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP10wasRemoved15updateCallbacksyAA06UpdateJ0C_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isSelected: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 1371, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 52, - "key.modulename" : "ListableUI", - "key.name" : "isSelected", - "key.namelength" : 10, - "key.nameoffset" : 1352, - "key.offset" : 1348, - "key.parsed_declaration" : "var isSelected : Bool", - "key.parsed_scope.end" : 52, - "key.parsed_scope.start" : 52, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP10isSelectedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func set(isSelected: Bool<\/Type>, performCallbacks: Bool<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(isSelected<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, performCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 50, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "set(isSelected:performCallbacks:)", - "key.namelength" : 45, - "key.nameoffset" : 1387, - "key.offset" : 1382, - "key.parsed_declaration" : "func set(isSelected: Bool, performCallbacks: Bool)", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 53, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "set(new:reason:updateCallbacks:environment:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Bool, Bool) -> ()", - "key.typeusr" : "$s10isSelected16performCallbacksySb_SbtcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP3set10isSelected16performCallbacksySb_SbtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func resetCachedSizes()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetCachedSizes<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 23, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "resetCachedSizes()", - "key.namelength" : 18, - "key.nameoffset" : 1447, - "key.offset" : 1442, - "key.parsed_declaration" : "func resetCachedSizes()", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP16resetCachedSizesyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func size(for info: Sizing<\/Type>.MeasureInfo<\/Type>, cache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, cache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 138, - "key.line" : 57, - "key.modulename" : "ListableUI", - "key.name" : "size(for:cache:environment:)", - "key.namelength" : 123, - "key.nameoffset" : 1480, - "key.offset" : 1475, - "key.parsed_declaration" : "func size(\n for info : Sizing.MeasureInfo,\n cache : ReusableViewCache,\n environment : ListEnvironment\n) -> CGSize", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 57, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Sizing.MeasureInfo, ReusableViewCache, ListEnvironment) -> CGSize", - "key.typeusr" : "$s3for5cache11environmentSo6CGSizeV10ListableUI6SizingO11MeasureInfoV_AF17ReusableViewCacheCAF15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP4size3for5cache11environmentSo6CGSizeVAA6SizingO11MeasureInfoV_AA17ReusableViewCacheCAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func beginReorder(from originalIndexPath: IndexPath<\/Type>, with environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> beginReorder<\/decl.name>(from<\/decl.var.parameter.argument_label> originalIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 88, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "beginReorder(from:with:)", - "key.namelength" : 83, - "key.nameoffset" : 1628, - "key.offset" : 1623, - "key.parsed_declaration" : "func beginReorder(from originalIndexPath : IndexPath, with environment: ListEnvironment)", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (IndexPath, ListEnvironment) -> ()", - "key.typeusr" : "$s4from4withy10Foundation9IndexPathV_10ListableUI15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP12beginReorder4from4withy10Foundation9IndexPathV_AA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func endReorder(with environment: ListEnvironment<\/Type>, result: ReorderingActions<\/Type>.Result<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> endReorder<\/decl.name>(with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, result<\/decl.var.parameter.argument_label>: ReorderingActions<\/ref.class>.Result<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 85, - "key.line" : 64, - "key.modulename" : "ListableUI", - "key.name" : "endReorder(with:result:)", - "key.namelength" : 80, - "key.nameoffset" : 1721, - "key.offset" : 1716, - "key.parsed_declaration" : "func endReorder(with environment: ListEnvironment, result : ReorderingActions.Result)", - "key.parsed_scope.end" : 64, - "key.parsed_scope.start" : 64, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ListEnvironment, ReorderingActions.Result) -> ()", - "key.typeusr" : "$s4with6resulty10ListableUI15ListEnvironmentV_AC17ReorderingActionsC6ResultOtcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP10endReorder4with6resultyAA15ListEnvironmentV_AA17ReorderingActionsC6ResultOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func performDidReorder(with result: ItemReordering<\/Type>.Result<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> performDidReorder<\/decl.name>(with<\/decl.var.parameter.argument_label> result<\/decl.var.parameter.name>: ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 67, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "performDidReorder(with:)", - "key.namelength" : 54, - "key.nameoffset" : 1811, - "key.offset" : 1806, - "key.parsed_declaration" : "func performDidReorder(with result : ItemReordering.Result) -> Bool", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ItemReordering.Result) -> Bool", - "key.typeusr" : "$s4withSb10ListableUI14ItemReorderingV6ResultV_tcD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP17performDidReorder4withSbAA0E10ReorderingV6ResultV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isReordering: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 1908, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isReordering<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "isReordering", - "key.namelength" : 12, - "key.nameoffset" : 1887, - "key.offset" : 1883, - "key.parsed_declaration" : "var isReordering : Bool", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 67, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP12isReorderingSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var activeReorderEventInfo: PresentationState<\/Type>.ActiveReorderEventInfo<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 1996, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> activeReorderEventInfo<\/decl.name>: PresentationState<\/ref.class>.ActiveReorderEventInfo<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 78, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "activeReorderEventInfo", - "key.namelength" : 22, - "key.nameoffset" : 1928, - "key.offset" : 1924, - "key.parsed_declaration" : "var activeReorderEventInfo : PresentationState.ActiveReorderEventInfo?", - "key.parsed_scope.end" : 69, - "key.parsed_scope.start" : 69, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.ActiveReorderEventInfo?", - "key.typeusr" : "$s10ListableUI17PresentationStateC22ActiveReorderEventInfoVSgD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP22activeReorderEventInfoAA0dF0C06ActivehiJ0VSgvp" - } - ], - "key.typename" : "AnyPresentationItemState.Type", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pmD", - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "protocol ItemContentCoordinatorDelegate : AnyObject<\/Declaration>", - "key.bodylength" : 49, - "key.bodyoffset" : 2060, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 2049 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> ItemContentCoordinatorDelegate<\/decl.name> : AnyObject<\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 103, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "ItemContentCoordinatorDelegate", - "key.namelength" : 30, - "key.nameoffset" : 2016, - "key.offset" : 2007, - "key.parsed_declaration" : "protocol ItemContentCoordinatorDelegate : AnyObject", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 73, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func coordinatorUpdated(for item: AnyItem<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> coordinatorUpdated<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 43, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "coordinatorUpdated(for:)", - "key.namelength" : 38, - "key.nameoffset" : 2070, - "key.offset" : 2065, - "key.parsed_declaration" : "func coordinatorUpdated(for item : AnyItem)", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 75, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI30ItemContentCoordinatorDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyItem) -> ()", - "key.typeusr" : "$s3fory10ListableUI7AnyItem_p_tcD", - "key.usr" : "s:10ListableUI30ItemContentCoordinatorDelegateP18coordinatorUpdated3foryAA03AnyC0_p_tF" - } - ], - "key.typename" : "ItemContentCoordinatorDelegate.Type", - "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pmD", - "key.usr" : "s:10ListableUI30ItemContentCoordinatorDelegateP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemStateDependencies<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2113 - } - ], - "key.bodylength" : 186, - "key.bodyoffset" : 2150, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemStateDependencies<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 217, - "key.line" : 79, - "key.modulename" : "ListableUI", - "key.name" : "ItemStateDependencies", - "key.namelength" : 21, - "key.nameoffset" : 2127, - "key.offset" : 2120, - "key.parsed_declaration" : "public struct ItemStateDependencies", - "key.parsed_scope.end" : 85, - "key.parsed_scope.start" : 79, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "weak var reorderingDelegate: ReorderingActionsDelegate<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 2155 - } - ], - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> reorderingDelegate<\/decl.name>: ReorderingActionsDelegate<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 81, - "key.modulename" : "ListableUI", - "key.name" : "reorderingDelegate", - "key.namelength" : 18, - "key.nameoffset" : 2164, - "key.offset" : 2160, - "key.parsed_declaration" : "weak var reorderingDelegate : ReorderingActionsDelegate?", - "key.parsed_scope.end" : 81, - "key.parsed_scope.start" : 81, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(any ReorderingActionsDelegate)?", - "key.typeusr" : "$s10ListableUI25ReorderingActionsDelegate_pSgD", - "key.usr" : "s:10ListableUI21ItemStateDependenciesV18reorderingDelegateAA017ReorderingActionsG0_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "weak var coordinatorDelegate: ItemContentCoordinatorDelegate<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 2216 - } - ], - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: ItemContentCoordinatorDelegate<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 57, - "key.line" : 82, - "key.modulename" : "ListableUI", - "key.name" : "coordinatorDelegate", - "key.namelength" : 19, - "key.nameoffset" : 2225, - "key.offset" : 2221, - "key.parsed_declaration" : "weak var coordinatorDelegate : ItemContentCoordinatorDelegate?", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 82, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(any ItemContentCoordinatorDelegate)?", - "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pSgD", - "key.usr" : "s:10ListableUI21ItemStateDependenciesV19coordinatorDelegateAA0c18ContentCoordinatorG0_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var environmentProvider: () -> ListEnvironment<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> environmentProvider<\/decl.name>: () -> ListEnvironment<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "environmentProvider", - "key.namelength" : 19, - "key.nameoffset" : 2292, - "key.offset" : 2288, - "key.parsed_declaration" : "var environmentProvider : () -> ListEnvironment", - "key.parsed_scope.end" : 84, - "key.parsed_scope.start" : 84, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "() -> ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVycD", - "key.usr" : "s:10ListableUI21ItemStateDependenciesV19environmentProviderAA15ListEnvironmentVycvp" - } - ], - "key.typename" : "ItemStateDependencies.Type", - "key.typeusr" : "$s10ListableUI21ItemStateDependenciesVmD", - "key.usr" : "s:10ListableUI21ItemStateDependenciesV" - }, - { - "key.annotated_decl" : "final class PresentationState<\/Declaration>", - "key.bodylength" : 19347, - "key.bodyoffset" : 2369, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).", - "key.doc.column" : 13, - "key.doc.declaration" : "final class PresentationState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "PresentationState", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 19377, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "PresentationState", - "key.namelength" : 17, - "key.nameoffset" : 2350, - "key.offset" : 2340, - "key.parsed_declaration" : "extension PresentationState", - "key.parsed_scope.end" : 609, - "key.parsed_scope.start" : 88, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "enum ItemUpdateReason : CaseIterable<\/Type><\/Declaration>", - "key.bodylength" : 120, - "key.bodyoffset" : 2416, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 12, - "key.offset" : 2398 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> ItemUpdateReason<\/decl.name> : CaseIterable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "CaseIterable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 163, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "ItemUpdateReason", - "key.namelength" : 16, - "key.nameoffset" : 2379, - "key.offset" : 2374, - "key.parsed_declaration" : "enum ItemUpdateReason : CaseIterable", - "key.parsed_scope.end" : 96, - "key.parsed_scope.start" : 90, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 2425, - "key.substructure" : [ - { - "key.annotated_decl" : "case moveFromList<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> moveFromList<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 92, - "key.modulename" : "ListableUI", - "key.name" : "moveFromList", - "key.namelength" : 12, - "key.nameoffset" : 2430, - "key.offset" : 2430, - "key.parsed_declaration" : "case moveFromList", - "key.parsed_scope.end" : 92, - "key.parsed_scope.start" : 92, - "key.reusingastcontext" : false, - "key.typename" : "(PresentationState.ItemUpdateReason.Type) -> PresentationState.ItemUpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC16ItemUpdateReasonOAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC16ItemUpdateReasonO12moveFromListyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 2451, - "key.substructure" : [ - { - "key.annotated_decl" : "case updateFromList<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> updateFromList<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "updateFromList", - "key.namelength" : 14, - "key.nameoffset" : 2456, - "key.offset" : 2456, - "key.parsed_declaration" : "case updateFromList", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.typename" : "(PresentationState.ItemUpdateReason.Type) -> PresentationState.ItemUpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC16ItemUpdateReasonOAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC16ItemUpdateReasonO14updateFromListyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 30, - "key.offset" : 2479, - "key.substructure" : [ - { - "key.annotated_decl" : "case updateFromItemCoordinator<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> updateFromItemCoordinator<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 25, - "key.line" : 94, - "key.modulename" : "ListableUI", - "key.name" : "updateFromItemCoordinator", - "key.namelength" : 25, - "key.nameoffset" : 2484, - "key.offset" : 2484, - "key.parsed_declaration" : "case updateFromItemCoordinator", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 94, - "key.reusingastcontext" : false, - "key.typename" : "(PresentationState.ItemUpdateReason.Type) -> PresentationState.ItemUpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC16ItemUpdateReasonOAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC16ItemUpdateReasonO010updateFromE11CoordinatoryA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 2518, - "key.substructure" : [ - { - "key.annotated_decl" : "case noChange<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> noChange<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 95, - "key.modulename" : "ListableUI", - "key.name" : "noChange", - "key.namelength" : 8, - "key.nameoffset" : 2523, - "key.offset" : 2523, - "key.parsed_declaration" : "case noChange", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 95, - "key.reusingastcontext" : false, - "key.typename" : "(PresentationState.ItemUpdateReason.Type) -> PresentationState.ItemUpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC16ItemUpdateReasonOAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC16ItemUpdateReasonO8noChangeyA2EmF" - } - ] - } - ], - "key.typename" : "PresentationState.ItemUpdateReason.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC16ItemUpdateReasonOmD", - "key.usr" : "s:10ListableUI17PresentationStateC16ItemUpdateReasonO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ActiveReorderEventInfo<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2547 - } - ], - "key.bodylength" : 47, - "key.bodyoffset" : 2585, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ActiveReorderEventInfo<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 79, - "key.line" : 98, - "key.modulename" : "ListableUI", - "key.name" : "ActiveReorderEventInfo", - "key.namelength" : 22, - "key.nameoffset" : 2561, - "key.offset" : 2554, - "key.parsed_declaration" : "public struct ActiveReorderEventInfo", - "key.parsed_scope.end" : 100, - "key.parsed_scope.start" : 98, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var originalIndexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> originalIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "originalIndexPath", - "key.namelength" : 17, - "key.nameoffset" : 2598, - "key.offset" : 2594, - "key.parsed_declaration" : "var originalIndexPath : IndexPath", - "key.parsed_scope.end" : 99, - "key.parsed_scope.start" : 99, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI17PresentationStateC22ActiveReorderEventInfoV17originalIndexPath10Foundation0jK0Vvp" - } - ], - "key.typename" : "PresentationState.ActiveReorderEventInfo.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC22ActiveReorderEventInfoVmD", - "key.usr" : "s:10ListableUI17PresentationStateC22ActiveReorderEventInfoV" - }, - { - "key.annotated_decl" : "final class ItemState<Content> : AnyPresentationItemState<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 2643 - } - ], - "key.bodylength" : 18996, - "key.bodyoffset" : 2718, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 24, - "key.offset" : 2688 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemState<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyPresentationItemState<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyPresentationItemState" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 19066, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "ItemState", - "key.namelength" : 9, - "key.nameoffset" : 2655, - "key.offset" : 2649, - "key.parsed_declaration" : "final class ItemState : AnyPresentationItemState", - "key.parsed_scope.end" : 608, - "key.parsed_scope.start" : 102, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 2673 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 2665, - "key.offset" : 2665, - "key.parsed_declaration" : "final class ItemStatevar model: Item<\/Type><Content<\/Type>> { get }<\/Declaration>", - "key.bodylength" : 40, - "key.bodyoffset" : 2754, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> model<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 68, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "model", - "key.namelength" : 5, - "key.nameoffset" : 2731, - "key.offset" : 2727, - "key.parsed_declaration" : "var model : Item", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 104, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C5modelAA0E0VyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let performsContentCallbacks: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 108, - "key.modulename" : "ListableUI", - "key.name" : "performsContentCallbacks", - "key.namelength" : 24, - "key.nameoffset" : 2817, - "key.offset" : 2813, - "key.parsed_declaration" : "let performsContentCallbacks : Bool", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 108, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C24performsContentCallbacksSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var coordination: Coordination<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 2866 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> coordination<\/decl.name>: Coordination<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 110, - "key.modulename" : "ListableUI", - "key.name" : "coordination", - "key.namelength" : 12, - "key.nameoffset" : 2883, - "key.offset" : 2879, - "key.parsed_declaration" : "private(set) var coordination : Coordination", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 110, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "PresentationState.ItemState.Coordination", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0C12CoordinationVy_x_GD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C12coordinationAE12CoordinationVy_x_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct PresentationState<\/Type>.ItemState<\/Type><Content<\/Type>>.Coordination<\/Declaration>", - "key.bodylength" : 197, - "key.bodyoffset" : 2949, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> PresentationState<\/ref.class>.ItemState<\/ref.class><Content<\/ref.generic_type_param>>.Coordination<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 219, - "key.line" : 112, - "key.modulename" : "ListableUI", - "key.name" : "Coordination", - "key.namelength" : 12, - "key.nameoffset" : 2935, - "key.offset" : 2928, - "key.parsed_declaration" : "struct Coordination", - "key.parsed_scope.end" : 117, - "key.parsed_scope.start" : 112, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var coordinator: Content<\/Type>.Coordinator<\/Type>?<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> coordinator<\/decl.name>: Content<\/ref.generic_type_param>.Coordinator<\/ref.associatedtype>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 113, - "key.modulename" : "ListableUI", - "key.name" : "coordinator", - "key.namelength" : 11, - "key.nameoffset" : 2966, - "key.offset" : 2962, - "key.parsed_declaration" : "var coordinator : Content.Coordinator?", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 113, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Content.Coordinator?", - "key.typeusr" : "$s11CoordinatorQzSgD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C12CoordinationV11coordinator11CoordinatorQzSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let actions: ItemContentCoordinatorActions<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> actions<\/decl.name>: ItemContentCoordinatorActions<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 115, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 3030, - "key.offset" : 3026, - "key.parsed_declaration" : "let actions : ItemContentCoordinatorActions", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 115, - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorActions", - "key.typeusr" : "$s10ListableUI29ItemContentCoordinatorActionsCyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C12CoordinationV7actionsAA0E25ContentCoordinatorActionsCyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let info: ItemContentCoordinatorInfo<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: ItemContentCoordinatorInfo<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "info", - "key.namelength" : 4, - "key.nameoffset" : 3095, - "key.offset" : 3091, - "key.parsed_declaration" : "let info : ItemContentCoordinatorInfo", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorInfo", - "key.typeusr" : "$s10ListableUI26ItemContentCoordinatorInfoCyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C12CoordinationV4infoAA0E22ContentCoordinatorInfoCyxGvp" - } - ], - "key.typename" : "PresentationState.ItemState.Coordination.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0C12CoordinationVy_x_GmD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C12CoordinationV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let reorderingActions: ReorderingActions<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> reorderingActions<\/decl.name>: ReorderingActions<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "reorderingActions", - "key.namelength" : 17, - "key.nameoffset" : 3169, - "key.offset" : 3165, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP17reorderingActionsAA010ReorderingH0Cvp" - } - ], - "key.parsed_declaration" : "let reorderingActions: ReorderingActions", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.typename" : "ReorderingActions", - "key.typeusr" : "$s10ListableUI17ReorderingActionsCD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C17reorderingActionsAA010ReorderingG0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var itemPosition: ItemPosition<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> itemPosition<\/decl.name>: ItemPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "itemPosition", - "key.namelength" : 12, - "key.nameoffset" : 3227, - "key.offset" : 3223, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP12itemPositionAA0eH0Ovp" - } - ], - "key.parsed_declaration" : "var itemPosition : ItemPosition", - "key.parsed_scope.end" : 121, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ItemPosition", - "key.typeusr" : "$s10ListableUI12ItemPositionOD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C12itemPositionAA0eG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let storage: Storage<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> storage<\/decl.name>: Storage<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 123, - "key.modulename" : "ListableUI", - "key.name" : "storage", - "key.namelength" : 7, - "key.nameoffset" : 3276, - "key.offset" : 3272, - "key.parsed_declaration" : "let storage : Storage", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 123, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.ItemState.Storage", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0C7StorageCy_x_GD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C7storageAE7StorageCy_x_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(with model: Item<\/Type><Content<\/Type>>, dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, performsContentCallbacks: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 3034, - "key.bodyoffset" : 3509, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, dependencies<\/decl.var.parameter.argument_label>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3233, - "key.line" : 125, - "key.modulename" : "ListableUI", - "key.name" : "init(with:dependencies:updateCallbacks:performsContentCallbacks:)", - "key.namelength" : 196, - "key.nameoffset" : 3311, - "key.offset" : 3311, - "key.parsed_declaration" : "init(\n with model : Item,\n dependencies : ItemStateDependencies,\n updateCallbacks : UpdateCallbacks,\n performsContentCallbacks : Bool\n)", - "key.parsed_scope.end" : 203, - "key.parsed_scope.start" : 125, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let storage: PresentationState<\/Type>.ItemState<\/Type><Content<\/Type>>.Storage<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> storage<\/decl.name>: PresentationState<\/ref.class>.ItemState<\/ref.class><Content<\/ref.generic_type_param>>.Storage<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 28, - "key.line" : 136, - "key.modulename" : "ListableUI", - "key.name" : "storage", - "key.namelength" : 7, - "key.nameoffset" : 3757, - "key.offset" : 3753, - "key.parsed_declaration" : "let storage = Storage(model)", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 136, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.ItemState.Storage", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0C7StorageCy_x_GD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc7storageL_AE7StorageCy_x_Gvp" - }, - { - "key.annotated_decl" : "let actions: ItemContentCoordinatorActions<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> actions<\/decl.name>: ItemContentCoordinatorActions<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 406, - "key.line" : 141, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 3940, - "key.offset" : 3936, - "key.parsed_declaration" : "let actions = ItemContentCoordinatorActions(\n current: { storage.model },\n update: { new, _ in\n \n \/\/\/ This is a temporary update callback, in case the initialization of the\n \/\/\/ coordinator causes an update to the item itself.\n \n storage.model = new\n }\n)", - "key.parsed_scope.end" : 141, - "key.parsed_scope.start" : 141, - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorActions", - "key.typeusr" : "$s10ListableUI29ItemContentCoordinatorActionsCyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc7actionsL_AA0eK18CoordinatorActionsCyxGvp" - }, - { - "key.annotated_decl" : "let info: ItemContentCoordinatorInfo<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "This is a temporary update callback, in case the initialization of the\ncoordinator causes an update to the item itself.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: ItemContentCoordinatorInfo<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 136, - "key.line" : 152, - "key.modulename" : "ListableUI", - "key.name" : "info", - "key.namelength" : 4, - "key.nameoffset" : 4360, - "key.offset" : 4356, - "key.parsed_declaration" : "let info = ItemContentCoordinatorInfo(\n original: storage.model,\n current: { storage.model }\n)", - "key.parsed_scope.end" : 152, - "key.parsed_scope.start" : 152, - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorInfo", - "key.typeusr" : "$s10ListableUI26ItemContentCoordinatorInfoCyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc4infoL_AA0eK15CoordinatorInfoCyxGvp" - }, - { - "key.annotated_decl" : "let coordinator: Content<\/Type>.Coordinator<\/Type>?<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> coordinator<\/decl.name>: Content<\/ref.generic_type_param>.Coordinator<\/ref.associatedtype>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 115, - "key.line" : 157, - "key.modulename" : "ListableUI", - "key.name" : "coordinator", - "key.namelength" : 11, - "key.nameoffset" : 4522, - "key.offset" : 4518, - "key.parsed_declaration" : "let coordinator = self.performsContentCallbacks ? model.content.makeCoordinator(actions: actions, info: info) : nil", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 157, - "key.reusingastcontext" : false, - "key.typename" : "Content.Coordinator?", - "key.typeusr" : "$s11CoordinatorQzSgD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc11coordinatorL_11CoordinatorQzSgvp" - }, - { - "key.annotated_decl" : "weak var coordinatorDelegate: (any ItemContentCoordinatorDelegate<\/Type>)?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 5219 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Now that the presentation state is entirely configured, set up the final\nupdate callback, which triggers a `setNew` call, alongside informing the\n`listView` that changes have occurred.", - "key.doc.column" : 22, - "key.doc.comment" : "Now that the presentation state is entirely configured, set up the final\nupdate callback, which triggers a `setNew` call, alongside informing the\n`listView` that changes have occurred.", - "key.doc.declaration" : "weak var coordinatorDelegate: (any ListableUI.ItemContentCoordinatorDelegate)?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.doc.full_as_xml" : "coordinatorDelegate<\/Name>s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp<\/USR>weak var coordinatorDelegate: (any ListableUI.ItemContentCoordinatorDelegate)?<\/Declaration>Now that the presentation state is entirely configured, set up the final update callback, which triggers a setNew<\/codeVoice> call, alongside informing the listView<\/codeVoice> that changes have occurred.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 172, - "key.doc.name" : "coordinatorDelegate", - "key.doc.type" : "Other", - "key.doclength" : 221, - "key.docoffset" : 4973, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: (any ItemContentCoordinatorDelegate<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 58, - "key.line" : 172, - "key.modulename" : "ListableUI", - "key.name" : "coordinatorDelegate", - "key.namelength" : 19, - "key.nameoffset" : 5228, - "key.offset" : 5224, - "key.parsed_declaration" : "weak var coordinatorDelegate = dependencies.coordinatorDelegate", - "key.parsed_scope.end" : 172, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.typename" : "(any ItemContentCoordinatorDelegate)?", - "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pSgD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp" - }, - { - "key.annotated_decl" : "weak var `self`: PresentationState<\/Type>.ItemState<\/Type><Content<\/Type>>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 5354 - } - ], - "key.column" : 64, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `self`<\/decl.name>: PresentationState<\/ref.class>.ItemState<\/ref.class><Content<\/ref.generic_type_param>>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 4, - "key.line" : 174, - "key.modulename" : "ListableUI", - "key.name" : "self", - "key.namelength" : 4, - "key.nameoffset" : 5359, - "key.offset" : 5359, - "key.parsed_declaration" : "self.coordination.actions.updateCallback = { [weak self", - "key.parsed_scope.end" : 174, - "key.parsed_scope.start" : 174, - "key.reusingastcontext" : false, - "key.secondary_symbols" : [ - { - "key.annotated_decl" : "let `self`: PresentationState<\/Type>.ItemState<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> `self`<\/decl.var.parameter.name>: PresentationState<\/ref.class>.ItemState<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>", - "key.is_synthesized" : true, - "key.kind" : "source.lang.swift.ref.var.local", - "key.length" : 4, - "key.line" : 125, - "key.modulename" : "ListableUI", - "key.name" : "self", - "key.offset" : 3311, - "key.parent_loc" : 3311, - "key.typename" : "PresentationState.ItemState", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0Cy_xGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc4selfL_AJvp" - } - ], - "key.typename" : "PresentationState.ItemState?", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0Cy_xGSgD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc4selfL0_AJSgvp" - }, - { - "key.annotated_decl" : "weak var coordinatorDelegate: (any ItemContentCoordinatorDelegate<\/Type>)?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 5365 - } - ], - "key.column" : 75, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: (any ItemContentCoordinatorDelegate<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 19, - "key.line" : 174, - "key.modulename" : "ListableUI", - "key.name" : "coordinatorDelegate", - "key.namelength" : 19, - "key.nameoffset" : 5370, - "key.offset" : 5370, - "key.parsed_declaration" : "self.coordination.actions.updateCallback = { [weak self, weak coordinatorDelegate", - "key.parsed_scope.end" : 174, - "key.parsed_scope.start" : 174, - "key.reusingastcontext" : false, - "key.secondary_symbols" : [ - { - "key.annotated_decl" : "weak var coordinatorDelegate: (any ItemContentCoordinatorDelegate<\/Type>)?<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Now that the presentation state is entirely configured, set up the final\nupdate callback, which triggers a `setNew` call, alongside informing the\n`listView` that changes have occurred.", - "key.doc.full_as_xml" : "coordinatorDelegate<\/Name>s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp<\/USR>weak var coordinatorDelegate: (any ListableUI.ItemContentCoordinatorDelegate)?<\/Declaration>Now that the presentation state is entirely configured, set up the final update callback, which triggers a setNew<\/codeVoice> call, alongside informing the listView<\/codeVoice> that changes have occurred.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: (any ItemContentCoordinatorDelegate<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.ref.var.local", - "key.length" : 19, - "key.line" : 172, - "key.modulename" : "ListableUI", - "key.name" : "coordinatorDelegate", - "key.offset" : 5228, - "key.typename" : "(any ItemContentCoordinatorDelegate)?", - "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pSgD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp" - } - ], - "key.typename" : "(any ItemContentCoordinatorDelegate)?", - "key.typeusr" : "$s10ListableUI30ItemContentCoordinatorDelegate_pSgD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL0_AA0ek11CoordinatorO0_pSgvp" - }, - { - "key.annotated_decl" : "weak var `self`: PresentationState<\/Type>.ItemState<\/Type><Content<\/Type>>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 6110 - } - ], - "key.column" : 48, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `self`<\/decl.name>: PresentationState<\/ref.class>.ItemState<\/ref.class><Content<\/ref.generic_type_param>>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 4, - "key.line" : 193, - "key.modulename" : "ListableUI", - "key.name" : "self", - "key.namelength" : 4, - "key.nameoffset" : 6115, - "key.offset" : 6115, - "key.parsed_declaration" : "self.storage.didSetState = { [weak self", - "key.parsed_scope.end" : 193, - "key.parsed_scope.start" : 193, - "key.reusingastcontext" : false, - "key.secondary_symbols" : [ - { - "key.annotated_decl" : "let `self`: PresentationState<\/Type>.ItemState<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> `self`<\/decl.var.parameter.name>: PresentationState<\/ref.class>.ItemState<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>", - "key.is_synthesized" : true, - "key.kind" : "source.lang.swift.ref.var.local", - "key.length" : 4, - "key.line" : 125, - "key.modulename" : "ListableUI", - "key.name" : "self", - "key.offset" : 3311, - "key.parent_loc" : 3311, - "key.typename" : "PresentationState.ItemState", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0Cy_xGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc4selfL_AJvp" - } - ], - "key.typename" : "PresentationState.ItemState?", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0Cy_xGSgD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc4selfL1_AJSgvp" - } - ], - "key.typename" : " (PresentationState.ItemState.Type) -> (Item, ItemStateDependencies, UpdateCallbacks, Bool) -> PresentationState.ItemState", - "key.typeusr" : "$s4with12dependencies15updateCallbacks015performsContentD010ListableUI17PresentationStateC04ItemJ0Cy_xGAE0K0VyxG_AE0kJ12DependenciesVAE06UpdateD0CSbtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 30, - "key.name" : "MARK: AnyPresentationItemState", - "key.offset" : 6565 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var isDisplayed: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 6613 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Now that we are set up, notify callbacks.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> isDisplayed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 207, - "key.modulename" : "ListableUI", - "key.name" : "isDisplayed", - "key.namelength" : 11, - "key.nameoffset" : 6630, - "key.offset" : 6626, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP11isDisplayedSbvp" - } - ], - "key.parsed_declaration" : "private(set) var isDisplayed : Bool = false", - "key.parsed_scope.end" : 207, - "key.parsed_scope.start" : 207, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C11isDisplayedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var hasDisplayed: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6674 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasDisplayed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 209, - "key.modulename" : "ListableUI", - "key.name" : "hasDisplayed", - "key.namelength" : 12, - "key.nameoffset" : 6686, - "key.offset" : 6682, - "key.parsed_declaration" : "private var hasDisplayed : Bool = false", - "key.parsed_scope.end" : 209, - "key.parsed_scope.start" : 209, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C12hasDisplayed33_076717420F7F254B8CDE903FAA9017F4LLSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var hasEndedDisplay: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6722 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasEndedDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 210, - "key.modulename" : "ListableUI", - "key.name" : "hasEndedDisplay", - "key.namelength" : 15, - "key.nameoffset" : 6734, - "key.offset" : 6730, - "key.parsed_declaration" : "private var hasEndedDisplay : Bool = false", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 210, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C15hasEndedDisplay33_076717420F7F254B8CDE903FAA9017F4LLSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func setAndPerform(isDisplayed: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 919, - "key.bodyoffset" : 6821, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setAndPerform<\/decl.name>(isDisplayed<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 959, - "key.line" : 212, - "key.modulename" : "ListableUI", - "key.name" : "setAndPerform(isDisplayed:)", - "key.namelength" : 32, - "key.nameoffset" : 6787, - "key.offset" : 6782, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP13setAndPerform11isDisplayedySb_tF" - } - ], - "key.parsed_declaration" : "func setAndPerform(isDisplayed: Bool)", - "key.parsed_scope.end" : 240, - "key.parsed_scope.start" : 212, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState) -> (Bool) -> ()", - "key.typeusr" : "$s11isDisplayedySb_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C13setAndPerform11isDisplayedySb_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var anyModel: AnyItem<\/Type> { get }<\/Declaration>", - "key.bodylength" : 39, - "key.bodyoffset" : 7791, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyModel<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 64, - "key.line" : 242, - "key.modulename" : "ListableUI", - "key.name" : "anyModel", - "key.namelength" : 8, - "key.nameoffset" : 7771, - "key.offset" : 7767, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP8anyModelAA0cE0_pvp" - } - ], - "key.parsed_declaration" : "var anyModel : AnyItem", - "key.parsed_scope.end" : 244, - "key.parsed_scope.start" : 242, - "key.reusingastcontext" : false, - "key.typename" : "any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C8anyModelAA03AnyE0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var cellRegistrationInfo: (class: AnyClass<\/Type>, reuseIdentifier: String<\/Type>)<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> cellRegistrationInfo<\/decl.name>: (class<\/tuple.element.argument_label>: AnyClass<\/ref.typealias><\/tuple.element.type><\/tuple.element>, reuseIdentifier<\/tuple.element.argument_label>: String<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 67, - "key.line" : 246, - "key.modulename" : "ListableUI", - "key.name" : "cellRegistrationInfo", - "key.namelength" : 20, - "key.nameoffset" : 7853, - "key.offset" : 7849, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP20cellRegistrationInfoyXlXp5class_SS15reuseIdentifiertvp" - } - ], - "key.parsed_declaration" : "var cellRegistrationInfo : (class:AnyClass, reuseIdentifier:String)", - "key.parsed_scope.end" : 246, - "key.parsed_scope.start" : 246, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(class: any AnyObject.Type, reuseIdentifier: String)", - "key.typeusr" : "$syXlXp5class_SS15reuseIdentifiertD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C20cellRegistrationInfoyXlXp5class_SS15reuseIdentifiertvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func dequeueAndPrepareCollectionViewCell(in collectionView: UICollectionView<\/Type>, for indexPath: IndexPath<\/Type>, environment: ListEnvironment<\/Type>) -> AnyItemCell<\/Type><\/Declaration>", - "key.bodylength" : 602, - "key.bodyoffset" : 8141, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> dequeueAndPrepareCollectionViewCell<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyItemCell<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 810, - "key.line" : 248, - "key.modulename" : "ListableUI", - "key.name" : "dequeueAndPrepareCollectionViewCell(in:for:environment:)", - "key.namelength" : 177, - "key.nameoffset" : 7939, - "key.offset" : 7934, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP35dequeueAndPrepareCollectionViewCell2in3for11environmentAA0ceL0_pSo012UICollectionK0C_10Foundation9IndexPathVAA15ListEnvironmentVtF" - } - ], - "key.parsed_declaration" : "func dequeueAndPrepareCollectionViewCell(\n in collectionView : UICollectionView,\n for indexPath : IndexPath,\n environment : ListEnvironment\n) -> AnyItemCell", - "key.parsed_scope.end" : 270, - "key.parsed_scope.start" : 248, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let anyCell: UICollectionViewCell<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> anyCell<\/decl.name>: UICollectionViewCell<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 128, - "key.line" : 254, - "key.modulename" : "ListableUI", - "key.name" : "anyCell", - "key.namelength" : 7, - "key.nameoffset" : 8158, - "key.offset" : 8154, - "key.parsed_declaration" : "let anyCell = collectionView.dequeueReusableCell(withReuseIdentifier: self.cellRegistrationInfo.reuseIdentifier, for: indexPath)", - "key.parsed_scope.end" : 254, - "key.parsed_scope.start" : 254, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionViewCell", - "key.typeusr" : "$sSo20UICollectionViewCellCD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C35dequeueAndPrepareCollectionViewCell2in3for11environmentAA03AnyeK0_pSo012UICollectionJ0C_10Foundation9IndexPathVAA15ListEnvironmentVtF03anyK0L_So0pjK0Cvp" - }, - { - "key.annotated_decl" : "let cell: ItemCell<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: ItemCell<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 40, - "key.line" : 256, - "key.modulename" : "ListableUI", - "key.name" : "cell", - "key.namelength" : 4, - "key.nameoffset" : 8312, - "key.offset" : 8308, - "key.parsed_declaration" : "let cell = anyCell as! ItemCell", - "key.parsed_scope.end" : 256, - "key.parsed_scope.start" : 256, - "key.reusingastcontext" : false, - "key.typename" : "ItemCell", - "key.typeusr" : "$s10ListableUI8ItemCellCyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C35dequeueAndPrepareCollectionViewCell2in3for11environmentAA03AnyeK0_pSo012UICollectionJ0C_10Foundation9IndexPathVAA15ListEnvironmentVtF4cellL_AA0eK0CyxGvp" - }, - { - "key.annotated_decl" : "let itemState: ItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemState<\/decl.name>: ItemState<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 69, - "key.line" : 260, - "key.modulename" : "ListableUI", - "key.name" : "itemState", - "key.namelength" : 9, - "key.nameoffset" : 8434, - "key.offset" : 8430, - "key.parsed_declaration" : "let itemState = ListableUI.ItemState(cell: cell, isReordering: false)", - "key.parsed_scope.end" : 260, - "key.parsed_scope.start" : 260, - "key.reusingastcontext" : false, - "key.typename" : "ItemState", - "key.typeusr" : "$s10ListableUI9ItemStateVD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C35dequeueAndPrepareCollectionViewCell2in3for11environmentAA03AnyeK0_pSo012UICollectionJ0C_10Foundation9IndexPathVAA15ListEnvironmentVtF04itemD0L_AaDVvp" - } - ], - "key.typename" : " (PresentationState.ItemState) -> (UICollectionView, IndexPath, ListEnvironment) -> any AnyItemCell", - "key.typeusr" : "$s2in3for11environment10ListableUI11AnyItemCell_pSo16UICollectionViewC_10Foundation9IndexPathVAD15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C35dequeueAndPrepareCollectionViewCell2in3for11environmentAA03AnyeK0_pSo012UICollectionJ0C_10Foundation9IndexPathVAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func applyTo(cell anyCell: UICollectionViewCell<\/Type>, itemState: ListableUI.ItemState<\/Type>, reason: ApplyReason<\/Type>, environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.bodylength" : 3501, - "key.bodyoffset" : 8958, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyTo<\/decl.name>(cell<\/decl.var.parameter.argument_label> anyCell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, itemState<\/decl.var.parameter.argument_label>: ListableUI.ItemState<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3698, - "key.line" : 272, - "key.modulename" : "ListableUI", - "key.name" : "applyTo(cell:itemState:reason:environment:)", - "key.namelength" : 189, - "key.nameoffset" : 8767, - "key.offset" : 8762, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP7applyTo4cell04itemF06reason11environmentySo20UICollectionViewCellC_AA0eF0VAA11ApplyReasonOAA15ListEnvironmentVtF" - } - ], - "key.parsed_declaration" : "func applyTo(\n cell anyCell : UICollectionViewCell,\n itemState : ListableUI.ItemState,\n reason : ApplyReason,\n environment : ListEnvironment\n)", - "key.parsed_scope.end" : 357, - "key.parsed_scope.start" : 272, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let cell: ItemCell<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: ItemCell<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 40, - "key.line" : 278, - "key.modulename" : "ListableUI", - "key.name" : "cell", - "key.namelength" : 4, - "key.nameoffset" : 8975, - "key.offset" : 8971, - "key.parsed_declaration" : "let cell = anyCell as! ItemCell", - "key.parsed_scope.end" : 278, - "key.parsed_scope.start" : 278, - "key.reusingastcontext" : false, - "key.typename" : "ItemCell", - "key.typeusr" : "$s10ListableUI8ItemCellCyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C7applyTo4cell04itemD06reason11environmentySo20UICollectionViewCellC_AaDVAA11ApplyReasonOAA15ListEnvironmentVtFAGL_AA0eN0CyxGvp" - }, - { - "key.annotated_decl" : "let applyInfo: ApplyItemContentInfo<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> applyInfo<\/decl.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 1910, - "key.line" : 280, - "key.modulename" : "ListableUI", - "key.name" : "applyInfo", - "key.namelength" : 9, - "key.nameoffset" : 9041, - "key.offset" : 9037, - "key.parsed_declaration" : "let applyInfo = ApplyItemContentInfo(\n state: itemState,\n position: self.itemPosition,\n reorderingActions: self.reorderingActions,\n showLeadingSwipeActions: { [weak cell, weak self] in\n guard let cell, let self else { return }\n \n guard let swipeActions = self.model.leadingSwipeActions else {\n assertionFailure(\"Cannot showLeadingSwipeActions for `\\(self.model.identifier)`, as no swipe actions have been provided.\")\n return\n }\n \n guard swipeActions.actions.isEmpty == false else {\n assertionFailure(\"Cannot showLeadingSwipeActions for `\\(self.model.identifier)`, as no swipe actions have been provided.\")\n return\n }\n \n cell.openLeadingSwipeActions()\n },\n showTrailingSwipeActions: { [weak cell, weak self] in\n guard let cell, let self else { return }\n \n guard let swipeActions = self.model.trailingSwipeActions else {\n assertionFailure(\"Cannot showTrailingSwipeActions for `\\(self.model.identifier)`, as no swipe actions have been provided.\")\n return\n }\n \n guard swipeActions.actions.isEmpty == false else {\n assertionFailure(\"Cannot showTrailingSwipeActions for `\\(self.model.identifier)`, as no swipe actions have been provided.\")\n return\n }\n\n cell.openTrailingSwipeActions()\n },\n isReorderable: self.model.reordering != nil,\n environment: environment\n)", - "key.parsed_scope.end" : 280, - "key.parsed_scope.start" : 280, - "key.reusingastcontext" : false, - "key.typename" : "ApplyItemContentInfo", - "key.typeusr" : "$s10ListableUI20ApplyItemContentInfoVD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C7applyTo4cell04itemD06reason11environmentySo20UICollectionViewCellC_AaDVAA11ApplyReasonOAA15ListEnvironmentVtF0F4InfoL_AA0oe7ContentS0Vvp" - } - ], - "key.typename" : " (PresentationState.ItemState) -> (UICollectionViewCell, ItemState, ApplyReason, ListEnvironment) -> ()", - "key.typeusr" : "$s4cell9itemState6reason11environmentySo20UICollectionViewCellC_10ListableUI04ItemC0VAG11ApplyReasonOAG15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C7applyTo4cell04itemD06reason11environmentySo20UICollectionViewCellC_AaDVAA11ApplyReasonOAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func applyToVisibleCell(with environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.bodylength" : 351, - "key.bodyoffset" : 12547, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyToVisibleCell<\/decl.name>(with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 421, - "key.line" : 359, - "key.modulename" : "ListableUI", - "key.name" : "applyToVisibleCell(with:)", - "key.namelength" : 54, - "key.nameoffset" : 12483, - "key.offset" : 12478, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP18applyToVisibleCell4withyAA15ListEnvironmentV_tF" - } - ], - "key.parsed_declaration" : "func applyToVisibleCell(with environment : ListEnvironment)", - "key.parsed_scope.end" : 371, - "key.parsed_scope.start" : 359, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState) -> (ListEnvironment) -> ()", - "key.typeusr" : "$s4withy10ListableUI15ListEnvironmentV_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C18applyToVisibleCell4withyAA15ListEnvironmentV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func set(new: AnyItem<\/Type>, reason: PresentationState<\/Type>.ItemUpdateReason<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.bodylength" : 1782, - "key.bodyoffset" : 13119, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(new<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: PresentationState<\/ref.class>.ItemUpdateReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1985, - "key.line" : 373, - "key.modulename" : "ListableUI", - "key.name" : "set(new:reason:updateCallbacks:environment:)", - "key.namelength" : 187, - "key.nameoffset" : 12922, - "key.offset" : 12917, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP3set3new6reason15updateCallbacks11environmentyAA0cE0_p_AA0dF0C0E12UpdateReasonOAA0mK0CAA15ListEnvironmentVtF" - } - ], - "key.parsed_declaration" : "func set(\n new : AnyItem,\n reason : PresentationState.ItemUpdateReason,\n updateCallbacks : UpdateCallbacks,\n environment : ListEnvironment\n)", - "key.parsed_scope.end" : 425, - "key.parsed_scope.start" : 373, - "key.related_decls" : [ - { - "key.annotated_decl" : "set(isSelected:performCallbacks:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let old: Item<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 20, - "key.line" : 380, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 13136, - "key.offset" : 13132, - "key.parsed_declaration" : "let old = self.model", - "key.parsed_scope.end" : 380, - "key.parsed_scope.start" : 380, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C3set3new6reason15updateCallbacks11environmentyAA03AnyE0_p_AC0E12UpdateReasonOAA0mJ0CAA15ListEnvironmentVtF3oldL_AA0E0VyxGvp" - }, - { - "key.annotated_decl" : "let new: Item<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 31, - "key.line" : 381, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 13169, - "key.offset" : 13165, - "key.parsed_declaration" : "let new = new as! Item", - "key.parsed_scope.end" : 381, - "key.parsed_scope.start" : 381, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C3set3new6reason15updateCallbacks11environmentyAA03AnyE0_p_AC0E12UpdateReasonOAA0mJ0CAA15ListEnvironmentVtFAGL0_AA0E0VyxGvp" - }, - { - "key.annotated_decl" : "let wantsReapplication: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wantsReapplication<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 192, - "key.line" : 415, - "key.modulename" : "ListableUI", - "key.name" : "wantsReapplication", - "key.namelength" : 18, - "key.nameoffset" : 14509, - "key.offset" : 14505, - "key.parsed_declaration" : "let wantsReapplication = self.model.reappliesToVisibleView.shouldReapply(\n comparing: old.reappliesToVisibleView,\n isEquivalent: reason == .noChange\n)", - "key.parsed_scope.end" : 415, - "key.parsed_scope.start" : 415, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C3set3new6reason15updateCallbacks11environmentyAA03AnyE0_p_AC0E12UpdateReasonOAA0mJ0CAA15ListEnvironmentVtF18wantsReapplicationL_Sbvp" - } - ], - "key.typename" : " (PresentationState.ItemState) -> (any AnyItem, PresentationState.ItemUpdateReason, UpdateCallbacks, ListEnvironment) -> ()", - "key.typeusr" : "$s3new6reason15updateCallbacks11environmenty10ListableUI7AnyItem_p_AE17PresentationStateC0I12UpdateReasonOAE0lD0CAE15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C3set3new6reason15updateCallbacks11environmentyAA03AnyE0_p_AC0E12UpdateReasonOAA0mJ0CAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func willDisplay(cell anyCell: UICollectionViewCell<\/Type>, in collectionView: UICollectionView<\/Type>, for indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 127, - "key.bodyoffset" : 15048, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> willDisplay<\/decl.name>(cell<\/decl.var.parameter.argument_label> anyCell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 256, - "key.line" : 427, - "key.modulename" : "ListableUI", - "key.name" : "willDisplay(cell:in:for:)", - "key.namelength" : 113, - "key.nameoffset" : 14925, - "key.offset" : 14920, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP11willDisplay4cell2in3forySo20UICollectionViewCellC_So0lM0C10Foundation9IndexPathVtF" - } - ], - "key.parsed_declaration" : "func willDisplay(cell anyCell : UICollectionViewCell, in collectionView : UICollectionView, for indexPath : IndexPath)", - "key.parsed_scope.end" : 432, - "key.parsed_scope.start" : 427, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let cell: ItemCell<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: ItemCell<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 42, - "key.line" : 429, - "key.modulename" : "ListableUI", - "key.name" : "cell", - "key.namelength" : 4, - "key.nameoffset" : 15065, - "key.offset" : 15061, - "key.parsed_declaration" : "let cell = (anyCell as! ItemCell)", - "key.parsed_scope.end" : 429, - "key.parsed_scope.start" : 429, - "key.reusingastcontext" : false, - "key.typename" : "ItemCell", - "key.typeusr" : "$s10ListableUI8ItemCellCyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C11willDisplay4cell2in3forySo20UICollectionViewCellC_So0kL0C10Foundation9IndexPathVtFAGL_AA0eM0CyxGvp" - } - ], - "key.typename" : " (PresentationState.ItemState) -> (UICollectionViewCell, UICollectionView, IndexPath) -> ()", - "key.typeusr" : "$s4cell2in3forySo20UICollectionViewCellC_So0dE0C10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C11willDisplay4cell2in3forySo20UICollectionViewCellC_So0kL0C10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func didEndDisplay()<\/Declaration>", - "key.bodylength" : 58, - "key.bodyoffset" : 15224, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> didEndDisplay<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 89, - "key.line" : 434, - "key.modulename" : "ListableUI", - "key.name" : "didEndDisplay()", - "key.namelength" : 15, - "key.nameoffset" : 15199, - "key.offset" : 15194, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP13didEndDisplayyyF" - } - ], - "key.parsed_declaration" : "func didEndDisplay()", - "key.parsed_scope.end" : 437, - "key.parsed_scope.start" : 434, - "key.reusingastcontext" : false, - "key.typename" : " (PresentationState.ItemState) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C13didEndDisplayyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func wasRemoved(updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>", - "key.bodylength" : 237, - "key.bodyoffset" : 15361, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 298, - "key.line" : 439, - "key.modulename" : "ListableUI", - "key.name" : "wasRemoved(updateCallbacks:)", - "key.namelength" : 45, - "key.nameoffset" : 15306, - "key.offset" : 15301, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP10wasRemoved15updateCallbacksyAA06UpdateJ0C_tF" - } - ], - "key.parsed_declaration" : "func wasRemoved(updateCallbacks : UpdateCallbacks)", - "key.parsed_scope.end" : 445, - "key.parsed_scope.start" : 439, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState) -> (UpdateCallbacks) -> ()", - "key.typeusr" : "$s15updateCallbacksy10ListableUI06UpdateB0C_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C10wasRemoved15updateCallbacksyAA06UpdateI0C_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isSelected: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 51, - "key.bodyoffset" : 15639, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 74, - "key.line" : 447, - "key.modulename" : "ListableUI", - "key.name" : "isSelected", - "key.namelength" : 10, - "key.nameoffset" : 15621, - "key.offset" : 15617, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP10isSelectedSbvp" - } - ], - "key.parsed_declaration" : "var isSelected: Bool", - "key.parsed_scope.end" : 449, - "key.parsed_scope.start" : 447, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C10isSelectedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func set(isSelected: Bool<\/Type>, performCallbacks: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 1473, - "key.bodyoffset" : 15777, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(isSelected<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, performCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1534, - "key.line" : 451, - "key.modulename" : "ListableUI", - "key.name" : "set(isSelected:performCallbacks:)", - "key.namelength" : 45, - "key.nameoffset" : 15722, - "key.offset" : 15717, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP3set10isSelected16performCallbacksySb_SbtF" - } - ], - "key.parsed_declaration" : "func set(isSelected: Bool, performCallbacks: Bool)", - "key.parsed_scope.end" : 479, - "key.parsed_scope.start" : 451, - "key.related_decls" : [ - { - "key.annotated_decl" : "set(new:reason:updateCallbacks:environment:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState) -> (Bool, Bool) -> ()", - "key.typeusr" : "$s10isSelected16performCallbacksySb_SbtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C3set10isSelected16performCallbacksySb_SbtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func updateCoordinatorWithStateChange(old: State<\/Type>, new: State<\/Type>)<\/Declaration>", - "key.bodylength" : 629, - "key.bodyoffset" : 17342, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Schedule the caller-provided callbacks to happen after one runloop. Why?\n\nBecause this method is called from within `UICollectionViewDelegate` callbacks,\nThis delay gives the `UICollectionView` time to schedule any necessary animations\nfor changes to the highlight and selection state – otherwise, these animations get\nstuck behind the call to the `onSelect` or `onDeselect` blocks, which creates the appearance\nof a laggy UI if these callbacks are slow.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateCoordinatorWithStateChange<\/decl.name>(old<\/decl.var.parameter.argument_label>: State<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: State<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 703, - "key.line" : 481, - "key.modulename" : "ListableUI", - "key.name" : "updateCoordinatorWithStateChange(old:new:)", - "key.namelength" : 58, - "key.nameoffset" : 17274, - "key.offset" : 17269, - "key.parsed_declaration" : "func updateCoordinatorWithStateChange(old : State, new : State)", - "key.parsed_scope.end" : 502, - "key.parsed_scope.start" : 481, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState) -> (PresentationState.ItemState.State, PresentationState.ItemState.State) -> ()", - "key.typeusr" : "$s3old3newy10ListableUI17PresentationStateC04ItemF0C0F0Vy_x_G_AJtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C021updateCoordinatorWithD6Change3old3newyAE0D0Vy_x_G_AKtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var cachedSizes: [SizeKey<\/Type> : CGSize<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 17990 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> cachedSizes<\/decl.name>: [SizeKey<\/ref.struct> : CGSize<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 504, - "key.modulename" : "ListableUI", - "key.name" : "cachedSizes", - "key.namelength" : 11, - "key.nameoffset" : 18002, - "key.offset" : 17998, - "key.parsed_declaration" : "private var cachedSizes : [SizeKey:CGSize] = [:]", - "key.parsed_scope.end" : 504, - "key.parsed_scope.start" : 504, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[PresentationState.SizeKey : CGSize]", - "key.typeusr" : "$sSDy10ListableUI17PresentationStateC7SizeKeyVSo6CGSizeVGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C11cachedSizes33_076717420F7F254B8CDE903FAA9017F4LLSDyAC7SizeKeyVSo6CGSizeVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func resetCachedSizes()<\/Declaration>", - "key.bodylength" : 50, - "key.bodyoffset" : 18089, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetCachedSizes<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 84, - "key.line" : 506, - "key.modulename" : "ListableUI", - "key.name" : "resetCachedSizes()", - "key.namelength" : 18, - "key.nameoffset" : 18061, - "key.offset" : 18056, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP16resetCachedSizesyyF" - } - ], - "key.parsed_declaration" : "func resetCachedSizes()", - "key.parsed_scope.end" : 509, - "key.parsed_scope.start" : 506, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C16resetCachedSizesyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func size(for info: Sizing<\/Type>.MeasureInfo<\/Type>, cache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.bodylength" : 1551, - "key.bodyoffset" : 18322, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, cache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1716, - "key.line" : 511, - "key.modulename" : "ListableUI", - "key.name" : "size(for:cache:environment:)", - "key.namelength" : 139, - "key.nameoffset" : 18163, - "key.offset" : 18158, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP4size3for5cache11environmentSo6CGSizeVAA6SizingO11MeasureInfoV_AA17ReusableViewCacheCAA15ListEnvironmentVtF" - } - ], - "key.parsed_declaration" : "func size(\n for info : Sizing.MeasureInfo,\n cache : ReusableViewCache,\n environment : ListEnvironment\n) -> CGSize", - "key.parsed_scope.end" : 556, - "key.parsed_scope.start" : 511, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let key: PresentationState<\/Type>.SizeKey<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> key<\/decl.name>: PresentationState<\/ref.class>.SizeKey<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 225, - "key.line" : 521, - "key.modulename" : "ListableUI", - "key.name" : "key", - "key.namelength" : 3, - "key.nameoffset" : 18457, - "key.offset" : 18453, - "key.parsed_declaration" : "let key = SizeKey(\n width: info.sizeConstraint.width,\n height: info.sizeConstraint.height,\n layoutDirection: info.direction,\n sizing: self.model.sizing\n)", - "key.parsed_scope.end" : 521, - "key.parsed_scope.start" : 521, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.SizeKey", - "key.typeusr" : "$s10ListableUI17PresentationStateC7SizeKeyVD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4size3for5cache11environmentSo6CGSizeVAA6SizingO11MeasureInfoV_AA17ReusableViewCacheCAA15ListEnvironmentVtF3keyL_AC7SizeKeyVvp" - } - ], - "key.typename" : " (PresentationState.ItemState) -> (Sizing.MeasureInfo, ReusableViewCache, ListEnvironment) -> CGSize", - "key.typeusr" : "$s3for5cache11environmentSo6CGSizeV10ListableUI6SizingO11MeasureInfoV_AF17ReusableViewCacheCAF15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C4size3for5cache11environmentSo6CGSizeVAA6SizingO11MeasureInfoV_AA17ReusableViewCacheCAA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func beginReorder(from originalIndexPath: IndexPath<\/Type>, with environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.bodylength" : 346, - "key.bodyoffset" : 20149, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Called when the reordering event begins, to update the current visible cell\nWith any reorder-specific appearance options (like a drop shadow).", - "key.doc.column" : 14, - "key.doc.comment" : "Called when the reordering event begins, to update the current visible cell\nWith any reorder-specific appearance options (like a drop shadow).", - "key.doc.declaration" : "func beginReorder(from originalIndexPath: IndexPath, with environment: ListEnvironment)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.doc.full_as_xml" : "beginReorder(from:with:)<\/Name>s:10ListableUI17PresentationStateC04ItemD0C12beginReorder4from4withy10Foundation9IndexPathV_AA15ListEnvironmentVtF<\/USR>func beginReorder(from originalIndexPath: IndexPath, with environment: ListEnvironment)<\/Declaration>Called when the reordering event begins, to update the current visible cell With any reorder-specific appearance options (like a drop shadow).<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 560, - "key.doc.name" : "beginReorder(from:with:)", - "key.doc.type" : "Function", - "key.doclength" : 159, - "key.docoffset" : 19892, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> beginReorder<\/decl.name>(from<\/decl.var.parameter.argument_label> originalIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 437, - "key.line" : 560, - "key.modulename" : "ListableUI", - "key.name" : "beginReorder(from:with:)", - "key.namelength" : 83, - "key.nameoffset" : 20064, - "key.offset" : 20059, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP12beginReorder4from4withy10Foundation9IndexPathV_AA15ListEnvironmentVtF" - } - ], - "key.parsed_declaration" : "func beginReorder(from originalIndexPath : IndexPath, with environment: ListEnvironment)", - "key.parsed_scope.end" : 573, - "key.parsed_scope.start" : 560, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState) -> (IndexPath, ListEnvironment) -> ()", - "key.typeusr" : "$s4from4withy10Foundation9IndexPathV_10ListableUI15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C12beginReorder4from4withy10Foundation9IndexPathV_AA15ListEnvironmentVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func endReorder(with environment: ListEnvironment<\/Type>, result: ReorderingActions<\/Type>.Result<\/Type>)<\/Declaration>", - "key.bodylength" : 296, - "key.bodyoffset" : 20791, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Called when the reordering event finishes or is cancelled, to update the\ncurrent visible cell to remove any reorder-specific appearance options (like a drop shadow).", - "key.doc.column" : 14, - "key.doc.comment" : "Called when the reordering event finishes or is cancelled, to update the\ncurrent visible cell to remove any reorder-specific appearance options (like a drop shadow).", - "key.doc.declaration" : "func endReorder(with environment: ListEnvironment, result: ReorderingActions.Result)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.doc.full_as_xml" : "endReorder(with:result:)<\/Name>s:10ListableUI17PresentationStateC04ItemD0C10endReorder4with6resultyAA15ListEnvironmentV_AA17ReorderingActionsC6ResultOtF<\/USR>func endReorder(with environment: ListEnvironment, result: ReorderingActions.Result)<\/Declaration>Called when the reordering event finishes or is cancelled, to update the current visible cell to remove any reorder-specific appearance options (like a drop shadow).<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 577, - "key.doc.name" : "endReorder(with:result:)", - "key.doc.type" : "Function", - "key.doclength" : 182, - "key.docoffset" : 20514, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> endReorder<\/decl.name>(with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, result<\/decl.var.parameter.argument_label>: ReorderingActions<\/ref.class>.Result<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 384, - "key.line" : 577, - "key.modulename" : "ListableUI", - "key.name" : "endReorder(with:result:)", - "key.namelength" : 80, - "key.nameoffset" : 20709, - "key.offset" : 20704, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP10endReorder4with6resultyAA15ListEnvironmentV_AA17ReorderingActionsC6ResultOtF" - } - ], - "key.parsed_declaration" : "func endReorder(with environment: ListEnvironment, result : ReorderingActions.Result)", - "key.parsed_scope.end" : 588, - "key.parsed_scope.start" : 577, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState) -> (ListEnvironment, ReorderingActions.Result) -> ()", - "key.typeusr" : "$s4with6resulty10ListableUI15ListEnvironmentV_AC17ReorderingActionsC6ResultOtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C10endReorder4with6resultyAA15ListEnvironmentV_AA17ReorderingActionsC6ResultOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func performDidReorder(with result: ItemReordering<\/Type>.Result<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 209, - "key.bodyoffset" : 21310, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when a reorder completes successfully to notify\nthe consumer that the re-order event occurred.", - "key.doc.column" : 14, - "key.doc.comment" : "Invoked when a reorder completes successfully to notify\nthe consumer that the re-order event occurred.", - "key.doc.declaration" : "func performDidReorder(with result: ItemReordering.Result) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.doc.full_as_xml" : "performDidReorder(with:)<\/Name>s:10ListableUI17PresentationStateC04ItemD0C17performDidReorder4withSbAA0E10ReorderingV6ResultV_tF<\/USR>func performDidReorder(with result: ItemReordering.Result) -> Bool<\/Declaration>Invoked when a reorder completes successfully to notify the consumer that the re-order event occurred.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 592, - "key.doc.name" : "performDidReorder(with:)", - "key.doc.type" : "Function", - "key.doclength" : 119, - "key.docoffset" : 21106, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> performDidReorder<\/decl.name>(with<\/decl.var.parameter.argument_label> result<\/decl.var.parameter.name>: ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 287, - "key.line" : 592, - "key.modulename" : "ListableUI", - "key.name" : "performDidReorder(with:)", - "key.namelength" : 54, - "key.nameoffset" : 21238, - "key.offset" : 21233, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP17performDidReorder4withSbAA0E10ReorderingV6ResultV_tF" - } - ], - "key.parsed_declaration" : "func performDidReorder(with result : ItemReordering.Result) -> Bool", - "key.parsed_scope.end" : 601, - "key.parsed_scope.start" : 592, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState) -> (ItemReordering.Result) -> Bool", - "key.typeusr" : "$s4withSb10ListableUI14ItemReorderingV6ResultV_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C17performDidReorder4withSbAA0E10ReorderingV6ResultV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isReordering: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 56, - "key.bodyoffset" : 21563, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isReordering<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 82, - "key.line" : 603, - "key.modulename" : "ListableUI", - "key.name" : "isReordering", - "key.namelength" : 12, - "key.nameoffset" : 21542, - "key.offset" : 21538, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP12isReorderingSbvp" - } - ], - "key.parsed_declaration" : "var isReordering : Bool", - "key.parsed_scope.end" : 605, - "key.parsed_scope.start" : 603, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C12isReorderingSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var activeReorderEventInfo: ActiveReorderEventInfo<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 21638 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> activeReorderEventInfo<\/decl.name>: ActiveReorderEventInfo<\/ref.struct>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 58, - "key.line" : 607, - "key.modulename" : "ListableUI", - "key.name" : "activeReorderEventInfo", - "key.namelength" : 22, - "key.nameoffset" : 21655, - "key.offset" : 21651, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24AnyPresentationItemStateP22activeReorderEventInfoAA0dF0C06ActivehiJ0VSgvp" - } - ], - "key.parsed_declaration" : "private(set) var activeReorderEventInfo : ActiveReorderEventInfo? = nil", - "key.parsed_scope.end" : 607, - "key.parsed_scope.start" : 607, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "PresentationState.ActiveReorderEventInfo?", - "key.typeusr" : "$s10ListableUI17PresentationStateC22ActiveReorderEventInfoVSgD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C22activeReorderEventInfoAC06ActiveghI0VSgvp" - } - ], - "key.typename" : "PresentationState.ItemState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0Cy_xGmD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C" - } - ], - "key.typename" : "PresentationState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateCmD", - "key.usr" : "s:10ListableUI17PresentationStateC" - }, - { - "key.annotated_decl" : "final class ItemState<Content> : AnyPresentationItemState<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.bodylength" : 1039, - "key.bodyoffset" : 21759, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemState<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyPresentationItemState<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1079, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "PresentationState.ItemState", - "key.namelength" : 27, - "key.nameoffset" : 21730, - "key.offset" : 21720, - "key.parsed_declaration" : "extension PresentationState.ItemState", - "key.parsed_scope.end" : 649, - "key.parsed_scope.start" : 612, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "final class Storage<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 21764 - } - ], - "key.bodylength" : 881, - "key.bodyoffset" : 21785, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Storage<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 897, - "key.line" : 614, - "key.modulename" : "ListableUI", - "key.name" : "Storage", - "key.namelength" : 7, - "key.nameoffset" : 21776, - "key.offset" : 21770, - "key.parsed_declaration" : "final class Storage", - "key.parsed_scope.end" : 642, - "key.parsed_scope.start" : 614, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var didSetState: (State<\/Type>, State<\/Type>) -> ()<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> didSetState<\/decl.name>: (State<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, State<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 616, - "key.modulename" : "ListableUI", - "key.name" : "didSetState", - "key.namelength" : 11, - "key.nameoffset" : 21807, - "key.offset" : 21803, - "key.parsed_declaration" : "var didSetState : (State, State) -> () = { _, _ in }", - "key.parsed_scope.end" : 616, - "key.parsed_scope.start" : 616, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(PresentationState.ItemState.State, PresentationState.ItemState.State) -> ()", - "key.typeusr" : "$syy10ListableUI17PresentationStateC04ItemD0C0D0Vy_x_G_AHtcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C7StorageC06didSetD0yyAE0D0Vy_x_G_AKtcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var model: Item<\/Type><Content<\/Type>> { get set }<\/Declaration>", - "key.bodylength" : 299, - "key.bodyoffset" : 21900, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> model<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 327, - "key.line" : 618, - "key.modulename" : "ListableUI", - "key.name" : "model", - "key.namelength" : 5, - "key.nameoffset" : 21877, - "key.offset" : 21873, - "key.parsed_declaration" : "var model : Item", - "key.parsed_scope.end" : 624, - "key.parsed_scope.start" : 618, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C7StorageC5modelAA0E0VyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var state: State<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 213, - "key.bodyoffset" : 22237, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> state<\/decl.name>: State<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 233, - "key.line" : 626, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 22222, - "key.offset" : 22218, - "key.parsed_declaration" : "var state : State", - "key.parsed_scope.end" : 634, - "key.parsed_scope.start" : 626, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "PresentationState.ItemState.State", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0C0D0Vy_x_GD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C7StorageC5stateAE0D0Vy_x_Gvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(_ model: Item<\/Type><Content<\/Type>>)<\/Declaration>", - "key.bodylength" : 152, - "key.bodyoffset" : 22508, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 192, - "key.line" : 636, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 29, - "key.nameoffset" : 22469, - "key.offset" : 22469, - "key.parsed_declaration" : "init(_ model : Item)", - "key.parsed_scope.end" : 641, - "key.parsed_scope.start" : 636, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (PresentationState.ItemState.Storage.Type) -> (Item) -> PresentationState.ItemState.Storage", - "key.typeusr" : "$sy10ListableUI17PresentationStateC04ItemD0C7StorageCy_x_GAA0E0VyxGcD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C7StorageCyAGy_x_GAA0E0VyxGcfc" - } - ], - "key.typename" : "PresentationState.ItemState.Storage.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0C7StorageCy_x_GmD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C7StorageC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal struct State : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 22677 - } - ], - "key.bodylength" : 80, - "key.bodyoffset" : 22716, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 22701 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> State<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 111, - "key.line" : 644, - "key.modulename" : "ListableUI", - "key.name" : "State", - "key.namelength" : 5, - "key.nameoffset" : 22693, - "key.offset" : 22686, - "key.parsed_declaration" : "internal struct State : Equatable", - "key.parsed_scope.end" : 648, - "key.parsed_scope.start" : 644, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isSelected: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 646, - "key.modulename" : "ListableUI", - "key.name" : "isSelected", - "key.namelength" : 10, - "key.nameoffset" : 22729, - "key.offset" : 22725, - "key.parsed_declaration" : "var isSelected : Bool", - "key.parsed_scope.end" : 646, - "key.parsed_scope.start" : 646, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C0D0V10isSelectedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var visibleCell: ItemCell<\/Type><Content<\/Type>>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.ItemState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> visibleCell<\/decl.name>: ItemCell<\/ref.class><Content<\/ref.generic_type_param>>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 647, - "key.modulename" : "ListableUI", - "key.name" : "visibleCell", - "key.namelength" : 11, - "key.nameoffset" : 22759, - "key.offset" : 22755, - "key.parsed_declaration" : "var visibleCell : ItemCell?", - "key.parsed_scope.end" : 647, - "key.parsed_scope.start" : 647, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ItemCell?", - "key.typeusr" : "$s10ListableUI8ItemCellCyxGSgD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C0D0V11visibleCellAA0eG0CyxGSgvp" - } - ], - "key.typename" : "PresentationState.ItemState.State.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0C0D0Vy_x_GmD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C0D0V" - } - ], - "key.typename" : "PresentationState.ItemState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC04ItemD0Cy_xGmD", - "key.usr" : "s:10ListableUI17PresentationStateC04ItemD0C" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.RefreshControl.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1423, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "final class PresentationState<\/Declaration>", - "key.bodylength" : 1248, - "key.bodyoffset" : 173, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).", - "key.doc.column" : 13, - "key.doc.declaration" : "final class PresentationState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "PresentationState", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1278, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "PresentationState", - "key.namelength" : 17, - "key.nameoffset" : 154, - "key.offset" : 144, - "key.parsed_declaration" : "extension PresentationState", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal final class RefreshControlState<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 187 - }, - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 178 - } - ], - "key.bodylength" : 1195, - "key.bodyoffset" : 224, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.RefreshControl.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> RefreshControlState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1227, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "RefreshControlState", - "key.namelength" : 19, - "key.nameoffset" : 199, - "key.offset" : 193, - "key.parsed_declaration" : "internal final class RefreshControlState", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var model: RefreshControl<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 233 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> model<\/decl.name>: RefreshControl<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "model", - "key.namelength" : 5, - "key.nameoffset" : 244, - "key.offset" : 240, - "key.parsed_declaration" : "public var model : RefreshControl", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "RefreshControl", - "key.typeusr" : "$s10ListableUI14RefreshControlVD", - "key.usr" : "s:10ListableUI17PresentationStateC014RefreshControlD0C5modelAA0eF0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var view: UIRefreshControl<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 275 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> view<\/decl.name>: UIRefreshControl<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 286, - "key.offset" : 282, - "key.parsed_declaration" : "public var view : UIRefreshControl", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIRefreshControl", - "key.typeusr" : "$sSo16UIRefreshControlCD", - "key.usr" : "s:10ListableUI17PresentationStateC014RefreshControlD0C4viewSo09UIRefreshF0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ model: RefreshControl<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 327 - } - ], - "key.bodylength" : 196, - "key.bodyoffset" : 374, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: RefreshControl<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 237, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 30, - "key.nameoffset" : 334, - "key.offset" : 334, - "key.parsed_declaration" : "public init(_ model : RefreshControl)", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.RefreshControlState.Type) -> (RefreshControl) -> PresentationState.RefreshControlState", - "key.typeusr" : "$sy10ListableUI17PresentationStateC014RefreshControlD0CAA0eF0VcD", - "key.usr" : "s:10ListableUI17PresentationStateC014RefreshControlD0CyAeA0eF0Vcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func update(with control: RefreshControl<\/Type>, color: UIColor<\/Type>?)<\/Declaration>", - "key.bodylength" : 647, - "key.bodyoffset" : 659, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.RefreshControl.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> control<\/decl.var.parameter.name>: RefreshControl<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, color<\/decl.var.parameter.argument_label>: UIColor<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 718, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "update(with:color:)", - "key.namelength" : 55, - "key.nameoffset" : 594, - "key.offset" : 589, - "key.parsed_declaration" : "func update(with control : RefreshControl, color : UIColor?)", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.RefreshControlState) -> (RefreshControl, UIColor?) -> ()", - "key.typeusr" : "$s4with5colory10ListableUI14RefreshControlV_So7UIColorCSgtcD", - "key.usr" : "s:10ListableUI17PresentationStateC014RefreshControlD0C6update4with5coloryAA0eF0V_So7UIColorCSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@objc func refreshControlChanged()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 1325 - } - ], - "key.bodylength" : 44, - "key.bodyoffset" : 1369, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.RefreshControl.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> refreshControlChanged<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 83, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "refreshControlChanged()", - "key.namelength" : 23, - "key.nameoffset" : 1336, - "key.offset" : 1331, - "key.parsed_declaration" : "@objc func refreshControlChanged()", - "key.parsed_scope.end" : 52, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.RefreshControlState) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17PresentationStateC014RefreshControlD0C07refreshF7ChangedyyF" - } - ], - "key.typename" : "PresentationState.RefreshControlState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC014RefreshControlD0CmD", - "key.usr" : "s:10ListableUI17PresentationStateC014RefreshControlD0C" - } - ], - "key.typename" : "PresentationState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateCmD", - "key.usr" : "s:10ListableUI17PresentationStateC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 7610, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "final class PresentationState<\/Declaration>", - "key.bodylength" : 7451, - "key.bodyoffset" : 157, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).", - "key.doc.column" : 13, - "key.doc.declaration" : "final class PresentationState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "PresentationState", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 7481, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "PresentationState", - "key.namelength" : 17, - "key.nameoffset" : 138, - "key.offset" : 128, - "key.parsed_declaration" : "extension PresentationState", - "key.parsed_scope.end" : 211, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "final class SectionState<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 162 - } - ], - "key.bodylength" : 7414, - "key.bodyoffset" : 192, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SectionState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 7439, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "SectionState", - "key.namelength" : 12, - "key.nameoffset" : 174, - "key.offset" : 168, - "key.parsed_declaration" : "final class SectionState", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var model: Section<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> model<\/decl.name>: Section<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "model", - "key.namelength" : 5, - "key.nameoffset" : 205, - "key.offset" : 201, - "key.parsed_declaration" : "var model : Section", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Section", - "key.typeusr" : "$s10ListableUI7SectionVD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C5modelAA0E0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let header: HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> header<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.namelength" : 6, - "key.nameoffset" : 242, - "key.offset" : 238, - "key.parsed_declaration" : "let header : HeaderFooterViewStatePair", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C6headerAC016HeaderFooterViewD4PairCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let footer: HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> footer<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "footer", - "key.namelength" : 6, - "key.nameoffset" : 289, - "key.offset" : 285, - "key.parsed_declaration" : "let footer : HeaderFooterViewStatePair", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C6footerAC016HeaderFooterViewD4PairCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var items: [AnyPresentationItemState<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [AnyPresentationItemState<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 345, - "key.offset" : 341, - "key.parsed_declaration" : "var items : [AnyPresentationItemState]", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[any AnyPresentationItemState]", - "key.typeusr" : "$sSay10ListableUI24AnyPresentationItemState_pGD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C5itemsSayAA03Anyc4ItemD0_pGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let performsContentCallbacks: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "performsContentCallbacks", - "key.namelength" : 24, - "key.nameoffset" : 401, - "key.offset" : 397, - "key.parsed_declaration" : "let performsContentCallbacks : Bool", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C24performsContentCallbacksSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(with model: Section<\/Type>, dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, performsContentCallbacks: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 952, - "key.bodyoffset" : 642, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, dependencies<\/decl.var.parameter.argument_label>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1145, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "init(with:dependencies:updateCallbacks:performsContentCallbacks:)", - "key.namelength" : 190, - "key.nameoffset" : 450, - "key.offset" : 450, - "key.parsed_declaration" : "init(\n with model : Section,\n dependencies : ItemStateDependencies,\n updateCallbacks : UpdateCallbacks,\n performsContentCallbacks : Bool\n)", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.SectionState.Type) -> (Section, ItemStateDependencies, UpdateCallbacks, Bool) -> PresentationState.SectionState", - "key.typeusr" : "$s4with12dependencies15updateCallbacks015performsContentD010ListableUI17PresentationStateC07SectionJ0CAE0K0V_AE04ItemJ12DependenciesVAE06UpdateD0CSbtcD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C4with12dependencies15updateCallbacks015performsContentI0AeA0E0V_AA04ItemD12DependenciesVAA06UpdateI0CSbtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func resetAllCachedSizes()<\/Declaration>", - "key.bodylength" : 217, - "key.bodyoffset" : 1641, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetAllCachedSizes<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 246, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "resetAllCachedSizes()", - "key.namelength" : 21, - "key.nameoffset" : 1618, - "key.offset" : 1613, - "key.parsed_declaration" : "func resetAllCachedSizes()", - "key.parsed_scope.end" : 62, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.SectionState) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C19resetAllCachedSizesyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func removeItem(at index: Int<\/Type>) -> AnyPresentationItemState<\/Type><\/Declaration>", - "key.bodylength" : 104, - "key.bodyoffset" : 1946, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> removeItem<\/decl.name>(at<\/decl.var.parameter.argument_label> index<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyPresentationItemState<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 174, - "key.line" : 64, - "key.modulename" : "ListableUI", - "key.name" : "removeItem(at:)", - "key.namelength" : 26, - "key.nameoffset" : 1882, - "key.offset" : 1877, - "key.parsed_declaration" : "func removeItem(at index : Int) -> AnyPresentationItemState", - "key.parsed_scope.end" : 68, - "key.parsed_scope.start" : 64, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.SectionState) -> (Int) -> any AnyPresentationItemState", - "key.typeusr" : "$s2at10ListableUI24AnyPresentationItemState_pSi_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C10removeItem2atAA03AnycgD0_pSi_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func insert(item: AnyPresentationItemState<\/Type>, at index: Int<\/Type>)<\/Declaration>", - "key.bodylength" : 118, - "key.bodyoffset" : 2139, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> insert<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> index<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 189, - "key.line" : 70, - "key.modulename" : "ListableUI", - "key.name" : "insert(item:at:)", - "key.namelength" : 55, - "key.nameoffset" : 2074, - "key.offset" : 2069, - "key.parsed_declaration" : "func insert(item : AnyPresentationItemState, at index : Int)", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 70, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.SectionState) -> (any AnyPresentationItemState, Int) -> ()", - "key.typeusr" : "$s4item2aty10ListableUI24AnyPresentationItemState_p_SitcD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C6insert4item2atyAA03Anyc4ItemD0_p_SitF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func updateOldIndexPath(in section: Int<\/Type>)<\/Declaration>", - "key.bodylength" : 111, - "key.bodyoffset" : 2319, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateOldIndexPath<\/decl.name>(in<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 155, - "key.line" : 76, - "key.modulename" : "ListableUI", - "key.name" : "updateOldIndexPath(in:)", - "key.namelength" : 36, - "key.nameoffset" : 2281, - "key.offset" : 2276, - "key.parsed_declaration" : "func updateOldIndexPath(in section : Int)", - "key.parsed_scope.end" : 79, - "key.parsed_scope.start" : 76, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.SectionState) -> (Int) -> ()", - "key.typeusr" : "$s2inySi_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C18updateOldIndexPath2inySi_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func update(with oldSection: Section<\/Type>, new newSection: Section<\/Type>, changes: SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>.ItemChanges<\/Type>, reason: ApplyReason<\/Type>, animated: Bool<\/Type>, dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>", - "key.bodylength" : 2316, - "key.bodyoffset" : 2805, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> oldSection<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label> newSection<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, changes<\/decl.var.parameter.argument_label>: SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>>.ItemChanges<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, dependencies<\/decl.var.parameter.argument_label>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2673, - "key.line" : 81, - "key.modulename" : "ListableUI", - "key.name" : "update(with:new:changes:reason:animated:dependencies:updateCallbacks:)", - "key.namelength" : 349, - "key.nameoffset" : 2454, - "key.offset" : 2449, - "key.parsed_declaration" : "func update(\n with oldSection : Section,\n new newSection : Section,\n changes : SectionedDiff.ItemChanges,\n reason: ApplyReason,\n animated : Bool,\n dependencies : ItemStateDependencies,\n updateCallbacks : UpdateCallbacks\n)", - "key.parsed_scope.end" : 144, - "key.parsed_scope.start" : 81, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let environment: ListEnvironment<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 92, - "key.modulename" : "ListableUI", - "key.name" : "environment", - "key.namelength" : 11, - "key.nameoffset" : 2871, - "key.offset" : 2867, - "key.parsed_declaration" : "let environment = dependencies.environmentProvider()", - "key.parsed_scope.end" : 92, - "key.parsed_scope.start" : 92, - "key.reusingastcontext" : false, - "key.typename" : "ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C6update4with3new7changes6reason8animated12dependencies0F9CallbacksyAA0E0V_AoA13SectionedDiffV11ItemChangesVyAoA13AnyIdentifierCAA0rP0_pAU_GAA11ApplyReasonOSbAA0pD12DependenciesVAA06UpdateM0CtF11environmentL_AA15ListEnvironmentVvp" - } - ], - "key.typename" : "(PresentationState.SectionState) -> (Section, Section, SectionedDiff.ItemChanges, ApplyReason, Bool, ItemStateDependencies, UpdateCallbacks) -> ()", - "key.typeusr" : "$s4with3new7changes6reason8animated12dependencies15updateCallbacksy10ListableUI7SectionV_AjH13SectionedDiffV11ItemChangesVyAjH13AnyIdentifierCAH0pN0_pAP_GAH11ApplyReasonOSbAH0N17StateDependenciesVAH06UpdateH0CtcD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C6update4with3new7changes6reason8animated12dependencies0F9CallbacksyAA0E0V_AoA13SectionedDiffV11ItemChangesVyAoA13AnyIdentifierCAA0rP0_pAU_GAA11ApplyReasonOSbAA0pD12DependenciesVAA06UpdateM0CtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func wasRemoved(updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>", - "key.bodylength" : 126, - "key.bodyoffset" : 5200, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 187, - "key.line" : 146, - "key.modulename" : "ListableUI", - "key.name" : "wasRemoved(updateCallbacks:)", - "key.namelength" : 45, - "key.nameoffset" : 5145, - "key.offset" : 5140, - "key.parsed_declaration" : "func wasRemoved(updateCallbacks : UpdateCallbacks)", - "key.parsed_scope.end" : 151, - "key.parsed_scope.start" : 146, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.SectionState) -> (UpdateCallbacks) -> ()", - "key.typeusr" : "$s15updateCallbacksy10ListableUI06UpdateB0C_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C10wasRemoved15updateCallbacksyAA06UpdateI0C_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func newHeaderFooterState(with new: AnyHeaderFooterConvertible<\/Type>?, kind: SupplementaryKind<\/Type>, performsContentCallbacks: Bool<\/Type>) -> AnyPresentationHeaderFooterState<\/Type>?<\/Declaration>", - "key.bodylength" : 397, - "key.bodyoffset" : 5568, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newHeaderFooterState<\/decl.name>(with<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, kind<\/decl.var.parameter.argument_label>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 621, - "key.line" : 153, - "key.modulename" : "ListableUI", - "key.name" : "newHeaderFooterState(with:kind:performsContentCallbacks:)", - "key.namelength" : 164, - "key.nameoffset" : 5357, - "key.offset" : 5345, - "key.parsed_declaration" : "static func newHeaderFooterState(\n with new : AnyHeaderFooterConvertible?,\n kind: SupplementaryKind,\n performsContentCallbacks : Bool\n) -> AnyPresentationHeaderFooterState?", - "key.parsed_scope.end" : 169, - "key.parsed_scope.start" : 153, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.SectionState.Type) -> ((any AnyHeaderFooterConvertible)?, SupplementaryKind, Bool) -> (any AnyPresentationHeaderFooterState)?", - "key.typeusr" : "$s4with4kind24performsContentCallbacks10ListableUI32AnyPresentationHeaderFooterState_pSgAD0hjK11Convertible_pSg_AD17SupplementaryKindOSbtcD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C015newHeaderFooterD04with4kind24performsContentCallbacksAA03AnycghD0_pSgAA0ngH11Convertible_pSg_AA17SupplementaryKindOSbtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func headerFooterState(current: AnyPresentationHeaderFooterState<\/Type>?, new: AnyHeaderFooterConvertible<\/Type>?, kind: SupplementaryKind<\/Type>, performsContentCallbacks: Bool<\/Type>) -> AnyPresentationHeaderFooterState<\/Type>?<\/Declaration>", - "key.bodylength" : 1344, - "key.bodyoffset" : 6256, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> headerFooterState<\/decl.name>(current<\/decl.var.parameter.argument_label>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, kind<\/decl.var.parameter.argument_label>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 1617, - "key.line" : 171, - "key.modulename" : "ListableUI", - "key.name" : "headerFooterState(current:new:kind:performsContentCallbacks:)", - "key.namelength" : 213, - "key.nameoffset" : 5996, - "key.offset" : 5984, - "key.parsed_declaration" : "static func headerFooterState(\n current : AnyPresentationHeaderFooterState?,\n new : AnyHeaderFooterConvertible?,\n kind: SupplementaryKind,\n performsContentCallbacks : Bool\n) -> AnyPresentationHeaderFooterState?", - "key.parsed_scope.end" : 209, - "key.parsed_scope.start" : 171, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let new: (any AnyHeaderFooter<\/Type>)?<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Eagerly convert the header\/footer to the correct final type, so the `type(of:)` check later\non in the function is comparing `HeaderFooter` types.", - "key.doc.column" : 17, - "key.doc.comment" : "Eagerly convert the header\/footer to the correct final type, so the `type(of:)` check later\non in the function is comparing `HeaderFooter` types.", - "key.doc.declaration" : "let new: (any ListableUI.AnyHeaderFooter)?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.doc.full_as_xml" : "new<\/Name>s:10ListableUI17PresentationStateC07SectionD0C012headerFooterD07current3new4kind24performsContentCallbacksAA03Anyc6HeadergD0_pSgAL_AA0noG11Convertible_pSgAA17SupplementaryKindOSbtFZAHL0_AA0noG0_pSgvp<\/USR>let new: (any ListableUI.AnyHeaderFooter)?<\/Declaration>Eagerly convert the header\/footer to the correct final type, so the type(of:)<\/codeVoice> check later on in the function is comparing HeaderFooter<Content><\/codeVoice> types.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 180, - "key.doc.name" : "new", - "key.doc.type" : "Other", - "key.doclength" : 175, - "key.docoffset" : 6269, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.SectionState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: (any AnyHeaderFooter<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 34, - "key.line" : 180, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 6460, - "key.offset" : 6456, - "key.parsed_declaration" : "let new = new?.asAnyHeaderFooter()", - "key.parsed_scope.end" : 180, - "key.parsed_scope.start" : 180, - "key.reusingastcontext" : false, - "key.typename" : "(any AnyHeaderFooter)?", - "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pSgD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C012headerFooterD07current3new4kind24performsContentCallbacksAA03Anyc6HeadergD0_pSgAL_AA0noG11Convertible_pSgAA17SupplementaryKindOSbtFZAHL0_AA0noG0_pSgvp" - } - ], - "key.typename" : "(PresentationState.SectionState.Type) -> ((any AnyPresentationHeaderFooterState)?, (any AnyHeaderFooterConvertible)?, SupplementaryKind, Bool) -> (any AnyPresentationHeaderFooterState)?", - "key.typeusr" : "$s7current3new4kind24performsContentCallbacks10ListableUI32AnyPresentationHeaderFooterState_pSgAG_AE0ikL11Convertible_pSgAE17SupplementaryKindOSbtcD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C012headerFooterD07current3new4kind24performsContentCallbacksAA03Anyc6HeadergD0_pSgAL_AA0noG11Convertible_pSgAA17SupplementaryKindOSbtFZ" - } - ], - "key.typename" : "PresentationState.SectionState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC07SectionD0CmD", - "key.usr" : "s:10ListableUI17PresentationStateC07SectionD0C" - } - ], - "key.typename" : "PresentationState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateCmD", - "key.usr" : "s:10ListableUI17PresentationStateC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 20988, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class PresentationState<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 328 - } - ], - "key.bodylength" : 15060, - "key.bodyoffset" : 359, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).", - "key.doc.column" : 13, - "key.doc.comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).", - "key.doc.declaration" : "final class PresentationState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "PresentationState", - "key.doc.type" : "Class", - "key.doclength" : 218, - "key.docoffset" : 110, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 15086, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "PresentationState", - "key.namelength" : 17, - "key.nameoffset" : 340, - "key.offset" : 334, - "key.parsed_declaration" : "final class PresentationState", - "key.parsed_scope.end" : 483, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 16, - "key.name" : "MARK: Properties", - "key.offset" : 374 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var refreshControl: RefreshControlState<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> refreshControl<\/decl.name>: RefreshControlState<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "refreshControl", - "key.namelength" : 14, - "key.nameoffset" : 415, - "key.offset" : 411, - "key.parsed_declaration" : "var refreshControl : RefreshControlState?", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "PresentationState.RefreshControlState?", - "key.typeusr" : "$s10ListableUI17PresentationStateC014RefreshControlD0CSgD", - "key.usr" : "s:10ListableUI17PresentationStateC14refreshControlAC07RefreshfD0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var context: ContentContext<\/Type>? { get set }<\/Declaration>", - "key.bodylength" : 138, - "key.bodyoffset" : 493, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> context<\/decl.name>: ContentContext<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 170, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "context", - "key.namelength" : 7, - "key.nameoffset" : 466, - "key.offset" : 462, - "key.parsed_declaration" : "var context : ContentContext?", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ContentContext?", - "key.typeusr" : "$s10ListableUI14ContentContextVSgD", - "key.usr" : "s:10ListableUI17PresentationStateC7contextAA14ContentContextVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let containerHeader: HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> containerHeader<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "containerHeader", - "key.namelength" : 15, - "key.nameoffset" : 646, - "key.offset" : 642, - "key.parsed_declaration" : "let containerHeader : HeaderFooterViewStatePair", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", - "key.usr" : "s:10ListableUI17PresentationStateC15containerHeaderAC0f10FooterViewD4PairCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let header: HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> header<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.namelength" : 6, - "key.nameoffset" : 698, - "key.offset" : 694, - "key.parsed_declaration" : "let header : HeaderFooterViewStatePair", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", - "key.usr" : "s:10ListableUI17PresentationStateC6headerAC016HeaderFooterViewD4PairCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let footer: HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> footer<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "footer", - "key.namelength" : 6, - "key.nameoffset" : 741, - "key.offset" : 737, - "key.parsed_declaration" : "let footer : HeaderFooterViewStatePair", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", - "key.usr" : "s:10ListableUI17PresentationStateC6footerAC016HeaderFooterViewD4PairCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let overscrollFooter: HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "overscrollFooter", - "key.namelength" : 16, - "key.nameoffset" : 784, - "key.offset" : 780, - "key.parsed_declaration" : "let overscrollFooter : HeaderFooterViewStatePair", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 32, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", - "key.usr" : "s:10ListableUI17PresentationStateC16overscrollFooterAC06Headerf4ViewD4PairCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var sections: [PresentationState<\/Type>.SectionState<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sections<\/decl.name>: [PresentationState<\/ref.class>.SectionState<\/ref.class>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "sections", - "key.namelength" : 8, - "key.nameoffset" : 842, - "key.offset" : 838, - "key.parsed_declaration" : "var sections : [PresentationState.SectionState]", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 34, - "key.related_decls" : [ - { - "key.annotated_decl" : "sections(at:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[PresentationState.SectionState]", - "key.typeusr" : "$sSay10ListableUI17PresentationStateC07SectionD0CGD", - "key.usr" : "s:10ListableUI17PresentationStateC8sectionsSayAC07SectionD0CGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var performsContentCallbacks: Bool<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "performsContentCallbacks", - "key.namelength" : 24, - "key.nameoffset" : 899, - "key.offset" : 895, - "key.parsed_declaration" : "var performsContentCallbacks : Bool = true", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC24performsContentCallbacksSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var containsAllItems: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 951 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> containsAllItems<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "containsAllItems", - "key.namelength" : 16, - "key.nameoffset" : 968, - "key.offset" : 964, - "key.parsed_declaration" : "private(set) var containsAllItems : Bool", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 38, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC16containsAllItemsSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var contentIdentifier: AnyHashable<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 1001 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> contentIdentifier<\/decl.name>: AnyHashable<\/ref.struct>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "contentIdentifier", - "key.namelength" : 17, - "key.nameoffset" : 1018, - "key.offset" : 1014, - "key.parsed_declaration" : "private(set) var contentIdentifier : AnyHashable?", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "AnyHashable?", - "key.typeusr" : "$ss11AnyHashableVSgD", - "key.usr" : "s:10ListableUI17PresentationStateC17contentIdentifiers11AnyHashableVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let itemMeasurementCache: ReusableViewCache<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1060 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> itemMeasurementCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "itemMeasurementCache", - "key.namelength" : 20, - "key.nameoffset" : 1072, - "key.offset" : 1068, - "key.parsed_declaration" : "private let itemMeasurementCache : ReusableViewCache", - "key.parsed_scope.end" : 42, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.typename" : "ReusableViewCache", - "key.typeusr" : "$s10ListableUI17ReusableViewCacheCD", - "key.usr" : "s:10ListableUI17PresentationStateC20itemMeasurementCache33_939783EE01E8AF6B5319AE23F86DC036LLAA012ReusableViewG0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let headerFooterMeasurementCache: ReusableViewCache<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1117 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> headerFooterMeasurementCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "headerFooterMeasurementCache", - "key.namelength" : 28, - "key.nameoffset" : 1129, - "key.offset" : 1125, - "key.parsed_declaration" : "private let headerFooterMeasurementCache : ReusableViewCache", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.typename" : "ReusableViewCache", - "key.typeusr" : "$s10ListableUI17ReusableViewCacheCD", - "key.usr" : "s:10ListableUI17PresentationStateC28headerFooterMeasurementCache33_939783EE01E8AF6B5319AE23F86DC036LLAA012ReusableViewH0Cvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 1197 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init()<\/Declaration>", - "key.bodylength" : 484, - "key.bodyoffset" : 1250, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 497, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 1238, - "key.offset" : 1238, - "key.parsed_declaration" : "init()", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 49, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(forMeasuringOrTestsWith:environment:itemMeasurementCache:headerFooterMeasurementCache:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.Type) -> () -> PresentationState", - "key.typeusr" : "$s10ListableUI17PresentationStateCycD", - "key.usr" : "s:10ListableUI17PresentationStateCACycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(forMeasuringOrTestsWith content: Content<\/Type>, environment: ListEnvironment<\/Type>, itemMeasurementCache: ReusableViewCache<\/Type>, headerFooterMeasurementCache: ReusableViewCache<\/Type>)<\/Declaration>", - "key.bodylength" : 1976, - "key.bodyoffset" : 1955, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(forMeasuringOrTestsWith<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, itemMeasurementCache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, headerFooterMeasurementCache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2187, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "init(forMeasuringOrTestsWith:environment:itemMeasurementCache:headerFooterMeasurementCache:)", - "key.namelength" : 208, - "key.nameoffset" : 1745, - "key.offset" : 1745, - "key.parsed_declaration" : "init(\n forMeasuringOrTestsWith content : Content,\n environment : ListEnvironment,\n itemMeasurementCache : ReusableViewCache,\n headerFooterMeasurementCache : ReusableViewCache\n)", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 68, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.Type) -> (Content, ListEnvironment, ReusableViewCache, ReusableViewCache) -> PresentationState", - "key.typeusr" : "$s23forMeasuringOrTestsWith11environment20itemMeasurementCache012headerFooterhI010ListableUI17PresentationStateCAE7ContentV_AE15ListEnvironmentVAE012ReusableViewI0CAMtcD", - "key.usr" : "s:10ListableUI17PresentationStateC23forMeasuringOrTestsWith11environment20itemMeasurementCache012headerFooterlM0AcA7ContentV_AA15ListEnvironmentVAA012ReusableViewM0CAMtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Accessing Data", - "key.offset" : 3952 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var sectionModels: [Section<\/Type>] { get }<\/Declaration>", - "key.bodylength" : 252, - "key.bodyoffset" : 4020, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Note: We are passing `performsContentCallbacks:false` because this\ninitializer is only used for one-pass measurement provided by ``ListView\/contentSize(in:for:itemLimit:)``,\nas well as for testing purposes.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sectionModels<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 284, - "key.line" : 131, - "key.modulename" : "ListableUI", - "key.name" : "sectionModels", - "key.namelength" : 13, - "key.nameoffset" : 3993, - "key.offset" : 3989, - "key.parsed_declaration" : "var sectionModels : [Section]", - "key.parsed_scope.end" : 141, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.typename" : "[Section]", - "key.typeusr" : "$sSay10ListableUI7SectionVGD", - "key.usr" : "s:10ListableUI17PresentationStateC13sectionModelsSayAA7SectionVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var selectedItems: [AnyPresentationItemState<\/Type>] { get }<\/Declaration>", - "key.bodylength" : 255, - "key.bodyoffset" : 4331, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> selectedItems<\/decl.name>: [AnyPresentationItemState<\/ref.protocol>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 304, - "key.line" : 143, - "key.modulename" : "ListableUI", - "key.name" : "selectedItems", - "key.namelength" : 13, - "key.nameoffset" : 4287, - "key.offset" : 4283, - "key.parsed_declaration" : "var selectedItems : [AnyPresentationItemState]", - "key.parsed_scope.end" : 151, - "key.parsed_scope.start" : 143, - "key.reusingastcontext" : false, - "key.typename" : "[any AnyPresentationItemState]", - "key.typeusr" : "$sSay10ListableUI24AnyPresentationItemState_pGD", - "key.usr" : "s:10ListableUI17PresentationStateC13selectedItemsSayAA03Anyc4ItemD0_pGvp" - }, - { - "key.annotated_decl" : "let items: [[AnyPresentationItemState<\/Type>]]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> items<\/decl.name>: [[AnyPresentationItemState<\/ref.protocol>]]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 196, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 4344, - "key.offset" : 4340, - "key.parsed_declaration" : "let items : [[AnyPresentationItemState]] = self.sections.compactMap { section in\n section.items.compactMap { item in\n item.isSelected ? item : nil\n }\n}", - "key.parsed_scope.end" : 144, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.typename" : "[[any AnyPresentationItemState]]", - "key.typeusr" : "$sSaySay10ListableUI24AnyPresentationItemState_pGGD", - "key.usr" : "s:10ListableUI17PresentationStateC13selectedItemsSayAA03Anyc4ItemD0_pGvg5itemsL_SayAFGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var selectedIndexPaths: [IndexPath<\/Type>] { get }<\/Declaration>", - "key.bodylength" : 338, - "key.bodyoffset" : 4635, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> selectedIndexPaths<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 377, - "key.line" : 153, - "key.modulename" : "ListableUI", - "key.name" : "selectedIndexPaths", - "key.namelength" : 18, - "key.nameoffset" : 4601, - "key.offset" : 4597, - "key.parsed_declaration" : "var selectedIndexPaths : [IndexPath]", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 153, - "key.reusingastcontext" : false, - "key.typename" : "[IndexPath]", - "key.typeusr" : "$sSay10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI17PresentationStateC18selectedIndexPathsSay10Foundation0F4PathVGvp" - }, - { - "key.annotated_decl" : "let indexes: [[IndexPath<\/Type>]]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexes<\/decl.name>: [[IndexPath<\/ref.struct>]]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 277, - "key.line" : 154, - "key.modulename" : "ListableUI", - "key.name" : "indexes", - "key.namelength" : 7, - "key.nameoffset" : 4648, - "key.offset" : 4644, - "key.parsed_declaration" : "let indexes : [[IndexPath]] = self.sections.compactMapWithIndex { sectionIndex, _, section in\n section.items.compactMapWithIndex { itemIndex, _, item in\n item.isSelected ? IndexPath(item: itemIndex, section: sectionIndex) : nil\n }\n}", - "key.parsed_scope.end" : 154, - "key.parsed_scope.start" : 154, - "key.reusingastcontext" : false, - "key.typename" : "[[IndexPath]]", - "key.typeusr" : "$sSaySay10Foundation9IndexPathVGGD", - "key.usr" : "s:10ListableUI17PresentationStateC18selectedIndexPathsSay10Foundation0F4PathVGvg7indexesL_SayAHGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func headerFooter(of kind: SupplementaryKind<\/Type>, in section: Int<\/Type>) -> HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.bodylength" : 383, - "key.bodyoffset" : 5083, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> headerFooter<\/decl.name>(of<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> HeaderFooterViewStatePair<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 483, - "key.line" : 163, - "key.modulename" : "ListableUI", - "key.name" : "headerFooter(of:in:)", - "key.namelength" : 59, - "key.nameoffset" : 4989, - "key.offset" : 4984, - "key.parsed_declaration" : "func headerFooter(of kind : SupplementaryKind, in section : Int) -> HeaderFooterViewStatePair", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 163, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState) -> (SupplementaryKind, Int) -> PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s2of2in10ListableUI17PresentationStateC016HeaderFooterViewF4PairCAC17SupplementaryKindO_SitcD", - "key.usr" : "s:10ListableUI17PresentationStateC12headerFooter2of2inAC06Headerf4ViewD4PairCAA17SupplementaryKindO_SitF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func item(at indexPath: IndexPath<\/Type>) -> AnyPresentationItemState<\/Type><\/Declaration>", - "key.bodylength" : 138, - "key.bodyoffset" : 5546, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> item<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyPresentationItemState<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 208, - "key.line" : 175, - "key.modulename" : "ListableUI", - "key.name" : "item(at:)", - "key.namelength" : 30, - "key.nameoffset" : 5482, - "key.offset" : 5477, - "key.parsed_declaration" : "func item(at indexPath : IndexPath) -> AnyPresentationItemState", - "key.parsed_scope.end" : 181, - "key.parsed_scope.start" : 175, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let section: PresentationState<\/Type>.SectionState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 46, - "key.line" : 177, - "key.modulename" : "ListableUI", - "key.name" : "section", - "key.namelength" : 7, - "key.nameoffset" : 5559, - "key.offset" : 5555, - "key.parsed_declaration" : "let section = self.sections[indexPath.section]", - "key.parsed_scope.end" : 177, - "key.parsed_scope.start" : 177, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.SectionState", - "key.typeusr" : "$s10ListableUI17PresentationStateC07SectionD0CD", - "key.usr" : "s:10ListableUI17PresentationStateC4item2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tF7sectionL_AC07SectionD0Cvp" - }, - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 40, - "key.line" : 178, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 5614, - "key.offset" : 5610, - "key.parsed_declaration" : "let item = section.items[indexPath.item]", - "key.parsed_scope.end" : 178, - "key.parsed_scope.start" : 178, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI17PresentationStateC4item2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tFADL_AaF_pvp" - } - ], - "key.typename" : "(PresentationState) -> (IndexPath) -> any AnyPresentationItemState", - "key.typeusr" : "$s2at10ListableUI24AnyPresentationItemState_p10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC4item2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func sections(at indexes: [Int<\/Type>]) -> [SectionState<\/Type>]<\/Declaration>", - "key.bodylength" : 173, - "key.bodyoffset" : 5752, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> sections<\/decl.name>(at<\/decl.var.parameter.argument_label> indexes<\/decl.var.parameter.name>: [Int<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> [SectionState<\/ref.class>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 231, - "key.line" : 183, - "key.modulename" : "ListableUI", - "key.name" : "sections(at:)", - "key.namelength" : 28, - "key.nameoffset" : 5700, - "key.offset" : 5695, - "key.parsed_declaration" : "func sections(at indexes : [Int]) -> [SectionState]", - "key.parsed_scope.end" : 192, - "key.parsed_scope.start" : 183, - "key.related_decls" : [ - { - "key.annotated_decl" : "sections<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var sections: [SectionState<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sections<\/decl.name>: [SectionState<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 34, - "key.line" : 185, - "key.modulename" : "ListableUI", - "key.name" : "sections", - "key.namelength" : 8, - "key.nameoffset" : 5765, - "key.offset" : 5761, - "key.parsed_declaration" : "var sections : [SectionState] = []", - "key.parsed_scope.end" : 185, - "key.parsed_scope.start" : 185, - "key.reusingastcontext" : false, - "key.typename" : "[PresentationState.SectionState]", - "key.typeusr" : "$sSay10ListableUI17PresentationStateC07SectionD0CGD", - "key.usr" : "s:10ListableUI17PresentationStateC8sections2atSayAC07SectionD0CGSaySiG_tFADL_AHvp" - } - ], - "key.typename" : "(PresentationState) -> ([Int]) -> [PresentationState.SectionState]", - "key.typeusr" : "$s2atSay10ListableUI17PresentationStateC07SectionE0CGSaySiG_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC8sections2atSayAC07SectionD0CGSaySiG_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var lastIndexPath: IndexPath<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5936 - } - ], - "key.bodylength" : 411, - "key.bodyoffset" : 5979, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastIndexPath<\/decl.name>: IndexPath<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 448, - "key.line" : 194, - "key.modulename" : "ListableUI", - "key.name" : "lastIndexPath", - "key.namelength" : 13, - "key.nameoffset" : 5947, - "key.offset" : 5943, - "key.parsed_declaration" : "public var lastIndexPath : IndexPath?", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 194, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath?", - "key.typeusr" : "$s10Foundation9IndexPathVSgD", - "key.usr" : "s:10ListableUI17PresentationStateC13lastIndexPath10Foundation0fG0VSgvp" - }, - { - "key.annotated_decl" : "let nonEmptySections: [(index: Int<\/Type>, section: SectionState<\/Type>)]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> nonEmptySections<\/decl.name>: [(index<\/tuple.element.argument_label>: Int<\/ref.struct><\/tuple.element.type><\/tuple.element>, section<\/tuple.element.argument_label>: SectionState<\/ref.class><\/tuple.element.type><\/tuple.element>)<\/tuple>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 187, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "nonEmptySections", - "key.namelength" : 16, - "key.nameoffset" : 5992, - "key.offset" : 5988, - "key.parsed_declaration" : "let nonEmptySections : [(index:Int, section:SectionState)] = self.sections.compactMapWithIndex { index, _, state in\n return state.items.isEmpty ? nil : (index, state)\n}", - "key.parsed_scope.end" : 196, - "key.parsed_scope.start" : 196, - "key.reusingastcontext" : false, - "key.typename" : "[(index: Int, section: PresentationState.SectionState)]", - "key.typeusr" : "$sSaySi5index_10ListableUI17PresentationStateC07SectionE0C7sectiontGD", - "key.usr" : "s:10ListableUI17PresentationStateC13lastIndexPath10Foundation0fG0VSgvg16nonEmptySectionsL_SaySi5index_AC07SectionD0C7sectiontGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal func indexPath(for itemToFind: AnyPresentationItemState<\/Type>) -> IndexPath<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 6401 - } - ], - "key.bodylength" : 327, - "key.bodyoffset" : 6487, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> indexPath<\/decl.name>(for<\/decl.var.parameter.argument_label> itemToFind<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 405, - "key.line" : 207, - "key.modulename" : "ListableUI", - "key.name" : "indexPath(for:)", - "key.namelength" : 52, - "key.nameoffset" : 6415, - "key.offset" : 6410, - "key.parsed_declaration" : "internal func indexPath(for itemToFind : AnyPresentationItemState) -> IndexPath?", - "key.parsed_scope.end" : 218, - "key.parsed_scope.start" : 207, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState) -> (any AnyPresentationItemState) -> IndexPath?", - "key.typeusr" : "$s3for10Foundation9IndexPathVSg10ListableUI24AnyPresentationItemState_p_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC9indexPath3for10Foundation05IndexF0VSgAA03Anyc4ItemD0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal func forEachItem(_ block: (IndexPath<\/Type>, AnyPresentationItemState<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 6825 - } - ], - "key.bodylength" : 244, - "key.bodyoffset" : 6911, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> forEachItem<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 322, - "key.line" : 220, - "key.modulename" : "ListableUI", - "key.name" : "forEachItem(_:)", - "key.namelength" : 66, - "key.nameoffset" : 6839, - "key.offset" : 6834, - "key.parsed_declaration" : "internal func forEachItem(_ block : (IndexPath, AnyPresentationItemState) -> ())", - "key.parsed_scope.end" : 227, - "key.parsed_scope.start" : 220, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState) -> ((IndexPath, any AnyPresentationItemState) -> ()) -> ()", - "key.typeusr" : "$syyy10Foundation9IndexPathV_10ListableUI24AnyPresentationItemState_ptXEcD", - "key.usr" : "s:10ListableUI17PresentationStateC11forEachItemyyy10Foundation9IndexPathV_AA03AnycgD0_ptXEF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 19, - "key.name" : "MARK: Mutating Data", - "key.offset" : 7176 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func moveItem(from: IndexPath<\/Type>, to: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 193, - "key.bodyoffset" : 7265, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> moveItem<\/decl.name>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 247, - "key.line" : 233, - "key.modulename" : "ListableUI", - "key.name" : "moveItem(from:to:)", - "key.namelength" : 42, - "key.nameoffset" : 7217, - "key.offset" : 7212, - "key.parsed_declaration" : "func moveItem(from : IndexPath, to : IndexPath)", - "key.parsed_scope.end" : 243, - "key.parsed_scope.start" : 233, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 30, - "key.line" : 239, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 7348, - "key.offset" : 7344, - "key.parsed_declaration" : "let item = self.item(at: from)", - "key.parsed_scope.end" : 239, - "key.parsed_scope.start" : 239, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI17PresentationStateC8moveItem4from2toy10Foundation9IndexPathV_AItF4itemL_AA03AnycfD0_pvp" - } - ], - "key.typename" : "(PresentationState) -> (IndexPath, IndexPath) -> ()", - "key.typeusr" : "$s4from2toy10Foundation9IndexPathV_AEtcD", - "key.usr" : "s:10ListableUI17PresentationStateC8moveItem4from2toy10Foundation9IndexPathV_AItF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@discardableResult func remove(at indexPath: IndexPath<\/Type>) -> AnyPresentationItemState<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 7469 - } - ], - "key.bodylength" : 123, - "key.bodyoffset" : 7563, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> remove<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyPresentationItemState<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 195, - "key.line" : 246, - "key.modulename" : "ListableUI", - "key.name" : "remove(at:)", - "key.namelength" : 32, - "key.nameoffset" : 7497, - "key.offset" : 7492, - "key.parsed_declaration" : "func remove(at indexPath : IndexPath) -> AnyPresentationItemState", - "key.parsed_scope.end" : 251, - "key.parsed_scope.start" : 246, - "key.related_decls" : [ - { - "key.annotated_decl" : "remove(item:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let section: PresentationState<\/Type>.SectionState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 46, - "key.line" : 248, - "key.modulename" : "ListableUI", - "key.name" : "section", - "key.namelength" : 7, - "key.nameoffset" : 7576, - "key.offset" : 7572, - "key.parsed_declaration" : "let section = self.sections[indexPath.section]", - "key.parsed_scope.end" : 248, - "key.parsed_scope.start" : 248, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.SectionState", - "key.typeusr" : "$s10ListableUI17PresentationStateC07SectionD0CD", - "key.usr" : "s:10ListableUI17PresentationStateC6remove2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tF7sectionL_AC07SectionD0Cvp" - } - ], - "key.typename" : "(PresentationState) -> (IndexPath) -> any AnyPresentationItemState", - "key.typeusr" : "$s2at10ListableUI24AnyPresentationItemState_p10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC6remove2atAA03Anyc4ItemD0_p10Foundation9IndexPathV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func remove(item itemToRemove: AnyPresentationItemState<\/Type>) -> IndexPath<\/Type>?<\/Declaration>", - "key.bodylength" : 187, - "key.bodyoffset" : 7774, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> remove<\/decl.name>(item<\/decl.var.parameter.argument_label> itemToRemove<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 265, - "key.line" : 253, - "key.modulename" : "ListableUI", - "key.name" : "remove(item:)", - "key.namelength" : 52, - "key.nameoffset" : 7702, - "key.offset" : 7697, - "key.parsed_declaration" : "func remove(item itemToRemove : AnyPresentationItemState) -> IndexPath?", - "key.parsed_scope.end" : 262, - "key.parsed_scope.start" : 253, - "key.related_decls" : [ - { - "key.annotated_decl" : "remove(at:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState) -> (any AnyPresentationItemState) -> IndexPath?", - "key.typeusr" : "$s4item10Foundation9IndexPathVSg10ListableUI24AnyPresentationItemState_p_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC6remove4item10Foundation9IndexPathVSgAA03Anyc4ItemD0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func insert(item: AnyPresentationItemState<\/Type>, at indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 132, - "key.bodyoffset" : 8048, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> insert<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 209, - "key.line" : 264, - "key.modulename" : "ListableUI", - "key.name" : "insert(item:at:)", - "key.namelength" : 65, - "key.nameoffset" : 7977, - "key.offset" : 7972, - "key.parsed_declaration" : "func insert(item : AnyPresentationItemState, at indexPath : IndexPath)", - "key.parsed_scope.end" : 269, - "key.parsed_scope.start" : 264, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let section: PresentationState<\/Type>.SectionState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 46, - "key.line" : 266, - "key.modulename" : "ListableUI", - "key.name" : "section", - "key.namelength" : 7, - "key.nameoffset" : 8061, - "key.offset" : 8057, - "key.parsed_declaration" : "let section = self.sections[indexPath.section]", - "key.parsed_scope.end" : 266, - "key.parsed_scope.start" : 266, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.SectionState", - "key.typeusr" : "$s10ListableUI17PresentationStateC07SectionD0CD", - "key.usr" : "s:10ListableUI17PresentationStateC6insert4item2atyAA03Anyc4ItemD0_p_10Foundation9IndexPathVtF7sectionL_AC07SectionD0Cvp" - } - ], - "key.typename" : "(PresentationState) -> (any AnyPresentationItemState, IndexPath) -> ()", - "key.typeusr" : "$s4item2aty10ListableUI24AnyPresentationItemState_p_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC6insert4item2atyAA03Anyc4ItemD0_p_10Foundation9IndexPathVtF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Height Caching", - "key.offset" : 8201 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var onResetCachedSizes: () -> ()<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> onResetCachedSizes<\/decl.name>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 276, - "key.modulename" : "ListableUI", - "key.name" : "onResetCachedSizes", - "key.namelength" : 18, - "key.nameoffset" : 8275, - "key.offset" : 8271, - "key.parsed_declaration" : "var onResetCachedSizes : () -> () = {}", - "key.parsed_scope.end" : 276, - "key.parsed_scope.start" : 276, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "() -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17PresentationStateC18onResetCachedSizesyycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func resetAllCachedSizes()<\/Declaration>", - "key.bodylength" : 330, - "key.bodyoffset" : 8351, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetAllCachedSizes<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 363, - "key.line" : 278, - "key.modulename" : "ListableUI", - "key.name" : "resetAllCachedSizes()", - "key.namelength" : 21, - "key.nameoffset" : 8324, - "key.offset" : 8319, - "key.parsed_declaration" : "func resetAllCachedSizes()", - "key.parsed_scope.end" : 290, - "key.parsed_scope.start" : 278, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17PresentationStateC19resetAllCachedSizesyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 30, - "key.name" : "MARK: Updating Content & State", - "key.offset" : 8702 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func update(with diff: SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>, slice: Content<\/Type>.Slice<\/Type>, reason: ApplyReason<\/Type>, animated: Bool<\/Type>, dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, loggable: SignpostLoggable<\/Type>?)<\/Declaration>", - "key.bodylength" : 3934, - "key.bodyoffset" : 9062, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> diff<\/decl.var.parameter.name>: SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, slice<\/decl.var.parameter.argument_label>: Content<\/ref.struct>.Slice<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, dependencies<\/decl.var.parameter.argument_label>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, loggable<\/decl.var.parameter.argument_label>: SignpostLoggable<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 4248, - "key.line" : 296, - "key.modulename" : "ListableUI", - "key.name" : "update(with:slice:reason:animated:dependencies:updateCallbacks:loggable:)", - "key.namelength" : 306, - "key.nameoffset" : 8754, - "key.offset" : 8749, - "key.parsed_declaration" : "func update(\n with diff : SectionedDiff,\n slice : Content.Slice,\n reason: ApplyReason,\n animated : Bool,\n dependencies: ItemStateDependencies,\n updateCallbacks : UpdateCallbacks,\n loggable : SignpostLoggable?\n)", - "key.parsed_scope.end" : 413, - "key.parsed_scope.start" : 296, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let environment: ListEnvironment<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 315, - "key.modulename" : "ListableUI", - "key.name" : "environment", - "key.namelength" : 11, - "key.nameoffset" : 9464, - "key.offset" : 9460, - "key.parsed_declaration" : "let environment = dependencies.environmentProvider()", - "key.parsed_scope.end" : 315, - "key.parsed_scope.start" : 315, - "key.reusingastcontext" : false, - "key.typename" : "ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVD", - "key.usr" : "s:10ListableUI17PresentationStateC6update4with5slice6reason8animated12dependencies0E9Callbacks8loggableyAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0P4Item_pAQG_AA7ContentV5SliceVAA11ApplyReasonOSbAA0rD12DependenciesVAA06UpdateK0CAA16SignpostLoggable_pSgtF11environmentL_AA15ListEnvironmentVvp" - } - ], - "key.typename" : "(PresentationState) -> (SectionedDiff, Content.Slice, ApplyReason, Bool, ItemStateDependencies, UpdateCallbacks, (any SignpostLoggable)?) -> ()", - "key.typeusr" : "$s4with5slice6reason8animated12dependencies15updateCallbacks8loggabley10ListableUI13SectionedDiffVyAH7SectionVAH13AnyIdentifierCAH0N4Item_pANG_AH7ContentV5SliceVAH11ApplyReasonOSbAH0P17StateDependenciesVAH06UpdateG0CAH16SignpostLoggable_pSgtcD", - "key.usr" : "s:10ListableUI17PresentationStateC6update4with5slice6reason8animated12dependencies0E9Callbacks8loggableyAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0P4Item_pAQG_AA7ContentV5SliceVAA11ApplyReasonOSbAA0rD12DependenciesVAA06UpdateK0CAA16SignpostLoggable_pSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func updateOldIndexPaths()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 13007 - } - ], - "key.bodylength" : 342, - "key.bodyoffset" : 13043, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateOldIndexPaths<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 371, - "key.line" : 415, - "key.modulename" : "ListableUI", - "key.name" : "updateOldIndexPaths()", - "key.namelength" : 21, - "key.nameoffset" : 13020, - "key.offset" : 13015, - "key.parsed_declaration" : "private func updateOldIndexPaths()", - "key.parsed_scope.end" : 425, - "key.parsed_scope.start" : 415, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17PresentationStateC19updateOldIndexPaths33_939783EE01E8AF6B5319AE23F86DC036LLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal func updateRefreshControl(with new: RefreshControl<\/Type>?, in view: UIScrollView<\/Type>, color: UIColor<\/Type>?)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 13396 - } - ], - "key.bodylength" : 532, - "key.bodyoffset" : 13506, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateRefreshControl<\/decl.name>(with<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: RefreshControl<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, color<\/decl.var.parameter.argument_label>: UIColor<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 634, - "key.line" : 427, - "key.modulename" : "ListableUI", - "key.name" : "updateRefreshControl(with:in:color:)", - "key.namelength" : 90, - "key.nameoffset" : 13410, - "key.offset" : 13405, - "key.parsed_declaration" : "internal func updateRefreshControl(with new : RefreshControl?, in view : UIScrollView, color : UIColor?)", - "key.parsed_scope.end" : 440, - "key.parsed_scope.start" : 427, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState) -> (RefreshControl?, UIScrollView, UIColor?) -> ()", - "key.typeusr" : "$s4with2in5colory10ListableUI14RefreshControlVSg_So12UIScrollViewCSo7UIColorCSgtcD", - "key.usr" : "s:10ListableUI17PresentationStateC20updateRefreshControl4with2in5coloryAA0fG0VSg_So12UIScrollViewCSo7UIColorCSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal func adjustContentOffsetForRefreshControl(in view: UIScrollView<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 14045 - } - ], - "key.bodylength" : 632, - "key.bodyoffset" : 14125, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> adjustContentOffsetForRefreshControl<\/decl.name>(in<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 704, - "key.line" : 442, - "key.modulename" : "ListableUI", - "key.name" : "adjustContentOffsetForRefreshControl(in:)", - "key.namelength" : 60, - "key.nameoffset" : 14059, - "key.offset" : 14054, - "key.parsed_declaration" : "internal func adjustContentOffsetForRefreshControl(in view : UIScrollView)", - "key.parsed_scope.end" : 461, - "key.parsed_scope.start" : 442, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState) -> (UIScrollView) -> ()", - "key.typeusr" : "$s2inySo12UIScrollViewC_tcD", - "key.usr" : "s:10ListableUI17PresentationStateC36adjustContentOffsetForRefreshControl2inySo12UIScrollViewC_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 44, - "key.name" : "MARK: Cell & Supplementary View Registration", - "key.offset" : 14778 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var registeredCellObjectIdentifiers: Set<\/Type><ObjectIdentifier<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 14839 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> registeredCellObjectIdentifiers<\/decl.name>: Set<\/ref.struct><ObjectIdentifier<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 67, - "key.line" : 467, - "key.modulename" : "ListableUI", - "key.name" : "registeredCellObjectIdentifiers", - "key.namelength" : 31, - "key.nameoffset" : 14851, - "key.offset" : 14847, - "key.parsed_declaration" : "private var registeredCellObjectIdentifiers : Set = Set()", - "key.parsed_scope.end" : 467, - "key.parsed_scope.start" : 467, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Set", - "key.typeusr" : "$sShySOGD", - "key.usr" : "s:10ListableUI17PresentationStateC31registeredCellObjectIdentifiers33_939783EE01E8AF6B5319AE23F86DC036LLShySOGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func registerCell(for item: AnyPresentationItemState<\/Type>, in view: UICollectionView<\/Type>)<\/Declaration>", - "key.bodylength" : 405, - "key.bodyoffset" : 15012, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> registerCell<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 494, - "key.line" : 469, - "key.modulename" : "ListableUI", - "key.name" : "registerCell(for:in:)", - "key.namelength" : 77, - "key.nameoffset" : 14929, - "key.offset" : 14924, - "key.parsed_declaration" : "func registerCell(for item : AnyPresentationItemState, in view : UICollectionView)", - "key.parsed_scope.end" : 482, - "key.parsed_scope.start" : 469, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let info: (class: AnyClass<\/Type>, reuseIdentifier: String<\/Type>)<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: (class<\/tuple.element.argument_label>: AnyClass<\/ref.typealias><\/tuple.element.type><\/tuple.element>, reuseIdentifier<\/tuple.element.argument_label>: String<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 36, - "key.line" : 471, - "key.modulename" : "ListableUI", - "key.name" : "info", - "key.namelength" : 4, - "key.nameoffset" : 15025, - "key.offset" : 15021, - "key.parsed_declaration" : "let info = item.cellRegistrationInfo", - "key.parsed_scope.end" : 471, - "key.parsed_scope.start" : 471, - "key.reusingastcontext" : false, - "key.typename" : "(class: any AnyObject.Type, reuseIdentifier: String)", - "key.typeusr" : "$syXlXp5class_SS15reuseIdentifiertD", - "key.usr" : "s:10ListableUI17PresentationStateC12registerCell3for2inyAA03Anyc4ItemD0_p_So16UICollectionViewCtF4infoL_yXlXp5class_SS15reuseIdentifiertvp" - }, - { - "key.annotated_decl" : "let identifier: ObjectIdentifier<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 473, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 15079, - "key.offset" : 15075, - "key.parsed_declaration" : "let identifier = ObjectIdentifier(info.class)", - "key.parsed_scope.end" : 473, - "key.parsed_scope.start" : 473, - "key.reusingastcontext" : false, - "key.typename" : "ObjectIdentifier", - "key.typeusr" : "$sSOD", - "key.usr" : "s:10ListableUI17PresentationStateC12registerCell3for2inyAA03Anyc4ItemD0_p_So16UICollectionViewCtF10identifierL_SOvp" - } - ], - "key.typename" : "(PresentationState) -> (any AnyPresentationItemState, UICollectionView) -> ()", - "key.typeusr" : "$s3for2iny10ListableUI24AnyPresentationItemState_p_So16UICollectionViewCtcD", - "key.usr" : "s:10ListableUI17PresentationStateC12registerCell3for2inyAA03Anyc4ItemD0_p_So16UICollectionViewCtF" - } - ], - "key.typename" : "PresentationState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateCmD", - "key.usr" : "s:10ListableUI17PresentationStateC" - }, - { - "key.annotated_decl" : "final class PresentationState<\/Declaration>", - "key.bodylength" : 851, - "key.bodyoffset" : 15452, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).", - "key.doc.column" : 13, - "key.doc.declaration" : "final class PresentationState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "PresentationState", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 881, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "PresentationState", - "key.namelength" : 17, - "key.nameoffset" : 15433, - "key.offset" : 15423, - "key.parsed_declaration" : "extension PresentationState", - "key.parsed_scope.end" : 515, - "key.parsed_scope.start" : 486, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "enum UpdateReason : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 805, - "key.bodyoffset" : 15496, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 15481 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> UpdateReason<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 841, - "key.line" : 488, - "key.modulename" : "ListableUI", - "key.name" : "UpdateReason", - "key.namelength" : 12, - "key.nameoffset" : 15466, - "key.offset" : 15461, - "key.parsed_declaration" : "enum UpdateReason : Equatable", - "key.parsed_scope.end" : 514, - "key.parsed_scope.start" : 488, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 15505, - "key.substructure" : [ - { - "key.annotated_decl" : "case scrolledDown<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrolledDown<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 490, - "key.modulename" : "ListableUI", - "key.name" : "scrolledDown", - "key.namelength" : 12, - "key.nameoffset" : 15510, - "key.offset" : 15510, - "key.parsed_declaration" : "case scrolledDown", - "key.parsed_scope.end" : 490, - "key.parsed_scope.start" : 490, - "key.reusingastcontext" : false, - "key.typename" : "(PresentationState.UpdateReason.Type) -> PresentationState.UpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC12UpdateReasonOAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC12UpdateReasonO12scrolledDownyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 23, - "key.offset" : 15531, - "key.substructure" : [ - { - "key.annotated_decl" : "case didEndDecelerating<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> didEndDecelerating<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 18, - "key.line" : 491, - "key.modulename" : "ListableUI", - "key.name" : "didEndDecelerating", - "key.namelength" : 18, - "key.nameoffset" : 15536, - "key.offset" : 15536, - "key.parsed_declaration" : "case didEndDecelerating", - "key.parsed_scope.end" : 491, - "key.parsed_scope.start" : 491, - "key.reusingastcontext" : false, - "key.typename" : "(PresentationState.UpdateReason.Type) -> PresentationState.UpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC12UpdateReasonOAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC12UpdateReasonO18didEndDeceleratingyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 18, - "key.offset" : 15572, - "key.substructure" : [ - { - "key.annotated_decl" : "case scrolledToTop<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrolledToTop<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 13, - "key.line" : 493, - "key.modulename" : "ListableUI", - "key.name" : "scrolledToTop", - "key.namelength" : 13, - "key.nameoffset" : 15577, - "key.offset" : 15577, - "key.parsed_declaration" : "case scrolledToTop", - "key.parsed_scope.end" : 493, - "key.parsed_scope.start" : 493, - "key.reusingastcontext" : false, - "key.typename" : "(PresentationState.UpdateReason.Type) -> PresentationState.UpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC12UpdateReasonOAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC12UpdateReasonO13scrolledToTopyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 62, - "key.offset" : 15608, - "key.substructure" : [ - { - "key.annotated_decl" : "case contentChanged(animated: Bool<\/Type>, identifierChanged: Bool<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> contentChanged<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, identifierChanged<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 57, - "key.line" : 495, - "key.modulename" : "ListableUI", - "key.name" : "contentChanged(animated:identifierChanged:)", - "key.namelength" : 57, - "key.nameoffset" : 15613, - "key.offset" : 15613, - "key.parsed_declaration" : "case contentChanged(animated : Bool, identifierChanged : Bool)", - "key.parsed_scope.end" : 495, - "key.parsed_scope.start" : 495, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.UpdateReason.Type) -> (Bool, Bool) -> PresentationState.UpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC12UpdateReasonOSb_SbtcAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC12UpdateReasonO14contentChangedyAESb_SbtcAEmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 41, - "key.offset" : 15688, - "key.substructure" : [ - { - "key.annotated_decl" : "case transitionedToBounds(isEmpty: Bool<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> transitionedToBounds<\/decl.name>(isEmpty<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 36, - "key.line" : 497, - "key.modulename" : "ListableUI", - "key.name" : "transitionedToBounds(isEmpty:)", - "key.namelength" : 36, - "key.nameoffset" : 15693, - "key.offset" : 15693, - "key.parsed_declaration" : "case transitionedToBounds(isEmpty : Bool)", - "key.parsed_scope.end" : 497, - "key.parsed_scope.start" : 497, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.UpdateReason.Type) -> (Bool) -> PresentationState.UpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC12UpdateReasonOSb_tcAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC12UpdateReasonO20transitionedToBoundsyAESb_tcAEmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 39, - "key.offset" : 15747, - "key.substructure" : [ - { - "key.annotated_decl" : "case programaticScrollDownTo(IndexPath<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> programaticScrollDownTo<\/decl.name>(IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 34, - "key.line" : 499, - "key.modulename" : "ListableUI", - "key.name" : "programaticScrollDownTo(_:)", - "key.namelength" : 34, - "key.nameoffset" : 15752, - "key.offset" : 15752, - "key.parsed_declaration" : "case programaticScrollDownTo(IndexPath)", - "key.parsed_scope.end" : 499, - "key.parsed_scope.start" : 499, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState.UpdateReason.Type) -> (IndexPath) -> PresentationState.UpdateReason", - "key.typeusr" : "$sy10ListableUI17PresentationStateC12UpdateReasonO10Foundation9IndexPathVcAEmcD", - "key.usr" : "s:10ListableUI17PresentationStateC12UpdateReasonO23programaticScrollDownToyAE10Foundation9IndexPathVcAEmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var animated: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 474, - "key.bodyoffset" : 15821, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> animated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 496, - "key.line" : 501, - "key.modulename" : "ListableUI", - "key.name" : "animated", - "key.namelength" : 8, - "key.nameoffset" : 15804, - "key.offset" : 15800, - "key.parsed_declaration" : "var animated : Bool", - "key.parsed_scope.end" : 513, - "key.parsed_scope.start" : 501, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17PresentationStateC12UpdateReasonO8animatedSbvp" - } - ], - "key.typename" : "PresentationState.UpdateReason.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC12UpdateReasonOmD", - "key.usr" : "s:10ListableUI17PresentationStateC12UpdateReasonO" - } - ], - "key.typename" : "PresentationState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateCmD", - "key.usr" : "s:10ListableUI17PresentationStateC" - }, - { - "key.annotated_decl" : "final class PresentationState<\/Declaration>", - "key.bodylength" : 174, - "key.bodyoffset" : 16336, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).", - "key.doc.column" : 13, - "key.doc.declaration" : "final class PresentationState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "PresentationState", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 204, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "PresentationState", - "key.namelength" : 17, - "key.nameoffset" : 16317, - "key.offset" : 16307, - "key.parsed_declaration" : "extension PresentationState", - "key.parsed_scope.end" : 527, - "key.parsed_scope.start" : 518, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "struct SizeKey : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 136, - "key.bodyoffset" : 16372, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 16358 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SizeKey<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 168, - "key.line" : 520, - "key.modulename" : "ListableUI", - "key.name" : "SizeKey", - "key.namelength" : 7, - "key.nameoffset" : 16348, - "key.offset" : 16341, - "key.parsed_declaration" : "struct SizeKey : Hashable", - "key.parsed_scope.end" : 526, - "key.parsed_scope.start" : 520, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var width: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 522, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 16385, - "key.offset" : 16381, - "key.parsed_declaration" : "var width : CGFloat", - "key.parsed_scope.end" : 522, - "key.parsed_scope.start" : 522, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI17PresentationStateC7SizeKeyV5width14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var height: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> height<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 523, - "key.modulename" : "ListableUI", - "key.name" : "height", - "key.namelength" : 6, - "key.nameoffset" : 16413, - "key.offset" : 16409, - "key.parsed_declaration" : "var height : CGFloat", - "key.parsed_scope.end" : 523, - "key.parsed_scope.start" : 523, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI17PresentationStateC7SizeKeyV6height14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var layoutDirection: LayoutDirection<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutDirection<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 524, - "key.modulename" : "ListableUI", - "key.name" : "layoutDirection", - "key.namelength" : 15, - "key.nameoffset" : 16442, - "key.offset" : 16438, - "key.parsed_declaration" : "var layoutDirection : LayoutDirection", - "key.parsed_scope.end" : 524, - "key.parsed_scope.start" : 524, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI17PresentationStateC7SizeKeyV15layoutDirectionAA06LayoutH0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var sizing: Sizing<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 525, - "key.modulename" : "ListableUI", - "key.name" : "sizing", - "key.namelength" : 6, - "key.nameoffset" : 16488, - "key.offset" : 16484, - "key.parsed_declaration" : "var sizing : Sizing", - "key.parsed_scope.end" : 525, - "key.parsed_scope.start" : 525, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Sizing", - "key.typeusr" : "$s10ListableUI6SizingOD", - "key.usr" : "s:10ListableUI17PresentationStateC7SizeKeyV6sizingAA6SizingOvp" - } - ], - "key.typename" : "PresentationState.SizeKey.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateC7SizeKeyVmD", - "key.usr" : "s:10ListableUI17PresentationStateC7SizeKeyV" - } - ], - "key.typename" : "PresentationState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateCmD", - "key.usr" : "s:10ListableUI17PresentationStateC" - }, - { - "key.annotated_decl" : "final class PresentationState<\/Declaration>", - "key.bodylength" : 4029, - "key.bodyoffset" : 16543, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).", - "key.doc.column" : 13, - "key.doc.declaration" : "final class PresentationState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "PresentationState", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 4059, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "PresentationState", - "key.namelength" : 17, - "key.nameoffset" : 16524, - "key.offset" : 16514, - "key.parsed_declaration" : "extension PresentationState", - "key.parsed_scope.end" : 627, - "key.parsed_scope.start" : 530, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func toListLayoutContent(defaults: ListLayoutDefaults<\/Type>, environment: ListEnvironment<\/Type>) -> ListLayoutContent<\/Type><\/Declaration>", - "key.bodylength" : 3888, - "key.bodyoffset" : 16682, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> toListLayoutContent<\/decl.name>(defaults<\/decl.var.parameter.argument_label>: ListLayoutDefaults<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 4023, - "key.line" : 532, - "key.modulename" : "ListableUI", - "key.name" : "toListLayoutContent(defaults:environment:)", - "key.namelength" : 102, - "key.nameoffset" : 16553, - "key.offset" : 16548, - "key.parsed_declaration" : "func toListLayoutContent(\n defaults: ListLayoutDefaults,\n environment : ListEnvironment\n) -> ListLayoutContent", - "key.parsed_scope.end" : 626, - "key.parsed_scope.start" : 532, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PresentationState) -> (ListLayoutDefaults, ListEnvironment) -> ListLayoutContent", - "key.typeusr" : "$s8defaults11environment10ListableUI17ListLayoutContentCAC0eF8DefaultsV_AC0E11EnvironmentVtcD", - "key.usr" : "s:10ListableUI17PresentationStateC19toListLayoutContent8defaults11environmentAA0fgH0CAA0fG8DefaultsV_AA0F11EnvironmentVtF" - } - ], - "key.typename" : "PresentationState.Type", - "key.typeusr" : "$s10ListableUI17PresentationStateCmD", - "key.usr" : "s:10ListableUI17PresentationStateC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@MainActor<\/Type> @_nonSendable(_assumed) class UIScrollView : UIView<\/Type>, NSCoding<\/Type>, UIFocusItemScrollableContainer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 20575 - } - ], - "key.bodylength" : 375, - "key.bodyoffset" : 20611, - "key.column" : 12, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIScrollView<\/decl.name> : UIView<\/ref.class>, NSCoding<\/ref.protocol>, UIFocusItemScrollableContainer<\/ref.protocol><\/decl.class>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 400, - "key.line" : 87, - "key.modulename" : "UIKit.UIScrollView", - "key.name" : "UIScrollView", - "key.namelength" : 12, - "key.nameoffset" : 20597, - "key.offset" : 20587, - "key.parsed_declaration" : "fileprivate extension UIScrollView", - "key.parsed_scope.end" : 642, - "key.parsed_scope.start" : 629, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@MainActor<\/Type> var isScrolledToTop: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 337, - "key.bodyoffset" : 20647, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> isScrolledToTop<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 369, - "key.line" : 631, - "key.modulename" : "ListableUI", - "key.name" : "isScrolledToTop", - "key.namelength" : 15, - "key.nameoffset" : 20620, - "key.offset" : 20616, - "key.parsed_declaration" : "var isScrolledToTop: Bool", - "key.parsed_scope.end" : 641, - "key.parsed_scope.start" : 631, - "key.receivers" : [ - { - "key.usr" : "c:objc(cs)UIScrollView" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:So12UIScrollViewC10ListableUIE15isScrolledToTop33_939783EE01E8AF6B5319AE23F86DC036LLSbvp" - }, - { - "key.annotated_decl" : "var topInset: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/PresentationState\/PresentationState.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> topInset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 39, - "key.line" : 635, - "key.modulename" : "ListableUI", - "key.name" : "topInset", - "key.namelength" : 8, - "key.nameoffset" : 20783, - "key.offset" : 20779, - "key.parsed_declaration" : "var topInset = adjustedContentInset.top", - "key.parsed_scope.end" : 635, - "key.parsed_scope.start" : 635, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:So12UIScrollViewC10ListableUIE15isScrolledToTop33_939783EE01E8AF6B5319AE23F86DC036LLSbvg8topInsetL_14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : "UIScrollView.Type", - "key.typeusr" : "$sSo12UIScrollViewCmD", - "key.usr" : "c:objc(cs)UIScrollView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2107, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class ReusableViewCache<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 119 - } - ], - "key.bodylength" : 1955, - "key.bodyoffset" : 150, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReusableViewCache<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1981, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ReusableViewCache", - "key.namelength" : 17, - "key.nameoffset" : 131, - "key.offset" : 125, - "key.parsed_declaration" : "final class ReusableViewCache", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var views: [String<\/Type> : [AnyObject<\/Type>]]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 155 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> views<\/decl.name>: [String<\/ref.struct> : [AnyObject<\/ref.typealias>]]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "views", - "key.namelength" : 5, - "key.nameoffset" : 167, - "key.offset" : 163, - "key.parsed_declaration" : "private var views : [String:[AnyObject]] = [:]", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[String : [AnyObject]]", - "key.typeusr" : "$sSDySSSayyXlGGD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC5views33_D3355A373DDEE8B98B23E0A207A271BBLLSDySSSayyXlGGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var cachedViewCount: Int<\/Type> { get }<\/Declaration>", - "key.bodylength" : 66, - "key.bodyoffset" : 234, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> cachedViewCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 94, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "cachedViewCount", - "key.namelength" : 15, - "key.nameoffset" : 211, - "key.offset" : 207, - "key.parsed_declaration" : "var cachedViewCount : Int", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC06cachedD5CountSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init()<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 315, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 9, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 307, - "key.offset" : 307, - "key.parsed_declaration" : "init()", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.typename" : "(ReusableViewCache.Type) -> () -> ReusableViewCache", - "key.typeusr" : "$s10ListableUI17ReusableViewCacheCycD", - "key.usr" : "s:10ListableUI17ReusableViewCacheCACycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func count<Content>(for reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>>) -> Int<\/Type><\/Declaration>", - "key.bodylength" : 106, - "key.bodyoffset" : 406, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> count<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(for<\/decl.var.parameter.argument_label> reuseIdentifier<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 187, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "count(for:)", - "key.namelength" : 62, - "key.nameoffset" : 331, - "key.offset" : 326, - "key.parsed_declaration" : "func count(for reuseIdentifier : ReuseIdentifier) -> Int", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content<\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 337, - "key.offset" : 337, - "key.parsed_declaration" : "func countContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC5count3forSiAA15ReuseIdentifierCyxG_tlF7ContentL_xmfp" - }, - { - "key.annotated_decl" : "let views: [AnyObject<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> views<\/decl.name>: [AnyObject<\/ref.typealias>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 64, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "views", - "key.namelength" : 5, - "key.nameoffset" : 419, - "key.offset" : 415, - "key.parsed_declaration" : "let views = self.views[reuseIdentifier.stringValue, default: []]", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.typename" : "[AnyObject]", - "key.typeusr" : "$sSayyXlGD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC5count3forSiAA15ReuseIdentifierCyxG_tlF5viewsL_SayyXlGvp" - } - ], - "key.typename" : " (ReusableViewCache) -> (ReuseIdentifier) -> Int", - "key.typeusr" : "$s3forSi10ListableUI15ReuseIdentifierCyxG_tcluD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC5count3forSiAA15ReuseIdentifierCyxG_tlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func push<Content, View>(_ view: View<\/Type>, with reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>>) where View<\/Type> : AnyObject<\/Declaration>", - "key.bodylength" : 319, - "key.bodyoffset" : 625, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> push<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>, View<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: View<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> reuseIdentifier<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> View<\/ref.generic_type_param> : AnyObject<\/decl.generic_type_requirement><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 422, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "push(_:with:)", - "key.namelength" : 91, - "key.nameoffset" : 528, - "key.offset" : 523, - "key.parsed_declaration" : "func push(_ view : View, with reuseIdentifier: ReuseIdentifier)", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content<\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 533, - "key.offset" : 533, - "key.parsed_declaration" : "func pushContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC4push_4withyq__AA15ReuseIdentifierCyxGtRl_Cr0_lF7ContentL_xmfp" - }, - { - "key.annotated_decl" : "View : AnyObject<\/Type><\/Declaration>", - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 546 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "View<\/decl.generic_type_param.name> : AnyObject<\/ref.typealias><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 14, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "View", - "key.namelength" : 4, - "key.nameoffset" : 541, - "key.offset" : 541, - "key.parsed_declaration" : "func pushvar views: [AnyObject<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> views<\/decl.name>: [AnyObject<\/ref.typealias>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 64, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "views", - "key.namelength" : 5, - "key.nameoffset" : 638, - "key.offset" : 634, - "key.parsed_declaration" : "var views = self.views[reuseIdentifier.stringValue, default: []]", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.typename" : "[AnyObject]", - "key.typeusr" : "$sSayyXlGD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC4push_4withyq__AA15ReuseIdentifierCyxGtRl_Cr0_lF5viewsL_SayyXlGvp" - } - ], - "key.typename" : " (ReusableViewCache) -> (View, ReuseIdentifier) -> ()", - "key.typeusr" : "$s_4withyq__10ListableUI15ReuseIdentifierCyxGtcRl_Cr0_luD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC4push_4withyq__AA15ReuseIdentifierCyxGtRl_Cr0_lF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func pop<Content, View>(with reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>>, _ create: () -> View<\/Type>) -> View<\/Type> where View<\/Type> : AnyObject<\/Declaration>", - "key.bodylength" : 275, - "key.bodyoffset" : 1072, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> pop<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>, View<\/decl.generic_type_param.name><\/decl.generic_type_param>>(with<\/decl.var.parameter.argument_label> reuseIdentifier<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> create<\/decl.var.parameter.name>: () -> View<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> View<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> View<\/ref.generic_type_param> : AnyObject<\/decl.generic_type_requirement><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 393, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "pop(with:_:)", - "key.namelength" : 98, - "key.nameoffset" : 960, - "key.offset" : 955, - "key.parsed_declaration" : "func pop(with reuseIdentifier: ReuseIdentifier, _ create : () -> View) -> View", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 964, - "key.offset" : 964, - "key.parsed_declaration" : "func popContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC3pop4with_q_AA15ReuseIdentifierCyxG_q_yXEtRl_Cr0_lF7ContentL_xmfp" - }, - { - "key.annotated_decl" : "View : AnyObject<\/Type><\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 977 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "View<\/decl.generic_type_param.name> : AnyObject<\/ref.typealias><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 14, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "View", - "key.namelength" : 4, - "key.nameoffset" : 972, - "key.offset" : 972, - "key.parsed_declaration" : "func popvar views: [AnyObject<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> views<\/decl.name>: [AnyObject<\/ref.typealias>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 64, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "views", - "key.namelength" : 5, - "key.nameoffset" : 1085, - "key.offset" : 1081, - "key.parsed_declaration" : "var views = self.views[reuseIdentifier.stringValue, default: []]", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 41, - "key.reusingastcontext" : false, - "key.typename" : "[AnyObject]", - "key.typeusr" : "$sSayyXlGD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC3pop4with_q_AA15ReuseIdentifierCyxG_q_yXEtRl_Cr0_lF5viewsL_SayyXlGvp" - } - ], - "key.typename" : " (ReusableViewCache) -> (ReuseIdentifier, () -> View) -> View", - "key.typeusr" : "$s4with_q_10ListableUI15ReuseIdentifierCyxG_q_yXEtcRl_Cr0_luD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC3pop4with_q_AA15ReuseIdentifierCyxG_q_yXEtRl_Cr0_lF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func use<Content, View, Result>(with reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>>, create: () -> View<\/Type>, _ use: (View<\/Type>) -> Result<\/Type>) -> Result<\/Type> where View<\/Type> : AnyObject<\/Declaration>", - "key.bodylength" : 532, - "key.bodyoffset" : 1509, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> use<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>, View<\/decl.generic_type_param.name><\/decl.generic_type_param>, Result<\/decl.generic_type_param.name><\/decl.generic_type_param>>(with<\/decl.var.parameter.argument_label> reuseIdentifier<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, create<\/decl.var.parameter.argument_label>: () -> View<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> use<\/decl.var.parameter.name>: (View<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Result<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Result<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> View<\/ref.generic_type_param> : AnyObject<\/decl.generic_type_requirement><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 684, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "use(with:create:_:)", - "key.namelength" : 130, - "key.nameoffset" : 1363, - "key.offset" : 1358, - "key.parsed_declaration" : "func use(with reuseIdentifier: ReuseIdentifier, create : () -> View, _ use : (View) -> Result) -> Result", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 51, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 1367, - "key.offset" : 1367, - "key.parsed_declaration" : "func useContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC3use4with6create_q0_AA15ReuseIdentifierCyxG_q_yXEq0_q_XEtRl_Cr1_lF7ContentL_xmfp" - }, - { - "key.annotated_decl" : "View : AnyObject<\/Type><\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1380 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "View<\/decl.generic_type_param.name> : AnyObject<\/ref.typealias><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 14, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "View", - "key.namelength" : 4, - "key.nameoffset" : 1375, - "key.offset" : 1375, - "key.parsed_declaration" : "func useResult<\/Declaration>", - "key.column" : 38, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "Result<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 6, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "Result", - "key.namelength" : 6, - "key.nameoffset" : 1391, - "key.offset" : 1391, - "key.parsed_declaration" : "func useResult<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Result.Type", - "key.typeusr" : "$sq0_mD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC3use4with6create_q0_AA15ReuseIdentifierCyxG_q_yXEq0_q_XEtRl_Cr1_lF6ResultL_q0_mfp" - }, - { - "key.annotated_decl" : "let views: [AnyObject<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> views<\/decl.name>: [AnyObject<\/ref.typealias>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 64, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "views", - "key.namelength" : 5, - "key.nameoffset" : 1522, - "key.offset" : 1518, - "key.parsed_declaration" : "let views = self.views[reuseIdentifier.stringValue, default: []]", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 53, - "key.reusingastcontext" : false, - "key.typename" : "[AnyObject]", - "key.typeusr" : "$sSayyXlGD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC3use4with6create_q0_AA15ReuseIdentifierCyxG_q_yXEq0_q_XEtRl_Cr1_lF5viewsL_SayyXlGvp" - } - ], - "key.typename" : " (ReusableViewCache) -> (ReuseIdentifier, () -> View, (View) -> Result) -> Result", - "key.typeusr" : "$s4with6create_q0_10ListableUI15ReuseIdentifierCyxG_q_yXEq0_q_XEtcRl_Cr1_luD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC3use4with6create_q0_AA15ReuseIdentifierCyxG_q_yXEq0_q_XEtRl_Cr1_lF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func removeAllObjects()<\/Declaration>", - "key.bodylength" : 30, - "key.bodyoffset" : 2073, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> removeAllObjects<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 56, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "removeAllObjects()", - "key.namelength" : 18, - "key.nameoffset" : 2053, - "key.offset" : 2048, - "key.parsed_declaration" : "func removeAllObjects()", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 69, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ReusableViewCache) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC16removeAllObjectsyyF" - } - ], - "key.typename" : "ReusableViewCache.Type", - "key.typeusr" : "$s10ListableUI17ReusableViewCacheCmD", - "key.usr" : "s:10ListableUI17ReusableViewCacheC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1400, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var identifiers: [ObjectIdentifier<\/Type> : Any]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 98 - } - ], - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifiers<\/decl.name>: [ObjectIdentifier<\/ref.struct> : Any<\/syntaxtype.keyword>]<\/decl.var.type><\/decl.var.global>", - "key.kind" : "source.lang.swift.decl.var.global", - "key.length" : 46, - "key.line" : 9, - "key.modulename" : "ListableUI", - "key.name" : "identifiers", - "key.namelength" : 11, - "key.nameoffset" : 110, - "key.offset" : 106, - "key.parsed_declaration" : "private var identifiers : [ObjectIdentifier:Any] = [:]", - "key.parsed_scope.end" : 9, - "key.parsed_scope.start" : 9, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[ObjectIdentifier : Any]", - "key.typeusr" : "$sSDySOypGD", - "key.usr" : "s:10ListableUI11identifiers33_4813771A5C175C8BFDA941FD37903D0BLLSDySOypGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class ReuseIdentifier<Element> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 155 - } - ], - "key.bodylength" : 1194, - "key.bodyoffset" : 204, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 194 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReuseIdentifier<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : Hashable<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1238, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ReuseIdentifier", - "key.namelength" : 15, - "key.nameoffset" : 167, - "key.offset" : 161, - "key.parsed_declaration" : "final class ReuseIdentifier : Hashable", - "key.parsed_scope.end" : 68, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Element<\/Declaration>", - "key.column" : 29, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "Element<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "Element", - "key.namelength" : 7, - "key.nameoffset" : 183, - "key.offset" : 183, - "key.parsed_declaration" : "final class ReuseIdentifierstatic func identifier(for element: Element<\/Type>.Type) -> ReuseIdentifier<\/Type><Element<\/Type>><\/Declaration>", - "key.bodylength" : 352, - "key.bodyoffset" : 342, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> identifier<\/decl.name>(for<\/decl.var.parameter.argument_label> element<\/decl.var.parameter.name>: Element<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ReuseIdentifier<\/ref.class><Element<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 437, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "identifier(for:)", - "key.namelength" : 38, - "key.nameoffset" : 270, - "key.offset" : 258, - "key.parsed_declaration" : "static func identifier(for element : Element.Type) -> ReuseIdentifier", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 18, - "key.related_decls" : [ - { - "key.annotated_decl" : "identifier<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let typeIdentifier: ObjectIdentifier<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> typeIdentifier<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 46, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "typeIdentifier", - "key.namelength" : 14, - "key.nameoffset" : 355, - "key.offset" : 351, - "key.parsed_declaration" : "let typeIdentifier = ObjectIdentifier(element)", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "ObjectIdentifier", - "key.typeusr" : "$sSOD", - "key.usr" : "s:10ListableUI15ReuseIdentifierC10identifier3forACyxGxm_tFZ04typeD0L_SOvp" - } - ], - "key.typename" : " (ReuseIdentifier.Type) -> (Element.Type) -> ReuseIdentifier", - "key.typeusr" : "$s3for10ListableUI15ReuseIdentifierCyxGxm_tcD", - "key.usr" : "s:10ListableUI15ReuseIdentifierC10identifier3forACyxGxm_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let stringValue: String<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> stringValue<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "stringValue", - "key.namelength" : 11, - "key.nameoffset" : 709, - "key.offset" : 705, - "key.parsed_declaration" : "let stringValue : String", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI15ReuseIdentifierC11stringValueSSvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let identifier: ObjectIdentifier<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 738, - "key.offset" : 734, - "key.parsed_declaration" : "let identifier : ObjectIdentifier", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 32, - "key.related_decls" : [ - { - "key.annotated_decl" : "identifier(for:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ObjectIdentifier", - "key.typeusr" : "$sSOD", - "key.usr" : "s:10ListableUI15ReuseIdentifierC10identifierSOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let hash: Int<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> hash<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 14, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "hash", - "key.namelength" : 4, - "key.nameoffset" : 781, - "key.offset" : 777, - "key.parsed_declaration" : "let hash : Int", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 34, - "key.related_decls" : [ - { - "key.annotated_decl" : "hash(into:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI15ReuseIdentifierC4hashSivp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 21, - "key.name" : "MARK: Private Methods", - "key.offset" : 811 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 849 - } - ], - "key.bodylength" : 236, - "key.bodyoffset" : 869, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 249, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 857, - "key.offset" : 857, - "key.parsed_declaration" : "private init()", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var hasher: Hasher<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> hasher<\/decl.name>: Hasher<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 21, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "hasher", - "key.namelength" : 6, - "key.nameoffset" : 1005, - "key.offset" : 1001, - "key.parsed_declaration" : "var hasher = Hasher()", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.typename" : "Hasher", - "key.typeusr" : "$ss6HasherVD", - "key.usr" : "s:10ListableUI15ReuseIdentifierCACyxGyc33_4813771A5C175C8BFDA941FD37903D0BLlfc6hasherL_s6HasherVvp" - } - ], - "key.typename" : " (ReuseIdentifier.Type) -> () -> ReuseIdentifier", - "key.typeusr" : "$s10ListableUI15ReuseIdentifierCyxGycD", - "key.usr" : "s:10ListableUI15ReuseIdentifierCACyxGyc33_4813771A5C175C8BFDA941FD37903D0BLlfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 15, - "key.name" : "MARK: Equatable", - "key.offset" : 1126 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func == (lhs: ReuseIdentifier<\/Type>, rhs: ReuseIdentifier<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 32, - "key.bodyoffset" : 1231, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns a Boolean value indicating whether two values are equal.\n\nEquality is the inverse of inequality. For any values `a` and `b`,\n`a == b` implies that `a != b` is `false`.\n\n- Parameters:\n - lhs: A value to compare.\n - rhs: Another value to compare.", - "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "Equality is the inverse of inequality. For any values `a` and `b`, `a == b` implies that `a != b` is `false`." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "==(_:_:)<\/Name>s:SQ2eeoiySbx_xtFZ<\/USR>static func == (lhs: Self, rhs: Self) -> Bool<\/Declaration>Returns a Boolean value indicating whether two values are equal.<\/Para><\/Abstract>lhs<\/Name>in<\/Direction>A value to compare.<\/Para><\/Discussion><\/Parameter>rhs<\/Name>in<\/Direction>Another value to compare.<\/Para><\/Discussion><\/Parameter><\/Parameters>Equality is the inverse of inequality. For any values a<\/codeVoice> and b<\/codeVoice>, a == b<\/codeVoice> implies that a != b<\/codeVoice> is false<\/codeVoice>.<\/Para>This documentation comment was inherited from Equatable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "==(_:_:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A value to compare." - } - ], - "name" : "lhs" - }, - { - "discussion" : [ - { - "Para" : "Another value to compare." - } - ], - "name" : "rhs" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 106, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "==(_:_:)", - "key.namelength" : 47, - "key.nameoffset" : 1170, - "key.offset" : 1158, - "key.overrides" : [ - { - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.parsed_declaration" : "static func == (lhs: ReuseIdentifier, rhs: ReuseIdentifier) -> Bool", - "key.parsed_scope.end" : 58, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ReuseIdentifier.Type) -> (ReuseIdentifier, ReuseIdentifier) -> Bool", - "key.typeusr" : "$sySb10ListableUI15ReuseIdentifierCyxG_ADtcD", - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 14, - "key.name" : "MARK: Hashable", - "key.offset" : 1284 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func hash(into hasher: inout Hasher<\/Type>)<\/Declaration>", - "key.bodylength" : 39, - "key.bodyoffset" : 1357, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Hashes the essential components of this value by feeding them into the\ngiven hasher.\n\nImplement this method to conform to the `Hashable` protocol. The\ncomponents used for hashing must be the same as the components compared\nin your type's `==` operator implementation. Call `hasher.combine(_:)`\nwith each of these components.\n\n- Important: In your implementation of `hash(into:)`,\n don't call `finalize()` on the `hasher` instance provided,\n or replace it with a different instance.\n Doing so may become a compile-time error in the future.\n\n- Parameter hasher: The hasher to use when combining the components\n of this instance.", - "key.doc.declaration" : "func hash(into hasher: inout Hasher)", - "key.doc.discussion" : [ - { - "Para" : "Implement this method to conform to the `Hashable` protocol. The components used for hashing must be the same as the components compared in your type’s `==` operator implementation. Call `hasher.combine(_:)` with each of these components." - }, - { - "Important" : "" - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "hash(into:)<\/Name>s:SH4hash4intoys6HasherVz_tF<\/USR>func hash(into hasher: inout Hasher)<\/Declaration>Hashes the essential components of this value by feeding them into the given hasher.<\/Para><\/Abstract>hasher<\/Name>in<\/Direction>The hasher to use when combining the components of this instance.<\/Para><\/Discussion><\/Parameter><\/Parameters>Implement this method to conform to the Hashable<\/codeVoice> protocol. The components used for hashing must be the same as the components compared in your type’s ==<\/codeVoice> operator implementation. Call hasher.combine(_:)<\/codeVoice> with each of these components.<\/Para>In your implementation of hash(into:)<\/codeVoice>, don’t call finalize()<\/codeVoice> on the hasher<\/codeVoice> instance provided, or replace it with a different instance. Doing so may become a compile-time error in the future.<\/Para><\/Important>This documentation comment was inherited from Hashable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "hash(into:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The hasher to use when combining the components of this instance." - } - ], - "name" : "hasher" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 82, - "key.line" : 64, - "key.modulename" : "ListableUI", - "key.name" : "hash(into:)", - "key.namelength" : 31, - "key.nameoffset" : 1320, - "key.offset" : 1315, - "key.overrides" : [ - { - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - } - ], - "key.parsed_declaration" : "func hash(into hasher: inout Hasher)", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 64, - "key.related_decls" : [ - { - "key.annotated_decl" : "hash<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ReuseIdentifier) -> (inout Hasher) -> ()", - "key.typeusr" : "$s4intoys6HasherVz_tcD", - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - } - ], - "key.typename" : "ReuseIdentifier.Type", - "key.typeusr" : "$s10ListableUI15ReuseIdentifierCyxGmD", - "key.usr" : "s:10ListableUI15ReuseIdentifierC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 8744, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> final class SupplementaryContainerView : UICollectionReusableView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 1304 - } - ], - "key.bodylength" : 7371, - "key.bodyoffset" : 1371, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The supplementary view provided to the UICollectionView, which is used\nto contain every actual header and footer view within the list.\n\nRegardless of if a section has a header or footer provided by the developer,\nwe always return a supplementary view – if there's no header or footer, it has\nzero height.\n\nWhy this extra layer of indirection?\n--------------------------------------\nWithin collection views, supplementary views (how you model headers, footers)\nare attached to individual index paths. So, Listable models headers and footers\nas attached to (0,0) for list headers and footers, and (sectionIndex, 0)\nfor section headers and footers. All good so far.\n\nThe problem arises when you want to swap out a header or footer without\nchanging the row at the (x, 0) index path. The collection view does not\nknow to re-query for those associated headers, because we didn't actually\nreload or change that (x, 0) item.\n\nThus, we always provide this container supplementary view – and swap the content\nof the header or footer in or out as needed as it changes. As mentioned above,\nif there is no actual header or footer to show, the view has zero height.\n", - "key.doc.column" : 13, - "key.doc.comment" : "The supplementary view provided to the UICollectionView, which is used\nto contain every actual header and footer view within the list.\n\nRegardless of if a section has a header or footer provided by the developer,\nwe always return a supplementary view – if there's no header or footer, it has\nzero height.\n\nWhy this extra layer of indirection?\n--------------------------------------\nWithin collection views, supplementary views (how you model headers, footers)\nare attached to individual index paths. So, Listable models headers and footers\nas attached to (0,0) for list headers and footers, and (sectionIndex, 0)\nfor section headers and footers. All good so far.\n\nThe problem arises when you want to swap out a header or footer without\nchanging the row at the (x, 0) index path. The collection view does not\nknow to re-query for those associated headers, because we didn't actually\nreload or change that (x, 0) item.\n\nThus, we always provide this container supplementary view – and swap the content\nof the header or footer in or out as needed as it changes. As mentioned above,\nif there is no actual header or footer to show, the view has zero height.", - "key.doc.declaration" : "@MainActor final class SupplementaryContainerView : UICollectionReusableView", - "key.doc.discussion" : [ - { - "Para" : "Regardless of if a section has a header or footer provided by the developer, we always return a supplementary view – if there’s no header or footer, it has zero height." - }, - { - "Para" : "Within collection views, supplementary views (how you model headers, footers) are attached to individual index paths. So, Listable models headers and footers as attached to (0,0) for list headers and footers, and (sectionIndex, 0) for section headers and footers. All good so far." - }, - { - "Para" : "The problem arises when you want to swap out a header or footer without changing the row at the (x, 0) index path. The collection view does not know to re-query for those associated headers, because we didn’t actually reload or change that (x, 0) item." - }, - { - "Para" : "Thus, we always provide this container supplementary view – and swap the content of the header or footer in or out as needed as it changes. As mentioned above, if there is no actual header or footer to show, the view has zero height." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.doc.full_as_xml" : "SupplementaryContainerView<\/Name>c:@M@ListableUI@objc(cs)SupplementaryContainerView<\/USR>@MainActor final class SupplementaryContainerView : UICollectionReusableView<\/Declaration>The supplementary view provided to the UICollectionView, which is used to contain every actual header and footer view within the list.<\/Para><\/Abstract>Regardless of if a section has a header or footer provided by the developer, we always return a supplementary view – if there’s no header or footer, it has zero height.<\/Para>]]><\/rawHTML>Why this extra layer of indirection?]]><\/rawHTML>Within collection views, supplementary views (how you model headers, footers) are attached to individual index paths. So, Listable models headers and footers as attached to (0,0) for list headers and footers, and (sectionIndex, 0) for section headers and footers. All good so far.<\/Para>The problem arises when you want to swap out a header or footer without changing the row at the (x, 0) index path. The collection view does not know to re-query for those associated headers, because we didn’t actually reload or change that (x, 0) item.<\/Para>Thus, we always provide this container supplementary view – and swap the content of the header or footer in or out as needed as it changes. As mentioned above, if there is no actual header or footer to show, the view has zero height.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 35, - "key.doc.name" : "SupplementaryContainerView", - "key.doc.type" : "Class", - "key.doclength" : 1184, - "key.docoffset" : 119, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 24, - "key.offset" : 1345 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SupplementaryContainerView<\/decl.name> : UICollectionReusableView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UICollectionReusableView" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 7433, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "SupplementaryContainerView", - "key.namelength" : 26, - "key.nameoffset" : 1316, - "key.offset" : 1310, - "key.parsed_declaration" : "final class SupplementaryContainerView : UICollectionReusableView", - "key.parsed_scope.end" : 267, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 35, - "key.name" : "MARK: Registering & Dequeuing Cells", - "key.offset" : 1386 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> static let reuseIdentifier: String<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> reuseIdentifier<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 66, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "reuseIdentifier", - "key.namelength" : 15, - "key.nameoffset" : 1449, - "key.offset" : 1438, - "key.parsed_declaration" : "static let reuseIdentifier = \"Listable.SupplementaryContainerView\"", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 41, - "key.related_decls" : [ - { - "key.annotated_decl" : "reuseIdentifier<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC15reuseIdentifierSSvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> static func register(in collectionView: UICollectionView<\/Type>, for kind: String<\/Type>)<\/Declaration>", - "key.bodylength" : 215, - "key.bodyoffset" : 1596, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> register<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 298, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "register(in:for:)", - "key.namelength" : 64, - "key.nameoffset" : 1526, - "key.offset" : 1514, - "key.parsed_declaration" : "static func register(in collectionView: UICollectionView, for kind : String)", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SupplementaryContainerView.Type) -> (UICollectionView, String) -> ()", - "key.typeusr" : "$s2in3forySo16UICollectionViewC_SStcD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC8register2in3forySo012UICollectionE0C_SStFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> static func dequeue(in collectionView: UICollectionView<\/Type>, for kind: String<\/Type>, at indexPath: IndexPath<\/Type>, reuseCache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> SupplementaryContainerView<\/Type><\/Declaration>", - "key.bodylength" : 367, - "key.bodyoffset" : 2068, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> dequeue<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reuseCache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> SupplementaryContainerView<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 614, - "key.line" : 52, - "key.modulename" : "ListableUI", - "key.name" : "dequeue(in:for:at:reuseCache:environment:)", - "key.namelength" : 198, - "key.nameoffset" : 1834, - "key.offset" : 1822, - "key.parsed_declaration" : "static func dequeue(\n in collectionView: UICollectionView,\n for kind : String,\n at indexPath : IndexPath,\n reuseCache : ReusableViewCache,\n environment : ListEnvironment\n) -> SupplementaryContainerView", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 52, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: SupplementaryContainerView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: SupplementaryContainerView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 230, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 2081, - "key.offset" : 2077, - "key.parsed_declaration" : "let view = collectionView.dequeueReusableSupplementaryView(\n ofKind: kind,\n withReuseIdentifier: SupplementaryContainerView.reuseIdentifier,\n for: indexPath\n) as! SupplementaryContainerView", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.typename" : "SupplementaryContainerView", - "key.typeusr" : "$s10ListableUI26SupplementaryContainerViewCD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC7dequeue2in3for2at10reuseCache11environmentACSo012UICollectionE0C_SS10Foundation9IndexPathVAA08ReusableeK0CAA15ListEnvironmentVtFZ4viewL_ACvp" - } - ], - "key.typename" : "(SupplementaryContainerView.Type) -> (UICollectionView, String, IndexPath, ReusableViewCache, ListEnvironment) -> SupplementaryContainerView", - "key.typeusr" : "$s2in3for2at10reuseCache11environment10ListableUI26SupplementaryContainerViewCSo012UICollectionK0C_SS10Foundation9IndexPathVAF08ReusablekE0CAF15ListEnvironmentVtcD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC7dequeue2in3for2at10reuseCache11environmentACSo012UICollectionE0C_SS10Foundation9IndexPathVAA08ReusableeK0CAA15ListEnvironmentVtFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 13, - "key.name" : "MARK: Content", - "key.offset" : 2456 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func setHeaderFooter(_ new: AnyPresentationHeaderFooterState<\/Type>?, animated: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 750, - "key.bodyoffset" : 2568, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> setHeaderFooter<\/decl.name>(_<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 833, - "key.line" : 77, - "key.modulename" : "ListableUI", - "key.name" : "setHeaderFooter(_:animated:)", - "key.namelength" : 75, - "key.nameoffset" : 2491, - "key.offset" : 2486, - "key.parsed_declaration" : "func setHeaderFooter(_ new : AnyPresentationHeaderFooterState?, animated : Bool)", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 77, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let old: (any AnyPresentationHeaderFooterState<\/Type>)?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: (any AnyPresentationHeaderFooterState<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 22, - "key.line" : 82, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 2661, - "key.offset" : 2657, - "key.parsed_declaration" : "let old = headerFooter", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 82, - "key.reusingastcontext" : false, - "key.typename" : "(any AnyPresentationHeaderFooterState)?", - "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC15setHeaderFooter_8animatedyAA015AnyPresentationgH5State_pSg_SbtF3oldL_AGvp" - }, - { - "key.annotated_decl" : "let cache: ReusableViewCache<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 28, - "key.line" : 86, - "key.modulename" : "ListableUI", - "key.name" : "cache", - "key.namelength" : 5, - "key.nameoffset" : 2737, - "key.offset" : 2733, - "key.parsed_declaration" : "let cache = self.reuseCache!", - "key.parsed_scope.end" : 86, - "key.parsed_scope.start" : 86, - "key.reusingastcontext" : false, - "key.typename" : "ReusableViewCache", - "key.typeusr" : "$s10ListableUI17ReusableViewCacheCD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC15setHeaderFooter_8animatedyAA015AnyPresentationgH5State_pSg_SbtF5cacheL_AA08ReusableE5CacheCvp" - } - ], - "key.typename" : "(SupplementaryContainerView) -> ((any AnyPresentationHeaderFooterState)?, Bool) -> ()", - "key.typeusr" : "$s_8animatedy10ListableUI32AnyPresentationHeaderFooterState_pSg_SbtcD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC15setHeaderFooter_8animatedyAA015AnyPresentationgH5State_pSg_SbtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var headerFooter: AnyPresentationHeaderFooterState<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 3329 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> headerFooter<\/decl.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "headerFooter", - "key.namelength" : 12, - "key.nameoffset" : 3346, - "key.offset" : 3342, - "key.parsed_declaration" : "private(set) var headerFooter : AnyPresentationHeaderFooterState?", - "key.parsed_scope.end" : 105, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "(any AnyPresentationHeaderFooterState)?", - "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC12headerFooterAA021AnyPresentationHeaderG5State_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var environment: ListEnvironment<\/Type>!<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Note: Using implicitly unwrapped optionals because we cannot do\ninitializer injection in this type – `UICollectionView` calls `init(frame:)`,\nwe must use property injection instead.\n\nWe use IUOs to avoid having to unwrap the values at each call site.", - "key.doc.column" : 9, - "key.doc.comment" : "Note: Using implicitly unwrapped optionals because we cannot do\ninitializer injection in this type – `UICollectionView` calls `init(frame:)`,\nwe must use property injection instead.\n\nWe use IUOs to avoid having to unwrap the values at each call site.", - "key.doc.declaration" : "@MainActor var environment: ListEnvironment!", - "key.doc.discussion" : [ - { - "Para" : "We use IUOs to avoid having to unwrap the values at each call site." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI26SupplementaryContainerViewC11environmentAA15ListEnvironmentVSgvp<\/USR>@MainActor var environment: ListEnvironment!<\/Declaration>Note: Using implicitly unwrapped optionals because we cannot do initializer injection in this type – UICollectionView<\/codeVoice> calls init(frame:)<\/codeVoice>, we must use property injection instead.<\/Para><\/Abstract>We use IUOs to avoid having to unwrap the values at each call site.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 113, - "key.doc.name" : "environment", - "key.doc.type" : "Other", - "key.doclength" : 288, - "key.docoffset" : 3404, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct>!<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 113, - "key.modulename" : "ListableUI", - "key.name" : "environment", - "key.namelength" : 11, - "key.nameoffset" : 3705, - "key.offset" : 3701, - "key.parsed_declaration" : "var environment : ListEnvironment!", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 113, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListEnvironment?", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVSgD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC11environmentAA15ListEnvironmentVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var reuseCache: ReusableViewCache<\/Type>!<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> reuseCache<\/decl.name>: ReusableViewCache<\/ref.class>!<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 114, - "key.modulename" : "ListableUI", - "key.name" : "reuseCache", - "key.namelength" : 10, - "key.nameoffset" : 3744, - "key.offset" : 3740, - "key.parsed_declaration" : "var reuseCache : ReusableViewCache!", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 114, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ReusableViewCache?", - "key.typeusr" : "$s10ListableUI17ReusableViewCacheCSgD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC10reuseCacheAA08ReusableeG0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func setContent(_ new: UIView<\/Type>?, animated: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 1091, - "key.bodyoffset" : 3835, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> setContent<\/decl.name>(_<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: UIView<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1142, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "setContent(_:animated:)", - "key.namelength" : 43, - "key.nameoffset" : 3790, - "key.offset" : 3785, - "key.parsed_declaration" : "func setContent(_ new : UIView?, animated: Bool)", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let old: UIView<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: UIView<\/ref.class>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 17, - "key.line" : 120, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 3912, - "key.offset" : 3908, - "key.parsed_declaration" : "let old = content", - "key.parsed_scope.end" : 120, - "key.parsed_scope.start" : 120, - "key.reusingastcontext" : false, - "key.typename" : "UIView?", - "key.typeusr" : "$sSo6UIViewCSgD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC10setContent_8animatedySo6UIViewCSg_SbtF3oldL_AHvp" - } - ], - "key.typename" : "(SupplementaryContainerView) -> (UIView?, Bool) -> ()", - "key.typeusr" : "$s_8animatedySo6UIViewCSg_SbtcD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC10setContent_8animatedySo6UIViewCSg_SbtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var content: UIView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 4937 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> content<\/decl.name>: UIView<\/ref.class>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 159, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 4954, - "key.offset" : 4950, - "key.parsed_declaration" : "private(set) var content : UIView?", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 159, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "UIView?", - "key.typeusr" : "$sSo6UIViewCSgD", - "key.usr" : "s:10ListableUI26SupplementaryContainerViewC7contentSo6UIViewCSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 4991 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override init(frame: CGRect<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 5032 - } - ], - "key.bodylength" : 126, - "key.bodyoffset" : 5066, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 152, - "key.line" : 165, - "key.modulename" : "ListableUI", - "key.name" : "init(frame:)", - "key.namelength" : 19, - "key.nameoffset" : 5041, - "key.offset" : 5041, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)initWithFrame:" - } - ], - "key.parsed_declaration" : "override init(frame: CGRect)", - "key.parsed_scope.end" : 171, - "key.parsed_scope.start" : 165, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SupplementaryContainerView.Type) -> (CGRect) -> SupplementaryContainerView", - "key.typeusr" : "$s5frame10ListableUI26SupplementaryContainerViewCSo6CGRectV_tcD", - "key.usr" : "c:@M@ListableUI@objc(cs)SupplementaryContainerView(im)initWithFrame:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 5234 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 5203 - } - ], - "key.bodylength" : 25, - "key.bodyoffset" : 5266, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 49, - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 5243, - "key.offset" : 5243, - "key.substructure" : [ - - ] - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 30, - "key.name" : "MARK: UICollectionReusableView", - "key.offset" : 5305 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 5345 - } - ], - "key.bodylength" : 1883, - "key.bodyoffset" : 5487, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preferredLayoutAttributesFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> layoutAttributes<\/decl.var.parameter.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2017, - "key.line" : 178, - "key.modulename" : "ListableUI", - "key.name" : "preferredLayoutAttributesFitting(_:)", - "key.namelength" : 86, - "key.nameoffset" : 5359, - "key.offset" : 5354, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionReusableView(im)preferredLayoutAttributesFittingAttributes:" - } - ], - "key.parsed_declaration" : "override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes", - "key.parsed_scope.end" : 211, - "key.parsed_scope.start" : 178, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SupplementaryContainerView) -> (UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes", - "key.typeusr" : "$sySo32UICollectionViewLayoutAttributesCABcD", - "key.usr" : "c:@M@ListableUI@objc(cs)SupplementaryContainerView(im)preferredLayoutAttributesFittingAttributes:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func prepareForReuse()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 7381 - } - ], - "key.bodylength" : 92, - "key.bodyoffset" : 7418, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Listable already properly sizes each cell. We do not use self-sizing cells.\nThus, just return the existing layout attributes.\n\nThis avoids an expensive call to sizeThatFits to \"re-size\" the cell to the same size\nduring each of UICollectionView's layout passes:\n\n#0 ItemElementCell.sizeThatFits(_:)\n#1 @objc ItemElementCell.sizeThatFits(_:) ()\n#2 -[UICollectionViewCell systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:] ()\n#3 -[UICollectionReusableView preferredLayoutAttributesFittingAttributes:] ()\n#4 -[UICollectionReusableView _preferredLayoutAttributesFittingAttributes:] ()\n#5 -[UICollectionView _checkForPreferredAttributesInView:originalAttributes:] ()\n#6 -[UICollectionView _updateVisibleCellsNow:] ()\n#7 -[UICollectionView layoutSubviews] ()\n\nReturning the passed in value without calling super is OK, per the docs:\nhttps:\/\/developer.apple.com\/documentation\/uikit\/uicollectionreusableview\/1620132-preferredlayoutattributesfitting\n\n | The default implementation of this method adjusts the size values to accommodate changes made by a self-sizing cell.\n | Subclasses can override this method and use it to adjust other layout attributes too.\n | If you override this method and want the cell size adjustments, call super first and make your own modifications to the returned attributes.\n\nImportant part being \"If you override this method **and want the cell size adjustments**, call super first\".\n\nWe do not want these. Thus, this is fine.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> prepareForReuse<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 121, - "key.line" : 213, - "key.modulename" : "ListableUI", - "key.name" : "prepareForReuse()", - "key.namelength" : 17, - "key.nameoffset" : 7395, - "key.offset" : 7390, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionReusableView(im)prepareForReuse" - } - ], - "key.parsed_declaration" : "override func prepareForReuse()", - "key.parsed_scope.end" : 218, - "key.parsed_scope.start" : 213, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SupplementaryContainerView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)SupplementaryContainerView(im)prepareForReuse" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 12, - "key.name" : "MARK: UIView", - "key.offset" : 7531 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func sizeThatFits(_ size: CGSize<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 7560 - } - ], - "key.bodylength" : 148, - "key.bodyoffset" : 7614, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sizeThatFits<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 194, - "key.line" : 224, - "key.modulename" : "ListableUI", - "key.name" : "sizeThatFits(_:)", - "key.namelength" : 28, - "key.nameoffset" : 7574, - "key.offset" : 7569, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)sizeThatFits:" - } - ], - "key.parsed_declaration" : "override func sizeThatFits(_ size: CGSize) -> CGSize", - "key.parsed_scope.end" : 231, - "key.parsed_scope.start" : 224, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SupplementaryContainerView) -> (CGSize) -> CGSize", - "key.typeusr" : "$sySo6CGSizeVABcD", - "key.usr" : "c:@M@ListableUI@objc(cs)SupplementaryContainerView(im)sizeThatFits:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func systemLayoutSizeFitting(_ targetSize: CGSize<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 7773 - } - ], - "key.bodylength" : 165, - "key.bodyoffset" : 7844, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 228, - "key.line" : 233, - "key.modulename" : "ListableUI", - "key.name" : "systemLayoutSizeFitting(_:)", - "key.namelength" : 45, - "key.nameoffset" : 7787, - "key.offset" : 7782, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)systemLayoutSizeFittingSize:" - } - ], - "key.parsed_declaration" : "override func systemLayoutSizeFitting(_ targetSize: CGSize) -> CGSize", - "key.parsed_scope.end" : 240, - "key.parsed_scope.start" : 233, - "key.related_decls" : [ - { - "key.annotated_decl" : "systemLayoutSizeFitting(_:withHorizontalFittingPriority:verticalFittingPriority:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SupplementaryContainerView) -> (CGSize) -> CGSize", - "key.typeusr" : "$sySo6CGSizeVABcD", - "key.usr" : "c:@M@ListableUI@objc(cs)SupplementaryContainerView(im)systemLayoutSizeFittingSize:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func systemLayoutSizeFitting(_ targetSize: CGSize<\/Type>, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority<\/Type>, verticalFittingPriority: UILayoutPriority<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 8020 - } - ], - "key.bodylength" : 319, - "key.bodyoffset" : 8239, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withHorizontalFittingPriority<\/decl.var.parameter.argument_label> horizontalFittingPriority<\/decl.var.parameter.name>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, verticalFittingPriority<\/decl.var.parameter.argument_label>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 530, - "key.line" : 242, - "key.modulename" : "ListableUI", - "key.name" : "systemLayoutSizeFitting(_:withHorizontalFittingPriority:verticalFittingPriority:)", - "key.namelength" : 193, - "key.nameoffset" : 8034, - "key.offset" : 8029, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:" - } - ], - "key.parsed_declaration" : "override func systemLayoutSizeFitting(\n _ targetSize: CGSize,\n withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority,\n verticalFittingPriority: UILayoutPriority\n) -> CGSize", - "key.parsed_scope.end" : 257, - "key.parsed_scope.start" : 242, - "key.related_decls" : [ - { - "key.annotated_decl" : "systemLayoutSizeFitting(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SupplementaryContainerView) -> (CGSize, UILayoutPriority, UILayoutPriority) -> CGSize", - "key.typeusr" : "$s_29withHorizontalFittingPriority08verticalcD0So6CGSizeVAD_So08UILayoutD0aAFtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)SupplementaryContainerView(im)systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutSubviews()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 8569 - } - ], - "key.bodylength" : 135, - "key.bodyoffset" : 8605, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 163, - "key.line" : 259, - "key.modulename" : "ListableUI", - "key.name" : "layoutSubviews()", - "key.namelength" : 16, - "key.nameoffset" : 8583, - "key.offset" : 8578, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)layoutSubviews" - } - ], - "key.parsed_declaration" : "override func layoutSubviews()", - "key.parsed_scope.end" : 266, - "key.parsed_scope.start" : 259, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SupplementaryContainerView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)SupplementaryContainerView(im)layoutSubviews" - } - ], - "key.typename" : "SupplementaryContainerView.Type", - "key.typeusr" : "$s10ListableUI26SupplementaryContainerViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)SupplementaryContainerView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 12585, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let haptics: UIImpactFeedbackGenerator<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 106 - } - ], - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> haptics<\/decl.name>: UIImpactFeedbackGenerator<\/ref.class><\/decl.var.type><\/decl.var.global>", - "key.kind" : "source.lang.swift.decl.var.global", - "key.length" : 54, - "key.line" : 10, - "key.modulename" : "ListableUI", - "key.name" : "haptics", - "key.namelength" : 7, - "key.nameoffset" : 118, - "key.offset" : 114, - "key.parsed_declaration" : "private let haptics = UIImpactFeedbackGenerator(style: .light)", - "key.parsed_scope.end" : 10, - "key.parsed_scope.start" : 10, - "key.reusingastcontext" : false, - "key.typename" : "UIImpactFeedbackGenerator", - "key.typeusr" : "$sSo25UIImpactFeedbackGeneratorCD", - "key.usr" : "s:10ListableUI7haptics05_35E6D26CF4A49F65D2A6FA538E457EABFLLSo25UIImpactFeedbackGeneratorCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> final class SwipeActionsView : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 170 - } - ], - "key.bodylength" : 8939, - "key.bodyoffset" : 208, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 200 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SwipeActionsView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIView" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 8972, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "SwipeActionsView", - "key.namelength" : 16, - "key.nameoffset" : 182, - "key.offset" : 176, - "key.parsed_declaration" : "final class SwipeActionsView: UIView", - "key.parsed_scope.end" : 256, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum SwipeActionsView<\/Type>.Side : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 42, - "key.bodyoffset" : 240, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 229 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> SwipeActionsView<\/ref.class>.Side<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 65, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "Side", - "key.namelength" : 4, - "key.nameoffset" : 223, - "key.offset" : 218, - "key.parsed_declaration" : "enum Side: Equatable", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 249, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case left<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> left<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "left", - "key.namelength" : 4, - "key.nameoffset" : 254, - "key.offset" : 254, - "key.parsed_declaration" : "case left", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "(SwipeActionsView.Side.Type) -> SwipeActionsView.Side", - "key.typeusr" : "$sy10ListableUI16SwipeActionsViewC4SideOAEmcD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC4SideO4leftyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 10, - "key.offset" : 267, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case right<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> right<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 5, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "right", - "key.namelength" : 5, - "key.nameoffset" : 272, - "key.offset" : 272, - "key.parsed_declaration" : "case right", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "(SwipeActionsView.Side.Type) -> SwipeActionsView.Side", - "key.typeusr" : "$sy10ListableUI16SwipeActionsViewC4SideOAEmcD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC4SideO5rightyA2EmF" - } - ] - } - ], - "key.typename" : "SwipeActionsView.Side.Type", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOmD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC4SideO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var actionButtons: [DefaultSwipeActionButton<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 289 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> actionButtons<\/decl.name>: [DefaultSwipeActionButton<\/ref.class>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "actionButtons", - "key.namelength" : 13, - "key.nameoffset" : 301, - "key.offset" : 297, - "key.parsed_declaration" : "private var actionButtons: [DefaultSwipeActionButton] = []", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[DefaultSwipeActionButton]", - "key.typeusr" : "$sSay10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLCGD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC13actionButtons05_35E6H26CF4A49F65D2A6FA538E457EABFLLSayAA07DefaultC12ActionButtonAELLCGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private let container: UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 352 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> container<\/decl.name>: UIView<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 153, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "container", - "key.namelength" : 9, - "key.nameoffset" : 364, - "key.offset" : 360, - "key.parsed_declaration" : "private let container: UIView = {\n let view = UIView()\n view.backgroundColor = .clear\n view.clipsToBounds = true\n return view\n}()", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "UIView", - "key.typeusr" : "$sSo6UIViewCD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC9container05_35E6G26CF4A49F65D2A6FA538E457EABFLLSo6UIViewCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var calculatedNaturalWidth: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 518 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> calculatedNaturalWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "calculatedNaturalWidth", - "key.namelength" : 22, - "key.nameoffset" : 530, - "key.offset" : 526, - "key.parsed_declaration" : "private var calculatedNaturalWidth: CGFloat = 0", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC22calculatedNaturalWidth05_35E6I26CF4A49F65D2A6FA538E457EABFLL14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var firstAction: SwipeAction<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 571 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> firstAction<\/decl.name>: SwipeAction<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "firstAction", - "key.namelength" : 11, - "key.nameoffset" : 583, - "key.offset" : 579, - "key.parsed_declaration" : "private var firstAction: SwipeAction?", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "SwipeAction?", - "key.typeusr" : "$s10ListableUI11SwipeActionVSgD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC11firstAction05_35E6H26CF4A49F65D2A6FA538E457EABFLLAA0cG0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var didPerformAction: SwipeAction<\/Type>.OnDidPerformAction<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 613 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didPerformAction<\/decl.name>: SwipeAction<\/ref.struct>.OnDidPerformAction<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "didPerformAction", - "key.namelength" : 16, - "key.nameoffset" : 625, - "key.offset" : 621, - "key.parsed_declaration" : "private var didPerformAction: SwipeAction.OnDidPerformAction", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "(SwipeAction.OnDidPerformActionAnimation) -> ()", - "key.typeusr" : "$syy10ListableUI11SwipeActionV012OnDidPerformD9AnimationOcD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC16didPerformAction05_35E6I26CF4A49F65D2A6FA538E457EABFLLyyAA0cH0V05OnDidgH9AnimationOcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var style: SwipeActionsViewStyle<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 683 - } - ], - "key.bodylength" : 114, - "key.bodyoffset" : 725, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> style<\/decl.name>: SwipeActionsViewStyle<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 149, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "style", - "key.namelength" : 5, - "key.nameoffset" : 695, - "key.offset" : 691, - "key.parsed_declaration" : "private var style: SwipeActionsViewStyle", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "SwipeActionsViewStyle", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC5style05_35E6G26CF4A49F65D2A6FA538E457EABFLLAA0cdE5StyleVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var swipeActionsWidth: CGFloat<\/Type> { get }<\/Declaration>", - "key.bodylength" : 59, - "key.bodyoffset" : 878, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> swipeActionsWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 92, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "swipeActionsWidth", - "key.namelength" : 17, - "key.nameoffset" : 850, - "key.offset" : 846, - "key.parsed_declaration" : "var swipeActionsWidth: CGFloat", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC05swipeD5Width14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var state: SwipeActionState<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 944 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> state<\/decl.name>: SwipeActionState<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 956, - "key.offset" : 952, - "key.parsed_declaration" : "private var state: SwipeActionState = .closed", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "SwipeActionState", - "key.typeusr" : "$s10ListableUI16SwipeActionStateOD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC5state05_35E6G26CF4A49F65D2A6FA538E457EABFLLAA0C11ActionStateOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let side: Side<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The side this swipe actions view will originate from when presented.", - "key.doc.column" : 9, - "key.doc.comment" : "The side this swipe actions view will originate from when presented.", - "key.doc.declaration" : "@MainActor let side: Side", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.doc.full_as_xml" : "side<\/Name>s:10ListableUI16SwipeActionsViewC4sideAC4SideOvp<\/USR>@MainActor let side: Side<\/Declaration>The side this swipe actions view will originate from when presented.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 46, - "key.doc.name" : "side", - "key.doc.type" : "Other", - "key.doclength" : 73, - "key.docoffset" : 999, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> side<\/decl.name>: Side<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 14, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "side", - "key.namelength" : 4, - "key.nameoffset" : 1080, - "key.offset" : 1076, - "key.parsed_declaration" : "let side: Side", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsView.Side", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewC4SideOD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC4sideAC4SideOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var availableButtonWidth: CGFloat<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1096 - } - ], - "key.bodylength" : 218, - "key.bodyoffset" : 1139, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> availableButtonWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 254, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "availableButtonWidth", - "key.namelength" : 20, - "key.nameoffset" : 1108, - "key.offset" : 1104, - "key.parsed_declaration" : "private var availableButtonWidth: CGFloat", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 48, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC20availableButtonWidth05_35E6I26CF4A49F65D2A6FA538E457EABFLL14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var userInterfaceLayoutDirection: UIUserInterfaceLayoutDirection<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1368 - } - ], - "key.bodylength" : 87, - "key.bodyoffset" : 1442, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> userInterfaceLayoutDirection<\/decl.name>: UIUserInterfaceLayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 154, - "key.line" : 56, - "key.modulename" : "ListableUI", - "key.name" : "userInterfaceLayoutDirection", - "key.namelength" : 28, - "key.nameoffset" : 1380, - "key.offset" : 1376, - "key.parsed_declaration" : "private var userInterfaceLayoutDirection: UIUserInterfaceLayoutDirection", - "key.parsed_scope.end" : 58, - "key.parsed_scope.start" : 56, - "key.related_decls" : [ - { - "key.annotated_decl" : "userInterfaceLayoutDirection(for:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "userInterfaceLayoutDirection(for:relativeTo:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "UIUserInterfaceLayoutDirection", - "key.typeusr" : "$sSo30UIUserInterfaceLayoutDirectionVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC28userInterfaceLayoutDirection05_35E6J26CF4A49F65D2A6FA538E457EABFLLSo06UIUserghI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> init(side: Side<\/Type>, style: SwipeActionsViewStyle<\/Type>, didPerformAction: @escaping SwipeAction<\/Type>.OnDidPerformAction<\/Type>)<\/Declaration>", - "key.bodylength" : 199, - "key.bodyoffset" : 1674, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> init<\/syntaxtype.keyword>(side<\/decl.var.parameter.argument_label>: Side<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, style<\/decl.var.parameter.argument_label>: SwipeActionsViewStyle<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, didPerformAction<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> SwipeAction<\/ref.struct>.OnDidPerformAction<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 338, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "init(side:style:didPerformAction:)", - "key.namelength" : 136, - "key.nameoffset" : 1536, - "key.offset" : 1536, - "key.parsed_declaration" : "init(\n side: Side,\n style: SwipeActionsViewStyle,\n didPerformAction: @escaping SwipeAction.OnDidPerformAction\n)", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 60, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(coder:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionsView.Type) -> (SwipeActionsView.Side, SwipeActionsViewStyle, @escaping (SwipeAction.OnDidPerformActionAnimation) -> ()) -> SwipeActionsView", - "key.typeusr" : "$s4side5style16didPerformAction10ListableUI16SwipeActionsViewCAF4SideO_AD0hiJ5StyleVyAD0hE0V05OnDiddE9AnimationOctcD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC4side5style16didPerformActionA2C4SideO_AA0cdE5StyleVyAA0cJ0V05OnDidiJ9AnimationOctcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> required init?(coder: NSCoder<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 1880 - } - ], - "key.bodylength" : 65, - "key.bodyoffset" : 1912, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> required<\/syntaxtype.keyword> init<\/syntaxtype.keyword>?(coder<\/decl.var.parameter.argument_label>: NSCoder<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 89, - "key.line" : 74, - "key.modulename" : "ListableUI", - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 1889, - "key.offset" : 1889, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)initWithCoder:" - }, - { - "key.usr" : "c:objc(pl)NSCoding(im)initWithCoder:" - } - ], - "key.parsed_declaration" : "required init?(coder: NSCoder)", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 74, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(side:style:didPerformAction:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionsView.Type) -> (NSCoder) -> SwipeActionsView?", - "key.typeusr" : "$s5coder10ListableUI16SwipeActionsViewCSgSo7NSCoderC_tcD", - "key.usr" : "c:@M@ListableUI@objc(cs)SwipeActionsView(im)initWithCoder:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutSubviews()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 1984 - } - ], - "key.bodylength" : 3815, - "key.bodyoffset" : 2016, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3839, - "key.line" : 78, - "key.modulename" : "ListableUI", - "key.name" : "layoutSubviews()", - "key.namelength" : 16, - "key.nameoffset" : 1998, - "key.offset" : 1993, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)layoutSubviews" - } - ], - "key.parsed_declaration" : "override func layoutSubviews()", - "key.parsed_scope.end" : 164, - "key.parsed_scope.start" : 78, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let insets: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 92, - "key.line" : 81, - "key.modulename" : "ListableUI", - "key.name" : "insets", - "key.namelength" : 6, - "key.nameoffset" : 2061, - "key.offset" : 2057, - "key.parsed_declaration" : "let insets = style.containerInsets(for: side, layoutDirection: userInterfaceLayoutDirection)", - "key.parsed_scope.end" : 81, - "key.parsed_scope.start" : 81, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC14layoutSubviewsyyF6insetsL_So12UIEdgeInsetsVvp" - }, - { - "key.annotated_decl" : "let buttons: [DefaultSwipeActionButton<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> buttons<\/decl.name>: [DefaultSwipeActionButton<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 39, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "buttons", - "key.namelength" : 7, - "key.nameoffset" : 2526, - "key.offset" : 2522, - "key.parsed_declaration" : "let buttons: [DefaultSwipeActionButton]", - "key.parsed_scope.end" : 89, - "key.parsed_scope.start" : 89, - "key.reusingastcontext" : false, - "key.typename" : "[DefaultSwipeActionButton]", - "key.typeusr" : "$sSay10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLCGD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC14layoutSubviewsyyF7buttonsL_SayAA07DefaultC12ActionButton05_35E6L26CF4A49F65D2A6FA538E457EABFLLCGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> func xOriginForButton(at index: Int<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.bodylength" : 235, - "key.bodyoffset" : 2973, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> xOriginForButton<\/decl.name>(at<\/decl.var.parameter.argument_label> index<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 285, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "xOriginForButton(at:)", - "key.namelength" : 31, - "key.nameoffset" : 2929, - "key.offset" : 2924, - "key.parsed_declaration" : "func xOriginForButton(at index: Int) -> CGFloat", - "key.parsed_scope.end" : 104, - "key.parsed_scope.start" : 99, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let previousButtons: [DefaultSwipeActionButton<\/Type>]<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> previousButtons<\/decl.name>: [DefaultSwipeActionButton<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 47, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "previousButtons", - "key.namelength" : 15, - "key.nameoffset" : 2990, - "key.offset" : 2986, - "key.parsed_declaration" : "let previousButtons = Array(buttons[0..let position: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> position<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 48, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "position", - "key.namelength" : 8, - "key.nameoffset" : 3050, - "key.offset" : 3046, - "key.parsed_declaration" : "let position = width(ofButtons: previousButtons)", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 101, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC14layoutSubviewsyyF16xOriginForButtonL_2at14CoreFoundation7CGFloatVSi_tF8positionL_AIvp" - }, - { - "key.annotated_decl" : "let percentOpen: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> percentOpen<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 50, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "percentOpen", - "key.namelength" : 11, - "key.nameoffset" : 3111, - "key.offset" : 3107, - "key.parsed_declaration" : "let percentOpen = bounds.width \/ swipeActionsWidth", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 102, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC14layoutSubviewsyyF16xOriginForButtonL_2at14CoreFoundation7CGFloatVSi_tF11percentOpenL_AIvp" - } - ], - "key.typename" : "(Int) -> CGFloat", - "key.typeusr" : "$s2at14CoreFoundation7CGFloatVSi_tcD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC14layoutSubviewsyyF16xOriginForButtonL_2at14CoreFoundation7CGFloatVSi_tF" - } - ], - "key.typename" : "(SwipeActionsView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)SwipeActionsView(im)layoutSubviews" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func width(ofButtons buttons: [DefaultSwipeActionButton<\/Type>]) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5838 - } - ], - "key.bodylength" : 1040, - "key.bodyoffset" : 5916, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> width<\/decl.name>(ofButtons<\/decl.var.parameter.argument_label> buttons<\/decl.var.parameter.name>: [DefaultSwipeActionButton<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1111, - "key.line" : 166, - "key.modulename" : "ListableUI", - "key.name" : "width(ofButtons:)", - "key.namelength" : 52, - "key.nameoffset" : 5851, - "key.offset" : 5846, - "key.parsed_declaration" : "private func width(ofButtons buttons: [DefaultSwipeActionButton]) -> CGFloat", - "key.parsed_scope.end" : 190, - "key.parsed_scope.start" : 166, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let spacingWidth: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> spacingWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 63, - "key.line" : 167, - "key.modulename" : "ListableUI", - "key.name" : "spacingWidth", - "key.namelength" : 12, - "key.nameoffset" : 5929, - "key.offset" : 5925, - "key.parsed_declaration" : "let spacingWidth = spacingWidth(numberOfButtons: buttons.count)", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 167, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC5width05_35E6G26CF4A49F65D2A6FA538E457EABFLL9ofButtons14CoreFoundation7CGFloatVSayAA07DefaultC12ActionButtonAELLCG_tF12spacingWidthL_AIvp" - } - ], - "key.typename" : "(SwipeActionsView) -> ([DefaultSwipeActionButton]) -> CGFloat", - "key.typeusr" : "$s9ofButtons14CoreFoundation7CGFloatVSay10ListableUI24DefaultSwipeActionButton05_35E6L26CF4A49F65D2A6FA538E457EABFLLCG_tcD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC5width05_35E6G26CF4A49F65D2A6FA538E457EABFLL9ofButtons14CoreFoundation7CGFloatVSayAA07DefaultC12ActionButtonAELLCG_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func spacingWidth(numberOfButtons: Int<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6967 - } - ], - "key.bodylength" : 86, - "key.bodyoffset" : 7027, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> spacingWidth<\/decl.name>(numberOfButtons<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 139, - "key.line" : 192, - "key.modulename" : "ListableUI", - "key.name" : "spacingWidth(numberOfButtons:)", - "key.namelength" : 34, - "key.nameoffset" : 6980, - "key.offset" : 6975, - "key.parsed_declaration" : "private func spacingWidth(numberOfButtons: Int) -> CGFloat", - "key.parsed_scope.end" : 194, - "key.parsed_scope.start" : 192, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionsView) -> (Int) -> CGFloat", - "key.typeusr" : "$s15numberOfButtons14CoreFoundation7CGFloatVSi_tcD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC12spacingWidth05_35E6H26CF4A49F65D2A6FA538E457EABFLL15numberOfButtons14CoreFoundation7CGFloatVSi_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func apply(actions: SwipeActionsConfiguration<\/Type>, style: SwipeActionsViewStyle<\/Type>)<\/Declaration>", - "key.bodylength" : 1238, - "key.bodyoffset" : 7198, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> apply<\/decl.name>(actions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, style<\/decl.var.parameter.argument_label>: SwipeActionsViewStyle<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1317, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "apply(actions:style:)", - "key.namelength" : 71, - "key.nameoffset" : 7125, - "key.offset" : 7120, - "key.parsed_declaration" : "func apply(actions: SwipeActionsConfiguration, style: SwipeActionsViewStyle)", - "key.parsed_scope.end" : 224, - "key.parsed_scope.start" : 196, - "key.related_decls" : [ - { - "key.annotated_decl" : "apply(state:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let styleUpdateRequired: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> styleUpdateRequired<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 197, - "key.modulename" : "ListableUI", - "key.name" : "styleUpdateRequired", - "key.namelength" : 19, - "key.nameoffset" : 7211, - "key.offset" : 7207, - "key.parsed_declaration" : "let styleUpdateRequired = style != self.style", - "key.parsed_scope.end" : 197, - "key.parsed_scope.start" : 197, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC5apply7actions5styleyAA0cD13ConfigurationV_AA0cdE5StyleVtF0H14UpdateRequiredL_Sbvp" - }, - { - "key.annotated_decl" : "let containerInsets: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> containerInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 101, - "key.line" : 221, - "key.modulename" : "ListableUI", - "key.name" : "containerInsets", - "key.namelength" : 15, - "key.nameoffset" : 8221, - "key.offset" : 8217, - "key.parsed_declaration" : "let containerInsets = style.containerInsets(for: side, layoutDirection: userInterfaceLayoutDirection)", - "key.parsed_scope.end" : 221, - "key.parsed_scope.start" : 221, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC5apply7actions5styleyAA0cD13ConfigurationV_AA0cdE5StyleVtF15containerInsetsL_So06UIEdgeL0Vvp" - } - ], - "key.typename" : "(SwipeActionsView) -> (SwipeActionsConfiguration, SwipeActionsViewStyle) -> ()", - "key.typeusr" : "$s7actions5styley10ListableUI25SwipeActionsConfigurationV_AC0eF9ViewStyleVtcD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC5apply7actions5styleyAA0cD13ConfigurationV_AA0cdE5StyleVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func apply(state newState: SwipeActionState<\/Type>)<\/Declaration>", - "key.bodylength" : 656, - "key.bodyoffset" : 8489, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> apply<\/decl.name>(state<\/decl.var.parameter.argument_label> newState<\/decl.var.parameter.name>: SwipeActionState<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 703, - "key.line" : 226, - "key.modulename" : "ListableUI", - "key.name" : "apply(state:)", - "key.namelength" : 39, - "key.nameoffset" : 8448, - "key.offset" : 8443, - "key.parsed_declaration" : "func apply(state newState: SwipeActionState)", - "key.parsed_scope.end" : 255, - "key.parsed_scope.start" : 226, - "key.related_decls" : [ - { - "key.annotated_decl" : "apply(actions:style:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let priorState: SwipeActionState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> priorState<\/decl.name>: SwipeActionState<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 22, - "key.line" : 227, - "key.modulename" : "ListableUI", - "key.name" : "priorState", - "key.namelength" : 10, - "key.nameoffset" : 8502, - "key.offset" : 8498, - "key.parsed_declaration" : "let priorState = state", - "key.parsed_scope.end" : 227, - "key.parsed_scope.start" : 227, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionState", - "key.typeusr" : "$s10ListableUI16SwipeActionStateOD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC5apply5stateyAA0C11ActionStateO_tF05priorI0L_AGvp" - } - ], - "key.typename" : "(SwipeActionsView) -> (SwipeActionState) -> ()", - "key.typeusr" : "$s5statey10ListableUI16SwipeActionStateO_tcD", - "key.usr" : "s:10ListableUI16SwipeActionsViewC5apply5stateyAA0C11ActionStateO_tF" - } - ], - "key.typename" : "SwipeActionsView.Type", - "key.typeusr" : "$s10ListableUI16SwipeActionsViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)SwipeActionsView" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private class DefaultSwipeActionButton : UIButton<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 9150 - } - ], - "key.bodylength" : 1806, - "key.bodyoffset" : 9200, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 9190 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DefaultSwipeActionButton<\/decl.name> : UIButton<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIButton" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1849, - "key.line" : 258, - "key.modulename" : "ListableUI", - "key.name" : "DefaultSwipeActionButton", - "key.namelength" : 24, - "key.nameoffset" : 9164, - "key.offset" : 9158, - "key.parsed_declaration" : "private class DefaultSwipeActionButton: UIButton", - "key.parsed_scope.end" : 306, - "key.parsed_scope.start" : 258, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private let inset: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 9206 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> inset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 260, - "key.modulename" : "ListableUI", - "key.name" : "inset", - "key.namelength" : 5, - "key.nameoffset" : 9218, - "key.offset" : 9214, - "key.parsed_declaration" : "private let inset: CGFloat = 16", - "key.parsed_scope.end" : 260, - "key.parsed_scope.start" : 260, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC5inset14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var action: SwipeAction<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 9242 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> action<\/decl.name>: SwipeAction<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 261, - "key.modulename" : "ListableUI", - "key.name" : "action", - "key.namelength" : 6, - "key.nameoffset" : 9254, - "key.offset" : 9250, - "key.parsed_declaration" : "private var action: SwipeAction?", - "key.parsed_scope.end" : 261, - "key.parsed_scope.start" : 261, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "action(for:forKey:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "SwipeAction?", - "key.typeusr" : "$s10ListableUI11SwipeActionVSgD", - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC6actionAA0dE0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var didPerformAction: SwipeAction<\/Type>.OnDidPerformAction<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 9279 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didPerformAction<\/decl.name>: SwipeAction<\/ref.struct>.OnDidPerformAction<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 53, - "key.line" : 262, - "key.modulename" : "ListableUI", - "key.name" : "didPerformAction", - "key.namelength" : 16, - "key.nameoffset" : 9291, - "key.offset" : 9287, - "key.parsed_declaration" : "private var didPerformAction: SwipeAction.OnDidPerformAction?", - "key.parsed_scope.end" : 262, - "key.parsed_scope.start" : 262, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "((SwipeAction.OnDidPerformActionAnimation) -> ())?", - "key.typeusr" : "$sy10ListableUI11SwipeActionV012OnDidPerformD9AnimationOcSgD", - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC010didPerformE0yAA0dE0V05OnDidqE9AnimationOcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override init(frame: CGRect<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 9346 - } - ], - "key.bodylength" : 508, - "key.bodyoffset" : 9376, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 530, - "key.line" : 264, - "key.modulename" : "ListableUI", - "key.name" : "init(frame:)", - "key.namelength" : 19, - "key.nameoffset" : 9355, - "key.offset" : 9355, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIButton(im)initWithFrame:" - }, - { - "key.usr" : "c:objc(cs)UIControl(im)initWithFrame:" - }, - { - "key.usr" : "c:objc(cs)UIView(im)initWithFrame:" - } - ], - "key.parsed_declaration" : "override init(frame: CGRect)", - "key.parsed_scope.end" : 275, - "key.parsed_scope.start" : 264, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "init(coder:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(frame:primaryAction:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(type:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(__type:primaryAction:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(__configuration:primaryAction:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init()<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(configuration:primaryAction:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(type:primaryAction:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(DefaultSwipeActionButton.Type) -> (CGRect) -> DefaultSwipeActionButton", - "key.typeusr" : "$s5frame10ListableUI24DefaultSwipeActionButton05_35E6H26CF4A49F65D2A6FA538E457EABFLLCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC5frameADSo6CGRectV_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> required init?(coder: NSCoder<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 9891 - } - ], - "key.bodylength" : 65, - "key.bodyoffset" : 9923, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> required<\/syntaxtype.keyword> init<\/syntaxtype.keyword>?(coder<\/decl.var.parameter.argument_label>: NSCoder<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 89, - "key.line" : 277, - "key.modulename" : "ListableUI", - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 9900, - "key.offset" : 9900, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIButton(im)initWithCoder:" - }, - { - "key.usr" : "c:objc(pl)NSCoding(im)initWithCoder:" - }, - { - "key.usr" : "c:objc(cs)UIControl(im)initWithCoder:" - }, - { - "key.usr" : "c:objc(cs)UIView(im)initWithCoder:" - }, - { - "key.usr" : "c:objc(pl)NSCoding(im)initWithCoder:" - } - ], - "key.parsed_declaration" : "required init?(coder: NSCoder)", - "key.parsed_scope.end" : 279, - "key.parsed_scope.start" : 277, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "init(frame:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(frame:primaryAction:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(type:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(__type:primaryAction:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(__configuration:primaryAction:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init()<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(configuration:primaryAction:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(type:primaryAction:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(DefaultSwipeActionButton.Type) -> (NSCoder) -> DefaultSwipeActionButton?", - "key.typeusr" : "$s5coder10ListableUI24DefaultSwipeActionButton05_35E6H26CF4A49F65D2A6FA538E457EABFLLCSgSo7NSCoderC_tcD", - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC5coderADSgSo7NSCoderC_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func set(action: SwipeAction<\/Type>, didPerformAction: @escaping SwipeAction<\/Type>.OnDidPerformAction<\/Type>)<\/Declaration>", - "key.bodylength" : 748, - "key.bodyoffset" : 10086, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> set<\/decl.name>(action<\/decl.var.parameter.argument_label>: SwipeAction<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, didPerformAction<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> SwipeAction<\/ref.struct>.OnDidPerformAction<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 840, - "key.line" : 281, - "key.modulename" : "ListableUI", - "key.name" : "set(action:didPerformAction:)", - "key.namelength" : 84, - "key.nameoffset" : 10000, - "key.offset" : 9995, - "key.parsed_declaration" : "func set(action: SwipeAction, didPerformAction: @escaping SwipeAction.OnDidPerformAction)", - "key.parsed_scope.end" : 300, - "key.parsed_scope.start" : 281, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(DefaultSwipeActionButton) -> (SwipeAction, @escaping (SwipeAction.OnDidPerformActionAnimation) -> ()) -> ()", - "key.typeusr" : "$s6action16didPerformActiony10ListableUI05SwipeD0V_yAE05OnDidcD9AnimationOctcD", - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC3set6action010didPerformE0yAA0dE0V_yAI05OnDidsE9AnimationOctF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func onTap()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 10847 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 10841 - } - ], - "key.bodylength" : 135, - "key.bodyoffset" : 10869, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onTap<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 150, - "key.line" : 302, - "key.modulename" : "ListableUI", - "key.name" : "onTap()", - "key.namelength" : 7, - "key.nameoffset" : 10860, - "key.offset" : 10855, - "key.parsed_declaration" : "@objc private func onTap()", - "key.parsed_scope.end" : 305, - "key.parsed_scope.start" : 302, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(DefaultSwipeActionButton) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC5onTapyyF" - } - ], - "key.typename" : "DefaultSwipeActionButton.Type", - "key.typeusr" : "$s10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLCmD", - "key.usr" : "s:10ListableUI24DefaultSwipeActionButton05_35E6G26CF4A49F65D2A6FA538E457EABFLLC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "public struct SwipeActionsViewStyle : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 11009 - } - ], - "key.bodylength" : 929, - "key.bodyoffset" : 11050, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SwipeActionsViewStyle<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 963, - "key.line" : 3, - "key.modulename" : "ListableUI", - "key.name" : "SwipeActionsViewStyle", - "key.namelength" : 21, - "key.nameoffset" : 11027, - "key.offset" : 11017, - "key.parsed_declaration" : "private extension SwipeActionsViewStyle", - "key.parsed_scope.end" : 331, - "key.parsed_scope.start" : 308, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "func containerInsets(for side: SwipeActionsView<\/Type>.Side<\/Type>, layoutDirection: UIUserInterfaceLayoutDirection<\/Type>) -> UIEdgeInsets<\/Type><\/Declaration>", - "key.bodylength" : 720, - "key.bodyoffset" : 11257, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The container insets to use for the given side and layout direction.", - "key.doc.column" : 10, - "key.doc.comment" : "The container insets to use for the given side and layout direction.", - "key.doc.declaration" : "func containerInsets(for side: SwipeActionsView.Side, layoutDirection: UIUserInterfaceLayoutDirection) -> UIEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.doc.full_as_xml" : "containerInsets(for:layoutDirection:)<\/Name>s:10ListableUI21SwipeActionsViewStyleV15containerInsets05_35E6I26CF4A49F65D2A6FA538E457EABFLL3for15layoutDirectionSo06UIEdgeH0VAA0cdE0C4SideO_So021UIUserInterfaceLayoutT0VtF<\/USR>func containerInsets(for side: SwipeActionsView.Side, layoutDirection: UIUserInterfaceLayoutDirection) -> UIEdgeInsets<\/Declaration>The container insets to use for the given side and layout direction.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 311, - "key.doc.name" : "containerInsets(for:layoutDirection:)", - "key.doc.type" : "Function", - "key.doclength" : 73, - "key.docoffset" : 11060, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> containerInsets<\/decl.name>(for<\/decl.var.parameter.argument_label> side<\/decl.var.parameter.name>: SwipeActionsView<\/ref.class>.Side<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, layoutDirection<\/decl.var.parameter.argument_label>: UIUserInterfaceLayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIEdgeInsets<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 841, - "key.line" : 311, - "key.modulename" : "ListableUI", - "key.name" : "containerInsets(for:layoutDirection:)", - "key.namelength" : 97, - "key.nameoffset" : 11142, - "key.offset" : 11137, - "key.parsed_declaration" : "func containerInsets(for side: SwipeActionsView.Side, layoutDirection: UIUserInterfaceLayoutDirection) -> UIEdgeInsets", - "key.parsed_scope.end" : 330, - "key.parsed_scope.start" : 311, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let directionalInsets: NSDirectionalEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> directionalInsets<\/decl.name>: NSDirectionalEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 46, - "key.line" : 313, - "key.modulename" : "ListableUI", - "key.name" : "directionalInsets", - "key.namelength" : 17, - "key.nameoffset" : 11279, - "key.offset" : 11275, - "key.parsed_declaration" : "let directionalInsets: NSDirectionalEdgeInsets", - "key.parsed_scope.end" : 313, - "key.parsed_scope.start" : 313, - "key.reusingastcontext" : false, - "key.typename" : "NSDirectionalEdgeInsets", - "key.typeusr" : "$sSo23NSDirectionalEdgeInsetsVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV15containerInsets05_35E6I26CF4A49F65D2A6FA538E457EABFLL3for15layoutDirectionSo06UIEdgeH0VAA0cdE0C4SideO_So021UIUserInterfaceLayoutT0VtF011directionalH0L_So017NSDirectionalEdgeH0Vvp" - } - ], - "key.typename" : "(SwipeActionsViewStyle) -> (SwipeActionsView.Side, UIUserInterfaceLayoutDirection) -> UIEdgeInsets", - "key.typeusr" : "$s3for15layoutDirectionSo12UIEdgeInsetsV10ListableUI16SwipeActionsViewC4SideO_So021UIUserInterfaceLayoutC0VtcD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV15containerInsets05_35E6I26CF4A49F65D2A6FA538E457EABFLL3for15layoutDirectionSo06UIEdgeH0VAA0cdE0C4SideO_So021UIUserInterfaceLayoutT0VtF" - } - ], - "key.typename" : "SwipeActionsViewStyle.Type", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleVmD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@_nonSendable(_assumed) struct NSDirectionalEdgeInsets : @unchecked Sendable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 11982 - } - ], - "key.bodylength" : 558, - "key.bodyoffset" : 12025, - "key.column" : 92, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", - "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> NSDirectionalEdgeInsets<\/decl.name> : @unchecked Sendable<\/ref.protocol><\/decl.struct>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 594, - "key.line" : 35, - "key.modulename" : "UIKit.UIGeometry", - "key.name" : "NSDirectionalEdgeInsets", - "key.namelength" : 23, - "key.nameoffset" : 12000, - "key.offset" : 11990, - "key.parsed_declaration" : "private extension NSDirectionalEdgeInsets", - "key.parsed_scope.end" : 345, - "key.parsed_scope.start" : 333, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "func edgeInsets(for layoutDirection: UIUserInterfaceLayoutDirection<\/Type>) -> UIEdgeInsets<\/Type><\/Declaration>", - "key.bodylength" : 465, - "key.bodyoffset" : 12116, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsView.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> edgeInsets<\/decl.name>(for<\/decl.var.parameter.argument_label> layoutDirection<\/decl.var.parameter.name>: UIUserInterfaceLayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIEdgeInsets<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 552, - "key.line" : 334, - "key.modulename" : "ListableUI", - "key.name" : "edgeInsets(for:)", - "key.namelength" : 63, - "key.nameoffset" : 12035, - "key.offset" : 12030, - "key.parsed_declaration" : "func edgeInsets(for layoutDirection: UIUserInterfaceLayoutDirection) -> UIEdgeInsets", - "key.parsed_scope.end" : 344, - "key.parsed_scope.start" : 334, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(NSDirectionalEdgeInsets) -> (UIUserInterfaceLayoutDirection) -> UIEdgeInsets", - "key.typeusr" : "$s3forSo12UIEdgeInsetsVSo30UIUserInterfaceLayoutDirectionV_tcD", - "key.usr" : "s:So23NSDirectionalEdgeInsetsV10ListableUIE04edgeC005_35E6G26CF4A49F65D2A6FA538E457EABFLL3forSo06UIEdgeC0VSo30UIUserInterfaceLayoutDirectionV_tF" - } - ], - "key.typename" : "NSDirectionalEdgeInsets.Type", - "key.typeusr" : "$sSo23NSDirectionalEdgeInsetsVmD", - "key.usr" : "c:@S@NSDirectionalEdgeInsets" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3333, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct SwipeActionsViewStyle : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14 - } - ], - "key.bodylength" : 2899, - "key.bodyoffset" : 62, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 51 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SwipeActionsViewStyle<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2941, - "key.line" : 3, - "key.modulename" : "ListableUI", - "key.name" : "SwipeActionsViewStyle", - "key.namelength" : 21, - "key.nameoffset" : 28, - "key.offset" : 21, - "key.parsed_declaration" : "public struct SwipeActionsViewStyle: Equatable", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 3, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum SwipeActionsViewStyle<\/Type>.Shape : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 67 - } - ], - "key.bodylength" : 51, - "key.bodyoffset" : 97, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 86 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SwipeActionsViewStyle<\/ref.struct>.Shape<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 75, - "key.line" : 4, - "key.modulename" : "ListableUI", - "key.name" : "Shape", - "key.namelength" : 5, - "key.nameoffset" : 79, - "key.offset" : 74, - "key.parsed_declaration" : "public enum Shape: Equatable", - "key.parsed_scope.end" : 6, - "key.parsed_scope.start" : 4, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 37, - "key.offset" : 106, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case rectangle(cornerRadius: CGFloat<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> rectangle<\/decl.name>(cornerRadius<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 32, - "key.line" : 5, - "key.modulename" : "ListableUI", - "key.name" : "rectangle(cornerRadius:)", - "key.namelength" : 32, - "key.nameoffset" : 111, - "key.offset" : 111, - "key.parsed_declaration" : "case rectangle(cornerRadius: CGFloat)", - "key.parsed_scope.end" : 5, - "key.parsed_scope.start" : 5, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionsViewStyle.Shape.Type) -> (CGFloat) -> SwipeActionsViewStyle.Shape", - "key.typeusr" : "$sy10ListableUI21SwipeActionsViewStyleV5ShapeO14CoreFoundation7CGFloatV_tcAEmcD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV5ShapeO9rectangleyAE14CoreFoundation7CGFloatV_tcAEmF" - } - ] - } - ], - "key.typename" : "SwipeActionsViewStyle.Shape.Type", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleV5ShapeOmD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV5ShapeO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum SwipeActionsViewStyle<\/Type>.ButtonSizing<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 231 - } - ], - "key.bodylength" : 507, - "key.bodyoffset" : 257, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The button sizing algorithm used when laying out swipe actions.", - "key.doc.column" : 17, - "key.doc.comment" : "The button sizing algorithm used when laying out swipe actions.", - "key.doc.declaration" : "public enum ListableUI.SwipeActionsViewStyle.ButtonSizing", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.doc.full_as_xml" : "ButtonSizing<\/Name>s:10ListableUI21SwipeActionsViewStyleV12ButtonSizingO<\/USR>public enum ListableUI.SwipeActionsViewStyle.ButtonSizing<\/Declaration>The button sizing algorithm used when laying out swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 9, - "key.doc.name" : "ButtonSizing", - "key.doc.type" : "Other", - "key.doclength" : 68, - "key.docoffset" : 159, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SwipeActionsViewStyle<\/ref.struct>.ButtonSizing<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 527, - "key.line" : 9, - "key.modulename" : "ListableUI", - "key.name" : "ButtonSizing", - "key.namelength" : 12, - "key.nameoffset" : 243, - "key.offset" : 238, - "key.parsed_declaration" : "public enum ButtonSizing", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 9, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 15, - "key.offset" : 501, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case equalWidth<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Each button button will lay out with an equal width based on the widest button.\n- Note: If the total width of all buttons exceeds the available width, each button\nwill be scaled down equally to fit.", - "key.doc.column" : 14, - "key.doc.comment" : "Each button button will lay out with an equal width based on the widest button.\n- Note: If the total width of all buttons exceeds the available width, each button\nwill be scaled down equally to fit.", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.doc.full_as_xml" : "equalWidth<\/Name>s:10ListableUI21SwipeActionsViewStyleV12ButtonSizingO10equalWidthyA2EmF<\/USR><\/Declaration>Each button button will lay out with an equal width based on the widest button.<\/Para><\/Abstract>If the total width of all buttons exceeds the available width, each button will be scaled down equally to fit.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 13, - "key.doc.name" : "equalWidth", - "key.doc.type" : "Other", - "key.doclength" : 227, - "key.docoffset" : 266, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> equalWidth<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 10, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "equalWidth", - "key.namelength" : 10, - "key.nameoffset" : 506, - "key.offset" : 506, - "key.parsed_declaration" : "case equalWidth", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "(SwipeActionsViewStyle.ButtonSizing.Type) -> SwipeActionsViewStyle.ButtonSizing", - "key.typeusr" : "$sy10ListableUI21SwipeActionsViewStyleV12ButtonSizingOAEmcD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV12ButtonSizingO10equalWidthyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 742, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case sizeThatFits<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Each button receives the amount of space required to fit its contents.\n- Note: If the total width exceeds the available width, the buttons _will not_", - "key.doc.column" : 14, - "key.doc.comment" : "Each button receives the amount of space required to fit its contents.\n- Note: If the total width exceeds the available width, the buttons _will not_", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.doc.full_as_xml" : "sizeThatFits<\/Name>s:10ListableUI21SwipeActionsViewStyleV12ButtonSizingO12sizeThatFitsyA2EmF<\/USR><\/Declaration>Each button receives the amount of space required to fit its contents.<\/Para><\/Abstract>If the total width exceeds the available width, the buttons will not<\/emphasis><\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 18, - "key.doc.name" : "sizeThatFits", - "key.doc.type" : "Other", - "key.doclength" : 166, - "key.docoffset" : 534, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sizeThatFits<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "sizeThatFits", - "key.namelength" : 12, - "key.nameoffset" : 747, - "key.offset" : 747, - "key.parsed_declaration" : "case sizeThatFits", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.typename" : "(SwipeActionsViewStyle.ButtonSizing.Type) -> SwipeActionsViewStyle.ButtonSizing", - "key.typeusr" : "$sy10ListableUI21SwipeActionsViewStyleV12ButtonSizingOAEmcD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV12ButtonSizingO12sizeThatFitsyA2EmF" - } - ] - } - ], - "key.typename" : "SwipeActionsViewStyle.ButtonSizing.Type", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleV12ButtonSizingOmD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV12ButtonSizingO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let `default`: SwipeActionsViewStyle<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 771 - } - ], - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> `default`<\/decl.name>: SwipeActionsViewStyle<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 46, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "default", - "key.namelength" : 7, - "key.nameoffset" : 789, - "key.offset" : 778, - "key.parsed_declaration" : "public static let `default` = SwipeActionsViewStyle()", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsViewStyle", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV7defaultACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var actionShape: Shape<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 830 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> actionShape<\/decl.name>: Shape<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "actionShape", - "key.namelength" : 11, - "key.nameoffset" : 841, - "key.offset" : 837, - "key.parsed_declaration" : "public var actionShape: Shape", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SwipeActionsViewStyle.Shape", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleV5ShapeOD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV11actionShapeAC0H0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var interActionSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 864 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interActionSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "interActionSpacing", - "key.namelength" : 18, - "key.nameoffset" : 875, - "key.offset" : 871, - "key.parsed_declaration" : "public var interActionSpacing: CGFloat", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV18interActionSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var leadingContainerInsets: NSDirectionalEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 980 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The insets to apply to the leading swipe actions container.", - "key.doc.column" : 16, - "key.doc.comment" : "The insets to apply to the leading swipe actions container.", - "key.doc.declaration" : "public var leadingContainerInsets: NSDirectionalEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.doc.full_as_xml" : "leadingContainerInsets<\/Name>s:10ListableUI21SwipeActionsViewStyleV22leadingContainerInsetsSo017NSDirectionalEdgeI0Vvp<\/USR>public var leadingContainerInsets: NSDirectionalEdgeInsets<\/Declaration>The insets to apply to the leading swipe actions container.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 27, - "key.doc.name" : "leadingContainerInsets", - "key.doc.type" : "Other", - "key.doclength" : 64, - "key.docoffset" : 912, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> leadingContainerInsets<\/decl.name>: NSDirectionalEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "leadingContainerInsets", - "key.namelength" : 22, - "key.nameoffset" : 991, - "key.offset" : 987, - "key.parsed_declaration" : "public var leadingContainerInsets: NSDirectionalEdgeInsets", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "NSDirectionalEdgeInsets", - "key.typeusr" : "$sSo23NSDirectionalEdgeInsetsVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV22leadingContainerInsetsSo017NSDirectionalEdgeI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var trailingContainerInsets: NSDirectionalEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1117 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The insets to apply to the trailing swipe actions container.", - "key.doc.column" : 16, - "key.doc.comment" : "The insets to apply to the trailing swipe actions container.", - "key.doc.declaration" : "public var trailingContainerInsets: NSDirectionalEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.doc.full_as_xml" : "trailingContainerInsets<\/Name>s:10ListableUI21SwipeActionsViewStyleV23trailingContainerInsetsSo017NSDirectionalEdgeI0Vvp<\/USR>public var trailingContainerInsets: NSDirectionalEdgeInsets<\/Declaration>The insets to apply to the trailing swipe actions container.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 30, - "key.doc.name" : "trailingContainerInsets", - "key.doc.type" : "Other", - "key.doclength" : 65, - "key.docoffset" : 1048, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> trailingContainerInsets<\/decl.name>: NSDirectionalEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "trailingContainerInsets", - "key.namelength" : 23, - "key.nameoffset" : 1128, - "key.offset" : 1124, - "key.parsed_declaration" : "public var trailingContainerInsets: NSDirectionalEdgeInsets", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "NSDirectionalEdgeInsets", - "key.typeusr" : "$sSo23NSDirectionalEdgeInsetsVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV23trailingContainerInsetsSo017NSDirectionalEdgeI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var containerCornerRadius: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1186 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> containerCornerRadius<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "containerCornerRadius", - "key.namelength" : 21, - "key.nameoffset" : 1197, - "key.offset" : 1193, - "key.parsed_declaration" : "public var containerCornerRadius: CGFloat", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 32, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV21containerCornerRadius14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var buttonSizing: ButtonSizing<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1232 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> buttonSizing<\/decl.name>: ButtonSizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "buttonSizing", - "key.namelength" : 12, - "key.nameoffset" : 1243, - "key.offset" : 1239, - "key.parsed_declaration" : "public var buttonSizing: ButtonSizing", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SwipeActionsViewStyle.ButtonSizing", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleV12ButtonSizingOD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV12buttonSizingAC06ButtonH0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var minWidth: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1274 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> minWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "minWidth", - "key.namelength" : 8, - "key.nameoffset" : 1285, - "key.offset" : 1281, - "key.parsed_declaration" : "public var minWidth: CGFloat", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 34, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV8minWidth14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var maxItemWidth: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1474 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The maximum width of individual items. Defaults to 120, matching `UITableView`\n- Note: Currently only applicable to `ButtonSizing.sizeThatFits` mode.", - "key.doc.column" : 16, - "key.doc.comment" : "The maximum width of individual items. Defaults to 120, matching `UITableView`\n- Note: Currently only applicable to `ButtonSizing.sizeThatFits` mode.", - "key.doc.declaration" : "public var maxItemWidth: CGFloat", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.doc.full_as_xml" : "maxItemWidth<\/Name>s:10ListableUI21SwipeActionsViewStyleV12maxItemWidth14CoreFoundation7CGFloatVvp<\/USR>public var maxItemWidth: CGFloat<\/Declaration>The maximum width of individual items. Defaults to 120, matching UITableView<\/codeVoice><\/Para><\/Abstract>Currently only applicable to ButtonSizing.sizeThatFits<\/codeVoice> mode.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 38, - "key.doc.name" : "maxItemWidth", - "key.doc.type" : "Other", - "key.doclength" : 162, - "key.docoffset" : 1308, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> maxItemWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "maxItemWidth", - "key.namelength" : 12, - "key.nameoffset" : 1485, - "key.offset" : 1481, - "key.parsed_declaration" : "public var maxItemWidth: CGFloat", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 38, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV12maxItemWidth14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var maxWidthRatio: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1878 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The percentage of the row content width that is available for laying out swipe action buttons.\n\nFor example, a value of `0.8` represents that the swipe action buttons should occupy no more than\n80% of the row content width when the swipe actions are opened.\n- Note: Currently only applicable to `ButtonSizing.equalWidth` mode.", - "key.doc.column" : 16, - "key.doc.comment" : "The percentage of the row content width that is available for laying out swipe action buttons.\n\nFor example, a value of `0.8` represents that the swipe action buttons should occupy no more than\n80% of the row content width when the swipe actions are opened.\n- Note: Currently only applicable to `ButtonSizing.equalWidth` mode.", - "key.doc.declaration" : "public var maxWidthRatio: CGFloat", - "key.doc.discussion" : [ - { - "Para" : "For example, a value of `0.8` represents that the swipe action buttons should occupy no more than 80% of the row content width when the swipe actions are opened." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.doc.full_as_xml" : "maxWidthRatio<\/Name>s:10ListableUI21SwipeActionsViewStyleV13maxWidthRatio14CoreFoundation7CGFloatVvp<\/USR>public var maxWidthRatio: CGFloat<\/Declaration>The percentage of the row content width that is available for laying out swipe action buttons.<\/Para><\/Abstract>For example, a value of 0.8<\/codeVoice> represents that the swipe action buttons should occupy no more than 80% of the row content width when the swipe actions are opened.<\/Para>Currently only applicable to ButtonSizing.equalWidth<\/codeVoice> mode.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 45, - "key.doc.name" : "maxWidthRatio", - "key.doc.type" : "Other", - "key.doclength" : 362, - "key.docoffset" : 1512, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> maxWidthRatio<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 45, - "key.modulename" : "ListableUI", - "key.name" : "maxWidthRatio", - "key.namelength" : 13, - "key.nameoffset" : 1889, - "key.offset" : 1885, - "key.parsed_declaration" : "public var maxWidthRatio: CGFloat", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 45, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV13maxWidthRatio14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(actionShape: Shape<\/Type> = .rectangle(cornerRadius: 0), interActionSpacing: CGFloat<\/Type> = 0, leadingContainerInsets: NSDirectionalEdgeInsets<\/Type> = .zero, trailingContainerInsets: NSDirectionalEdgeInsets<\/Type> = .zero, containerCornerRadius: CGFloat<\/Type> = 0, buttonSizing: ButtonSizing<\/Type> = .sizeThatFits, minWidth: CGFloat<\/Type> = 0, maxWidthRatio: CGFloat<\/Type> = 0.8, maxItemWidth: CGFloat<\/Type> = 120)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1917 - } - ], - "key.bodylength" : 438, - "key.bodyoffset" : 2368, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(actionShape<\/decl.var.parameter.argument_label>: Shape<\/ref.enum><\/decl.var.parameter.type> = .rectangle(cornerRadius: 0)<\/decl.var.parameter>, interActionSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0<\/decl.var.parameter>, leadingContainerInsets<\/decl.var.parameter.argument_label>: NSDirectionalEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, trailingContainerInsets<\/decl.var.parameter.argument_label>: NSDirectionalEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, containerCornerRadius<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0<\/decl.var.parameter>, buttonSizing<\/decl.var.parameter.argument_label>: ButtonSizing<\/ref.enum><\/decl.var.parameter.type> = .sizeThatFits<\/decl.var.parameter>, minWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0<\/decl.var.parameter>, maxWidthRatio<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.8<\/decl.var.parameter>, maxItemWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 120<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 883, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "init(actionShape:interActionSpacing:leadingContainerInsets:trailingContainerInsets:containerCornerRadius:buttonSizing:minWidth:maxWidthRatio:maxItemWidth:)", - "key.namelength" : 442, - "key.nameoffset" : 1924, - "key.offset" : 1924, - "key.parsed_declaration" : "public init(\n actionShape: Shape = .rectangle(cornerRadius: 0),\n interActionSpacing: CGFloat = 0,\n leadingContainerInsets: NSDirectionalEdgeInsets = .zero,\n trailingContainerInsets: NSDirectionalEdgeInsets = .zero,\n containerCornerRadius: CGFloat = 0,\n buttonSizing: ButtonSizing = .sizeThatFits,\n minWidth: CGFloat = 0,\n maxWidthRatio: CGFloat = 0.8,\n maxItemWidth: CGFloat = 120\n)", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionsViewStyle.Type) -> (SwipeActionsViewStyle.Shape, CGFloat, NSDirectionalEdgeInsets, NSDirectionalEdgeInsets, CGFloat, SwipeActionsViewStyle.ButtonSizing, CGFloat, CGFloat, CGFloat) -> SwipeActionsViewStyle", - "key.typeusr" : "$s11actionShape18interActionSpacing22leadingContainerInsets08trailinggH021containerCornerRadius12buttonSizing8minWidth03maxP5Ratio0q4ItemP010ListableUI21SwipeActionsViewStyleVAL0B0O_14CoreFoundation7CGFloatVSo017NSDirectionalEdgeH0VAsqL06ButtonN0OA3QtcD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV11actionShape18interActionSpacing22leadingContainerInsets08trailingmN021containerCornerRadius12buttonSizing8minWidth03maxV5Ratio0w4ItemV0A2C0H0O_14CoreFoundation7CGFloatVSo017NSDirectionalEdgeN0VAsqC06ButtonT0OA3Qtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var cornerRadius: CGFloat<\/Type> { get }<\/Declaration>", - "key.bodylength" : 119, - "key.bodyoffset" : 2840, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> cornerRadius<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 147, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "cornerRadius", - "key.namelength" : 12, - "key.nameoffset" : 2817, - "key.offset" : 2813, - "key.parsed_declaration" : "var cornerRadius: CGFloat", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 69, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV12cornerRadius14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : "SwipeActionsViewStyle.Type", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleVmD", - "key.usr" : "s:10ListableUI21SwipeActionsViewStyleV" - }, - { - "key.annotated_decl" : "public struct ListEnvironment<\/Declaration>", - "key.bodylength" : 190, - "key.bodyoffset" : 2991, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An environment of keys and values that are passed to every `ItemContent` and `HeaderFooter`\nduring layout and measurement, to allow passing down data.\n\nThis type is similar to the SwiftUI or Blueprint `Environment`, where you define a `ListEnvironmentKey`,\nand then provide a custom getter and setter to read and write the content:\n\n```\nenum MyLayoutTypeKey : ListEnvironmentKey {\n var defaultValue : MyLayoutType {\n .defaultLayout\n }\n}\n\nextension ListEnvironment {\n var myLayoutType : MyLayoutType {\n get { self[MyLayoutTypeKey.self] }\n set { self[MyLayoutTypeKey.self] = newValue }\n }\n}\n```\n\nYou can retrieve the `ListEnvironment` through the `info` object passed in `ItemContent` and `HeaderFooter`'s\n`apply(to:for:with:)` methods.\n\n```\nfunc apply(\n to views : ItemContentViews,\n for reason: ApplyReason,\n with info : ApplyItemContentInfo\n) {\n switch info.environment.myLayoutType {\n ...\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ListEnvironment", - "key.doc.discussion" : [ - { - "Para" : "This type is similar to the SwiftUI or Blueprint `Environment`, where you define a `ListEnvironmentKey`, and then provide a custom getter and setter to read and write the content:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can retrieve the `ListEnvironment` through the `info` object passed in `ItemContent` and `HeaderFooter`’s `apply(to:for:with:)` methods." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.doc.full_as_xml" : "ListEnvironment<\/Name>s:10ListableUI15ListEnvironmentV<\/USR>public struct ListEnvironment<\/Declaration>An environment of keys and values that are passed to every ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice> during layout and measurement, to allow passing down data.<\/Para><\/Abstract>This type is similar to the SwiftUI or Blueprint Environment<\/codeVoice>, where you define a ListEnvironmentKey<\/codeVoice>, and then provide a custom getter and setter to read and write the content:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can retrieve the ListEnvironment<\/codeVoice> through the info<\/codeVoice> object passed in ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice>’s apply(to:for:with:)<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered>,]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 44, - "key.doc.name" : "ListEnvironment", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironment.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListEnvironment<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 218, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "ListEnvironment", - "key.namelength" : 15, - "key.nameoffset" : 2974, - "key.offset" : 2964, - "key.parsed_declaration" : "extension ListEnvironment", - "key.parsed_scope.end" : 83, - "key.parsed_scope.start" : 77, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var swipeActionsViewStyle: SwipeActionsViewStyle<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3001 - } - ], - "key.bodylength" : 120, - "key.bodyoffset" : 3059, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> swipeActionsViewStyle<\/decl.name>: SwipeActionsViewStyle<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 172, - "key.line" : 79, - "key.modulename" : "ListableUI", - "key.name" : "swipeActionsViewStyle", - "key.namelength" : 21, - "key.nameoffset" : 3012, - "key.offset" : 3008, - "key.parsed_declaration" : "public var swipeActionsViewStyle : SwipeActionsViewStyle", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 79, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SwipeActionsViewStyle", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleVD", - "key.usr" : "s:10ListableUI15ListEnvironmentV21swipeActionsViewStyleAA05SwipefgH0Vvp" - } - ], - "key.typename" : "ListEnvironment.Type", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVmD", - "key.usr" : "s:10ListableUI15ListEnvironmentV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum SwipeActionsViewStyleKey : ListEnvironmentKey<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3184 - } - ], - "key.bodylength" : 89, - "key.bodyoffset" : 3242, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 18, - "key.offset" : 3222 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SwipeActionsViewStyleKey<\/decl.name> : ListEnvironmentKey<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "ListEnvironmentKey" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 141, - "key.line" : 85, - "key.modulename" : "ListableUI", - "key.name" : "SwipeActionsViewStyleKey", - "key.namelength" : 24, - "key.nameoffset" : 3196, - "key.offset" : 3191, - "key.parsed_declaration" : "public enum SwipeActionsViewStyleKey: ListEnvironmentKey", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 85, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: SwipeActionsViewStyle<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3252 - } - ], - "key.bodylength" : 22, - "key.bodyoffset" : 3307, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value that will be vended by an `Environment` for this key if no other value has been set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self.Value { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Environment\/ListEnvironmentKey.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract>This documentation comment was inherited from ListEnvironmentKey<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/SwipeActionsViewStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: SwipeActionsViewStyle<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 71, - "key.line" : 87, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 3270, - "key.offset" : 3259, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue: SwipeActionsViewStyle", - "key.parsed_scope.end" : 89, - "key.parsed_scope.start" : 87, - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsViewStyle", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleVD", - "key.usr" : "s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ" - } - ], - "key.typename" : "SwipeActionsViewStyleKey.Type", - "key.typeusr" : "$s10ListableUI24SwipeActionsViewStyleKeyOmD", - "key.usr" : "s:10ListableUI24SwipeActionsViewStyleKeyO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/TouchDownGestureRecognizer.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1268, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> final class TouchDownGestureRecognizer : UIGestureRecognizer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 137 - } - ], - "key.bodylength" : 1067, - "key.bodyoffset" : 199, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 178 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/TouchDownGestureRecognizer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> TouchDownGestureRecognizer<\/decl.name> : UIGestureRecognizer<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIGestureRecognizer" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1124, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "TouchDownGestureRecognizer", - "key.namelength" : 26, - "key.nameoffset" : 149, - "key.offset" : 143, - "key.parsed_declaration" : "final class TouchDownGestureRecognizer : UIGestureRecognizer", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var shouldRecognize: (UITouch<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/TouchDownGestureRecognizer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> shouldRecognize<\/decl.name>: (UITouch<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 56, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "shouldRecognize", - "key.namelength" : 15, - "key.nameoffset" : 213, - "key.offset" : 209, - "key.parsed_declaration" : "var shouldRecognize : (UITouch) -> Bool = { _ in false }", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(UITouch) -> Bool", - "key.typeusr" : "$sySbSo7UITouchCcD", - "key.usr" : "s:10ListableUI26TouchDownGestureRecognizerC15shouldRecognizeySbSo7UITouchCcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func touchesBegan(_ touches: Set<\/Type><UITouch<\/Type>>, with event: UIEvent<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 275 - } - ], - "key.bodylength" : 270, - "key.bodyoffset" : 349, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/TouchDownGestureRecognizer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> touchesBegan<\/decl.name>(_<\/decl.var.parameter.argument_label> touches<\/decl.var.parameter.name>: Set<\/ref.struct><UITouch<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 336, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "touchesBegan(_:with:)", - "key.namelength" : 58, - "key.nameoffset" : 289, - "key.offset" : 284, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIGestureRecognizer(im)touchesBegan:withEvent:" - } - ], - "key.parsed_declaration" : "override func touchesBegan(_ touches: Set, with event: UIEvent)", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TouchDownGestureRecognizer) -> (Set, UIEvent) -> ()", - "key.typeusr" : "$s_4withyShySo7UITouchCG_So7UIEventCtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)TouchDownGestureRecognizer(im)touchesBegan:withEvent:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func canPrevent(_ gesture: UIGestureRecognizer<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 630 - } - ], - "key.bodylength" : 568, - "key.bodyoffset" : 696, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/TouchDownGestureRecognizer.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> canPrevent<\/decl.name>(_<\/decl.var.parameter.argument_label> gesture<\/decl.var.parameter.name>: UIGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 626, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "canPrevent(_:)", - "key.namelength" : 42, - "key.nameoffset" : 644, - "key.offset" : 639, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIGestureRecognizer(im)canPreventGestureRecognizer:" - } - ], - "key.parsed_declaration" : "override func canPrevent(_ gesture: UIGestureRecognizer) -> Bool", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TouchDownGestureRecognizer) -> (UIGestureRecognizer) -> Bool", - "key.typeusr" : "$sySbSo19UIGestureRecognizerCcD", - "key.usr" : "c:@M@ListableUI@objc(cs)TouchDownGestureRecognizer(im)canPreventGestureRecognizer:" - } - ], - "key.typename" : "TouchDownGestureRecognizer.Type", - "key.typeusr" : "$s10ListableUI26TouchDownGestureRecognizerCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)TouchDownGestureRecognizer" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIEdgeInsets.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 432, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "@_nonSendable(_assumed) struct UIEdgeInsets : @unchecked Sendable<\/Type><\/Declaration>", - "key.bodylength" : 282, - "key.bodyoffset" : 148, - "key.column" : 92, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", - "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> UIEdgeInsets<\/decl.name> : @unchecked Sendable<\/ref.protocol><\/decl.struct>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 307, - "key.line" : 23, - "key.modulename" : "UIKit.UIGeometry", - "key.name" : "UIEdgeInsets", - "key.namelength" : 12, - "key.nameoffset" : 134, - "key.offset" : 124, - "key.parsed_declaration" : "extension UIEdgeInsets", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static func + (lhs: UIEdgeInsets<\/Type>, rhs: UIEdgeInsets<\/Type>) -> UIEdgeInsets<\/Type><\/Declaration>", - "key.bodylength" : 198, - "key.bodyoffset" : 230, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIEdgeInsets.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> + <\/decl.name>(lhs<\/decl.var.parameter.name>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIEdgeInsets<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 271, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "+(_:_:)", - "key.namelength" : 42, - "key.nameoffset" : 170, - "key.offset" : 158, - "key.parsed_declaration" : "static func + (lhs : UIEdgeInsets, rhs : UIEdgeInsets) -> UIEdgeInsets", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UIEdgeInsets.Type) -> (UIEdgeInsets, UIEdgeInsets) -> UIEdgeInsets", - "key.typeusr" : "$sySo12UIEdgeInsetsVAB_ABtcD", - "key.usr" : "s:So12UIEdgeInsetsV10ListableUIE1poiyA2B_ABtFZ" - } - ], - "key.typename" : "UIEdgeInsets.Type", - "key.typeusr" : "$sSo12UIEdgeInsetsVmD", - "key.usr" : "c:@S@UIEdgeInsets" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIView.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 641, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> @_nonSendable(_assumed) class UIView : UIResponder<\/Type>, NSCoding<\/Type>, UIAppearance<\/Type>, UIAppearanceContainer<\/Type>, UIDynamicItem<\/Type>, UITraitEnvironment<\/Type>, UICoordinateSpace<\/Type>, UIFocusItem<\/Type>, UIFocusItemContainer<\/Type>, CALayerDelegate<\/Type><\/Declaration>", - "key.bodylength" : 503, - "key.bodyoffset" : 136, - "key.column" : 12, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIView.h", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIView<\/decl.name> : UIResponder<\/ref.class>, NSCoding<\/ref.protocol>, UIAppearance<\/ref.protocol>, UIAppearanceContainer<\/ref.protocol>, UIDynamicItem<\/ref.protocol>, UITraitEnvironment<\/ref.protocol>, UICoordinateSpace<\/ref.protocol>, UIFocusItem<\/ref.protocol>, UIFocusItemContainer<\/ref.protocol>, CALayerDelegate<\/ref.protocol><\/decl.class>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 522, - "key.line" : 148, - "key.modulename" : "UIKit.UIView", - "key.name" : "UIView", - "key.namelength" : 6, - "key.nameoffset" : 128, - "key.offset" : 118, - "key.parsed_declaration" : "extension UIView", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> func contains(touch: UITouch<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 103, - "key.bodyoffset" : 186, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> contains<\/decl.name>(touch<\/decl.var.parameter.argument_label>: UITouch<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 144, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "contains(touch:)", - "key.namelength" : 25, - "key.nameoffset" : 151, - "key.offset" : 146, - "key.parsed_declaration" : "func contains(touch : UITouch) -> Bool", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 14, - "key.receivers" : [ - { - "key.usr" : "c:objc(cs)UIView" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let location: CGPoint<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> location<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 39, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "location", - "key.namelength" : 8, - "key.nameoffset" : 199, - "key.offset" : 195, - "key.parsed_declaration" : "let location = touch.location(in: self)", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:So6UIViewC10ListableUIE8contains5touchSbSo7UITouchC_tF8locationL_So7CGPointVvp" - } - ], - "key.typename" : "(UIView) -> (UITouch) -> Bool", - "key.typeusr" : "$s5touchSbSo7UITouchC_tcD", - "key.usr" : "s:So6UIViewC10ListableUIE8contains5touchSbSo7UITouchC_tF" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> func firstSuperview<ViewType>(ofType: ViewType<\/Type>.Type) -> ViewType<\/Type>? where ViewType<\/Type> : UIView<\/Type><\/Declaration>", - "key.bodylength" : 262, - "key.bodyoffset" : 375, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> firstSuperview<\/decl.name><ViewType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(ofType<\/decl.var.parameter.argument_label>: ViewType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewType<\/ref.generic_type_param>?<\/decl.function.returntype> where<\/syntaxtype.keyword> ViewType<\/ref.generic_type_param> : UIView<\/ref.class><\/decl.generic_type_requirement><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 338, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "firstSuperview(ofType:)", - "key.namelength" : 55, - "key.nameoffset" : 305, - "key.offset" : 300, - "key.parsed_declaration" : "func firstSuperview(ofType : ViewType.Type) -> ViewType?", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 20, - "key.receivers" : [ - { - "key.usr" : "c:objc(cs)UIView" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "ViewType : UIView<\/Type><\/Declaration>", - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 329 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIView.swift", - "key.fully_annotated_decl" : "ViewType<\/decl.generic_type_param.name> : UIView<\/ref.class><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "UIView" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 15, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "ViewType", - "key.namelength" : 8, - "key.nameoffset" : 320, - "key.offset" : 320, - "key.parsed_declaration" : "func firstSuperviewvar view: UIView<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIView.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> view<\/decl.name>: UIView<\/ref.class>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 25, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 388, - "key.offset" : 384, - "key.parsed_declaration" : "var view = self.superview", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.typename" : "UIView?", - "key.typeusr" : "$sSo6UIViewCSgD", - "key.usr" : "s:So6UIViewC10ListableUIE14firstSuperview6ofTypexSgxm_tABRbzlF4viewL_ABSgvp" - } - ], - "key.typename" : " (UIView) -> (ViewType.Type) -> ViewType?", - "key.typeusr" : "$s6ofTypexSgxm_tcSo6UIViewCRbzluD", - "key.usr" : "s:So6UIViewC10ListableUIE14firstSuperview6ofTypexSgxm_tABRbzlF" - } - ], - "key.typename" : "UIView.Type", - "key.typeusr" : "$sSo6UIViewCmD", - "key.usr" : "c:objc(cs)UIView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 809, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> @_nonSendable(_assumed) class UIViewPropertyAnimator : NSObject<\/Type>, UIViewImplicitlyAnimating<\/Type>, NSCopying<\/Type><\/Declaration>", - "key.bodylength" : 661, - "key.bodyoffset" : 146, - "key.column" : 12, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIViewPropertyAnimator.h", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIViewPropertyAnimator<\/decl.name> : NSObject<\/ref.class>, UIViewImplicitlyAnimating<\/ref.protocol>, NSCopying<\/ref.protocol><\/decl.class>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 696, - "key.line" : 17, - "key.modulename" : "UIKit.UIViewPropertyAnimator", - "key.name" : "UIViewPropertyAnimator", - "key.namelength" : 22, - "key.nameoffset" : 122, - "key.offset" : 112, - "key.parsed_declaration" : "extension UIViewPropertyAnimator", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 10, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> convenience init(system animations: @escaping () -> Void<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.convenience", - "key.length" : 11, - "key.offset" : 432 - } - ], - "key.bodylength" : 314, - "key.bodyoffset" : 491, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create a UIViewPropertyAnimator with the same animation curve as most system animations\n(including view controller presentation and navigation controller pushes).\n\nThis is a critically damped spring, and the duration is based on the spring physics.", - "key.doc.column" : 17, - "key.doc.comment" : "Create a UIViewPropertyAnimator with the same animation curve as most system animations\n(including view controller presentation and navigation controller pushes).\n\nThis is a critically damped spring, and the duration is based on the spring physics.", - "key.doc.declaration" : "@MainActor convenience init(system animations: @escaping () -> Void)", - "key.doc.discussion" : [ - { - "Para" : "This is a critically damped spring, and the duration is based on the spring physics." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift", - "key.doc.full_as_xml" : "init(system:)<\/Name>s:So22UIViewPropertyAnimatorC10ListableUIE6systemAByyc_tcfc<\/USR>@MainActor convenience init(system animations: @escaping () -> Void)<\/Declaration>Create a UIViewPropertyAnimator with the same animation curve as most system animations (including view controller presentation and navigation controller pushes).<\/Para><\/Abstract>This is a critically damped spring, and the duration is based on the spring physics.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 16, - "key.doc.name" : "init(system:)", - "key.doc.type" : "Function", - "key.doclength" : 276, - "key.docoffset" : 152, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> convenience<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(system<\/decl.var.parameter.argument_label> animations<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 362, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "init(system:)", - "key.namelength" : 45, - "key.nameoffset" : 444, - "key.offset" : 444, - "key.parsed_declaration" : "convenience init(system animations: @escaping () -> Void)", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 16, - "key.receivers" : [ - { - "key.usr" : "c:objc(cs)UIViewPropertyAnimator" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "init(duration:timingParameters:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(duration:curve:animations:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(duration:controlPoint1:controlPoint2:animations:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(duration:dampingRatio:animations:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let params: UISpringTimingParameters<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> params<\/decl.name>: UISpringTimingParameters<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 39, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "params", - "key.namelength" : 6, - "key.nameoffset" : 504, - "key.offset" : 500, - "key.parsed_declaration" : "let params = UISpringTimingParameters()", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "UISpringTimingParameters", - "key.typeusr" : "$sSo24UISpringTimingParametersCD", - "key.usr" : "s:So22UIViewPropertyAnimatorC10ListableUIE6systemAByyc_tcfc6paramsL_So24UISpringTimingParametersCvp" - } - ], - "key.typename" : "(UIViewPropertyAnimator.Type) -> (@escaping () -> ()) -> UIViewPropertyAnimator", - "key.typeusr" : "$s6systemSo22UIViewPropertyAnimatorCyyc_tcD", - "key.usr" : "s:So22UIViewPropertyAnimatorC10ListableUIE6systemAByyc_tcfc" - } - ], - "key.typename" : "UIViewPropertyAnimator.Type", - "key.typeusr" : "$sSo22UIViewPropertyAnimatorCmD", - "key.usr" : "c:objc(cs)UIViewPropertyAnimator" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Validations.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 682, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func assertIsValueType<Value>(_ valueType: Value<\/Type>.Type)<\/Declaration>", - "key.bodylength" : 453, - "key.bodyoffset" : 227, - "key.column" : 6, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Validates that the provided object is not a class type.", - "key.doc.column" : 6, - "key.doc.comment" : "Validates that the provided object is not a class type.", - "key.doc.declaration" : "func assertIsValueType(_ valueType: Value.Type)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Validations.swift", - "key.doc.full_as_xml" : "assertIsValueType(_:)<\/Name>s:10ListableUI17assertIsValueTypeyyxmlF<\/USR>func assertIsValueType<Value>(_ valueType: Value.Type)<\/Declaration>Validates that the provided object is not a class type.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 12, - "key.doc.name" : "assertIsValueType(_:)", - "key.doc.type" : "Function", - "key.doclength" : 60, - "key.docoffset" : 110, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Validations.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> assertIsValueType<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> valueType<\/decl.var.parameter.name>: Value<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 511, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "assertIsValueType(_:)", - "key.namelength" : 50, - "key.nameoffset" : 175, - "key.offset" : 170, - "key.parsed_declaration" : "func assertIsValueType(_ valueType : Value.Type)", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value<\/Declaration>", - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Internal\/Validations.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 193, - "key.offset" : 193, - "key.parsed_declaration" : "func assertIsValueType (Value.Type) -> ()", - "key.typeusr" : "$syyxmcluD", - "key.usr" : "s:10ListableUI17assertIsValueTypeyyxmlF" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1143, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol AnyItem : AnyItemConvertible<\/Type>, AnyItem_Internal<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 240 - } - ], - "key.bodylength" : 501, - "key.bodyoffset" : 304, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A type-erased version of the `Item` struct, which is used by `Section` to\ncreate mixed-type content within a section's items.", - "key.doc.column" : 17, - "key.doc.comment" : "A type-erased version of the `Item` struct, which is used by `Section` to\ncreate mixed-type content within a section's items.", - "key.doc.declaration" : "public protocol AnyItem : ListableUI.AnyItemConvertible, ListableUI.AnyItem_Internal", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.doc.full_as_xml" : "AnyItem<\/Name>s:10ListableUI7AnyItemP<\/USR>public protocol AnyItem : ListableUI.AnyItemConvertible, ListableUI.AnyItem_Internal<\/Declaration>A type-erased version of the Item<\/codeVoice> struct, which is used by Section<\/codeVoice> to create mixed-type content within a section’s items.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "AnyItem", - "key.doc.type" : "Class", - "key.doclength" : 134, - "key.docoffset" : 106, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 18, - "key.offset" : 266 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 286 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyItem<\/decl.name> : AnyItemConvertible<\/ref.protocol>, AnyItem_Internal<\/ref.protocol><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyItemConvertible" - }, - { - "key.name" : "AnyItem_Internal" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 559, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "AnyItem", - "key.namelength" : 7, - "key.nameoffset" : 256, - "key.offset" : 247, - "key.parsed_declaration" : "public protocol AnyItem : AnyItemConvertible, AnyItem_Internal", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var anyIdentifier: AnyIdentifier<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 344, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyIdentifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "anyIdentifier", - "key.namelength" : 13, - "key.nameoffset" : 313, - "key.offset" : 309, - "key.parsed_declaration" : "var anyIdentifier : AnyIdentifier", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "AnyIdentifier", - "key.typeusr" : "$s10ListableUI13AnyIdentifierCD", - "key.usr" : "s:10ListableUI7AnyItemP13anyIdentifierAA0cF0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var anyContent: Any { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 382, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyContent<\/decl.name>: Any<\/syntaxtype.keyword><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "anyContent", - "key.namelength" : 10, - "key.nameoffset" : 364, - "key.offset" : 360, - "key.parsed_declaration" : "var anyContent : Any", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Any", - "key.typeusr" : "$sypD", - "key.usr" : "s:10ListableUI7AnyItemP10anyContentypvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var sizing: Sizing<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 419, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "sizing", - "key.namelength" : 6, - "key.nameoffset" : 402, - "key.offset" : 398, - "key.parsed_declaration" : "var sizing : Sizing", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Sizing", - "key.typeusr" : "$s10ListableUI6SizingOD", - "key.usr" : "s:10ListableUI7AnyItemP6sizingAA6SizingOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var layouts: ItemLayouts<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 466, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layouts<\/decl.name>: ItemLayouts<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 443, - "key.offset" : 439, - "key.parsed_declaration" : "var layouts : ItemLayouts", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ItemLayouts", - "key.typeusr" : "$s10ListableUI11ItemLayoutsVD", - "key.usr" : "s:10ListableUI7AnyItemP7layoutsAA0D7LayoutsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var selectionStyle: ItemSelectionStyle<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 523, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> selectionStyle<\/decl.name>: ItemSelectionStyle<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "selectionStyle", - "key.namelength" : 14, - "key.nameoffset" : 486, - "key.offset" : 482, - "key.parsed_declaration" : "var selectionStyle : ItemSelectionStyle", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemSelectionStyle", - "key.typeusr" : "$s10ListableUI18ItemSelectionStyleOD", - "key.usr" : "s:10ListableUI7AnyItemP14selectionStyleAA0d9SelectionF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>? { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 602, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 74, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "insertAndRemoveAnimations", - "key.namelength" : 25, - "key.nameoffset" : 542, - "key.offset" : 538, - "key.parsed_declaration" : "var insertAndRemoveAnimations : ItemInsertAndRemoveAnimations?", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemInsertAndRemoveAnimations?", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVSgD", - "key.usr" : "s:10ListableUI7AnyItemP25insertAndRemoveAnimationsAA0d6InsertfgH0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var trailingSwipeActions: SwipeActionsConfiguration<\/Type>? { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 672, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> trailingSwipeActions<\/decl.name>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 65, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "trailingSwipeActions", - "key.namelength" : 20, - "key.nameoffset" : 621, - "key.offset" : 617, - "key.parsed_declaration" : "var trailingSwipeActions : SwipeActionsConfiguration?", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SwipeActionsConfiguration?", - "key.typeusr" : "$s10ListableUI25SwipeActionsConfigurationVSgD", - "key.usr" : "s:10ListableUI7AnyItemP20trailingSwipeActionsAA0fG13ConfigurationVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var reordering: ItemReordering<\/Type>? { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 726, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reordering<\/decl.name>: ItemReordering<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "reordering", - "key.namelength" : 10, - "key.nameoffset" : 696, - "key.offset" : 692, - "key.parsed_declaration" : "var reordering : ItemReordering?", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemReordering?", - "key.typeusr" : "$s10ListableUI14ItemReorderingVSgD", - "key.usr" : "s:10ListableUI7AnyItemP10reorderingAA0D10ReorderingVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var reappliesToVisibleView: ReappliesToVisibleView<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 798, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reappliesToVisibleView<\/decl.name>: ReappliesToVisibleView<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 58, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "reappliesToVisibleView", - "key.namelength" : 22, - "key.nameoffset" : 750, - "key.offset" : 746, - "key.parsed_declaration" : "var reappliesToVisibleView: ReappliesToVisibleView", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ReappliesToVisibleView", - "key.typeusr" : "$s10ListableUI22ReappliesToVisibleViewOD", - "key.usr" : "s:10ListableUI7AnyItemP22reappliesToVisibleViewAA09ReappliesfgH0Ovp" - } - ], - "key.typename" : "AnyItem.Type", - "key.typeusr" : "$s10ListableUI7AnyItem_pmD", - "key.usr" : "s:10ListableUI7AnyItemP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol AnyItem_Internal<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 809 - } - ], - "key.bodylength" : 298, - "key.bodyoffset" : 843, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyItem_Internal<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 326, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "AnyItem_Internal", - "key.namelength" : 16, - "key.nameoffset" : 825, - "key.offset" : 816, - "key.parsed_declaration" : "public protocol AnyItem_Internal", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func anyWasMoved(comparedTo other: AnyItem<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> anyWasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 52, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "anyWasMoved(comparedTo:)", - "key.namelength" : 39, - "key.nameoffset" : 853, - "key.offset" : 848, - "key.parsed_declaration" : "func anyWasMoved(comparedTo other : AnyItem) -> Bool", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 35, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16AnyItem_InternalP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyItem) -> Bool", - "key.typeusr" : "$s10comparedToSb10ListableUI7AnyItem_p_tcD", - "key.usr" : "s:10ListableUI16AnyItem_InternalP11anyWasMoved10comparedToSbAA0cD0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func anyIsEquivalent(to other: AnyItem<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> anyIsEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 48, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "anyIsEquivalent(to:)", - "key.namelength" : 35, - "key.nameoffset" : 910, - "key.offset" : 905, - "key.parsed_declaration" : "func anyIsEquivalent(to other : AnyItem) -> Bool", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16AnyItem_InternalP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyItem) -> Bool", - "key.typeusr" : "$s2toSb10ListableUI7AnyItem_p_tcD", - "key.usr" : "s:10ListableUI16AnyItem_InternalP15anyIsEquivalent2toSbAA0cD0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func newPresentationItemState(with dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, performsContentCallbacks: Bool<\/Type>) -> Any<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItem.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> newPresentationItemState<\/decl.name>(with<\/decl.var.parameter.argument_label> dependencies<\/decl.var.parameter.name>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Any<\/syntaxtype.keyword><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 177, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)", - "key.namelength" : 165, - "key.nameoffset" : 968, - "key.offset" : 963, - "key.parsed_declaration" : "func newPresentationItemState(\n with dependencies : ItemStateDependencies,\n updateCallbacks : UpdateCallbacks,\n performsContentCallbacks : Bool\n) -> Any", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 38, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16AnyItem_InternalP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ItemStateDependencies, UpdateCallbacks, Bool) -> Any", - "key.typeusr" : "$s4with15updateCallbacks015performsContentC0yp10ListableUI21ItemStateDependenciesV_AD06UpdateC0CSbtcD", - "key.usr" : "s:10ListableUI16AnyItem_InternalP015newPresentationD5State4with15updateCallbacks015performsContentK0ypAA0dH12DependenciesV_AA06UpdateK0CSbtF" - } - ], - "key.typename" : "AnyItem_Internal.Type", - "key.typeusr" : "$s10ListableUI16AnyItem_Internal_pmD", - "key.usr" : "s:10ListableUI16AnyItem_InternalP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItemConvertible.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 857, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol AnyItemConvertible<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 713 - } - ], - "key.bodylength" : 105, - "key.bodyoffset" : 749, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A type which can be converted into a `AnyItem`, so you\ndo not need to explicitly wrap \/ convert your `ItemContent`\nin an `Item` when providing it to a `Section`.\n\n```\nSection(\"id\") {\n MyItemContent(text: \"Hello, World!\")\n}\n\nstruct MyItemContent : ItemContent {\n var text : String\n ...\n}\n```\n\nOnly two types conform to this protocol:\n\n### `Item`\nThe `Item` conformance simply returns self.\n\n### `ItemContent`\nThe `ItemContent` conformance returns `Item(self)`,\nutilizing the default values from the `Item` initializer.\n", - "key.doc.column" : 17, - "key.doc.comment" : "A type which can be converted into a `AnyItem`, so you\ndo not need to explicitly wrap \/ convert your `ItemContent`\nin an `Item` when providing it to a `Section`.\n\n```\nSection(\"id\") {\n MyItemContent(text: \"Hello, World!\")\n}\n\nstruct MyItemContent : ItemContent {\n var text : String\n ...\n}\n```\n\nOnly two types conform to this protocol:\n\n### `Item`\nThe `Item` conformance simply returns self.\n\n### `ItemContent`\nThe `ItemContent` conformance returns `Item(self)`,\nutilizing the default values from the `Item` initializer.", - "key.doc.declaration" : "public protocol AnyItemConvertible", - "key.doc.discussion" : [ - { - "CodeListing" : "" - }, - { - "Para" : "Only two types conform to this protocol:" - }, - { - "Para" : "The `Item` conformance simply returns self." - }, - { - "Para" : "The `ItemContent` conformance returns `Item(self)`, utilizing the default values from the `Item` initializer." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItemConvertible.swift", - "key.doc.full_as_xml" : "AnyItemConvertible<\/Name>s:10ListableUI18AnyItemConvertibleP<\/USR>public protocol AnyItemConvertible<\/Declaration>A type which can be converted into a AnyItem<\/codeVoice>, so you do not need to explicitly wrap \/ convert your ItemContent<\/codeVoice> in an Item<\/codeVoice> when providing it to a Section<\/codeVoice>.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Only two types conform to this protocol:<\/Para>]]><\/rawHTML>Item<\/codeVoice>]]><\/rawHTML>The Item<\/codeVoice> conformance simply returns self.<\/Para>]]><\/rawHTML>ItemContent<\/codeVoice>]]><\/rawHTML>The ItemContent<\/codeVoice> conformance returns Item(self)<\/codeVoice>, utilizing the default values from the Item<\/codeVoice> initializer.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 33, - "key.doc.name" : "AnyItemConvertible", - "key.doc.type" : "Class", - "key.doclength" : 616, - "key.docoffset" : 97, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItemConvertible.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyItemConvertible<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 135, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "AnyItemConvertible", - "key.namelength" : 18, - "key.nameoffset" : 729, - "key.offset" : 720, - "key.parsed_declaration" : "public protocol AnyItemConvertible", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func toAnyItem() -> AnyItem<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Converts the object into a type-erased `AnyItem` instance.", - "key.doc.column" : 10, - "key.doc.comment" : "Converts the object into a type-erased `AnyItem` instance.", - "key.doc.declaration" : "func toAnyItem() -> AnyItem", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItemConvertible.swift", - "key.doc.full_as_xml" : "toAnyItem()<\/Name>s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF<\/USR>func toAnyItem() -> AnyItem<\/Declaration>Converts the object into a type-erased AnyItem<\/codeVoice> instance.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 36, - "key.doc.name" : "toAnyItem()", - "key.doc.type" : "Function", - "key.doclength" : 63, - "key.docoffset" : 759, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItemConvertible.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> toAnyItem<\/decl.name>() -> AnyItem<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 27, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "toAnyItem()", - "key.namelength" : 11, - "key.nameoffset" : 831, - "key.offset" : 826, - "key.parsed_declaration" : "func toAnyItem() -> AnyItem", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI18AnyItemConvertibleP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pycD", - "key.usr" : "s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF" - } - ], - "key.typename" : "AnyItemConvertible.Type", - "key.typeusr" : "$s10ListableUI18AnyItemConvertible_pmD", - "key.usr" : "s:10ListableUI18AnyItemConvertibleP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3491, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct DefaultItemProperties<ContentType> where ContentType<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 612 - } - ], - "key.bodylength" : 2815, - "key.bodyoffset" : 674, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows specifying default properties to apply to an item when it is initialized,\nif those values are not provided to the initializer.\nOnly non-nil values are used – if you do not want to provide a default value,\nsimply leave the property nil.\n\nThe order of precedence used when assigning values is:\n1) The value passed to the initializer.\n2) The value from `defaultItemProperties` on the contained `ItemContent`, if non-nil.\n3) A standard, default value.", - "key.doc.column" : 15, - "key.doc.comment" : "Allows specifying default properties to apply to an item when it is initialized,\nif those values are not provided to the initializer.\nOnly non-nil values are used – if you do not want to provide a default value,\nsimply leave the property nil.\n\nThe order of precedence used when assigning values is:\n1) The value passed to the initializer.\n2) The value from `defaultItemProperties` on the contained `ItemContent`, if non-nil.\n3) A standard, default value.", - "key.doc.declaration" : "public struct DefaultItemProperties where ContentType : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "The order of precedence used when assigning values is:" - }, - { - "List-Number" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.doc.full_as_xml" : "DefaultItemProperties<\/Name>s:10ListableUI21DefaultItemPropertiesV<\/USR>public struct DefaultItemProperties<ContentType> where ContentType : ListableUI.ItemContent<\/Declaration>Allows specifying default properties to apply to an item when it is initialized, if those values are not provided to the initializer. Only non-nil values are used – if you do not want to provide a default value, simply leave the property nil.<\/Para><\/Abstract>The order of precedence used when assigning values is:<\/Para>The value passed to the initializer.<\/Para><\/Item>The value from defaultItemProperties<\/codeVoice> on the contained ItemContent<\/codeVoice>, if non-nil.<\/Para><\/Item>A standard, default value.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 20, - "key.doc.name" : "DefaultItemProperties", - "key.doc.type" : "Class", - "key.doclength" : 492, - "key.docoffset" : 120, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> DefaultItemProperties<\/decl.name><ContentType<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> ContentType<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2871, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "DefaultItemProperties", - "key.namelength" : 21, - "key.nameoffset" : 626, - "key.offset" : 619, - "key.parsed_declaration" : "public struct DefaultItemProperties", - "key.parsed_scope.end" : 92, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "ContentType : ItemContent<\/Type><\/Declaration>", - "key.column" : 37, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 660 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "ContentType<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 23, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "ContentType", - "key.namelength" : 11, - "key.nameoffset" : 648, - "key.offset" : 648, - "key.parsed_declaration" : "public struct DefaultItemPropertiespublic typealias DefaultItemProperties<\/Type><ContentType<\/Type>>.Item = ListableUI.Item<\/Type><ContentType<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 679 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> DefaultItemProperties<\/ref.struct><ContentType<\/ref.generic_type_param>>.Item<\/decl.name> = ListableUI.Item<\/ref.struct><ContentType<\/ref.generic_type_param>><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 45, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 696, - "key.offset" : 686, - "key.parsed_declaration" : "public typealias Item = ListableUI.Item", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.typename" : "Item.Type", - "key.typeusr" : "$s10ListableUI4ItemVyxGmD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV0D0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sizing: Sizing<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 741 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "sizing", - "key.namelength" : 6, - "key.nameoffset" : 752, - "key.offset" : 748, - "key.parsed_declaration" : "public var sizing : Sizing?", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Sizing?", - "key.typeusr" : "$s10ListableUI6SizingOSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV6sizingAA6SizingOSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layouts: ItemLayouts<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 773 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: ItemLayouts<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 784, - "key.offset" : 780, - "key.parsed_declaration" : "public var layouts : ItemLayouts?", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemLayouts?", - "key.typeusr" : "$s10ListableUI11ItemLayoutsVSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV7layoutsAA0D7LayoutsVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var selectionStyle: ItemSelectionStyle<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 811 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectionStyle<\/decl.name>: ItemSelectionStyle<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "selectionStyle", - "key.namelength" : 14, - "key.nameoffset" : 822, - "key.offset" : 818, - "key.parsed_declaration" : "public var selectionStyle : ItemSelectionStyle?", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemSelectionStyle?", - "key.typeusr" : "$s10ListableUI18ItemSelectionStyleOSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV14selectionStyleAA0d9SelectionG0OSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 863 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 62, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "insertAndRemoveAnimations", - "key.namelength" : 25, - "key.nameoffset" : 874, - "key.offset" : 870, - "key.parsed_declaration" : "public var insertAndRemoveAnimations : ItemInsertAndRemoveAnimations?", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemInsertAndRemoveAnimations?", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV25insertAndRemoveAnimationsAA0d6InsertghI0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var leadingSwipeActions: SwipeActionsConfiguration<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 937 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> leadingSwipeActions<\/decl.name>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "leadingSwipeActions", - "key.namelength" : 19, - "key.nameoffset" : 948, - "key.offset" : 944, - "key.parsed_declaration" : "public var leadingSwipeActions : SwipeActionsConfiguration?", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SwipeActionsConfiguration?", - "key.typeusr" : "$s10ListableUI25SwipeActionsConfigurationVSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV19leadingSwipeActionsAA0gH13ConfigurationVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var trailingSwipeActions: SwipeActionsConfiguration<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1001 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> trailingSwipeActions<\/decl.name>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 53, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "trailingSwipeActions", - "key.namelength" : 20, - "key.nameoffset" : 1012, - "key.offset" : 1008, - "key.parsed_declaration" : "public var trailingSwipeActions : SwipeActionsConfiguration?", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SwipeActionsConfiguration?", - "key.typeusr" : "$s10ListableUI25SwipeActionsConfigurationVSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV20trailingSwipeActionsAA0gH13ConfigurationVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var reordering: ItemReordering<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1071 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> reordering<\/decl.name>: ItemReordering<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "reordering", - "key.namelength" : 10, - "key.nameoffset" : 1082, - "key.offset" : 1078, - "key.parsed_declaration" : "public var reordering : ItemReordering?", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemReordering?", - "key.typeusr" : "$s10ListableUI14ItemReorderingVSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV10reorderingAA0D10ReorderingVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onWasReordered: Item<\/Type>.OnWasReordered<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1115 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onWasReordered<\/decl.name>: Item<\/ref.typealias>.OnWasReordered<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "onWasReordered", - "key.namelength" : 14, - "key.nameoffset" : 1126, - "key.offset" : 1122, - "key.parsed_declaration" : "public var onWasReordered : Item.OnWasReordered?", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 32, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item, ItemReordering.Result) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemVyxG_AA0C10ReorderingV6ResultVtcSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV14onWasReorderedyAA0D0VyxG_AA0D10ReorderingV6ResultVtcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onDisplay: Item<\/Type>.OnDisplay<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1177 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onDisplay<\/decl.name>: Item<\/ref.typealias>.OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "onDisplay", - "key.namelength" : 9, - "key.nameoffset" : 1188, - "key.offset" : 1184, - "key.parsed_declaration" : "public var onDisplay : Item.OnDisplay.Callback?", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 34, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnDisplay) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV9OnDisplayVyx_GcSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV9onDisplayyAA0D0V02OnG0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onEndDisplay: Item<\/Type>.OnEndDisplay<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1229 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onEndDisplay<\/decl.name>: Item<\/ref.typealias>.OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "onEndDisplay", - "key.namelength" : 12, - "key.nameoffset" : 1240, - "key.offset" : 1236, - "key.parsed_declaration" : "public var onEndDisplay : Item.OnEndDisplay.Callback?", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnEndDisplay) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV12OnEndDisplayVyx_GcSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV12onEndDisplayyAA0D0V02OngH0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onSelect: Item<\/Type>.OnSelect<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1292 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onSelect<\/decl.name>: Item<\/ref.typealias>.OnSelect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "onSelect", - "key.namelength" : 8, - "key.nameoffset" : 1303, - "key.offset" : 1299, - "key.parsed_declaration" : "public var onSelect : Item.OnSelect.Callback?", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnSelect) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV8OnSelectVyx_GcSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV8onSelectyAA0D0V02OnG0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onDeselect: Item<\/Type>.OnDeselect<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1342 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onDeselect<\/decl.name>: Item<\/ref.typealias>.OnDeselect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "onDeselect", - "key.namelength" : 10, - "key.nameoffset" : 1353, - "key.offset" : 1349, - "key.parsed_declaration" : "public var onDeselect : Item.OnDeselect.Callback?", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 38, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnDeselect) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV10OnDeselectVyx_GcSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV10onDeselectyAA0D0V02OnG0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onInsert: Item<\/Type>.OnInsert<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1401 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onInsert<\/decl.name>: Item<\/ref.typealias>.OnInsert<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "onInsert", - "key.namelength" : 8, - "key.nameoffset" : 1412, - "key.offset" : 1408, - "key.parsed_declaration" : "public var onInsert : Item.OnInsert.Callback?", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnInsert) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV8OnInsertVyx_GcSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV8onInsertyAA0D0V02OnG0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onRemove: Item<\/Type>.OnRemove<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1451 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onRemove<\/decl.name>: Item<\/ref.typealias>.OnRemove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "onRemove", - "key.namelength" : 8, - "key.nameoffset" : 1462, - "key.offset" : 1458, - "key.parsed_declaration" : "public var onRemove : Item.OnRemove.Callback?", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 41, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnRemove) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV8OnRemoveVyx_GcSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV8onRemoveyAA0D0V02OnG0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onMove: Item<\/Type>.OnMove<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1501 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onMove<\/decl.name>: Item<\/ref.typealias>.OnMove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "onMove", - "key.namelength" : 6, - "key.nameoffset" : 1512, - "key.offset" : 1508, - "key.parsed_declaration" : "public var onMove : Item.OnMove.Callback?", - "key.parsed_scope.end" : 42, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnMove) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV6OnMoveVyx_GcSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV6onMoveyAA0D0V02OnG0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onUpdate: Item<\/Type>.OnUpdate<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1547 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onUpdate<\/decl.name>: Item<\/ref.typealias>.OnUpdate<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "onUpdate", - "key.namelength" : 8, - "key.nameoffset" : 1558, - "key.offset" : 1554, - "key.parsed_declaration" : "public var onUpdate : Item.OnUpdate.Callback?", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnUpdate) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV8OnUpdateVyx_GcSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV8onUpdateyAA0D0V02OnG0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var debuggingIdentifier: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1606 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 45, - "key.modulename" : "ListableUI", - "key.name" : "debuggingIdentifier", - "key.namelength" : 19, - "key.nameoffset" : 1617, - "key.offset" : 1613, - "key.parsed_declaration" : "public var debuggingIdentifier : String?", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 45, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV19debuggingIdentifierSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(sizing: Sizing<\/Type>? = nil, layouts: ItemLayouts<\/Type>? = nil, selectionStyle: ItemSelectionStyle<\/Type>? = nil, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>? = nil, leadingSwipeActions: SwipeActionsConfiguration<\/Type>? = nil, trailingSwipeActions: SwipeActionsConfiguration<\/Type>? = nil, reordering: ItemReordering<\/Type>? = nil, onWasReordered: Item<\/Type>.OnWasReordered<\/Type>? = nil, onDisplay: Item<\/Type>.OnDisplay<\/Type>.Callback<\/Type>? = nil, onEndDisplay: Item<\/Type>.OnEndDisplay<\/Type>.Callback<\/Type>? = nil, onSelect: Item<\/Type>.OnSelect<\/Type>.Callback<\/Type>? = nil, onDeselect: Item<\/Type>.OnDeselect<\/Type>.Callback<\/Type>? = nil, onInsert: Item<\/Type>.OnInsert<\/Type>.Callback<\/Type>? = nil, onRemove: Item<\/Type>.OnRemove<\/Type>.Callback<\/Type>? = nil, onMove: Item<\/Type>.OnMove<\/Type>.Callback<\/Type>? = nil, onUpdate: Item<\/Type>.OnUpdate<\/Type>.Callback<\/Type>? = nil, debuggingIdentifier: String<\/Type>? = nil, configure: (inout `Self`) -> () = { _ in })<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1660 - } - ], - "key.bodylength" : 734, - "key.bodyoffset" : 2616, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: ItemLayouts<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, selectionStyle<\/decl.var.parameter.argument_label>: ItemSelectionStyle<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, leadingSwipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, trailingSwipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, reordering<\/decl.var.parameter.argument_label>: ItemReordering<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onWasReordered<\/decl.var.parameter.argument_label>: Item<\/ref.typealias>.OnWasReordered<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDisplay<\/decl.var.parameter.argument_label>: Item<\/ref.typealias>.OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onEndDisplay<\/decl.var.parameter.argument_label>: Item<\/ref.typealias>.OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onSelect<\/decl.var.parameter.argument_label>: Item<\/ref.typealias>.OnSelect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDeselect<\/decl.var.parameter.argument_label>: Item<\/ref.typealias>.OnDeselect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onInsert<\/decl.var.parameter.argument_label>: Item<\/ref.typealias>.OnInsert<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onRemove<\/decl.var.parameter.argument_label>: Item<\/ref.typealias>.OnRemove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onMove<\/decl.var.parameter.argument_label>: Item<\/ref.typealias>.OnMove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onUpdate<\/decl.var.parameter.argument_label>: Item<\/ref.typealias>.OnUpdate<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, debuggingIdentifier<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1684, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "init(sizing:layouts:selectionStyle:insertAndRemoveAnimations:leadingSwipeActions:trailingSwipeActions:reordering:onWasReordered:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:debuggingIdentifier:configure:)", - "key.namelength" : 947, - "key.nameoffset" : 1667, - "key.offset" : 1667, - "key.parsed_declaration" : "public init(\n sizing : Sizing? = nil,\n layouts : ItemLayouts? = nil,\n selectionStyle : ItemSelectionStyle? = nil,\n insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,\n leadingSwipeActions : SwipeActionsConfiguration? = nil,\n trailingSwipeActions : SwipeActionsConfiguration? = nil,\n reordering : ItemReordering? = nil,\n onWasReordered : Item.OnWasReordered? = nil,\n onDisplay : Item.OnDisplay.Callback? = nil,\n onEndDisplay : Item.OnEndDisplay.Callback? = nil,\n onSelect : Item.OnSelect.Callback? = nil,\n onDeselect : Item.OnDeselect.Callback? = nil,\n onInsert : Item.OnInsert.Callback? = nil,\n onRemove : Item.OnRemove.Callback? = nil,\n onMove : Item.OnMove.Callback? = nil,\n onUpdate : Item.OnUpdate.Callback? = nil,\n debuggingIdentifier : String? = nil,\n \n configure : (inout Self) -> () = { _ in }\n)", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DefaultItemProperties.Type) -> (Sizing?, ItemLayouts?, ItemSelectionStyle?, ItemInsertAndRemoveAnimations?, SwipeActionsConfiguration?, SwipeActionsConfiguration?, ItemReordering?, ((Item, ItemReordering.Result) -> ())?, ((Item.OnDisplay) -> ())?, ((Item.OnEndDisplay) -> ())?, ((Item.OnSelect) -> ())?, ((Item.OnDeselect) -> ())?, ((Item.OnInsert) -> ())?, ((Item.OnRemove) -> ())?, ((Item.OnMove) -> ())?, ((Item.OnUpdate) -> ())?, String?, (inout DefaultItemProperties) -> ()) -> DefaultItemProperties", - "key.typeusr" : "$s6sizing7layouts14selectionStyle25insertAndRemoveAnimations19leadingSwipeActions08trailingjK010reordering14onWasReordered0N7Display0n3EndQ00N6Select0N8Deselect0N6Insert0nG00N4Move0N6Update19debuggingIdentifier9configure10ListableUI21DefaultItemPropertiesVyxGAS6SizingOSg_AS11ItemLayoutsVSgAS013ItemSelectionD0OSgAS04ItemufgH0VSgAS0jK13ConfigurationVSgA9_AS14ItemReorderingVSgyAS4ItemVyxG_A11_6ResultVtcSgyA14_02OnQ0Vyx_GcSgyA14_02OnrQ0Vyx_GcSgyA14_02OnS0Vyx_GcSgyA14_02OnT0Vyx_GcSgyA14_02OnU0Vyx_GcSgyA14_02OnG0Vyx_GcSgyA14_02OnV0Vyx_GcSgyA14_02OnW0Vyx_GcSgSSSgyAVzXEtcD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV6sizing7layouts14selectionStyle25insertAndRemoveAnimations19leadingSwipeActions08trailingoP010reordering14onWasReordered0S7Display0s3EndV00S6Select0S8Deselect0S6Insert0sL00S4Move0S6Update19debuggingIdentifier9configureACyxGAA6SizingOSg_AA0D7LayoutsVSgAA0d9SelectionI0OSgAA0dzklM0VSgAA0oP13ConfigurationVSgA9_AA0D10ReorderingVSgyAA0D0VyxG_A11_6ResultVtcSgyA14_02OnV0Vyx_GcSgyA14_02OnwV0Vyx_GcSgyA14_02OnX0Vyx_GcSgyA14_02OnY0Vyx_GcSgyA14_02OnZ0Vyx_GcSgyA14_02OnL0Vyx_GcSgyA14_6OnMoveVyx_GcSgyA14_8OnUpdateVyx_GcSgSSSgyAVzXEtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func defaults(with configure: (inout `Self`) -> () = { _ in }) -> DefaultItemProperties<\/Type><ContentType<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3361 - } - ], - "key.bodylength" : 41, - "key.bodyoffset" : 3446, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> defaults<\/decl.name>(with<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> DefaultItemProperties<\/ref.struct><ContentType<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 120, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "defaults(with:)", - "key.namelength" : 56, - "key.nameoffset" : 3380, - "key.offset" : 3368, - "key.parsed_declaration" : "public static func defaults(with configure : (inout Self) -> () = { _ in }) -> Self", - "key.parsed_scope.end" : 91, - "key.parsed_scope.start" : 89, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DefaultItemProperties.Type) -> ((inout DefaultItemProperties) -> ()) -> DefaultItemProperties", - "key.typeusr" : "$s4with10ListableUI21DefaultItemPropertiesVyxGyAEzXE_tcD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV8defaults4withACyxGyAFzXE_tFZ" - } - ], - "key.typename" : "DefaultItemProperties.Type", - "key.typeusr" : "$s10ListableUI21DefaultItemPropertiesVyxGmD", - "key.usr" : "s:10ListableUI21DefaultItemPropertiesV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 9339, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type>, AnyItemConvertible<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 891 - } - ], - "key.bodylength" : 5851, - "key.bodyoffset" : 962, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `Item` is one of the core types deployed by Listable, allowing you to specify\nand control many of the behaviors, appearance options, and callbacks for interacting\nwith rows within a list.\n\n`Item` wraps an `ItemContent` struct (a protocol you implement to provide content),\nwhich drives the primary content of the row the `Item` displays.\n\nIf you are used to working with a collection view or table view, you can think of `ItemContent`\nas what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional\noptions of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.\n\nOnce added to a section, `Item` is type erased to`AnyItem`,\nto allow for mixed collections of content within a section.", - "key.doc.column" : 15, - "key.doc.comment" : "\nAn `Item` is one of the core types deployed by Listable, allowing you to specify\nand control many of the behaviors, appearance options, and callbacks for interacting\nwith rows within a list.\n\n`Item` wraps an `ItemContent` struct (a protocol you implement to provide content),\nwhich drives the primary content of the row the `Item` displays.\n\nIf you are used to working with a collection view or table view, you can think of `ItemContent`\nas what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional\noptions of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.\n\nOnce added to a section, `Item` is type erased to`AnyItem`,\nto allow for mixed collections of content within a section.", - "key.doc.declaration" : "public struct Item : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "`Item` wraps an `ItemContent` struct (a protocol you implement to provide content), which drives the primary content of the row the `Item` displays." - }, - { - "Para" : "If you are used to working with a collection view or table view, you can think of `ItemContent` as what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc." - }, - { - "Para" : "Once added to a section, `Item` is type erased to`AnyItem`, to allow for mixed collections of content within a section." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.doc.full_as_xml" : "Item<\/Name>s:10ListableUI4ItemV<\/USR>public struct Item<Content> : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent<\/Declaration>An Item<\/codeVoice> is one of the core types deployed by Listable, allowing you to specify and control many of the behaviors, appearance options, and callbacks for interacting with rows within a list.<\/Para><\/Abstract>Item<\/codeVoice> wraps an ItemContent<\/codeVoice> struct (a protocol you implement to provide content), which drives the primary content of the row the Item<\/codeVoice> displays.<\/Para>If you are used to working with a collection view or table view, you can think of ItemContent<\/codeVoice> as what you put in the contentView<\/codeVoice> of your cell, and you can think of Item<\/codeVoice> as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.<\/Para>Once added to a section, Item<\/codeVoice> is type erased toAnyItem<\/codeVoice>, to allow for mixed collections of content within a section.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 22, - "key.doc.name" : "Item", - "key.doc.type" : "Class", - "key.doclength" : 809, - "key.docoffset" : 82, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 7, - "key.offset" : 933 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 18, - "key.offset" : 942 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol>, AnyItemConvertible<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyItem" - }, - { - "key.name" : "AnyItemConvertible" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 5916, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 905, - "key.offset" : 898, - "key.parsed_declaration" : "public struct Item : AnyItem, AnyItemConvertible", - "key.parsed_scope.end" : 190, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 918 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 910, - "key.offset" : 910, - "key.parsed_declaration" : "public struct Itempublic var identifier: Content<\/Type>.Identifier<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 967 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifier<\/decl.name>: Content<\/ref.generic_type_param>.Identifier<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 978, - "key.offset" : 974, - "key.parsed_declaration" : "public var identifier : Content.Identifier", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Identifier", - "key.typeusr" : "$s10ListableUI10IdentifierCyx0C5ValueQzGD", - "key.usr" : "s:10ListableUI4ItemV10identifierAA10IdentifierCyx0E5ValueQzGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var content: Content<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1019 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 1030, - "key.offset" : 1026, - "key.parsed_declaration" : "public var content : Content", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Content", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI4ItemV7contentxvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sizing: Sizing<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1057 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "sizing", - "key.namelength" : 6, - "key.nameoffset" : 1068, - "key.offset" : 1064, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP6sizingAA6SizingOvp" - } - ], - "key.parsed_declaration" : "public var sizing : Sizing", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Sizing", - "key.typeusr" : "$s10ListableUI6SizingOD", - "key.usr" : "s:10ListableUI4ItemV6sizingAA6SizingOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layouts: ItemLayouts<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1088 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: ItemLayouts<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 1099, - "key.offset" : 1095, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP7layoutsAA0D7LayoutsVvp" - } - ], - "key.parsed_declaration" : "public var layouts : ItemLayouts", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemLayouts", - "key.typeusr" : "$s10ListableUI11ItemLayoutsVD", - "key.usr" : "s:10ListableUI4ItemV7layoutsAA0C7LayoutsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var selectionStyle: ItemSelectionStyle<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1130 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectionStyle<\/decl.name>: ItemSelectionStyle<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "selectionStyle", - "key.namelength" : 14, - "key.nameoffset" : 1141, - "key.offset" : 1137, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP14selectionStyleAA0d9SelectionF0Ovp" - } - ], - "key.parsed_declaration" : "public var selectionStyle : ItemSelectionStyle", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemSelectionStyle", - "key.typeusr" : "$s10ListableUI18ItemSelectionStyleOD", - "key.usr" : "s:10ListableUI4ItemV14selectionStyleAA0c9SelectionE0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1186 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 62, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "insertAndRemoveAnimations", - "key.namelength" : 25, - "key.nameoffset" : 1197, - "key.offset" : 1193, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP25insertAndRemoveAnimationsAA0d6InsertfgH0VSgvp" - } - ], - "key.parsed_declaration" : "public var insertAndRemoveAnimations : ItemInsertAndRemoveAnimations?", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemInsertAndRemoveAnimations?", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVSgD", - "key.usr" : "s:10ListableUI4ItemV25insertAndRemoveAnimationsAA0c6InsertefG0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var leadingSwipeActions: SwipeActionsConfiguration<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1381 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The configuration that provides the set of actions to display when swiping on the leading edge of the cell.", - "key.doc.column" : 16, - "key.doc.comment" : "The configuration that provides the set of actions to display when swiping on the leading edge of the cell.", - "key.doc.declaration" : "public var leadingSwipeActions: SwipeActionsConfiguration?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.doc.full_as_xml" : "leadingSwipeActions<\/Name>s:10ListableUI4ItemV19leadingSwipeActionsAA0eF13ConfigurationVSgvp<\/USR>public var leadingSwipeActions: SwipeActionsConfiguration?<\/Declaration>The configuration that provides the set of actions to display when swiping on the leading edge of the cell.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 36, - "key.doc.name" : "leadingSwipeActions", - "key.doc.type" : "Other", - "key.doclength" : 112, - "key.docoffset" : 1265, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> leadingSwipeActions<\/decl.name>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "leadingSwipeActions", - "key.namelength" : 19, - "key.nameoffset" : 1392, - "key.offset" : 1388, - "key.parsed_declaration" : "public var leadingSwipeActions : SwipeActionsConfiguration?", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SwipeActionsConfiguration?", - "key.typeusr" : "$s10ListableUI25SwipeActionsConfigurationVSgD", - "key.usr" : "s:10ListableUI4ItemV19leadingSwipeActionsAA0eF13ConfigurationVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var trailingSwipeActions: SwipeActionsConfiguration<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1567 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The configuration that provides the set of actions to display when swiping on the trailing edge of the cell.", - "key.doc.column" : 16, - "key.doc.comment" : "The configuration that provides the set of actions to display when swiping on the trailing edge of the cell.", - "key.doc.declaration" : "public var trailingSwipeActions: SwipeActionsConfiguration?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.doc.full_as_xml" : "trailingSwipeActions<\/Name>s:10ListableUI4ItemV20trailingSwipeActionsAA0eF13ConfigurationVSgvp<\/USR>public var trailingSwipeActions: SwipeActionsConfiguration?<\/Declaration>The configuration that provides the set of actions to display when swiping on the trailing edge of the cell.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 39, - "key.doc.name" : "trailingSwipeActions", - "key.doc.type" : "Other", - "key.doclength" : 113, - "key.docoffset" : 1450, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> trailingSwipeActions<\/decl.name>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 53, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "trailingSwipeActions", - "key.namelength" : 20, - "key.nameoffset" : 1578, - "key.offset" : 1574, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP20trailingSwipeActionsAA0fG13ConfigurationVSgvp" - } - ], - "key.parsed_declaration" : "public var trailingSwipeActions : SwipeActionsConfiguration?", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SwipeActionsConfiguration?", - "key.typeusr" : "$s10ListableUI25SwipeActionsConfigurationVSgD", - "key.usr" : "s:10ListableUI4ItemV20trailingSwipeActionsAA0eF13ConfigurationVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.OnWasReordered = (`Self`, ItemReordering<\/Type>.Result<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1633 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.OnWasReordered<\/decl.name> = (`Self`<\/decl.var.parameter.type><\/decl.var.parameter>, ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 62, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "OnWasReordered", - "key.namelength" : 14, - "key.nameoffset" : 1650, - "key.offset" : 1640, - "key.parsed_declaration" : "public typealias OnWasReordered = (Self, ItemReordering.Result) -> ()", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 41, - "key.reusingastcontext" : false, - "key.typename" : "((Item, ItemReordering.Result) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemVyxG_AA0C10ReorderingV6ResultVtcmD", - "key.usr" : "s:10ListableUI4ItemV14OnWasReordereda" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var reordering: ItemReordering<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1712 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> reordering<\/decl.name>: ItemReordering<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "reordering", - "key.namelength" : 10, - "key.nameoffset" : 1723, - "key.offset" : 1719, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP10reorderingAA0D10ReorderingVSgvp" - } - ], - "key.parsed_declaration" : "public var reordering : ItemReordering?", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemReordering?", - "key.typeusr" : "$s10ListableUI14ItemReorderingVSgD", - "key.usr" : "s:10ListableUI4ItemV10reorderingAA0C10ReorderingVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onWasReordered: OnWasReordered<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1756 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onWasReordered<\/decl.name>: OnWasReordered<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "onWasReordered", - "key.namelength" : 14, - "key.nameoffset" : 1767, - "key.offset" : 1763, - "key.parsed_declaration" : "public var onWasReordered : OnWasReordered?", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item, ItemReordering.Result) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemVyxG_AA0C10ReorderingV6ResultVtcSgD", - "key.usr" : "s:10ListableUI4ItemV14onWasReorderedyACyxG_AA0C10ReorderingV6ResultVtcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onDisplay: OnDisplay<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1813 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onDisplay<\/decl.name>: OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "onDisplay", - "key.namelength" : 9, - "key.nameoffset" : 1824, - "key.offset" : 1820, - "key.parsed_declaration" : "public var onDisplay : OnDisplay.Callback?", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnDisplay) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV9OnDisplayVyx_GcSgD", - "key.usr" : "s:10ListableUI4ItemV9onDisplayyAC02OnE0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onEndDisplay: OnEndDisplay<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1860 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onEndDisplay<\/decl.name>: OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "onEndDisplay", - "key.namelength" : 12, - "key.nameoffset" : 1871, - "key.offset" : 1867, - "key.parsed_declaration" : "public var onEndDisplay : OnEndDisplay.Callback?", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnEndDisplay) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV12OnEndDisplayVyx_GcSgD", - "key.usr" : "s:10ListableUI4ItemV12onEndDisplayyAC02OneF0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onSelect: OnSelect<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1918 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onSelect<\/decl.name>: OnSelect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "onSelect", - "key.namelength" : 8, - "key.nameoffset" : 1929, - "key.offset" : 1925, - "key.parsed_declaration" : "public var onSelect : OnSelect.Callback?", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnSelect) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV8OnSelectVyx_GcSgD", - "key.usr" : "s:10ListableUI4ItemV8onSelectyAC02OnE0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onDeselect: OnDeselect<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1963 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onDeselect<\/decl.name>: OnDeselect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "onDeselect", - "key.namelength" : 10, - "key.nameoffset" : 1974, - "key.offset" : 1970, - "key.parsed_declaration" : "public var onDeselect : OnDeselect.Callback?", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnDeselect) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV10OnDeselectVyx_GcSgD", - "key.usr" : "s:10ListableUI4ItemV10onDeselectyAC02OnE0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onInsert: OnInsert<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2017 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onInsert<\/decl.name>: OnInsert<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 52, - "key.modulename" : "ListableUI", - "key.name" : "onInsert", - "key.namelength" : 8, - "key.nameoffset" : 2028, - "key.offset" : 2024, - "key.parsed_declaration" : "public var onInsert : OnInsert.Callback?", - "key.parsed_scope.end" : 52, - "key.parsed_scope.start" : 52, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnInsert) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV8OnInsertVyx_GcSgD", - "key.usr" : "s:10ListableUI4ItemV8onInsertyAC02OnE0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onRemove: OnRemove<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2062 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onRemove<\/decl.name>: OnRemove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "onRemove", - "key.namelength" : 8, - "key.nameoffset" : 2073, - "key.offset" : 2069, - "key.parsed_declaration" : "public var onRemove : OnRemove.Callback?", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 53, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnRemove) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV8OnRemoveVyx_GcSgD", - "key.usr" : "s:10ListableUI4ItemV8onRemoveyAC02OnE0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onMove: OnMove<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2107 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onMove<\/decl.name>: OnMove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "onMove", - "key.namelength" : 6, - "key.nameoffset" : 2118, - "key.offset" : 2114, - "key.parsed_declaration" : "public var onMove : OnMove.Callback?", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 54, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnMove) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV6OnMoveVyx_GcSgD", - "key.usr" : "s:10ListableUI4ItemV6onMoveyAC02OnE0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onUpdate: OnUpdate<\/Type>.Callback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2148 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onUpdate<\/decl.name>: OnUpdate<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "onUpdate", - "key.namelength" : 8, - "key.nameoffset" : 2159, - "key.offset" : 2155, - "key.parsed_declaration" : "public var onUpdate : OnUpdate.Callback?", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((Item.OnUpdate) -> ())?", - "key.typeusr" : "$sy10ListableUI4ItemV8OnUpdateVyx_GcSgD", - "key.usr" : "s:10ListableUI4ItemV8onUpdateyAC02OnE0Vyx_GcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var debuggingIdentifier: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2202 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 57, - "key.modulename" : "ListableUI", - "key.name" : "debuggingIdentifier", - "key.namelength" : 19, - "key.nameoffset" : 2213, - "key.offset" : 2209, - "key.parsed_declaration" : "public var debuggingIdentifier : String? = nil", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI4ItemV19debuggingIdentifierSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal let reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 2258 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> let<\/syntaxtype.keyword> reuseIdentifier<\/decl.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 59, - "key.modulename" : "ListableUI", - "key.name" : "reuseIdentifier", - "key.namelength" : 15, - "key.nameoffset" : 2271, - "key.offset" : 2267, - "key.parsed_declaration" : "internal let reuseIdentifier : ReuseIdentifier", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 59, - "key.reusingastcontext" : false, - "key.typename" : "ReuseIdentifier", - "key.typeusr" : "$s10ListableUI15ReuseIdentifierCyxGD", - "key.usr" : "s:10ListableUI4ItemV15reuseIdentifierAA05ReuseE0CyxGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 2333 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.Configure = (inout Item<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2370 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.Configure<\/decl.name> = (inout<\/syntaxtype.keyword> Item<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 40, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "Configure", - "key.namelength" : 9, - "key.nameoffset" : 2387, - "key.offset" : 2377, - "key.parsed_declaration" : "public typealias Configure = (inout Item) -> ()", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.typename" : "((inout Item) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemVyxGzcmD", - "key.usr" : "s:10ListableUI4ItemV9Configurea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ content: Content<\/Type>, configure: Configure<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2427 - } - ], - "key.bodylength" : 66, - "key.bodyoffset" : 2506, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 139, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "init(_:configure:)", - "key.namelength" : 70, - "key.nameoffset" : 2434, - "key.offset" : 2434, - "key.parsed_declaration" : "public init(\n _ content : Content,\n configure : Configure\n)", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 67, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:sizing:layouts:selectionStyle:insertAndRemoveAnimations:leadingSwipeActions:trailingSwipeActions:reordering:onWasReordered:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Item.Type) -> (Content, (inout Item) -> ()) -> Item", - "key.typeusr" : "$s_9configure10ListableUI4ItemVyxGx_yAEzXEtcD", - "key.usr" : "s:10ListableUI4ItemV_9configureACyxGx_yAEzXEtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ content: Content<\/Type>, sizing: Sizing<\/Type>? = nil, layouts: ItemLayouts<\/Type>? = nil, selectionStyle: ItemSelectionStyle<\/Type>? = nil, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>? = nil, leadingSwipeActions: SwipeActionsConfiguration<\/Type>? = nil, trailingSwipeActions: SwipeActionsConfiguration<\/Type>? = nil, reordering: ItemReordering<\/Type>? = nil, onWasReordered: OnWasReordered<\/Type>? = nil, onDisplay: OnDisplay<\/Type>.Callback<\/Type>? = nil, onEndDisplay: OnEndDisplay<\/Type>.Callback<\/Type>? = nil, onSelect: OnSelect<\/Type>.Callback<\/Type>? = nil, onDeselect: OnDeselect<\/Type>.Callback<\/Type>? = nil, onInsert: OnInsert<\/Type>.Callback<\/Type>? = nil, onRemove: OnRemove<\/Type>.Callback<\/Type>? = nil, onMove: OnMove<\/Type>.Callback<\/Type>? = nil, onUpdate: OnUpdate<\/Type>.Callback<\/Type>? = nil)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2583 - } - ], - "key.bodylength" : 2054, - "key.bodyoffset" : 3418, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: ItemLayouts<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, selectionStyle<\/decl.var.parameter.argument_label>: ItemSelectionStyle<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, leadingSwipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, trailingSwipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, reordering<\/decl.var.parameter.argument_label>: ItemReordering<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onWasReordered<\/decl.var.parameter.argument_label>: OnWasReordered<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDisplay<\/decl.var.parameter.argument_label>: OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onEndDisplay<\/decl.var.parameter.argument_label>: OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onSelect<\/decl.var.parameter.argument_label>: OnSelect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDeselect<\/decl.var.parameter.argument_label>: OnDeselect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onInsert<\/decl.var.parameter.argument_label>: OnInsert<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onRemove<\/decl.var.parameter.argument_label>: OnRemove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onMove<\/decl.var.parameter.argument_label>: OnMove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onUpdate<\/decl.var.parameter.argument_label>: OnUpdate<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2883, - "key.line" : 76, - "key.modulename" : "ListableUI", - "key.name" : "init(_:sizing:layouts:selectionStyle:insertAndRemoveAnimations:leadingSwipeActions:trailingSwipeActions:reordering:onWasReordered:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)", - "key.namelength" : 826, - "key.nameoffset" : 2590, - "key.offset" : 2590, - "key.parsed_declaration" : "public init(\n _ content : Content,\n sizing : Sizing? = nil,\n layouts : ItemLayouts? = nil,\n selectionStyle : ItemSelectionStyle? = nil,\n insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,\n leadingSwipeActions : SwipeActionsConfiguration? = nil,\n trailingSwipeActions : SwipeActionsConfiguration? = nil,\n reordering : ItemReordering? = nil,\n onWasReordered : OnWasReordered? = nil,\n onDisplay : OnDisplay.Callback? = nil,\n onEndDisplay : OnEndDisplay.Callback? = nil,\n onSelect : OnSelect.Callback? = nil,\n onDeselect : OnDeselect.Callback? = nil,\n onInsert : OnInsert.Callback? = nil,\n onRemove : OnRemove.Callback? = nil,\n onMove : OnMove.Callback? = nil,\n onUpdate : OnUpdate.Callback? = nil\n)", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 76, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:configure:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let defaults: DefaultItemProperties<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> defaults<\/decl.name>: DefaultItemProperties<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 49, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "defaults", - "key.namelength" : 8, - "key.nameoffset" : 3520, - "key.offset" : 3516, - "key.parsed_declaration" : "let defaults = self.content.defaultItemProperties", - "key.parsed_scope.end" : 99, - "key.parsed_scope.start" : 99, - "key.reusingastcontext" : false, - "key.typename" : "DefaultItemProperties", - "key.typeusr" : "$s10ListableUI21DefaultItemPropertiesVyxGD", - "key.usr" : "s:10ListableUI4ItemV_6sizing7layouts14selectionStyle25insertAndRemoveAnimations19leadingSwipeActions08trailingmN010reordering14onWasReordered0Q7Display0q3EndT00Q6Select0Q8Deselect0Q6Insert0qJ00Q4Move0Q6UpdateACyxGx_AA6SizingOSgAA0C7LayoutsVSgAA0c9SelectionG0OSgAA0cxijK0VSgAA0mN13ConfigurationVSgA7_AA0C10ReorderingVSgyAT_A9_6ResultVtcSgyAC02OnT0Vyx_GcSgyAC02OnuT0Vyx_GcSgyAC02OnV0Vyx_GcSgyAC02OnW0Vyx_GcSgyAC02OnX0Vyx_GcSgyAC02OnJ0Vyx_GcSgyAC02OnY0Vyx_GcSgyAC02OnZ0Vyx_GcSgtcfc8defaultsL_AA07DefaultC10PropertiesVyxGvp" - } - ], - "key.typename" : " (Item.Type) -> (Content, Sizing?, ItemLayouts?, ItemSelectionStyle?, ItemInsertAndRemoveAnimations?, SwipeActionsConfiguration?, SwipeActionsConfiguration?, ItemReordering?, ((Item, ItemReordering.Result) -> ())?, ((Item.OnDisplay) -> ())?, ((Item.OnEndDisplay) -> ())?, ((Item.OnSelect) -> ())?, ((Item.OnDeselect) -> ())?, ((Item.OnInsert) -> ())?, ((Item.OnRemove) -> ())?, ((Item.OnMove) -> ())?, ((Item.OnUpdate) -> ())?) -> Item", - "key.typeusr" : "$s_6sizing7layouts14selectionStyle25insertAndRemoveAnimations19leadingSwipeActions08trailingjK010reordering14onWasReordered0N7Display0n3EndQ00N6Select0N8Deselect0N6Insert0nG00N4Move0N6Update10ListableUI4ItemVyxGx_AQ6SizingOSgAQ0Z7LayoutsVSgAQ0z9SelectionD0OSgAQ0zufgH0VSgAQ0jK13ConfigurationVSgA7_AQ0Z10ReorderingVSgyAT_A9_6ResultVtcSgyAS02OnQ0Vyx_GcSgyAS02OnrQ0Vyx_GcSgyAS02OnS0Vyx_GcSgyAS02OnT0Vyx_GcSgyAS02OnU0Vyx_GcSgyAS02OnG0Vyx_GcSgyAS02OnV0Vyx_GcSgyAS02OnW0Vyx_GcSgtcD", - "key.usr" : "s:10ListableUI4ItemV_6sizing7layouts14selectionStyle25insertAndRemoveAnimations19leadingSwipeActions08trailingmN010reordering14onWasReordered0Q7Display0q3EndT00Q6Select0Q8Deselect0Q6Insert0qJ00Q4Move0Q6UpdateACyxGx_AA6SizingOSgAA0C7LayoutsVSgAA0c9SelectionG0OSgAA0cxijK0VSgAA0mN13ConfigurationVSgA7_AA0C10ReorderingVSgyAT_A9_6ResultVtcSgyAC02OnT0Vyx_GcSgyAC02OnuT0Vyx_GcSgyAC02OnV0Vyx_GcSgyAC02OnW0Vyx_GcSgyAC02OnX0Vyx_GcSgyAC02OnJ0Vyx_GcSgyAC02OnY0Vyx_GcSgyAC02OnZ0Vyx_GcSgtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 13, - "key.name" : "MARK: AnyItem", - "key.offset" : 5486 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var anyIdentifier: AnyIdentifier<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5509 - } - ], - "key.bodylength" : 29, - "key.bodyoffset" : 5551, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> anyIdentifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 65, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "anyIdentifier", - "key.namelength" : 13, - "key.nameoffset" : 5520, - "key.offset" : 5516, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP13anyIdentifierAA0cF0Cvp" - } - ], - "key.parsed_declaration" : "public var anyIdentifier : AnyIdentifier", - "key.parsed_scope.end" : 141, - "key.parsed_scope.start" : 139, - "key.reusingastcontext" : false, - "key.typename" : "AnyIdentifier", - "key.typeusr" : "$s10ListableUI13AnyIdentifierCD", - "key.usr" : "s:10ListableUI4ItemV13anyIdentifierAA03AnyE0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var anyContent: Any { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5591 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 5619, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> anyContent<\/decl.name>: Any<\/syntaxtype.keyword><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 143, - "key.modulename" : "ListableUI", - "key.name" : "anyContent", - "key.namelength" : 10, - "key.nameoffset" : 5602, - "key.offset" : 5598, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP10anyContentypvp" - } - ], - "key.parsed_declaration" : "public var anyContent: Any", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 143, - "key.reusingastcontext" : false, - "key.typename" : "Any", - "key.typeusr" : "$sypD", - "key.usr" : "s:10ListableUI4ItemV10anyContentypvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var reappliesToVisibleView: ReappliesToVisibleView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5656 - } - ], - "key.bodylength" : 49, - "key.bodyoffset" : 5715, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> reappliesToVisibleView<\/decl.name>: ReappliesToVisibleView<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 102, - "key.line" : 147, - "key.modulename" : "ListableUI", - "key.name" : "reappliesToVisibleView", - "key.namelength" : 22, - "key.nameoffset" : 5667, - "key.offset" : 5663, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI7AnyItemP22reappliesToVisibleViewAA09ReappliesfgH0Ovp" - } - ], - "key.parsed_declaration" : "public var reappliesToVisibleView: ReappliesToVisibleView", - "key.parsed_scope.end" : 149, - "key.parsed_scope.start" : 147, - "key.reusingastcontext" : false, - "key.typename" : "ReappliesToVisibleView", - "key.typeusr" : "$s10ListableUI22ReappliesToVisibleViewOD", - "key.usr" : "s:10ListableUI4ItemV22reappliesToVisibleViewAA09ReappliesefG0Ovp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: AnyItemConvertible", - "key.offset" : 5778 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func toAnyItem() -> AnyItem<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5812 - } - ], - "key.bodylength" : 18, - "key.bodyoffset" : 5848, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Converts the object into a type-erased `AnyItem` instance.", - "key.doc.column" : 10, - "key.doc.declaration" : "func toAnyItem() -> AnyItem", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItemConvertible.swift", - "key.doc.full_as_xml" : "toAnyItem()<\/Name>s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF<\/USR>func toAnyItem() -> AnyItem<\/Declaration>Converts the object into a type-erased AnyItem<\/codeVoice> instance.<\/Para><\/Abstract>This documentation comment was inherited from AnyItemConvertible<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 36, - "key.doc.name" : "toAnyItem()", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> toAnyItem<\/decl.name>() -> AnyItem<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 48, - "key.line" : 153, - "key.modulename" : "ListableUI", - "key.name" : "toAnyItem()", - "key.namelength" : 11, - "key.nameoffset" : 5824, - "key.offset" : 5819, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF" - } - ], - "key.parsed_declaration" : "public func toAnyItem() -> AnyItem", - "key.parsed_scope.end" : 155, - "key.parsed_scope.start" : 153, - "key.reusingastcontext" : false, - "key.typename" : " (Item) -> () -> any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pycD", - "key.usr" : "s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 22, - "key.name" : "MARK: AnyItem_Internal", - "key.offset" : 5880 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func anyIsEquivalent(to other: AnyItem<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5912 - } - ], - "key.bodylength" : 166, - "key.bodyoffset" : 5973, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> anyIsEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 221, - "key.line" : 159, - "key.modulename" : "ListableUI", - "key.name" : "anyIsEquivalent(to:)", - "key.namelength" : 35, - "key.nameoffset" : 5924, - "key.offset" : 5919, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AnyItem_InternalP15anyIsEquivalent2toSbAA0cD0_p_tF" - } - ], - "key.parsed_declaration" : "public func anyIsEquivalent(to other : AnyItem) -> Bool", - "key.parsed_scope.end" : 166, - "key.parsed_scope.start" : 159, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Item) -> (any AnyItem) -> Bool", - "key.typeusr" : "$s2toSb10ListableUI7AnyItem_p_tcD", - "key.usr" : "s:10ListableUI4ItemV15anyIsEquivalent2toSbAA03AnyC0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func anyWasMoved(comparedTo other: AnyItem<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6150 - } - ], - "key.bodylength" : 169, - "key.bodyoffset" : 6215, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> anyWasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 228, - "key.line" : 168, - "key.modulename" : "ListableUI", - "key.name" : "anyWasMoved(comparedTo:)", - "key.namelength" : 39, - "key.nameoffset" : 6162, - "key.offset" : 6157, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AnyItem_InternalP11anyWasMoved10comparedToSbAA0cD0_p_tF" - } - ], - "key.parsed_declaration" : "public func anyWasMoved(comparedTo other : AnyItem) -> Bool", - "key.parsed_scope.end" : 175, - "key.parsed_scope.start" : 168, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Item) -> (any AnyItem) -> Bool", - "key.typeusr" : "$s10comparedToSb10ListableUI7AnyItem_p_tcD", - "key.usr" : "s:10ListableUI4ItemV11anyWasMoved10comparedToSbAA03AnyC0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func newPresentationItemState(with dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, performsContentCallbacks: Bool<\/Type>) -> Any<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6395 - } - ], - "key.bodylength" : 226, - "key.bodyoffset" : 6585, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newPresentationItemState<\/decl.name>(with<\/decl.var.parameter.argument_label> dependencies<\/decl.var.parameter.name>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Any<\/syntaxtype.keyword><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 410, - "key.line" : 177, - "key.modulename" : "ListableUI", - "key.name" : "newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)", - "key.namelength" : 165, - "key.nameoffset" : 6407, - "key.offset" : 6402, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16AnyItem_InternalP015newPresentationD5State4with15updateCallbacks015performsContentK0ypAA0dH12DependenciesV_AA06UpdateK0CSbtF" - } - ], - "key.parsed_declaration" : "public func newPresentationItemState(\n with dependencies : ItemStateDependencies,\n updateCallbacks : UpdateCallbacks,\n performsContentCallbacks : Bool\n) -> Any", - "key.parsed_scope.end" : 189, - "key.parsed_scope.start" : 177, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Item) -> (ItemStateDependencies, UpdateCallbacks, Bool) -> Any", - "key.typeusr" : "$s4with15updateCallbacks015performsContentC0yp10ListableUI21ItemStateDependenciesV_AD06UpdateC0CSbtcD", - "key.usr" : "s:10ListableUI4ItemV015newPresentationC5State4with15updateCallbacks015performsContentI0ypAA0cF12DependenciesV_AA06UpdateI0CSbtF" - } - ], - "key.typename" : "Item.Type", - "key.typeusr" : "$s10ListableUI4ItemVyxGmD", - "key.usr" : "s:10ListableUI4ItemV" - }, - { - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.bodylength" : 2252, - "key.bodyoffset" : 6840, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2276, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 6827, - "key.offset" : 6817, - "key.parsed_declaration" : "extension ItemContent", - "key.parsed_scope.end" : 251, - "key.parsed_scope.start" : 193, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func with(sizing: Sizing<\/Type>? = nil, layouts: ItemLayouts<\/Type>? = nil, selectionStyle: ItemSelectionStyle<\/Type>? = nil, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>? = nil, leadingSwipeActions: SwipeActionsConfiguration<\/Type>? = nil, trailingSwipeActions: SwipeActionsConfiguration<\/Type>? = nil, reordering: ItemReordering<\/Type>? = nil, onWasReordered: Item<\/Type><Self<\/Type>>.OnWasReordered<\/Type>? = nil, onDisplay: Item<\/Type><Self<\/Type>>.OnDisplay<\/Type>.Callback<\/Type>? = nil, onEndDisplay: Item<\/Type><Self<\/Type>>.OnEndDisplay<\/Type>.Callback<\/Type>? = nil, onSelect: Item<\/Type><Self<\/Type>>.OnSelect<\/Type>.Callback<\/Type>? = nil, onDeselect: Item<\/Type><Self<\/Type>>.OnDeselect<\/Type>.Callback<\/Type>? = nil, onInsert: Item<\/Type><Self<\/Type>>.OnInsert<\/Type>.Callback<\/Type>? = nil, onRemove: Item<\/Type><Self<\/Type>>.OnRemove<\/Type>.Callback<\/Type>? = nil, onMove: Item<\/Type><Self<\/Type>>.OnMove<\/Type>.Callback<\/Type>? = nil, onUpdate: Item<\/Type><Self<\/Type>>.OnUpdate<\/Type>.Callback<\/Type>? = nil) -> Item<\/Type><Self<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7492 - } - ], - "key.bodylength" : 670, - "key.bodyoffset" : 8420, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Identical to `Item.init` which takes in an `ItemContent`,\nexcept you can call this on the `ItemContent` itself, instead of wrapping it,\nto avoid additional nesting, and to hoist your content up in your code.\n\n```\nSection(\"id\") { section in\n section += MyItemContent(name: \"Listable\")\n .with(\n sizing: .thatFits(.noConstraint),\n selectionStyle: .tappable\n )\n\nstruct MyItemContent : ItemContent {\n var name : String\n ...\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "Identical to `Item.init` which takes in an `ItemContent`,\nexcept you can call this on the `ItemContent` itself, instead of wrapping it,\nto avoid additional nesting, and to hoist your content up in your code.\n\n```\nSection(\"id\") { section in\n section += MyItemContent(name: \"Listable\")\n .with(\n sizing: .thatFits(.noConstraint),\n selectionStyle: .tappable\n )\n\nstruct MyItemContent : ItemContent {\n var name : String\n ...\n}\n```", - "key.doc.declaration" : "public func with(sizing: Sizing? = nil, layouts: ItemLayouts? = nil, selectionStyle: ItemSelectionStyle? = nil, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations? = nil, leadingSwipeActions: SwipeActionsConfiguration? = nil, trailingSwipeActions: SwipeActionsConfiguration? = nil, reordering: ItemReordering? = nil, onWasReordered: Item.OnWasReordered? = nil, onDisplay: Item.OnDisplay.Callback? = nil, onEndDisplay: Item.OnEndDisplay.Callback? = nil, onSelect: Item.OnSelect.Callback? = nil, onDeselect: Item.OnDeselect.Callback? = nil, onInsert: Item.OnInsert.Callback? = nil, onRemove: Item.OnRemove.Callback? = nil, onMove: Item.OnMove.Callback? = nil, onUpdate: Item.OnUpdate.Callback? = nil) -> Item", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.doc.full_as_xml" : "with(sizing:layouts:selectionStyle:insertAndRemoveAnimations:leadingSwipeActions:trailingSwipeActions:reordering:onWasReordered:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)<\/Name>s:10ListableUI11ItemContentPAAE4with6sizing7layouts14selectionStyle25insertAndRemoveAnimations19leadingSwipeActions08trailingoP010reordering14onWasReordered0S7Display0s3EndV00S6Select0S8Deselect0S6Insert0sL00S4Move0S6UpdateAA0C0VyxGAA6SizingOSg_AA0C7LayoutsVSgAA0c9SelectionI0OSgAA0czklM0VSgAA0oP13ConfigurationVSgA10_AA0C10ReorderingVSgyAW_A12_6ResultVtcSgyAV02OnV0Vyx_GcSgyAV02OnwV0Vyx_GcSgyAV02OnX0Vyx_GcSgyAV02OnY0Vyx_GcSgyAV02OnZ0Vyx_GcSgyAV02OnL0Vyx_GcSgyAV6OnMoveVyx_GcSgyAV8OnUpdateVyx_GcSgtF<\/USR>public func with(sizing: Sizing? = nil, layouts: ItemLayouts? = nil, selectionStyle: ItemSelectionStyle? = nil, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations? = nil, leadingSwipeActions: SwipeActionsConfiguration? = nil, trailingSwipeActions: SwipeActionsConfiguration? = nil, reordering: ItemReordering? = nil, onWasReordered: Item<Self>.OnWasReordered? = nil, onDisplay: Item<Self>.OnDisplay.Callback? = nil, onEndDisplay: Item<Self>.OnEndDisplay.Callback? = nil, onSelect: Item<Self>.OnSelect.Callback? = nil, onDeselect: Item<Self>.OnDeselect.Callback? = nil, onInsert: Item<Self>.OnInsert.Callback? = nil, onRemove: Item<Self>.OnRemove.Callback? = nil, onMove: Item<Self>.OnMove.Callback? = nil, onUpdate: Item<Self>.OnUpdate.Callback? = nil) -> Item<Self><\/Declaration>Identical to Item.init<\/codeVoice> which takes in an ItemContent<\/codeVoice>, except you can call this on the ItemContent<\/codeVoice> itself, instead of wrapping it, to avoid additional nesting, and to hoist your content up in your code.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 212, - "key.doc.name" : "with(sizing:layouts:selectionStyle:insertAndRemoveAnimations:leadingSwipeActions:trailingSwipeActions:reordering:onWasReordered:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)", - "key.doc.type" : "Function", - "key.doclength" : 638, - "key.docoffset" : 6850, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> with<\/decl.name>(sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: ItemLayouts<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, selectionStyle<\/decl.var.parameter.argument_label>: ItemSelectionStyle<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, leadingSwipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, trailingSwipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, reordering<\/decl.var.parameter.argument_label>: ItemReordering<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onWasReordered<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Self<\/ref.generic_type_param>>.OnWasReordered<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDisplay<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Self<\/ref.generic_type_param>>.OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onEndDisplay<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Self<\/ref.generic_type_param>>.OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onSelect<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Self<\/ref.generic_type_param>>.OnSelect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDeselect<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Self<\/ref.generic_type_param>>.OnDeselect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onInsert<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Self<\/ref.generic_type_param>>.OnInsert<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onRemove<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Self<\/ref.generic_type_param>>.OnRemove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onMove<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Self<\/ref.generic_type_param>>.OnMove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onUpdate<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Self<\/ref.generic_type_param>>.OnUpdate<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>) -> Item<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1592, - "key.line" : 212, - "key.modulename" : "ListableUI", - "key.name" : "with(sizing:layouts:selectionStyle:insertAndRemoveAnimations:leadingSwipeActions:trailingSwipeActions:reordering:onWasReordered:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)", - "key.namelength" : 896, - "key.nameoffset" : 7504, - "key.offset" : 7499, - "key.parsed_declaration" : "public func with(\n sizing : Sizing? = nil,\n layouts : ItemLayouts? = nil,\n selectionStyle : ItemSelectionStyle? = nil,\n insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,\n leadingSwipeActions : SwipeActionsConfiguration? = nil,\n trailingSwipeActions : SwipeActionsConfiguration? = nil,\n reordering : ItemReordering? = nil,\n onWasReordered : Item.OnWasReordered? = nil,\n onDisplay : Item.OnDisplay.Callback? = nil,\n onEndDisplay : Item.OnEndDisplay.Callback? = nil,\n onSelect : Item.OnSelect.Callback? = nil,\n onDeselect : Item.OnDeselect.Callback? = nil,\n onInsert : Item.OnInsert.Callback? = nil,\n onRemove : Item.OnRemove.Callback? = nil,\n onMove : Item.OnMove.Callback? = nil,\n onUpdate : Item.OnUpdate.Callback? = nil\n) -> Item", - "key.parsed_scope.end" : 250, - "key.parsed_scope.start" : 212, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Sizing?, ItemLayouts?, ItemSelectionStyle?, ItemInsertAndRemoveAnimations?, SwipeActionsConfiguration?, SwipeActionsConfiguration?, ItemReordering?, ((Item, ItemReordering.Result) -> ())?, ((Item.OnDisplay) -> ())?, ((Item.OnEndDisplay) -> ())?, ((Item.OnSelect) -> ())?, ((Item.OnDeselect) -> ())?, ((Item.OnInsert) -> ())?, ((Item.OnRemove) -> ())?, ((Item.OnMove) -> ())?, ((Item.OnUpdate) -> ())?) -> Item", - "key.typeusr" : "$s6sizing7layouts14selectionStyle25insertAndRemoveAnimations19leadingSwipeActions08trailingjK010reordering14onWasReordered0N7Display0n3EndQ00N6Select0N8Deselect0N6Insert0nG00N4Move0N6Update10ListableUI4ItemVyxGAQ6SizingOSg_AQ0Z7LayoutsVSgAQ0z9SelectionD0OSgAQ0zufgH0VSgAQ0jK13ConfigurationVSgA7_AQ0Z10ReorderingVSgyAT_A9_6ResultVtcSgyAS02OnQ0Vyx_GcSgyAS02OnrQ0Vyx_GcSgyAS02OnS0Vyx_GcSgyAS02OnT0Vyx_GcSgyAS02OnU0Vyx_GcSgyAS02OnG0Vyx_GcSgyAS02OnV0Vyx_GcSgyAS02OnW0Vyx_GcSgtcD", - "key.usr" : "s:10ListableUI11ItemContentPAAE4with6sizing7layouts14selectionStyle25insertAndRemoveAnimations19leadingSwipeActions08trailingoP010reordering14onWasReordered0S7Display0s3EndV00S6Select0S8Deselect0S6Insert0sL00S4Move0S6UpdateAA0C0VyxGAA6SizingOSg_AA0C7LayoutsVSgAA0c9SelectionI0OSgAA0czklM0VSgAA0oP13ConfigurationVSgA10_AA0C10ReorderingVSgyAW_A12_6ResultVtcSgyAV02OnV0Vyx_GcSgyAV02OnwV0Vyx_GcSgyAV02OnX0Vyx_GcSgyAV02OnY0Vyx_GcSgyAV02OnZ0Vyx_GcSgyAV02OnL0Vyx_GcSgyAV6OnMoveVyx_GcSgyAV8OnUpdateVyx_GcSgtF" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type>, AnyItemConvertible<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.bodylength" : 206, - "key.bodyoffset" : 9131, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `Item` is one of the core types deployed by Listable, allowing you to specify\nand control many of the behaviors, appearance options, and callbacks for interacting\nwith rows within a list.\n\n`Item` wraps an `ItemContent` struct (a protocol you implement to provide content),\nwhich drives the primary content of the row the `Item` displays.\n\nIf you are used to working with a collection view or table view, you can think of `ItemContent`\nas what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional\noptions of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.\n\nOnce added to a section, `Item` is type erased to`AnyItem`,\nto allow for mixed collections of content within a section.", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct Item : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "`Item` wraps an `ItemContent` struct (a protocol you implement to provide content), which drives the primary content of the row the `Item` displays." - }, - { - "Para" : "If you are used to working with a collection view or table view, you can think of `ItemContent` as what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc." - }, - { - "Para" : "Once added to a section, `Item` is type erased to`AnyItem`, to allow for mixed collections of content within a section." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.doc.full_as_xml" : "Item<\/Name>s:10ListableUI4ItemV<\/USR>public struct Item<Content> : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent<\/Declaration>An Item<\/codeVoice> is one of the core types deployed by Listable, allowing you to specify and control many of the behaviors, appearance options, and callbacks for interacting with rows within a list.<\/Para><\/Abstract>Item<\/codeVoice> wraps an ItemContent<\/codeVoice> struct (a protocol you implement to provide content), which drives the primary content of the row the Item<\/codeVoice> displays.<\/Para>If you are used to working with a collection view or table view, you can think of ItemContent<\/codeVoice> as what you put in the contentView<\/codeVoice> of your cell, and you can think of Item<\/codeVoice> as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.<\/Para>Once added to a section, Item<\/codeVoice> is type erased toAnyItem<\/codeVoice>, to allow for mixed collections of content within a section.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 22, - "key.doc.name" : "Item", - "key.doc.type" : "Class", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 9113 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol>, AnyItemConvertible<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "SignpostLoggable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 242, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 9106, - "key.offset" : 9096, - "key.parsed_declaration" : "extension Item : SignpostLoggable", - "key.parsed_scope.end" : 262, - "key.parsed_scope.start" : 254, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var signpostInfo: SignpostLoggingInfo<\/Type> { get }<\/Declaration>", - "key.bodylength" : 159, - "key.bodyoffset" : 9176, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> signpostInfo<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 200, - "key.line" : 256, - "key.modulename" : "ListableUI", - "key.name" : "signpostInfo", - "key.namelength" : 12, - "key.nameoffset" : 9140, - "key.offset" : 9136, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16SignpostLoggableP12signpostInfoAA0c7LoggingF0Vvp" - } - ], - "key.parsed_declaration" : "var signpostInfo : SignpostLoggingInfo", - "key.parsed_scope.end" : 261, - "key.parsed_scope.start" : 256, - "key.reusingastcontext" : false, - "key.typename" : "SignpostLoggingInfo", - "key.typeusr" : "$s10ListableUI19SignpostLoggingInfoVD", - "key.usr" : "s:10ListableUI4ItemV12signpostInfoAA015SignpostLoggingE0Vvp" - } - ], - "key.typename" : "Item.Type", - "key.typeusr" : "$s10ListableUI4ItemVyxGmD", - "key.usr" : "s:10ListableUI4ItemV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1568, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type>, AnyItemConvertible<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 113 - } - ], - "key.bodylength" : 1430, - "key.bodyoffset" : 136, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `Item` is one of the core types deployed by Listable, allowing you to specify\nand control many of the behaviors, appearance options, and callbacks for interacting\nwith rows within a list.\n\n`Item` wraps an `ItemContent` struct (a protocol you implement to provide content),\nwhich drives the primary content of the row the `Item` displays.\n\nIf you are used to working with a collection view or table view, you can think of `ItemContent`\nas what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional\noptions of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.\n\nOnce added to a section, `Item` is type erased to`AnyItem`,\nto allow for mixed collections of content within a section.", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct Item : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "`Item` wraps an `ItemContent` struct (a protocol you implement to provide content), which drives the primary content of the row the `Item` displays." - }, - { - "Para" : "If you are used to working with a collection view or table view, you can think of `ItemContent` as what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc." - }, - { - "Para" : "Once added to a section, `Item` is type erased to`AnyItem`, to allow for mixed collections of content within a section." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.doc.full_as_xml" : "Item<\/Name>s:10ListableUI4ItemV<\/USR>public struct Item<Content> : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent<\/Declaration>An Item<\/codeVoice> is one of the core types deployed by Listable, allowing you to specify and control many of the behaviors, appearance options, and callbacks for interacting with rows within a list.<\/Para><\/Abstract>Item<\/codeVoice> wraps an ItemContent<\/codeVoice> struct (a protocol you implement to provide content), which drives the primary content of the row the Item<\/codeVoice> displays.<\/Para>If you are used to working with a collection view or table view, you can think of ItemContent<\/codeVoice> as what you put in the contentView<\/codeVoice> of your cell, and you can think of Item<\/codeVoice> as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.<\/Para>Once added to a section, Item<\/codeVoice> is type erased toAnyItem<\/codeVoice>, to allow for mixed collections of content within a section.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 22, - "key.doc.name" : "Item", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol>, AnyItemConvertible<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1447, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 130, - "key.offset" : 120, - "key.parsed_declaration" : "public extension Item", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "struct OnDisplay<\/Declaration>", - "key.bodylength" : 141, - "key.bodyoffset" : 224, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Value passed to the `onDisplay` callback for `Item`.", - "key.doc.column" : 12, - "key.doc.comment" : "Value passed to the `onDisplay` callback for `Item`.", - "key.doc.declaration" : "struct OnDisplay", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.doc.full_as_xml" : "OnDisplay<\/Name>s:10ListableUI4ItemV9OnDisplayV<\/USR>struct OnDisplay<\/Declaration>Value passed to the onDisplay<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 14, - "key.doc.name" : "OnDisplay", - "key.doc.type" : "Class", - "key.doclength" : 57, - "key.docoffset" : 141, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnDisplay<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 164, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "OnDisplay", - "key.namelength" : 9, - "key.nameoffset" : 209, - "key.offset" : 202, - "key.parsed_declaration" : "struct OnDisplay", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.OnDisplay<\/Type>.Callback = (OnDisplay<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 233 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.OnDisplay<\/ref.struct>.Callback<\/decl.name> = (OnDisplay<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 38, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 250, - "key.offset" : 240, - "key.parsed_declaration" : "public typealias Callback = (OnDisplay) -> ()", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "((Item.OnDisplay) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemV9OnDisplayVyx_GcmD", - "key.usr" : "s:10ListableUI4ItemV9OnDisplayV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 288 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 299, - "key.offset" : 295, - "key.parsed_declaration" : "public var item : Item", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV9OnDisplayV4itemACyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isFirstDisplay: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 328 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "isFirstDisplay", - "key.namelength" : 14, - "key.nameoffset" : 339, - "key.offset" : 335, - "key.parsed_declaration" : "public var isFirstDisplay : Bool", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI4ItemV9OnDisplayV07isFirstE0Sbvp" - } - ], - "key.typename" : "Item.OnDisplay.Type", - "key.typeusr" : "$s10ListableUI4ItemV9OnDisplayVyx_GmD", - "key.usr" : "s:10ListableUI4ItemV9OnDisplayV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "struct OnEndDisplay<\/Declaration>", - "key.bodylength" : 147, - "key.bodyoffset" : 465, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Value passed to the `onEndDisplay` callback for `Item`.", - "key.doc.column" : 12, - "key.doc.comment" : "Value passed to the `onEndDisplay` callback for `Item`.", - "key.doc.declaration" : "struct OnEndDisplay", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.doc.full_as_xml" : "OnEndDisplay<\/Name>s:10ListableUI4ItemV12OnEndDisplayV<\/USR>struct OnEndDisplay<\/Declaration>Value passed to the onEndDisplay<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 24, - "key.doc.name" : "OnEndDisplay", - "key.doc.type" : "Class", - "key.doclength" : 60, - "key.docoffset" : 376, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnEndDisplay<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 173, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "OnEndDisplay", - "key.namelength" : 12, - "key.nameoffset" : 447, - "key.offset" : 440, - "key.parsed_declaration" : "struct OnEndDisplay", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.OnEndDisplay<\/Type>.Callback = (OnEndDisplay<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 474 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.OnEndDisplay<\/ref.struct>.Callback<\/decl.name> = (OnEndDisplay<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 41, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 491, - "key.offset" : 481, - "key.parsed_declaration" : "public typealias Callback = (OnEndDisplay) -> ()", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.typename" : "((Item.OnEndDisplay) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemV12OnEndDisplayVyx_GcmD", - "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 532 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 543, - "key.offset" : 539, - "key.parsed_declaration" : "public var item : Item", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV4itemACyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isFirstEndDisplay: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 572 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstEndDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "isFirstEndDisplay", - "key.namelength" : 17, - "key.nameoffset" : 583, - "key.offset" : 579, - "key.parsed_declaration" : "public var isFirstEndDisplay : Bool", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV07isFirsteF0Sbvp" - } - ], - "key.typename" : "Item.OnEndDisplay.Type", - "key.typeusr" : "$s10ListableUI4ItemV12OnEndDisplayVyx_GmD", - "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "struct OnSelect<\/Declaration>", - "key.bodylength" : 98, - "key.bodyoffset" : 704, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Value passed to the `onSelect` callback for `Item`.", - "key.doc.column" : 12, - "key.doc.comment" : "Value passed to the `onSelect` callback for `Item`.", - "key.doc.declaration" : "struct OnSelect", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.doc.full_as_xml" : "OnSelect<\/Name>s:10ListableUI4ItemV8OnSelectV<\/USR>struct OnSelect<\/Declaration>Value passed to the onSelect<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 34, - "key.doc.name" : "OnSelect", - "key.doc.type" : "Class", - "key.doclength" : 56, - "key.docoffset" : 623, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnSelect<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 120, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "OnSelect", - "key.namelength" : 8, - "key.nameoffset" : 690, - "key.offset" : 683, - "key.parsed_declaration" : "struct OnSelect", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 34, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.OnSelect<\/Type>.Callback = (OnSelect<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 713 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.OnSelect<\/ref.struct>.Callback<\/decl.name> = (OnSelect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 37, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 730, - "key.offset" : 720, - "key.parsed_declaration" : "public typealias Callback = (OnSelect) -> ()", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.typename" : "((Item.OnSelect) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemV8OnSelectVyx_GcmD", - "key.usr" : "s:10ListableUI4ItemV8OnSelectV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 775 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 786, - "key.offset" : 782, - "key.parsed_declaration" : "public var item : Item", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 38, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV8OnSelectV4itemACyxGvp" - } - ], - "key.typename" : "Item.OnSelect.Type", - "key.typeusr" : "$s10ListableUI4ItemV8OnSelectVyx_GmD", - "key.usr" : "s:10ListableUI4ItemV8OnSelectV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "struct OnDeselect<\/Declaration>", - "key.bodylength" : 92, - "key.bodyoffset" : 898, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Value passed to the `onDeselect` callback for `Item`.", - "key.doc.column" : 12, - "key.doc.comment" : "Value passed to the `onDeselect` callback for `Item`.", - "key.doc.declaration" : "struct OnDeselect", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.doc.full_as_xml" : "OnDeselect<\/Name>s:10ListableUI4ItemV10OnDeselectV<\/USR>struct OnDeselect<\/Declaration>Value passed to the onDeselect<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "OnDeselect", - "key.doc.type" : "Class", - "key.doclength" : 58, - "key.docoffset" : 813, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnDeselect<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 116, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "OnDeselect", - "key.namelength" : 10, - "key.nameoffset" : 882, - "key.offset" : 875, - "key.parsed_declaration" : "struct OnDeselect", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.OnDeselect<\/Type>.Callback = (OnDeselect<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 907 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.OnDeselect<\/ref.struct>.Callback<\/decl.name> = (OnDeselect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 39, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 924, - "key.offset" : 914, - "key.parsed_declaration" : "public typealias Callback = (OnDeselect) -> ()", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.typename" : "((Item.OnDeselect) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemV10OnDeselectVyx_GcmD", - "key.usr" : "s:10ListableUI4ItemV10OnDeselectV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 963 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 974, - "key.offset" : 970, - "key.parsed_declaration" : "public var item : Item", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV10OnDeselectV4itemACyxGvp" - } - ], - "key.typename" : "Item.OnDeselect.Type", - "key.typeusr" : "$s10ListableUI4ItemV10OnDeselectVyx_GmD", - "key.usr" : "s:10ListableUI4ItemV10OnDeselectV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "struct OnInsert<\/Declaration>", - "key.bodylength" : 98, - "key.bodyoffset" : 1022, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnInsert<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 120, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "OnInsert", - "key.namelength" : 8, - "key.nameoffset" : 1008, - "key.offset" : 1001, - "key.parsed_declaration" : "struct OnInsert", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.OnInsert<\/Type>.Callback = (OnInsert<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1031 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.OnInsert<\/ref.struct>.Callback<\/decl.name> = (OnInsert<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 37, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 1048, - "key.offset" : 1038, - "key.parsed_declaration" : "public typealias Callback = (OnInsert) -> ()", - "key.parsed_scope.end" : 51, - "key.parsed_scope.start" : 51, - "key.reusingastcontext" : false, - "key.typename" : "((Item.OnInsert) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemV8OnInsertVyx_GcmD", - "key.usr" : "s:10ListableUI4ItemV8OnInsertV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1093 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 1104, - "key.offset" : 1100, - "key.parsed_declaration" : "public var item : Item", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 53, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV8OnInsertV4itemACyxGvp" - } - ], - "key.typename" : "Item.OnInsert.Type", - "key.typeusr" : "$s10ListableUI4ItemV8OnInsertVyx_GmD", - "key.usr" : "s:10ListableUI4ItemV8OnInsertV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "struct OnRemove<\/Declaration>", - "key.bodylength" : 98, - "key.bodyoffset" : 1152, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnRemove<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 120, - "key.line" : 56, - "key.modulename" : "ListableUI", - "key.name" : "OnRemove", - "key.namelength" : 8, - "key.nameoffset" : 1138, - "key.offset" : 1131, - "key.parsed_declaration" : "struct OnRemove", - "key.parsed_scope.end" : 61, - "key.parsed_scope.start" : 56, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.OnRemove<\/Type>.Callback = (OnRemove<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1161 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.OnRemove<\/ref.struct>.Callback<\/decl.name> = (OnRemove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 37, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 1178, - "key.offset" : 1168, - "key.parsed_declaration" : "public typealias Callback = (OnRemove) -> ()", - "key.parsed_scope.end" : 58, - "key.parsed_scope.start" : 58, - "key.reusingastcontext" : false, - "key.typename" : "((Item.OnRemove) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemV8OnRemoveVyx_GcmD", - "key.usr" : "s:10ListableUI4ItemV8OnRemoveV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1223 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 1234, - "key.offset" : 1230, - "key.parsed_declaration" : "public var item : Item", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV8OnRemoveV4itemACyxGvp" - } - ], - "key.typename" : "Item.OnRemove.Type", - "key.typeusr" : "$s10ListableUI4ItemV8OnRemoveVyx_GmD", - "key.usr" : "s:10ListableUI4ItemV8OnRemoveV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "struct OnMove<\/Declaration>", - "key.bodylength" : 125, - "key.bodyoffset" : 1280, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnMove<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 145, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "OnMove", - "key.namelength" : 6, - "key.nameoffset" : 1268, - "key.offset" : 1261, - "key.parsed_declaration" : "struct OnMove", - "key.parsed_scope.end" : 69, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.OnMove<\/Type>.Callback = (OnMove<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1289 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.OnMove<\/ref.struct>.Callback<\/decl.name> = (OnMove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 35, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 1306, - "key.offset" : 1296, - "key.parsed_declaration" : "public typealias Callback = (OnMove) -> ()", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.typename" : "((Item.OnMove) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemV6OnMoveVyx_GcmD", - "key.usr" : "s:10ListableUI4ItemV6OnMoveV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var old: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1349 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> old<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 14, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 1360, - "key.offset" : 1356, - "key.parsed_declaration" : "public var old : Item", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 67, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV6OnMoveV3oldACyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var new: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1379 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> new<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 14, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 1390, - "key.offset" : 1386, - "key.parsed_declaration" : "public var new : Item", - "key.parsed_scope.end" : 68, - "key.parsed_scope.start" : 68, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV6OnMoveV3newACyxGvp" - } - ], - "key.typename" : "Item.OnMove.Type", - "key.typeusr" : "$s10ListableUI4ItemV6OnMoveVyx_GmD", - "key.usr" : "s:10ListableUI4ItemV6OnMoveV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "struct OnUpdate<\/Declaration>", - "key.bodylength" : 127, - "key.bodyoffset" : 1437, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnUpdate<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 149, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "OnUpdate", - "key.namelength" : 8, - "key.nameoffset" : 1423, - "key.offset" : 1416, - "key.parsed_declaration" : "struct OnUpdate", - "key.parsed_scope.end" : 77, - "key.parsed_scope.start" : 71, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Item<\/Type><Content<\/Type>>.OnUpdate<\/Type>.Callback = (OnUpdate<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1446 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>>.OnUpdate<\/ref.struct>.Callback<\/decl.name> = (OnUpdate<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 37, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "Callback", - "key.namelength" : 8, - "key.nameoffset" : 1463, - "key.offset" : 1453, - "key.parsed_declaration" : "public typealias Callback = (OnUpdate) -> ()", - "key.parsed_scope.end" : 73, - "key.parsed_scope.start" : 73, - "key.reusingastcontext" : false, - "key.typename" : "((Item.OnUpdate) -> ()).Type", - "key.typeusr" : "$sy10ListableUI4ItemV8OnUpdateVyx_GcmD", - "key.usr" : "s:10ListableUI4ItemV8OnUpdateV8Callbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var old: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1508 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> old<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 14, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 1519, - "key.offset" : 1515, - "key.parsed_declaration" : "public var old : Item", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 75, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV8OnUpdateV3oldACyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var new: Item<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1538 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> new<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 14, - "key.line" : 76, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 1549, - "key.offset" : 1545, - "key.parsed_declaration" : "public var new : Item", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 76, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI4ItemV8OnUpdateV3newACyxGvp" - } - ], - "key.typename" : "Item.OnUpdate.Type", - "key.typeusr" : "$s10ListableUI4ItemV8OnUpdateVyx_GmD", - "key.usr" : "s:10ListableUI4ItemV8OnUpdateV" - } - ], - "key.typename" : "Item.Type", - "key.typeusr" : "$s10ListableUI4ItemVyxGmD", - "key.usr" : "s:10ListableUI4ItemV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 26828, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1293 - } - ], - "key.bodylength" : 17381, - "key.bodyoffset" : 1385, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nAn `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 1189, - "key.docoffset" : 104, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 18, - "key.offset" : 1323 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyItemConvertible" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 17467, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 1309, - "key.offset" : 1300, - "key.parsed_declaration" : "public protocol ItemContent : AnyItemConvertible where Coordinator.ItemContentType == Self", - "key.parsed_scope.end" : 471, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Identification", - "key.offset" : 1400 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype IdentifierValue : Hashable<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `Hashable` type which is returned from ``ItemContent\/identifierValue-swift.property``,\nwhich is used to identify the ``ItemContent`` when it put into a list.\n\nThe ``ItemContent\/identifierValue-swift.property`` is used to unique the item,\ncontrol its lifetime, and identify it across update operations.\n\nSee ``ItemContent\/identifierValue-swift.property`` for more.", - "key.doc.column" : 20, - "key.doc.comment" : "A `Hashable` type which is returned from ``ItemContent\/identifierValue-swift.property``,\nwhich is used to identify the ``ItemContent`` when it put into a list.\n\nThe ``ItemContent\/identifierValue-swift.property`` is used to unique the item,\ncontrol its lifetime, and identify it across update operations.\n\nSee ``ItemContent\/identifierValue-swift.property`` for more.", - "key.doc.declaration" : "associatedtype IdentifierValue : Hashable", - "key.doc.discussion" : [ - { - "Para" : "The `ItemContent\/identifierValue-swift.property` is used to unique the item, control its lifetime, and identify it across update operations." - }, - { - "Para" : "See `ItemContent\/identifierValue-swift.property` for more." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "IdentifierValue<\/Name>s:10ListableUI11ItemContentP15IdentifierValueQa<\/USR>associatedtype IdentifierValue : Hashable<\/Declaration>A Hashable<\/codeVoice> type which is returned from ItemContent\/identifierValue-swift.property<\/codeVoice>, which is used to identify the ItemContent<\/codeVoice> when it put into a list.<\/Para><\/Abstract>The ItemContent\/identifierValue-swift.property<\/codeVoice> is used to unique the item, control its lifetime, and identify it across update operations.<\/Para>See ItemContent\/identifierValue-swift.property<\/codeVoice> for more.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 56, - "key.doc.name" : "IdentifierValue", - "key.doc.type" : "Other", - "key.doclength" : 416, - "key.docoffset" : 1437, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> IdentifierValue<\/decl.name> : Hashable<\/ref.protocol><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 41, - "key.line" : 56, - "key.modulename" : "ListableUI", - "key.name" : "IdentifierValue", - "key.namelength" : 15, - "key.nameoffset" : 1872, - "key.offset" : 1857, - "key.parsed_declaration" : "associatedtype IdentifierValue : Hashable", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 56, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.IdentifierValue.Type", - "key.typeusr" : "$s15IdentifierValueQzmD", - "key.usr" : "s:10ListableUI11ItemContentP15IdentifierValueQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var identifierValue: IdentifierValue<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 8725, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used to unique the item, control its lifetime, and identify it across update operations.\n\n### Identifier Stability\nThis value must be stable. Changing the `identifier` will mean that the list will think\nthe item has been removed from the list (and a new one inserted), which can cause\nundesired animations or other undesired behavior when a new view is created and inserted.\n\n```swift\nstruct MyItemContent : ItemContent {\n\n var identifierValue : UUID {\n \/\/ 🚫 Wrong; will change every time the item is accessed.\n UUID()\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let contentID = UUID()\n\n var identifierValue : UUID {\n \/\/ 🚫 Also wrong, will change every time the item is built.\n self.contentID()\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model \/\/ Conforms to Hashable\n\n var identifierValue : String {\n \/\/ 🚫 Wrong! This will change the value of the identifier\n \/\/ any time any value within our content changes.\n\n self.model\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : String {\n \/\/ 🚫 Still wrong! Same as above, but with reflection. You should\n \/\/ never used a reflecting or describing method to generate an identifier.\n\n String(describing\/reflecting: self.model)\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ ✅ Good! Stable across updates.\n self.model.serverID\n }\n}\n```\n\nIdentifier stability is especially important with items that embed interactive controls, like buttons, sliders,\ntext fields, etc. The identifier of the control should be stable and **independent of the value\nthe control is currently representing**. Including the value the control is currently representing\nin the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one.\n```swift\nstruct MySearchBarRow : ItemContent {\n\n let searchText : String\n\n var identifierValue : String {\n \/\/ 🚫 Wrong; identifier will change every time the search text changes.\n searchText\n }\n}\n\nstruct MySearchBarRow : ItemContent {\n\n let searchText : String\n let id : String \/\/ Something like \"item-search\".\n\n var identifierValue : String {\n \/\/ ✅ Good! Stable across updates.\n id\n }\n}\n```\n\n### Identifier Uniqueness\nWhile identifiers do need to be _stable_, they do not need to be globally unique – the list will make a\n\"best guess\" if there are multiple items with the same identifier. However, diffing of changes\nwill be more visually correct with a unique identifier.\n\nIf you are backing your content with some sort of client or server-provided data, consider using its\nserver or client UUID here, or some other stable unique identifier from the underlying data model.\n\nGenerally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID\nas mentioned above. For something without the concept of identity, consider providing a value\nbased on what the content represents (eg, a row title like \"Settings\").\n\n```swift\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ 🚫 Likely wrong. If entered by the user,\n \/\/ there could be many items with this name,\n \/\/ or multiple items with no name at all, leading\n \/\/ to identifier collisions.\n\n self.model.name\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let setting : Setting\n\n var identifierValue : UUID {\n \/\/ 🤔 Probably good enough! Since this item\n \/\/ represents a setting in a settings screen,\n \/\/ returning the title of the row is likely\n \/\/ unique enough to guarantee stability.\n\n self.setting.name \/\/ Something like \"Location Services\".\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ ✅ Good! Very unique.\n self.model.serverID\n }\n}\n```\n\n### Identifier Leverages The Type System\nYour ``ItemContent\/identifierValue-swift.property`` gets wrapped up in an `Identifier`\nwhen it used by the list to unique the item, control its lifetime, and identify it across update operations. This\nadditional type information is used to further unique the identifier. You do not need to provide any\nadditional type-salting and uniquing information in your ``ItemContent\/identifierValue-swift.property`` besides the value from your content.\n\nEven once the ``Identifier`` is type-erased to ``AnyIdentifier``, this type information is retained:\n```swift\nlet first : AnyIdentifier = Identifier(\"a-value\")\nlet second : AnyIdentifier = Identifier(\"a-value\")\n\nlet isEqual = first == second \/\/ false\n```\n\nIn practical terms, this means that your ``ItemContent\/identifierValue-swift.property`` implementation should be:\n```swift\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : String {\n \/\/ 🚫 Not needed: Type information will be encoded into the Identifier.\n \"MyItemContent-\\(model.serverID)\"\n }\n}\n\nstruct MySearchBarRow : ItemContent {\n\n let model : Model\n\n var identifierValue : searchText {\n \/\/ ✅ Good! No need for the string interpolation.\n model.serverID\n }\n}\n```", - "key.doc.column" : 9, - "key.doc.comment" : "\nUsed to unique the item, control its lifetime, and identify it across update operations.\n\n### Identifier Stability\nThis value must be stable. Changing the `identifier` will mean that the list will think\nthe item has been removed from the list (and a new one inserted), which can cause\nundesired animations or other undesired behavior when a new view is created and inserted.\n\n```swift\nstruct MyItemContent : ItemContent {\n\n var identifierValue : UUID {\n \/\/ 🚫 Wrong; will change every time the item is accessed.\n UUID()\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let contentID = UUID()\n\n var identifierValue : UUID {\n \/\/ 🚫 Also wrong, will change every time the item is built.\n self.contentID()\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model \/\/ Conforms to Hashable\n\n var identifierValue : String {\n \/\/ 🚫 Wrong! This will change the value of the identifier\n \/\/ any time any value within our content changes.\n\n self.model\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : String {\n \/\/ 🚫 Still wrong! Same as above, but with reflection. You should\n \/\/ never used a reflecting or describing method to generate an identifier.\n\n String(describing\/reflecting: self.model)\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ ✅ Good! Stable across updates.\n self.model.serverID\n }\n}\n```\n\nIdentifier stability is especially important with items that embed interactive controls, like buttons, sliders,\ntext fields, etc. The identifier of the control should be stable and **independent of the value\nthe control is currently representing**. Including the value the control is currently representing\nin the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one.\n```swift\nstruct MySearchBarRow : ItemContent {\n\n let searchText : String\n\n var identifierValue : String {\n \/\/ 🚫 Wrong; identifier will change every time the search text changes.\n searchText\n }\n}\n\nstruct MySearchBarRow : ItemContent {\n\n let searchText : String\n let id : String \/\/ Something like \"item-search\".\n\n var identifierValue : String {\n \/\/ ✅ Good! Stable across updates.\n id\n }\n}\n```\n\n### Identifier Uniqueness\nWhile identifiers do need to be _stable_, they do not need to be globally unique – the list will make a\n\"best guess\" if there are multiple items with the same identifier. However, diffing of changes\nwill be more visually correct with a unique identifier.\n\nIf you are backing your content with some sort of client or server-provided data, consider using its\nserver or client UUID here, or some other stable unique identifier from the underlying data model.\n\nGenerally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID\nas mentioned above. For something without the concept of identity, consider providing a value\nbased on what the content represents (eg, a row title like \"Settings\").\n\n```swift\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ 🚫 Likely wrong. If entered by the user,\n \/\/ there could be many items with this name,\n \/\/ or multiple items with no name at all, leading\n \/\/ to identifier collisions.\n\n self.model.name\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let setting : Setting\n\n var identifierValue : UUID {\n \/\/ 🤔 Probably good enough! Since this item\n \/\/ represents a setting in a settings screen,\n \/\/ returning the title of the row is likely\n \/\/ unique enough to guarantee stability.\n\n self.setting.name \/\/ Something like \"Location Services\".\n }\n}\n\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : UUID {\n \/\/ ✅ Good! Very unique.\n self.model.serverID\n }\n}\n```\n\n### Identifier Leverages The Type System\nYour ``ItemContent\/identifierValue-swift.property`` gets wrapped up in an `Identifier`\nwhen it used by the list to unique the item, control its lifetime, and identify it across update operations. This\nadditional type information is used to further unique the identifier. You do not need to provide any\nadditional type-salting and uniquing information in your ``ItemContent\/identifierValue-swift.property`` besides the value from your content.\n\nEven once the ``Identifier`` is type-erased to ``AnyIdentifier``, this type information is retained:\n```swift\nlet first : AnyIdentifier = Identifier(\"a-value\")\nlet second : AnyIdentifier = Identifier(\"a-value\")\n\nlet isEqual = first == second \/\/ false\n```\n\nIn practical terms, this means that your ``ItemContent\/identifierValue-swift.property`` implementation should be:\n```swift\nstruct MyItemContent : ItemContent {\n\n let model : Model\n\n var identifierValue : String {\n \/\/ 🚫 Not needed: Type information will be encoded into the Identifier.\n \"MyItemContent-\\(model.serverID)\"\n }\n}\n\nstruct MySearchBarRow : ItemContent {\n\n let model : Model\n\n var identifierValue : searchText {\n \/\/ ✅ Good! No need for the string interpolation.\n model.serverID\n }\n}\n```", - "key.doc.declaration" : "var identifierValue: IdentifierValue { get }", - "key.doc.discussion" : [ - { - "Para" : "This value must be stable. Changing the `identifier` will mean that the list will think the item has been removed from the list (and a new one inserted), which can cause undesired animations or other undesired behavior when a new view is created and inserted." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Identifier stability is especially important with items that embed interactive controls, like buttons, sliders, text fields, etc. The identifier of the control should be stable and . Including the value the control is currently representing in the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one." - }, - { - "CodeListing" : "" - }, - { - "Para" : "While identifiers do need to be , they do not need to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more visually correct with a unique identifier." - }, - { - "Para" : "If you are backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other stable unique identifier from the underlying data model." - }, - { - "Para" : "Generally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID as mentioned above. For something without the concept of identity, consider providing a value based on what the content represents (eg, a row title like “Settings”)." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Your `ItemContent\/identifierValue-swift.property` gets wrapped up in an `Identifier` when it used by the list to unique the item, control its lifetime, and identify it across update operations. This additional type information is used to further unique the identifier. You do not need to provide any additional type-salting and uniquing information in your `ItemContent\/identifierValue-swift.property` besides the value from your content." - }, - { - "Para" : "Even once the `Identifier` is type-erased to `AnyIdentifier`, this type information is retained:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "In practical terms, this means that your `ItemContent\/identifierValue-swift.property` implementation should be:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "identifierValue<\/Name>s:10ListableUI11ItemContentP15identifierValue010IdentifierF0Qzvp<\/USR>var identifierValue: IdentifierValue { get }<\/Declaration>Used to unique the item, control its lifetime, and identify it across update operations.<\/Para><\/Abstract>]]><\/rawHTML>Identifier Stability]]><\/rawHTML>This value must be stable. Changing the identifier<\/codeVoice> will mean that the list will think the item has been removed from the list (and a new one inserted), which can cause undesired animations or other undesired behavior when a new view is created and inserted.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Identifier stability is especially important with items that embed interactive controls, like buttons, sliders, text fields, etc. The identifier of the control should be stable and independent of the value the control is currently representing<\/bold>. Including the value the control is currently representing in the identifier will cause the list to repeatedly re-create the control, removing the old item and inserting the new one.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Identifier Uniqueness]]><\/rawHTML>While identifiers do need to be stable<\/emphasis>, they do not need to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more visually correct with a unique identifier.<\/Para>If you are backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other stable unique identifier from the underlying data model.<\/Para>Generally, try to use the most stable ID you have access to. Sometimes this will be a server or client ID as mentioned above. For something without the concept of identity, consider providing a value based on what the content represents (eg, a row title like “Settings”).<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Identifier Leverages The Type System]]><\/rawHTML>Your ItemContent\/identifierValue-swift.property<\/codeVoice> gets wrapped up in an Identifier<YourItemContent, IdentifierValue><\/codeVoice> when it used by the list to unique the item, control its lifetime, and identify it across update operations. This additional type information is used to further unique the identifier. You do not need to provide any additional type-salting and uniquing information in your ItemContent\/identifierValue-swift.property<\/codeVoice> besides the value from your content.<\/Para>Even once the Identifier<\/codeVoice> is type-erased to AnyIdentifier<\/codeVoice>, this type information is retained:<\/Para>(\"a-value\")]]><\/zCodeLineNumbered>(\"a-value\")]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In practical terms, this means that your ItemContent\/identifierValue-swift.property<\/codeVoice> implementation should be:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 235, - "key.doc.name" : "identifierValue", - "key.doc.type" : "Other", - "key.doclength" : 6774, - "key.docoffset" : 1908, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifierValue<\/decl.name>: IdentifierValue<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 235, - "key.modulename" : "ListableUI", - "key.name" : "identifierValue", - "key.namelength" : 15, - "key.nameoffset" : 8690, - "key.offset" : 8686, - "key.parsed_declaration" : "var identifierValue : IdentifierValue", - "key.parsed_scope.end" : 235, - "key.parsed_scope.start" : 235, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "identifierValue<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.IdentifierValue", - "key.typeusr" : "$s15IdentifierValueQzD", - "key.usr" : "s:10ListableUI11ItemContentP15identifierValue010IdentifierF0Qzvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 22, - "key.name" : "MARK: Tracking Changes", - "key.offset" : 8751 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func isEquivalent(to other: Self<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used by the list to determine when the content of the item has changed; in order to\nremeasure the item and re-layout the list.\n\nYou should return `false` from this method when any content within your item that\naffects visual appearance or layout (and in particular, sizing) changes. When the list\nreceives `false` back from this method, it will invalidate any cached sizing it has stored\nfor the item, and re-measure + re-layout the content.\n\n```swift\nstruct MyItemContent : ItemContent, Equatable {\n\n var identifierValue : UUID\n var title : String\n var detail : String\n var theme : MyTheme\n var onTapDetail : () -> ()\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ 🚫 Missing checks for title and detail.\n \/\/ If they change, they likely affect sizing,\n \/\/ which would result in incorrect item sizing.\n\n self.theme == other.theme\n }\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ 🚫 Missing check for theme.\n \/\/ If the theme changed; its likely that the device's\n \/\/ accessibility settings changed; dark mode was enabled,\n \/\/ etc. All of these can affect the appearance or sizing\n \/\/ of the item.\n\n self.title == other.title &&\n self.detail == other.detail\n }\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ ✅ Checking all parameters which can affect appearance + layout.\n \/\/ Not checking identifierValue or onTapDetail, since they do not affect appearance + layout.\n\n self.theme == other.theme &&\n self.title == other.title &&\n self.detail == other.detail\n }\n}\n\nstruct MyItemContent : ItemContent, Equatable {\n \/\/ ✅ Nothing else needed!\n \/\/ `Equatable` conformance provides `isEquivalent(to:) for free!`\n}\n```\n\n#### Note\nIf your ``ItemContent`` conforms to ``Equatable``, there is a default\nimplementation of this method which simply returns `self == other`.\n", - "key.doc.column" : 10, - "key.doc.comment" : "\nUsed by the list to determine when the content of the item has changed; in order to\nremeasure the item and re-layout the list.\n\nYou should return `false` from this method when any content within your item that\naffects visual appearance or layout (and in particular, sizing) changes. When the list\nreceives `false` back from this method, it will invalidate any cached sizing it has stored\nfor the item, and re-measure + re-layout the content.\n\n```swift\nstruct MyItemContent : ItemContent, Equatable {\n\n var identifierValue : UUID\n var title : String\n var detail : String\n var theme : MyTheme\n var onTapDetail : () -> ()\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ 🚫 Missing checks for title and detail.\n \/\/ If they change, they likely affect sizing,\n \/\/ which would result in incorrect item sizing.\n\n self.theme == other.theme\n }\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ 🚫 Missing check for theme.\n \/\/ If the theme changed; its likely that the device's\n \/\/ accessibility settings changed; dark mode was enabled,\n \/\/ etc. All of these can affect the appearance or sizing\n \/\/ of the item.\n\n self.title == other.title &&\n self.detail == other.detail\n }\n\n func isEquivalent(to other : MyItemContent) -> Bool {\n \/\/ ✅ Checking all parameters which can affect appearance + layout.\n \/\/ Not checking identifierValue or onTapDetail, since they do not affect appearance + layout.\n\n self.theme == other.theme &&\n self.title == other.title &&\n self.detail == other.detail\n }\n}\n\nstruct MyItemContent : ItemContent, Equatable {\n \/\/ ✅ Nothing else needed!\n \/\/ `Equatable` conformance provides `isEquivalent(to:) for free!`\n}\n```\n\n#### Note\nIf your ``ItemContent`` conforms to ``Equatable``, there is a default\nimplementation of this method which simply returns `self == other`.", - "key.doc.declaration" : "func isEquivalent(to other: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "You should return `false` from this method when any content within your item that affects visual appearance or layout (and in particular, sizing) changes. When the list receives `false` back from this method, it will invalidate any cached sizing it has stored for the item, and re-measure + re-layout the content." - }, - { - "CodeListing" : "" - }, - { - "Para" : "If your `ItemContent` conforms to `Equatable`, there is a default implementation of this method which simply returns `self == other`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Used by the list to determine when the content of the item has changed; in order to remeasure the item and re-layout the list.<\/Para><\/Abstract>You should return false<\/codeVoice> from this method when any content within your item that affects visual appearance or layout (and in particular, sizing) changes. When the list receives false<\/codeVoice> back from this method, it will invalidate any cached sizing it has stored for the item, and re-measure + re-layout the content.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ()]]><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>If your ItemContent<\/codeVoice> conforms to Equatable<\/codeVoice>, there is a default implementation of this method which simply returns self == other<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 298, - "key.doc.name" : "isEquivalent(to:)", - "key.doc.type" : "Function", - "key.doclength" : 2398, - "key.docoffset" : 8790, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 42, - "key.line" : 298, - "key.modulename" : "ListableUI", - "key.name" : "isEquivalent(to:)", - "key.namelength" : 29, - "key.nameoffset" : 11197, - "key.offset" : 11192, - "key.parsed_declaration" : "func isEquivalent(to other : Self) -> Bool", - "key.parsed_scope.end" : 298, - "key.parsed_scope.start" : 298, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "isEquivalent(to: Self) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Self) -> Bool", - "key.typeusr" : "$s2toSbx_tcD", - "key.usr" : "s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasMoved(comparedTo other: Self<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used by the list view to determine move events during an update's diff operation.\n\nThis function should return `true` if the content's sort changed based on the old value passed into the function.\nFor example, if your content is sorted based on an `updatedAt` `Date` parameter, you would implement\nthis method as follows:\n```swift\nfunc wasMoved(comparedTo other : MyContent) -> Bool {\n self.updatedAt != other.updatedAt\n}\n```\n\n#### Note\nThere is a default implementation of this method which calls `isEquivalent == false`. Unless\nyour list has an extremely high amount of ordering churn, you should not need to implement this method.\n", - "key.doc.column" : 10, - "key.doc.comment" : "Used by the list view to determine move events during an update's diff operation.\n\nThis function should return `true` if the content's sort changed based on the old value passed into the function.\nFor example, if your content is sorted based on an `updatedAt` `Date` parameter, you would implement\nthis method as follows:\n```swift\nfunc wasMoved(comparedTo other : MyContent) -> Bool {\n self.updatedAt != other.updatedAt\n}\n```\n\n#### Note\nThere is a default implementation of this method which calls `isEquivalent == false`. Unless\nyour list has an extremely high amount of ordering churn, you should not need to implement this method.", - "key.doc.declaration" : "func wasMoved(comparedTo other: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "This function should return `true` if the content’s sort changed based on the old value passed into the function. For example, if your content is sorted based on an `updatedAt` `Date` parameter, you would implement this method as follows:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "There is a default implementation of this method which calls `isEquivalent == false`. Unless your list has an extremely high amount of ordering churn, you should not need to implement this method." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "wasMoved(comparedTo:)<\/Name>s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF<\/USR>func wasMoved(comparedTo other: Self) -> Bool<\/Declaration>Used by the list view to determine move events during an update’s diff operation.<\/Para><\/Abstract>This function should return true<\/codeVoice> if the content’s sort changed based on the old value passed into the function. For example, if your content is sorted based on an updatedAt<\/codeVoice> Date<\/codeVoice> parameter, you would implement this method as follows:<\/Para> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method which calls isEquivalent == false<\/codeVoice>. Unless your list has an extremely high amount of ordering churn, you should not need to implement this method.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 315, - "key.doc.name" : "wasMoved(comparedTo:)", - "key.doc.type" : "Function", - "key.doclength" : 751, - "key.docoffset" : 11244, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 46, - "key.line" : 315, - "key.modulename" : "ListableUI", - "key.name" : "wasMoved(comparedTo:)", - "key.namelength" : 33, - "key.nameoffset" : 12004, - "key.offset" : 11999, - "key.parsed_declaration" : "func wasMoved(comparedTo other : Self) -> Bool", - "key.parsed_scope.end" : 315, - "key.parsed_scope.start" : 315, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasMoved(comparedTo: Self) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Self) -> Bool", - "key.typeusr" : "$s10comparedToSbx_tcD", - "key.usr" : "s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 29, - "key.name" : "MARK: Default Item Properties", - "key.offset" : 12065 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "typealias ItemContent<\/Type>.DefaultProperties = DefaultItemProperties<\/Type><Self<\/Type>><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ItemContent<\/ref.protocol>.DefaultProperties<\/decl.name> = DefaultItemProperties<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 57, - "key.line" : 321, - "key.modulename" : "ListableUI", - "key.name" : "DefaultProperties", - "key.namelength" : 17, - "key.nameoffset" : 12121, - "key.offset" : 12111, - "key.parsed_declaration" : "typealias DefaultProperties = DefaultItemProperties", - "key.parsed_scope.end" : 321, - "key.parsed_scope.start" : 321, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "DefaultItemProperties.Type", - "key.typeusr" : "$s10ListableUI21DefaultItemPropertiesVyxGmD", - "key.usr" : "s:10ListableUI11ItemContentP17DefaultPropertiesa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var defaultItemProperties: DefaultProperties<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 12393, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Default values to assign to various properties on the `Item` which wraps\nthis `ItemContent`, if those values are not passed to the `Item` initializer.", - "key.doc.column" : 9, - "key.doc.comment" : "Default values to assign to various properties on the `Item` which wraps\nthis `ItemContent`, if those values are not passed to the `Item` initializer.", - "key.doc.declaration" : "var defaultItemProperties: DefaultProperties { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "defaultItemProperties<\/Name>s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp<\/USR>var defaultItemProperties: DefaultProperties { get }<\/Declaration>Default values to assign to various properties on the Item<\/codeVoice> which wraps this ItemContent<\/codeVoice>, if those values are not passed to the Item<\/codeVoice> initializer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 326, - "key.doc.name" : "defaultItemProperties", - "key.doc.type" : "Other", - "key.doclength" : 163, - "key.docoffset" : 12179, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultItemProperties<\/decl.name>: DefaultProperties<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 53, - "key.line" : 326, - "key.modulename" : "ListableUI", - "key.name" : "defaultItemProperties", - "key.namelength" : 21, - "key.nameoffset" : 12350, - "key.offset" : 12346, - "key.parsed_declaration" : "var defaultItemProperties : DefaultProperties", - "key.parsed_scope.end" : 326, - "key.parsed_scope.start" : 326, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "defaultItemProperties<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "DefaultItemProperties", - "key.typeusr" : "$s10ListableUI21DefaultItemPropertiesVyxGD", - "key.usr" : "s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 32, - "key.name" : "MARK: Applying To Displayed View", - "key.offset" : 12419 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func apply(to views: ItemContentViews<\/Type><Self<\/Type>>, for reason: ApplyReason<\/Type>, with info: ApplyItemContentInfo<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Called when rendering the content. This is where you should push data from your\ncontent into the passed in views.\n\nDo not retain a reference to the passed in views – they are reused by the list.\n", - "key.doc.column" : 10, - "key.doc.comment" : "Called when rendering the content. This is where you should push data from your\ncontent into the passed in views.\n\nDo not retain a reference to the passed in views – they are reused by the list.", - "key.doc.declaration" : "func apply(to views: ItemContentViews, for reason: ApplyReason, with info: ApplyItemContentInfo)", - "key.doc.discussion" : [ - { - "Para" : "Do not retain a reference to the passed in views – they are reused by the list." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "apply(to:for:with:)<\/Name>s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF<\/USR>func apply(to views: ItemContentViews<Self>, for reason: ApplyReason, with info: ApplyItemContentInfo)<\/Declaration>Called when rendering the content. This is where you should push data from your content into the passed in views.<\/Para><\/Abstract>Do not retain a reference to the passed in views – they are reused by the list.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 338, - "key.doc.name" : "apply(to:for:with:)", - "key.doc.type" : "Function", - "key.doclength" : 228, - "key.docoffset" : 12472, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: ItemContentViews<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 134, - "key.line" : 338, - "key.modulename" : "ListableUI", - "key.name" : "apply(to:for:with:)", - "key.namelength" : 129, - "key.nameoffset" : 12710, - "key.offset" : 12705, - "key.parsed_declaration" : "func apply(\n to views : ItemContentViews,\n for reason: ApplyReason,\n with info : ApplyItemContentInfo\n)", - "key.parsed_scope.end" : 338, - "key.parsed_scope.start" : 338, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ItemContentViews, ApplyReason, ApplyItemContentInfo) -> ()", - "key.typeusr" : "$s2to3for4withy10ListableUI16ItemContentViewsVyxG_AD11ApplyReasonOAD0ifG4InfoVtcD", - "key.usr" : "s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var reappliesToVisibleView: ReappliesToVisibleView<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 13140, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the `ItemContent` is on screen, controls how and when to apply updates\nto the view.\n\nDefaults to ``ReappliesToVisibleView\/always``.\n\nSee ``ReappliesToVisibleView`` for a full discussion.", - "key.doc.column" : 9, - "key.doc.comment" : "When the `ItemContent` is on screen, controls how and when to apply updates\nto the view.\n\nDefaults to ``ReappliesToVisibleView\/always``.\n\nSee ``ReappliesToVisibleView`` for a full discussion.", - "key.doc.declaration" : "var reappliesToVisibleView: ReappliesToVisibleView { get }", - "key.doc.discussion" : [ - { - "Para" : "Defaults to `ReappliesToVisibleView\/always`." - }, - { - "Para" : "See `ReappliesToVisibleView` for a full discussion." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "reappliesToVisibleView<\/Name>s:10ListableUI11ItemContentP22reappliesToVisibleViewAA09ReappliesfgH0Ovp<\/USR>var reappliesToVisibleView: ReappliesToVisibleView { get }<\/Declaration>When the ItemContent<\/codeVoice> is on screen, controls how and when to apply updates to the view.<\/Para><\/Abstract>Defaults to ReappliesToVisibleView\/always<\/codeVoice>.<\/Para>See ReappliesToVisibleView<\/codeVoice> for a full discussion.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 350, - "key.doc.name" : "reappliesToVisibleView", - "key.doc.type" : "Other", - "key.doclength" : 234, - "key.docoffset" : 12849, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reappliesToVisibleView<\/decl.name>: ReappliesToVisibleView<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 59, - "key.line" : 350, - "key.modulename" : "ListableUI", - "key.name" : "reappliesToVisibleView", - "key.namelength" : 22, - "key.nameoffset" : 13091, - "key.offset" : 13087, - "key.parsed_declaration" : "var reappliesToVisibleView : ReappliesToVisibleView", - "key.parsed_scope.end" : 350, - "key.parsed_scope.start" : 350, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "reappliesToVisibleView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ReappliesToVisibleView", - "key.typeusr" : "$s10ListableUI22ReappliesToVisibleViewOD", - "key.usr" : "s:10ListableUI11ItemContentP22reappliesToVisibleViewAA09ReappliesfgH0Ovp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 45, - "key.name" : "MARK: Creating & Providing Swipe Action Views", - "key.offset" : 13166 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var swipeActionsStyle: SwipeActionsViewStyle<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 13441, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The swipe action style for this content.\n\nIf this is `nil`, the style provided by the ``SwipeActionsViewStyleKey`` environment value will be used.", - "key.doc.column" : 9, - "key.doc.comment" : "The swipe action style for this content.\n\nIf this is `nil`, the style provided by the ``SwipeActionsViewStyleKey`` environment value will be used.", - "key.doc.declaration" : "var swipeActionsStyle: SwipeActionsViewStyle? { get }", - "key.doc.discussion" : [ - { - "Para" : "If this is `nil`, the style provided by the `SwipeActionsViewStyleKey` environment value will be used." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "swipeActionsStyle<\/Name>s:10ListableUI11ItemContentP17swipeActionsStyleAA05Swipef4ViewG0VSgvp<\/USR>var swipeActionsStyle: SwipeActionsViewStyle? { get }<\/Declaration>The swipe action style for this content.<\/Para><\/Abstract>If this is nil<\/codeVoice>, the style provided by the SwipeActionsViewStyleKey<\/codeVoice> environment value will be used.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 359, - "key.doc.name" : "swipeActionsStyle", - "key.doc.type" : "Other", - "key.doclength" : 166, - "key.docoffset" : 13224, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> swipeActionsStyle<\/decl.name>: SwipeActionsViewStyle<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 53, - "key.line" : 359, - "key.modulename" : "ListableUI", - "key.name" : "swipeActionsStyle", - "key.namelength" : 17, - "key.nameoffset" : 13398, - "key.offset" : 13394, - "key.parsed_declaration" : "var swipeActionsStyle: SwipeActionsViewStyle?", - "key.parsed_scope.end" : 359, - "key.parsed_scope.start" : 359, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "swipeActionsStyle<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsViewStyle?", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleVSgD", - "key.usr" : "s:10ListableUI11ItemContentP17swipeActionsStyleAA05Swipef4ViewG0VSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 40, - "key.name" : "MARK: Creating & Providing Content Views", - "key.offset" : 13463 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype ContentView : UIView<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content view used to draw the content.\nThe content view is drawn at the top of the view hierarchy, above the background views.", - "key.doc.column" : 20, - "key.doc.comment" : "The content view used to draw the content.\nThe content view is drawn at the top of the view hierarchy, above the background views.", - "key.doc.declaration" : "associatedtype ContentView : UIView", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ContentView<\/Name>s:10ListableUI11ItemContentP0D4ViewQa<\/USR>associatedtype ContentView : UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 367, - "key.doc.name" : "ContentView", - "key.doc.type" : "Other", - "key.doclength" : 143, - "key.docoffset" : 13520, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> ContentView<\/decl.name> : UIView<\/ref.class><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 34, - "key.line" : 367, - "key.modulename" : "ListableUI", - "key.name" : "ContentView", - "key.namelength" : 11, - "key.nameoffset" : 13682, - "key.offset" : 13667, - "key.parsed_declaration" : "associatedtype ContentView: UIView", - "key.parsed_scope.end" : 367, - "key.parsed_scope.start" : 367, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.ContentView.Type", - "key.typeusr" : "$s11ContentViewQzmD", - "key.usr" : "s:10ListableUI11ItemContentP0D4ViewQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableContentView(frame: CGRect<\/Type>) -> ContentView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new content view used to render the content.\n\n### Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "Create and return a new content view used to render the content.\n\n### Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.declaration" : "static func createReusableContentView(frame: CGRect) -> ContentView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 375, - "key.doc.name" : "createReusableContentView(frame:)", - "key.doc.type" : "Function", - "key.doclength" : 319, - "key.docoffset" : 13712, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ContentView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 68, - "key.line" : 375, - "key.modulename" : "ListableUI", - "key.name" : "createReusableContentView(frame:)", - "key.namelength" : 41, - "key.nameoffset" : 14047, - "key.offset" : 14035, - "key.parsed_declaration" : "static func createReusableContentView(frame : CGRect) -> ContentView", - "key.parsed_scope.end" : 375, - "key.parsed_scope.start" : 375, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.ContentView", - "key.typeusr" : "$s5frame11ContentViewQzSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func contentAreaViewProperties(with info: ApplyItemContentInfo<\/Type>) -> ViewProperties<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the properties to configure on the content area view for the item.", - "key.doc.column" : 10, - "key.doc.comment" : "Describes the properties to configure on the content area view for the item.", - "key.doc.declaration" : "func contentAreaViewProperties(with info: ApplyItemContentInfo) -> ViewProperties", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "contentAreaViewProperties(with:)<\/Name>s:10ListableUI11ItemContentP25contentAreaViewProperties4withAA0gH0VAA05ApplycD4InfoV_tF<\/USR>func contentAreaViewProperties(with info: ApplyItemContentInfo) -> ViewProperties<\/Declaration>Describes the properties to configure on the content area view for the item.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 378, - "key.doc.name" : "contentAreaViewProperties(with:)", - "key.doc.type" : "Function", - "key.doclength" : 81, - "key.docoffset" : 14113, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> contentAreaViewProperties<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewProperties<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 82, - "key.line" : 378, - "key.modulename" : "ListableUI", - "key.name" : "contentAreaViewProperties(with:)", - "key.namelength" : 59, - "key.nameoffset" : 14203, - "key.offset" : 14198, - "key.parsed_declaration" : "func contentAreaViewProperties(with info : ApplyItemContentInfo) -> ViewProperties", - "key.parsed_scope.end" : 378, - "key.parsed_scope.start" : 378, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "contentAreaViewProperties(with: ApplyItemContentInfo) -> ViewProperties<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> ViewProperties", - "key.typeusr" : "$s4with10ListableUI14ViewPropertiesVAB20ApplyItemContentInfoV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP25contentAreaViewProperties4withAA0gH0VAA05ApplycD4InfoV_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 43, - "key.name" : "MARK: Creating & Providing Background Views", - "key.offset" : 14300 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype BackgroundView : UIView<\/Type> = UIView<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background view used to draw the background of the content.\nThe background view is drawn below the content view.\n\n### Note\nDefaults to a `UIView` with no drawn appearance or state.\nYou do not need to provide this `typealias` unless you would like\nto draw a background view.\n", - "key.doc.column" : 20, - "key.doc.comment" : "The background view used to draw the background of the content.\nThe background view is drawn below the content view.\n\n### Note\nDefaults to a `UIView` with no drawn appearance or state.\nYou do not need to provide this `typealias` unless you would like\nto draw a background view.", - "key.doc.declaration" : "associatedtype BackgroundView : UIView = UIView", - "key.doc.discussion" : [ - { - "Para" : "Defaults to a `UIView` with no drawn appearance or state. You do not need to provide this `typealias` unless you would like to draw a background view." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "BackgroundView<\/Name>s:10ListableUI11ItemContentP14BackgroundViewQa<\/USR>associatedtype BackgroundView : UIView = UIView<\/Declaration>The background view used to draw the background of the content. The background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a background view.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 392, - "key.doc.name" : "BackgroundView", - "key.doc.type" : "Other", - "key.doclength" : 337, - "key.docoffset" : 14360, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> BackgroundView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 45, - "key.line" : 392, - "key.modulename" : "ListableUI", - "key.name" : "BackgroundView", - "key.namelength" : 14, - "key.nameoffset" : 14716, - "key.offset" : 14701, - "key.parsed_declaration" : "associatedtype BackgroundView:UIView = UIView", - "key.parsed_scope.end" : 392, - "key.parsed_scope.start" : 392, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.BackgroundView.Type", - "key.typeusr" : "$s14BackgroundViewQzmD", - "key.usr" : "s:10ListableUI11ItemContentP14BackgroundViewQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableBackgroundView(frame: CGRect<\/Type>) -> BackgroundView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's background.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "Create and return a new background view used to render the content's background.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.declaration" : "static func createReusableBackgroundView(frame: CGRect) -> BackgroundView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 400, - "key.doc.name" : "createReusableBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.doclength" : 344, - "key.docoffset" : 14756, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 74, - "key.line" : 400, - "key.modulename" : "ListableUI", - "key.name" : "createReusableBackgroundView(frame:)", - "key.namelength" : 44, - "key.nameoffset" : 15116, - "key.offset" : 15104, - "key.parsed_declaration" : "static func createReusableBackgroundView(frame : CGRect) -> BackgroundView", - "key.parsed_scope.end" : 400, - "key.parsed_scope.start" : 400, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.BackgroundView", - "key.typeusr" : "$s5frame14BackgroundViewQzSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype SelectedBackgroundView : UIView<\/Type> = UIView<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The selected background view used to draw the background of the content when it is selected or highlighted.\nThe selected background view is drawn below the content view.\n\nNote\n----\nDefaults to a `UIView` with no drawn appearance or state.\nYou do not need to provide this `typealias` unless you would like\nto draw a selected background view.\n", - "key.doc.column" : 20, - "key.doc.comment" : "The selected background view used to draw the background of the content when it is selected or highlighted.\nThe selected background view is drawn below the content view.\n\nNote\n----\nDefaults to a `UIView` with no drawn appearance or state.\nYou do not need to provide this `typealias` unless you would like\nto draw a selected background view.", - "key.doc.declaration" : "associatedtype SelectedBackgroundView : UIView = UIView", - "key.doc.discussion" : [ - { - "Para" : "Defaults to a `UIView` with no drawn appearance or state. You do not need to provide this `typealias` unless you would like to draw a selected background view." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "SelectedBackgroundView<\/Name>s:10ListableUI11ItemContentP22SelectedBackgroundViewQa<\/USR>associatedtype SelectedBackgroundView : UIView = UIView<\/Declaration>The selected background view used to draw the background of the content when it is selected or highlighted. The selected background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a selected background view.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 411, - "key.doc.name" : "SelectedBackgroundView", - "key.doc.type" : "Other", - "key.doclength" : 408, - "key.docoffset" : 15188, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> SelectedBackgroundView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 53, - "key.line" : 411, - "key.modulename" : "ListableUI", - "key.name" : "SelectedBackgroundView", - "key.namelength" : 22, - "key.nameoffset" : 15615, - "key.offset" : 15600, - "key.parsed_declaration" : "associatedtype SelectedBackgroundView:UIView = UIView", - "key.parsed_scope.end" : 411, - "key.parsed_scope.start" : 411, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.SelectedBackgroundView.Type", - "key.typeusr" : "$s22SelectedBackgroundViewQzmD", - "key.usr" : "s:10ListableUI11ItemContentP22SelectedBackgroundViewQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableSelectedBackgroundView(frame: CGRect<\/Type>) -> SelectedBackgroundView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's selected background.\n\nThis view is displayed when the content is highlighted or selected.\n\nIf your `BackgroundView` and `SelectedBackgroundView` are the same type, this method\nis provided automatically by calling `createReusableBackgroundView`.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "Create and return a new background view used to render the content's selected background.\n\nThis view is displayed when the content is highlighted or selected.\n\nIf your `BackgroundView` and `SelectedBackgroundView` are the same type, this method\nis provided automatically by calling `createReusableBackgroundView`.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.declaration" : "static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView", - "key.doc.discussion" : [ - { - "Para" : "This view is displayed when the content is highlighted or selected." - }, - { - "Para" : "If your `BackgroundView` and `SelectedBackgroundView` are the same type, this method is provided automatically by calling `createReusableBackgroundView`." - }, - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableSelectedBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s selected background.<\/Para><\/Abstract>This view is displayed when the content is highlighted or selected.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 425, - "key.doc.name" : "createReusableSelectedBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.doclength" : 615, - "key.docoffset" : 15668, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableSelectedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> SelectedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 90, - "key.line" : 425, - "key.modulename" : "ListableUI", - "key.name" : "createReusableSelectedBackgroundView(frame:)", - "key.namelength" : 52, - "key.nameoffset" : 16299, - "key.offset" : 16287, - "key.parsed_declaration" : "static func createReusableSelectedBackgroundView(frame : CGRect) -> SelectedBackgroundView", - "key.parsed_scope.end" : 425, - "key.parsed_scope.start" : 425, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.SelectedBackgroundView", - "key.typeusr" : "$s5frame22SelectedBackgroundViewQzSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 43, - "key.name" : "MARK: Creating & Providing Decoration Views", - "key.offset" : 16397 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype OverlayDecorationView : UIView<\/Type> = UIView<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content view used to draw the content.\nThe content view is drawn at the top of the view hierarchy, above the background views.", - "key.doc.column" : 20, - "key.doc.comment" : "The content view used to draw the content.\nThe content view is drawn at the top of the view hierarchy, above the background views.", - "key.doc.declaration" : "associatedtype OverlayDecorationView : UIView = UIView", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "OverlayDecorationView<\/Name>s:10ListableUI11ItemContentP21OverlayDecorationViewQa<\/USR>associatedtype OverlayDecorationView : UIView = UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 433, - "key.doc.name" : "OverlayDecorationView", - "key.doc.type" : "Other", - "key.doclength" : 143, - "key.docoffset" : 16457, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> OverlayDecorationView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 52, - "key.line" : 433, - "key.modulename" : "ListableUI", - "key.name" : "OverlayDecorationView", - "key.namelength" : 21, - "key.nameoffset" : 16619, - "key.offset" : 16604, - "key.parsed_declaration" : "associatedtype OverlayDecorationView:UIView = UIView", - "key.parsed_scope.end" : 433, - "key.parsed_scope.start" : 433, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.OverlayDecorationView.Type", - "key.typeusr" : "$s21OverlayDecorationViewQzmD", - "key.usr" : "s:10ListableUI11ItemContentP21OverlayDecorationViewQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype UnderlayDecorationView : UIView<\/Type> = UIView<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content view used to draw the content.\nThe content view is drawn at the bottom of the view hierarchy, above the background views.", - "key.doc.column" : 20, - "key.doc.comment" : "The content view used to draw the content.\nThe content view is drawn at the bottom of the view hierarchy, above the background views.", - "key.doc.declaration" : "associatedtype UnderlayDecorationView : UIView = UIView", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "UnderlayDecorationView<\/Name>s:10ListableUI11ItemContentP22UnderlayDecorationViewQa<\/USR>associatedtype UnderlayDecorationView : UIView = UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the bottom of the view hierarchy, above the background views.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 437, - "key.doc.name" : "UnderlayDecorationView", - "key.doc.type" : "Other", - "key.doclength" : 146, - "key.docoffset" : 16666, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> UnderlayDecorationView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 53, - "key.line" : 437, - "key.modulename" : "ListableUI", - "key.name" : "UnderlayDecorationView", - "key.namelength" : 22, - "key.nameoffset" : 16831, - "key.offset" : 16816, - "key.parsed_declaration" : "associatedtype UnderlayDecorationView:UIView = UIView", - "key.parsed_scope.end" : 437, - "key.parsed_scope.start" : 437, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.UnderlayDecorationView.Type", - "key.typeusr" : "$s22UnderlayDecorationViewQzmD", - "key.usr" : "s:10ListableUI11ItemContentP22UnderlayDecorationViewQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableOverlayDecorationView(frame: CGRect<\/Type>) -> OverlayDecorationView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new overlay decoration view used to render any required decorations over the content.\nThe decoration view appears above all content, and is not affected by swipe actions.\n\n## Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "Create and return a new overlay decoration view used to render any required decorations over the content.\nThe decoration view appears above all content, and is not affected by swipe actions.\n\n## Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.declaration" : "static func createReusableOverlayDecorationView(frame: CGRect) -> OverlayDecorationView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableOverlayDecorationView(frame:)<\/Name>s:10ListableUI11ItemContentP35createReusableOverlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableOverlayDecorationView(frame: CGRect) -> OverlayDecorationView<\/Declaration>Create and return a new overlay decoration view used to render any required decorations over the content. The decoration view appears above all content, and is not affected by swipe actions.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 445, - "key.doc.name" : "createReusableOverlayDecorationView(frame:)", - "key.doc.type" : "Function", - "key.doclength" : 452, - "key.docoffset" : 16879, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableOverlayDecorationView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> OverlayDecorationView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 88, - "key.line" : 445, - "key.modulename" : "ListableUI", - "key.name" : "createReusableOverlayDecorationView(frame:)", - "key.namelength" : 51, - "key.nameoffset" : 17347, - "key.offset" : 17335, - "key.parsed_declaration" : "static func createReusableOverlayDecorationView(frame : CGRect) -> OverlayDecorationView", - "key.parsed_scope.end" : 445, - "key.parsed_scope.start" : 445, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableOverlayDecorationView(frame: CGRect) -> OverlayDecorationView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.OverlayDecorationView", - "key.typeusr" : "$s5frame21OverlayDecorationViewQzSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP35createReusableOverlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableUnderlayDecorationView(frame: CGRect<\/Type>) -> UnderlayDecorationView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new underlay decoration view used to render any required decorations under the content.\nThe decoration view appears under all content as a background, and is not affected by swipe actions.\n\n## Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.comment" : "Create and return a new underlay decoration view used to render any required decorations under the content.\nThe decoration view appears under all content as a background, and is not affected by swipe actions.\n\n## Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.declaration" : "static func createReusableUnderlayDecorationView(frame: CGRect) -> UnderlayDecorationView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableUnderlayDecorationView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableUnderlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableUnderlayDecorationView(frame: CGRect) -> UnderlayDecorationView<\/Declaration>Create and return a new underlay decoration view used to render any required decorations under the content. The decoration view appears under all content as a background, and is not affected by swipe actions.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 453, - "key.doc.name" : "createReusableUnderlayDecorationView(frame:)", - "key.doc.type" : "Function", - "key.doclength" : 470, - "key.docoffset" : 17433, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableUnderlayDecorationView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UnderlayDecorationView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 90, - "key.line" : 453, - "key.modulename" : "ListableUI", - "key.name" : "createReusableUnderlayDecorationView(frame:)", - "key.namelength" : 52, - "key.nameoffset" : 17919, - "key.offset" : 17907, - "key.parsed_declaration" : "static func createReusableUnderlayDecorationView(frame : CGRect) -> UnderlayDecorationView", - "key.parsed_scope.end" : 453, - "key.parsed_scope.start" : 453, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableUnderlayDecorationView(frame: CGRect) -> UnderlayDecorationView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.UnderlayDecorationView", - "key.typeusr" : "$s5frame22UnderlayDecorationViewQzSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP36createReusableUnderlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 26, - "key.name" : "MARK: Content Coordination", - "key.offset" : 18017 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype Coordinator : ItemContentCoordinator<\/Type> = DefaultItemContentCoordinator<\/Type><Self<\/Type>> where Self<\/Type> == Self<\/Type>.Coordinator<\/Type>.ItemContentType<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The coordinator type to use to manage the live state of the `Item` and `ItemContent`,\nif you need to update content based on signals such as notifications, view state, appearance state,\netc.", - "key.doc.column" : 20, - "key.doc.comment" : "The coordinator type to use to manage the live state of the `Item` and `ItemContent`,\nif you need to update content based on signals such as notifications, view state, appearance state,\netc.", - "key.doc.declaration" : "associatedtype Coordinator : ListableUI.ItemContentCoordinator = ListableUI.DefaultItemContentCoordinator where Self == Self.Coordinator.ItemContentType", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "Coordinator<\/Name>s:10ListableUI11ItemContentP11CoordinatorQa<\/USR>associatedtype Coordinator : ListableUI.ItemContentCoordinator = ListableUI.DefaultItemContentCoordinator<Self> where Self == Self.Coordinator.ItemContentType<\/Declaration>The coordinator type to use to manage the live state of the Item<\/codeVoice> and ItemContent<\/codeVoice>, if you need to update content based on signals such as notifications, view state, appearance state, etc.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 462, - "key.doc.name" : "Coordinator", - "key.doc.type" : "Other", - "key.doclength" : 211, - "key.docoffset" : 18060, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> Coordinator<\/decl.name> : ItemContentCoordinator<\/ref.protocol> = DefaultItemContentCoordinator<\/ref.class><Self<\/ref.generic_type_param>> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param> == Self<\/ref.generic_type_param>.Coordinator<\/ref.associatedtype>.ItemContentType<\/ref.associatedtype><\/decl.generic_type_requirement><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 89, - "key.line" : 462, - "key.modulename" : "ListableUI", - "key.name" : "Coordinator", - "key.namelength" : 11, - "key.nameoffset" : 18290, - "key.offset" : 18275, - "key.parsed_declaration" : "associatedtype Coordinator : ItemContentCoordinator = DefaultItemContentCoordinator", - "key.parsed_scope.end" : 462, - "key.parsed_scope.start" : 462, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.Coordinator.Type", - "key.typeusr" : "$s11CoordinatorQzmD", - "key.usr" : "s:10ListableUI11ItemContentP11CoordinatorQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "typealias ItemContent<\/Type>.CoordinatorActions = ItemContentCoordinatorActions<\/Type><Self<\/Type>><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The actions passed to the coordinator.", - "key.doc.column" : 15, - "key.doc.comment" : "The actions passed to the coordinator.", - "key.doc.declaration" : "typealias ListableUI.ItemContent.CoordinatorActions = ItemContentCoordinatorActions", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "CoordinatorActions<\/Name>s:10ListableUI11ItemContentP18CoordinatorActionsa<\/USR>typealias ListableUI.ItemContent.CoordinatorActions = ItemContentCoordinatorActions<Self><\/Declaration>The actions passed to the coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 465, - "key.doc.name" : "CoordinatorActions", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 18374, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ItemContent<\/ref.protocol>.CoordinatorActions<\/decl.name> = ItemContentCoordinatorActions<\/ref.class><Self<\/ref.generic_type_param>><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 66, - "key.line" : 465, - "key.modulename" : "ListableUI", - "key.name" : "CoordinatorActions", - "key.namelength" : 18, - "key.nameoffset" : 18431, - "key.offset" : 18421, - "key.parsed_declaration" : "typealias CoordinatorActions = ItemContentCoordinatorActions", - "key.parsed_scope.end" : 465, - "key.parsed_scope.start" : 465, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorActions.Type", - "key.typeusr" : "$s10ListableUI29ItemContentCoordinatorActionsCyxGmD", - "key.usr" : "s:10ListableUI11ItemContentP18CoordinatorActionsa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "typealias ItemContent<\/Type>.CoordinatorInfo = ItemContentCoordinatorInfo<\/Type><Self<\/Type>><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The info passed to the coordinator.", - "key.doc.column" : 15, - "key.doc.comment" : "The info passed to the coordinator.", - "key.doc.declaration" : "typealias ListableUI.ItemContent.CoordinatorInfo = ItemContentCoordinatorInfo", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "CoordinatorInfo<\/Name>s:10ListableUI11ItemContentP15CoordinatorInfoa<\/USR>typealias ListableUI.ItemContent.CoordinatorInfo = ItemContentCoordinatorInfo<Self><\/Declaration>The info passed to the coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 467, - "key.doc.name" : "CoordinatorInfo", - "key.doc.type" : "Other", - "key.doclength" : 40, - "key.docoffset" : 18492, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ItemContent<\/ref.protocol>.CoordinatorInfo<\/decl.name> = ItemContentCoordinatorInfo<\/ref.class><Self<\/ref.generic_type_param>><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 60, - "key.line" : 467, - "key.modulename" : "ListableUI", - "key.name" : "CoordinatorInfo", - "key.namelength" : 15, - "key.nameoffset" : 18546, - "key.offset" : 18536, - "key.parsed_declaration" : "typealias CoordinatorInfo = ItemContentCoordinatorInfo", - "key.parsed_scope.end" : 467, - "key.parsed_scope.start" : 467, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorInfo.Type", - "key.typeusr" : "$s10ListableUI26ItemContentCoordinatorInfoCyxGmD", - "key.usr" : "s:10ListableUI11ItemContentP15CoordinatorInfoa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func makeCoordinator(actions: CoordinatorActions<\/Type>, info: CoordinatorInfo<\/Type>) -> Coordinator<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new coordinator with the provided actions and info.", - "key.doc.column" : 10, - "key.doc.comment" : "Creates a new coordinator with the provided actions and info.", - "key.doc.declaration" : "func makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "makeCoordinator(actions:info:)<\/Name>s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF<\/USR>func makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator<\/Declaration>Creates a new coordinator with the provided actions and info.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 470, - "key.doc.name" : "makeCoordinator(actions:info:)", - "key.doc.type" : "Function", - "key.doclength" : 66, - "key.docoffset" : 18606, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> makeCoordinator<\/decl.name>(actions<\/decl.var.parameter.argument_label>: CoordinatorActions<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: CoordinatorInfo<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Coordinator<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 89, - "key.line" : 470, - "key.modulename" : "ListableUI", - "key.name" : "makeCoordinator(actions:info:)", - "key.namelength" : 69, - "key.nameoffset" : 18681, - "key.offset" : 18676, - "key.parsed_declaration" : "func makeCoordinator(actions : CoordinatorActions, info : CoordinatorInfo) -> Coordinator", - "key.parsed_scope.end" : 470, - "key.parsed_scope.start" : 470, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "makeCoordinator(actions: ItemContentCoordinatorActions<Self>, info: ItemContentCoordinatorInfo<Self>) -> Coordinator<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ItemContentCoordinatorActions, ItemContentCoordinatorInfo) -> Self.Coordinator", - "key.typeusr" : "$s7actions4info11CoordinatorQz10ListableUI011ItemContentC7ActionsCyxG_AE0fgC4InfoCyxGtcD", - "key.usr" : "s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 18770 - } - ], - "key.bodylength" : 66, - "key.bodyoffset" : 18800, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 90, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 18787, - "key.offset" : 18777, - "key.parsed_declaration" : "public extension ItemContent", - "key.parsed_scope.end" : 479, - "key.parsed_scope.start" : 474, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func toAnyItem() -> AnyItem<\/Type><\/Declaration>", - "key.bodylength" : 24, - "key.bodyoffset" : 18840, - "key.column" : 11, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Converts the object into a type-erased `AnyItem` instance.", - "key.doc.column" : 10, - "key.doc.declaration" : "func toAnyItem() -> AnyItem", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/AnyItemConvertible.swift", - "key.doc.full_as_xml" : "toAnyItem()<\/Name>s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF<\/USR>func toAnyItem() -> AnyItem<\/Declaration>Converts the object into a type-erased AnyItem<\/codeVoice> instance.<\/Para><\/Abstract>This documentation comment was inherited from AnyItemConvertible<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 36, - "key.doc.name" : "toAnyItem()", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> toAnyItem<\/decl.name>() -> AnyItem<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 54, - "key.line" : 476, - "key.modulename" : "ListableUI", - "key.name" : "toAnyItem()", - "key.namelength" : 11, - "key.nameoffset" : 18816, - "key.offset" : 18811, - "key.parsed_declaration" : "func toAnyItem() -> AnyItem", - "key.parsed_scope.end" : 478, - "key.parsed_scope.start" : 476, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "toAnyItem() -> AnyItem<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> () -> any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pycD", - "key.usr" : "s:10ListableUI18AnyItemConvertibleP02tocD0AA0cD0_pyF" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemContentViews<Content> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 18975 - } - ], - "key.bodylength" : 2059, - "key.bodyoffset" : 19028, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The views owned by the item content, passed to the `apply(to:) method to theme and provide content.`", - "key.doc.column" : 15, - "key.doc.comment" : "The views owned by the item content, passed to the `apply(to:) method to theme and provide content.`", - "key.doc.declaration" : "public struct ItemContentViews where Content : ListableUI.ItemContent", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContentViews<\/Name>s:10ListableUI16ItemContentViewsV<\/USR>public struct ItemContentViews<Content> where Content : ListableUI.ItemContent<\/Declaration>The views owned by the item content, passed to the apply(to:) method to theme and provide content.<\/codeVoice><\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 483, - "key.doc.name" : "ItemContentViews", - "key.doc.type" : "Class", - "key.doclength" : 105, - "key.docoffset" : 18870, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemContentViews<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2106, - "key.line" : 483, - "key.modulename" : "ListableUI", - "key.name" : "ItemContentViews", - "key.namelength" : 16, - "key.nameoffset" : 18989, - "key.offset" : 18982, - "key.parsed_declaration" : "public struct ItemContentViews", - "key.parsed_scope.end" : 537, - "key.parsed_scope.start" : 483, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 19014 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 483, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 19006, - "key.offset" : 19006, - "key.parsed_declaration" : "public struct ItemContentViewslet cell: ItemCell<\/Type><Content<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: ItemCell<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 485, - "key.modulename" : "ListableUI", - "key.name" : "cell", - "key.namelength" : 4, - "key.nameoffset" : 19037, - "key.offset" : 19033, - "key.parsed_declaration" : "let cell : ItemCell", - "key.parsed_scope.end" : 485, - "key.parsed_scope.start" : 485, - "key.reusingastcontext" : false, - "key.typename" : "ItemCell", - "key.typeusr" : "$s10ListableUI8ItemCellCyxGD", - "key.usr" : "s:10ListableUI16ItemContentViewsV4cellAA0C4CellCyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var content: Content<\/Type>.ContentView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 19112 - } - ], - "key.bodylength" : 47, - "key.bodyoffset" : 19154, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content view of the content.", - "key.doc.column" : 16, - "key.doc.comment" : "The content view of the content.", - "key.doc.declaration" : "public var content: Content.ContentView { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI16ItemContentViewsV7content0D4ViewQzvp<\/USR>public var content: Content.ContentView { get }<\/Declaration>The content view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 488, - "key.doc.name" : "content", - "key.doc.type" : "Other", - "key.doclength" : 37, - "key.docoffset" : 19071, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param>.ContentView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 83, - "key.line" : 488, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 19123, - "key.offset" : 19119, - "key.parsed_declaration" : "public var content : Content.ContentView", - "key.parsed_scope.end" : 490, - "key.parsed_scope.start" : 488, - "key.reusingastcontext" : false, - "key.typename" : "Content.ContentView", - "key.typeusr" : "$s11ContentViewQzD", - "key.usr" : "s:10ListableUI16ItemContentViewsV7content0D4ViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var background: Content<\/Type>.BackgroundView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 19256 - } - ], - "key.bodylength" : 29, - "key.bodyoffset" : 19304, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background view of the content.", - "key.doc.column" : 16, - "key.doc.comment" : "The background view of the content.", - "key.doc.declaration" : "public var background: Content.BackgroundView { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "background<\/Name>s:10ListableUI16ItemContentViewsV10background14BackgroundViewQzvp<\/USR>public var background: Content.BackgroundView { get }<\/Declaration>The background view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 493, - "key.doc.name" : "background", - "key.doc.type" : "Other", - "key.doclength" : 40, - "key.docoffset" : 19212, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> background<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 71, - "key.line" : 493, - "key.modulename" : "ListableUI", - "key.name" : "background", - "key.namelength" : 10, - "key.nameoffset" : 19267, - "key.offset" : 19263, - "key.parsed_declaration" : "public var background : Content.BackgroundView", - "key.parsed_scope.end" : 495, - "key.parsed_scope.start" : 493, - "key.reusingastcontext" : false, - "key.typename" : "Content.BackgroundView", - "key.typeusr" : "$s14BackgroundViewQzD", - "key.usr" : "s:10ListableUI16ItemContentViewsV10background14BackgroundViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var backgroundIfLoaded: Content<\/Type>.BackgroundView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 19411 - } - ], - "key.bodylength" : 37, - "key.bodyoffset" : 19468, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background view of the content, if it has been loaded.", - "key.doc.column" : 16, - "key.doc.comment" : "The background view of the content, if it has been loaded.", - "key.doc.declaration" : "public var backgroundIfLoaded: Content.BackgroundView? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "backgroundIfLoaded<\/Name>s:10ListableUI16ItemContentViewsV18backgroundIfLoaded14BackgroundViewQzSgvp<\/USR>public var backgroundIfLoaded: Content.BackgroundView? { get }<\/Declaration>The background view of the content, if it has been loaded.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 498, - "key.doc.name" : "backgroundIfLoaded", - "key.doc.type" : "Other", - "key.doclength" : 63, - "key.docoffset" : 19344, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> backgroundIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 88, - "key.line" : 498, - "key.modulename" : "ListableUI", - "key.name" : "backgroundIfLoaded", - "key.namelength" : 18, - "key.nameoffset" : 19422, - "key.offset" : 19418, - "key.parsed_declaration" : "public var backgroundIfLoaded : Content.BackgroundView?", - "key.parsed_scope.end" : 500, - "key.parsed_scope.start" : 498, - "key.reusingastcontext" : false, - "key.typename" : "Content.BackgroundView?", - "key.typeusr" : "$s14BackgroundViewQzSgD", - "key.usr" : "s:10ListableUI16ItemContentViewsV18backgroundIfLoaded14BackgroundViewQzSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var selectedBackground: Content<\/Type>.SelectedBackgroundView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 19632 - } - ], - "key.bodylength" : 37, - "key.bodyoffset" : 19696, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The selected background view of the content.\nDisplayed when the content is highlighted or selected.", - "key.doc.column" : 16, - "key.doc.comment" : "The selected background view of the content.\nDisplayed when the content is highlighted or selected.", - "key.doc.declaration" : "public var selectedBackground: Content.SelectedBackgroundView { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "selectedBackground<\/Name>s:10ListableUI16ItemContentViewsV18selectedBackground08SelectedG4ViewQzvp<\/USR>public var selectedBackground: Content.SelectedBackgroundView { get }<\/Declaration>The selected background view of the content. Displayed when the content is highlighted or selected.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 504, - "key.doc.name" : "selectedBackground", - "key.doc.type" : "Other", - "key.doclength" : 112, - "key.docoffset" : 19516, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectedBackground<\/decl.name>: Content<\/ref.generic_type_param>.SelectedBackgroundView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 95, - "key.line" : 504, - "key.modulename" : "ListableUI", - "key.name" : "selectedBackground", - "key.namelength" : 18, - "key.nameoffset" : 19643, - "key.offset" : 19639, - "key.parsed_declaration" : "public var selectedBackground : Content.SelectedBackgroundView", - "key.parsed_scope.end" : 506, - "key.parsed_scope.start" : 504, - "key.reusingastcontext" : false, - "key.typename" : "Content.SelectedBackgroundView", - "key.typeusr" : "$s22SelectedBackgroundViewQzD", - "key.usr" : "s:10ListableUI16ItemContentViewsV18selectedBackground08SelectedG4ViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var selectedBackgroundIfLoaded: Content<\/Type>.SelectedBackgroundView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 19883 - } - ], - "key.bodylength" : 45, - "key.bodyoffset" : 19956, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The selected background view of the content, if it has been loaded.\nDisplayed when the content is highlighted or selected.", - "key.doc.column" : 16, - "key.doc.comment" : "The selected background view of the content, if it has been loaded.\nDisplayed when the content is highlighted or selected.", - "key.doc.declaration" : "public var selectedBackgroundIfLoaded: Content.SelectedBackgroundView? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "selectedBackgroundIfLoaded<\/Name>s:10ListableUI16ItemContentViewsV26selectedBackgroundIfLoaded08SelectedG4ViewQzSgvp<\/USR>public var selectedBackgroundIfLoaded: Content.SelectedBackgroundView? { get }<\/Declaration>The selected background view of the content, if it has been loaded. Displayed when the content is highlighted or selected.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 510, - "key.doc.name" : "selectedBackgroundIfLoaded", - "key.doc.type" : "Other", - "key.doclength" : 135, - "key.docoffset" : 19744, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectedBackgroundIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.SelectedBackgroundView<\/ref.associatedtype>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 112, - "key.line" : 510, - "key.modulename" : "ListableUI", - "key.name" : "selectedBackgroundIfLoaded", - "key.namelength" : 26, - "key.nameoffset" : 19894, - "key.offset" : 19890, - "key.parsed_declaration" : "public var selectedBackgroundIfLoaded : Content.SelectedBackgroundView?", - "key.parsed_scope.end" : 512, - "key.parsed_scope.start" : 510, - "key.reusingastcontext" : false, - "key.typename" : "Content.SelectedBackgroundView?", - "key.typeusr" : "$s22SelectedBackgroundViewQzSgD", - "key.usr" : "s:10ListableUI16ItemContentViewsV26selectedBackgroundIfLoaded08SelectedG4ViewQzSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var overlayDecoration: Content<\/Type>.OverlayDecorationView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 20144 - } - ], - "key.bodylength" : 44, - "key.bodyoffset" : 20206, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The overlay decoration view of the content.\nAlways displayed over the content, and does not react to swipe actions.", - "key.doc.column" : 16, - "key.doc.comment" : "The overlay decoration view of the content.\nAlways displayed over the content, and does not react to swipe actions.", - "key.doc.declaration" : "public var overlayDecoration: Content.OverlayDecorationView { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "overlayDecoration<\/Name>s:10ListableUI16ItemContentViewsV17overlayDecoration07OverlayG4ViewQzvp<\/USR>public var overlayDecoration: Content.OverlayDecorationView { get }<\/Declaration>The overlay decoration view of the content. Always displayed over the content, and does not react to swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 516, - "key.doc.name" : "overlayDecoration", - "key.doc.type" : "Other", - "key.doclength" : 128, - "key.docoffset" : 20012, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> overlayDecoration<\/decl.name>: Content<\/ref.generic_type_param>.OverlayDecorationView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 100, - "key.line" : 516, - "key.modulename" : "ListableUI", - "key.name" : "overlayDecoration", - "key.namelength" : 17, - "key.nameoffset" : 20155, - "key.offset" : 20151, - "key.parsed_declaration" : "public var overlayDecoration : Content.OverlayDecorationView", - "key.parsed_scope.end" : 518, - "key.parsed_scope.start" : 516, - "key.reusingastcontext" : false, - "key.typename" : "Content.OverlayDecorationView", - "key.typeusr" : "$s21OverlayDecorationViewQzD", - "key.usr" : "s:10ListableUI16ItemContentViewsV17overlayDecoration07OverlayG4ViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var overlayDecorationIfLoaded: Content<\/Type>.OverlayDecorationView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 20416 - } - ], - "key.bodylength" : 53, - "key.bodyoffset" : 20487, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The overlay decoration view of the content, if it has been loaded.\nAlways displayed over the content, and does not react to swipe actions.", - "key.doc.column" : 16, - "key.doc.comment" : "The overlay decoration view of the content, if it has been loaded.\nAlways displayed over the content, and does not react to swipe actions.", - "key.doc.declaration" : "public var overlayDecorationIfLoaded: Content.OverlayDecorationView? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "overlayDecorationIfLoaded<\/Name>s:10ListableUI16ItemContentViewsV25overlayDecorationIfLoaded07OverlayG4ViewQzSgvp<\/USR>public var overlayDecorationIfLoaded: Content.OverlayDecorationView? { get }<\/Declaration>The overlay decoration view of the content, if it has been loaded. Always displayed over the content, and does not react to swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 522, - "key.doc.name" : "overlayDecorationIfLoaded", - "key.doc.type" : "Other", - "key.doclength" : 151, - "key.docoffset" : 20261, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> overlayDecorationIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.OverlayDecorationView<\/ref.associatedtype>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 118, - "key.line" : 522, - "key.modulename" : "ListableUI", - "key.name" : "overlayDecorationIfLoaded", - "key.namelength" : 25, - "key.nameoffset" : 20427, - "key.offset" : 20423, - "key.parsed_declaration" : "public var overlayDecorationIfLoaded : Content.OverlayDecorationView?", - "key.parsed_scope.end" : 524, - "key.parsed_scope.start" : 522, - "key.reusingastcontext" : false, - "key.typename" : "Content.OverlayDecorationView?", - "key.typeusr" : "$s21OverlayDecorationViewQzSgD", - "key.usr" : "s:10ListableUI16ItemContentViewsV25overlayDecorationIfLoaded07OverlayG4ViewQzSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var underlayDecoration: Content<\/Type>.UnderlayDecorationView<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 20681 - } - ], - "key.bodylength" : 45, - "key.bodyoffset" : 20745, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The underlay decoration view of the content.\nAlways displayed under the content, and does not react to swipe actions.", - "key.doc.column" : 16, - "key.doc.comment" : "The underlay decoration view of the content.\nAlways displayed under the content, and does not react to swipe actions.", - "key.doc.declaration" : "public var underlayDecoration: Content.UnderlayDecorationView { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "underlayDecoration<\/Name>s:10ListableUI16ItemContentViewsV18underlayDecoration08UnderlayG4ViewQzvp<\/USR>public var underlayDecoration: Content.UnderlayDecorationView { get }<\/Declaration>The underlay decoration view of the content. Always displayed under the content, and does not react to swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 528, - "key.doc.name" : "underlayDecoration", - "key.doc.type" : "Other", - "key.doclength" : 130, - "key.docoffset" : 20547, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> underlayDecoration<\/decl.name>: Content<\/ref.generic_type_param>.UnderlayDecorationView<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 103, - "key.line" : 528, - "key.modulename" : "ListableUI", - "key.name" : "underlayDecoration", - "key.namelength" : 18, - "key.nameoffset" : 20692, - "key.offset" : 20688, - "key.parsed_declaration" : "public var underlayDecoration : Content.UnderlayDecorationView", - "key.parsed_scope.end" : 530, - "key.parsed_scope.start" : 528, - "key.reusingastcontext" : false, - "key.typename" : "Content.UnderlayDecorationView", - "key.typeusr" : "$s22UnderlayDecorationViewQzD", - "key.usr" : "s:10ListableUI16ItemContentViewsV18underlayDecoration08UnderlayG4ViewQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var underlayDecorationIfLoaded: Content<\/Type>.UnderlayDecorationView<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 20958 - } - ], - "key.bodylength" : 54, - "key.bodyoffset" : 21031, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The underlay decoration view of the content, if it has been loaded.\nAlways displayed under the content, and does not react to swipe actions.", - "key.doc.column" : 16, - "key.doc.comment" : "The underlay decoration view of the content, if it has been loaded.\nAlways displayed under the content, and does not react to swipe actions.", - "key.doc.declaration" : "public var underlayDecorationIfLoaded: Content.UnderlayDecorationView? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "underlayDecorationIfLoaded<\/Name>s:10ListableUI16ItemContentViewsV26underlayDecorationIfLoaded08UnderlayG4ViewQzSgvp<\/USR>public var underlayDecorationIfLoaded: Content.UnderlayDecorationView? { get }<\/Declaration>The underlay decoration view of the content, if it has been loaded. Always displayed under the content, and does not react to swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 534, - "key.doc.name" : "underlayDecorationIfLoaded", - "key.doc.type" : "Other", - "key.doclength" : 153, - "key.docoffset" : 20801, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> underlayDecorationIfLoaded<\/decl.name>: Content<\/ref.generic_type_param>.UnderlayDecorationView<\/ref.associatedtype>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 121, - "key.line" : 534, - "key.modulename" : "ListableUI", - "key.name" : "underlayDecorationIfLoaded", - "key.namelength" : 26, - "key.nameoffset" : 20969, - "key.offset" : 20965, - "key.parsed_declaration" : "public var underlayDecorationIfLoaded : Content.UnderlayDecorationView?", - "key.parsed_scope.end" : 536, - "key.parsed_scope.start" : 534, - "key.reusingastcontext" : false, - "key.typename" : "Content.UnderlayDecorationView?", - "key.typeusr" : "$s22UnderlayDecorationViewQzSgD", - "key.usr" : "s:10ListableUI16ItemContentViewsV26underlayDecorationIfLoaded08UnderlayG4ViewQzSgvp" - } - ], - "key.typename" : "ItemContentViews.Type", - "key.typeusr" : "$s10ListableUI16ItemContentViewsVyxGmD", - "key.usr" : "s:10ListableUI16ItemContentViewsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ApplyItemContentInfo<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 21506 - } - ], - "key.bodylength" : 930, - "key.bodyoffset" : 21542, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Information about the current state of the content, which is passed to `apply(to:for:with:)`\nduring configuration and preparation for display.\n\nYou can use this information to alter the display of your content, such as changing\nthe background color for highlights and selections, providing different corner styles\nfor different item positions, etc.\n\nTODO: Rename to `ApplyItemContext`", - "key.doc.column" : 15, - "key.doc.comment" : "Information about the current state of the content, which is passed to `apply(to:for:with:)`\nduring configuration and preparation for display.\n\nYou can use this information to alter the display of your content, such as changing\nthe background color for highlights and selections, providing different corner styles\nfor different item positions, etc.\n\nTODO: Rename to `ApplyItemContext`", - "key.doc.declaration" : "public struct ApplyItemContentInfo", - "key.doc.discussion" : [ - { - "Para" : "You can use this information to alter the display of your content, such as changing the background color for highlights and selections, providing different corner styles for different item positions, etc." - }, - { - "Para" : "TODO: Rename to `ApplyItemContext`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ApplyItemContentInfo<\/Name>s:10ListableUI20ApplyItemContentInfoV<\/USR>public struct ApplyItemContentInfo<\/Declaration>Information about the current state of the content, which is passed to apply(to:for:with:)<\/codeVoice> during configuration and preparation for display.<\/Para><\/Abstract>You can use this information to alter the display of your content, such as changing the background color for highlights and selections, providing different corner styles for different item positions, etc.<\/Para>TODO: Rename to ApplyItemContext<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 548, - "key.doc.name" : "ApplyItemContentInfo", - "key.doc.type" : "Class", - "key.doclength" : 415, - "key.docoffset" : 21091, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ApplyItemContentInfo<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 960, - "key.line" : 548, - "key.modulename" : "ListableUI", - "key.name" : "ApplyItemContentInfo", - "key.namelength" : 20, - "key.nameoffset" : 21520, - "key.offset" : 21513, - "key.parsed_declaration" : "public struct ApplyItemContentInfo", - "key.parsed_scope.end" : 572, - "key.parsed_scope.start" : 548, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var state: ItemState<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 21647 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The state of the `Item` currently displaying the content. Is it highlighted, selected, etc.", - "key.doc.column" : 16, - "key.doc.comment" : "The state of the `Item` currently displaying the content. Is it highlighted, selected, etc.", - "key.doc.declaration" : "public var state: ItemState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "state<\/Name>s:10ListableUI20ApplyItemContentInfoV5stateAA0D5StateVvp<\/USR>public var state: ItemState<\/Declaration>The state of the Item<\/codeVoice> currently displaying the content. Is it highlighted, selected, etc.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 551, - "key.doc.name" : "state", - "key.doc.type" : "Other", - "key.doclength" : 96, - "key.docoffset" : 21547, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> state<\/decl.name>: ItemState<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 551, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 21658, - "key.offset" : 21654, - "key.parsed_declaration" : "public var state : ItemState", - "key.parsed_scope.end" : 551, - "key.parsed_scope.start" : 551, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemState", - "key.typeusr" : "$s10ListableUI9ItemStateVD", - "key.usr" : "s:10ListableUI20ApplyItemContentInfoV5stateAA0D5StateVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var position: ItemPosition<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 21738 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The position of the item within its section.", - "key.doc.column" : 16, - "key.doc.comment" : "The position of the item within its section.", - "key.doc.declaration" : "public var position: ItemPosition", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI20ApplyItemContentInfoV8positionAA0D8PositionOvp<\/USR>public var position: ItemPosition<\/Declaration>The position of the item within its section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 554, - "key.doc.name" : "position", - "key.doc.type" : "Other", - "key.doclength" : 49, - "key.docoffset" : 21685, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> position<\/decl.name>: ItemPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 554, - "key.modulename" : "ListableUI", - "key.name" : "position", - "key.namelength" : 8, - "key.nameoffset" : 21749, - "key.offset" : 21745, - "key.parsed_declaration" : "public var position : ItemPosition", - "key.parsed_scope.end" : 554, - "key.parsed_scope.start" : 554, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemPosition", - "key.typeusr" : "$s10ListableUI12ItemPositionOD", - "key.usr" : "s:10ListableUI20ApplyItemContentInfoV8positionAA0D8PositionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var reorderingActions: ReorderingActions<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 21868 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides access to actions to handle re-ordering the content within the list.", - "key.doc.column" : 16, - "key.doc.comment" : "Provides access to actions to handle re-ordering the content within the list.", - "key.doc.declaration" : "public var reorderingActions: ReorderingActions", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "reorderingActions<\/Name>s:10ListableUI20ApplyItemContentInfoV17reorderingActionsAA010ReorderingH0Cvp<\/USR>public var reorderingActions: ReorderingActions<\/Declaration>Provides access to actions to handle re-ordering the content within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 557, - "key.doc.name" : "reorderingActions", - "key.doc.type" : "Other", - "key.doclength" : 82, - "key.docoffset" : 21782, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> reorderingActions<\/decl.name>: ReorderingActions<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 557, - "key.modulename" : "ListableUI", - "key.name" : "reorderingActions", - "key.namelength" : 17, - "key.nameoffset" : 21879, - "key.offset" : 21875, - "key.parsed_declaration" : "public var reorderingActions : ReorderingActions", - "key.parsed_scope.end" : 557, - "key.parsed_scope.start" : 557, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ReorderingActions", - "key.typeusr" : "$s10ListableUI17ReorderingActionsCD", - "key.usr" : "s:10ListableUI20ApplyItemContentInfoV17reorderingActionsAA010ReorderingH0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var showLeadingSwipeActions: () -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 21985 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When invoked, will show the leading swipe actions.", - "key.doc.column" : 16, - "key.doc.comment" : "When invoked, will show the leading swipe actions.", - "key.doc.declaration" : "public var showLeadingSwipeActions: () -> ()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "showLeadingSwipeActions<\/Name>s:10ListableUI20ApplyItemContentInfoV23showLeadingSwipeActionsyycvp<\/USR>public var showLeadingSwipeActions: () -> ()<\/Declaration>When invoked, will show the leading swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 560, - "key.doc.name" : "showLeadingSwipeActions", - "key.doc.type" : "Other", - "key.doclength" : 55, - "key.docoffset" : 21926, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> showLeadingSwipeActions<\/decl.name>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 560, - "key.modulename" : "ListableUI", - "key.name" : "showLeadingSwipeActions", - "key.namelength" : 23, - "key.nameoffset" : 21996, - "key.offset" : 21992, - "key.parsed_declaration" : "public var showLeadingSwipeActions : () -> ()", - "key.parsed_scope.end" : 560, - "key.parsed_scope.start" : 560, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "() -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI20ApplyItemContentInfoV23showLeadingSwipeActionsyycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var showTrailingSwipeActions: () -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 22100 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When invoked, will show the trailing swipe actions.", - "key.doc.column" : 16, - "key.doc.comment" : "When invoked, will show the trailing swipe actions.", - "key.doc.declaration" : "public var showTrailingSwipeActions: () -> ()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "showTrailingSwipeActions<\/Name>s:10ListableUI20ApplyItemContentInfoV24showTrailingSwipeActionsyycvp<\/USR>public var showTrailingSwipeActions: () -> ()<\/Declaration>When invoked, will show the trailing swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 563, - "key.doc.name" : "showTrailingSwipeActions", - "key.doc.type" : "Other", - "key.doclength" : 56, - "key.docoffset" : 22040, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> showTrailingSwipeActions<\/decl.name>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 563, - "key.modulename" : "ListableUI", - "key.name" : "showTrailingSwipeActions", - "key.namelength" : 24, - "key.nameoffset" : 22111, - "key.offset" : 22107, - "key.parsed_declaration" : "public var showTrailingSwipeActions : () -> ()", - "key.parsed_scope.end" : 563, - "key.parsed_scope.start" : 563, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "() -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI20ApplyItemContentInfoV24showTrailingSwipeActionsyycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isReorderable: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 22289 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the item can be reordered.\nUse this property to determine if your `ItemContent` should display a reorder control.", - "key.doc.column" : 16, - "key.doc.comment" : "If the item can be reordered.\nUse this property to determine if your `ItemContent` should display a reorder control.", - "key.doc.declaration" : "public var isReorderable: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "isReorderable<\/Name>s:10ListableUI20ApplyItemContentInfoV13isReorderableSbvp<\/USR>public var isReorderable: Bool<\/Declaration>If the item can be reordered. Use this property to determine if your ItemContent<\/codeVoice> should display a reorder control.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 567, - "key.doc.name" : "isReorderable", - "key.doc.type" : "Other", - "key.doclength" : 129, - "key.docoffset" : 22156, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isReorderable<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 567, - "key.modulename" : "ListableUI", - "key.name" : "isReorderable", - "key.namelength" : 13, - "key.nameoffset" : 22300, - "key.offset" : 22296, - "key.parsed_declaration" : "public var isReorderable : Bool", - "key.parsed_scope.end" : 567, - "key.parsed_scope.start" : 567, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20ApplyItemContentInfoV13isReorderableSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var environment: ListEnvironment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 22431 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The environment of the containing list.\nSee `ListEnvironment` for usage information.", - "key.doc.column" : 16, - "key.doc.comment" : "The environment of the containing list.\nSee `ListEnvironment` for usage information.", - "key.doc.declaration" : "public var environment: ListEnvironment", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI20ApplyItemContentInfoV11environmentAA15ListEnvironmentVvp<\/USR>public var environment: ListEnvironment<\/Declaration>The environment of the containing list. See ListEnvironment<\/codeVoice> for usage information.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 571, - "key.doc.name" : "environment", - "key.doc.type" : "Other", - "key.doclength" : 97, - "key.docoffset" : 22330, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 571, - "key.modulename" : "ListableUI", - "key.name" : "environment", - "key.namelength" : 11, - "key.nameoffset" : 22442, - "key.offset" : 22438, - "key.parsed_declaration" : "public var environment : ListEnvironment", - "key.parsed_scope.end" : 571, - "key.parsed_scope.start" : 571, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVD", - "key.usr" : "s:10ListableUI20ApplyItemContentInfoV11environmentAA15ListEnvironmentVvp" - } - ], - "key.typename" : "ApplyItemContentInfo.Type", - "key.typeusr" : "$s10ListableUI20ApplyItemContentInfoVmD", - "key.usr" : "s:10ListableUI20ApplyItemContentInfoV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 22475 - } - ], - "key.bodylength" : 78, - "key.bodyoffset" : 22505, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 102, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 22492, - "key.offset" : 22482, - "key.parsed_declaration" : "public extension ItemContent", - "key.parsed_scope.end" : 578, - "key.parsed_scope.start" : 574, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var swipeActionsStyle: SwipeActionsViewStyle<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 24, - "key.bodyoffset" : 22557, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The swipe action style for this content.\n\nIf this is `nil`, the style provided by the ``SwipeActionsViewStyleKey`` environment value will be used.", - "key.doc.column" : 9, - "key.doc.declaration" : "var swipeActionsStyle: SwipeActionsViewStyle? { get }", - "key.doc.discussion" : [ - { - "Para" : "If this is `nil`, the style provided by the `SwipeActionsViewStyleKey` environment value will be used." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "swipeActionsStyle<\/Name>s:10ListableUI11ItemContentP17swipeActionsStyleAA05Swipef4ViewG0VSgvp<\/USR>var swipeActionsStyle: SwipeActionsViewStyle? { get }<\/Declaration>The swipe action style for this content.<\/Para><\/Abstract>If this is nil<\/codeVoice>, the style provided by the SwipeActionsViewStyleKey<\/codeVoice> environment value will be used.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 359, - "key.doc.name" : "swipeActionsStyle", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> swipeActionsStyle<\/decl.name>: SwipeActionsViewStyle<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 72, - "key.line" : 575, - "key.modulename" : "ListableUI", - "key.name" : "swipeActionsStyle", - "key.namelength" : 17, - "key.nameoffset" : 22514, - "key.offset" : 22510, - "key.parsed_declaration" : "var swipeActionsStyle: SwipeActionsViewStyle?", - "key.parsed_scope.end" : 577, - "key.parsed_scope.start" : 575, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "swipeActionsStyle<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "SwipeActionsViewStyle?", - "key.typeusr" : "$s10ListableUI21SwipeActionsViewStyleVSgD", - "key.usr" : "s:10ListableUI11ItemContentP17swipeActionsStyleAA05Swipef4ViewG0VSgvp" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 22586 - } - ], - "key.bodylength" : 183, - "key.bodyoffset" : 22637, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 228, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 22603, - "key.offset" : 22593, - "key.parsed_declaration" : "public extension ItemContent where Self:Equatable", - "key.parsed_scope.end" : 586, - "key.parsed_scope.start" : 580, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func isEquivalent(to other: Self<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 27, - "key.bodyoffset" : 22791, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If your `ItemContent` is `Equatable`, `isEquivalent` is based on the `Equatable` implementation.", - "key.doc.column" : 10, - "key.doc.comment" : "If your `ItemContent` is `Equatable`, `isEquivalent` is based on the `Equatable` implementation.", - "key.doc.declaration" : "func isEquivalent(to other: Self) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentPAASQRzrlE12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>If your ItemContent<\/codeVoice> is Equatable<\/codeVoice>, isEquivalent<\/codeVoice> is based on the Equatable<\/codeVoice> implementation.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 583, - "key.doc.name" : "isEquivalent(to:)", - "key.doc.type" : "Function", - "key.doclength" : 101, - "key.docoffset" : 22642, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 72, - "key.line" : 583, - "key.modulename" : "ListableUI", - "key.name" : "isEquivalent(to:)", - "key.namelength" : 29, - "key.nameoffset" : 22752, - "key.offset" : 22747, - "key.parsed_declaration" : "func isEquivalent(to other : Self) -> Bool", - "key.parsed_scope.end" : 585, - "key.parsed_scope.start" : 583, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "isEquivalent(to: Self) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Self) -> Bool", - "key.typeusr" : "$s2toSbx_tcD", - "key.usr" : "s:10ListableUI11ItemContentPAASQRzrlE12isEquivalent2toSbx_tF" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 22824 - } - ], - "key.bodylength" : 1296, - "key.bodyoffset" : 22854, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1320, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 22841, - "key.offset" : 22831, - "key.parsed_declaration" : "public extension ItemContent", - "key.parsed_scope.end" : 620, - "key.parsed_scope.start" : 589, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "typealias Identifier = ListableUI.Identifier<\/Type><Self<\/Type>, IdentifierValue<\/Type>><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `Identifier` type for the item.\n\nFor example, if your ``ItemContent`` was `MyContent`, and your `IdentifierValue` was `UUID`,\nthis variable will provide an `Identifier`.\n", - "key.doc.column" : 15, - "key.doc.comment" : "The `Identifier` type for the item.\n\nFor example, if your ``ItemContent`` was `MyContent`, and your `IdentifierValue` was `UUID`,\nthis variable will provide an `Identifier`.", - "key.doc.declaration" : "typealias Identifier = ListableUI.Identifier", - "key.doc.discussion" : [ - { - "Para" : "For example, if your `ItemContent` was `MyContent`, and your `IdentifierValue` was `UUID`, this variable will provide an `Identifier`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "Identifier<\/Name>s:10ListableUI11ItemContentPAAE10Identifiera<\/USR>typealias Identifier = ListableUI.Identifier<Self, IdentifierValue><\/Declaration>The Identifier<\/codeVoice> type for the item.<\/Para><\/Abstract>For example, if your ItemContent<\/codeVoice> was MyContent<\/codeVoice>, and your IdentifierValue<\/codeVoice> was UUID<\/codeVoice>, this variable will provide an Identifier<MyContent, UUID><\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 596, - "key.doc.name" : "Identifier", - "key.doc.type" : "Other", - "key.doclength" : 226, - "key.docoffset" : 22864, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> Identifier<\/decl.name> = ListableUI.Identifier<\/ref.class><Self<\/ref.generic_type_param>, IdentifierValue<\/ref.associatedtype>><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 67, - "key.line" : 596, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 23104, - "key.offset" : 23094, - "key.parsed_declaration" : "typealias Identifier = ListableUI.Identifier", - "key.parsed_scope.end" : 596, - "key.parsed_scope.start" : 596, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Identifier.Type", - "key.typeusr" : "$s10ListableUI10IdentifierCyx0C5ValueQzGmD", - "key.usr" : "s:10ListableUI11ItemContentPAAE10Identifiera" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var identifier: Identifier<\/Type> { get }<\/Declaration>", - "key.bodylength" : 57, - "key.bodyoffset" : 23425, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `Identifier` for the item.\n\nFor example, if your ``ItemContent`` was `MyContent`, and your `IdentifierValue` was `UUID`,\nthis variable will provide an `Identifier`.\n", - "key.doc.column" : 9, - "key.doc.comment" : "The `Identifier` for the item.\n\nFor example, if your ``ItemContent`` was `MyContent`, and your `IdentifierValue` was `UUID`,\nthis variable will provide an `Identifier`.", - "key.doc.declaration" : "var identifier: Identifier { get }", - "key.doc.discussion" : [ - { - "Para" : "For example, if your `ItemContent` was `MyContent`, and your `IdentifierValue` was `UUID`, this variable will provide an `Identifier`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI11ItemContentPAAE10identifierAA10IdentifierCyx0F5ValueQzGvp<\/USR>var identifier: Identifier { get }<\/Declaration>The Identifier<\/codeVoice> for the item.<\/Para><\/Abstract>For example, if your ItemContent<\/codeVoice> was MyContent<\/codeVoice>, and your IdentifierValue<\/codeVoice> was UUID<\/codeVoice>, this variable will provide an Identifier<MyContent, UUID><\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 603, - "key.doc.name" : "identifier", - "key.doc.type" : "Other", - "key.doclength" : 221, - "key.docoffset" : 23171, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 87, - "key.line" : 603, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 23400, - "key.offset" : 23396, - "key.parsed_declaration" : "var identifier : Identifier", - "key.parsed_scope.end" : 605, - "key.parsed_scope.start" : 603, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "identifier(with:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Identifier", - "key.typeusr" : "$s10ListableUI10IdentifierCyx0C5ValueQzGD", - "key.usr" : "s:10ListableUI11ItemContentPAAE10identifierAA10IdentifierCyx0F5ValueQzGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func identifier(with value: IdentifierValue<\/Type>) -> Identifier<\/Type><\/Declaration>", - "key.bodylength" : 31, - "key.bodyoffset" : 24117, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates an ``Identifier`` with the provided value.\n\nThis method allows creating an ``Identifier`` in a type safe manner; enforcing that the\n`Represented` and `Value` parameters are of the correct type for the ``ItemContent``:\n```\nMyItem.identifier(with: \"my-id\") \/\/ ✅ OK\nMyItem.identifier(with: 1) \/\/ 🚫 Error: MyItem's IdentifierValue is String.\n```\nYou can also read the identifier via ``ItemContent\/identifier``, ``Item\/identifier`` or ``AnyItem\/anyIdentifier``.\n", - "key.doc.column" : 17, - "key.doc.comment" : "Creates an ``Identifier`` with the provided value.\n\nThis method allows creating an ``Identifier`` in a type safe manner; enforcing that the\n`Represented` and `Value` parameters are of the correct type for the ``ItemContent``:\n```\nMyItem.identifier(with: \"my-id\") \/\/ ✅ OK\nMyItem.identifier(with: 1) \/\/ 🚫 Error: MyItem's IdentifierValue is String.\n```\nYou can also read the identifier via ``ItemContent\/identifier``, ``Item\/identifier`` or ``AnyItem\/anyIdentifier``.", - "key.doc.declaration" : "static func identifier(with value: IdentifierValue) -> Identifier", - "key.doc.discussion" : [ - { - "Para" : "This method allows creating an `Identifier` in a type safe manner; enforcing that the `Represented` and `Value` parameters are of the correct type for the `ItemContent`:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can also read the identifier via `ItemContent\/identifier`, `Item\/identifier` or `AnyItem\/anyIdentifier`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "identifier(with:)<\/Name>s:10ListableUI11ItemContentPAAE10identifier4withAA10IdentifierCyx0G5ValueQzGAI_tFZ<\/USR>static func identifier(with value: IdentifierValue) -> Identifier<\/Declaration>Creates an Identifier<\/codeVoice> with the provided value.<\/Para><\/Abstract>This method allows creating an Identifier<\/codeVoice> in a type safe manner; enforcing that the Represented<\/codeVoice> and Value<\/codeVoice> parameters are of the correct type for the ItemContent<\/codeVoice>:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can also read the identifier via ItemContent\/identifier<\/codeVoice>, Item\/identifier<\/codeVoice> or AnyItem\/anyIdentifier<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 617, - "key.doc.name" : "identifier(with:)", - "key.doc.type" : "Function", - "key.doclength" : 552, - "key.docoffset" : 23493, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> identifier<\/decl.name>(with<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: IdentifierValue<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 100, - "key.line" : 617, - "key.modulename" : "ListableUI", - "key.name" : "identifier(with:)", - "key.namelength" : 40, - "key.nameoffset" : 24061, - "key.offset" : 24049, - "key.parsed_declaration" : "static func identifier(with value : IdentifierValue) -> Identifier", - "key.parsed_scope.end" : 619, - "key.parsed_scope.start" : 617, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "identifier<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (Self.IdentifierValue) -> Identifier", - "key.typeusr" : "$s4with10ListableUI10IdentifierCyx0D5ValueQzGAF_tcD", - "key.usr" : "s:10ListableUI11ItemContentPAAE10identifier4withAA10IdentifierCyx0G5ValueQzGAI_tFZ" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 24268 - } - ], - "key.bodylength" : 58, - "key.bodyoffset" : 24322, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provides a default implementation of `identifierValue` when self conforms to Swift's `Identifiable` protocol.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 114, - "key.docoffset" : 24154, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 106, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 24285, - "key.offset" : 24275, - "key.parsed_declaration" : "public extension ItemContent where Self:Identifiable", - "key.parsed_scope.end" : 629, - "key.parsed_scope.start" : 624, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var identifierValue: ID<\/Type> { get }<\/Declaration>", - "key.bodylength" : 21, - "key.bodyoffset" : 24357, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifierValue<\/decl.name>: ID<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 626, - "key.modulename" : "ListableUI", - "key.name" : "identifierValue", - "key.namelength" : 15, - "key.nameoffset" : 24335, - "key.offset" : 24331, - "key.parsed_declaration" : "var identifierValue : ID", - "key.parsed_scope.end" : 628, - "key.parsed_scope.start" : 626, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "identifierValue<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.ID", - "key.typeusr" : "$s2IDs12IdentifiablePQzD", - "key.usr" : "s:10ListableUI11ItemContentPAAs12IdentifiableRzrlE15identifierValue2IDsADPQzvp" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 24453 - } - ], - "key.bodylength" : 117, - "key.bodyoffset" : 24483, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Implement `wasMoved` in terms of `isEquivalent(to:)` by default.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 69, - "key.docoffset" : 24384, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 141, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 24470, - "key.offset" : 24460, - "key.parsed_declaration" : "public extension ItemContent", - "key.parsed_scope.end" : 639, - "key.parsed_scope.start" : 633, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasMoved(comparedTo other: Self<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 58, - "key.bodyoffset" : 24540, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used by the list view to determine move events during an update's diff operation.\n\nThis function should return `true` if the content's sort changed based on the old value passed into the function.\nFor example, if your content is sorted based on an `updatedAt` `Date` parameter, you would implement\nthis method as follows:\n```swift\nfunc wasMoved(comparedTo other : MyContent) -> Bool {\n self.updatedAt != other.updatedAt\n}\n```\n\n#### Note\nThere is a default implementation of this method which calls `isEquivalent == false`. Unless\nyour list has an extremely high amount of ordering churn, you should not need to implement this method.\n", - "key.doc.column" : 10, - "key.doc.declaration" : "func wasMoved(comparedTo other: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "This function should return `true` if the content’s sort changed based on the old value passed into the function. For example, if your content is sorted based on an `updatedAt` `Date` parameter, you would implement this method as follows:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "There is a default implementation of this method which calls `isEquivalent == false`. Unless your list has an extremely high amount of ordering churn, you should not need to implement this method." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "wasMoved(comparedTo:)<\/Name>s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF<\/USR>func wasMoved(comparedTo other: Self) -> Bool<\/Declaration>Used by the list view to determine move events during an update’s diff operation.<\/Para><\/Abstract>This function should return true<\/codeVoice> if the content’s sort changed based on the old value passed into the function. For example, if your content is sorted based on an updatedAt<\/codeVoice> Date<\/codeVoice> parameter, you would implement this method as follows:<\/Para> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method which calls isEquivalent == false<\/codeVoice>. Unless your list has an extremely high amount of ordering churn, you should not need to implement this method.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 315, - "key.doc.name" : "wasMoved(comparedTo:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 111, - "key.line" : 635, - "key.modulename" : "ListableUI", - "key.name" : "wasMoved(comparedTo:)", - "key.namelength" : 33, - "key.nameoffset" : 24493, - "key.offset" : 24488, - "key.parsed_declaration" : "func wasMoved(comparedTo other : Self) -> Bool", - "key.parsed_scope.end" : 638, - "key.parsed_scope.start" : 635, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasMoved(comparedTo: Self) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Self) -> Bool", - "key.typeusr" : "$s10comparedToSbx_tcD", - "key.usr" : "s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 24694 - } - ], - "key.bodylength" : 81, - "key.bodyoffset" : 24724, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provide a default implementation of `reappliesToVisibleView` which returns `.always`.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 90, - "key.docoffset" : 24604, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 105, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 24711, - "key.offset" : 24701, - "key.parsed_declaration" : "public extension ItemContent", - "key.parsed_scope.end" : 648, - "key.parsed_scope.start" : 643, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var reappliesToVisibleView: ReappliesToVisibleView<\/Type> { get }<\/Declaration>", - "key.bodylength" : 21, - "key.bodyoffset" : 24782, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the `ItemContent` is on screen, controls how and when to apply updates\nto the view.\n\nDefaults to ``ReappliesToVisibleView\/always``.\n\nSee ``ReappliesToVisibleView`` for a full discussion.", - "key.doc.column" : 9, - "key.doc.declaration" : "var reappliesToVisibleView: ReappliesToVisibleView { get }", - "key.doc.discussion" : [ - { - "Para" : "Defaults to `ReappliesToVisibleView\/always`." - }, - { - "Para" : "See `ReappliesToVisibleView` for a full discussion." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "reappliesToVisibleView<\/Name>s:10ListableUI11ItemContentP22reappliesToVisibleViewAA09ReappliesfgH0Ovp<\/USR>var reappliesToVisibleView: ReappliesToVisibleView { get }<\/Declaration>When the ItemContent<\/codeVoice> is on screen, controls how and when to apply updates to the view.<\/Para><\/Abstract>Defaults to ReappliesToVisibleView\/always<\/codeVoice>.<\/Para>See ReappliesToVisibleView<\/codeVoice> for a full discussion.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 350, - "key.doc.name" : "reappliesToVisibleView", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reappliesToVisibleView<\/decl.name>: ReappliesToVisibleView<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 75, - "key.line" : 645, - "key.modulename" : "ListableUI", - "key.name" : "reappliesToVisibleView", - "key.namelength" : 22, - "key.nameoffset" : 24733, - "key.offset" : 24729, - "key.parsed_declaration" : "var reappliesToVisibleView : ReappliesToVisibleView", - "key.parsed_scope.end" : 647, - "key.parsed_scope.start" : 645, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "reappliesToVisibleView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ReappliesToVisibleView", - "key.typeusr" : "$s10ListableUI22ReappliesToVisibleViewOD", - "key.usr" : "s:10ListableUI11ItemContentP22reappliesToVisibleViewAA09ReappliesfgH0Ovp" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 24945 - } - ], - "key.bodylength" : 75, - "key.bodyoffset" : 24975, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provide a default implementation of `defaultItemProperties` which returns an\nempty instance that does not provide any defaults.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 136, - "key.docoffset" : 24809, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 99, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 24962, - "key.offset" : 24952, - "key.parsed_declaration" : "public extension ItemContent", - "key.parsed_scope.end" : 658, - "key.parsed_scope.start" : 653, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var defaultItemProperties: DefaultProperties<\/Type> { get }<\/Declaration>", - "key.bodylength" : 21, - "key.bodyoffset" : 25027, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Default values to assign to various properties on the `Item` which wraps\nthis `ItemContent`, if those values are not passed to the `Item` initializer.", - "key.doc.column" : 9, - "key.doc.declaration" : "var defaultItemProperties: DefaultProperties { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "defaultItemProperties<\/Name>s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp<\/USR>var defaultItemProperties: DefaultProperties { get }<\/Declaration>Default values to assign to various properties on the Item<\/codeVoice> which wraps this ItemContent<\/codeVoice>, if those values are not passed to the Item<\/codeVoice> initializer.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 326, - "key.doc.name" : "defaultItemProperties", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultItemProperties<\/decl.name>: DefaultProperties<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 69, - "key.line" : 655, - "key.modulename" : "ListableUI", - "key.name" : "defaultItemProperties", - "key.namelength" : 21, - "key.nameoffset" : 24984, - "key.offset" : 24980, - "key.parsed_declaration" : "var defaultItemProperties : DefaultProperties", - "key.parsed_scope.end" : 657, - "key.parsed_scope.start" : 655, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "defaultItemProperties<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "DefaultItemProperties", - "key.typeusr" : "$s10ListableUI21DefaultItemPropertiesVyxGD", - "key.usr" : "s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 25132 - } - ], - "key.bodylength" : 209, - "key.bodyoffset" : 25219, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provides a default coordinator for items without a specified coordinator.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 78, - "key.docoffset" : 25054, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 290, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 25149, - "key.offset" : 25139, - "key.parsed_declaration" : "public extension ItemContent where Coordinator == DefaultItemContentCoordinator", - "key.parsed_scope.end" : 668, - "key.parsed_scope.start" : 662, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func makeCoordinator(actions: ItemContentCoordinatorActions<\/Type><Self<\/Type>>, info: ItemContentCoordinatorInfo<\/Type><Self<\/Type>>) -> Coordinator<\/Type><\/Declaration>", - "key.bodylength" : 73, - "key.bodyoffset" : 25353, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new coordinator with the provided actions and info.", - "key.doc.column" : 10, - "key.doc.declaration" : "func makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "makeCoordinator(actions:info:)<\/Name>s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF<\/USR>func makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator<\/Declaration>Creates a new coordinator with the provided actions and info.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 470, - "key.doc.name" : "makeCoordinator(actions:info:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> makeCoordinator<\/decl.name>(actions<\/decl.var.parameter.argument_label>: ItemContentCoordinatorActions<\/ref.class><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: ItemContentCoordinatorInfo<\/ref.class><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Coordinator<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 203, - "key.line" : 664, - "key.modulename" : "ListableUI", - "key.name" : "makeCoordinator(actions:info:)", - "key.namelength" : 103, - "key.nameoffset" : 25229, - "key.offset" : 25224, - "key.parsed_declaration" : "func makeCoordinator(actions : ItemContentCoordinatorActions, info : ItemContentCoordinatorInfo) -> Coordinator", - "key.parsed_scope.end" : 667, - "key.parsed_scope.start" : 664, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "> (Self) -> (ItemContentCoordinatorActions, ItemContentCoordinatorInfo) -> Self.Coordinator", - "key.typeusr" : "$s7actions4info10ListableUI29DefaultItemContentCoordinatorCyxGAC0fgH7ActionsCyxG_AC0fgH4InfoCyxGtcD", - "key.usr" : "s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 25517 - } - ], - "key.bodylength" : 117, - "key.bodyoffset" : 25547, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provides a default implementation of `ViewProperties` which configure no options.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 86, - "key.docoffset" : 25431, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 141, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 25534, - "key.offset" : 25524, - "key.parsed_declaration" : "public extension ItemContent", - "key.parsed_scope.end" : 676, - "key.parsed_scope.start" : 671, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func contentAreaViewProperties(with info: ApplyItemContentInfo<\/Type>) -> ViewProperties<\/Type><\/Declaration>", - "key.bodylength" : 21, - "key.bodyoffset" : 25641, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the properties to configure on the content area view for the item.", - "key.doc.column" : 10, - "key.doc.declaration" : "func contentAreaViewProperties(with info: ApplyItemContentInfo) -> ViewProperties", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "contentAreaViewProperties(with:)<\/Name>s:10ListableUI11ItemContentP25contentAreaViewProperties4withAA0gH0VAA05ApplycD4InfoV_tF<\/USR>func contentAreaViewProperties(with info: ApplyItemContentInfo) -> ViewProperties<\/Declaration>Describes the properties to configure on the content area view for the item.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 378, - "key.doc.name" : "contentAreaViewProperties(with:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> contentAreaViewProperties<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewProperties<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 106, - "key.line" : 673, - "key.modulename" : "ListableUI", - "key.name" : "contentAreaViewProperties(with:)", - "key.namelength" : 59, - "key.nameoffset" : 25562, - "key.offset" : 25557, - "key.parsed_declaration" : "func contentAreaViewProperties(with info : ApplyItemContentInfo) -> ViewProperties", - "key.parsed_scope.end" : 675, - "key.parsed_scope.start" : 673, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "contentAreaViewProperties(with: ApplyItemContentInfo) -> ViewProperties<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ApplyItemContentInfo) -> ViewProperties", - "key.typeusr" : "$s4with10ListableUI14ViewPropertiesVAB20ApplyItemContentInfoV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP25contentAreaViewProperties4withAA0gH0VAA05ApplycD4InfoV_tF" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 25735 - } - ], - "key.bodylength" : 129, - "key.bodyoffset" : 25796, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provide a UIView when no special background view is specified.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 67, - "key.docoffset" : 25668, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 184, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 25752, - "key.offset" : 25742, - "key.parsed_declaration" : "public extension ItemContent where BackgroundView == UIView", - "key.parsed_scope.end" : 686, - "key.parsed_scope.start" : 680, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableBackgroundView(frame: CGRect<\/Type>) -> BackgroundView<\/Type><\/Declaration>", - "key.bodylength" : 42, - "key.bodyoffset" : 25881, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's background.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableBackgroundView(frame: CGRect) -> BackgroundView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 400, - "key.doc.name" : "createReusableBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 123, - "key.line" : 682, - "key.modulename" : "ListableUI", - "key.name" : "createReusableBackgroundView(frame:)", - "key.namelength" : 44, - "key.nameoffset" : 25813, - "key.offset" : 25801, - "key.parsed_declaration" : "static func createReusableBackgroundView(frame : CGRect) -> BackgroundView", - "key.parsed_scope.end" : 685, - "key.parsed_scope.start" : 682, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.BackgroundView", - "key.typeusr" : "$s5frameSo6UIViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26005 - } - ], - "key.bodylength" : 153, - "key.bodyoffset" : 26074, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provide a UIView when no special selected background view is specified.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 76, - "key.docoffset" : 25929, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 216, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 26022, - "key.offset" : 26012, - "key.parsed_declaration" : "public extension ItemContent where SelectedBackgroundView == UIView", - "key.parsed_scope.end" : 696, - "key.parsed_scope.start" : 690, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableSelectedBackgroundView(frame: CGRect<\/Type>) -> SelectedBackgroundView<\/Type><\/Declaration>", - "key.bodylength" : 50, - "key.bodyoffset" : 26175, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new background view used to render the content's selected background.\n\nThis view is displayed when the content is highlighted or selected.\n\nIf your `BackgroundView` and `SelectedBackgroundView` are the same type, this method\nis provided automatically by calling `createReusableBackgroundView`.\n\nNote\n----\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView", - "key.doc.discussion" : [ - { - "Para" : "This view is displayed when the content is highlighted or selected." - }, - { - "Para" : "If your `BackgroundView` and `SelectedBackgroundView` are the same type, this method is provided automatically by calling `createReusableBackgroundView`." - }, - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableSelectedBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s selected background.<\/Para><\/Abstract>This view is displayed when the content is highlighted or selected.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 425, - "key.doc.name" : "createReusableSelectedBackgroundView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableSelectedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> SelectedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 147, - "key.line" : 692, - "key.modulename" : "ListableUI", - "key.name" : "createReusableSelectedBackgroundView(frame:)", - "key.namelength" : 52, - "key.nameoffset" : 26091, - "key.offset" : 26079, - "key.parsed_declaration" : "static func createReusableSelectedBackgroundView(frame : CGRect) -> SelectedBackgroundView", - "key.parsed_scope.end" : 695, - "key.parsed_scope.start" : 692, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.SelectedBackgroundView", - "key.typeusr" : "$s5frameSo6UIViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26306 - } - ], - "key.bodylength" : 150, - "key.bodyoffset" : 26374, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provide a UIView when no special overlay decoration view is specified.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 75, - "key.docoffset" : 26231, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 212, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 26323, - "key.offset" : 26313, - "key.parsed_declaration" : "public extension ItemContent where OverlayDecorationView == UIView", - "key.parsed_scope.end" : 706, - "key.parsed_scope.start" : 700, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableOverlayDecorationView(frame: CGRect<\/Type>) -> OverlayDecorationView<\/Type><\/Declaration>", - "key.bodylength" : 49, - "key.bodyoffset" : 26473, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new overlay decoration view used to render any required decorations over the content.\nThe decoration view appears above all content, and is not affected by swipe actions.\n\n## Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableOverlayDecorationView(frame: CGRect) -> OverlayDecorationView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableOverlayDecorationView(frame:)<\/Name>s:10ListableUI11ItemContentP35createReusableOverlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableOverlayDecorationView(frame: CGRect) -> OverlayDecorationView<\/Declaration>Create and return a new overlay decoration view used to render any required decorations over the content. The decoration view appears above all content, and is not affected by swipe actions.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 445, - "key.doc.name" : "createReusableOverlayDecorationView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableOverlayDecorationView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> OverlayDecorationView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 144, - "key.line" : 702, - "key.modulename" : "ListableUI", - "key.name" : "createReusableOverlayDecorationView(frame:)", - "key.namelength" : 51, - "key.nameoffset" : 26391, - "key.offset" : 26379, - "key.parsed_declaration" : "static func createReusableOverlayDecorationView(frame : CGRect) -> OverlayDecorationView", - "key.parsed_scope.end" : 705, - "key.parsed_scope.start" : 702, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableOverlayDecorationView(frame: CGRect) -> OverlayDecorationView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.OverlayDecorationView", - "key.typeusr" : "$s5frameSo6UIViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP35createReusableOverlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContent : AnyItemConvertible<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26604 - } - ], - "key.bodylength" : 153, - "key.bodyoffset" : 26673, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `ItemContent` is a type used to provide the content of an `Item` in a list section.\n\nA `ItemContent` that displays text might look like this:\n```swift\nstruct MyItemContent : ItemContent, Equatable\n{\n var text : String\n var id : UUID\n\n var identifierValue: UUID {\n self.id\n }\n\n static func createReusableContentView(frame : CGRect) -> MyContentView {\n MyContentView(frame: frame)\n }\n\n func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n views.content.text = self.text\n }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`\n", - "key.doc.column" : 17, - "key.doc.comment" : "Provide a UIView when no special underlay decoration view is specified.", - "key.doc.declaration" : "public protocol ItemContent : ListableUI.AnyItemConvertible", - "key.doc.discussion" : [ - { - "Para" : "A `ItemContent` that displays text might look like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method." - }, - { - "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent : ListableUI.AnyItemConvertible<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a list section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ItemContent", - "key.doc.type" : "Class", - "key.doclength" : 76, - "key.docoffset" : 26528, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name> : AnyItemConvertible<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 216, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ItemContent", - "key.namelength" : 11, - "key.nameoffset" : 26621, - "key.offset" : 26611, - "key.parsed_declaration" : "public extension ItemContent where UnderlayDecorationView == UIView", - "key.parsed_scope.end" : 716, - "key.parsed_scope.start" : 710, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func createReusableUnderlayDecorationView(frame: CGRect<\/Type>) -> UnderlayDecorationView<\/Type><\/Declaration>", - "key.bodylength" : 50, - "key.bodyoffset" : 26774, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create and return a new underlay decoration view used to render any required decorations under the content.\nThe decoration view appears under all content as a background, and is not affected by swipe actions.\n\n## Note\nDo not do configuration in this method that will be changed by your view's theme or appearance – instead\ndo that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes.", - "key.doc.column" : 17, - "key.doc.declaration" : "static func createReusableUnderlayDecorationView(frame: CGRect) -> UnderlayDecorationView", - "key.doc.discussion" : [ - { - "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.doc.full_as_xml" : "createReusableUnderlayDecorationView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableUnderlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableUnderlayDecorationView(frame: CGRect) -> UnderlayDecorationView<\/Declaration>Create and return a new underlay decoration view used to render any required decorations under the content. The decoration view appears under all content as a background, and is not affected by swipe actions.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 453, - "key.doc.name" : "createReusableUnderlayDecorationView(frame:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableUnderlayDecorationView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UnderlayDecorationView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 147, - "key.line" : 712, - "key.modulename" : "ListableUI", - "key.name" : "createReusableUnderlayDecorationView(frame:)", - "key.namelength" : 52, - "key.nameoffset" : 26690, - "key.offset" : 26678, - "key.parsed_declaration" : "static func createReusableUnderlayDecorationView(frame : CGRect) -> UnderlayDecorationView", - "key.parsed_scope.end" : 715, - "key.parsed_scope.start" : 712, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI11ItemContentP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "createReusableUnderlayDecorationView(frame: CGRect) -> UnderlayDecorationView<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (CGRect) -> Self.UnderlayDecorationView", - "key.typeusr" : "$s5frameSo6UIViewCSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI11ItemContentP36createReusableUnderlayDecorationView5frame0ghI0QzSo6CGRectV_tFZ" - } - ], - "key.typename" : "ItemContent.Type", - "key.typeusr" : "$s10ListableUI11ItemContent_pmD", - "key.usr" : "s:10ListableUI11ItemContentP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 7261, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContentCoordinator : AnyObject<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1763 - } - ], - "key.bodylength" : 2108, - "key.bodyoffset" : 1815, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A type which lets you interactively manage the contents of an `Item` or `ItemContent`\nwithin a list.\n\nEg, you might create a `ItemContentCoordinator` which listens to a\nnotification, and then updates a field on the `Item` or `ItemContent` in response\nto this notification.\n\n`ItemContentCoordinator` is created when an item is being prepared to be presented\non screen for the first time, and lives for as long as the item is present in the list. If you need\nto pull in any changes to the item due to time passing, you can update the item within the\n`wasCreated`callback.\n\nThere are default implementations of all `ItemContentCoordinator` methods. You only\nneed to provide implementations for the methods relevant to you.\n\nExample\n-------\nA simple `ItemContentCoordinator` might look like this:\n\n```\nfinal class MyCoordinator : ItemContentCoordinator\n{\n typealias ItemContentType = MyContentType\n\n let actions: CoordinatorActions\n let info: CoordinatorInfo\n var view : View?\n\n init(actions: CoordinatorActions, info: CoordinatorInfo)\n {\n self.actions = actions\n self.info = info\n\n NotificationCenter.default.addObserver(self, selector: #selector(downloadUpdated(:)), name: .DownloadProgressChanged, object: nil)\n }\n\n @objc func downloadUpdated(notification : Notification)\n {\n self.actions.update {\n $0.content.downloadProgress = notification.userInfo[\"download_progress\"] as! CGFloat\n }\n }\n}\n```\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nA type which lets you interactively manage the contents of an `Item` or `ItemContent`\nwithin a list.\n\nEg, you might create a `ItemContentCoordinator` which listens to a\nnotification, and then updates a field on the `Item` or `ItemContent` in response\nto this notification.\n\n`ItemContentCoordinator` is created when an item is being prepared to be presented\non screen for the first time, and lives for as long as the item is present in the list. If you need\nto pull in any changes to the item due to time passing, you can update the item within the\n`wasCreated`callback.\n\nThere are default implementations of all `ItemContentCoordinator` methods. You only\nneed to provide implementations for the methods relevant to you.\n\nExample\n-------\nA simple `ItemContentCoordinator` might look like this:\n\n```\nfinal class MyCoordinator : ItemContentCoordinator\n{\n typealias ItemContentType = MyContentType\n\n let actions: CoordinatorActions\n let info: CoordinatorInfo\n var view : View?\n\n init(actions: CoordinatorActions, info: CoordinatorInfo)\n {\n self.actions = actions\n self.info = info\n\n NotificationCenter.default.addObserver(self, selector: #selector(downloadUpdated(:)), name: .DownloadProgressChanged, object: nil)\n }\n\n @objc func downloadUpdated(notification : Notification)\n {\n self.actions.update {\n $0.content.downloadProgress = notification.userInfo[\"download_progress\"] as! CGFloat\n }\n }\n}\n```", - "key.doc.declaration" : "public protocol ItemContentCoordinator : AnyObject", - "key.doc.discussion" : [ - { - "Para" : "Eg, you might create a `ItemContentCoordinator` which listens to a notification, and then updates a field on the `Item` or `ItemContent` in response to this notification." - }, - { - "Para" : "`ItemContentCoordinator` is created when an item is being prepared to be presented on screen for the first time, and lives for as long as the item is present in the list. If you need to pull in any changes to the item due to time passing, you can update the item within the `wasCreated`callback." - }, - { - "Para" : "There are default implementations of all `ItemContentCoordinator` methods. You only need to provide implementations for the methods relevant to you." - }, - { - "Para" : "A simple `ItemContentCoordinator` might look like this:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "ItemContentCoordinator<\/Name>s:10ListableUI22ItemContentCoordinatorP<\/USR>public protocol ItemContentCoordinator : AnyObject<\/Declaration>A type which lets you interactively manage the contents of an Item<\/codeVoice> or ItemContent<\/codeVoice> within a list.<\/Para><\/Abstract>Eg, you might create a ItemContentCoordinator<\/codeVoice> which listens to a notification, and then updates a field on the Item<\/codeVoice> or ItemContent<\/codeVoice> in response to this notification.<\/Para>ItemContentCoordinator<\/codeVoice> is created when an item is being prepared to be presented on screen for the first time, and lives for as long as the item is present in the list. If you need to pull in any changes to the item due to time passing, you can update the item within the wasCreated<\/codeVoice>callback.<\/Para>There are default implementations of all ItemContentCoordinator<\/codeVoice> methods. You only need to provide implementations for the methods relevant to you.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML>A simple ItemContentCoordinator<\/codeVoice> might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 57, - "key.doc.name" : "ItemContentCoordinator", - "key.doc.type" : "Class", - "key.doclength" : 1643, - "key.docoffset" : 120, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1804 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContentCoordinator<\/decl.name> : AnyObject<\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 2154, - "key.line" : 57, - "key.modulename" : "ListableUI", - "key.name" : "ItemContentCoordinator", - "key.namelength" : 22, - "key.nameoffset" : 1779, - "key.offset" : 1770, - "key.parsed_declaration" : "public protocol ItemContentCoordinator : AnyObject", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype ItemContentType : ItemContent<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The type of `ItemContent` associated with this coordinator.", - "key.doc.column" : 20, - "key.doc.comment" : "The type of `ItemContent` associated with this coordinator.", - "key.doc.declaration" : "associatedtype ItemContentType : ListableUI.ItemContent", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "ItemContentType<\/Name>s:10ListableUI22ItemContentCoordinatorP0cD4TypeQa<\/USR>associatedtype ItemContentType : ListableUI.ItemContent<\/Declaration>The type of ItemContent<\/codeVoice> associated with this coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 60, - "key.doc.name" : "ItemContentType", - "key.doc.type" : "Other", - "key.doclength" : 64, - "key.docoffset" : 1820, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> ItemContentType<\/decl.name> : ItemContent<\/ref.protocol><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 44, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "ItemContentType", - "key.namelength" : 15, - "key.nameoffset" : 1903, - "key.offset" : 1888, - "key.parsed_declaration" : "associatedtype ItemContentType : ItemContent", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.ItemContentType.Type", - "key.typeusr" : "$s15ItemContentTypeQzmD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP0cD4TypeQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "typealias ItemContentCoordinator<\/Type>.Item = ListableUI.Item<\/Type><ItemContentType<\/Type>><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item associated with the coordinator.", - "key.doc.column" : 15, - "key.doc.comment" : "The item associated with the coordinator.", - "key.doc.declaration" : "typealias ListableUI.ItemContentCoordinator.Item = ListableUI.Item", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "Item<\/Name>s:10ListableUI22ItemContentCoordinatorP0C0a<\/USR>typealias ListableUI.ItemContentCoordinator.Item = ListableUI.Item<ItemContentType><\/Declaration>The item associated with the coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 63, - "key.doc.name" : "Item", - "key.doc.type" : "Other", - "key.doclength" : 46, - "key.docoffset" : 1942, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ItemContentCoordinator<\/ref.protocol>.Item<\/decl.name> = ListableUI.Item<\/ref.struct><ItemContentType<\/ref.associatedtype>><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 49, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 2002, - "key.offset" : 1992, - "key.parsed_declaration" : "typealias Item = ListableUI.Item", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Item.Type", - "key.typeusr" : "$s10ListableUI4ItemVy0C11ContentTypeQzGmD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP0C0a" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Actions & Info", - "key.offset" : 2054 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var actions: ItemContentType<\/Type>.CoordinatorActions<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 2239, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The available actions you can perform on the coordinated `Item`. Eg, updating it to a new value.", - "key.doc.column" : 9, - "key.doc.comment" : "The available actions you can perform on the coordinated `Item`. Eg, updating it to a new value.", - "key.doc.declaration" : "var actions: ItemContentType.CoordinatorActions { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp<\/USR>var actions: ItemContentType.CoordinatorActions { get }<\/Declaration>The available actions you can perform on the coordinated Item<\/codeVoice>. Eg, updating it to a new value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 68, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.doclength" : 101, - "key.docoffset" : 2084, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> actions<\/decl.name>: ItemContentType<\/ref.associatedtype>.CoordinatorActions<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 56, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 2193, - "key.offset" : 2189, - "key.parsed_declaration" : "var actions : ItemContentType.CoordinatorActions", - "key.parsed_scope.end" : 68, - "key.parsed_scope.start" : 68, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorActions", - "key.typeusr" : "$s10ListableUI29ItemContentCoordinatorActionsCy0cD4TypeQzGD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var info: ItemContentType<\/Type>.CoordinatorInfo<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 2382, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Info about the coordinated `Item`, such as its original and current value.", - "key.doc.column" : 9, - "key.doc.comment" : "Info about the coordinated `Item`, such as its original and current value.", - "key.doc.declaration" : "var info: ItemContentType.CoordinatorInfo { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "info<\/Name>s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp<\/USR>var info: ItemContentType.CoordinatorInfo { get }<\/Declaration>Info about the coordinated Item<\/codeVoice>, such as its original and current value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 71, - "key.doc.name" : "info", - "key.doc.type" : "Other", - "key.doclength" : 79, - "key.docoffset" : 2255, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> info<\/decl.name>: ItemContentType<\/ref.associatedtype>.CoordinatorInfo<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "info", - "key.namelength" : 4, - "key.nameoffset" : 2342, - "key.offset" : 2338, - "key.parsed_declaration" : "var info : ItemContentType.CoordinatorInfo", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 71, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorInfo", - "key.typeusr" : "$s10ListableUI26ItemContentCoordinatorInfoCy0cD4TypeQzGD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Instance Lifecycle", - "key.offset" : 2401 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasInserted(_ info: Item<\/Type>.OnInsert<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked on the coordinator when it is first created and configured.", - "key.doc.column" : 10, - "key.doc.comment" : "Invoked on the coordinator when it is first created and configured.", - "key.doc.declaration" : "func wasInserted(_ info: Item.OnInsert)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasInserted(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF<\/USR>func wasInserted(_ info: Item.OnInsert)<\/Declaration>Invoked on the coordinator when it is first created and configured.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 76, - "key.doc.name" : "wasInserted(_:)", - "key.doc.type" : "Function", - "key.doclength" : 72, - "key.docoffset" : 2435, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasInserted<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.typealias>.OnInsert<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 40, - "key.line" : 76, - "key.modulename" : "ListableUI", - "key.name" : "wasInserted(_:)", - "key.namelength" : 35, - "key.nameoffset" : 2516, - "key.offset" : 2511, - "key.parsed_declaration" : "func wasInserted(_ info : Item.OnInsert)", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 76, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasInserted(_: Item.OnInsert)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Item.OnInsert) -> ()", - "key.typeusr" : "$syy10ListableUI4ItemV8OnInsertVy0C11ContentTypeQz_GcD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasRemoved(_ info: Item<\/Type>.OnRemove<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked on the coordinator when its owned item is removed from the list due to\nthe item, or its entire section, being removed from the list.\n\nNot invoked during deallocation of a list.", - "key.doc.column" : 10, - "key.doc.comment" : "Invoked on the coordinator when its owned item is removed from the list due to\nthe item, or its entire section, being removed from the list.\n\nNot invoked during deallocation of a list.", - "key.doc.declaration" : "func wasRemoved(_ info: Item.OnRemove)", - "key.doc.discussion" : [ - { - "Para" : "Not invoked during deallocation of a list." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasRemoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF<\/USR>func wasRemoved(_ info: Item.OnRemove)<\/Declaration>Invoked on the coordinator when its owned item is removed from the list due to the item, or its entire section, being removed from the list.<\/Para><\/Abstract>Not invoked during deallocation of a list.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 82, - "key.doc.name" : "wasRemoved(_:)", - "key.doc.type" : "Function", - "key.doclength" : 212, - "key.docoffset" : 2561, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.typealias>.OnRemove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 39, - "key.line" : 82, - "key.modulename" : "ListableUI", - "key.name" : "wasRemoved(_:)", - "key.namelength" : 34, - "key.nameoffset" : 2782, - "key.offset" : 2777, - "key.parsed_declaration" : "func wasRemoved(_ info : Item.OnRemove)", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 82, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasRemoved(_: Item.OnRemove)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Item.OnRemove) -> ()", - "key.typeusr" : "$syy10ListableUI4ItemV8OnRemoveVy0C11ContentTypeQz_GcD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasMoved(_ info: Item<\/Type>.OnMove<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked on the coordinator when its owned item is moved inside a list due to its\norder changing.\n\nNot invoked when an item is manually re-ordered by a user.", - "key.doc.column" : 10, - "key.doc.comment" : "Invoked on the coordinator when its owned item is moved inside a list due to its\norder changing.\n\nNot invoked when an item is manually re-ordered by a user.", - "key.doc.declaration" : "func wasMoved(_ info: Item.OnMove)", - "key.doc.discussion" : [ - { - "Para" : "Not invoked when an item is manually re-ordered by a user." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasMoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF<\/USR>func wasMoved(_ info: Item.OnMove)<\/Declaration>Invoked on the coordinator when its owned item is moved inside a list due to its order changing.<\/Para><\/Abstract>Not invoked when an item is manually re-ordered by a user.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 88, - "key.doc.name" : "wasMoved(_:)", - "key.doc.type" : "Function", - "key.doclength" : 184, - "key.docoffset" : 2826, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.typealias>.OnMove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 35, - "key.line" : 88, - "key.modulename" : "ListableUI", - "key.name" : "wasMoved(_:)", - "key.namelength" : 30, - "key.nameoffset" : 3019, - "key.offset" : 3014, - "key.parsed_declaration" : "func wasMoved(_ info : Item.OnMove)", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 88, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasMoved(_: Item.OnMove)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Item.OnMove) -> ()", - "key.typeusr" : "$syy10ListableUI4ItemV6OnMoveVy0C11ContentTypeQz_GcD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasUpdated(_ info: Item<\/Type>.OnUpdate<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked on the coordinator when an external update is pushed onto the owned `Item`.\nThis happens when the developer updates the content of the list, and the item is\nreported as changed via its `isEquivalent(to:)` method.", - "key.doc.column" : 10, - "key.doc.comment" : "Invoked on the coordinator when an external update is pushed onto the owned `Item`.\nThis happens when the developer updates the content of the list, and the item is\nreported as changed via its `isEquivalent(to:)` method.", - "key.doc.declaration" : "func wasUpdated(_ info: Item.OnUpdate)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasUpdated(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF<\/USR>func wasUpdated(_ info: Item.OnUpdate)<\/Declaration>Invoked on the coordinator when an external update is pushed onto the owned Item<\/codeVoice>. This happens when the developer updates the content of the list, and the item is reported as changed via its isEquivalent(to:)<\/codeVoice> method.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 93, - "key.doc.name" : "wasUpdated(_:)", - "key.doc.type" : "Function", - "key.doclength" : 241, - "key.docoffset" : 3059, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasUpdated<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.typealias>.OnUpdate<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 39, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "wasUpdated(_:)", - "key.namelength" : 34, - "key.nameoffset" : 3309, - "key.offset" : 3304, - "key.parsed_declaration" : "func wasUpdated(_ info : Item.OnUpdate)", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 93, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasUpdated(_: Item.OnUpdate)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Item.OnUpdate) -> ()", - "key.typeusr" : "$syy10ListableUI4ItemV8OnUpdateVy0C11ContentTypeQz_GcD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 33, - "key.name" : "MARK: Visibility & View Lifecycle", - "key.offset" : 3356 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func willDisplay()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when the list is about to begin displaying the item with the given view.", - "key.doc.column" : 10, - "key.doc.comment" : "Invoked when the list is about to begin displaying the item with the given view.", - "key.doc.declaration" : "func willDisplay()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "willDisplay()<\/Name>s:10ListableUI22ItemContentCoordinatorP11willDisplayyyF<\/USR>func willDisplay()<\/Declaration>Invoked when the list is about to begin displaying the item with the given view.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 98, - "key.doc.name" : "willDisplay()", - "key.doc.type" : "Function", - "key.doclength" : 85, - "key.docoffset" : 3395, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> willDisplay<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 18, - "key.line" : 98, - "key.modulename" : "ListableUI", - "key.name" : "willDisplay()", - "key.namelength" : 13, - "key.nameoffset" : 3489, - "key.offset" : 3484, - "key.parsed_declaration" : "func willDisplay()", - "key.parsed_scope.end" : 98, - "key.parsed_scope.start" : 98, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "willDisplay()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP11willDisplayyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func didEndDisplay()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when the list is about to complete displaying the item with the given view.", - "key.doc.column" : 10, - "key.doc.comment" : "Invoked when the list is about to complete displaying the item with the given view.", - "key.doc.declaration" : "func didEndDisplay()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "didEndDisplay()<\/Name>s:10ListableUI22ItemContentCoordinatorP13didEndDisplayyyF<\/USR>func didEndDisplay()<\/Declaration>Invoked when the list is about to complete displaying the item with the given view.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 101, - "key.doc.name" : "didEndDisplay()", - "key.doc.type" : "Function", - "key.doclength" : 88, - "key.docoffset" : 3508, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> didEndDisplay<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 20, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "didEndDisplay()", - "key.namelength" : 15, - "key.nameoffset" : 3605, - "key.offset" : 3600, - "key.parsed_declaration" : "func didEndDisplay()", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 101, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "didEndDisplay()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP13didEndDisplayyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 37, - "key.name" : "MARK: Selection & Highlight Lifecycle", - "key.offset" : 3633 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasSelected()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when the item is selected, via either user interaction or the `selectionStyle`.", - "key.doc.column" : 10, - "key.doc.comment" : "Invoked when the item is selected, via either user interaction or the `selectionStyle`.", - "key.doc.declaration" : "func wasSelected()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasSelected()<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF<\/USR>func wasSelected()<\/Declaration>Invoked when the item is selected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 106, - "key.doc.name" : "wasSelected()", - "key.doc.type" : "Function", - "key.doclength" : 92, - "key.docoffset" : 3680, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasSelected<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 18, - "key.line" : 106, - "key.modulename" : "ListableUI", - "key.name" : "wasSelected()", - "key.namelength" : 13, - "key.nameoffset" : 3781, - "key.offset" : 3776, - "key.parsed_declaration" : "func wasSelected()", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 106, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasSelected()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasDeselected()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when the item is deselected, via either user interaction or the `selectionStyle`.", - "key.doc.column" : 10, - "key.doc.comment" : "Invoked when the item is deselected, via either user interaction or the `selectionStyle`.", - "key.doc.declaration" : "func wasDeselected()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasDeselected()<\/Name>s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF<\/USR>func wasDeselected()<\/Declaration>Invoked when the item is deselected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 109, - "key.doc.name" : "wasDeselected()", - "key.doc.type" : "Function", - "key.doclength" : 94, - "key.docoffset" : 3804, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasDeselected<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 20, - "key.line" : 109, - "key.modulename" : "ListableUI", - "key.name" : "wasDeselected()", - "key.namelength" : 15, - "key.nameoffset" : 3907, - "key.offset" : 3902, - "key.parsed_declaration" : "func wasDeselected()", - "key.parsed_scope.end" : 109, - "key.parsed_scope.start" : 109, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasDeselected()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF" - } - ], - "key.typename" : "ItemContentCoordinator.Type", - "key.typeusr" : "$s10ListableUI22ItemContentCoordinator_pmD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemContentCoordinator : AnyObject<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3927 - } - ], - "key.bodylength" : 455, - "key.bodyoffset" : 3968, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A type which lets you interactively manage the contents of an `Item` or `ItemContent`\nwithin a list.\n\nEg, you might create a `ItemContentCoordinator` which listens to a\nnotification, and then updates a field on the `Item` or `ItemContent` in response\nto this notification.\n\n`ItemContentCoordinator` is created when an item is being prepared to be presented\non screen for the first time, and lives for as long as the item is present in the list. If you need\nto pull in any changes to the item due to time passing, you can update the item within the\n`wasCreated`callback.\n\nThere are default implementations of all `ItemContentCoordinator` methods. You only\nneed to provide implementations for the methods relevant to you.\n\nExample\n-------\nA simple `ItemContentCoordinator` might look like this:\n\n```\nfinal class MyCoordinator : ItemContentCoordinator\n{\n typealias ItemContentType = MyContentType\n\n let actions: CoordinatorActions\n let info: CoordinatorInfo\n var view : View?\n\n init(actions: CoordinatorActions, info: CoordinatorInfo)\n {\n self.actions = actions\n self.info = info\n\n NotificationCenter.default.addObserver(self, selector: #selector(downloadUpdated(:)), name: .DownloadProgressChanged, object: nil)\n }\n\n @objc func downloadUpdated(notification : Notification)\n {\n self.actions.update {\n $0.content.downloadProgress = notification.userInfo[\"download_progress\"] as! CGFloat\n }\n }\n}\n```\n", - "key.doc.column" : 17, - "key.doc.declaration" : "public protocol ItemContentCoordinator : AnyObject", - "key.doc.discussion" : [ - { - "Para" : "Eg, you might create a `ItemContentCoordinator` which listens to a notification, and then updates a field on the `Item` or `ItemContent` in response to this notification." - }, - { - "Para" : "`ItemContentCoordinator` is created when an item is being prepared to be presented on screen for the first time, and lives for as long as the item is present in the list. If you need to pull in any changes to the item due to time passing, you can update the item within the `wasCreated`callback." - }, - { - "Para" : "There are default implementations of all `ItemContentCoordinator` methods. You only need to provide implementations for the methods relevant to you." - }, - { - "Para" : "A simple `ItemContentCoordinator` might look like this:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "ItemContentCoordinator<\/Name>s:10ListableUI22ItemContentCoordinatorP<\/USR>public protocol ItemContentCoordinator : AnyObject<\/Declaration>A type which lets you interactively manage the contents of an Item<\/codeVoice> or ItemContent<\/codeVoice> within a list.<\/Para><\/Abstract>Eg, you might create a ItemContentCoordinator<\/codeVoice> which listens to a notification, and then updates a field on the Item<\/codeVoice> or ItemContent<\/codeVoice> in response to this notification.<\/Para>ItemContentCoordinator<\/codeVoice> is created when an item is being prepared to be presented on screen for the first time, and lives for as long as the item is present in the list. If you need to pull in any changes to the item due to time passing, you can update the item within the wasCreated<\/codeVoice>callback.<\/Para>There are default implementations of all ItemContentCoordinator<\/codeVoice> methods. You only need to provide implementations for the methods relevant to you.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML>A simple ItemContentCoordinator<\/codeVoice> might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 57, - "key.doc.name" : "ItemContentCoordinator", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContentCoordinator<\/decl.name> : AnyObject<\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 490, - "key.line" : 57, - "key.modulename" : "ListableUI", - "key.name" : "ItemContentCoordinator", - "key.namelength" : 22, - "key.nameoffset" : 3944, - "key.offset" : 3934, - "key.parsed_declaration" : "public extension ItemContentCoordinator", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 113, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Instance Lifecycle", - "key.offset" : 3976 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasInserted(_ info: Item<\/Type>.OnInsert<\/Type>)<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 4052, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked on the coordinator when it is first created and configured.", - "key.doc.column" : 10, - "key.doc.declaration" : "func wasInserted(_ info: Item.OnInsert)", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasInserted(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF<\/USR>func wasInserted(_ info: Item.OnInsert)<\/Declaration>Invoked on the coordinator when it is first created and configured.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 76, - "key.doc.name" : "wasInserted(_:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasInserted<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.typealias>.OnInsert<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 43, - "key.line" : 117, - "key.modulename" : "ListableUI", - "key.name" : "wasInserted(_:)", - "key.namelength" : 35, - "key.nameoffset" : 4015, - "key.offset" : 4010, - "key.parsed_declaration" : "func wasInserted(_ info : Item.OnInsert)", - "key.parsed_scope.end" : 117, - "key.parsed_scope.start" : 117, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasInserted(_: Item.OnInsert)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Item.OnInsert) -> ()", - "key.typeusr" : "$syy10ListableUI4ItemV8OnInsertVy0C11ContentTypeQz_GcD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasRemoved(_ info: Item<\/Type>.OnRemove<\/Type>)<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 4104, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked on the coordinator when its owned item is removed from the list due to\nthe item, or its entire section, being removed from the list.\n\nNot invoked during deallocation of a list.", - "key.doc.column" : 10, - "key.doc.declaration" : "func wasRemoved(_ info: Item.OnRemove)", - "key.doc.discussion" : [ - { - "Para" : "Not invoked during deallocation of a list." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasRemoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF<\/USR>func wasRemoved(_ info: Item.OnRemove)<\/Declaration>Invoked on the coordinator when its owned item is removed from the list due to the item, or its entire section, being removed from the list.<\/Para><\/Abstract>Not invoked during deallocation of a list.<\/Para>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 82, - "key.doc.name" : "wasRemoved(_:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.typealias>.OnRemove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 42, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "wasRemoved(_:)", - "key.namelength" : 34, - "key.nameoffset" : 4068, - "key.offset" : 4063, - "key.parsed_declaration" : "func wasRemoved(_ info : Item.OnRemove)", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 119, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasRemoved(_: Item.OnRemove)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Item.OnRemove) -> ()", - "key.typeusr" : "$syy10ListableUI4ItemV8OnRemoveVy0C11ContentTypeQz_GcD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasMoved(_ info: Item<\/Type>.OnMove<\/Type>)<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 4152, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked on the coordinator when its owned item is moved inside a list due to its\norder changing.\n\nNot invoked when an item is manually re-ordered by a user.", - "key.doc.column" : 10, - "key.doc.declaration" : "func wasMoved(_ info: Item.OnMove)", - "key.doc.discussion" : [ - { - "Para" : "Not invoked when an item is manually re-ordered by a user." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasMoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF<\/USR>func wasMoved(_ info: Item.OnMove)<\/Declaration>Invoked on the coordinator when its owned item is moved inside a list due to its order changing.<\/Para><\/Abstract>Not invoked when an item is manually re-ordered by a user.<\/Para>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 88, - "key.doc.name" : "wasMoved(_:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.typealias>.OnMove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 38, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "wasMoved(_:)", - "key.namelength" : 30, - "key.nameoffset" : 4120, - "key.offset" : 4115, - "key.parsed_declaration" : "func wasMoved(_ info : Item.OnMove)", - "key.parsed_scope.end" : 121, - "key.parsed_scope.start" : 121, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasMoved(_: Item.OnMove)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Item.OnMove) -> ()", - "key.typeusr" : "$syy10ListableUI4ItemV6OnMoveVy0C11ContentTypeQz_GcD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasUpdated(_ info: Item<\/Type>.OnUpdate<\/Type>)<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 4204, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked on the coordinator when an external update is pushed onto the owned `Item`.\nThis happens when the developer updates the content of the list, and the item is\nreported as changed via its `isEquivalent(to:)` method.", - "key.doc.column" : 10, - "key.doc.declaration" : "func wasUpdated(_ info: Item.OnUpdate)", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasUpdated(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF<\/USR>func wasUpdated(_ info: Item.OnUpdate)<\/Declaration>Invoked on the coordinator when an external update is pushed onto the owned Item<\/codeVoice>. This happens when the developer updates the content of the list, and the item is reported as changed via its isEquivalent(to:)<\/codeVoice> method.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 93, - "key.doc.name" : "wasUpdated(_:)", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasUpdated<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.typealias>.OnUpdate<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 42, - "key.line" : 123, - "key.modulename" : "ListableUI", - "key.name" : "wasUpdated(_:)", - "key.namelength" : 34, - "key.nameoffset" : 4168, - "key.offset" : 4163, - "key.parsed_declaration" : "func wasUpdated(_ info : Item.OnUpdate)", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 123, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasUpdated(_: Item.OnUpdate)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Item.OnUpdate) -> ()", - "key.typeusr" : "$syy10ListableUI4ItemV8OnUpdateVy0C11ContentTypeQz_GcD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 26, - "key.name" : "MARK: Visibility Lifecycle", - "key.offset" : 4218 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func willDisplay()<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 4278, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when the list is about to begin displaying the item with the given view.", - "key.doc.column" : 10, - "key.doc.declaration" : "func willDisplay()", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "willDisplay()<\/Name>s:10ListableUI22ItemContentCoordinatorP11willDisplayyyF<\/USR>func willDisplay()<\/Declaration>Invoked when the list is about to begin displaying the item with the given view.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 98, - "key.doc.name" : "willDisplay()", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> willDisplay<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 21, - "key.line" : 127, - "key.modulename" : "ListableUI", - "key.name" : "willDisplay()", - "key.namelength" : 13, - "key.nameoffset" : 4263, - "key.offset" : 4258, - "key.parsed_declaration" : "func willDisplay()", - "key.parsed_scope.end" : 127, - "key.parsed_scope.start" : 127, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "willDisplay()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP11willDisplayyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func didEndDisplay()<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 4307, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when the list is about to complete displaying the item with the given view.", - "key.doc.column" : 10, - "key.doc.declaration" : "func didEndDisplay()", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "didEndDisplay()<\/Name>s:10ListableUI22ItemContentCoordinatorP13didEndDisplayyyF<\/USR>func didEndDisplay()<\/Declaration>Invoked when the list is about to complete displaying the item with the given view.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 101, - "key.doc.name" : "didEndDisplay()", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> didEndDisplay<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 23, - "key.line" : 129, - "key.modulename" : "ListableUI", - "key.name" : "didEndDisplay()", - "key.namelength" : 15, - "key.nameoffset" : 4290, - "key.offset" : 4285, - "key.parsed_declaration" : "func didEndDisplay()", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 129, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "didEndDisplay()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP13didEndDisplayyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 37, - "key.name" : "MARK: Selection & Highlight Lifecycle", - "key.offset" : 4321 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasSelected()<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 4388, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when the item is selected, via either user interaction or the `selectionStyle`.", - "key.doc.column" : 10, - "key.doc.declaration" : "func wasSelected()", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasSelected()<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF<\/USR>func wasSelected()<\/Declaration>Invoked when the item is selected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 106, - "key.doc.name" : "wasSelected()", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasSelected<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 21, - "key.line" : 133, - "key.modulename" : "ListableUI", - "key.name" : "wasSelected()", - "key.namelength" : 13, - "key.nameoffset" : 4373, - "key.offset" : 4368, - "key.parsed_declaration" : "func wasSelected()", - "key.parsed_scope.end" : 133, - "key.parsed_scope.start" : 133, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasSelected()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func wasDeselected()<\/Declaration>", - "key.bodylength" : 0, - "key.bodyoffset" : 4421, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when the item is deselected, via either user interaction or the `selectionStyle`.", - "key.doc.column" : 10, - "key.doc.declaration" : "func wasDeselected()", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "wasDeselected()<\/Name>s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF<\/USR>func wasDeselected()<\/Declaration>Invoked when the item is deselected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 109, - "key.doc.name" : "wasDeselected()", - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasDeselected<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 23, - "key.line" : 135, - "key.modulename" : "ListableUI", - "key.name" : "wasDeselected()", - "key.namelength" : 15, - "key.nameoffset" : 4404, - "key.offset" : 4399, - "key.parsed_declaration" : "func wasDeselected()", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 135, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "wasDeselected()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF" - } - ], - "key.typename" : "ItemContentCoordinator.Type", - "key.typeusr" : "$s10ListableUI22ItemContentCoordinator_pmD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class ItemContentCoordinatorActions<Content> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 4550 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4543 - } - ], - "key.bodylength" : 1403, - "key.bodyoffset" : 4614, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The available actions you can perform as a coordinator, which are reported back to the list to manage the item.", - "key.doc.column" : 20, - "key.doc.comment" : "The available actions you can perform as a coordinator, which are reported back to the list to manage the item.", - "key.doc.declaration" : "public final class ItemContentCoordinatorActions where Content : ListableUI.ItemContent", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "ItemContentCoordinatorActions<\/Name>s:10ListableUI29ItemContentCoordinatorActionsC<\/USR>public final class ItemContentCoordinatorActions<Content> where Content : ListableUI.ItemContent<\/Declaration>The available actions you can perform as a coordinator, which are reported back to the list to manage the item.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 140, - "key.doc.name" : "ItemContentCoordinatorActions", - "key.doc.type" : "Class", - "key.doclength" : 116, - "key.docoffset" : 4427, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemContentCoordinatorActions<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1462, - "key.line" : 140, - "key.modulename" : "ListableUI", - "key.name" : "ItemContentCoordinatorActions", - "key.namelength" : 29, - "key.nameoffset" : 4562, - "key.offset" : 4556, - "key.parsed_declaration" : "public final class ItemContentCoordinatorActions", - "key.parsed_scope.end" : 184, - "key.parsed_scope.start" : 140, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 50, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 4600 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 140, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 4592, - "key.offset" : 4592, - "key.parsed_declaration" : "public final class ItemContentCoordinatorActionsprivate let currentProvider: () -> Item<\/Type><Content<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4619 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> currentProvider<\/decl.name>: () -> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "currentProvider", - "key.namelength" : 15, - "key.nameoffset" : 4631, - "key.offset" : 4627, - "key.parsed_declaration" : "private let currentProvider : () -> Item", - "key.parsed_scope.end" : 142, - "key.parsed_scope.start" : 142, - "key.reusingastcontext" : false, - "key.typename" : "() -> Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGycD", - "key.usr" : "s:10ListableUI29ItemContentCoordinatorActionsC15currentProvider33_8F0E9940DA079D8843210E4978EC0DE9LLAA0C0VyxGycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var updateCallback: (Item<\/Type><Content<\/Type>>, ViewAnimation<\/Type>) -> ()<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updateCallback<\/decl.name>: (Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, ViewAnimation<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 57, - "key.line" : 143, - "key.modulename" : "ListableUI", - "key.name" : "updateCallback", - "key.namelength" : 14, - "key.nameoffset" : 4677, - "key.offset" : 4673, - "key.parsed_declaration" : "var updateCallback : (Item, ViewAnimation) -> ()", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 143, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(Item, ViewAnimation) -> ()", - "key.typeusr" : "$syy10ListableUI4ItemVyxG_AA13ViewAnimationOtcD", - "key.usr" : "s:10ListableUI29ItemContentCoordinatorActionsC14updateCallbackyyAA0C0VyxG_AA13ViewAnimationOtcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(current: @escaping () -> Item<\/Type><Content<\/Type>>, update: @escaping (Item<\/Type><Content<\/Type>>, ViewAnimation<\/Type>) -> ())<\/Declaration>", - "key.bodylength" : 81, - "key.bodyoffset" : 4848, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(current<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, update<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, ViewAnimation<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 190, - "key.line" : 145, - "key.modulename" : "ListableUI", - "key.name" : "init(current:update:)", - "key.namelength" : 102, - "key.nameoffset" : 4740, - "key.offset" : 4740, - "key.parsed_declaration" : "init(current : @escaping () -> Item, update : @escaping (Item, ViewAnimation) -> ())", - "key.parsed_scope.end" : 149, - "key.parsed_scope.start" : 145, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemContentCoordinatorActions.Type) -> (@escaping () -> Item, @escaping (Item, ViewAnimation) -> ()) -> ItemContentCoordinatorActions", - "key.typeusr" : "$s7current6update10ListableUI29ItemContentCoordinatorActionsCyxGAC0E0VyxGyc_yAI_AC13ViewAnimationOtctcD", - "key.usr" : "s:10ListableUI29ItemContentCoordinatorActionsC7current6updateACyxGAA0C0VyxGyc_yAI_AA13ViewAnimationOtctcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func update(animation: ViewAnimation<\/Type> = .default, after delay: TimeInterval<\/Type> = 0, update: @escaping (inout Item<\/Type><Content<\/Type>>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5421 - } - ], - "key.bodylength" : 428, - "key.bodyoffset" : 5587, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows you to update the displayed item via the provided closure, with an optional\nanimation or delay.\n\nNote that the `update` callback is invoked after the provided `delay`, and\nis passed the value of the `Item` at that point in time.\n\n```\nfunc wasSelected() {\n self.update(animation: .animated(0.15), after: 1.0) { item in\n item.content.myProperty = true\n }\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "\nAllows you to update the displayed item via the provided closure, with an optional\nanimation or delay.\n\nNote that the `update` callback is invoked after the provided `delay`, and\nis passed the value of the `Item` at that point in time.\n\n```\nfunc wasSelected() {\n self.update(animation: .animated(0.15), after: 1.0) { item in\n item.content.myProperty = true\n }\n}\n```", - "key.doc.declaration" : "public func update(animation: ViewAnimation = .default, after delay: TimeInterval = 0, update: @escaping (inout Item) -> ())", - "key.doc.discussion" : [ - { - "Para" : "Note that the `update` callback is invoked after the provided `delay`, and is passed the value of the `Item` at that point in time." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "update(animation:after:update:)<\/Name>s:10ListableUI29ItemContentCoordinatorActionsC6update9animation5afterADyAA13ViewAnimationO_SdyAA0C0VyxGzctF<\/USR>public func update(animation: ViewAnimation = .default, after delay: TimeInterval = 0, update: @escaping (inout Item<Content>) -> ())<\/Declaration>Allows you to update the displayed item via the provided closure, with an optional animation or delay.<\/Para><\/Abstract>Note that the update<\/codeVoice> callback is invoked after the provided delay<\/codeVoice>, and is passed the value of the Item<\/codeVoice> at that point in time.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 165, - "key.doc.name" : "update(animation:after:update:)", - "key.doc.type" : "Function", - "key.doclength" : 481, - "key.docoffset" : 4936, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> update<\/decl.name>(animation<\/decl.var.parameter.argument_label>: ViewAnimation<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>, after<\/decl.var.parameter.argument_label> delay<\/decl.var.parameter.name>: TimeInterval<\/ref.typealias><\/decl.var.parameter.type> = 0<\/decl.var.parameter>, update<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 588, - "key.line" : 165, - "key.modulename" : "ListableUI", - "key.name" : "update(animation:after:update:)", - "key.namelength" : 152, - "key.nameoffset" : 5433, - "key.offset" : 5428, - "key.parsed_declaration" : "public func update(\n animation: ViewAnimation = .default,\n after delay: TimeInterval = 0,\n update : @escaping (inout Item) -> ()\n)", - "key.parsed_scope.end" : 183, - "key.parsed_scope.start" : 165, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemContentCoordinatorActions) -> (ViewAnimation, Double, @escaping (inout Item) -> ()) -> ()", - "key.typeusr" : "$s9animation5after6updatey10ListableUI13ViewAnimationO_SdyAD4ItemVyxGzctcD", - "key.usr" : "s:10ListableUI29ItemContentCoordinatorActionsC6update9animation5afterADyAA13ViewAnimationO_SdyAA0C0VyxGzctF" - } - ], - "key.typename" : "ItemContentCoordinatorActions.Type", - "key.typeusr" : "$s10ListableUI29ItemContentCoordinatorActionsCyxGmD", - "key.usr" : "s:10ListableUI29ItemContentCoordinatorActionsC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class ItemContentCoordinatorInfo<Content> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 6094 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6087 - } - ], - "key.bodylength" : 659, - "key.bodyoffset" : 6155, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Information about the current and original state of the item.", - "key.doc.column" : 20, - "key.doc.comment" : "Information about the current and original state of the item.", - "key.doc.declaration" : "public final class ItemContentCoordinatorInfo where Content : ListableUI.ItemContent", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "ItemContentCoordinatorInfo<\/Name>s:10ListableUI26ItemContentCoordinatorInfoC<\/USR>public final class ItemContentCoordinatorInfo<Content> where Content : ListableUI.ItemContent<\/Declaration>Information about the current and original state of the item.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 188, - "key.doc.name" : "ItemContentCoordinatorInfo", - "key.doc.type" : "Class", - "key.doclength" : 66, - "key.docoffset" : 6021, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemContentCoordinatorInfo<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 715, - "key.line" : 188, - "key.modulename" : "ListableUI", - "key.name" : "ItemContentCoordinatorInfo", - "key.namelength" : 26, - "key.nameoffset" : 6106, - "key.offset" : 6100, - "key.parsed_declaration" : "public final class ItemContentCoordinatorInfo", - "key.parsed_scope.end" : 209, - "key.parsed_scope.start" : 188, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 47, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 6141 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 188, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 6133, - "key.offset" : 6133, - "key.parsed_declaration" : "public final class ItemContentCoordinatorInfopublic internal(set) var original: Item<\/Type><Content<\/Type>> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.internal", - "key.length" : 13, - "key.offset" : 6358 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6351 - } - ], - "key.column" : 30, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The original state of the item, as passed to the list.\nThis is property is updated when the list is updated, and the\n`isEquivalent(to:)` reports a change to the item.", - "key.doc.column" : 30, - "key.doc.comment" : "The original state of the item, as passed to the list.\nThis is property is updated when the list is updated, and the\n`isEquivalent(to:)` reports a change to the item.", - "key.doc.declaration" : "public internal(set) var original: Item { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "original<\/Name>s:10ListableUI26ItemContentCoordinatorInfoC8originalAA0C0VyxGvp<\/USR>public internal(set) var original: Item<Content> { get }<\/Declaration>The original state of the item, as passed to the list. This is property is updated when the list is updated, and the isEquivalent(to:)<\/codeVoice> reports a change to the item.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 193, - "key.doc.name" : "original", - "key.doc.type" : "Other", - "key.doclength" : 187, - "key.docoffset" : 6160, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> internal<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> original<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 193, - "key.modulename" : "ListableUI", - "key.name" : "original", - "key.namelength" : 8, - "key.nameoffset" : 6376, - "key.offset" : 6372, - "key.parsed_declaration" : "public internal(set) var original : Item", - "key.parsed_scope.end" : 193, - "key.parsed_scope.start" : 193, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI26ItemContentCoordinatorInfoC8originalAA0C0VyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var current: Item<\/Type><Content<\/Type>> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6507 - } - ], - "key.bodylength" : 36, - "key.bodyoffset" : 6543, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The current value of the item, including changes made\nby the coordinator itself.", - "key.doc.column" : 16, - "key.doc.comment" : "The current value of the item, including changes made\nby the coordinator itself.", - "key.doc.declaration" : "public var current: Item { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "current<\/Name>s:10ListableUI26ItemContentCoordinatorInfoC7currentAA0C0VyxGvp<\/USR>public var current: Item<Content> { get }<\/Declaration>The current value of the item, including changes made by the coordinator itself.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 197, - "key.doc.name" : "current", - "key.doc.type" : "Other", - "key.doclength" : 93, - "key.docoffset" : 6410, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> current<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 66, - "key.line" : 197, - "key.modulename" : "ListableUI", - "key.name" : "current", - "key.namelength" : 7, - "key.nameoffset" : 6518, - "key.offset" : 6514, - "key.parsed_declaration" : "public var current : Item", - "key.parsed_scope.end" : 199, - "key.parsed_scope.start" : 197, - "key.reusingastcontext" : false, - "key.typename" : "Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGD", - "key.usr" : "s:10ListableUI26ItemContentCoordinatorInfoC7currentAA0C0VyxGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let currentProvider: () -> Item<\/Type><Content<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6590 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> currentProvider<\/decl.name>: () -> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 201, - "key.modulename" : "ListableUI", - "key.name" : "currentProvider", - "key.namelength" : 15, - "key.nameoffset" : 6602, - "key.offset" : 6598, - "key.parsed_declaration" : "private let currentProvider : () -> Item", - "key.parsed_scope.end" : 201, - "key.parsed_scope.start" : 201, - "key.reusingastcontext" : false, - "key.typename" : "() -> Item", - "key.typeusr" : "$s10ListableUI4ItemVyxGycD", - "key.usr" : "s:10ListableUI26ItemContentCoordinatorInfoC15currentProvider33_8F0E9940DA079D8843210E4978EC0DE9LLAA0C0VyxGycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(original: Item<\/Type><Content<\/Type>>, current: @escaping () -> Item<\/Type><Content<\/Type>>)<\/Declaration>", - "key.bodylength" : 86, - "key.bodyoffset" : 6726, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(original<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, current<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 164, - "key.line" : 203, - "key.modulename" : "ListableUI", - "key.name" : "init(original:current:)", - "key.namelength" : 71, - "key.nameoffset" : 6649, - "key.offset" : 6649, - "key.parsed_declaration" : "init(original : Item, current : @escaping () -> Item)", - "key.parsed_scope.end" : 208, - "key.parsed_scope.start" : 203, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ItemContentCoordinatorInfo.Type) -> (Item, @escaping () -> Item) -> ItemContentCoordinatorInfo", - "key.typeusr" : "$s8original7current10ListableUI26ItemContentCoordinatorInfoCyxGAC0E0VyxG_AIyctcD", - "key.usr" : "s:10ListableUI26ItemContentCoordinatorInfoC8original7currentACyxGAA0C0VyxG_AIyctcfc" - } - ], - "key.typename" : "ItemContentCoordinatorInfo.Type", - "key.typeusr" : "$s10ListableUI26ItemContentCoordinatorInfoCyxGmD", - "key.usr" : "s:10ListableUI26ItemContentCoordinatorInfoC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class DefaultItemContentCoordinator<Content> : ItemContentCoordinator<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 6894 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6887 - } - ], - "key.bodylength" : 276, - "key.bodyoffset" : 6983, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default `ItemContentCoordinator`, which performs no actions.", - "key.doc.column" : 20, - "key.doc.comment" : "The default `ItemContentCoordinator`, which performs no actions.", - "key.doc.declaration" : "public final class DefaultItemContentCoordinator : ItemContentCoordinator where Content : ListableUI.ItemContent", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "DefaultItemContentCoordinator<\/Name>s:10ListableUI29DefaultItemContentCoordinatorC<\/USR>public final class DefaultItemContentCoordinator<Content> : ItemContentCoordinator where Content : ListableUI.ItemContent<\/Declaration>The default ItemContentCoordinator<\/codeVoice>, which performs no actions.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 213, - "key.doc.name" : "DefaultItemContentCoordinator", - "key.doc.type" : "Class", - "key.doclength" : 69, - "key.docoffset" : 6818, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 22, - "key.offset" : 6959 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DefaultItemContentCoordinator<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : ItemContentCoordinator<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContentCoordinator" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 360, - "key.line" : 213, - "key.modulename" : "ListableUI", - "key.name" : "DefaultItemContentCoordinator", - "key.namelength" : 29, - "key.nameoffset" : 6906, - "key.offset" : 6900, - "key.parsed_declaration" : "public final class DefaultItemContentCoordinator : ItemContentCoordinator", - "key.parsed_scope.end" : 225, - "key.parsed_scope.start" : 213, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 50, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 6944 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 213, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 6936, - "key.offset" : 6936, - "key.parsed_declaration" : "public final class DefaultItemContentCoordinatorpublic let actions: Content<\/Type>.CoordinatorActions<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6988 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The available actions you can perform on the coordinated `Item`. Eg, updating it to a new value.", - "key.doc.column" : 9, - "key.doc.declaration" : "var actions: ItemContentType.CoordinatorActions { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp<\/USR>var actions: ItemContentType.CoordinatorActions { get }<\/Declaration>The available actions you can perform on the coordinated Item<\/codeVoice>. Eg, updating it to a new value.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 68, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: Content<\/ref.generic_type_param>.CoordinatorActions<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 215, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 6999, - "key.offset" : 6995, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp" - } - ], - "key.parsed_declaration" : "public let actions : Content.CoordinatorActions", - "key.parsed_scope.end" : 215, - "key.parsed_scope.start" : 215, - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorActions", - "key.typeusr" : "$s10ListableUI29ItemContentCoordinatorActionsCyxGD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let info: Content<\/Type>.CoordinatorInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7040 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Info about the coordinated `Item`, such as its original and current value.", - "key.doc.column" : 9, - "key.doc.declaration" : "var info: ItemContentType.CoordinatorInfo { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.doc.full_as_xml" : "info<\/Name>s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp<\/USR>var info: ItemContentType.CoordinatorInfo { get }<\/Declaration>Info about the coordinated Item<\/codeVoice>, such as its original and current value.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 71, - "key.doc.name" : "info", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> info<\/decl.name>: Content<\/ref.generic_type_param>.CoordinatorInfo<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 216, - "key.modulename" : "ListableUI", - "key.name" : "info", - "key.namelength" : 4, - "key.nameoffset" : 7051, - "key.offset" : 7047, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp" - } - ], - "key.parsed_declaration" : "public let info : Content.CoordinatorInfo", - "key.parsed_scope.end" : 216, - "key.parsed_scope.start" : 216, - "key.reusingastcontext" : false, - "key.typename" : "ItemContentCoordinatorInfo", - "key.typeusr" : "$s10ListableUI26ItemContentCoordinatorInfoCyxGD", - "key.usr" : "s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal init(actions: Content<\/Type>.CoordinatorActions<\/Type>, info: Content<\/Type>.CoordinatorInfo<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 7091 - } - ], - "key.bodylength" : 61, - "key.bodyoffset" : 7196, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(actions<\/decl.var.parameter.argument_label>: Content<\/ref.generic_type_param>.CoordinatorActions<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: Content<\/ref.generic_type_param>.CoordinatorInfo<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 158, - "key.line" : 218, - "key.modulename" : "ListableUI", - "key.name" : "init(actions:info:)", - "key.namelength" : 94, - "key.nameoffset" : 7100, - "key.offset" : 7100, - "key.parsed_declaration" : "internal init(\n actions: Content.CoordinatorActions,\n info: Content.CoordinatorInfo\n)", - "key.parsed_scope.end" : 224, - "key.parsed_scope.start" : 218, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DefaultItemContentCoordinator.Type) -> (ItemContentCoordinatorActions, ItemContentCoordinatorInfo) -> DefaultItemContentCoordinator", - "key.typeusr" : "$s7actions4info10ListableUI29DefaultItemContentCoordinatorCyxGAC0fgH7ActionsCyxG_AC0fgH4InfoCyxGtcD", - "key.usr" : "s:10ListableUI29DefaultItemContentCoordinatorC7actions4infoACyxGAA0deF7ActionsCyxG_AA0deF4InfoCyxGtcfc" - } - ], - "key.typename" : "DefaultItemContentCoordinator.Type", - "key.typeusr" : "$s10ListableUI29DefaultItemContentCoordinatorCyxGmD", - "key.usr" : "s:10ListableUI29DefaultItemContentCoordinatorC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3482, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemInsertAndRemoveAnimations<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 392 - } - ], - "key.bodylength" : 613, - "key.bodyoffset" : 437, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the animations that are displayed when an item is inserted into, or removed from, a list.\n\n### Note\nIf `UIAccessibility.isReduceMotionEnabled` is `true`, animations will fall\nback to a `.fade` style animation when displayed by the list view.", - "key.doc.column" : 15, - "key.doc.comment" : "Controls the animations that are displayed when an item is inserted into, or removed from, a list.\n\n### Note\nIf `UIAccessibility.isReduceMotionEnabled` is `true`, animations will fall\nback to a `.fade` style animation when displayed by the list view.", - "key.doc.declaration" : "public struct ItemInsertAndRemoveAnimations", - "key.doc.discussion" : [ - { - "Para" : "If `UIAccessibility.isReduceMotionEnabled` is `true`, animations will fall back to a `.fade` style animation when displayed by the list view." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.doc.full_as_xml" : "ItemInsertAndRemoveAnimations<\/Name>s:10ListableUI29ItemInsertAndRemoveAnimationsV<\/USR>public struct ItemInsertAndRemoveAnimations<\/Declaration>Controls the animations that are displayed when an item is inserted into, or removed from, a list.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>If UIAccessibility.isReduceMotionEnabled<\/codeVoice> is true<\/codeVoice>, animations will fall back to a .fade<\/codeVoice> style animation when displayed by the list view.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 16, - "key.doc.name" : "ItemInsertAndRemoveAnimations", - "key.doc.type" : "Class", - "key.doclength" : 270, - "key.docoffset" : 122, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemInsertAndRemoveAnimations<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 652, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "ItemInsertAndRemoveAnimations", - "key.namelength" : 29, - "key.nameoffset" : 406, - "key.offset" : 399, - "key.parsed_declaration" : "public struct ItemInsertAndRemoveAnimations", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ItemInsertAndRemoveAnimations<\/Type>.Prepare = (inout ListContentLayoutAttributes<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 442 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ItemInsertAndRemoveAnimations<\/ref.struct>.Prepare<\/decl.name> = (inout<\/syntaxtype.keyword> ListContentLayoutAttributes<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 61, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "Prepare", - "key.namelength" : 7, - "key.nameoffset" : 459, - "key.offset" : 449, - "key.parsed_declaration" : "public typealias Prepare = (inout ListContentLayoutAttributes) -> ()", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.typename" : "((inout ListContentLayoutAttributes) -> ()).Type", - "key.typeusr" : "$sy10ListableUI27ListContentLayoutAttributesVzcmD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV7Preparea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var name: String<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 520 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> name<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "name", - "key.namelength" : 4, - "key.nameoffset" : 531, - "key.offset" : 527, - "key.parsed_declaration" : "public var name : String", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV4nameSSvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onInsert: Prepare<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 554 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onInsert<\/decl.name>: Prepare<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "onInsert", - "key.namelength" : 8, - "key.nameoffset" : 565, - "key.offset" : 561, - "key.parsed_declaration" : "public var onInsert : Prepare", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(inout ListContentLayoutAttributes) -> ()", - "key.typeusr" : "$syy10ListableUI27ListContentLayoutAttributesVzcD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV02onD0yyAA27ListContentLayoutAttributesVzcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onRemoval: Prepare<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 588 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onRemoval<\/decl.name>: Prepare<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "onRemoval", - "key.namelength" : 9, - "key.nameoffset" : 599, - "key.offset" : 595, - "key.parsed_declaration" : "public var onRemoval : Prepare", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(inout ListContentLayoutAttributes) -> ()", - "key.typeusr" : "$syy10ListableUI27ListContentLayoutAttributesVzcD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV9onRemovalyyAA27ListContentLayoutAttributesVzcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(name: String<\/Type>, onInsert: @escaping Prepare<\/Type>, onRemoval: @escaping Prepare<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 628 - } - ], - "key.bodylength" : 98, - "key.bodyoffset" : 747, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(name<\/decl.var.parameter.argument_label>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, onInsert<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Prepare<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, onRemoval<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Prepare<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 211, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "init(name:onInsert:onRemoval:)", - "key.namelength" : 110, - "key.nameoffset" : 635, - "key.offset" : 635, - "key.parsed_declaration" : "public init(\n name : String,\n onInsert : @escaping Prepare,\n onRemoval : @escaping Prepare\n)", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 25, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(name:attributes:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemInsertAndRemoveAnimations.Type) -> (String, @escaping (inout ListContentLayoutAttributes) -> (), @escaping (inout ListContentLayoutAttributes) -> ()) -> ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s4name8onInsert0B7Removal10ListableUI04ItemC19AndRemoveAnimationsVSS_yAD27ListContentLayoutAttributesVzcyAHzctcD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV4name02onD00I7RemovalACSS_yAA27ListContentLayoutAttributesVzcyAHzctcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(name: String<\/Type>, attributes: @escaping Prepare<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 856 - } - ], - "key.bodylength" : 110, - "key.bodyoffset" : 938, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(name<\/decl.var.parameter.argument_label>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, attributes<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Prepare<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 186, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "init(name:attributes:)", - "key.namelength" : 73, - "key.nameoffset" : 863, - "key.offset" : 863, - "key.parsed_declaration" : "public init(\n name : String,\n attributes : @escaping Prepare\n)", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 35, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(name:onInsert:onRemoval:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemInsertAndRemoveAnimations.Type) -> (String, @escaping (inout ListContentLayoutAttributes) -> ()) -> ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s4name10attributes10ListableUI29ItemInsertAndRemoveAnimationsVSS_yAC27ListContentLayoutAttributesVzctcD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV4name10attributesACSS_yAA27ListContentLayoutAttributesVzctcfc" - } - ], - "key.typename" : "ItemInsertAndRemoveAnimations.Type", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVmD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemInsertAndRemoveAnimations<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1054 - } - ], - "key.bodylength" : 2378, - "key.bodyoffset" : 1102, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the animations that are displayed when an item is inserted into, or removed from, a list.\n\n### Note\nIf `UIAccessibility.isReduceMotionEnabled` is `true`, animations will fall\nback to a `.fade` style animation when displayed by the list view.", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ItemInsertAndRemoveAnimations", - "key.doc.discussion" : [ - { - "Para" : "If `UIAccessibility.isReduceMotionEnabled` is `true`, animations will fall back to a `.fade` style animation when displayed by the list view." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.doc.full_as_xml" : "ItemInsertAndRemoveAnimations<\/Name>s:10ListableUI29ItemInsertAndRemoveAnimationsV<\/USR>public struct ItemInsertAndRemoveAnimations<\/Declaration>Controls the animations that are displayed when an item is inserted into, or removed from, a list.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>If UIAccessibility.isReduceMotionEnabled<\/codeVoice> is true<\/codeVoice>, animations will fall back to a .fade<\/codeVoice> style animation when displayed by the list view.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 16, - "key.doc.name" : "ItemInsertAndRemoveAnimations", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemInsertAndRemoveAnimations<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2420, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "ItemInsertAndRemoveAnimations", - "key.namelength" : 29, - "key.nameoffset" : 1071, - "key.offset" : 1061, - "key.parsed_declaration" : "public extension ItemInsertAndRemoveAnimations", - "key.parsed_scope.end" : 144, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var fade: `Self` { get }<\/Declaration>", - "key.bodylength" : 195, - "key.bodyoffset" : 1131, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> fade<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 220, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "fade", - "key.namelength" : 4, - "key.nameoffset" : 1118, - "key.offset" : 1107, - "key.parsed_declaration" : "static var fade : Self", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.typename" : "ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV4fadeACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var right: `Self` { get }<\/Declaration>", - "key.bodylength" : 300, - "key.bodyoffset" : 1362, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> right<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 326, - "key.line" : 61, - "key.modulename" : "ListableUI", - "key.name" : "right", - "key.namelength" : 5, - "key.nameoffset" : 1348, - "key.offset" : 1337, - "key.parsed_declaration" : "static var right : Self", - "key.parsed_scope.end" : 73, - "key.parsed_scope.start" : 61, - "key.reusingastcontext" : false, - "key.typename" : "ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV5rightACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var left: `Self` { get }<\/Declaration>", - "key.bodylength" : 299, - "key.bodyoffset" : 1697, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> left<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 324, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "left", - "key.namelength" : 4, - "key.nameoffset" : 1684, - "key.offset" : 1673, - "key.parsed_declaration" : "static var left : Self", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 75, - "key.reusingastcontext" : false, - "key.typename" : "ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV4leftACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var top: `Self` { get }<\/Declaration>", - "key.bodylength" : 300, - "key.bodyoffset" : 2030, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> top<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 324, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "top", - "key.namelength" : 3, - "key.nameoffset" : 2018, - "key.offset" : 2007, - "key.parsed_declaration" : "static var top : Self", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 89, - "key.reusingastcontext" : false, - "key.typename" : "ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV3topACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var bottom: `Self` { get }<\/Declaration>", - "key.bodylength" : 303, - "key.bodyoffset" : 2367, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bottom<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 330, - "key.line" : 103, - "key.modulename" : "ListableUI", - "key.name" : "bottom", - "key.namelength" : 6, - "key.nameoffset" : 2352, - "key.offset" : 2341, - "key.parsed_declaration" : "static var bottom : Self", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 103, - "key.reusingastcontext" : false, - "key.typename" : "ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV6bottomACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var scaleDown: `Self` { get }<\/Declaration>", - "key.bodylength" : 366, - "key.bodyoffset" : 2710, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scaleDown<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 396, - "key.line" : 117, - "key.modulename" : "ListableUI", - "key.name" : "scaleDown", - "key.namelength" : 9, - "key.nameoffset" : 2692, - "key.offset" : 2681, - "key.parsed_declaration" : "static var scaleDown : Self", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 117, - "key.reusingastcontext" : false, - "key.typename" : "ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV9scaleDownACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var scaleUp: `Self` { get }<\/Declaration>", - "key.bodylength" : 364, - "key.bodyoffset" : 3114, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scaleUp<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 392, - "key.line" : 131, - "key.modulename" : "ListableUI", - "key.name" : "scaleUp", - "key.namelength" : 7, - "key.nameoffset" : 3098, - "key.offset" : 3087, - "key.parsed_declaration" : "static var scaleUp : Self", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.typename" : "ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV7scaleUpACvpZ" - } - ], - "key.typename" : "ItemInsertAndRemoveAnimations.Type", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVmD", - "key.usr" : "s:10ListableUI29ItemInsertAndRemoveAnimationsV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3634, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemLayouts<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1433 - } - ], - "key.bodylength" : 1245, - "key.bodyoffset" : 1460, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`ItemLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your item:\n\n```\nmyItem.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `Item` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyItem.layouts.table = .init(\n width: .fill\n)\n\nmyItem.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `ItemLayouts`,\nto provide easier access to your layout-specific `ItemLayoutsValue` type, like so:\n\n```\nextension ItemLayoutsValue {\n public var table : TableAppearance.Item.Layout {\n get { self[TableAppearance.Item.Layout.self] }\n set { self[TableAppearance.Item.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.comment" : "\n`ItemLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your item:\n\n```\nmyItem.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `Item` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyItem.layouts.table = .init(\n width: .fill\n)\n\nmyItem.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `ItemLayouts`,\nto provide easier access to your layout-specific `ItemLayoutsValue` type, like so:\n\n```\nextension ItemLayoutsValue {\n public var table : TableAppearance.Item.Layout {\n get { self[TableAppearance.Item.Layout.self] }\n set { self[TableAppearance.Item.Layout.self] = newValue }\n }\n}\n```", - "key.doc.declaration" : "public struct ItemLayouts", - "key.doc.discussion" : [ - { - "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your item:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "And then, when the `Item` is used within a `.table` style list layout, the provided layout will be used." - }, - { - "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When implementing your own custom layout, you should add an extension to `ItemLayouts`, to provide easier access to your layout-specific `ItemLayoutsValue` type, like so:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "ItemLayouts<\/Name>s:10ListableUI11ItemLayoutsV<\/USR>public struct ItemLayouts<\/Declaration>ItemLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your item:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Item<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to ItemLayouts<\/codeVoice>, to provide easier access to your layout-specific ItemLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 54, - "key.doc.name" : "ItemLayouts", - "key.doc.type" : "Class", - "key.doclength" : 1324, - "key.docoffset" : 109, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayouts<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1266, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayouts", - "key.namelength" : 11, - "key.nameoffset" : 1447, - "key.offset" : 1440, - "key.parsed_declaration" : "public struct ItemLayouts", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 54, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1602 - } - ], - "key.bodylength" : 70, - "key.bodyoffset" : 1674, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new instance of the layouts, with an optional `configure`\nclosure, to allow you to set up styling inline.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new instance of the layouts, with an optional `configure`\nclosure, to allow you to set up styling inline.", - "key.doc.declaration" : "public init(_ configure: (inout `Self`) -> () = { _ in })", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI11ItemLayoutsVyACyACzXEcfc<\/USR>public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>Creates a new instance of the layouts, with an optional configure<\/codeVoice> closure, to allow you to set up styling inline.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 58, - "key.doc.name" : "init(_:)", - "key.doc.type" : "Function", - "key.doclength" : 128, - "key.docoffset" : 1470, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 136, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 63, - "key.nameoffset" : 1609, - "key.offset" : 1609, - "key.parsed_declaration" : "public init(\n _ configure : (inout Self) -> () = { _ in }\n)", - "key.parsed_scope.end" : 64, - "key.parsed_scope.start" : 58, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemLayouts.Type) -> ((inout ItemLayouts) -> ()) -> ItemLayouts", - "key.typeusr" : "$sy10ListableUI11ItemLayoutsVyACzXEcD", - "key.usr" : "s:10ListableUI11ItemLayoutsVyACyACzXEcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var storage: ContentLayoutsStorage<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1755 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> storage<\/decl.name>: ContentLayoutsStorage<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "storage", - "key.namelength" : 7, - "key.nameoffset" : 1767, - "key.offset" : 1763, - "key.parsed_declaration" : "private var storage : ContentLayoutsStorage", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ContentLayoutsStorage", - "key.typeusr" : "$s10ListableUI21ContentLayoutsStorageVD", - "key.usr" : "s:10ListableUI11ItemLayoutsV7storage33_72313C9ECF60BD4A9EA46928C34A7FB6LLAA07ContentD7StorageVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public subscript<ValueType>(valueType: ValueType<\/Type>.Type) -> ValueType<\/Type> where ValueType<\/Type> : ItemLayoutsValue<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2473 - } - ], - "key.bodylength" : 141, - "key.bodyoffset" : 2562, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows accessing the various `ItemLayoutsValue`s stored within the object.\nThis method will return the `defaultValue` for a value if none is set.\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `ItemLayouts`,\nto provide easier access to your layout-specific `ItemLayoutsValue` type.\n\n```\nextension ItemLayoutsValue {\n public var table : TableAppearance.Item.Layout {\n get { self[TableAppearance.Item.Layout.self] }\n set { self[TableAppearance.Item.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 12, - "key.doc.comment" : "Allows accessing the various `ItemLayoutsValue`s stored within the object.\nThis method will return the `defaultValue` for a value if none is set.\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `ItemLayouts`,\nto provide easier access to your layout-specific `ItemLayoutsValue` type.\n\n```\nextension ItemLayoutsValue {\n public var table : TableAppearance.Item.Layout {\n get { self[TableAppearance.Item.Layout.self] }\n set { self[TableAppearance.Item.Layout.self] = newValue }\n }\n}\n```", - "key.doc.declaration" : "public subscript(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.ItemLayoutsValue { get set }", - "key.doc.discussion" : [ - { - "Para" : "When implementing your own custom layout, you should add an extension to `ItemLayouts`, to provide easier access to your layout-specific `ItemLayoutsValue` type." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:10ListableUI11ItemLayoutsVyxxmcAA0cD5ValueRzluip<\/USR>public subscript<ValueType>(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.ItemLayoutsValue { get set }<\/Declaration>Allows accessing the various ItemLayoutsValue<\/codeVoice>s stored within the object. This method will return the defaultValue<\/codeVoice> for a value if none is set.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to ItemLayouts<\/codeVoice>, to provide easier access to your layout-specific ItemLayoutsValue<\/codeVoice> type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 84, - "key.doc.name" : "subscript(_:)", - "key.doc.type" : "Other", - "key.doclength" : 661, - "key.docoffset" : 1808, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ValueType<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> ValueType<\/ref.generic_type_param> : ItemLayoutsValue<\/ref.protocol><\/decl.generic_type_requirement> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>", - "key.kind" : "source.lang.swift.decl.function.subscript", - "key.length" : 224, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "subscript(_:)", - "key.namelength" : 67, - "key.nameoffset" : 2480, - "key.offset" : 2480, - "key.parsed_declaration" : "public subscript(_ valueType : ValueType.Type) -> ValueType", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 84, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.substructure" : [ - { - "key.annotated_decl" : "ValueType : ItemLayoutsValue<\/Type><\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 2500 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name> : ItemLayoutsValue<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 26, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "ValueType", - "key.namelength" : 9, - "key.nameoffset" : 2490, - "key.offset" : 2490, - "key.parsed_declaration" : "public subscript (ValueType.Type) -> ValueType", - "key.typeusr" : "$syxxmc10ListableUI16ItemLayoutsValueRzluD", - "key.usr" : "s:10ListableUI11ItemLayoutsVyxxmcAA0cD5ValueRzluip" - } - ], - "key.typename" : "ItemLayouts.Type", - "key.typeusr" : "$s10ListableUI11ItemLayoutsVmD", - "key.usr" : "s:10ListableUI11ItemLayoutsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ItemLayoutsValue<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3233 - } - ], - "key.bodylength" : 122, - "key.bodyoffset" : 3267, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `ItemLayoutsValue` protocol provides a default value for the different layouts stored\nwithin `ItemLayouts`. Provide a `defaultValue` with reasonable defaults, as the\ndeveloper should not need to set these values at all times when using your layout.\n\n```\npublic struct Layout : Equatable, ItemLayoutsValue\n{\n public var width : CGFloat\n public var minHeight : CGFloat\n\n ...\n\n public static var defaultValue : Self {\n ...\n }\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "\nThe `ItemLayoutsValue` protocol provides a default value for the different layouts stored\nwithin `ItemLayouts`. Provide a `defaultValue` with reasonable defaults, as the\ndeveloper should not need to set these values at all times when using your layout.\n\n```\npublic struct Layout : Equatable, ItemLayoutsValue\n{\n public var width : CGFloat\n public var minHeight : CGFloat\n\n ...\n\n public static var defaultValue : Self {\n ...\n }\n}\n```", - "key.doc.declaration" : "public protocol ItemLayoutsValue", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "ItemLayoutsValue<\/Name>s:10ListableUI16ItemLayoutsValueP<\/USR>public protocol ItemLayoutsValue<\/Declaration>The ItemLayoutsValue<\/codeVoice> protocol provides a default value for the different layouts stored within ItemLayouts<\/codeVoice>. Provide a defaultValue<\/codeVoice> with reasonable defaults, as the developer should not need to set these values at all times when using your layout.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 109, - "key.doc.name" : "ItemLayoutsValue", - "key.doc.type" : "Class", - "key.doclength" : 524, - "key.docoffset" : 2709, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemLayoutsValue<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 150, - "key.line" : 109, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayoutsValue", - "key.namelength" : 16, - "key.nameoffset" : 3249, - "key.offset" : 3240, - "key.parsed_declaration" : "public protocol ItemLayoutsValue", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 109, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var defaultValue: Self<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3382, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.comment" : "The default value used when accessing the value, if none is set.", - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.doclength" : 69, - "key.docoffset" : 3277, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 38, - "key.line" : 112, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 3361, - "key.offset" : 3350, - "key.parsed_declaration" : "static var defaultValue : Self", - "key.parsed_scope.end" : 112, - "key.parsed_scope.start" : 112, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI16ItemLayoutsValueP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ" - } - ], - "key.typename" : "ItemLayoutsValue.Type", - "key.typeusr" : "$s10ListableUI16ItemLayoutsValue_pmD", - "key.usr" : "s:10ListableUI16ItemLayoutsValueP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct EmptyItemLayoutsValue : ItemLayoutsValue<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3462 - } - ], - "key.bodylength" : 114, - "key.bodyoffset" : 3518, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Use this type if you have no `ItemLayout` for your `ListLayout`.", - "key.doc.column" : 15, - "key.doc.comment" : "Use this type if you have no `ItemLayout` for your `ListLayout`.", - "key.doc.declaration" : "public struct EmptyItemLayoutsValue : ItemLayoutsValue", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "EmptyItemLayoutsValue<\/Name>s:10ListableUI21EmptyItemLayoutsValueV<\/USR>public struct EmptyItemLayoutsValue : ItemLayoutsValue<\/Declaration>Use this type if you have no ItemLayout<\/codeVoice> for your ListLayout<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 117, - "key.doc.name" : "EmptyItemLayoutsValue", - "key.doc.type" : "Class", - "key.doclength" : 69, - "key.docoffset" : 3393, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 3500 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> EmptyItemLayoutsValue<\/decl.name> : ItemLayoutsValue<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 164, - "key.line" : 117, - "key.modulename" : "ListableUI", - "key.name" : "EmptyItemLayoutsValue", - "key.namelength" : 21, - "key.nameoffset" : 3476, - "key.offset" : 3469, - "key.parsed_declaration" : "public struct EmptyItemLayoutsValue : ItemLayoutsValue", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 117, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3528 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 3543, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 9, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 3535, - "key.offset" : 3535, - "key.parsed_declaration" : "public init()", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.typename" : "(EmptyItemLayoutsValue.Type) -> () -> EmptyItemLayoutsValue", - "key.typeusr" : "$s10ListableUI21EmptyItemLayoutsValueVycD", - "key.usr" : "s:10ListableUI21EmptyItemLayoutsValueVACycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: EmptyItemLayoutsValue<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3554 - } - ], - "key.bodylength" : 21, - "key.bodyoffset" : 3609, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from ItemLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: EmptyItemLayoutsValue<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 70, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 3572, - "key.offset" : 3561, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue: EmptyItemLayoutsValue", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.typename" : "EmptyItemLayoutsValue", - "key.typeusr" : "$s10ListableUI21EmptyItemLayoutsValueVD", - "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ" - } - ], - "key.typename" : "EmptyItemLayoutsValue.Type", - "key.typeusr" : "$s10ListableUI21EmptyItemLayoutsValueVmD", - "key.usr" : "s:10ListableUI21EmptyItemLayoutsValueV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemPosition.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 206, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ItemPosition<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 111 - } - ], - "key.bodylength" : 67, - "key.bodyoffset" : 137, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemPosition.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ItemPosition<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 87, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ItemPosition", - "key.namelength" : 12, - "key.nameoffset" : 123, - "key.offset" : 118, - "key.parsed_declaration" : "public enum ItemPosition", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 142, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case single<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> single<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "single", - "key.namelength" : 6, - "key.nameoffset" : 147, - "key.offset" : 147, - "key.parsed_declaration" : "case single", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "(ItemPosition.Type) -> ItemPosition", - "key.typeusr" : "$sy10ListableUI12ItemPositionOACmcD", - "key.usr" : "s:10ListableUI12ItemPositionO6singleyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 10, - "key.offset" : 163, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case first<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> first<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 5, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "first", - "key.namelength" : 5, - "key.nameoffset" : 168, - "key.offset" : 168, - "key.parsed_declaration" : "case first", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "(ItemPosition.Type) -> ItemPosition", - "key.typeusr" : "$sy10ListableUI12ItemPositionOACmcD", - "key.usr" : "s:10ListableUI12ItemPositionO5firstyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 178, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case middle<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> middle<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "middle", - "key.namelength" : 6, - "key.nameoffset" : 183, - "key.offset" : 183, - "key.parsed_declaration" : "case middle", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "(ItemPosition.Type) -> ItemPosition", - "key.typeusr" : "$sy10ListableUI12ItemPositionOACmcD", - "key.usr" : "s:10ListableUI12ItemPositionO6middleyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 194, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case last<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> last<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "last", - "key.namelength" : 4, - "key.nameoffset" : 199, - "key.offset" : 199, - "key.parsed_declaration" : "case last", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "(ItemPosition.Type) -> ItemPosition", - "key.typeusr" : "$sy10ListableUI12ItemPositionOACmcD", - "key.usr" : "s:10ListableUI12ItemPositionO4lastyA2CmF" - } - ] - } - ], - "key.typename" : "ItemPosition.Type", - "key.typeusr" : "$s10ListableUI12ItemPositionOmD", - "key.usr" : "s:10ListableUI12ItemPositionO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 10754, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemReordering<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1321 - } - ], - "key.bodylength" : 694, - "key.bodyoffset" : 1351, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides configuration options to control how an ``Item`` can be reordered within a list.\n\nTo enable reordering on your ``Item``, assign the ``Item\/reordering`` property,\nconfigured as you need to control where the item can be reordered to.\n\nIn the example below, we set a ``ItemReordering`` config which allows\nreordering the item within the current section, and when the reorder completes,\na controller is called to update the underlying data model.\n```swift\nitem.reordering = .init(sections: .current)\n\nitem.onWasReordered = { result in\n myController.move(from: result.from, to: result.to)\n}\n```\n\nIf you have many items, providing a ``Item\/onWasReordered-swift.property`` callback for every item can be tedious.\n\nIn these cases, you can instead provide a ``ListStateObserver\/onItemReordered(_:)`` callback,\nwhich receives a ``ListStateObserver\/ItemReordered`` value:\n```swift\nlist.stateObserver.onItemReordered { change in\n myController.move(from: change.result.from, to: change.result.to)\n}\n```\nFrom which you can then read any changes and pass them through to your data model.\n", - "key.doc.column" : 15, - "key.doc.comment" : "\nProvides configuration options to control how an ``Item`` can be reordered within a list.\n\nTo enable reordering on your ``Item``, assign the ``Item\/reordering`` property,\nconfigured as you need to control where the item can be reordered to.\n\nIn the example below, we set a ``ItemReordering`` config which allows\nreordering the item within the current section, and when the reorder completes,\na controller is called to update the underlying data model.\n```swift\nitem.reordering = .init(sections: .current)\n\nitem.onWasReordered = { result in\n myController.move(from: result.from, to: result.to)\n}\n```\n\nIf you have many items, providing a ``Item\/onWasReordered-swift.property`` callback for every item can be tedious.\n\nIn these cases, you can instead provide a ``ListStateObserver\/onItemReordered(_:)`` callback,\nwhich receives a ``ListStateObserver\/ItemReordered`` value:\n```swift\nlist.stateObserver.onItemReordered { change in\n myController.move(from: change.result.from, to: change.result.to)\n}\n```\nFrom which you can then read any changes and pass them through to your data model.", - "key.doc.declaration" : "public struct ItemReordering", - "key.doc.discussion" : [ - { - "Para" : "To enable reordering on your `Item`, assign the `Item\/reordering` property, configured as you need to control where the item can be reordered to." - }, - { - "Para" : "In the example below, we set a `ItemReordering` config which allows reordering the item within the current section, and when the reorder completes, a controller is called to update the underlying data model." - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you have many items, providing a `Item\/onWasReordered-swift.property` callback for every item can be tedious." - }, - { - "Para" : "In these cases, you can instead provide a `ListStateObserver\/onItemReordered(_:)` callback, which receives a `ListStateObserver\/ItemReordered` value:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "From which you can then read any changes and pass them through to your data model." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "ItemReordering<\/Name>s:10ListableUI14ItemReorderingV<\/USR>public struct ItemReordering<\/Declaration>Provides configuration options to control how an Item<\/codeVoice> can be reordered within a list.<\/Para><\/Abstract>To enable reordering on your Item<\/codeVoice>, assign the Item\/reordering<\/codeVoice> property, configured as you need to control where the item can be reordered to.<\/Para>In the example below, we set a ItemReordering<\/codeVoice> config which allows reordering the item within the current section, and when the reorder completes, a controller is called to update the underlying data model.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you have many items, providing a Item\/onWasReordered-swift.property<\/codeVoice> callback for every item can be tedious.<\/Para>In these cases, you can instead provide a ListStateObserver\/onItemReordered(_:)<\/codeVoice> callback, which receives a ListStateObserver\/ItemReordered<\/codeVoice> value:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>From which you can then read any changes and pass them through to your data model.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 40, - "key.doc.name" : "ItemReordering", - "key.doc.type" : "Class", - "key.doclength" : 1195, - "key.docoffset" : 126, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemReordering<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 718, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "ItemReordering", - "key.namelength" : 14, - "key.nameoffset" : 1335, - "key.offset" : 1328, - "key.parsed_declaration" : "public struct ItemReordering", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 37, - "key.name" : "MARK: Controlling Reordering Behavior", - "key.offset" : 1359 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sections: Sections<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1470 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The sections in which the `Item` can be reordered into.", - "key.doc.column" : 16, - "key.doc.comment" : "The sections in which the `Item` can be reordered into.", - "key.doc.declaration" : "public var sections: Sections", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "sections<\/Name>s:10ListableUI14ItemReorderingV8sectionsAC8SectionsOvp<\/USR>public var sections: Sections<\/Declaration>The sections in which the Item<\/codeVoice> can be reordered into.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 45, - "key.doc.name" : "sections", - "key.doc.type" : "Other", - "key.doclength" : 60, - "key.docoffset" : 1406, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sections<\/decl.name>: Sections<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 45, - "key.modulename" : "ListableUI", - "key.name" : "sections", - "key.namelength" : 8, - "key.nameoffset" : 1481, - "key.offset" : 1477, - "key.parsed_declaration" : "public var sections : Sections", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 45, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemReordering.Sections", - "key.typeusr" : "$s10ListableUI14ItemReorderingV8SectionsOD", - "key.usr" : "s:10ListableUI14ItemReorderingV8sectionsAC8SectionsOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ItemReordering<\/Type>.CanReorder = (Result<\/Type>) throws -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1510 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ItemReordering<\/ref.struct>.CanReorder<\/decl.name> = (Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) throws<\/syntaxtype.keyword> -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 46, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "CanReorder", - "key.namelength" : 10, - "key.nameoffset" : 1527, - "key.offset" : 1517, - "key.parsed_declaration" : "public typealias CanReorder = (Result) throws -> Bool", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.typename" : "((ItemReordering.Result) throws -> Bool).Type", - "key.typeusr" : "$sSb10ListableUI14ItemReorderingV6ResultVKcmD", - "key.usr" : "s:10ListableUI14ItemReorderingV10CanReordera" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var canReorder: CanReorder<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1734 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A predicate closure which allows more fine-grained validation of a reorder event,\nallowing you to control reordering on an index by index basis.", - "key.doc.column" : 16, - "key.doc.comment" : "A predicate closure which allows more fine-grained validation of a reorder event,\nallowing you to control reordering on an index by index basis.", - "key.doc.declaration" : "public var canReorder: CanReorder?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "canReorder<\/Name>s:10ListableUI14ItemReorderingV10canReorderSbAC6ResultVKcSgvp<\/USR>public var canReorder: CanReorder?<\/Declaration>A predicate closure which allows more fine-grained validation of a reorder event, allowing you to control reordering on an index by index basis.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 51, - "key.doc.name" : "canReorder", - "key.doc.type" : "Other", - "key.doclength" : 157, - "key.docoffset" : 1573, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> canReorder<\/decl.name>: CanReorder<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "canReorder", - "key.namelength" : 10, - "key.nameoffset" : 1745, - "key.offset" : 1741, - "key.parsed_declaration" : "public var canReorder : CanReorder?", - "key.parsed_scope.end" : 51, - "key.parsed_scope.start" : 51, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((ItemReordering.Result) throws -> Bool)?", - "key.typeusr" : "$sSb10ListableUI14ItemReorderingV6ResultVKcSgD", - "key.usr" : "s:10ListableUI14ItemReorderingV10canReorderSbAC6ResultVKcSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 1782 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(sections: Sections<\/Type>, canReorder: CanReorder<\/Type>? = nil)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1880 - } - ], - "key.bodylength" : 75, - "key.bodyoffset" : 1968, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `Reorder` instance with the provided options.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new `Reorder` instance with the provided options.", - "key.doc.declaration" : "public init(sections: Sections, canReorder: CanReorder? = nil)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "init(sections:canReorder:)<\/Name>s:10ListableUI14ItemReorderingV8sections10canReorderA2C8SectionsO_SbAC6ResultVKcSgtcfc<\/USR>public init(sections: Sections, canReorder: CanReorder? = nil)<\/Declaration>Creates a new Reorder<\/codeVoice> instance with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 56, - "key.doc.name" : "init(sections:canReorder:)", - "key.doc.type" : "Function", - "key.doclength" : 64, - "key.docoffset" : 1812, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(sections<\/decl.var.parameter.argument_label>: Sections<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, canReorder<\/decl.var.parameter.argument_label>: CanReorder<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 157, - "key.line" : 56, - "key.modulename" : "ListableUI", - "key.name" : "init(sections:canReorder:)", - "key.namelength" : 79, - "key.nameoffset" : 1887, - "key.offset" : 1887, - "key.parsed_declaration" : "public init(\n sections : Sections,\n canReorder : CanReorder? = nil\n)", - "key.parsed_scope.end" : 62, - "key.parsed_scope.start" : 56, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemReordering.Type) -> (ItemReordering.Sections, ((ItemReordering.Result) throws -> Bool)?) -> ItemReordering", - "key.typeusr" : "$s8sections10canReorder10ListableUI14ItemReorderingVAE8SectionsO_SbAE6ResultVKcSgtcD", - "key.usr" : "s:10ListableUI14ItemReorderingV8sections10canReorderA2C8SectionsO_SbAC6ResultVKcSgtcfc" - } - ], - "key.typename" : "ItemReordering.Type", - "key.typeusr" : "$s10ListableUI14ItemReorderingVmD", - "key.usr" : "s:10ListableUI14ItemReorderingV" - }, - { - "key.annotated_decl" : "public struct ItemReordering<\/Declaration>", - "key.bodylength" : 6832, - "key.bodyoffset" : 2075, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides configuration options to control how an ``Item`` can be reordered within a list.\n\nTo enable reordering on your ``Item``, assign the ``Item\/reordering`` property,\nconfigured as you need to control where the item can be reordered to.\n\nIn the example below, we set a ``ItemReordering`` config which allows\nreordering the item within the current section, and when the reorder completes,\na controller is called to update the underlying data model.\n```swift\nitem.reordering = .init(sections: .current)\n\nitem.onWasReordered = { result in\n myController.move(from: result.from, to: result.to)\n}\n```\n\nIf you have many items, providing a ``Item\/onWasReordered-swift.property`` callback for every item can be tedious.\n\nIn these cases, you can instead provide a ``ListStateObserver\/onItemReordered(_:)`` callback,\nwhich receives a ``ListStateObserver\/ItemReordered`` value:\n```swift\nlist.stateObserver.onItemReordered { change in\n myController.move(from: change.result.from, to: change.result.to)\n}\n```\nFrom which you can then read any changes and pass them through to your data model.\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ItemReordering", - "key.doc.discussion" : [ - { - "Para" : "To enable reordering on your `Item`, assign the `Item\/reordering` property, configured as you need to control where the item can be reordered to." - }, - { - "Para" : "In the example below, we set a `ItemReordering` config which allows reordering the item within the current section, and when the reorder completes, a controller is called to update the underlying data model." - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you have many items, providing a `Item\/onWasReordered-swift.property` callback for every item can be tedious." - }, - { - "Para" : "In these cases, you can instead provide a `ListStateObserver\/onItemReordered(_:)` callback, which receives a `ListStateObserver\/ItemReordered` value:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "From which you can then read any changes and pass them through to your data model." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "ItemReordering<\/Name>s:10ListableUI14ItemReorderingV<\/USR>public struct ItemReordering<\/Declaration>Provides configuration options to control how an Item<\/codeVoice> can be reordered within a list.<\/Para><\/Abstract>To enable reordering on your Item<\/codeVoice>, assign the Item\/reordering<\/codeVoice> property, configured as you need to control where the item can be reordered to.<\/Para>In the example below, we set a ItemReordering<\/codeVoice> config which allows reordering the item within the current section, and when the reorder completes, a controller is called to update the underlying data model.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you have many items, providing a Item\/onWasReordered-swift.property<\/codeVoice> callback for every item can be tedious.<\/Para>In these cases, you can instead provide a ListStateObserver\/onItemReordered(_:)<\/codeVoice> callback, which receives a ListStateObserver\/ItemReordered<\/codeVoice> value:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>From which you can then read any changes and pass them through to your data model.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 40, - "key.doc.name" : "ItemReordering", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemReordering<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 6859, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "ItemReordering", - "key.namelength" : 14, - "key.nameoffset" : 2059, - "key.offset" : 2049, - "key.parsed_declaration" : "extension ItemReordering", - "key.parsed_scope.end" : 247, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum Sections : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2180 - } - ], - "key.bodylength" : 466, - "key.bodyoffset" : 2214, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls which sections a reorderable ``Item`` can be moved to during a reorder event.", - "key.doc.column" : 17, - "key.doc.comment" : "Controls which sections a reorderable ``Item`` can be moved to during a reorder event.", - "key.doc.declaration" : "public enum Sections : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "Sections<\/Name>s:10ListableUI14ItemReorderingV8SectionsO<\/USR>public enum Sections : Equatable<\/Declaration>Controls which sections a reorderable Item<\/codeVoice> can be moved to during a reorder event.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 69, - "key.doc.name" : "Sections", - "key.doc.type" : "Other", - "key.doclength" : 91, - "key.docoffset" : 2085, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 2203 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sections<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 494, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "Sections", - "key.namelength" : 8, - "key.nameoffset" : 2192, - "key.offset" : 2187, - "key.parsed_declaration" : "public enum Sections : Equatable", - "key.parsed_scope.end" : 80, - "key.parsed_scope.start" : 69, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 8, - "key.offset" : 2302, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case all<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The ``Item`` can be moved to any section during a reorder", - "key.doc.column" : 14, - "key.doc.comment" : "The ``Item`` can be moved to any section during a reorder", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "all<\/Name>s:10ListableUI14ItemReorderingV8SectionsO3allyA2EmF<\/USR><\/Declaration>The Item<\/codeVoice> can be moved to any section during a reorder<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 72, - "key.doc.name" : "all", - "key.doc.type" : "Other", - "key.doclength" : 62, - "key.docoffset" : 2232, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> all<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 3, - "key.line" : 72, - "key.modulename" : "ListableUI", - "key.name" : "all", - "key.namelength" : 3, - "key.nameoffset" : 2307, - "key.offset" : 2307, - "key.parsed_declaration" : "case all", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 72, - "key.reusingastcontext" : false, - "key.typename" : "(ItemReordering.Sections.Type) -> ItemReordering.Sections", - "key.typeusr" : "$sy10ListableUI14ItemReorderingV8SectionsOAEmcD", - "key.usr" : "s:10ListableUI14ItemReorderingV8SectionsO3allyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 2416, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case current<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The ``Item`` can only be moved within the current section during a reorder.", - "key.doc.column" : 14, - "key.doc.comment" : "The ``Item`` can only be moved within the current section during a reorder.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "current<\/Name>s:10ListableUI14ItemReorderingV8SectionsO7currentyA2EmF<\/USR><\/Declaration>The Item<\/codeVoice> can only be moved within the current section during a reorder.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 75, - "key.doc.name" : "current", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 2328, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> current<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "current", - "key.namelength" : 7, - "key.nameoffset" : 2421, - "key.offset" : 2421, - "key.parsed_declaration" : "case current", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 75, - "key.reusingastcontext" : false, - "key.typename" : "(ItemReordering.Sections.Type) -> ItemReordering.Sections", - "key.typeusr" : "$sy10ListableUI14ItemReorderingV8SectionsOAEmcD", - "key.usr" : "s:10ListableUI14ItemReorderingV8SectionsO7currentyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 51, - "key.offset" : 2624, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case specific(current: Bool<\/Type>, IDs: Set<\/Type><AnyHashable<\/Type>>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The ``Item`` can only be moved within the specified sections during a reorder.\nThe values passed should be the value of the ``Section``'s ``Identifier``.", - "key.doc.column" : 14, - "key.doc.comment" : "The ``Item`` can only be moved within the specified sections during a reorder.\nThe values passed should be the value of the ``Section``'s ``Identifier``.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "specific(current:IDs:)<\/Name>s:10ListableUI14ItemReorderingV8SectionsO8specificyAESb_Shys11AnyHashableVGtcAEmF<\/USR><\/Declaration>The Item<\/codeVoice> can only be moved within the specified sections during a reorder. The values passed should be the value of the Section<\/codeVoice>’s Identifier<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 79, - "key.doc.name" : "specific(current:IDs:)", - "key.doc.type" : "Other", - "key.doclength" : 170, - "key.docoffset" : 2446, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> specific<\/decl.name>(current<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, IDs<\/decl.var.parameter.argument_label>: Set<\/ref.struct><AnyHashable<\/ref.struct>><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 46, - "key.line" : 79, - "key.modulename" : "ListableUI", - "key.name" : "specific(current:IDs:)", - "key.namelength" : 46, - "key.nameoffset" : 2629, - "key.offset" : 2629, - "key.parsed_declaration" : "case specific(current: Bool, IDs: Set)", - "key.parsed_scope.end" : 79, - "key.parsed_scope.start" : 79, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemReordering.Sections.Type) -> (Bool, Set) -> ItemReordering.Sections", - "key.typeusr" : "$sy10ListableUI14ItemReorderingV8SectionsOSb_Shys11AnyHashableVGtcAEmcD", - "key.usr" : "s:10ListableUI14ItemReorderingV8SectionsO8specificyAESb_Shys11AnyHashableVGtcAEmF" - } - ] - } - ], - "key.typename" : "ItemReordering.Sections.Type", - "key.typeusr" : "$s10ListableUI14ItemReorderingV8SectionsOmD", - "key.usr" : "s:10ListableUI14ItemReorderingV8SectionsO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Result<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3157 - } - ], - "key.bodylength" : 1325, - "key.bodyoffset" : 3179, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides information about the current state of a reorder event.\n\nWhen used as part of ``canReorder-swift.property``, the state of the sections\nand identifiers reflect the current state of the list – the item has not yet been moved.\n\nWhen used as part of ``Item\/onWasReordered-swift.property``, the state of the sections\nand identifiers reflect the state of the list after the move has been committed.\n", - "key.doc.column" : 19, - "key.doc.comment" : "Provides information about the current state of a reorder event.\n\nWhen used as part of ``canReorder-swift.property``, the state of the sections\nand identifiers reflect the current state of the list – the item has not yet been moved.\n\nWhen used as part of ``Item\/onWasReordered-swift.property``, the state of the sections\nand identifiers reflect the state of the list after the move has been committed.", - "key.doc.declaration" : "public struct Result", - "key.doc.discussion" : [ - { - "Para" : "When used as part of `canReorder-swift.property`, the state of the sections and identifiers reflect the current state of the list – the item has not yet been moved." - }, - { - "Para" : "When used as part of `Item\/onWasReordered-swift.property`, the state of the sections and identifiers reflect the state of the list after the move has been committed." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "Result<\/Name>s:10ListableUI14ItemReorderingV6ResultV<\/USR>public struct Result<\/Declaration>Provides information about the current state of a reorder event.<\/Para><\/Abstract>When used as part of canReorder-swift.property<\/codeVoice>, the state of the sections and identifiers reflect the current state of the list – the item has not yet been moved.<\/Para>When used as part of Item\/onWasReordered-swift.property<\/codeVoice>, the state of the sections and identifiers reflect the state of the list after the move has been committed.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 90, - "key.doc.name" : "Result", - "key.doc.type" : "Class", - "key.doclength" : 462, - "key.docoffset" : 2691, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Result<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1341, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "Result", - "key.namelength" : 6, - "key.nameoffset" : 3171, - "key.offset" : 3164, - "key.parsed_declaration" : "public struct Result", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 90, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Public Properties", - "key.offset" : 3200 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var from: IndexPath<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3302 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The index path the ``Item`` is being moved from.", - "key.doc.column" : 20, - "key.doc.comment" : "The index path the ``Item`` is being moved from.", - "key.doc.declaration" : "public var from: IndexPath", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "from<\/Name>s:10ListableUI14ItemReorderingV6ResultV4from10Foundation9IndexPathVvp<\/USR>public var from: IndexPath<\/Declaration>The index path the Item<\/codeVoice> is being moved from.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 95, - "key.doc.name" : "from", - "key.doc.type" : "Other", - "key.doclength" : 53, - "key.docoffset" : 3241, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> from<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 95, - "key.modulename" : "ListableUI", - "key.name" : "from", - "key.namelength" : 4, - "key.nameoffset" : 3313, - "key.offset" : 3309, - "key.parsed_declaration" : "public var from : IndexPath", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 95, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV4from10Foundation9IndexPathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var fromSection: Section<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3400 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The ``Section`` the ``Item`` is being moved from.", - "key.doc.column" : 20, - "key.doc.comment" : "The ``Section`` the ``Item`` is being moved from.", - "key.doc.declaration" : "public var fromSection: Section", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "fromSection<\/Name>s:10ListableUI14ItemReorderingV6ResultV11fromSectionAA0G0Vvp<\/USR>public var fromSection: Section<\/Declaration>The Section<\/codeVoice> the Item<\/codeVoice> is being moved from.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 97, - "key.doc.name" : "fromSection", - "key.doc.type" : "Other", - "key.doclength" : 54, - "key.docoffset" : 3338, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> fromSection<\/decl.name>: Section<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 97, - "key.modulename" : "ListableUI", - "key.name" : "fromSection", - "key.namelength" : 11, - "key.nameoffset" : 3411, - "key.offset" : 3407, - "key.parsed_declaration" : "public var fromSection : Section", - "key.parsed_scope.end" : 97, - "key.parsed_scope.start" : 97, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Section", - "key.typeusr" : "$s10ListableUI7SectionVD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV11fromSectionAA0G0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var to: IndexPath<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3509 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The index path the ``Item`` is being moved to.", - "key.doc.column" : 20, - "key.doc.comment" : "The index path the ``Item`` is being moved to.", - "key.doc.declaration" : "public var to: IndexPath", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "to<\/Name>s:10ListableUI14ItemReorderingV6ResultV2to10Foundation9IndexPathVvp<\/USR>public var to: IndexPath<\/Declaration>The index path the Item<\/codeVoice> is being moved to.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 100, - "key.doc.name" : "to", - "key.doc.type" : "Other", - "key.doclength" : 51, - "key.docoffset" : 3450, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> to<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "to", - "key.namelength" : 2, - "key.nameoffset" : 3520, - "key.offset" : 3516, - "key.parsed_declaration" : "public var to : IndexPath", - "key.parsed_scope.end" : 100, - "key.parsed_scope.start" : 100, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV2to10Foundation9IndexPathVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var toSection: Section<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3603 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The ``Section`` the ``Item`` is being moved to.", - "key.doc.column" : 20, - "key.doc.comment" : "The ``Section`` the ``Item`` is being moved to.", - "key.doc.declaration" : "public var toSection: Section", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "toSection<\/Name>s:10ListableUI14ItemReorderingV6ResultV9toSectionAA0G0Vvp<\/USR>public var toSection: Section<\/Declaration>The Section<\/codeVoice> the Item<\/codeVoice> is being moved to.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 102, - "key.doc.name" : "toSection", - "key.doc.type" : "Other", - "key.doclength" : 52, - "key.docoffset" : 3543, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> toSection<\/decl.name>: Section<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "toSection", - "key.namelength" : 9, - "key.nameoffset" : 3614, - "key.offset" : 3610, - "key.parsed_declaration" : "public var toSection : Section", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 102, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Section", - "key.typeusr" : "$s10ListableUI7SectionVD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV9toSectionAA0G0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sectionChanged: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3728 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the item moved between sections during the reorder operation.", - "key.doc.column" : 20, - "key.doc.comment" : "If the item moved between sections during the reorder operation.", - "key.doc.declaration" : "public var sectionChanged: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "sectionChanged<\/Name>s:10ListableUI14ItemReorderingV6ResultV14sectionChangedSbvp<\/USR>public var sectionChanged: Bool<\/Declaration>If the item moved between sections during the reorder operation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 105, - "key.doc.name" : "sectionChanged", - "key.doc.type" : "Other", - "key.doclength" : 69, - "key.docoffset" : 3651, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionChanged<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "sectionChanged", - "key.namelength" : 14, - "key.nameoffset" : 3739, - "key.offset" : 3735, - "key.parsed_declaration" : "public var sectionChanged : Bool", - "key.parsed_scope.end" : 105, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV14sectionChangedSbvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 3781 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(from: IndexPath<\/Type>, fromSection: Section<\/Type>, to: IndexPath<\/Type>, toSection: Section<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3910 - } - ], - "key.bodylength" : 206, - "key.bodyoffset" : 4055, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new instance of ``ItemReordering\/Result`` with the provided options.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new instance of ``ItemReordering\/Result`` with the provided options.", - "key.doc.declaration" : "public init(from: IndexPath, fromSection: Section, to: IndexPath, toSection: Section)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "init(from:fromSection:to:toSection:)<\/Name>s:10ListableUI14ItemReorderingV6ResultV4from0F7Section2to0hG0AE10Foundation9IndexPathV_AA0G0VAlNtcfc<\/USR>public init(from: IndexPath, fromSection: Section, to: IndexPath, toSection: Section)<\/Declaration>Creates a new instance of ItemReordering\/Result<\/codeVoice> with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 110, - "key.doc.name" : "init(from:fromSection:to:toSection:)", - "key.doc.type" : "Function", - "key.doclength" : 83, - "key.docoffset" : 3819, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, fromSection<\/decl.var.parameter.argument_label>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, toSection<\/decl.var.parameter.argument_label>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 345, - "key.line" : 110, - "key.modulename" : "ListableUI", - "key.name" : "init(from:fromSection:to:toSection:)", - "key.namelength" : 136, - "key.nameoffset" : 3917, - "key.offset" : 3917, - "key.parsed_declaration" : "public init(\n from: IndexPath,\n fromSection: Section,\n to: IndexPath,\n toSection: Section\n)", - "key.parsed_scope.end" : 121, - "key.parsed_scope.start" : 110, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemReordering.Result.Type) -> (IndexPath, Section, IndexPath, Section) -> ItemReordering.Result", - "key.typeusr" : "$s4from0A7Section2to0cB010ListableUI14ItemReorderingV6ResultV10Foundation9IndexPathV_AE0B0VAlNtcD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV4from0F7Section2to0hG0AE10Foundation9IndexPathV_AA0G0VAlNtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Reading Values", - "key.offset" : 4283 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var indexPathsDescription: String<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4413 - } - ], - "key.bodylength" : 42, - "key.bodyoffset" : 4456, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A short, readable description of the index path changes involved with the move.", - "key.doc.column" : 20, - "key.doc.comment" : "A short, readable description of the index path changes involved with the move.", - "key.doc.declaration" : "public var indexPathsDescription: String { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "indexPathsDescription<\/Name>s:10ListableUI14ItemReorderingV6ResultV21indexPathsDescriptionSSvp<\/USR>public var indexPathsDescription: String { get }<\/Declaration>A short, readable description of the index path changes involved with the move.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 126, - "key.doc.name" : "indexPathsDescription", - "key.doc.type" : "Other", - "key.doclength" : 84, - "key.docoffset" : 4321, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> indexPathsDescription<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 79, - "key.line" : 126, - "key.modulename" : "ListableUI", - "key.name" : "indexPathsDescription", - "key.namelength" : 21, - "key.nameoffset" : 4424, - "key.offset" : 4420, - "key.parsed_declaration" : "public var indexPathsDescription : String", - "key.parsed_scope.end" : 128, - "key.parsed_scope.start" : 126, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV21indexPathsDescriptionSSvp" - } - ], - "key.typename" : "ItemReordering.Result.Type", - "key.typeusr" : "$s10ListableUI14ItemReorderingV6ResultVmD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public class GestureRecognizer : UILongPressGestureRecognizer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5514 - } - ], - "key.bodylength" : 3324, - "key.bodyoffset" : 5581, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A gesture recognizer that you should use when implementing a reorderable ``Item`` in your list.\n\nIn order to connect your gesture recognizer instance to the list, utilize the ``ReorderingActions``\nthat you get off of the ``ApplyItemContentInfo`` passed to your `apply(to...)` method.\n\nNote that when using `BlueprintUILists`, you do not need to use this gesture recognizer\ndirectly. Instead, wrap your reorder control in a `ListReorderGesture` element, which will\ncreate and manage the underlying recognizer for you:\n\n```swift\nfunc element(with info : ApplyItemContentInfo) -> Element {\n Row { row in\n row.add(child: Label(...))\n row.add(child: Spacer())\n\n row.add(\n child: MyReorderControl()\n .listReorderGesture(with: info.reorderingActions)\n )\n }\n}\n```", - "key.doc.column" : 18, - "key.doc.comment" : "\nA gesture recognizer that you should use when implementing a reorderable ``Item`` in your list.\n\nIn order to connect your gesture recognizer instance to the list, utilize the ``ReorderingActions``\nthat you get off of the ``ApplyItemContentInfo`` passed to your `apply(to...)` method.\n\nNote that when using `BlueprintUILists`, you do not need to use this gesture recognizer\ndirectly. Instead, wrap your reorder control in a `ListReorderGesture` element, which will\ncreate and manage the underlying recognizer for you:\n\n```swift\nfunc element(with info : ApplyItemContentInfo) -> Element {\n Row { row in\n row.add(child: Label(...))\n row.add(child: Spacer())\n\n row.add(\n child: MyReorderControl()\n .listReorderGesture(with: info.reorderingActions)\n )\n }\n}\n```", - "key.doc.declaration" : "@MainActor public class GestureRecognizer : UILongPressGestureRecognizer", - "key.doc.discussion" : [ - { - "Para" : "In order to connect your gesture recognizer instance to the list, utilize the `ReorderingActions` that you get off of the `ApplyItemContentInfo` passed to your `apply(to...)` method." - }, - { - "Para" : "Note that when using `BlueprintUILists`, you do not need to use this gesture recognizer directly. Instead, wrap your reorder control in a `ListReorderGesture` element, which will create and manage the underlying recognizer for you:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "GestureRecognizer<\/Name>s:10ListableUI14ItemReorderingV17GestureRecognizerC<\/USR>@MainActor public class GestureRecognizer : UILongPressGestureRecognizer<\/Declaration>A gesture recognizer that you should use when implementing a reorderable Item<\/codeVoice> in your list.<\/Para><\/Abstract>In order to connect your gesture recognizer instance to the list, utilize the ReorderingActions<\/codeVoice> that you get off of the ApplyItemContentInfo<\/codeVoice> passed to your apply(to...)<\/codeVoice> method.<\/Para>Note that when using BlueprintUILists<\/codeVoice>, you do not need to use this gesture recognizer directly. Instead, wrap your reorder control in a ListReorderGesture<\/codeVoice> element, which will create and manage the underlying recognizer for you:<\/Para> Element {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 154, - "key.doc.name" : "GestureRecognizer", - "key.doc.type" : "Class", - "key.doclength" : 995, - "key.docoffset" : 4515, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 28, - "key.offset" : 5547 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> class<\/syntaxtype.keyword> GestureRecognizer<\/decl.name> : UILongPressGestureRecognizer<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UILongPressGestureRecognizer" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 3385, - "key.line" : 154, - "key.modulename" : "ListableUI", - "key.name" : "GestureRecognizer", - "key.namelength" : 17, - "key.nameoffset" : 5527, - "key.offset" : 5521, - "key.parsed_declaration" : "public class GestureRecognizer : UILongPressGestureRecognizer", - "key.parsed_scope.end" : 246, - "key.parsed_scope.start" : 154, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private typealias ItemReordering<\/Type>.GestureRecognizer<\/Type>.OnStart = () -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5590 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ItemReordering<\/ref.struct>.GestureRecognizer<\/ref.class>.OnStart<\/decl.name> = () -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 30, - "key.line" : 156, - "key.modulename" : "ListableUI", - "key.name" : "OnStart", - "key.namelength" : 7, - "key.nameoffset" : 5608, - "key.offset" : 5598, - "key.parsed_declaration" : "private typealias OnStart = () -> Bool", - "key.parsed_scope.end" : 156, - "key.parsed_scope.start" : 156, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "(() -> Bool).Type", - "key.typeusr" : "$sSbycmD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC7OnStart33_DF1EF30D3CD8B667EE5D90F580EAE72CLLa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private typealias ItemReordering<\/Type>.GestureRecognizer<\/Type>.OnMove = (GestureRecognizer<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5637 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ItemReordering<\/ref.struct>.GestureRecognizer<\/ref.class>.OnMove<\/decl.name> = (GestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 44, - "key.line" : 157, - "key.modulename" : "ListableUI", - "key.name" : "OnMove", - "key.namelength" : 6, - "key.nameoffset" : 5655, - "key.offset" : 5645, - "key.parsed_declaration" : "private typealias OnMove = (GestureRecognizer) -> ()", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 157, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "((ItemReordering.GestureRecognizer) -> ()).Type", - "key.typeusr" : "$sy10ListableUI14ItemReorderingV17GestureRecognizerCcmD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC6OnMove33_DF1EF30D3CD8B667EE5D90F580EAE72CLLa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private typealias ItemReordering<\/Type>.GestureRecognizer<\/Type>.OnEnd = (ReorderingActions<\/Type>.Result<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5698 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ItemReordering<\/ref.struct>.GestureRecognizer<\/ref.class>.OnEnd<\/decl.name> = (ReorderingActions<\/ref.class>.Result<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 50, - "key.line" : 158, - "key.modulename" : "ListableUI", - "key.name" : "OnEnd", - "key.namelength" : 5, - "key.nameoffset" : 5716, - "key.offset" : 5706, - "key.parsed_declaration" : "private typealias OnEnd = (ReorderingActions.Result) -> ()", - "key.parsed_scope.end" : 158, - "key.parsed_scope.start" : 158, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "((ReorderingActions.Result) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ReorderingActionsC6ResultOcmD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC5OnEnd33_DF1EF30D3CD8B667EE5D90F580EAE72CLLa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var onStart: OnStart<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5766 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onStart<\/decl.name>: OnStart<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 160, - "key.modulename" : "ListableUI", - "key.name" : "onStart", - "key.namelength" : 7, - "key.nameoffset" : 5778, - "key.offset" : 5774, - "key.parsed_declaration" : "private var onStart : OnStart? = nil", - "key.parsed_scope.end" : 160, - "key.parsed_scope.start" : 160, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "(() -> Bool)?", - "key.typeusr" : "$sSbycSgD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC7onStart33_DF1EF30D3CD8B667EE5D90F580EAE72CLLSbycSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var onMove: OnMove<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5811 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onMove<\/decl.name>: OnMove<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 161, - "key.modulename" : "ListableUI", - "key.name" : "onMove", - "key.namelength" : 6, - "key.nameoffset" : 5823, - "key.offset" : 5819, - "key.parsed_declaration" : "private var onMove : OnMove? = nil", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 161, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "((ItemReordering.GestureRecognizer) -> ())?", - "key.typeusr" : "$sy10ListableUI14ItemReorderingV17GestureRecognizerCcSgD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC6onMove33_DF1EF30D3CD8B667EE5D90F580EAE72CLLyAEcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var onEnd: OnEnd<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5854 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onEnd<\/decl.name>: OnEnd<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 162, - "key.modulename" : "ListableUI", - "key.name" : "onEnd", - "key.namelength" : 5, - "key.nameoffset" : 5866, - "key.offset" : 5862, - "key.parsed_declaration" : "private var onEnd : OnEnd? = nil", - "key.parsed_scope.end" : 162, - "key.parsed_scope.start" : 162, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "((ReorderingActions.Result) -> ())?", - "key.typeusr" : "$sy10ListableUI17ReorderingActionsC6ResultOcSgD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC5onEnd33_DF1EF30D3CD8B667EE5D90F580EAE72CLLyAA0D7ActionsC6ResultOcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var accessibilityProxy: NSObject<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6022 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> accessibilityProxy<\/decl.name>: NSObject<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 165, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityProxy", - "key.namelength" : 18, - "key.nameoffset" : 6033, - "key.offset" : 6029, - "key.parsed_declaration" : "public var accessibilityProxy: NSObject?", - "key.parsed_scope.end" : 165, - "key.parsed_scope.start" : 165, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "NSObject?", - "key.typeusr" : "$sSo8NSObjectCSgD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC18accessibilityProxySo8NSObjectCSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override init(target: Any?, action: Selector<\/Type>?)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 6167 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6160 - } - ], - "key.bodylength" : 193, - "key.bodyoffset" : 6223, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a gesture recognizer with the provided target and selector.", - "key.doc.column" : 25, - "key.doc.comment" : "Creates a gesture recognizer with the provided target and selector.", - "key.doc.declaration" : "@MainActor public override init(target: Any?, action: Selector?)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "init(target:action:)<\/Name>s:10ListableUI14ItemReorderingV17GestureRecognizerC6target6actionAEypSg_10ObjectiveC8SelectorVSgtcfc<\/USR>@MainActor public override init(target: Any?, action: Selector?)<\/Declaration>Creates a gesture recognizer with the provided target and selector.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 168, - "key.doc.name" : "init(target:action:)", - "key.doc.type" : "Function", - "key.doclength" : 72, - "key.docoffset" : 6080, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(target<\/decl.var.parameter.argument_label>: Any<\/syntaxtype.keyword>?<\/decl.var.parameter.type><\/decl.var.parameter>, action<\/decl.var.parameter.argument_label>: Selector<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 241, - "key.line" : 168, - "key.modulename" : "ListableUI", - "key.name" : "init(target:action:)", - "key.namelength" : 37, - "key.nameoffset" : 6176, - "key.offset" : 6176, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIGestureRecognizer(im)initWithTarget:action:" - } - ], - "key.parsed_declaration" : "public override init(target: Any?, action: Selector?)", - "key.parsed_scope.end" : 175, - "key.parsed_scope.start" : 168, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(coder:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemReordering.GestureRecognizer.Type) -> (Any?, Selector?) -> ItemReordering.GestureRecognizer", - "key.typeusr" : "$s6target6action10ListableUI14ItemReorderingV17GestureRecognizerCypSg_10ObjectiveC8SelectorVSgtcD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC6target6actionAEypSg_10ObjectiveC8SelectorVSgtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func apply(actions: ReorderingActions<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6602 - } - ], - "key.bodylength" : 151, - "key.bodyoffset" : 6650, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applies the actions from the ``ReorderingActions`` to the gesture recognizer,\nso that it can communicate with the list during reorder actions.", - "key.doc.column" : 21, - "key.doc.comment" : "Applies the actions from the ``ReorderingActions`` to the gesture recognizer,\nso that it can communicate with the list during reorder actions.", - "key.doc.declaration" : "@MainActor public func apply(actions: ReorderingActions)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "apply(actions:)<\/Name>s:10ListableUI14ItemReorderingV17GestureRecognizerC5apply7actionsyAA0D7ActionsC_tF<\/USR>@MainActor public func apply(actions: ReorderingActions)<\/Declaration>Applies the actions from the ReorderingActions<\/codeVoice> to the gesture recognizer, so that it can communicate with the list during reorder actions.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 179, - "key.doc.name" : "apply(actions:)", - "key.doc.type" : "Function", - "key.doclength" : 159, - "key.docoffset" : 6435, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> apply<\/decl.name>(actions<\/decl.var.parameter.argument_label>: ReorderingActions<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 193, - "key.line" : 179, - "key.modulename" : "ListableUI", - "key.name" : "apply(actions:)", - "key.namelength" : 34, - "key.nameoffset" : 6614, - "key.offset" : 6609, - "key.parsed_declaration" : "public func apply(actions : ReorderingActions)", - "key.parsed_scope.end" : 184, - "key.parsed_scope.start" : 179, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemReordering.GestureRecognizer) -> (ReorderingActions) -> ()", - "key.typeusr" : "$s7actionsy10ListableUI17ReorderingActionsC_tcD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC5apply7actionsyAA0D7ActionsC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func reorderPosition(in collectionView: UIView<\/Type>) -> CGPoint<\/Type>?<\/Declaration>", - "key.bodylength" : 775, - "key.bodyoffset" : 6882, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> reorderPosition<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGPoint<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 838, - "key.line" : 186, - "key.modulename" : "ListableUI", - "key.name" : "reorderPosition(in:)", - "key.namelength" : 43, - "key.nameoffset" : 6825, - "key.offset" : 6820, - "key.parsed_declaration" : "func reorderPosition(in collectionView : UIView) -> CGPoint?", - "key.parsed_scope.end" : 207, - "key.parsed_scope.start" : 186, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let translation: CGPoint<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> translation<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 51, - "key.line" : 194, - "key.modulename" : "ListableUI", - "key.name" : "translation", - "key.namelength" : 11, - "key.nameoffset" : 7137, - "key.offset" : 7133, - "key.parsed_declaration" : "let translation = self.location(in: collectionView)", - "key.parsed_scope.end" : 194, - "key.parsed_scope.start" : 194, - "key.reusingastcontext" : false, - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC15reorderPosition2inSo7CGPointVSgSo6UIViewC_tF11translationL_AIvp" - }, - { - "key.annotated_decl" : "let initialPointInCell: CGPoint<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> initialPointInCell<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 63, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "initialPointInCell", - "key.namelength" : 18, - "key.nameoffset" : 7214, - "key.offset" : 7210, - "key.parsed_declaration" : "let initialPointInCell = cell.convert(initialPoint, from: view)", - "key.parsed_scope.end" : 196, - "key.parsed_scope.start" : 196, - "key.reusingastcontext" : false, - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC15reorderPosition2inSo7CGPointVSgSo6UIViewC_tF18initialPointInCellL_AIvp" - }, - { - "key.annotated_decl" : "let initialPointAndCenterDiff: CGPoint<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> initialPointAndCenterDiff<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 191, - "key.line" : 198, - "key.modulename" : "ListableUI", - "key.name" : "initialPointAndCenterDiff", - "key.namelength" : 25, - "key.nameoffset" : 7291, - "key.offset" : 7287, - "key.parsed_declaration" : "let initialPointAndCenterDiff = CGPoint(\n x: cell.contentView.center.x - initialPointInCell.x,\n y: cell.contentView.center.y - initialPointInCell.y\n)", - "key.parsed_scope.end" : 198, - "key.parsed_scope.start" : 198, - "key.reusingastcontext" : false, - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC15reorderPosition2inSo7CGPointVSgSo6UIViewC_tF25initialPointAndCenterDiffL_AIvp" - } - ], - "key.typename" : "(ItemReordering.GestureRecognizer) -> (UIView) -> CGPoint?", - "key.typeusr" : "$s2inSo7CGPointVSgSo6UIViewC_tcD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC15reorderPosition2inSo7CGPointVSgSo6UIViewC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var initialTouchPoint: CGPoint<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 7668 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> initialTouchPoint<\/decl.name>: CGPoint<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 209, - "key.modulename" : "ListableUI", - "key.name" : "initialTouchPoint", - "key.namelength" : 17, - "key.nameoffset" : 7680, - "key.offset" : 7676, - "key.parsed_declaration" : "private var initialTouchPoint : CGPoint? = nil", - "key.parsed_scope.end" : 209, - "key.parsed_scope.start" : 209, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CGPoint?", - "key.typeusr" : "$sSo7CGPointVSgD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC17initialTouchPoint33_DF1EF30D3CD8B667EE5D90F580EAE72CLLSo7CGPointVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func updated()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 7730 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 7724 - } - ], - "key.bodylength" : 820, - "key.bodyoffset" : 7762, - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updated<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 845, - "key.line" : 211, - "key.modulename" : "ListableUI", - "key.name" : "updated()", - "key.namelength" : 9, - "key.nameoffset" : 7743, - "key.offset" : 7738, - "key.parsed_declaration" : "@objc private func updated()", - "key.parsed_scope.end" : 238, - "key.parsed_scope.start" : 211, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemReordering.GestureRecognizer) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC7updated33_DF1EF30D3CD8B667EE5D90F580EAE72CLLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func accessibilityShouldContinue() -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 8601 - } - ], - "key.bodylength" : 246, - "key.bodyoffset" : 8653, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> accessibilityShouldContinue<\/decl.name>() -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 291, - "key.line" : 240, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityShouldContinue()", - "key.namelength" : 29, - "key.nameoffset" : 8614, - "key.offset" : 8609, - "key.parsed_declaration" : "private func accessibilityShouldContinue() -> Bool", - "key.parsed_scope.end" : 245, - "key.parsed_scope.start" : 240, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemReordering.GestureRecognizer) -> () -> Bool", - "key.typeusr" : "$sSbycD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC27accessibilityShouldContinue33_DF1EF30D3CD8B667EE5D90F580EAE72CLLSbyF" - } - ], - "key.typename" : "ItemReordering.GestureRecognizer.Type", - "key.typeusr" : "$s10ListableUI14ItemReorderingV17GestureRecognizerCmD", - "key.usr" : "s:10ListableUI14ItemReorderingV17GestureRecognizerC" - } - ], - "key.typename" : "ItemReordering.Type", - "key.typeusr" : "$s10ListableUI14ItemReorderingVmD", - "key.usr" : "s:10ListableUI14ItemReorderingV" - }, - { - "key.annotated_decl" : "public struct ItemReordering<\/Declaration>", - "key.bodylength" : 961, - "key.bodyoffset" : 8937, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides configuration options to control how an ``Item`` can be reordered within a list.\n\nTo enable reordering on your ``Item``, assign the ``Item\/reordering`` property,\nconfigured as you need to control where the item can be reordered to.\n\nIn the example below, we set a ``ItemReordering`` config which allows\nreordering the item within the current section, and when the reorder completes,\na controller is called to update the underlying data model.\n```swift\nitem.reordering = .init(sections: .current)\n\nitem.onWasReordered = { result in\n myController.move(from: result.from, to: result.to)\n}\n```\n\nIf you have many items, providing a ``Item\/onWasReordered-swift.property`` callback for every item can be tedious.\n\nIn these cases, you can instead provide a ``ListStateObserver\/onItemReordered(_:)`` callback,\nwhich receives a ``ListStateObserver\/ItemReordered`` value:\n```swift\nlist.stateObserver.onItemReordered { change in\n myController.move(from: change.result.from, to: change.result.to)\n}\n```\nFrom which you can then read any changes and pass them through to your data model.\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ItemReordering", - "key.doc.discussion" : [ - { - "Para" : "To enable reordering on your `Item`, assign the `Item\/reordering` property, configured as you need to control where the item can be reordered to." - }, - { - "Para" : "In the example below, we set a `ItemReordering` config which allows reordering the item within the current section, and when the reorder completes, a controller is called to update the underlying data model." - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you have many items, providing a `Item\/onWasReordered-swift.property` callback for every item can be tedious." - }, - { - "Para" : "In these cases, you can instead provide a `ListStateObserver\/onItemReordered(_:)` callback, which receives a `ListStateObserver\/ItemReordered` value:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "From which you can then read any changes and pass them through to your data model." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "ItemReordering<\/Name>s:10ListableUI14ItemReorderingV<\/USR>public struct ItemReordering<\/Declaration>Provides configuration options to control how an Item<\/codeVoice> can be reordered within a list.<\/Para><\/Abstract>To enable reordering on your Item<\/codeVoice>, assign the Item\/reordering<\/codeVoice> property, configured as you need to control where the item can be reordered to.<\/Para>In the example below, we set a ItemReordering<\/codeVoice> config which allows reordering the item within the current section, and when the reorder completes, a controller is called to update the underlying data model.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you have many items, providing a Item\/onWasReordered-swift.property<\/codeVoice> callback for every item can be tedious.<\/Para>In these cases, you can instead provide a ListStateObserver\/onItemReordered(_:)<\/codeVoice> callback, which receives a ListStateObserver\/ItemReordered<\/codeVoice> value:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>From which you can then read any changes and pass them through to your data model.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 40, - "key.doc.name" : "ItemReordering", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemReordering<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 988, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "ItemReordering", - "key.namelength" : 14, - "key.nameoffset" : 8921, - "key.offset" : 8911, - "key.parsed_declaration" : "extension ItemReordering", - "key.parsed_scope.end" : 287, - "key.parsed_scope.start" : 250, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func destination(from: IndexPath<\/Type>, fromSection: PresentationState<\/Type>.SectionState<\/Type>, to: IndexPath<\/Type>, toSection: PresentationState<\/Type>.SectionState<\/Type>) -> IndexPath<\/Type><\/Declaration>", - "key.bodylength" : 752, - "key.bodyoffset" : 9144, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> destination<\/decl.name>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, fromSection<\/decl.var.parameter.argument_label>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, toSection<\/decl.var.parameter.argument_label>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 950, - "key.line" : 252, - "key.modulename" : "ListableUI", - "key.name" : "destination(from:fromSection:to:toSection:)", - "key.namelength" : 173, - "key.nameoffset" : 8952, - "key.offset" : 8947, - "key.parsed_declaration" : "func destination(\n from : IndexPath,\n fromSection : PresentationState.SectionState,\n to : IndexPath,\n toSection : PresentationState.SectionState\n) -> IndexPath", - "key.parsed_scope.end" : 286, - "key.parsed_scope.start" : 252, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let result: ItemReordering<\/Type>.Result<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> result<\/decl.name>: ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 157, - "key.line" : 259, - "key.modulename" : "ListableUI", - "key.name" : "result", - "key.namelength" : 6, - "key.nameoffset" : 9157, - "key.offset" : 9153, - "key.parsed_declaration" : "let result = Result(\n from: from,\n fromSection: fromSection.model,\n to: to,\n toSection: toSection.model\n)", - "key.parsed_scope.end" : 259, - "key.parsed_scope.start" : 259, - "key.reusingastcontext" : false, - "key.typename" : "ItemReordering.Result", - "key.typeusr" : "$s10ListableUI14ItemReorderingV6ResultVD", - "key.usr" : "s:10ListableUI14ItemReorderingV11destination4from0F7Section2to0hG010Foundation9IndexPathVAK_AA17PresentationStateC0gM0CAkOtF6resultL_AC6ResultVvp" - }, - { - "key.annotated_decl" : "let checks: [() -> Bool<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> checks<\/decl.name>: [() -> Bool<\/ref.struct><\/decl.function.returntype>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 338, - "key.line" : 270, - "key.modulename" : "ListableUI", - "key.name" : "checks", - "key.namelength" : 6, - "key.nameoffset" : 9405, - "key.offset" : 9401, - "key.parsed_declaration" : "let checks : [() -> Bool] = [\n { self.sections.canMove(from: fromSection, to: toSection) },\n \n { fromSection.model.reordering.canReorderOut(with: result) },\n { toSection.model.reordering.canReorderIn(with: result) },\n \n { result.allowed(with: self.canReorder) },\n]", - "key.parsed_scope.end" : 270, - "key.parsed_scope.start" : 270, - "key.reusingastcontext" : false, - "key.typename" : "[() -> Bool]", - "key.typeusr" : "$sSaySbycGD", - "key.usr" : "s:10ListableUI14ItemReorderingV11destination4from0F7Section2to0hG010Foundation9IndexPathVAK_AA17PresentationStateC0gM0CAkOtF6checksL_SaySbycGvp" - } - ], - "key.typename" : "(ItemReordering) -> (IndexPath, PresentationState.SectionState, IndexPath, PresentationState.SectionState) -> IndexPath", - "key.typeusr" : "$s4from0A7Section2to0cB010Foundation9IndexPathVAG_10ListableUI17PresentationStateC0bJ0CAgLtcD", - "key.usr" : "s:10ListableUI14ItemReorderingV11destination4from0F7Section2to0hG010Foundation9IndexPathVAK_AA17PresentationStateC0gM0CAkOtF" - } - ], - "key.typename" : "ItemReordering.Type", - "key.typeusr" : "$s10ListableUI14ItemReorderingVmD", - "key.usr" : "s:10ListableUI14ItemReorderingV" - }, - { - "key.annotated_decl" : "public struct Result<\/Declaration>", - "key.bodylength" : 366, - "key.bodyoffset" : 9935, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides information about the current state of a reorder event.\n\nWhen used as part of ``canReorder-swift.property``, the state of the sections\nand identifiers reflect the current state of the list – the item has not yet been moved.\n\nWhen used as part of ``Item\/onWasReordered-swift.property``, the state of the sections\nand identifiers reflect the state of the list after the move has been committed.\n", - "key.doc.column" : 19, - "key.doc.declaration" : "public struct Result", - "key.doc.discussion" : [ - { - "Para" : "When used as part of `canReorder-swift.property`, the state of the sections and identifiers reflect the current state of the list – the item has not yet been moved." - }, - { - "Para" : "When used as part of `Item\/onWasReordered-swift.property`, the state of the sections and identifiers reflect the state of the list after the move has been committed." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "Result<\/Name>s:10ListableUI14ItemReorderingV6ResultV<\/USR>public struct Result<\/Declaration>Provides information about the current state of a reorder event.<\/Para><\/Abstract>When used as part of canReorder-swift.property<\/codeVoice>, the state of the sections and identifiers reflect the current state of the list – the item has not yet been moved.<\/Para>When used as part of Item\/onWasReordered-swift.property<\/codeVoice>, the state of the sections and identifiers reflect the state of the list after the move has been committed.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 90, - "key.doc.name" : "Result", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Result<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 400, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "ItemReordering.Result", - "key.namelength" : 21, - "key.nameoffset" : 9912, - "key.offset" : 9902, - "key.parsed_declaration" : "extension ItemReordering.Result", - "key.parsed_scope.end" : 308, - "key.parsed_scope.start" : 290, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func allowed(with check: ((ItemReordering<\/Type>.Result<\/Type>) throws -> Bool<\/Type>)?) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 276, - "key.bodyoffset" : 10023, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> allowed<\/decl.name>(with<\/decl.var.parameter.argument_label> check<\/decl.var.parameter.name>: ((ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) throws<\/syntaxtype.keyword> -> Bool<\/ref.struct><\/decl.function.returntype><\/tuple.element.type><\/tuple.element>)<\/tuple>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 355, - "key.line" : 292, - "key.modulename" : "ListableUI", - "key.name" : "allowed(with:)", - "key.namelength" : 63, - "key.nameoffset" : 9950, - "key.offset" : 9945, - "key.parsed_declaration" : "func allowed(with check : ((ItemReordering.Result) throws -> Bool)?) -> Bool", - "key.parsed_scope.end" : 307, - "key.parsed_scope.start" : 292, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemReordering.Result) -> (((ItemReordering.Result) throws -> Bool)?) -> Bool", - "key.typeusr" : "$s4withS2b10ListableUI14ItemReorderingV6ResultVKcSg_tcD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV7allowed4withS2bAEKcSg_tF" - } - ], - "key.typename" : "ItemReordering.Result.Type", - "key.typeusr" : "$s10ListableUI14ItemReorderingV6ResultVmD", - "key.usr" : "s:10ListableUI14ItemReorderingV6ResultV" - }, - { - "key.annotated_decl" : "public enum Sections : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 412, - "key.bodyoffset" : 10340, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls which sections a reorderable ``Item`` can be moved to during a reorder event.", - "key.doc.column" : 17, - "key.doc.declaration" : "public enum Sections : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.doc.full_as_xml" : "Sections<\/Name>s:10ListableUI14ItemReorderingV8SectionsO<\/USR>public enum Sections : Equatable<\/Declaration>Controls which sections a reorderable Item<\/codeVoice> can be moved to during a reorder event.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 69, - "key.doc.name" : "Sections", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sections<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 448, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "ItemReordering.Sections", - "key.namelength" : 23, - "key.nameoffset" : 10315, - "key.offset" : 10305, - "key.parsed_declaration" : "extension ItemReordering.Sections", - "key.parsed_scope.end" : 326, - "key.parsed_scope.start" : 311, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func canMove(from: PresentationState<\/Type>.SectionState<\/Type>, to: PresentationState<\/Type>.SectionState<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 302, - "key.bodyoffset" : 10448, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemReordering.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> canMove<\/decl.name>(from<\/decl.var.parameter.argument_label>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 401, - "key.line" : 313, - "key.modulename" : "ListableUI", - "key.name" : "canMove(from:to:)", - "key.namelength" : 83, - "key.nameoffset" : 10355, - "key.offset" : 10350, - "key.parsed_declaration" : "func canMove(from : PresentationState.SectionState, to : PresentationState.SectionState) -> Bool", - "key.parsed_scope.end" : 325, - "key.parsed_scope.start" : 313, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemReordering.Sections) -> (PresentationState.SectionState, PresentationState.SectionState) -> Bool", - "key.typeusr" : "$s4from2toSb10ListableUI17PresentationStateC07SectionF0C_AGtcD", - "key.usr" : "s:10ListableUI14ItemReorderingV8SectionsO7canMove4from2toSbAA17PresentationStateC07SectionK0C_ALtF" - } - ], - "key.typename" : "ItemReordering.Sections.Type", - "key.typeusr" : "$s10ListableUI14ItemReorderingV8SectionsOmD", - "key.usr" : "s:10ListableUI14ItemReorderingV8SectionsO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1274, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ItemSelectionStyle : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 185 - } - ], - "key.bodylength" : 1043, - "key.bodyoffset" : 229, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the selection style and behavior of an item in a list.", - "key.doc.column" : 13, - "key.doc.comment" : "Controls the selection style and behavior of an item in a list.", - "key.doc.declaration" : "public enum ItemSelectionStyle : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.doc.full_as_xml" : "ItemSelectionStyle<\/Name>s:10ListableUI18ItemSelectionStyleO<\/USR>public enum ItemSelectionStyle : Equatable<\/Declaration>Controls the selection style and behavior of an item in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 12, - "key.doc.name" : "ItemSelectionStyle", - "key.doc.type" : "Other", - "key.doclength" : 68, - "key.docoffset" : 117, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 218 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ItemSelectionStyle<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1081, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ItemSelectionStyle", - "key.namelength" : 18, - "key.nameoffset" : 197, - "key.offset" : 192, - "key.parsed_declaration" : "public enum ItemSelectionStyle : Equatable", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 18, - "key.offset" : 277, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case notSelectable<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item is not selectable at all.", - "key.doc.column" : 10, - "key.doc.comment" : "The item is not selectable at all.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.doc.full_as_xml" : "notSelectable<\/Name>s:10ListableUI18ItemSelectionStyleO13notSelectableyA2CmF<\/USR><\/Declaration>The item is not selectable at all.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 15, - "key.doc.name" : "notSelectable", - "key.doc.type" : "Other", - "key.doclength" : 39, - "key.docoffset" : 234, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> notSelectable<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 13, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "notSelectable", - "key.namelength" : 13, - "key.nameoffset" : 282, - "key.offset" : 282, - "key.parsed_declaration" : "case notSelectable", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "(ItemSelectionStyle.Type) -> ItemSelectionStyle", - "key.typeusr" : "$sy10ListableUI18ItemSelectionStyleOACmcD", - "key.usr" : "s:10ListableUI18ItemSelectionStyleO13notSelectableyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 407, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case tappable<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item is temporarily selectable. Once the user lifts their finger, the item is deselected.", - "key.doc.column" : 10, - "key.doc.comment" : "The item is temporarily selectable. Once the user lifts their finger, the item is deselected.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.doc.full_as_xml" : "tappable<\/Name>s:10ListableUI18ItemSelectionStyleO8tappableyA2CmF<\/USR><\/Declaration>The item is temporarily selectable. Once the user lifts their finger, the item is deselected.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 18, - "key.doc.name" : "tappable", - "key.doc.type" : "Other", - "key.doclength" : 98, - "key.docoffset" : 305, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> tappable<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "tappable", - "key.namelength" : 8, - "key.nameoffset" : 412, - "key.offset" : 412, - "key.parsed_declaration" : "case tappable", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.typename" : "(ItemSelectionStyle.Type) -> ItemSelectionStyle", - "key.typeusr" : "$sy10ListableUI18ItemSelectionStyleOACmcD", - "key.usr" : "s:10ListableUI18ItemSelectionStyleO8tappableyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 42, - "key.offset" : 533, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case selectable(isSelected: Bool<\/Type> = false)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item is persistently selectable. Once the user lifts their finger, the item is maintained.", - "key.doc.column" : 10, - "key.doc.comment" : "The item is persistently selectable. Once the user lifts their finger, the item is maintained.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.doc.full_as_xml" : "selectable(isSelected:)<\/Name>s:10ListableUI18ItemSelectionStyleO10selectableyACSb_tcACmF<\/USR><\/Declaration>The item is persistently selectable. Once the user lifts their finger, the item is maintained.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 21, - "key.doc.name" : "selectable(isSelected:)", - "key.doc.type" : "Other", - "key.doclength" : 99, - "key.docoffset" : 430, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> selectable<\/decl.name>(isSelected<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 37, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "selectable(isSelected:)", - "key.namelength" : 37, - "key.nameoffset" : 538, - "key.offset" : 538, - "key.parsed_declaration" : "case selectable(isSelected : Bool = false)", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemSelectionStyle.Type) -> (Bool) -> ItemSelectionStyle", - "key.typeusr" : "$sy10ListableUI18ItemSelectionStyleOSb_tcACmcD", - "key.usr" : "s:10ListableUI18ItemSelectionStyleO10selectableyACSb_tcACmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 39, - "key.offset" : 749, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case toggles(isSelected: Bool<\/Type> = false)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item is persistently selectable. Once the user lifts their finger, the item is maintained.\nIf the user taps again, the item will be deselected.", - "key.doc.column" : 10, - "key.doc.comment" : "The item is persistently selectable. Once the user lifts their finger, the item is maintained.\nIf the user taps again, the item will be deselected.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.doc.full_as_xml" : "toggles(isSelected:)<\/Name>s:10ListableUI18ItemSelectionStyleO7togglesyACSb_tcACmF<\/USR><\/Declaration>The item is persistently selectable. Once the user lifts their finger, the item is maintained. If the user taps again, the item will be deselected.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 25, - "key.doc.name" : "toggles(isSelected:)", - "key.doc.type" : "Other", - "key.doclength" : 160, - "key.docoffset" : 585, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> toggles<\/decl.name>(isSelected<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 34, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "toggles(isSelected:)", - "key.namelength" : 34, - "key.nameoffset" : 754, - "key.offset" : 754, - "key.parsed_declaration" : "case toggles(isSelected : Bool = false)", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemSelectionStyle.Type) -> (Bool) -> ItemSelectionStyle", - "key.typeusr" : "$sy10ListableUI18ItemSelectionStyleOSb_tcACmcD", - "key.usr" : "s:10ListableUI18ItemSelectionStyleO7togglesyACSb_tcACmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isSelected: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 225, - "key.bodyoffset" : 821, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 249, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "isSelected", - "key.namelength" : 10, - "key.nameoffset" : 802, - "key.offset" : 798, - "key.parsed_declaration" : "var isSelected : Bool", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI18ItemSelectionStyleO10isSelectedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isSelectable: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 188, - "key.bodyoffset" : 1082, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelectable<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 214, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "isSelectable", - "key.namelength" : 12, - "key.nameoffset" : 1061, - "key.offset" : 1057, - "key.parsed_declaration" : "var isSelectable : Bool", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI18ItemSelectionStyleO12isSelectableSbvp" - } - ], - "key.typename" : "ItemSelectionStyle.Type", - "key.typeusr" : "$s10ListableUI18ItemSelectionStyleOmD", - "key.usr" : "s:10ListableUI18ItemSelectionStyleO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 995, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemState : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 121 - } - ], - "key.bodylength" : 836, - "key.bodyoffset" : 157, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 147 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemState<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 866, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ItemState", - "key.namelength" : 9, - "key.nameoffset" : 135, - "key.offset" : 128, - "key.parsed_declaration" : "public struct ItemState : Hashable", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(isSelected: Bool<\/Type>, isHighlighted: Bool<\/Type>, isReordering: Bool<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 162 - } - ], - "key.bodylength" : 126, - "key.bodyoffset" : 241, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isSelected<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, isHighlighted<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, isReordering<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 199, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "init(isSelected:isHighlighted:isReordering:)", - "key.namelength" : 66, - "key.nameoffset" : 169, - "key.offset" : 169, - "key.parsed_declaration" : "public init(isSelected : Bool, isHighlighted : Bool, isReordering : Bool)", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 14, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(cell:isReordering:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemState.Type) -> (Bool, Bool, Bool) -> ItemState", - "key.typeusr" : "$s10isSelected0A11Highlighted0A10Reordering10ListableUI9ItemStateVSb_S2btcD", - "key.usr" : "s:10ListableUI9ItemStateV10isSelected0E11Highlighted0E10ReorderingACSb_S2btcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(cell: UICollectionViewCell<\/Type>, isReordering: Bool<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 378 - } - ], - "key.bodylength" : 136, - "key.bodyoffset" : 445, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(cell<\/decl.var.parameter.argument_label>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, isReordering<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 197, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "init(cell:isReordering:)", - "key.namelength" : 54, - "key.nameoffset" : 385, - "key.offset" : 385, - "key.parsed_declaration" : "public init(cell : UICollectionViewCell, isReordering : Bool)", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 21, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(isSelected:isHighlighted:isReordering:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemState.Type) -> (UICollectionViewCell, Bool) -> ItemState", - "key.typeusr" : "$s4cell12isReordering10ListableUI9ItemStateVSo20UICollectionViewCellC_SbtcD", - "key.usr" : "s:10ListableUI9ItemStateV4cell12isReorderingACSo20UICollectionViewCellC_Sbtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isSelected: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 635 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the item is currently selected.", - "key.doc.column" : 16, - "key.doc.comment" : "If the item is currently selected.", - "key.doc.declaration" : "public var isSelected: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.doc.full_as_xml" : "isSelected<\/Name>s:10ListableUI9ItemStateV10isSelectedSbvp<\/USR>public var isSelected: Bool<\/Declaration>If the item is currently selected.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 29, - "key.doc.name" : "isSelected", - "key.doc.type" : "Other", - "key.doclength" : 39, - "key.docoffset" : 592, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "isSelected", - "key.namelength" : 10, - "key.nameoffset" : 646, - "key.offset" : 642, - "key.parsed_declaration" : "public var isSelected : Bool", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI9ItemStateV10isSelectedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isHighlighted: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 719 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the item is currently highlighted.", - "key.doc.column" : 16, - "key.doc.comment" : "If the item is currently highlighted.", - "key.doc.declaration" : "public var isHighlighted: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.doc.full_as_xml" : "isHighlighted<\/Name>s:10ListableUI9ItemStateV13isHighlightedSbvp<\/USR>public var isHighlighted: Bool<\/Declaration>If the item is currently highlighted.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 32, - "key.doc.name" : "isHighlighted", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 673, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isHighlighted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "isHighlighted", - "key.namelength" : 13, - "key.nameoffset" : 730, - "key.offset" : 726, - "key.parsed_declaration" : "public var isHighlighted : Bool", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 32, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI9ItemStateV13isHighlightedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isReordering: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 817 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the item is currently being moved by the user", - "key.doc.column" : 16, - "key.doc.comment" : "If the item is currently being moved by the user", - "key.doc.declaration" : "public var isReordering: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.doc.full_as_xml" : "isReordering<\/Name>s:10ListableUI9ItemStateV12isReorderingSbvp<\/USR>public var isReordering: Bool<\/Declaration>If the item is currently being moved by the user<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 35, - "key.doc.name" : "isReordering", - "key.doc.type" : "Other", - "key.doclength" : 53, - "key.docoffset" : 760, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isReordering<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "isReordering", - "key.namelength" : 12, - "key.nameoffset" : 828, - "key.offset" : 824, - "key.parsed_declaration" : "public var isReordering : Bool", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI9ItemStateV12isReorderingSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isActive: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 912 - } - ], - "key.bodylength" : 51, - "key.bodyoffset" : 940, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the item is either selected or highlighted.", - "key.doc.column" : 16, - "key.doc.comment" : "If the item is either selected or highlighted.", - "key.doc.declaration" : "public var isActive: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.doc.full_as_xml" : "isActive<\/Name>s:10ListableUI9ItemStateV8isActiveSbvp<\/USR>public var isActive: Bool { get }<\/Declaration>If the item is either selected or highlighted.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 38, - "key.doc.name" : "isActive", - "key.doc.type" : "Other", - "key.doclength" : 51, - "key.docoffset" : 857, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemState.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isActive<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 73, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "isActive", - "key.namelength" : 8, - "key.nameoffset" : 923, - "key.offset" : 919, - "key.parsed_declaration" : "public var isActive : Bool", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 38, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI9ItemStateV8isActiveSbvp" - } - ], - "key.typename" : "ItemState.Type", - "key.typeusr" : "$s10ListableUI9ItemStateVmD", - "key.usr" : "s:10ListableUI9ItemStateV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 22991, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> final class CollectionViewLayout : UICollectionViewLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 113 - } - ], - "key.bodylength" : 19917, - "key.bodyoffset" : 172, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 22, - "key.offset" : 148 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> CollectionViewLayout<\/decl.name> : UICollectionViewLayout<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UICollectionViewLayout" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 19971, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "CollectionViewLayout", - "key.namelength" : 20, - "key.nameoffset" : 125, - "key.offset" : 119, - "key.parsed_declaration" : "final class CollectionViewLayout : UICollectionViewLayout", - "key.parsed_scope.end" : 660, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 16, - "key.name" : "MARK: Properties", - "key.offset" : 187 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> unowned let delegate: CollectionViewLayoutDelegate<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 7, - "key.offset" : 216 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> unowned<\/syntaxtype.keyword> let<\/syntaxtype.keyword> delegate<\/decl.name>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "delegate", - "key.namelength" : 8, - "key.nameoffset" : 228, - "key.offset" : 224, - "key.parsed_declaration" : "unowned let delegate : CollectionViewLayoutDelegate", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "any CollectionViewLayoutDelegate", - "key.typeusr" : "$s10ListableUI28CollectionViewLayoutDelegate_pD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC8delegateAA0cdE8Delegate_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var layoutDescription: LayoutDescription<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> layoutDescription<\/decl.name>: LayoutDescription<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "layoutDescription", - "key.namelength" : 17, - "key.nameoffset" : 277, - "key.offset" : 273, - "key.parsed_declaration" : "var layoutDescription : LayoutDescription", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "LayoutDescription", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC17layoutDescriptionAA0eG0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var appearance: Appearance<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 158, - "key.bodyoffset" : 349, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 188, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 324, - "key.offset" : 320, - "key.parsed_declaration" : "var appearance : Appearance", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Appearance", - "key.typeusr" : "$s10ListableUI10AppearanceVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC10appearanceAA10AppearanceVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var isReordering: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 514 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> isReordering<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "isReordering", - "key.namelength" : 12, - "key.nameoffset" : 531, - "key.offset" : 527, - "key.parsed_declaration" : "private(set) var isReordering : Bool = false", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC12isReorderingSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func applyAppearance()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 564 - } - ], - "key.bodylength" : 129, - "key.bodyoffset" : 600, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> applyAppearance<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 158, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "applyAppearance()", - "key.namelength" : 17, - "key.nameoffset" : 577, - "key.offset" : 572, - "key.parsed_declaration" : "private func applyAppearance()", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC15applyAppearance33_EB34EA08C49AB6823BEA7E315664A1CBLLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var behavior: Behavior<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 154, - "key.bodyoffset" : 761, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 180, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "behavior", - "key.namelength" : 8, - "key.nameoffset" : 740, - "key.offset" : 736, - "key.parsed_declaration" : "var behavior : Behavior", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Behavior", - "key.typeusr" : "$s10ListableUI8BehaviorVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC8behaviorAA8BehaviorVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func applyBehavior()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 922 - } - ], - "key.bodylength" : 129, - "key.bodyoffset" : 956, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> applyBehavior<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 156, - "key.line" : 52, - "key.modulename" : "ListableUI", - "key.name" : "applyBehavior()", - "key.namelength" : 15, - "key.nameoffset" : 935, - "key.offset" : 930, - "key.parsed_declaration" : "private func applyBehavior()", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 52, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC13applyBehavior33_EB34EA08C49AB6823BEA7E315664A1CBLLyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 1102 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> init(delegate: CollectionViewLayoutDelegate<\/Type>, layoutDescription: LayoutDescription<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>)<\/Declaration>", - "key.bodylength" : 570, - "key.bodyoffset" : 1305, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> init<\/syntaxtype.keyword>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, layoutDescription<\/decl.var.parameter.argument_label>: LayoutDescription<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 741, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "init(delegate:layoutDescription:appearance:behavior:)", - "key.namelength" : 168, - "key.nameoffset" : 1135, - "key.offset" : 1135, - "key.parsed_declaration" : "init(\n delegate : CollectionViewLayoutDelegate,\n layoutDescription : LayoutDescription,\n appearance : Appearance,\n behavior : Behavior\n)", - "key.parsed_scope.end" : 91, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout.Type) -> (any CollectionViewLayoutDelegate, LayoutDescription, Appearance, Behavior) -> CollectionViewLayout", - "key.typeusr" : "$s8delegate17layoutDescription10appearance8behavior10ListableUI20CollectionViewLayoutCAE0hiJ8Delegate_p_AE0jC0VAE10AppearanceVAE8BehaviorVtcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC8delegate17layoutDescription10appearance8behaviorAcA0cdE8Delegate_p_AA0eH0VAA10AppearanceVAA8BehaviorVtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 1913 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 1882 - } - ], - "key.bodylength" : 25, - "key.bodyoffset" : 1945, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 49, - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 1922, - "key.offset" : 1922, - "key.substructure" : [ - - ] - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 25, - "key.name" : "MARK: Querying The Layout", - "key.offset" : 1987 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func frameForItem(at indexPath: IndexPath<\/Type>) -> CGRect<\/Type><\/Declaration>", - "key.bodylength" : 59, - "key.bodyoffset" : 2084, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> frameForItem<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 119, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "frameForItem(at:)", - "key.namelength" : 38, - "key.nameoffset" : 2030, - "key.offset" : 2025, - "key.parsed_declaration" : "func frameForItem(at indexPath : IndexPath) -> CGRect", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 100, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (IndexPath) -> CGRect", - "key.typeusr" : "$s2atSo6CGRectV10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC12frameForItem2atSo6CGRectV10Foundation9IndexPathV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func positionForItem(at indexPath: IndexPath<\/Type>) -> ItemPosition<\/Type><\/Declaration>", - "key.bodylength" : 62, - "key.bodyoffset" : 2218, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> positionForItem<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ItemPosition<\/ref.enum><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 131, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "positionForItem(at:)", - "key.namelength" : 41, - "key.nameoffset" : 2155, - "key.offset" : 2150, - "key.parsed_declaration" : "func positionForItem(at indexPath : IndexPath) -> ItemPosition", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (IndexPath) -> ItemPosition", - "key.typeusr" : "$s2at10ListableUI12ItemPositionO10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC15positionForItem2atAA0H8PositionO10Foundation9IndexPathV_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Private Properties", - "key.offset" : 2297 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var layout: AnyListLayout<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 2334 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> layout<\/decl.name>: AnyListLayout<\/ref.protocol><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 114, - "key.modulename" : "ListableUI", - "key.name" : "layout", - "key.namelength" : 6, - "key.nameoffset" : 2351, - "key.offset" : 2347, - "key.parsed_declaration" : "private(set) var layout : AnyListLayout", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 114, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "any AnyListLayout", - "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC6layoutAA07AnyListE0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var previousLayout: AnyListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 2379 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> previousLayout<\/decl.name>: AnyListLayout<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "previousLayout", - "key.namelength" : 14, - "key.nameoffset" : 2391, - "key.offset" : 2387, - "key.parsed_declaration" : "private var previousLayout : AnyListLayout", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "any AnyListLayout", - "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC08previousE033_EB34EA08C49AB6823BEA7E315664A1CBLLAA07AnyListE0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var changesDuringCurrentUpdate: UpdateItems<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 2426 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> changesDuringCurrentUpdate<\/decl.name>: UpdateItems<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 117, - "key.modulename" : "ListableUI", - "key.name" : "changesDuringCurrentUpdate", - "key.namelength" : 26, - "key.nameoffset" : 2438, - "key.offset" : 2434, - "key.parsed_declaration" : "private var changesDuringCurrentUpdate : UpdateItems", - "key.parsed_scope.end" : 117, - "key.parsed_scope.start" : 117, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "UpdateItems", - "key.typeusr" : "$s10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC26changesDuringCurrentUpdate33_EB34EA08C49AB6823BEA7E315664A1CBLLAA0I5ItemsAELLVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var viewProperties: CollectionViewLayoutProperties<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 2483 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> viewProperties<\/decl.name>: CollectionViewLayoutProperties<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "viewProperties", - "key.namelength" : 14, - "key.nameoffset" : 2495, - "key.offset" : 2491, - "key.parsed_declaration" : "private var viewProperties : CollectionViewLayoutProperties", - "key.parsed_scope.end" : 118, - "key.parsed_scope.start" : 118, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CollectionViewLayoutProperties", - "key.typeusr" : "$s10ListableUI30CollectionViewLayoutPropertiesVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC14viewProperties33_EB34EA08C49AB6823BEA7E315664A1CBLLAA0cdeG0Vvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 42, - "key.name" : "MARK: Invalidation & Invalidation Contexts", - "key.offset" : 2558 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func setNeedsRelayout()<\/Declaration>", - "key.bodylength" : 91, - "key.bodyoffset" : 2642, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> setNeedsRelayout<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 121, - "key.line" : 124, - "key.modulename" : "ListableUI", - "key.name" : "setNeedsRelayout()", - "key.namelength" : 18, - "key.nameoffset" : 2618, - "key.offset" : 2613, - "key.parsed_declaration" : "func setNeedsRelayout()", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 124, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC16setNeedsRelayoutyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func setNeedsRebuild(animated: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 410, - "key.bodyoffset" : 2782, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> setNeedsRebuild<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 453, - "key.line" : 131, - "key.modulename" : "ListableUI", - "key.name" : "setNeedsRebuild(animated:)", - "key.namelength" : 31, - "key.nameoffset" : 2745, - "key.offset" : 2740, - "key.parsed_declaration" : "func setNeedsRebuild(animated: Bool)", - "key.parsed_scope.end" : 142, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (Bool) -> ()", - "key.typeusr" : "$s8animatedySb_tcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC15setNeedsRebuild8animatedySb_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var shouldAskForItemSizesDuringLayoutInvalidation: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 3199 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "The collection view actually manages the animation, and the duration or curve doesn't matter.\nHowever, we need to be in an animation block for it to animate.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> shouldAskForItemSizesDuringLayoutInvalidation<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 64, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "shouldAskForItemSizesDuringLayoutInvalidation", - "key.namelength" : 45, - "key.nameoffset" : 3216, - "key.offset" : 3212, - "key.parsed_declaration" : "private(set) var shouldAskForItemSizesDuringLayoutInvalidation : Bool = false", - "key.parsed_scope.end" : 144, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC027shouldAskForItemSizesDuringE12InvalidationSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func setShouldAskForItemSizesDuringLayoutInvalidation()<\/Declaration>", - "key.bodylength" : 71, - "key.bodyoffset" : 3343, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> setShouldAskForItemSizesDuringLayoutInvalidation<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 133, - "key.line" : 146, - "key.modulename" : "ListableUI", - "key.name" : "setShouldAskForItemSizesDuringLayoutInvalidation()", - "key.namelength" : 50, - "key.nameoffset" : 3287, - "key.offset" : 3282, - "key.parsed_declaration" : "func setShouldAskForItemSizesDuringLayoutInvalidation()", - "key.parsed_scope.end" : 149, - "key.parsed_scope.start" : 146, - "key.reusingastcontext" : false, - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC030setShouldAskForItemSizesDuringE12InvalidationyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override class var invalidationContextClass: AnyClass<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 3421 - } - ], - "key.bodylength" : 45, - "key.bodyoffset" : 3476, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> class<\/syntaxtype.keyword> var<\/syntaxtype.keyword> invalidationContextClass<\/decl.name>: AnyClass<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.class>", - "key.kind" : "source.lang.swift.decl.var.class", - "key.length" : 92, - "key.line" : 151, - "key.modulename" : "ListableUI", - "key.name" : "invalidationContextClass", - "key.namelength" : 24, - "key.nameoffset" : 3440, - "key.offset" : 3430, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(cpy)invalidationContextClass" - } - ], - "key.parsed_declaration" : "override class var invalidationContextClass: AnyClass", - "key.parsed_scope.end" : 153, - "key.parsed_scope.start" : 151, - "key.reusingastcontext" : false, - "key.typename" : "any AnyObject.Type", - "key.typeusr" : "$syXlXpD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(cpy)invalidationContextClass" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func invalidateLayout()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 3528 - } - ], - "key.bodylength" : 229, - "key.bodyoffset" : 3566, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> invalidateLayout<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 259, - "key.line" : 155, - "key.modulename" : "ListableUI", - "key.name" : "invalidateLayout()", - "key.namelength" : 18, - "key.nameoffset" : 3542, - "key.offset" : 3537, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)invalidateLayout" - } - ], - "key.parsed_declaration" : "override func invalidateLayout()", - "key.parsed_scope.end" : 163, - "key.parsed_scope.start" : 155, - "key.related_decls" : [ - { - "key.annotated_decl" : "invalidateLayout(with:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)invalidateLayout" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func invalidateLayout(with context: UICollectionViewLayoutInvalidationContext<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 3802 - } - ], - "key.bodylength" : 957, - "key.bodyoffset" : 3895, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> invalidateLayout<\/decl.name>(with<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: UICollectionViewLayoutInvalidationContext<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1042, - "key.line" : 165, - "key.modulename" : "ListableUI", - "key.name" : "invalidateLayout(with:)", - "key.namelength" : 73, - "key.nameoffset" : 3816, - "key.offset" : 3811, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)invalidateLayoutWithContext:" - } - ], - "key.parsed_declaration" : "override func invalidateLayout(with context: UICollectionViewLayoutInvalidationContext)", - "key.parsed_scope.end" : 198, - "key.parsed_scope.start" : 165, - "key.related_decls" : [ - { - "key.annotated_decl" : "invalidateLayout()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: UICollectionView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: UICollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 31, - "key.line" : 167, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 3908, - "key.offset" : 3904, - "key.parsed_declaration" : "let view = self.collectionView!", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 167, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionView", - "key.typeusr" : "$sSo16UICollectionViewCD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC010invalidateE04withySo012UICollectiondE19InvalidationContextC_tF4viewL_So0hD0Cvp" - }, - { - "key.annotated_decl" : "let context: CollectionViewLayout<\/Type>.InvalidationContext<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> context<\/decl.name>: CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 168, - "key.modulename" : "ListableUI", - "key.name" : "context", - "key.namelength" : 7, - "key.nameoffset" : 3948, - "key.offset" : 3944, - "key.parsed_declaration" : "let context = context as! InvalidationContext", - "key.parsed_scope.end" : 168, - "key.parsed_scope.start" : 168, - "key.reusingastcontext" : false, - "key.typename" : "CollectionViewLayout.InvalidationContext", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLCD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC010invalidateE04withySo012UICollectiondE19InvalidationContextC_tF7contextL0_AC0iJ033_EB34EA08C49AB6823BEA7E315664A1CBLLCvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> (UICollectionViewLayoutInvalidationContext) -> ()", - "key.typeusr" : "$s4withySo41UICollectionViewLayoutInvalidationContextC_tcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)invalidateLayoutWithContext:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func sendEndQueuingEditsAfterDelay()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4859 - } - ], - "key.bodylength" : 1542, - "key.bodyoffset" : 4905, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sendEndQueuingEditsAfterDelay<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1581, - "key.line" : 200, - "key.modulename" : "ListableUI", - "key.name" : "sendEndQueuingEditsAfterDelay()", - "key.namelength" : 31, - "key.nameoffset" : 4872, - "key.offset" : 4867, - "key.parsed_declaration" : "private func sendEndQueuingEditsAfterDelay()", - "key.parsed_scope.end" : 227, - "key.parsed_scope.start" : 200, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC29sendEndQueuingEditsAfterDelay33_EB34EA08C49AB6823BEA7E315664A1CBLLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func invalidationContext(forInteractivelyMovingItems targetIndexPaths: [IndexPath<\/Type>], withTargetPosition targetPosition: CGPoint<\/Type>, previousIndexPaths: [IndexPath<\/Type>], previousPosition: CGPoint<\/Type>) -> UICollectionViewLayoutInvalidationContext<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 6454 - } - ], - "key.bodylength" : 620, - "key.bodyoffset" : 6739, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "\nHello! Welcome to the source code. You're probably wondering why this perform after runloop hack is here.\n\nWell, it is because `UICollectionView` does not play well with removals that occur synchronously\nas a result of a reorder being messaged.\n\nPlease, consider the following:\n\n1) A user begins dragging an item.\n2) They drop the item at the last point in the list; (2,1). The collection view records this index path (2,1).\n3) Via `collectionView(_:moveItemAt:to:)`, we notify the observer(s) of the change.\n4) Synchronously via that notification, they remove the item at (2,0), moving the item now at (2,1) to (2,0).\n\nUnfortunately, this causes `super.invalidateLayout(with: context)` to then fail with an invalid\nindex path; because it seems to take one runloop to let the reorder \"settle\" through the collection view –\nmost notably, the `context.targetIndexPathsForInteractivelyMovingItems` contains an\ninvalid index path – the item which was previously at (2,1) is still there, when it should now be at (2,0).\n\nSo thus, we queue updates a runloop to let the collection view figure its internal state out before we begin\nprocessing any further updates 🥴.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> invalidationContext<\/decl.name>(forInteractivelyMovingItems<\/decl.var.parameter.argument_label> targetIndexPaths<\/decl.var.parameter.name>: [IndexPath<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, withTargetPosition<\/decl.var.parameter.argument_label> targetPosition<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, previousIndexPaths<\/decl.var.parameter.argument_label>: [IndexPath<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, previousPosition<\/decl.var.parameter.argument_label>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutInvalidationContext<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 897, - "key.line" : 229, - "key.modulename" : "ListableUI", - "key.name" : "invalidationContext(forInteractivelyMovingItems:withTargetPosition:previousIndexPaths:previousPosition:)", - "key.namelength" : 220, - "key.nameoffset" : 6468, - "key.offset" : 6463, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)invalidationContextForInteractivelyMovingItems:withTargetPosition:previousIndexPaths:previousPosition:" - } - ], - "key.parsed_declaration" : "override func invalidationContext(\n forInteractivelyMovingItems targetIndexPaths: [IndexPath],\n withTargetPosition targetPosition: CGPoint,\n previousIndexPaths: [IndexPath],\n previousPosition: CGPoint\n) -> UICollectionViewLayoutInvalidationContext", - "key.parsed_scope.end" : 255, - "key.parsed_scope.start" : 229, - "key.related_decls" : [ - { - "key.annotated_decl" : "invalidationContext(forBoundsChange:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "invalidationContext(forPreferredLayoutAttributes:withOriginalAttributes:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let context: CollectionViewLayout<\/Type>.InvalidationContext<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> context<\/decl.name>: CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 280, - "key.line" : 238, - "key.modulename" : "ListableUI", - "key.name" : "context", - "key.namelength" : 7, - "key.nameoffset" : 6786, - "key.offset" : 6782, - "key.parsed_declaration" : "let context = super.invalidationContext(\n forInteractivelyMovingItems: targetIndexPaths,\n withTargetPosition: targetPosition,\n previousIndexPaths: previousIndexPaths,\n previousPosition: previousPosition\n) as! InvalidationContext", - "key.parsed_scope.end" : 238, - "key.parsed_scope.start" : 238, - "key.reusingastcontext" : false, - "key.typename" : "CollectionViewLayout.InvalidationContext", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLCD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19invalidationContext27forInteractivelyMovingItems18withTargetPosition18previousIndexPaths0oN0So012UICollectionde12InvalidationG0CSay10Foundation0P4PathVG_So7CGPointVAnPtF7contextL_AC0sG033_EB34EA08C49AB6823BEA7E315664A1CBLLCvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> ([IndexPath], CGPoint, [IndexPath], CGPoint) -> UICollectionViewLayoutInvalidationContext", - "key.typeusr" : "$s27forInteractivelyMovingItems18withTargetPosition18previousIndexPaths0hG0So41UICollectionViewLayoutInvalidationContextCSay10Foundation0I4PathVG_So7CGPointVAjLtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)invalidationContextForInteractivelyMovingItems:withTargetPosition:previousIndexPaths:previousPosition:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func invalidationContextForEndingInteractiveMovementOfItems(toFinalIndexPaths indexPaths: [IndexPath<\/Type>], previousIndexPaths: [IndexPath<\/Type>], movementCancelled: Bool<\/Type>) -> UICollectionViewLayoutInvalidationContext<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 7366 - } - ], - "key.bodylength" : 832, - "key.bodyoffset" : 7616, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> invalidationContextForEndingInteractiveMovementOfItems<\/decl.name>(toFinalIndexPaths<\/decl.var.parameter.argument_label> indexPaths<\/decl.var.parameter.name>: [IndexPath<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, previousIndexPaths<\/decl.var.parameter.argument_label>: [IndexPath<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, movementCancelled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutInvalidationContext<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1074, - "key.line" : 257, - "key.modulename" : "ListableUI", - "key.name" : "invalidationContextForEndingInteractiveMovementOfItems(toFinalIndexPaths:previousIndexPaths:movementCancelled:)", - "key.namelength" : 185, - "key.nameoffset" : 7380, - "key.offset" : 7375, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)invalidationContextForEndingInteractiveMovementOfItemsToFinalIndexPaths:previousIndexPaths:movementCancelled:" - } - ], - "key.parsed_declaration" : "override func invalidationContextForEndingInteractiveMovementOfItems(\n toFinalIndexPaths indexPaths: [IndexPath],\n previousIndexPaths: [IndexPath],\n movementCancelled: Bool\n) -> UICollectionViewLayoutInvalidationContext", - "key.parsed_scope.end" : 290, - "key.parsed_scope.start" : 257, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let context: CollectionViewLayout<\/Type>.InvalidationContext<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> context<\/decl.name>: CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 253, - "key.line" : 265, - "key.modulename" : "ListableUI", - "key.name" : "context", - "key.namelength" : 7, - "key.nameoffset" : 7664, - "key.offset" : 7660, - "key.parsed_declaration" : "let context = super.invalidationContextForEndingInteractiveMovementOfItems(\n toFinalIndexPaths: indexPaths,\n previousIndexPaths: previousIndexPaths,\n movementCancelled: movementCancelled\n) as! InvalidationContext", - "key.parsed_scope.end" : 265, - "key.parsed_scope.start" : 265, - "key.reusingastcontext" : false, - "key.typename" : "CollectionViewLayout.InvalidationContext", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLCD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC54invalidationContextForEndingInteractiveMovementOfItems17toFinalIndexPaths08previouspQ017movementCancelledSo012UICollectionde12InvalidationG0CSay10Foundation0P4PathVG_AMSbtF7contextL_AC0vG033_EB34EA08C49AB6823BEA7E315664A1CBLLCvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> ([IndexPath], [IndexPath], Bool) -> UICollectionViewLayoutInvalidationContext", - "key.typeusr" : "$s17toFinalIndexPaths08previouscD017movementCancelledSo41UICollectionViewLayoutInvalidationContextCSay10Foundation0C4PathVG_AISbtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)invalidationContextForEndingInteractiveMovementOfItemsToFinalIndexPaths:previousIndexPaths:movementCancelled:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 8455 - } - ], - "key.bodylength" : 25, - "key.bodyoffset" : 8540, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> shouldInvalidateLayout<\/decl.name>(forBoundsChange<\/decl.var.parameter.argument_label> newBounds<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 102, - "key.line" : 292, - "key.modulename" : "ListableUI", - "key.name" : "shouldInvalidateLayout(forBoundsChange:)", - "key.namelength" : 57, - "key.nameoffset" : 8469, - "key.offset" : 8464, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)shouldInvalidateLayoutForBoundsChange:" - } - ], - "key.parsed_declaration" : "override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool", - "key.parsed_scope.end" : 295, - "key.parsed_scope.start" : 292, - "key.related_decls" : [ - { - "key.annotated_decl" : "shouldInvalidateLayout(forPreferredLayoutAttributes:withOriginalAttributes:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (CGRect) -> Bool", - "key.typeusr" : "$s15forBoundsChangeSbSo6CGRectV_tcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)shouldInvalidateLayoutForBoundsChange:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private final class CollectionViewLayout<\/Type>.InvalidationContext : UICollectionViewLayoutInvalidationContext<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 8580 - }, - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 8572 - } - ], - "key.bodylength" : 1064, - "key.bodyoffset" : 8661, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 41, - "key.offset" : 8614 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> CollectionViewLayout<\/ref.class>.InvalidationContext<\/decl.name> : UICollectionViewLayoutInvalidationContext<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UICollectionViewLayoutInvalidationContext" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1140, - "key.line" : 297, - "key.modulename" : "ListableUI", - "key.name" : "InvalidationContext", - "key.namelength" : 19, - "key.nameoffset" : 8592, - "key.offset" : 8586, - "key.parsed_declaration" : "private final class InvalidationContext : UICollectionViewLayoutInvalidationContext", - "key.parsed_scope.end" : 337, - "key.parsed_scope.start" : 297, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var viewPropertiesChanged: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> viewPropertiesChanged<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 299, - "key.modulename" : "ListableUI", - "key.name" : "viewPropertiesChanged", - "key.namelength" : 21, - "key.nameoffset" : 8674, - "key.offset" : 8670, - "key.parsed_declaration" : "var viewPropertiesChanged : Bool = false", - "key.parsed_scope.end" : 299, - "key.parsed_scope.start" : 299, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21viewPropertiesChangedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var interactiveMoveAction: InteractiveMoveAction<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> interactiveMoveAction<\/decl.name>: InteractiveMoveAction<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 56, - "key.line" : 301, - "key.modulename" : "ListableUI", - "key.name" : "interactiveMoveAction", - "key.namelength" : 21, - "key.nameoffset" : 8724, - "key.offset" : 8720, - "key.parsed_declaration" : "var interactiveMoveAction : InteractiveMoveAction? = nil", - "key.parsed_scope.end" : 301, - "key.parsed_scope.start" : 301, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CollectionViewLayout.InvalidationContext.InteractiveMoveAction?", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionOSgD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21interactiveMoveActionAF011InteractiveqR0OSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum CollectionViewLayout<\/Type>.InvalidationContext<\/Type>.InteractiveMoveAction<\/Declaration>", - "key.bodylength" : 905, - "key.bodyoffset" : 8814, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class>.InteractiveMoveAction<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 934, - "key.line" : 303, - "key.modulename" : "ListableUI", - "key.name" : "InteractiveMoveAction", - "key.namelength" : 21, - "key.nameoffset" : 8791, - "key.offset" : 8786, - "key.parsed_declaration" : "enum InteractiveMoveAction", - "key.parsed_scope.end" : 336, - "key.parsed_scope.start" : 303, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 27, - "key.offset" : 8827, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case inProgress(InProgress<\/Type>)<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> inProgress<\/decl.name>(InProgress<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 22, - "key.line" : 304, - "key.modulename" : "ListableUI", - "key.name" : "inProgress(_:)", - "key.namelength" : 22, - "key.nameoffset" : 8832, - "key.offset" : 8832, - "key.parsed_declaration" : "case inProgress(InProgress)", - "key.parsed_scope.end" : 304, - "key.parsed_scope.start" : 304, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout.InvalidationContext.InteractiveMoveAction.Type) -> (CollectionViewLayout.InvalidationContext.InteractiveMoveAction.InProgress) -> CollectionViewLayout.InvalidationContext.InteractiveMoveAction", - "key.typeusr" : "$sy10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionOAH10InProgressVcAHmcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO10inProgressyA2H02InT0VcAHmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 23, - "key.offset" : 8867, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case complete(Complete<\/Type>)<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> complete<\/decl.name>(Complete<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 18, - "key.line" : 305, - "key.modulename" : "ListableUI", - "key.name" : "complete(_:)", - "key.namelength" : 18, - "key.nameoffset" : 8872, - "key.offset" : 8872, - "key.parsed_declaration" : "case complete(Complete)", - "key.parsed_scope.end" : 305, - "key.parsed_scope.start" : 305, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout.InvalidationContext.InteractiveMoveAction.Type) -> (CollectionViewLayout.InvalidationContext.InteractiveMoveAction.Complete) -> CollectionViewLayout.InvalidationContext.InteractiveMoveAction", - "key.typeusr" : "$sy10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionOAH8CompleteVcAHmcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO8completeyA2H8CompleteVcAHmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 25, - "key.offset" : 8903, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case cancelled(Cancelled<\/Type>)<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> cancelled<\/decl.name>(Cancelled<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 20, - "key.line" : 306, - "key.modulename" : "ListableUI", - "key.name" : "cancelled(_:)", - "key.namelength" : 20, - "key.nameoffset" : 8908, - "key.offset" : 8908, - "key.parsed_declaration" : "case cancelled(Cancelled)", - "key.parsed_scope.end" : 306, - "key.parsed_scope.start" : 306, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout.InvalidationContext.InteractiveMoveAction.Type) -> (CollectionViewLayout.InvalidationContext.InteractiveMoveAction.Cancelled) -> CollectionViewLayout.InvalidationContext.InteractiveMoveAction", - "key.typeusr" : "$sy10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionOAH9CancelledVcAHmcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO9cancelledyA2H9CancelledVcAHmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var shouldRelayout: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 289, - "key.bodyoffset" : 8969, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> shouldRelayout<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 317, - "key.line" : 308, - "key.modulename" : "ListableUI", - "key.name" : "shouldRelayout", - "key.namelength" : 14, - "key.nameoffset" : 8946, - "key.offset" : 8942, - "key.parsed_declaration" : "var shouldRelayout : Bool", - "key.parsed_scope.end" : 317, - "key.parsed_scope.start" : 308, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO14shouldRelayoutSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct CollectionViewLayout<\/Type>.InvalidationContext<\/Type>.InteractiveMoveAction<\/Type>.InProgress<\/Declaration>", - "key.bodylength" : 174, - "key.bodyoffset" : 9292, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class>.InteractiveMoveAction<\/ref.enum>.InProgress<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 194, - "key.line" : 319, - "key.modulename" : "ListableUI", - "key.name" : "InProgress", - "key.namelength" : 10, - "key.nameoffset" : 9280, - "key.offset" : 9273, - "key.parsed_declaration" : "struct InProgress", - "key.parsed_scope.end" : 325, - "key.parsed_scope.start" : 319, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var from: [IndexPath<\/Type>]<\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> from<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 320, - "key.modulename" : "ListableUI", - "key.name" : "from", - "key.namelength" : 4, - "key.nameoffset" : 9313, - "key.offset" : 9309, - "key.parsed_declaration" : "var from : [IndexPath]", - "key.parsed_scope.end" : 320, - "key.parsed_scope.start" : 320, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[IndexPath]", - "key.typeusr" : "$sSay10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO10InProgressV4fromSay10Foundation9IndexPathVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var fromPosition: CGPoint<\/Type><\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> fromPosition<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 321, - "key.modulename" : "ListableUI", - "key.name" : "fromPosition", - "key.namelength" : 12, - "key.nameoffset" : 9352, - "key.offset" : 9348, - "key.parsed_declaration" : "var fromPosition : CGPoint", - "key.parsed_scope.end" : 321, - "key.parsed_scope.start" : 321, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO10InProgressV12fromPositionSo7CGPointVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var to: [IndexPath<\/Type>]<\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> to<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 323, - "key.modulename" : "ListableUI", - "key.name" : "to", - "key.namelength" : 2, - "key.nameoffset" : 9396, - "key.offset" : 9392, - "key.parsed_declaration" : "var to : [IndexPath]", - "key.parsed_scope.end" : 323, - "key.parsed_scope.start" : 323, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[IndexPath]", - "key.typeusr" : "$sSay10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO10InProgressV2toSay10Foundation9IndexPathVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var toPosition: CGPoint<\/Type><\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toPosition<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 324, - "key.modulename" : "ListableUI", - "key.name" : "toPosition", - "key.namelength" : 10, - "key.nameoffset" : 9433, - "key.offset" : 9429, - "key.parsed_declaration" : "var toPosition : CGPoint", - "key.parsed_scope.end" : 324, - "key.parsed_scope.start" : 324, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO10InProgressV10toPositionSo7CGPointVvp" - } - ], - "key.typename" : "CollectionViewLayout.InvalidationContext.InteractiveMoveAction.InProgress.Type", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO10InProgressVmD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO10InProgressV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct CollectionViewLayout<\/Type>.InvalidationContext<\/Type>.InteractiveMoveAction<\/Type>.Complete<\/Declaration>", - "key.bodylength" : 89, - "key.bodyoffset" : 9498, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class>.InteractiveMoveAction<\/ref.enum>.Complete<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 107, - "key.line" : 327, - "key.modulename" : "ListableUI", - "key.name" : "Complete", - "key.namelength" : 8, - "key.nameoffset" : 9488, - "key.offset" : 9481, - "key.parsed_declaration" : "struct Complete", - "key.parsed_scope.end" : 330, - "key.parsed_scope.start" : 327, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var from: [IndexPath<\/Type>]<\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> from<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 328, - "key.modulename" : "ListableUI", - "key.name" : "from", - "key.namelength" : 4, - "key.nameoffset" : 9519, - "key.offset" : 9515, - "key.parsed_declaration" : "var from : [IndexPath]", - "key.parsed_scope.end" : 328, - "key.parsed_scope.start" : 328, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[IndexPath]", - "key.typeusr" : "$sSay10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO8CompleteV4fromSay10Foundation9IndexPathVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var to: [IndexPath<\/Type>]<\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> to<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 329, - "key.modulename" : "ListableUI", - "key.name" : "to", - "key.namelength" : 2, - "key.nameoffset" : 9558, - "key.offset" : 9554, - "key.parsed_declaration" : "var to : [IndexPath]", - "key.parsed_scope.end" : 329, - "key.parsed_scope.start" : 329, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[IndexPath]", - "key.typeusr" : "$sSay10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO8CompleteV2toSay10Foundation9IndexPathVGvp" - } - ], - "key.typename" : "CollectionViewLayout.InvalidationContext.InteractiveMoveAction.Complete.Type", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO8CompleteVmD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO8CompleteV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct CollectionViewLayout<\/Type>.InvalidationContext<\/Type>.InteractiveMoveAction<\/Type>.Cancelled<\/Declaration>", - "key.bodylength" : 89, - "key.bodyoffset" : 9620, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class>.InteractiveMoveAction<\/ref.enum>.Cancelled<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 108, - "key.line" : 332, - "key.modulename" : "ListableUI", - "key.name" : "Cancelled", - "key.namelength" : 9, - "key.nameoffset" : 9609, - "key.offset" : 9602, - "key.parsed_declaration" : "struct Cancelled", - "key.parsed_scope.end" : 335, - "key.parsed_scope.start" : 332, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var from: [IndexPath<\/Type>]<\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> from<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 333, - "key.modulename" : "ListableUI", - "key.name" : "from", - "key.namelength" : 4, - "key.nameoffset" : 9641, - "key.offset" : 9637, - "key.parsed_declaration" : "var from : [IndexPath]", - "key.parsed_scope.end" : 333, - "key.parsed_scope.start" : 333, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[IndexPath]", - "key.typeusr" : "$sSay10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO9CancelledV4fromSay10Foundation9IndexPathVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var to: [IndexPath<\/Type>]<\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> to<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 334, - "key.modulename" : "ListableUI", - "key.name" : "to", - "key.namelength" : 2, - "key.nameoffset" : 9680, - "key.offset" : 9676, - "key.parsed_declaration" : "var to : [IndexPath]", - "key.parsed_scope.end" : 334, - "key.parsed_scope.start" : 334, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[IndexPath]", - "key.typeusr" : "$sSay10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO9CancelledV2toSay10Foundation9IndexPathVGvp" - } - ], - "key.typename" : "CollectionViewLayout.InvalidationContext.InteractiveMoveAction.Cancelled.Type", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO9CancelledVmD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO9CancelledV" - } - ], - "key.typename" : "CollectionViewLayout.InvalidationContext.InteractiveMoveAction.Type", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionOmD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC21InteractiveMoveActionO" - } - ], - "key.typename" : "CollectionViewLayout.InvalidationContext.Type", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLCmD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLC" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 27, - "key.name" : "MARK: Preparing For Layouts", - "key.offset" : 9742 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private enum CollectionViewLayout<\/Type>.NeededLayoutType<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 9782 - } - ], - "key.bodylength" : 1140, - "key.bodyoffset" : 9813, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> CollectionViewLayout<\/ref.class>.NeededLayoutType<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1164, - "key.line" : 343, - "key.modulename" : "ListableUI", - "key.name" : "NeededLayoutType", - "key.namelength" : 16, - "key.nameoffset" : 9795, - "key.offset" : 9790, - "key.parsed_declaration" : "private enum NeededLayoutType", - "key.parsed_scope.end" : 383, - "key.parsed_scope.start" : 343, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 9822, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 344, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 9827, - "key.offset" : 9827, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 344, - "key.parsed_scope.start" : 344, - "key.reusingastcontext" : false, - "key.typename" : "(CollectionViewLayout.NeededLayoutType.Type) -> CollectionViewLayout.NeededLayoutType", - "key.typeusr" : "$sy10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLOAFmcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO4noneyA2FmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 9840, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case relayout<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> relayout<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 345, - "key.modulename" : "ListableUI", - "key.name" : "relayout", - "key.namelength" : 8, - "key.nameoffset" : 9845, - "key.offset" : 9845, - "key.parsed_declaration" : "case relayout", - "key.parsed_scope.end" : 345, - "key.parsed_scope.start" : 345, - "key.reusingastcontext" : false, - "key.typename" : "(CollectionViewLayout.NeededLayoutType.Type) -> CollectionViewLayout.NeededLayoutType", - "key.typeusr" : "$sy10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLOAFmcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO8relayoutyA2FmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 9862, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case rebuild<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> rebuild<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 346, - "key.modulename" : "ListableUI", - "key.name" : "rebuild", - "key.namelength" : 7, - "key.nameoffset" : 9867, - "key.offset" : 9867, - "key.parsed_declaration" : "case rebuild", - "key.parsed_scope.end" : 346, - "key.parsed_scope.start" : 346, - "key.reusingastcontext" : false, - "key.typename" : "(CollectionViewLayout.NeededLayoutType.Type) -> CollectionViewLayout.NeededLayoutType", - "key.typeusr" : "$sy10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLOAFmcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO7rebuildyA2FmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "mutating func merge(with context: UICollectionViewLayoutInvalidationContext<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 9884 - } - ], - "key.bodylength" : 478, - "key.bodyoffset" : 9971, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> merge<\/decl.name>(with<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: UICollectionViewLayoutInvalidationContext<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 557, - "key.line" : 348, - "key.modulename" : "ListableUI", - "key.name" : "merge(with:)", - "key.namelength" : 63, - "key.nameoffset" : 9898, - "key.offset" : 9893, - "key.parsed_declaration" : "mutating func merge(with context : UICollectionViewLayoutInvalidationContext)", - "key.parsed_scope.end" : 360, - "key.parsed_scope.start" : 348, - "key.related_decls" : [ - { - "key.annotated_decl" : "merge(with: NeededLayoutType)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let context: CollectionViewLayout<\/Type>.InvalidationContext<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> context<\/decl.name>: CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 350, - "key.modulename" : "ListableUI", - "key.name" : "context", - "key.namelength" : 7, - "key.nameoffset" : 9988, - "key.offset" : 9984, - "key.parsed_declaration" : "let context = context as! InvalidationContext", - "key.parsed_scope.end" : 350, - "key.parsed_scope.start" : 350, - "key.reusingastcontext" : false, - "key.typename" : "CollectionViewLayout.InvalidationContext", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC19InvalidationContext33_EB34EA08C49AB6823BEA7E315664A1CBLLCD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO5merge4withySo012UICollectiondE19InvalidationContextC_tF7contextL0_AC0sT0AELLCvp" - }, - { - "key.annotated_decl" : "let requeryDataSourceCounts: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> requeryDataSourceCounts<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 96, - "key.line" : 352, - "key.modulename" : "ListableUI", - "key.name" : "requeryDataSourceCounts", - "key.namelength" : 23, - "key.nameoffset" : 10047, - "key.offset" : 10043, - "key.parsed_declaration" : "let requeryDataSourceCounts = context.invalidateEverything || context.invalidateDataSourceCounts", - "key.parsed_scope.end" : 352, - "key.parsed_scope.start" : 352, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO5merge4withySo012UICollectiondE19InvalidationContextC_tF23requeryDataSourceCountsL_Sbvp" - }, - { - "key.annotated_decl" : "let needsRelayout: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> needsRelayout<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 107, - "key.line" : 353, - "key.modulename" : "ListableUI", - "key.name" : "needsRelayout", - "key.namelength" : 13, - "key.nameoffset" : 10156, - "key.offset" : 10152, - "key.parsed_declaration" : "let needsRelayout = context.viewPropertiesChanged || context.interactiveMoveAction?.shouldRelayout ?? false", - "key.parsed_scope.end" : 353, - "key.parsed_scope.start" : 353, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO5merge4withySo012UICollectiondE19InvalidationContextC_tF13needsRelayoutL_Sbvp" - } - ], - "key.typename" : "(inout CollectionViewLayout.NeededLayoutType) -> (UICollectionViewLayoutInvalidationContext) -> ()", - "key.typeusr" : "$s4withySo41UICollectionViewLayoutInvalidationContextC_tcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO5merge4withySo012UICollectiondE19InvalidationContextC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "mutating func merge(with new: NeededLayoutType<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 10460 - } - ], - "key.bodylength" : 96, - "key.bodyoffset" : 10518, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> merge<\/decl.name>(with<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: NeededLayoutType<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 146, - "key.line" : 362, - "key.modulename" : "ListableUI", - "key.name" : "merge(with:)", - "key.namelength" : 34, - "key.nameoffset" : 10474, - "key.offset" : 10469, - "key.parsed_declaration" : "mutating func merge(with new : NeededLayoutType)", - "key.parsed_scope.end" : 367, - "key.parsed_scope.start" : 362, - "key.related_decls" : [ - { - "key.annotated_decl" : "merge(with: UICollectionViewLayoutInvalidationContext)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout CollectionViewLayout.NeededLayoutType) -> (CollectionViewLayout.NeededLayoutType) -> ()", - "key.typeusr" : "$s4withy10ListableUI20CollectionViewLayoutC06NeededF4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO_tcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO5merge4withyAF_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var priority: Int<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 10625 - } - ], - "key.bodylength" : 155, - "key.bodyoffset" : 10653, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> priority<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 176, - "key.line" : 369, - "key.modulename" : "ListableUI", - "key.name" : "priority", - "key.namelength" : 8, - "key.nameoffset" : 10637, - "key.offset" : 10633, - "key.parsed_declaration" : "private var priority : Int", - "key.parsed_scope.end" : 375, - "key.parsed_scope.start" : 369, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO8prioritySivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "mutating func update(with success: Bool<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 10819 - } - ], - "key.bodylength" : 77, - "key.bodyoffset" : 10870, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> success<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 120, - "key.line" : 377, - "key.modulename" : "ListableUI", - "key.name" : "update(with:)", - "key.namelength" : 27, - "key.nameoffset" : 10833, - "key.offset" : 10828, - "key.parsed_declaration" : "mutating func update(with success : Bool)", - "key.parsed_scope.end" : 382, - "key.parsed_scope.start" : 377, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout CollectionViewLayout.NeededLayoutType) -> (Bool) -> ()", - "key.typeusr" : "$s4withySb_tcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO6update4withySb_tF" - } - ], - "key.typename" : "CollectionViewLayout.NeededLayoutType.Type", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLOmD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var neededLayoutType: NeededLayoutType<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 10960 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> neededLayoutType<\/decl.name>: NeededLayoutType<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 385, - "key.modulename" : "ListableUI", - "key.name" : "neededLayoutType", - "key.namelength" : 16, - "key.nameoffset" : 10972, - "key.offset" : 10968, - "key.parsed_declaration" : "private var neededLayoutType : NeededLayoutType = .rebuild", - "key.parsed_scope.end" : 385, - "key.parsed_scope.start" : 385, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CollectionViewLayout.NeededLayoutType", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutC06NeededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLOD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC06neededE4Type33_EB34EA08C49AB6823BEA7E315664A1CBLLAC06NeededeG0AELLOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func prepare()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 11024 - } - ], - "key.bodylength" : 812, - "key.bodyoffset" : 11053, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> prepare<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 833, - "key.line" : 387, - "key.modulename" : "ListableUI", - "key.name" : "prepare()", - "key.namelength" : 9, - "key.nameoffset" : 11038, - "key.offset" : 11033, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)prepareLayout" - } - ], - "key.parsed_declaration" : "override func prepare()", - "key.parsed_scope.end" : 418, - "key.parsed_scope.start" : 387, - "key.related_decls" : [ - { - "key.annotated_decl" : "prepare(forCollectionViewUpdates:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "prepare(forAnimatedBoundsChange:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let size: CGSize<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 393, - "key.modulename" : "ListableUI", - "key.name" : "size", - "key.namelength" : 4, - "key.nameoffset" : 11156, - "key.offset" : 11152, - "key.parsed_declaration" : "let size = self.collectionView?.bounds.size ?? .zero", - "key.parsed_scope.end" : 393, - "key.parsed_scope.start" : 393, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC7prepareyyF4sizeL_So6CGSizeVvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)prepareLayout" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func prepare(forCollectionViewUpdates updateItems: [UICollectionViewUpdateItem<\/Type>])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 11872 - } - ], - "key.bodylength" : 140, - "key.bodyoffset" : 11967, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> prepare<\/decl.name>(forCollectionViewUpdates<\/decl.var.parameter.argument_label> updateItems<\/decl.var.parameter.name>: [UICollectionViewUpdateItem<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 227, - "key.line" : 420, - "key.modulename" : "ListableUI", - "key.name" : "prepare(forCollectionViewUpdates:)", - "key.namelength" : 75, - "key.nameoffset" : 11886, - "key.offset" : 11881, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)prepareForCollectionViewUpdates:" - } - ], - "key.parsed_declaration" : "override func prepare(forCollectionViewUpdates updateItems: [UICollectionViewUpdateItem])", - "key.parsed_scope.end" : 425, - "key.parsed_scope.start" : 420, - "key.related_decls" : [ - { - "key.annotated_decl" : "prepare()<\/RelatedName>" - }, - { - "key.annotated_decl" : "prepare(forAnimatedBoundsChange:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> ([UICollectionViewUpdateItem]) -> ()", - "key.typeusr" : "$s24forCollectionViewUpdatesySaySo012UICollectionC10UpdateItemCG_tcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)prepareForCollectionViewUpdates:" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Finishing Layouts", - "key.offset" : 12124 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func finalizeCollectionViewUpdates()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 12160 - } - ], - "key.bodylength" : 116, - "key.bodyoffset" : 12211, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> finalizeCollectionViewUpdates<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 159, - "key.line" : 431, - "key.modulename" : "ListableUI", - "key.name" : "finalizeCollectionViewUpdates()", - "key.namelength" : 31, - "key.nameoffset" : 12174, - "key.offset" : 12169, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)finalizeCollectionViewUpdates" - } - ], - "key.parsed_declaration" : "override func finalizeCollectionViewUpdates()", - "key.parsed_scope.end" : 436, - "key.parsed_scope.start" : 431, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)finalizeCollectionViewUpdates" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Performing Layouts", - "key.offset" : 12344 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func performRebuild(andLayout layout: Bool<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 12381 - } - ], - "key.bodylength" : 634, - "key.bodyoffset" : 12439, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performRebuild<\/decl.name>(andLayout<\/decl.var.parameter.argument_label> layout<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 685, - "key.line" : 442, - "key.modulename" : "ListableUI", - "key.name" : "performRebuild(andLayout:)", - "key.namelength" : 39, - "key.nameoffset" : 12394, - "key.offset" : 12389, - "key.parsed_declaration" : "private func performRebuild(andLayout layout : Bool)", - "key.parsed_scope.end" : 464, - "key.parsed_scope.start" : 442, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (Bool) -> ()", - "key.typeusr" : "$s9andLayoutySb_tcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC14performRebuild33_EB34EA08C49AB6823BEA7E315664A1CBLL03andE0ySb_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func performLayout()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 13080 - } - ], - "key.bodylength" : 398, - "key.bodyoffset" : 13114, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performLayout<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 425, - "key.line" : 466, - "key.modulename" : "ListableUI", - "key.name" : "performLayout()", - "key.namelength" : 15, - "key.nameoffset" : 13093, - "key.offset" : 13088, - "key.parsed_declaration" : "private func performLayout()", - "key.parsed_scope.end" : 481, - "key.parsed_scope.start" : 466, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: UICollectionView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: UICollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 31, - "key.line" : 468, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 13127, - "key.offset" : 13123, - "key.parsed_declaration" : "let view = self.collectionView!", - "key.parsed_scope.end" : 468, - "key.parsed_scope.start" : 468, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionView", - "key.typeusr" : "$sSo16UICollectionViewCD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07performE033_EB34EA08C49AB6823BEA7E315664A1CBLLyyF4viewL_So012UICollectionD0Cvp" - }, - { - "key.annotated_decl" : "let context: ListLayoutLayoutContext<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> context<\/decl.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 156, - "key.line" : 470, - "key.modulename" : "ListableUI", - "key.name" : "context", - "key.namelength" : 7, - "key.nameoffset" : 13168, - "key.offset" : 13164, - "key.parsed_declaration" : "let context = ListLayoutLayoutContext(\n collectionView: view,\n environment: self.delegate.listViewLayoutCurrentEnvironment()\n)", - "key.parsed_scope.end" : 470, - "key.parsed_scope.start" : 470, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutLayoutContext", - "key.typeusr" : "$s10ListableUI010ListLayoutD7ContextVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07performE033_EB34EA08C49AB6823BEA7E315664A1CBLLyyF7contextL_AA04ListeE7ContextVvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07performE033_EB34EA08C49AB6823BEA7E315664A1CBLLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func performLayoutUpdate()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 13519 - } - ], - "key.bodylength" : 395, - "key.bodyoffset" : 13559, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performLayoutUpdate<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 428, - "key.line" : 483, - "key.modulename" : "ListableUI", - "key.name" : "performLayoutUpdate()", - "key.namelength" : 21, - "key.nameoffset" : 13532, - "key.offset" : 13527, - "key.parsed_declaration" : "private func performLayoutUpdate()", - "key.parsed_scope.end" : 496, - "key.parsed_scope.start" : 483, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: UICollectionView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: UICollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 31, - "key.line" : 485, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 13572, - "key.offset" : 13568, - "key.parsed_declaration" : "let view = self.collectionView!", - "key.parsed_scope.end" : 485, - "key.parsed_scope.start" : 485, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionView", - "key.typeusr" : "$sSo16UICollectionViewCD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07performE6Update33_EB34EA08C49AB6823BEA7E315664A1CBLLyyF4viewL_So012UICollectionD0Cvp" - }, - { - "key.annotated_decl" : "let context: ListLayoutLayoutContext<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> context<\/decl.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 156, - "key.line" : 487, - "key.modulename" : "ListableUI", - "key.name" : "context", - "key.namelength" : 7, - "key.nameoffset" : 13613, - "key.offset" : 13609, - "key.parsed_declaration" : "let context = ListLayoutLayoutContext(\n collectionView: view,\n environment: self.delegate.listViewLayoutCurrentEnvironment()\n)", - "key.parsed_scope.end" : 487, - "key.parsed_scope.start" : 487, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutLayoutContext", - "key.typeusr" : "$s10ListableUI010ListLayoutD7ContextVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07performE6Update33_EB34EA08C49AB6823BEA7E315664A1CBLLyyF7contextL_AA04ListeE7ContextVvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07performE6Update33_EB34EA08C49AB6823BEA7E315664A1CBLLyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 36, - "key.name" : "MARK: UICollectionViewLayout Methods", - "key.offset" : 13971 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override var collectionViewContentSize: CGSize<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 14020 - } - ], - "key.bodylength" : 52, - "key.bodyoffset" : 14073, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> collectionViewContentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 97, - "key.line" : 502, - "key.modulename" : "ListableUI", - "key.name" : "collectionViewContentSize", - "key.namelength" : 25, - "key.nameoffset" : 14033, - "key.offset" : 14029, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(py)collectionViewContentSize" - } - ], - "key.parsed_declaration" : "override var collectionViewContentSize : CGSize", - "key.parsed_scope.end" : 505, - "key.parsed_scope.start" : 502, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(py)collectionViewContentSize" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutAttributesForElements(in rect: CGRect<\/Type>) -> [UICollectionViewLayoutAttributes<\/Type>]?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 14132 - } - ], - "key.bodylength" : 98, - "key.bodyoffset" : 14235, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutAttributesForElements<\/decl.name>(in<\/decl.var.parameter.argument_label> rect<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [UICollectionViewLayoutAttributes<\/ref.class>]?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 193, - "key.line" : 507, - "key.modulename" : "ListableUI", - "key.name" : "layoutAttributesForElements(in:)", - "key.namelength" : 44, - "key.nameoffset" : 14146, - "key.offset" : 14141, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)layoutAttributesForElementsInRect:" - } - ], - "key.parsed_declaration" : "override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]?", - "key.parsed_scope.end" : 510, - "key.parsed_scope.start" : 507, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (CGRect) -> [UICollectionViewLayoutAttributes]?", - "key.typeusr" : "$s2inSaySo32UICollectionViewLayoutAttributesCGSgSo6CGRectV_tcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)layoutAttributesForElementsInRect:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func visibleLayoutAttributesForElements(in rect: CGRect<\/Type>) -> [UICollectionViewLayoutAttributes<\/Type>]?<\/Declaration>", - "key.bodylength" : 99, - "key.bodyoffset" : 14441, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> visibleLayoutAttributesForElements<\/decl.name>(in<\/decl.var.parameter.argument_label> rect<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [UICollectionViewLayoutAttributes<\/ref.class>]?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 201, - "key.line" : 512, - "key.modulename" : "ListableUI", - "key.name" : "visibleLayoutAttributesForElements(in:)", - "key.namelength" : 51, - "key.nameoffset" : 14345, - "key.offset" : 14340, - "key.parsed_declaration" : "func visibleLayoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]?", - "key.parsed_scope.end" : 515, - "key.parsed_scope.start" : 512, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (CGRect) -> [UICollectionViewLayoutAttributes]?", - "key.typeusr" : "$s2inSaySo32UICollectionViewLayoutAttributesCGSgSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07visibleE21AttributesForElements2inSaySo012UICollectiondeG0CGSgSo6CGRectV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutAttributesForItem(at indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 14547 - } - ], - "key.bodylength" : 72, - "key.bodyoffset" : 14652, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutAttributesForItem<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 169, - "key.line" : 517, - "key.modulename" : "ListableUI", - "key.name" : "layoutAttributesForItem(at:)", - "key.namelength" : 48, - "key.nameoffset" : 14561, - "key.offset" : 14556, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)layoutAttributesForItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "override func layoutAttributesForItem(at indexPath: IndexPath) -> UICollectionViewLayoutAttributes?", - "key.parsed_scope.end" : 520, - "key.parsed_scope.start" : 517, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (IndexPath) -> UICollectionViewLayoutAttributes?", - "key.typeusr" : "$s2atSo32UICollectionViewLayoutAttributesCSg10Foundation9IndexPathV_tcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)layoutAttributesForItemAtIndexPath:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override func layoutAttributesForSupplementaryView(ofKind elementKind: String<\/Type>, at indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 14738 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14731 - } - ], - "key.bodylength" : 102, - "key.bodyoffset" : 14884, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutAttributesForSupplementaryView<\/decl.name>(ofKind<\/decl.var.parameter.argument_label> elementKind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 240, - "key.line" : 522, - "key.modulename" : "ListableUI", - "key.name" : "layoutAttributesForSupplementaryView(ofKind:at:)", - "key.namelength" : 89, - "key.nameoffset" : 14752, - "key.offset" : 14747, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)layoutAttributesForSupplementaryViewOfKind:atIndexPath:" - } - ], - "key.parsed_declaration" : "public override func layoutAttributesForSupplementaryView(ofKind elementKind: String, at indexPath: IndexPath) -> UICollectionViewLayoutAttributes?", - "key.parsed_scope.end" : 525, - "key.parsed_scope.start" : 522, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (String, IndexPath) -> UICollectionViewLayoutAttributes?", - "key.typeusr" : "$s6ofKind2atSo32UICollectionViewLayoutAttributesCSgSS_10Foundation9IndexPathVtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)layoutAttributesForSupplementaryViewOfKind:atIndexPath:" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 59, - "key.name" : "MARK: UICollectionViewLayout Methods: Insertions & Removals", - "key.offset" : 15003 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func animations(for item: ListLayoutContent<\/Type>.ItemInfo<\/Type>) -> ItemInsertAndRemoveAnimations<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 15075 - } - ], - "key.bodylength" : 158, - "key.bodyoffset" : 15172, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> animations<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 248, - "key.line" : 531, - "key.modulename" : "ListableUI", - "key.name" : "animations(for:)", - "key.namelength" : 49, - "key.nameoffset" : 15088, - "key.offset" : 15083, - "key.parsed_declaration" : "private func animations(for item : ListLayoutContent.ItemInfo) -> ItemInsertAndRemoveAnimations", - "key.parsed_scope.end" : 537, - "key.parsed_scope.start" : 531, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (ListLayoutContent.ItemInfo) -> ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s3for10ListableUI29ItemInsertAndRemoveAnimationsVAB17ListLayoutContentC0D4InfoC_tcD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC10animations33_EB34EA08C49AB6823BEA7E315664A1CBLL3forAA29ItemInsertAndRemoveAnimationsVAA04ListE7ContentC0P4InfoC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func initialLayoutAttributesForAppearingItem(at itemIndexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 15337 - } - ], - "key.bodylength" : 922, - "key.bodyoffset" : 15462, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> initialLayoutAttributesForAppearingItem<\/decl.name>(at<\/decl.var.parameter.argument_label> itemIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1039, - "key.line" : 539, - "key.modulename" : "ListableUI", - "key.name" : "initialLayoutAttributesForAppearingItem(at:)", - "key.namelength" : 68, - "key.nameoffset" : 15351, - "key.offset" : 15346, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)initialLayoutAttributesForAppearingItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "override func initialLayoutAttributesForAppearingItem(at itemIndexPath: IndexPath) -> UICollectionViewLayoutAttributes?", - "key.parsed_scope.end" : 564, - "key.parsed_scope.start" : 539, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let wasInserted: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wasInserted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 108, - "key.line" : 541, - "key.modulename" : "ListableUI", - "key.name" : "wasInserted", - "key.namelength" : 11, - "key.nameoffset" : 15475, - "key.offset" : 15471, - "key.parsed_declaration" : "let wasInserted = self.changesDuringCurrentUpdate.insertedItems.contains(.init(newIndexPath: itemIndexPath))", - "key.parsed_scope.end" : 541, - "key.parsed_scope.start" : 541, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07initialE26AttributesForAppearingItem2atSo012UICollectiondeG0CSg10Foundation9IndexPathV_tF11wasInsertedL_Sbvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> (IndexPath) -> UICollectionViewLayoutAttributes?", - "key.typeusr" : "$s2atSo32UICollectionViewLayoutAttributesCSg10Foundation9IndexPathV_tcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)initialLayoutAttributesForAppearingItemAtIndexPath:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func finalLayoutAttributesForDisappearingItem(at itemIndexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 16391 - } - ], - "key.bodylength" : 934, - "key.bodyoffset" : 16517, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> finalLayoutAttributesForDisappearingItem<\/decl.name>(at<\/decl.var.parameter.argument_label> itemIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1052, - "key.line" : 566, - "key.modulename" : "ListableUI", - "key.name" : "finalLayoutAttributesForDisappearingItem(at:)", - "key.namelength" : 69, - "key.nameoffset" : 16405, - "key.offset" : 16400, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)finalLayoutAttributesForDisappearingItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "override func finalLayoutAttributesForDisappearingItem(at itemIndexPath: IndexPath) -> UICollectionViewLayoutAttributes?", - "key.parsed_scope.end" : 591, - "key.parsed_scope.start" : 566, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let wasItemDeleted: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wasItemDeleted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 110, - "key.line" : 568, - "key.modulename" : "ListableUI", - "key.name" : "wasItemDeleted", - "key.namelength" : 14, - "key.nameoffset" : 16530, - "key.offset" : 16526, - "key.parsed_declaration" : "let wasItemDeleted = self.changesDuringCurrentUpdate.deletedItems.contains(.init(oldIndexPath: itemIndexPath))", - "key.parsed_scope.end" : 568, - "key.parsed_scope.start" : 568, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC05finalE29AttributesForDisappearingItem2atSo012UICollectiondeG0CSg10Foundation9IndexPathV_tF03wasJ7DeletedL_Sbvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> (IndexPath) -> UICollectionViewLayoutAttributes?", - "key.typeusr" : "$s2atSo32UICollectionViewLayoutAttributesCSg10Foundation9IndexPathV_tcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)finalLayoutAttributesForDisappearingItemAtIndexPath:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func initialLayoutAttributesForAppearingSupplementaryElement(ofKind elementKind: String<\/Type>, at elementIndexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 17458 - } - ], - "key.bodylength" : 370, - "key.bodyoffset" : 17630, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> initialLayoutAttributesForAppearingSupplementaryElement<\/decl.name>(ofKind<\/decl.var.parameter.argument_label> elementKind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> elementIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 534, - "key.line" : 593, - "key.modulename" : "ListableUI", - "key.name" : "initialLayoutAttributesForAppearingSupplementaryElement(ofKind:at:)", - "key.namelength" : 115, - "key.nameoffset" : 17472, - "key.offset" : 17467, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)initialLayoutAttributesForAppearingSupplementaryElementOfKind:atIndexPath:" - } - ], - "key.parsed_declaration" : "override func initialLayoutAttributesForAppearingSupplementaryElement(ofKind elementKind: String, at elementIndexPath: IndexPath) -> UICollectionViewLayoutAttributes?", - "key.parsed_scope.end" : 603, - "key.parsed_scope.start" : 593, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let wasInserted: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wasInserted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 118, - "key.line" : 595, - "key.modulename" : "ListableUI", - "key.name" : "wasInserted", - "key.namelength" : 11, - "key.nameoffset" : 17643, - "key.offset" : 17639, - "key.parsed_declaration" : "let wasInserted = self.changesDuringCurrentUpdate.insertedSections.contains(.init(newIndex: elementIndexPath.section))", - "key.parsed_scope.end" : 595, - "key.parsed_scope.start" : 595, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07initialE42AttributesForAppearingSupplementaryElement6ofKind2atSo012UICollectiondeG0CSgSS_10Foundation9IndexPathVtF11wasInsertedL_Sbvp" - }, - { - "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 121, - "key.line" : 596, - "key.modulename" : "ListableUI", - "key.name" : "attributes", - "key.namelength" : 10, - "key.nameoffset" : 17770, - "key.offset" : 17766, - "key.parsed_declaration" : "let attributes = super.initialLayoutAttributesForAppearingSupplementaryElement(ofKind: elementKind, at: elementIndexPath)", - "key.parsed_scope.end" : 596, - "key.parsed_scope.start" : 596, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionViewLayoutAttributes?", - "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCSgD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC07initialE42AttributesForAppearingSupplementaryElement6ofKind2atSo012UICollectiondeG0CSgSS_10Foundation9IndexPathVtF10attributesL_AIvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> (String, IndexPath) -> UICollectionViewLayoutAttributes?", - "key.typeusr" : "$s6ofKind2atSo32UICollectionViewLayoutAttributesCSgSS_10Foundation9IndexPathVtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)initialLayoutAttributesForAppearingSupplementaryElementOfKind:atIndexPath:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func finalLayoutAttributesForDisappearingSupplementaryElement(ofKind elementKind: String<\/Type>, at elementIndexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 18007 - } - ], - "key.bodylength" : 368, - "key.bodyoffset" : 18180, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> finalLayoutAttributesForDisappearingSupplementaryElement<\/decl.name>(ofKind<\/decl.var.parameter.argument_label> elementKind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> elementIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 533, - "key.line" : 605, - "key.modulename" : "ListableUI", - "key.name" : "finalLayoutAttributesForDisappearingSupplementaryElement(ofKind:at:)", - "key.namelength" : 116, - "key.nameoffset" : 18021, - "key.offset" : 18016, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)finalLayoutAttributesForDisappearingSupplementaryElementOfKind:atIndexPath:" - } - ], - "key.parsed_declaration" : "override func finalLayoutAttributesForDisappearingSupplementaryElement(ofKind elementKind: String, at elementIndexPath: IndexPath) -> UICollectionViewLayoutAttributes?", - "key.parsed_scope.end" : 615, - "key.parsed_scope.start" : 605, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let wasDeleted: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wasDeleted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 116, - "key.line" : 607, - "key.modulename" : "ListableUI", - "key.name" : "wasDeleted", - "key.namelength" : 10, - "key.nameoffset" : 18193, - "key.offset" : 18189, - "key.parsed_declaration" : "let wasDeleted = self.changesDuringCurrentUpdate.deletedSections.contains(.init(oldIndex: elementIndexPath.section))", - "key.parsed_scope.end" : 607, - "key.parsed_scope.start" : 607, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC05finalE45AttributesForDisappearingSupplementaryElement6ofKind2atSo012UICollectiondeG0CSgSS_10Foundation9IndexPathVtF10wasDeletedL_Sbvp" - }, - { - "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 122, - "key.line" : 608, - "key.modulename" : "ListableUI", - "key.name" : "attributes", - "key.namelength" : 10, - "key.nameoffset" : 18318, - "key.offset" : 18314, - "key.parsed_declaration" : "let attributes = super.finalLayoutAttributesForDisappearingSupplementaryElement(ofKind: elementKind, at: elementIndexPath)", - "key.parsed_scope.end" : 608, - "key.parsed_scope.start" : 608, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionViewLayoutAttributes?", - "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCSgD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC05finalE45AttributesForDisappearingSupplementaryElement6ofKind2atSo012UICollectiondeG0CSgSS_10Foundation9IndexPathVtF10attributesL_AIvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> (String, IndexPath) -> UICollectionViewLayoutAttributes?", - "key.typeusr" : "$s6ofKind2atSo32UICollectionViewLayoutAttributesCSgSS_10Foundation9IndexPathVtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)finalLayoutAttributesForDisappearingSupplementaryElementOfKind:atIndexPath:" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 50, - "key.name" : "MARK: UICollectionViewLayout Methods: Moving Items", - "key.offset" : 18565 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func targetIndexPath(forInteractivelyMovingItem previousIndexPath: IndexPath<\/Type>, withPosition position: CGPoint<\/Type>) -> IndexPath<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 18628 - } - ], - "key.bodylength" : 533, - "key.bodyoffset" : 18783, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> targetIndexPath<\/decl.name>(forInteractivelyMovingItem<\/decl.var.parameter.argument_label> previousIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withPosition<\/decl.var.parameter.argument_label> position<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 680, - "key.line" : 621, - "key.modulename" : "ListableUI", - "key.name" : "targetIndexPath(forInteractivelyMovingItem:withPosition:)", - "key.namelength" : 126, - "key.nameoffset" : 18642, - "key.offset" : 18637, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)targetIndexPathForInteractivelyMovingItem:withPosition:" - } - ], - "key.parsed_declaration" : "override func targetIndexPath(\n forInteractivelyMovingItem previousIndexPath: IndexPath,\n withPosition position: CGPoint\n) -> IndexPath", - "key.parsed_scope.end" : 637, - "key.parsed_scope.start" : 621, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayout) -> (IndexPath, CGPoint) -> IndexPath", - "key.typeusr" : "$s26forInteractivelyMovingItem12withPosition10Foundation9IndexPathVAE_So7CGPointVtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)targetIndexPathForInteractivelyMovingItem:withPosition:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override func layoutAttributesForInteractivelyMovingItem(at indexPath: IndexPath<\/Type>, withTargetPosition position: CGPoint<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 19323 - } - ], - "key.bodylength" : 581, - "key.bodyoffset" : 19506, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutAttributesForInteractivelyMovingItem<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withTargetPosition<\/decl.var.parameter.argument_label> position<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 756, - "key.line" : 639, - "key.modulename" : "ListableUI", - "key.name" : "layoutAttributesForInteractivelyMovingItem(at:withTargetPosition:)", - "key.namelength" : 127, - "key.nameoffset" : 19337, - "key.offset" : 19332, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionViewLayout(im)layoutAttributesForInteractivelyMovingItemAtIndexPath:withTargetPosition:" - } - ], - "key.parsed_declaration" : "override func layoutAttributesForInteractivelyMovingItem(\n at indexPath: IndexPath,\n withTargetPosition position: CGPoint\n) -> UICollectionViewLayoutAttributes", - "key.parsed_scope.end" : 659, - "key.parsed_scope.start" : 639, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let original: UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> original<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 66, - "key.line" : 644, - "key.modulename" : "ListableUI", - "key.name" : "original", - "key.namelength" : 8, - "key.nameoffset" : 19519, - "key.offset" : 19515, - "key.parsed_declaration" : "let original = self.layout.content.layoutAttributes(at: indexPath)", - "key.parsed_scope.end" : 644, - "key.parsed_scope.start" : 644, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionViewLayoutAttributes", - "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC42layoutAttributesForInteractivelyMovingItem2at18withTargetPositionSo012UICollectiondeG0C10Foundation9IndexPathV_So7CGPointVtF8originalL_AHvp" - }, - { - "key.annotated_decl" : "let current: UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> current<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 107, - "key.line" : 645, - "key.modulename" : "ListableUI", - "key.name" : "current", - "key.namelength" : 7, - "key.nameoffset" : 19594, - "key.offset" : 19590, - "key.parsed_declaration" : "let current = super.layoutAttributesForInteractivelyMovingItem(at: indexPath, withTargetPosition: position)", - "key.parsed_scope.end" : 645, - "key.parsed_scope.start" : 645, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionViewLayoutAttributes", - "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC42layoutAttributesForInteractivelyMovingItem2at18withTargetPositionSo012UICollectiondeG0C10Foundation9IndexPathV_So7CGPointVtF7currentL_AHvp" - }, - { - "key.annotated_decl" : "var currentAttributes: ListContentLayoutAttributes<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> currentAttributes<\/decl.name>: ListContentLayoutAttributes<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 60, - "key.line" : 647, - "key.modulename" : "ListableUI", - "key.name" : "currentAttributes", - "key.namelength" : 17, - "key.nameoffset" : 19711, - "key.offset" : 19707, - "key.parsed_declaration" : "var currentAttributes = ListContentLayoutAttributes(current)", - "key.parsed_scope.end" : 647, - "key.parsed_scope.start" : 647, - "key.reusingastcontext" : false, - "key.typename" : "ListContentLayoutAttributes", - "key.typeusr" : "$s10ListableUI27ListContentLayoutAttributesVD", - "key.usr" : "s:10ListableUI20CollectionViewLayoutC42layoutAttributesForInteractivelyMovingItem2at18withTargetPositionSo012UICollectiondeG0C10Foundation9IndexPathV_So7CGPointVtF07currentG0L_AA011ListContenteG0Vvp" - } - ], - "key.typename" : "(CollectionViewLayout) -> (IndexPath, CGPoint) -> UICollectionViewLayoutAttributes", - "key.typeusr" : "$s2at18withTargetPositionSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_So7CGPointVtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout(im)layoutAttributesForInteractivelyMovingItemAtIndexPath:withTargetPosition:" - } - ], - "key.typename" : "CollectionViewLayout.Type", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionViewLayout" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 26, - "key.name" : "MARK: Invalidation Helpers", - "key.offset" : 20099 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct CollectionViewLayoutProperties : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 437, - "key.bodyoffset" : 20182, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 20171 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CollectionViewLayoutProperties<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 489, - "key.line" : 668, - "key.modulename" : "ListableUI", - "key.name" : "CollectionViewLayoutProperties", - "key.namelength" : 30, - "key.nameoffset" : 20138, - "key.offset" : 20131, - "key.parsed_declaration" : "struct CollectionViewLayoutProperties : Equatable", - "key.parsed_scope.end" : 687, - "key.parsed_scope.start" : 668, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let size: CGSize<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 670, - "key.modulename" : "ListableUI", - "key.name" : "size", - "key.namelength" : 4, - "key.nameoffset" : 20191, - "key.offset" : 20187, - "key.parsed_declaration" : "let size : CGSize", - "key.parsed_scope.end" : 670, - "key.parsed_scope.start" : 670, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI30CollectionViewLayoutPropertiesV4sizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let safeAreaInsets: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 671, - "key.modulename" : "ListableUI", - "key.name" : "safeAreaInsets", - "key.namelength" : 14, - "key.nameoffset" : 20213, - "key.offset" : 20209, - "key.parsed_declaration" : "let safeAreaInsets : UIEdgeInsets", - "key.parsed_scope.end" : 671, - "key.parsed_scope.start" : 671, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI30CollectionViewLayoutPropertiesV14safeAreaInsetsSo06UIEdgeI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let contentInset: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentInset<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 672, - "key.modulename" : "ListableUI", - "key.name" : "contentInset", - "key.namelength" : 12, - "key.nameoffset" : 20251, - "key.offset" : 20247, - "key.parsed_declaration" : "let contentInset : UIEdgeInsets", - "key.parsed_scope.end" : 672, - "key.parsed_scope.start" : 672, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI30CollectionViewLayoutPropertiesV12contentInsetSo12UIEdgeInsetsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init()<\/Declaration>", - "key.bodylength" : 101, - "key.bodyoffset" : 20296, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 114, - "key.line" : 674, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 20284, - "key.offset" : 20284, - "key.parsed_declaration" : "init()", - "key.parsed_scope.end" : 679, - "key.parsed_scope.start" : 674, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(collectionView:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "(CollectionViewLayoutProperties.Type) -> () -> CollectionViewLayoutProperties", - "key.typeusr" : "$s10ListableUI30CollectionViewLayoutPropertiesVycD", - "key.usr" : "s:10ListableUI30CollectionViewLayoutPropertiesVACycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(collectionView: UICollectionView<\/Type>)<\/Declaration>", - "key.bodylength" : 168, - "key.bodyoffset" : 20449, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(collectionView<\/decl.var.parameter.argument_label>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 214, - "key.line" : 681, - "key.modulename" : "ListableUI", - "key.name" : "init(collectionView:)", - "key.namelength" : 39, - "key.nameoffset" : 20404, - "key.offset" : 20404, - "key.parsed_declaration" : "init(collectionView : UICollectionView)", - "key.parsed_scope.end" : 686, - "key.parsed_scope.start" : 681, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CollectionViewLayoutProperties.Type) -> (UICollectionView) -> CollectionViewLayoutProperties", - "key.typeusr" : "$s14collectionView10ListableUI010CollectionB16LayoutPropertiesVSo012UICollectionB0C_tcD", - "key.usr" : "s:10ListableUI30CollectionViewLayoutPropertiesV010collectionD0ACSo012UICollectionD0C_tcfc" - } - ], - "key.typename" : "CollectionViewLayoutProperties.Type", - "key.typeusr" : "$s10ListableUI30CollectionViewLayoutPropertiesVmD", - "key.usr" : "s:10ListableUI30CollectionViewLayoutPropertiesV" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 37, - "key.name" : "MARK: Delegate For Layout Information", - "key.offset" : 20629 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol CollectionViewLayoutDelegate : AnyObject<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 20671 - } - ], - "key.bodylength" : 301, - "key.bodyoffset" : 20729, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 20718 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> CollectionViewLayoutDelegate<\/decl.name> : AnyObject<\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 353, - "key.line" : 694, - "key.modulename" : "ListableUI", - "key.name" : "CollectionViewLayoutDelegate", - "key.namelength" : 28, - "key.nameoffset" : 20687, - "key.offset" : 20678, - "key.parsed_declaration" : "public protocol CollectionViewLayoutDelegate : AnyObject", - "key.parsed_scope.end" : 707, - "key.parsed_scope.start" : 694, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func listViewLayoutUpdatedItemPositions()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listViewLayoutUpdatedItemPositions<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 41, - "key.line" : 696, - "key.modulename" : "ListableUI", - "key.name" : "listViewLayoutUpdatedItemPositions()", - "key.namelength" : 36, - "key.nameoffset" : 20739, - "key.offset" : 20734, - "key.parsed_declaration" : "func listViewLayoutUpdatedItemPositions()", - "key.parsed_scope.end" : 696, - "key.parsed_scope.start" : 696, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listdE20UpdatedItemPositionsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func listLayoutContent(defaults: ListLayoutDefaults<\/Type>) -> ListLayoutContent<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listLayoutContent<\/decl.name>(defaults<\/decl.var.parameter.argument_label>: ListLayoutDefaults<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 87, - "key.line" : 698, - "key.modulename" : "ListableUI", - "key.name" : "listLayoutContent(defaults:)", - "key.namelength" : 61, - "key.nameoffset" : 20786, - "key.offset" : 20781, - "key.parsed_declaration" : "func listLayoutContent(\n defaults: ListLayoutDefaults\n) -> ListLayoutContent", - "key.parsed_scope.end" : 698, - "key.parsed_scope.start" : 698, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ListLayoutDefaults) -> ListLayoutContent", - "key.typeusr" : "$s8defaults10ListableUI17ListLayoutContentCAB0dE8DefaultsV_tcD", - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listE7Content8defaultsAA04ListeH0CAA0jE8DefaultsV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func listViewLayoutCurrentEnvironment() -> ListEnvironment<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listViewLayoutCurrentEnvironment<\/decl.name>() -> ListEnvironment<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 58, - "key.line" : 702, - "key.modulename" : "ListableUI", - "key.name" : "listViewLayoutCurrentEnvironment()", - "key.namelength" : 34, - "key.nameoffset" : 20879, - "key.offset" : 20874, - "key.parsed_declaration" : "func listViewLayoutCurrentEnvironment() -> ListEnvironment", - "key.parsed_scope.end" : 702, - "key.parsed_scope.start" : 702, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVycD", - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listdE18CurrentEnvironmentAA04ListI0VyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func listViewLayoutDidLayoutContents()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listViewLayoutDidLayoutContents<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 38, - "key.line" : 704, - "key.modulename" : "ListableUI", - "key.name" : "listViewLayoutDidLayoutContents()", - "key.namelength" : 33, - "key.nameoffset" : 20943, - "key.offset" : 20938, - "key.parsed_declaration" : "func listViewLayoutDidLayoutContents()", - "key.parsed_scope.end" : 704, - "key.parsed_scope.start" : 704, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listde3DidE8ContentsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func listViewShouldEndQueueingEditsForReorder()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listViewShouldEndQueueingEditsForReorder<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 47, - "key.line" : 706, - "key.modulename" : "ListableUI", - "key.name" : "listViewShouldEndQueueingEditsForReorder()", - "key.namelength" : 42, - "key.nameoffset" : 20987, - "key.offset" : 20982, - "key.parsed_declaration" : "func listViewShouldEndQueueingEditsForReorder()", - "key.parsed_scope.end" : 706, - "key.parsed_scope.start" : 706, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listD32ShouldEndQueueingEditsForReorderyyF" - } - ], - "key.typename" : "CollectionViewLayoutDelegate.Type", - "key.typeusr" : "$s10ListableUI28CollectionViewLayoutDelegate_pmD", - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 52, - "key.name" : "MARK: Update Information From Collection View Layout", - "key.offset" : 21040 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate struct UpdateItems : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 21097 - } - ], - "key.bodylength" : 1848, - "key.bodyoffset" : 21141, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 21130 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> UpdateItems<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1881, - "key.line" : 714, - "key.modulename" : "ListableUI", - "key.name" : "UpdateItems", - "key.namelength" : 11, - "key.nameoffset" : 21116, - "key.offset" : 21109, - "key.parsed_declaration" : "fileprivate struct UpdateItems : Equatable", - "key.parsed_scope.end" : 784, - "key.parsed_scope.start" : 714, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let insertedSections: Set<\/Type><InsertSection<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insertedSections<\/decl.name>: Set<\/ref.struct><InsertSection<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 716, - "key.modulename" : "ListableUI", - "key.name" : "insertedSections", - "key.namelength" : 16, - "key.nameoffset" : 21150, - "key.offset" : 21146, - "key.parsed_declaration" : "let insertedSections : Set", - "key.parsed_scope.end" : 716, - "key.parsed_scope.start" : 716, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13InsertSectionVGD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV16insertedSectionsShyAD13InsertSectionVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let deletedSections: Set<\/Type><DeleteSection<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> deletedSections<\/decl.name>: Set<\/ref.struct><DeleteSection<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 717, - "key.modulename" : "ListableUI", - "key.name" : "deletedSections", - "key.namelength" : 15, - "key.nameoffset" : 21196, - "key.offset" : 21192, - "key.parsed_declaration" : "let deletedSections : Set", - "key.parsed_scope.end" : 717, - "key.parsed_scope.start" : 717, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13DeleteSectionVGD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV15deletedSectionsShyAD13DeleteSectionVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let insertedItems: Set<\/Type><InsertItem<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insertedItems<\/decl.name>: Set<\/ref.struct><InsertItem<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 719, - "key.modulename" : "ListableUI", - "key.name" : "insertedItems", - "key.namelength" : 13, - "key.nameoffset" : 21242, - "key.offset" : 21238, - "key.parsed_declaration" : "let insertedItems : Set", - "key.parsed_scope.end" : 719, - "key.parsed_scope.start" : 719, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10InsertItemVGD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV08insertedD0ShyAD10InsertItemVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let deletedItems: Set<\/Type><DeleteItem<\/Type>><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> deletedItems<\/decl.name>: Set<\/ref.struct><DeleteItem<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 720, - "key.modulename" : "ListableUI", - "key.name" : "deletedItems", - "key.namelength" : 12, - "key.nameoffset" : 21282, - "key.offset" : 21278, - "key.parsed_declaration" : "let deletedItems : Set", - "key.parsed_scope.end" : 720, - "key.parsed_scope.start" : 720, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10DeleteItemVGD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV07deletedD0ShyAD10DeleteItemVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(with updateItems: [UICollectionViewUpdateItem<\/Type>])<\/Declaration>", - "key.bodylength" : 1292, - "key.bodyoffset" : 21377, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> updateItems<\/decl.var.parameter.name>: [UICollectionViewUpdateItem<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1352, - "key.line" : 722, - "key.modulename" : "ListableUI", - "key.name" : "init(with:)", - "key.namelength" : 53, - "key.nameoffset" : 21318, - "key.offset" : 21318, - "key.parsed_declaration" : "init(with updateItems : [UICollectionViewUpdateItem])", - "key.parsed_scope.end" : 763, - "key.parsed_scope.start" : 722, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var insertedSections: Set<\/Type><UpdateItems<\/Type>.InsertSection<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertedSections<\/decl.name>: Set<\/ref.struct><UpdateItems<\/ref.struct>.InsertSection<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 43, - "key.line" : 724, - "key.modulename" : "ListableUI", - "key.name" : "insertedSections", - "key.namelength" : 16, - "key.nameoffset" : 21390, - "key.offset" : 21386, - "key.parsed_declaration" : "var insertedSections = Set()", - "key.parsed_scope.end" : 724, - "key.parsed_scope.start" : 724, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13InsertSectionVGD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV4withADSaySo016UICollectionViewC4ItemCG_tcfc16insertedSectionsL_ShyAD13InsertSectionVGvp" - }, - { - "key.annotated_decl" : "var deletedSections: Set<\/Type><UpdateItems<\/Type>.DeleteSection<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> deletedSections<\/decl.name>: Set<\/ref.struct><UpdateItems<\/ref.struct>.DeleteSection<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 42, - "key.line" : 725, - "key.modulename" : "ListableUI", - "key.name" : "deletedSections", - "key.namelength" : 15, - "key.nameoffset" : 21442, - "key.offset" : 21438, - "key.parsed_declaration" : "var deletedSections = Set()", - "key.parsed_scope.end" : 725, - "key.parsed_scope.start" : 725, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13DeleteSectionVGD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV4withADSaySo016UICollectionViewC4ItemCG_tcfc15deletedSectionsL_ShyAD13DeleteSectionVGvp" - }, - { - "key.annotated_decl" : "var insertedItems: Set<\/Type><UpdateItems<\/Type>.InsertItem<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertedItems<\/decl.name>: Set<\/ref.struct><UpdateItems<\/ref.struct>.InsertItem<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 37, - "key.line" : 727, - "key.modulename" : "ListableUI", - "key.name" : "insertedItems", - "key.namelength" : 13, - "key.nameoffset" : 21494, - "key.offset" : 21490, - "key.parsed_declaration" : "var insertedItems = Set()", - "key.parsed_scope.end" : 727, - "key.parsed_scope.start" : 727, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10InsertItemVGD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV4withADSaySo016UICollectionViewC4ItemCG_tcfc08insertedD0L_ShyAD06InsertP0VGvp" - }, - { - "key.annotated_decl" : "var deletedItems: Set<\/Type><UpdateItems<\/Type>.DeleteItem<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> deletedItems<\/decl.name>: Set<\/ref.struct><UpdateItems<\/ref.struct>.DeleteItem<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 36, - "key.line" : 728, - "key.modulename" : "ListableUI", - "key.name" : "deletedItems", - "key.namelength" : 12, - "key.nameoffset" : 21540, - "key.offset" : 21536, - "key.parsed_declaration" : "var deletedItems = Set()", - "key.parsed_scope.end" : 728, - "key.parsed_scope.start" : 728, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10DeleteItemVGD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV4withADSaySo016UICollectionViewC4ItemCG_tcfc07deletedD0L_ShyAD06DeleteP0VGvp" - } - ], - "key.typename" : "(UpdateItems.Type) -> ([UICollectionViewUpdateItem]) -> UpdateItems", - "key.typeusr" : "$s4with10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLVSaySo016UICollectionViewD4ItemCG_tcD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV4withADSaySo016UICollectionViewC4ItemCG_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct UpdateItems<\/Type>.InsertSection : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 32, - "key.bodyoffset" : 22713, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 22699 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> UpdateItems<\/ref.struct>.InsertSection<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 70, - "key.line" : 765, - "key.modulename" : "ListableUI", - "key.name" : "InsertSection", - "key.namelength" : 13, - "key.nameoffset" : 22683, - "key.offset" : 22676, - "key.parsed_declaration" : "struct InsertSection : Hashable", - "key.parsed_scope.end" : 768, - "key.parsed_scope.start" : 765, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var newIndex: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 767, - "key.modulename" : "ListableUI", - "key.name" : "newIndex", - "key.namelength" : 8, - "key.nameoffset" : 22726, - "key.offset" : 22722, - "key.parsed_declaration" : "var newIndex : Int", - "key.parsed_scope.end" : 767, - "key.parsed_scope.start" : 767, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13InsertSectionV8newIndexSivp" - } - ], - "key.typename" : "UpdateItems.InsertSection.Type", - "key.typeusr" : "$s10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13InsertSectionVmD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13InsertSectionV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct UpdateItems<\/Type>.DeleteSection : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 32, - "key.bodyoffset" : 22789, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 22775 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> UpdateItems<\/ref.struct>.DeleteSection<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 70, - "key.line" : 770, - "key.modulename" : "ListableUI", - "key.name" : "DeleteSection", - "key.namelength" : 13, - "key.nameoffset" : 22759, - "key.offset" : 22752, - "key.parsed_declaration" : "struct DeleteSection : Hashable", - "key.parsed_scope.end" : 773, - "key.parsed_scope.start" : 770, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var oldIndex: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 772, - "key.modulename" : "ListableUI", - "key.name" : "oldIndex", - "key.namelength" : 8, - "key.nameoffset" : 22802, - "key.offset" : 22798, - "key.parsed_declaration" : "var oldIndex : Int", - "key.parsed_scope.end" : 772, - "key.parsed_scope.start" : 772, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13DeleteSectionV8oldIndexSivp" - } - ], - "key.typename" : "UpdateItems.DeleteSection.Type", - "key.typeusr" : "$s10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13DeleteSectionVmD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV13DeleteSectionV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct UpdateItems<\/Type>.InsertItem : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 42, - "key.bodyoffset" : 22862, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 22848 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> UpdateItems<\/ref.struct>.InsertItem<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 77, - "key.line" : 775, - "key.modulename" : "ListableUI", - "key.name" : "InsertItem", - "key.namelength" : 10, - "key.nameoffset" : 22835, - "key.offset" : 22828, - "key.parsed_declaration" : "struct InsertItem : Hashable", - "key.parsed_scope.end" : 778, - "key.parsed_scope.start" : 775, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var newIndexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 777, - "key.modulename" : "ListableUI", - "key.name" : "newIndexPath", - "key.namelength" : 12, - "key.nameoffset" : 22875, - "key.offset" : 22871, - "key.parsed_declaration" : "var newIndexPath : IndexPath", - "key.parsed_scope.end" : 777, - "key.parsed_scope.start" : 777, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10InsertItemV12newIndexPath10Foundation0pQ0Vvp" - } - ], - "key.typename" : "UpdateItems.InsertItem.Type", - "key.typeusr" : "$s10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10InsertItemVmD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10InsertItemV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct UpdateItems<\/Type>.DeleteItem : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 42, - "key.bodyoffset" : 22945, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 22931 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> UpdateItems<\/ref.struct>.DeleteItem<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 77, - "key.line" : 780, - "key.modulename" : "ListableUI", - "key.name" : "DeleteItem", - "key.namelength" : 10, - "key.nameoffset" : 22918, - "key.offset" : 22911, - "key.parsed_declaration" : "struct DeleteItem : Hashable", - "key.parsed_scope.end" : 783, - "key.parsed_scope.start" : 780, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var oldIndexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 782, - "key.modulename" : "ListableUI", - "key.name" : "oldIndexPath", - "key.namelength" : 12, - "key.nameoffset" : 22958, - "key.offset" : 22954, - "key.parsed_declaration" : "var oldIndexPath : IndexPath", - "key.parsed_scope.end" : 782, - "key.parsed_scope.start" : 782, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10DeleteItemV12oldIndexPath10Foundation0pQ0Vvp" - } - ], - "key.typename" : "UpdateItems.DeleteItem.Type", - "key.typeusr" : "$s10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10DeleteItemVmD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV10DeleteItemV" - } - ], - "key.typename" : "UpdateItems.Type", - "key.typeusr" : "$s10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLVmD", - "key.usr" : "s:10ListableUI11UpdateItems33_EB34EA08C49AB6823BEA7E315664A1CBLLV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 54737, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 298, - "key.bodyoffset" : 155, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `LayoutDescription`, well, describes the type of and properties of a layout to apply to a list view.\n\nYou use a `LayoutDescription` by passing a closure to its initializer, which you use to\ncustomize the `layoutAppearance` of the provided list type.\n\nFor example, to use a standard list layout, and customize the layout, your code would look something like this:\n\n```\nlistView.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```\n\nOr a layout for your own custom layout type would look somewhat like this:\n\n```\nMyCustomLayout.describe {\n $0.myLayoutOption = true\n $0.anotherLayoutOption = .polkadots\n}\n```\n\nNote\n----\nUnder the hood, Listable is smart, and will only re-create the underlying\nlayout object when needed (when the layout type or layout appearance changes).\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct LayoutDescription : Equatable", - "key.doc.discussion" : [ - { - "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type." - }, - { - "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Or a layout for your own custom layout type would look somewhat like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription : Equatable<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "LayoutDescription", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 328, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDescription", - "key.namelength" : 17, - "key.nameoffset" : 136, - "key.offset" : 126, - "key.parsed_declaration" : "extension LayoutDescription", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func flow(_ configure: (inout FlowAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 289 - } - ], - "key.bodylength" : 60, - "key.bodyoffset" : 391, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `.flow` layout type for a list.\nSee the `FlowAppearance` documentation for a full discussion.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates a new `.flow` layout type for a list.\nSee the `FlowAppearance` documentation for a full discussion.", - "key.doc.declaration" : "public static func flow(_ configure: (inout FlowAppearance) -> () = { _ in }) -> ListableUI.LayoutDescription", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "flow(_:)<\/Name>s:10ListableUI17LayoutDescriptionV4flowyACyAA14FlowAppearanceVzXEFZ<\/USR>public static func flow(_ configure: (inout FlowAppearance) -> () = { _ in }) -> ListableUI.LayoutDescription<\/Declaration>Creates a new .flow<\/codeVoice> layout type for a list. See the FlowAppearance<\/codeVoice> documentation for a full discussion.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 16, - "key.doc.name" : "flow(_:)", - "key.doc.type" : "Function", - "key.doclength" : 120, - "key.docoffset" : 165, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> flow<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> FlowAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 156, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "flow(_:)", - "key.namelength" : 73, - "key.nameoffset" : 308, - "key.offset" : 296, - "key.parsed_declaration" : "public static func flow(\n _ configure : (inout FlowAppearance) -> () = { _ in }\n) -> Self", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDescription.Type) -> ((inout FlowAppearance) -> ()) -> LayoutDescription", - "key.typeusr" : "$sy10ListableUI17LayoutDescriptionVyAA14FlowAppearanceVzXEcD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV4flowyACyAA14FlowAppearanceVzXEFZ" - } - ], - "key.typename" : "LayoutDescription.Type", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct FlowAppearance : ListLayoutAppearance<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8129 - } - ], - "key.bodylength" : 3188, - "key.bodyoffset" : 8182, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows rendering a list in the style of a flow layout. Items in the list flow from one row to the next,\nwith each row containing as many items as will fit. Items can be the same sizes or different sizes.\n\nYou can control the layout both via the `FlowAppearance` parameter\npassed to `.flow` layout types, plus via the `section.layouts.flow` options on a `Section`.\n\nTo display a flow layout in your list, set its `layout` to a `.flow` type:\n```\nlist.layout = .flow { flow in\n \/\/ Customize the flow options.\n}\n```\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│ padding.top │\n│ ┌─────────────────────────────────────────────────────────┐ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ headerToFirstSectionSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ Section Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │\n│ ││ │ │ │ │ │ │ │\n│ ││ Item │ │ Item │ │ Item │ │ │\n│ ││ │ │ │ │ │ │ │\n│ │└───────────────┘ └───────────────┘ └───────────────┘ │ │\n│ │ rowSpacing │ │\n│ │┌──────────────────────┐ ┌──────────────────────┐ │ │\n│ ││ │ │ │ │ │\n│ ││ Item │ │ Item │ │ │\n│ ││ │ │ │ │ │\n│ p │└──────────────────────┘ └──────────────────────┘ │ p │\n│ a │ itemToSectionFooterSpacing │ a │\n│ d │┌───────────────────────────────────────────────────────┐│ d │\n│ d ││ ││ d │\n│ i ││ Section Footer ││ i │\n│ n ││ ││ n │\n│ g │└───────────────────────────────────────────────────────┘│ g │\n│ . │ │ . │\n│ l │ interSectionSpacing.withFooter │ r │\n│ e │ │ i │\n│ f │┌───────────────────────────────────────────────────────┐│ g │\n│ t ││ ││ h │\n│ ││ Section Header ││ t │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌──────────────────────┐ ┌─────────────────────────────┐ │ │\n│ ││ │ │ │ │ │\n│ ││ Item │ │ Item │ │ │\n│ ││ │ │ │ │ │\n│ │└──────────────────────┘ └─────────────────────────────┘ │ │\n│ │ │ │\n│ │ lastSectionToFooterSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Footer ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ └─────────────────────────────────────────────────────────┘ │\n│ padding.bottom │\n└─────────────────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 15, - "key.doc.comment" : "Allows rendering a list in the style of a flow layout. Items in the list flow from one row to the next,\nwith each row containing as many items as will fit. Items can be the same sizes or different sizes.\n\nYou can control the layout both via the `FlowAppearance` parameter\npassed to `.flow` layout types, plus via the `section.layouts.flow` options on a `Section`.\n\nTo display a flow layout in your list, set its `layout` to a `.flow` type:\n```\nlist.layout = .flow { flow in\n \/\/ Customize the flow options.\n}\n```\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│ padding.top │\n│ ┌─────────────────────────────────────────────────────────┐ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ headerToFirstSectionSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ Section Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │\n│ ││ │ │ │ │ │ │ │\n│ ││ Item │ │ Item │ │ Item │ │ │\n│ ││ │ │ │ │ │ │ │\n│ │└───────────────┘ └───────────────┘ └───────────────┘ │ │\n│ │ rowSpacing │ │\n│ │┌──────────────────────┐ ┌──────────────────────┐ │ │\n│ ││ │ │ │ │ │\n│ ││ Item │ │ Item │ │ │\n│ ││ │ │ │ │ │\n│ p │└──────────────────────┘ └──────────────────────┘ │ p │\n│ a │ itemToSectionFooterSpacing │ a │\n│ d │┌───────────────────────────────────────────────────────┐│ d │\n│ d ││ ││ d │\n│ i ││ Section Footer ││ i │\n│ n ││ ││ n │\n│ g │└───────────────────────────────────────────────────────┘│ g │\n│ . │ │ . │\n│ l │ interSectionSpacing.withFooter │ r │\n│ e │ │ i │\n│ f │┌───────────────────────────────────────────────────────┐│ g │\n│ t ││ ││ h │\n│ ││ Section Header ││ t │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌──────────────────────┐ ┌─────────────────────────────┐ │ │\n│ ││ │ │ │ │ │\n│ ││ Item │ │ Item │ │ │\n│ ││ │ │ │ │ │\n│ │└──────────────────────┘ └─────────────────────────────┘ │ │\n│ │ │ │\n│ │ lastSectionToFooterSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Footer ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ └─────────────────────────────────────────────────────────┘ │\n│ padding.bottom │\n└─────────────────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "public struct FlowAppearance : ListLayoutAppearance", - "key.doc.discussion" : [ - { - "Para" : "You can control the layout both via the `FlowAppearance` parameter passed to `.flow` layout types, plus via the `section.layouts.flow` options on a `Section`." - }, - { - "Para" : "To display a flow layout in your list, set its `layout` to a `.flow` type:" - }, - { - "CodeListing" : "" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "FlowAppearance<\/Name>s:10ListableUI14FlowAppearanceV<\/USR>public struct FlowAppearance : ListLayoutAppearance<\/Declaration>Allows rendering a list in the style of a flow layout. Items in the list flow from one row to the next, with each row containing as many items as will fit. Items can be the same sizes or different sizes.<\/Para><\/Abstract>You can control the layout both via the FlowAppearance<\/codeVoice> parameter passed to .flow<\/codeVoice> layout types, plus via the section.layouts.flow<\/codeVoice> options on a Section<\/codeVoice>.<\/Para>To display a flow layout in your list, set its layout<\/codeVoice> to a .flow<\/codeVoice> type:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 97, - "key.doc.name" : "FlowAppearance", - "key.doc.type" : "Class", - "key.doclength" : 7673, - "key.docoffset" : 456, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 20, - "key.offset" : 8160 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> FlowAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayoutAppearance" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3235, - "key.line" : 97, - "key.modulename" : "ListableUI", - "key.name" : "FlowAppearance", - "key.namelength" : 14, - "key.nameoffset" : 8143, - "key.offset" : 8136, - "key.parsed_declaration" : "public struct FlowAppearance : ListLayoutAppearance", - "key.parsed_scope.end" : 190, - "key.parsed_scope.start" : 97, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 26, - "key.name" : "MARK: ListLayoutAppearance", - "key.offset" : 8195 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var `default`: FlowAppearance<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8268 - } - ], - "key.bodylength" : 21, - "key.bodyoffset" : 8313, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default apperance style.", - "key.doc.column" : 23, - "key.doc.comment" : "The default apperance style.", - "key.doc.declaration" : "public static var `default`: FlowAppearance { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI14FlowAppearanceV7defaultACvpZ<\/USR>public static var `default`: FlowAppearance { get }<\/Declaration>The default apperance style.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 102, - "key.doc.name" : "default", - "key.doc.type" : "Other", - "key.doclength" : 33, - "key.docoffset" : 8231, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: FlowAppearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 60, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "default", - "key.namelength" : 7, - "key.nameoffset" : 8286, - "key.offset" : 8275, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ" - } - ], - "key.parsed_declaration" : "public static var `default`: FlowAppearance", - "key.parsed_scope.end" : 104, - "key.parsed_scope.start" : 102, - "key.reusingastcontext" : false, - "key.typename" : "FlowAppearance", - "key.typeusr" : "$s10ListableUI14FlowAppearanceVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV7defaultACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var direction: LayoutDirection<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8404 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The direction the flow layout will be laid out in.", - "key.doc.column" : 16, - "key.doc.comment" : "The direction the flow layout will be laid out in.", - "key.doc.declaration" : "public var direction: LayoutDirection", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "direction<\/Name>s:10ListableUI14FlowAppearanceV9directionAA15LayoutDirectionOvp<\/USR>public var direction: LayoutDirection<\/Declaration>The direction the flow layout will be laid out in.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 107, - "key.doc.name" : "direction", - "key.doc.type" : "Other", - "key.doclength" : 55, - "key.docoffset" : 8345, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 107, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 8415, - "key.offset" : 8411, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp" - } - ], - "key.parsed_declaration" : "public var direction: LayoutDirection", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 107, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI14FlowAppearanceV9directionAA15LayoutDirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var listHeaderPosition: ListHeaderPosition<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8522 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the list header should be positioned when content is scrolled.", - "key.doc.column" : 16, - "key.doc.comment" : "How the list header should be positioned when content is scrolled.", - "key.doc.declaration" : "public var listHeaderPosition: ListHeaderPosition", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "listHeaderPosition<\/Name>s:10ListableUI14FlowAppearanceV18listHeaderPositionAA04ListfG0Ovp<\/USR>public var listHeaderPosition: ListHeaderPosition<\/Declaration>How the list header should be positioned when content is scrolled.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 110, - "key.doc.name" : "listHeaderPosition", - "key.doc.type" : "Other", - "key.doclength" : 71, - "key.docoffset" : 8447, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listHeaderPosition<\/decl.name>: ListHeaderPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 110, - "key.modulename" : "ListableUI", - "key.name" : "listHeaderPosition", - "key.namelength" : 18, - "key.nameoffset" : 8533, - "key.offset" : 8529, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP18listHeaderPositionAA0cgH0Ovp" - } - ], - "key.parsed_declaration" : "public var listHeaderPosition: ListHeaderPosition", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 110, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListHeaderPosition", - "key.typeusr" : "$s10ListableUI18ListHeaderPositionOD", - "key.usr" : "s:10ListableUI14FlowAppearanceV18listHeaderPositionAA04ListfG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var stickySectionHeaders: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8687 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If sections should have sticky headers, staying visible until the section is scrolled off screen.", - "key.doc.column" : 16, - "key.doc.comment" : "If sections should have sticky headers, staying visible until the section is scrolled off screen.", - "key.doc.declaration" : "public var stickySectionHeaders: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "stickySectionHeaders<\/Name>s:10ListableUI14FlowAppearanceV20stickySectionHeadersSbvp<\/USR>public var stickySectionHeaders: Bool<\/Declaration>If sections should have sticky headers, staying visible until the section is scrolled off screen.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 113, - "key.doc.name" : "stickySectionHeaders", - "key.doc.type" : "Other", - "key.doclength" : 102, - "key.docoffset" : 8581, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 113, - "key.modulename" : "ListableUI", - "key.name" : "stickySectionHeaders", - "key.namelength" : 20, - "key.nameoffset" : 8698, - "key.offset" : 8694, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp" - } - ], - "key.parsed_declaration" : "public var stickySectionHeaders: Bool", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 113, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI14FlowAppearanceV20stickySectionHeadersSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var pagingBehavior: ListPagingBehavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8790 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How paging is performed when a drag event ends.", - "key.doc.column" : 16, - "key.doc.comment" : "How paging is performed when a drag event ends.", - "key.doc.declaration" : "public var pagingBehavior: ListPagingBehavior", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "pagingBehavior<\/Name>s:10ListableUI14FlowAppearanceV14pagingBehaviorAA010ListPagingF0Ovp<\/USR>public var pagingBehavior: ListPagingBehavior<\/Declaration>How paging is performed when a drag event ends.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 116, - "key.doc.name" : "pagingBehavior", - "key.doc.type" : "Other", - "key.doclength" : 52, - "key.docoffset" : 8734, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pagingBehavior<\/decl.name>: ListPagingBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "pagingBehavior", - "key.namelength" : 14, - "key.nameoffset" : 8801, - "key.offset" : 8797, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP14pagingBehaviorAA0c6PagingG0Ovp" - } - ], - "key.parsed_declaration" : "public var pagingBehavior : ListPagingBehavior", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListPagingBehavior", - "key.typeusr" : "$s10ListableUI18ListPagingBehaviorOD", - "key.usr" : "s:10ListableUI14FlowAppearanceV14pagingBehaviorAA010ListPagingF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8900 - } - ], - "key.bodylength" : 314, - "key.bodyoffset" : 8965, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The properties of the backing `UIScrollView`.", - "key.doc.column" : 16, - "key.doc.comment" : "The properties of the backing `UIScrollView`.", - "key.doc.declaration" : "public var scrollViewProperties: ListLayoutScrollViewProperties { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "scrollViewProperties<\/Name>s:10ListableUI14FlowAppearanceV20scrollViewPropertiesAA016ListLayoutScrollfG0Vvp<\/USR>public var scrollViewProperties: ListLayoutScrollViewProperties { get }<\/Declaration>The properties of the backing UIScrollView<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 119, - "key.doc.name" : "scrollViewProperties", - "key.doc.type" : "Other", - "key.doclength" : 50, - "key.docoffset" : 8846, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 373, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewProperties", - "key.namelength" : 20, - "key.nameoffset" : 8911, - "key.offset" : 8907, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20scrollViewPropertiesAA0cd6ScrollgH0Vvp" - } - ], - "key.parsed_declaration" : "public var scrollViewProperties: ListLayoutScrollViewProperties", - "key.parsed_scope.end" : 128, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutScrollViewProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV20scrollViewPropertiesAA016ListLayoutScrollfG0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func toLayoutDescription() -> LayoutDescription<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9290 - } - ], - "key.bodylength" : 82, - "key.bodyoffset" : 9346, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> toLayoutDescription<\/decl.name>() -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 132, - "key.line" : 130, - "key.modulename" : "ListableUI", - "key.name" : "toLayoutDescription()", - "key.namelength" : 21, - "key.nameoffset" : 9302, - "key.offset" : 9297, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP02toD11DescriptionAA0dG0VyF" - } - ], - "key.parsed_declaration" : "public func toLayoutDescription() -> LayoutDescription", - "key.parsed_scope.end" : 132, - "key.parsed_scope.start" : 130, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance) -> () -> LayoutDescription", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVycD", - "key.usr" : "s:10ListableUI14FlowAppearanceV19toLayoutDescriptionAA0fG0VyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 16, - "key.name" : "MARK: Properties", - "key.offset" : 9442 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var rowUnderflowAlignment: RowUnderflowAlignment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9569 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to align the items in a row when they do not take up the full amount of available space.", - "key.doc.column" : 16, - "key.doc.comment" : "How to align the items in a row when they do not take up the full amount of available space.", - "key.doc.declaration" : "public var rowUnderflowAlignment: RowUnderflowAlignment", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "rowUnderflowAlignment<\/Name>s:10ListableUI14FlowAppearanceV21rowUnderflowAlignmentAC03RowfG0Ovp<\/USR>public var rowUnderflowAlignment: RowUnderflowAlignment<\/Declaration>How to align the items in a row when they do not take up the full amount of available space.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 137, - "key.doc.name" : "rowUnderflowAlignment", - "key.doc.type" : "Other", - "key.doclength" : 97, - "key.docoffset" : 9468, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rowUnderflowAlignment<\/decl.name>: RowUnderflowAlignment<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 49, - "key.line" : 137, - "key.modulename" : "ListableUI", - "key.name" : "rowUnderflowAlignment", - "key.namelength" : 21, - "key.nameoffset" : 9580, - "key.offset" : 9576, - "key.parsed_declaration" : "public var rowUnderflowAlignment : RowUnderflowAlignment", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 137, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.RowUnderflowAlignment", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV21RowUnderflowAlignmentOD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21rowUnderflowAlignmentAC03RowfG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var rowItemsAlignment: RowItemsAlignment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9714 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to align the items in a row when they are not all the same height.", - "key.doc.column" : 16, - "key.doc.comment" : "How to align the items in a row when they are not all the same height.", - "key.doc.declaration" : "public var rowItemsAlignment: RowItemsAlignment", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "rowItemsAlignment<\/Name>s:10ListableUI14FlowAppearanceV17rowItemsAlignmentAC03RowfG0Ovp<\/USR>public var rowItemsAlignment: RowItemsAlignment<\/Declaration>How to align the items in a row when they are not all the same height.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 140, - "key.doc.name" : "rowItemsAlignment", - "key.doc.type" : "Other", - "key.doclength" : 75, - "key.docoffset" : 9635, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rowItemsAlignment<\/decl.name>: RowItemsAlignment<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 140, - "key.modulename" : "ListableUI", - "key.name" : "rowItemsAlignment", - "key.namelength" : 17, - "key.nameoffset" : 9725, - "key.offset" : 9721, - "key.parsed_declaration" : "public var rowItemsAlignment : RowItemsAlignment", - "key.parsed_scope.end" : 140, - "key.parsed_scope.start" : 140, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.RowItemsAlignment", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV17RowItemsAlignmentOD", - "key.usr" : "s:10ListableUI14FlowAppearanceV17rowItemsAlignmentAC03RowfG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemSizing: ItemSizing<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9847 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the sizing \/ measurement of items within the flow layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Controls the sizing \/ measurement of items within the flow layout.", - "key.doc.declaration" : "public var itemSizing: ItemSizing", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "itemSizing<\/Name>s:10ListableUI14FlowAppearanceV10itemSizingAC04ItemF0Ovp<\/USR>public var itemSizing: ItemSizing<\/Declaration>Controls the sizing \/ measurement of items within the flow layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 143, - "key.doc.name" : "itemSizing", - "key.doc.type" : "Other", - "key.doclength" : 71, - "key.docoffset" : 9772, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSizing<\/decl.name>: ItemSizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 143, - "key.modulename" : "ListableUI", - "key.name" : "itemSizing", - "key.namelength" : 10, - "key.nameoffset" : 9858, - "key.offset" : 9854, - "key.parsed_declaration" : "public var itemSizing : ItemSizing", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 143, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.ItemSizing", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemSizingOD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10itemSizingAC04ItemF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var bounds: ListContentBounds<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9958 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the padding and maximum width of the flow layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Controls the padding and maximum width of the flow layout.", - "key.doc.declaration" : "public var bounds: ListContentBounds?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "bounds<\/Name>s:10ListableUI14FlowAppearanceV6boundsAA17ListContentBoundsVSgvp<\/USR>public var bounds: ListContentBounds?<\/Declaration>Controls the padding and maximum width of the flow layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 146, - "key.doc.name" : "bounds", - "key.doc.type" : "Other", - "key.doclength" : 63, - "key.docoffset" : 9891, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 146, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 9969, - "key.offset" : 9965, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP6boundsAA0C13ContentBoundsVSgvp" - } - ], - "key.parsed_declaration" : "public var bounds : ListContentBounds?", - "key.parsed_scope.end" : 146, - "key.parsed_scope.start" : 146, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListContentBounds?", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVSgD", - "key.usr" : "s:10ListableUI14FlowAppearanceV6boundsAA17ListContentBoundsVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var spacings: Spacings<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10101 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the spacing between headers, footers, sections, and items in the flow layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Controls the spacing between headers, footers, sections, and items in the flow layout.", - "key.doc.declaration" : "public var spacings: Spacings", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "spacings<\/Name>s:10ListableUI14FlowAppearanceV8spacingsAC8SpacingsVvp<\/USR>public var spacings: Spacings<\/Declaration>Controls the spacing between headers, footers, sections, and items in the flow layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 149, - "key.doc.name" : "spacings", - "key.doc.type" : "Other", - "key.doclength" : 91, - "key.docoffset" : 10006, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> spacings<\/decl.name>: Spacings<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 149, - "key.modulename" : "ListableUI", - "key.name" : "spacings", - "key.namelength" : 8, - "key.nameoffset" : 10112, - "key.offset" : 10108, - "key.parsed_declaration" : "public var spacings : Spacings", - "key.parsed_scope.end" : 149, - "key.parsed_scope.start" : 149, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.Spacings", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV8SpacingsVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8spacingsAC8SpacingsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(direction: LayoutDirection<\/Type> = .vertical, stickyListHeader: Bool<\/Type> = false, stickySectionHeaders: Bool<\/Type>? = nil, pagingBehavior: ListPagingBehavior<\/Type> = .none, rowUnderflowAlignment: RowUnderflowAlignment<\/Type> = .leading, rowItemsAlignment: RowItemsAlignment<\/Type> = .top, itemSizing: ItemSizing<\/Type> = .natural, bounds: ListContentBounds<\/Type>? = nil, spacings: Spacings<\/Type> = .init())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10181 - } - ], - "key.bodylength" : 729, - "key.bodyoffset" : 10639, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `FlowAppearance`.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new `FlowAppearance`.", - "key.doc.declaration" : "public init(direction: LayoutDirection = .vertical, stickyListHeader: Bool = false, stickySectionHeaders: Bool? = nil, pagingBehavior: ListPagingBehavior = .none, rowUnderflowAlignment: RowUnderflowAlignment = .leading, rowItemsAlignment: RowItemsAlignment = .top, itemSizing: ItemSizing = .natural, bounds: ListContentBounds? = nil, spacings: Spacings = .init())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "init(direction:stickyListHeader:stickySectionHeaders:pagingBehavior:rowUnderflowAlignment:rowItemsAlignment:itemSizing:bounds:spacings:)<\/Name>s:10ListableUI14FlowAppearanceV9direction16stickyListHeader0F14SectionHeaders14pagingBehavior21rowUnderflowAlignment0m5ItemsO010itemSizing6bounds8spacingsAcA15LayoutDirectionO_S2bSgAA0g6PagingL0OAC03RownO0OAC0xpO0OAC04ItemR0OAA0G13ContentBoundsVSgAC8SpacingsVtcfc<\/USR>public init(direction: LayoutDirection = .vertical, stickyListHeader: Bool = false, stickySectionHeaders: Bool? = nil, pagingBehavior: ListPagingBehavior = .none, rowUnderflowAlignment: RowUnderflowAlignment = .leading, rowItemsAlignment: RowItemsAlignment = .top, itemSizing: ItemSizing = .natural, bounds: ListContentBounds? = nil, spacings: Spacings = .init())<\/Declaration>Creates a new FlowAppearance<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 152, - "key.doc.name" : "init(direction:stickyListHeader:stickySectionHeaders:pagingBehavior:rowUnderflowAlignment:rowItemsAlignment:itemSizing:bounds:spacings:)", - "key.doc.type" : "Function", - "key.doclength" : 36, - "key.docoffset" : 10141, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type> = .vertical<\/decl.var.parameter>, stickyListHeader<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, stickySectionHeaders<\/decl.var.parameter.argument_label>: Bool<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, pagingBehavior<\/decl.var.parameter.argument_label>: ListPagingBehavior<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, rowUnderflowAlignment<\/decl.var.parameter.argument_label>: RowUnderflowAlignment<\/ref.enum><\/decl.var.parameter.type> = .leading<\/decl.var.parameter>, rowItemsAlignment<\/decl.var.parameter.argument_label>: RowItemsAlignment<\/ref.enum><\/decl.var.parameter.type> = .top<\/decl.var.parameter>, itemSizing<\/decl.var.parameter.argument_label>: ItemSizing<\/ref.enum><\/decl.var.parameter.type> = .natural<\/decl.var.parameter>, bounds<\/decl.var.parameter.argument_label>: ListContentBounds<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, spacings<\/decl.var.parameter.argument_label>: Spacings<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1181, - "key.line" : 152, - "key.modulename" : "ListableUI", - "key.name" : "init(direction:stickyListHeader:stickySectionHeaders:pagingBehavior:rowUnderflowAlignment:rowItemsAlignment:itemSizing:bounds:spacings:)", - "key.namelength" : 449, - "key.nameoffset" : 10188, - "key.offset" : 10188, - "key.parsed_declaration" : "public init(\n direction: LayoutDirection = .vertical,\n stickyListHeader: Bool = false,\n stickySectionHeaders: Bool? = nil,\n pagingBehavior : ListPagingBehavior = .none,\n rowUnderflowAlignment : RowUnderflowAlignment = .leading,\n rowItemsAlignment : RowItemsAlignment = .top,\n itemSizing : ItemSizing = .natural,\n \n bounds : ListContentBounds? = nil,\n spacings : Spacings = .init()\n)", - "key.parsed_scope.end" : 189, - "key.parsed_scope.start" : 152, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.Type) -> (LayoutDirection, Bool, Bool?, ListPagingBehavior, FlowAppearance.RowUnderflowAlignment, FlowAppearance.RowItemsAlignment, FlowAppearance.ItemSizing, ListContentBounds?, FlowAppearance.Spacings) -> FlowAppearance", - "key.typeusr" : "$s9direction16stickyListHeader0B14SectionHeaders14pagingBehavior21rowUnderflowAlignment0i5ItemsK010itemSizing6bounds8spacings10ListableUI14FlowAppearanceVAJ15LayoutDirectionO_S2bSgAJ0c6PagingH0OAL03RowjK0OAL0xlK0OAL04ItemN0OAJ0C13ContentBoundsVSgAL8SpacingsVtcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV9direction16stickyListHeader0F14SectionHeaders14pagingBehavior21rowUnderflowAlignment0m5ItemsO010itemSizing6bounds8spacingsAcA15LayoutDirectionO_S2bSgAA0g6PagingL0OAC03RownO0OAC0xpO0OAC04ItemR0OAA0G13ContentBoundsVSgAC8SpacingsVtcfc" - } - ], - "key.typename" : "FlowAppearance.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceVmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV" - }, - { - "key.annotated_decl" : "public struct FlowAppearance : ListLayoutAppearance<\/Type><\/Declaration>", - "key.bodylength" : 20065, - "key.bodyoffset" : 11400, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows rendering a list in the style of a flow layout. Items in the list flow from one row to the next,\nwith each row containing as many items as will fit. Items can be the same sizes or different sizes.\n\nYou can control the layout both via the `FlowAppearance` parameter\npassed to `.flow` layout types, plus via the `section.layouts.flow` options on a `Section`.\n\nTo display a flow layout in your list, set its `layout` to a `.flow` type:\n```\nlist.layout = .flow { flow in\n \/\/ Customize the flow options.\n}\n```\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│ padding.top │\n│ ┌─────────────────────────────────────────────────────────┐ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ headerToFirstSectionSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ Section Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │\n│ ││ │ │ │ │ │ │ │\n│ ││ Item │ │ Item │ │ Item │ │ │\n│ ││ │ │ │ │ │ │ │\n│ │└───────────────┘ └───────────────┘ └───────────────┘ │ │\n│ │ rowSpacing │ │\n│ │┌──────────────────────┐ ┌──────────────────────┐ │ │\n│ ││ │ │ │ │ │\n│ ││ Item │ │ Item │ │ │\n│ ││ │ │ │ │ │\n│ p │└──────────────────────┘ └──────────────────────┘ │ p │\n│ a │ itemToSectionFooterSpacing │ a │\n│ d │┌───────────────────────────────────────────────────────┐│ d │\n│ d ││ ││ d │\n│ i ││ Section Footer ││ i │\n│ n ││ ││ n │\n│ g │└───────────────────────────────────────────────────────┘│ g │\n│ . │ │ . │\n│ l │ interSectionSpacing.withFooter │ r │\n│ e │ │ i │\n│ f │┌───────────────────────────────────────────────────────┐│ g │\n│ t ││ ││ h │\n│ ││ Section Header ││ t │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌──────────────────────┐ ┌─────────────────────────────┐ │ │\n│ ││ │ │ │ │ │\n│ ││ Item │ │ Item │ │ │\n│ ││ │ │ │ │ │\n│ │└──────────────────────┘ └─────────────────────────────┘ │ │\n│ │ │ │\n│ │ lastSectionToFooterSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Footer ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ └─────────────────────────────────────────────────────────┘ │\n│ padding.bottom │\n└─────────────────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct FlowAppearance : ListLayoutAppearance", - "key.doc.discussion" : [ - { - "Para" : "You can control the layout both via the `FlowAppearance` parameter passed to `.flow` layout types, plus via the `section.layouts.flow` options on a `Section`." - }, - { - "Para" : "To display a flow layout in your list, set its `layout` to a `.flow` type:" - }, - { - "CodeListing" : "" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "FlowAppearance<\/Name>s:10ListableUI14FlowAppearanceV<\/USR>public struct FlowAppearance : ListLayoutAppearance<\/Declaration>Allows rendering a list in the style of a flow layout. Items in the list flow from one row to the next, with each row containing as many items as will fit. Items can be the same sizes or different sizes.<\/Para><\/Abstract>You can control the layout both via the FlowAppearance<\/codeVoice> parameter passed to .flow<\/codeVoice> layout types, plus via the section.layouts.flow<\/codeVoice> options on a Section<\/codeVoice>.<\/Para>To display a flow layout in your list, set its layout<\/codeVoice> to a .flow<\/codeVoice> type:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 97, - "key.doc.name" : "FlowAppearance", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> FlowAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 20092, - "key.line" : 97, - "key.modulename" : "ListableUI", - "key.name" : "FlowAppearance", - "key.namelength" : 14, - "key.nameoffset" : 11384, - "key.offset" : 11374, - "key.parsed_declaration" : "extension FlowAppearance", - "key.parsed_scope.end" : 537, - "key.parsed_scope.start" : 193, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ItemSizing : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11470 - } - ], - "key.bodylength" : 332, - "key.bodyoffset" : 11506, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls how items in a row are measured and sized.", - "key.doc.column" : 17, - "key.doc.comment" : "Controls how items in a row are measured and sized.", - "key.doc.declaration" : "public enum ItemSizing : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "ItemSizing<\/Name>s:10ListableUI14FlowAppearanceV10ItemSizingO<\/USR>public enum ItemSizing : Equatable<\/Declaration>Controls how items in a row are measured and sized.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 196, - "key.doc.name" : "ItemSizing", - "key.doc.type" : "Other", - "key.doclength" : 56, - "key.docoffset" : 11410, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 11495 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ItemSizing<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 362, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "ItemSizing", - "key.namelength" : 10, - "key.nameoffset" : 11482, - "key.offset" : 11477, - "key.parsed_declaration" : "public enum ItemSizing : Equatable", - "key.parsed_scope.end" : 206, - "key.parsed_scope.start" : 196, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 11602, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case natural<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The natural value from the `Item.sizing` is used with no changes.", - "key.doc.column" : 14, - "key.doc.comment" : "The natural value from the `Item.sizing` is used with no changes.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "natural<\/Name>s:10ListableUI14FlowAppearanceV10ItemSizingO7naturalyA2EmF<\/USR><\/Declaration>The natural value from the Item.sizing<\/codeVoice> is used with no changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 199, - "key.doc.name" : "natural", - "key.doc.type" : "Other", - "key.doclength" : 70, - "key.docoffset" : 11524, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> natural<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 199, - "key.modulename" : "ListableUI", - "key.name" : "natural", - "key.namelength" : 7, - "key.nameoffset" : 11607, - "key.offset" : 11607, - "key.parsed_declaration" : "case natural", - "key.parsed_scope.end" : 199, - "key.parsed_scope.start" : 199, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.ItemSizing.Type) -> FlowAppearance.ItemSizing", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV10ItemSizingOAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemSizingO7naturalyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 11690, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fixed(CGFloat<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The width of the item is fixed to this value.", - "key.doc.column" : 14, - "key.doc.comment" : "The width of the item is fixed to this value.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "fixed(_:)<\/Name>s:10ListableUI14FlowAppearanceV10ItemSizingO5fixedyAE14CoreFoundation7CGFloatVcAEmF<\/USR><\/Declaration>The width of the item is fixed to this value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 202, - "key.doc.name" : "fixed(_:)", - "key.doc.type" : "Other", - "key.doclength" : 50, - "key.docoffset" : 11632, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 202, - "key.modulename" : "ListableUI", - "key.name" : "fixed(_:)", - "key.namelength" : 14, - "key.nameoffset" : 11695, - "key.offset" : 11695, - "key.parsed_declaration" : "case fixed(CGFloat)", - "key.parsed_scope.end" : 202, - "key.parsed_scope.start" : 202, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.ItemSizing.Type) -> (CGFloat) -> FlowAppearance.ItemSizing", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV10ItemSizingO14CoreFoundation7CGFloatVcAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemSizingO5fixedyAE14CoreFoundation7CGFloatVcAEmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 11816, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case columns(Int<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The width of the item is calculated based on the number of columns provided.", - "key.doc.column" : 14, - "key.doc.comment" : "The width of the item is calculated based on the number of columns provided.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "columns(_:)<\/Name>s:10ListableUI14FlowAppearanceV10ItemSizingO7columnsyAESicAEmF<\/USR><\/Declaration>The width of the item is calculated based on the number of columns provided.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 205, - "key.doc.name" : "columns(_:)", - "key.doc.type" : "Other", - "key.doclength" : 81, - "key.docoffset" : 11727, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> columns<\/decl.name>(Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 205, - "key.modulename" : "ListableUI", - "key.name" : "columns(_:)", - "key.namelength" : 12, - "key.nameoffset" : 11821, - "key.offset" : 11821, - "key.parsed_declaration" : "case columns(Int)", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 205, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.ItemSizing.Type) -> (Int) -> FlowAppearance.ItemSizing", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV10ItemSizingOSicAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemSizingO7columnsyAESicAEmF" - } - ] - } - ], - "key.typename" : "FlowAppearance.ItemSizing.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemSizingOmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemSizingO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum RowUnderflowAlignment : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12003 - } - ], - "key.bodylength" : 5755, - "key.bodyoffset" : 12050, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When there is left over space at the end of a row, `RowUnderflowAlignment` controls\nhow the extra space is distributed between the items.", - "key.doc.column" : 17, - "key.doc.comment" : "When there is left over space at the end of a row, `RowUnderflowAlignment` controls\nhow the extra space is distributed between the items.", - "key.doc.declaration" : "public enum RowUnderflowAlignment : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "RowUnderflowAlignment<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO<\/USR>public enum RowUnderflowAlignment : Equatable<\/Declaration>When there is left over space at the end of a row, RowUnderflowAlignment<\/codeVoice> controls how the extra space is distributed between the items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 210, - "key.doc.name" : "RowUnderflowAlignment", - "key.doc.type" : "Other", - "key.doclength" : 150, - "key.docoffset" : 11849, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12039 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> RowUnderflowAlignment<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 5796, - "key.line" : 210, - "key.modulename" : "ListableUI", - "key.name" : "RowUnderflowAlignment", - "key.namelength" : 21, - "key.nameoffset" : 12015, - "key.offset" : 12010, - "key.parsed_declaration" : "public enum RowUnderflowAlignment : Equatable", - "key.parsed_scope.end" : 280, - "key.parsed_scope.start" : 210, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 13236, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case leading<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The items are leading-aligned, with extra space at the end of the row.\n\n```\n┌────────────────────────────────────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ ┌────────────┐ │\n││ │ │ │ │ │ │\n││ Item │ │ Item │ │ Item │ │\n││ │ │ │ │ │ │\n│└────────────┘ └────────────┘ └────────────┘ │\n└────────────────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 14, - "key.doc.comment" : "The items are leading-aligned, with extra space at the end of the row.\n\n```\n┌────────────────────────────────────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ ┌────────────┐ │\n││ │ │ │ │ │ │\n││ Item │ │ Item │ │ Item │ │\n││ │ │ │ │ │ │\n│└────────────┘ └────────────┘ └────────────┘ │\n└────────────────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "leading<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO7leadingyA2EmF<\/USR><\/Declaration>The items are leading-aligned, with extra space at the end of the row.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 223, - "key.doc.name" : "leading", - "key.doc.type" : "Other", - "key.doclength" : 1160, - "key.docoffset" : 12068, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> leading<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 223, - "key.modulename" : "ListableUI", - "key.name" : "leading", - "key.namelength" : 7, - "key.nameoffset" : 13241, - "key.offset" : 13241, - "key.parsed_declaration" : "case leading", - "key.parsed_scope.end" : 223, - "key.parsed_scope.start" : 223, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowUnderflowAlignment.Type) -> FlowAppearance.RowUnderflowAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV21RowUnderflowAlignmentOAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO7leadingyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 14483, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case centered<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The items are center-aligned, with extra space distributed evenly between\nthe beginning and end of the row.\n\n```\n┌────────────────────────────────────────────────────────────────┐\n│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │\n│ │ │ │ │ │ │ │\n│ │ Item │ │ Item │ │ Item │ │\n│ │ │ │ │ │ │ │\n│ └────────────┘ └────────────┘ └────────────┘ │\n└────────────────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 14, - "key.doc.comment" : "The items are center-aligned, with extra space distributed evenly between\nthe beginning and end of the row.\n\n```\n┌────────────────────────────────────────────────────────────────┐\n│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │\n│ │ │ │ │ │ │ │\n│ │ Item │ │ Item │ │ Item │ │\n│ │ │ │ │ │ │ │\n│ └────────────┘ └────────────┘ └────────────┘ │\n└────────────────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "centered<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO8centeredyA2EmF<\/USR><\/Declaration>The items are center-aligned, with extra space distributed evenly between the beginning and end of the row.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 237, - "key.doc.name" : "centered", - "key.doc.type" : "Other", - "key.doclength" : 1209, - "key.docoffset" : 13266, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> centered<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 237, - "key.modulename" : "ListableUI", - "key.name" : "centered", - "key.namelength" : 8, - "key.nameoffset" : 14488, - "key.offset" : 14488, - "key.parsed_declaration" : "case centered", - "key.parsed_scope.end" : 237, - "key.parsed_scope.start" : 237, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowUnderflowAlignment.Type) -> FlowAppearance.RowUnderflowAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV21RowUnderflowAlignmentOAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO8centeredyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 15689, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case trailing<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The items are trailing-aligned, with extra space at the beginning of the row.\n\n```\n┌────────────────────────────────────────────────────────────────┐\n│ ┌────────────┐ ┌────────────┐ ┌────────────┐│\n│ │ │ │ │ │ ││\n│ │ Item │ │ Item │ │ Item ││\n│ │ │ │ │ │ ││\n│ └────────────┘ └────────────┘ └────────────┘│\n└────────────────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 14, - "key.doc.comment" : "The items are trailing-aligned, with extra space at the beginning of the row.\n\n```\n┌────────────────────────────────────────────────────────────────┐\n│ ┌────────────┐ ┌────────────┐ ┌────────────┐│\n│ │ │ │ │ │ ││\n│ │ Item │ │ Item │ │ Item ││\n│ │ │ │ │ │ ││\n│ └────────────┘ └────────────┘ └────────────┘│\n└────────────────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "trailing<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO8trailingyA2EmF<\/USR><\/Declaration>The items are trailing-aligned, with extra space at the beginning of the row.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 250, - "key.doc.name" : "trailing", - "key.doc.type" : "Other", - "key.doclength" : 1167, - "key.docoffset" : 14514, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> trailing<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 250, - "key.modulename" : "ListableUI", - "key.name" : "trailing", - "key.namelength" : 8, - "key.nameoffset" : 15694, - "key.offset" : 15694, - "key.parsed_declaration" : "case trailing", - "key.parsed_scope.end" : 250, - "key.parsed_scope.start" : 250, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowUnderflowAlignment.Type) -> FlowAppearance.RowUnderflowAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV21RowUnderflowAlignmentOAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO8trailingyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 58, - "key.offset" : 17182, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fill(lastRowAlignment: FillLastRowAlignment<\/Type> = .fill)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The extra space in the row is evenly distributed between the items in the row.\n\nYou can control the fill behavior of the last row via the `FillLastRowAlignment` parameter,\nto enable more visually pleasing spacing for rows that contain fewer items. The minimum of\n`itemSpacing` and the calculated spacing will be used.\n\n```\n┌────────────────────────────────────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ ┌────────────┐│\n││ │ │ │ │ ││\n││ Item │ │ Item │ │ Item ││\n││ │ │ │ │ ││\n│└────────────┘ └────────────┘ └────────────┘│\n└────────────────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 14, - "key.doc.comment" : "The extra space in the row is evenly distributed between the items in the row.\n\nYou can control the fill behavior of the last row via the `FillLastRowAlignment` parameter,\nto enable more visually pleasing spacing for rows that contain fewer items. The minimum of\n`itemSpacing` and the calculated spacing will be used.\n\n```\n┌────────────────────────────────────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ ┌────────────┐│\n││ │ │ │ │ ││\n││ Item │ │ Item │ │ Item ││\n││ │ │ │ │ ││\n│└────────────┘ └────────────┘ └────────────┘│\n└────────────────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "You can control the fill behavior of the last row via the `FillLastRowAlignment` parameter, to enable more visually pleasing spacing for rows that contain fewer items. The minimum of `itemSpacing` and the calculated spacing will be used." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "fill(lastRowAlignment:)<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO4fillyA2E08FillLasteG0O_tcAEmF<\/USR><\/Declaration>The extra space in the row is evenly distributed between the items in the row.<\/Para><\/Abstract>You can control the fill behavior of the last row via the FillLastRowAlignment<\/codeVoice> parameter, to enable more visually pleasing spacing for rows that contain fewer items. The minimum of itemSpacing<\/codeVoice> and the calculated spacing will be used.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 267, - "key.doc.name" : "fill(lastRowAlignment:)", - "key.doc.type" : "Other", - "key.doclength" : 1454, - "key.docoffset" : 15720, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fill<\/decl.name>(lastRowAlignment<\/decl.var.parameter.argument_label>: FillLastRowAlignment<\/ref.enum><\/decl.var.parameter.type> = .fill<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 53, - "key.line" : 267, - "key.modulename" : "ListableUI", - "key.name" : "fill(lastRowAlignment:)", - "key.namelength" : 53, - "key.nameoffset" : 17187, - "key.offset" : 17187, - "key.parsed_declaration" : "case fill(lastRowAlignment : FillLastRowAlignment = .fill)", - "key.parsed_scope.end" : 267, - "key.parsed_scope.start" : 267, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.RowUnderflowAlignment.Type) -> (FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment) -> FlowAppearance.RowUnderflowAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV21RowUnderflowAlignmentOAE08FillLasteG0O_tcAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO4fillyA2E08FillLasteG0O_tcAEmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum FlowAppearance<\/Type>.RowUnderflowAlignment<\/Type>.FillLastRowAlignment : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 17328 - } - ], - "key.bodylength" : 425, - "key.bodyoffset" : 17374, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the fill behavior for the last row in a section.", - "key.doc.column" : 21, - "key.doc.comment" : "Controls the fill behavior for the last row in a section.", - "key.doc.declaration" : "public enum ListableUI.FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "FillLastRowAlignment<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0O<\/USR>public enum ListableUI.FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment : Equatable<\/Declaration>Controls the fill behavior for the last row in a section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 270, - "key.doc.name" : "FillLastRowAlignment", - "key.doc.type" : "Other", - "key.doclength" : 62, - "key.docoffset" : 17258, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 17363 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> FlowAppearance<\/ref.struct>.RowUnderflowAlignment<\/ref.enum>.FillLastRowAlignment<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 465, - "key.line" : 270, - "key.modulename" : "ListableUI", - "key.name" : "FillLastRowAlignment", - "key.namelength" : 20, - "key.nameoffset" : 17340, - "key.offset" : 17335, - "key.parsed_declaration" : "public enum FillLastRowAlignment : Equatable", - "key.parsed_scope.end" : 279, - "key.parsed_scope.start" : 270, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 17485, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fill<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default behaviour; the row will be filled to fit its maximum allowable width.", - "key.doc.column" : 18, - "key.doc.comment" : "The default behaviour; the row will be filled to fit its maximum allowable width.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "fill<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0O4fillyA2GmF<\/USR><\/Declaration>The default behaviour; the row will be filled to fit its maximum allowable width.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 272, - "key.doc.name" : "fill", - "key.doc.type" : "Other", - "key.doclength" : 86, - "key.docoffset" : 17387, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fill<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 272, - "key.modulename" : "ListableUI", - "key.name" : "fill", - "key.namelength" : 4, - "key.nameoffset" : 17490, - "key.offset" : 17490, - "key.parsed_declaration" : "case fill", - "key.parsed_scope.end" : 272, - "key.parsed_scope.start" : 272, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment.Type) -> FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0OAGmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0O4fillyA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 28, - "key.offset" : 17621, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case matchPreviousRowSpacing<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing of the previous row or `itemSpacing` will be used, whichever is smaller.", - "key.doc.column" : 18, - "key.doc.comment" : "The spacing of the previous row or `itemSpacing` will be used, whichever is smaller.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "matchPreviousRowSpacing<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0O013matchPreviousE7SpacingyA2GmF<\/USR><\/Declaration>The spacing of the previous row or itemSpacing<\/codeVoice> will be used, whichever is smaller.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 275, - "key.doc.name" : "matchPreviousRowSpacing", - "key.doc.type" : "Other", - "key.doclength" : 89, - "key.docoffset" : 17520, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> matchPreviousRowSpacing<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 23, - "key.line" : 275, - "key.modulename" : "ListableUI", - "key.name" : "matchPreviousRowSpacing", - "key.namelength" : 23, - "key.nameoffset" : 17626, - "key.offset" : 17626, - "key.parsed_declaration" : "case matchPreviousRowSpacing", - "key.parsed_scope.end" : 275, - "key.parsed_scope.start" : 275, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment.Type) -> FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0OAGmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0O013matchPreviousE7SpacingyA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 23, - "key.offset" : 17767, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case defaultItemSpacing<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The calculated spacing or `itemSpacing` will be used, whichever is smaller.", - "key.doc.column" : 18, - "key.doc.comment" : "The calculated spacing or `itemSpacing` will be used, whichever is smaller.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "defaultItemSpacing<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0O18defaultItemSpacingyA2GmF<\/USR><\/Declaration>The calculated spacing or itemSpacing<\/codeVoice> will be used, whichever is smaller.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 278, - "key.doc.name" : "defaultItemSpacing", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 17675, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> defaultItemSpacing<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 18, - "key.line" : 278, - "key.modulename" : "ListableUI", - "key.name" : "defaultItemSpacing", - "key.namelength" : 18, - "key.nameoffset" : 17772, - "key.offset" : 17772, - "key.parsed_declaration" : "case defaultItemSpacing", - "key.parsed_scope.end" : 278, - "key.parsed_scope.start" : 278, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment.Type) -> FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0OAGmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0O18defaultItemSpacingyA2GmF" - } - ] - } - ], - "key.typename" : "FlowAppearance.RowUnderflowAlignment.FillLastRowAlignment.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0OmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO08FillLasteG0O" - } - ], - "key.typename" : "FlowAppearance.RowUnderflowAlignment.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV21RowUnderflowAlignmentOmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum RowItemsAlignment : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 17925 - } - ], - "key.bodylength" : 6213, - "key.bodyoffset" : 17968, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When items in a row are not the same height, controls the alignment and sizing of the smaller items.", - "key.doc.column" : 17, - "key.doc.comment" : "When items in a row are not the same height, controls the alignment and sizing of the smaller items.", - "key.doc.declaration" : "public enum RowItemsAlignment : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "RowItemsAlignment<\/Name>s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO<\/USR>public enum RowItemsAlignment : Equatable<\/Declaration>When items in a row are not the same height, controls the alignment and sizing of the smaller items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 283, - "key.doc.name" : "RowItemsAlignment", - "key.doc.type" : "Other", - "key.doclength" : 105, - "key.docoffset" : 17816, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 17957 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> RowItemsAlignment<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 6250, - "key.line" : 283, - "key.modulename" : "ListableUI", - "key.name" : "RowItemsAlignment", - "key.namelength" : 17, - "key.nameoffset" : 17937, - "key.offset" : 17932, - "key.parsed_declaration" : "public enum RowItemsAlignment : Equatable", - "key.parsed_scope.end" : 362, - "key.parsed_scope.start" : 283, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 8, - "key.offset" : 19391, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case top<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When items in a row are not the same height, the shorter items will be aligned to the top of the row.\n\n```\n┌──────────────────────────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ ┌────────────┐ │\n││ │ │ │ │ │ │\n││ │ │ │ │ Item │ │\n││ │ │ Item │ │ │ │\n││ Item │ │ │ └────────────┘ │\n││ │ │ │ │\n││ │ └────────────┘ │\n││ │ │\n│└────────────┘ │\n└──────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 14, - "key.doc.comment" : "When items in a row are not the same height, the shorter items will be aligned to the top of the row.\n\n```\n┌──────────────────────────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ ┌────────────┐ │\n││ │ │ │ │ │ │\n││ │ │ │ │ Item │ │\n││ │ │ Item │ │ │ │\n││ Item │ │ │ └────────────┘ │\n││ │ │ │ │\n││ │ └────────────┘ │\n││ │ │\n│└────────────┘ │\n└──────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO3topyA2EmF<\/USR><\/Declaration>When items in a row are not the same height, the shorter items will be aligned to the top of the row.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 300, - "key.doc.name" : "top", - "key.doc.type" : "Other", - "key.doclength" : 1397, - "key.docoffset" : 17986, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> top<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 3, - "key.line" : 300, - "key.modulename" : "ListableUI", - "key.name" : "top", - "key.namelength" : 3, - "key.nameoffset" : 19396, - "key.offset" : 19396, - "key.parsed_declaration" : "case top", - "key.parsed_scope.end" : 300, - "key.parsed_scope.start" : 300, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowItemsAlignment.Type) -> FlowAppearance.RowItemsAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV17RowItemsAlignmentOAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO3topyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 20822, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case center<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When items in a row are not the same height, the shorter items will be center aligned within the row.\n\n```\n┌──────────────────────────────────────────────────────┐\n│┌────────────┐ │\n││ │ ┌────────────┐ │\n││ │ │ │ ┌────────────┐ │\n││ │ │ │ │ │ │\n││ Item │ │ Item │ │ Item │ │\n││ │ │ │ │ │ │\n││ │ │ │ └────────────┘ │\n││ │ └────────────┘ │\n│└────────────┘ │\n└──────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 14, - "key.doc.comment" : "When items in a row are not the same height, the shorter items will be center aligned within the row.\n\n```\n┌──────────────────────────────────────────────────────┐\n│┌────────────┐ │\n││ │ ┌────────────┐ │\n││ │ │ │ ┌────────────┐ │\n││ │ │ │ │ │ │\n││ Item │ │ Item │ │ Item │ │\n││ │ │ │ │ │ │\n││ │ │ │ └────────────┘ │\n││ │ └────────────┘ │\n│└────────────┘ │\n└──────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "center<\/Name>s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO6centeryA2EmF<\/USR><\/Declaration>When items in a row are not the same height, the shorter items will be center aligned within the row.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 317, - "key.doc.name" : "center", - "key.doc.type" : "Other", - "key.doclength" : 1397, - "key.docoffset" : 19417, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> center<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 317, - "key.modulename" : "ListableUI", - "key.name" : "center", - "key.namelength" : 6, - "key.nameoffset" : 20827, - "key.offset" : 20827, - "key.parsed_declaration" : "case center", - "key.parsed_scope.end" : 317, - "key.parsed_scope.start" : 317, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowItemsAlignment.Type) -> FlowAppearance.RowItemsAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV17RowItemsAlignmentOAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO6centeryA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 22256, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case bottom<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When items in a row are not the same height, the shorter items will be bottom aligned within the row.\n\n```\n┌──────────────────────────────────────────────────────┐\n│┌────────────┐ │\n││ │ │\n││ │ ┌────────────┐ │\n││ │ │ │ │\n││ Item │ │ │ ┌────────────┐ │\n││ │ │ Item │ │ │ │\n││ │ │ │ │ Item │ │\n││ │ │ │ │ │ │\n│└────────────┘ └────────────┘ └────────────┘ │\n└──────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 14, - "key.doc.comment" : "When items in a row are not the same height, the shorter items will be bottom aligned within the row.\n\n```\n┌──────────────────────────────────────────────────────┐\n│┌────────────┐ │\n││ │ │\n││ │ ┌────────────┐ │\n││ │ │ │ │\n││ Item │ │ │ ┌────────────┐ │\n││ │ │ Item │ │ │ │\n││ │ │ │ │ Item │ │\n││ │ │ │ │ │ │\n│└────────────┘ └────────────┘ └────────────┘ │\n└──────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO6bottomyA2EmF<\/USR><\/Declaration>When items in a row are not the same height, the shorter items will be bottom aligned within the row.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 334, - "key.doc.name" : "bottom", - "key.doc.type" : "Other", - "key.doclength" : 1397, - "key.docoffset" : 20851, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> bottom<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 334, - "key.modulename" : "ListableUI", - "key.name" : "bottom", - "key.namelength" : 6, - "key.nameoffset" : 22261, - "key.offset" : 22261, - "key.parsed_declaration" : "case bottom", - "key.parsed_scope.end" : 334, - "key.parsed_scope.start" : 334, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowItemsAlignment.Type) -> FlowAppearance.RowItemsAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV17RowItemsAlignmentOAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO6bottomyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 23860, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fill<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When items in a row are not the same height, the shorter items will be stretched to be the same\nheight as the tallest item in the row. In the below diagram, the dotted line represents the additional added space.\n\n```\n┌──────────────────────────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ ┌────────────┐ │\n││ │ │ │ │ │ │\n││ │ ├ ─ ─ ─ ─ ─ ─│ │ │ │\n││ │ │ │ │─ ─ ─ ─ ─ ─ ┤ │\n││ Item │ │ Item │ │ Item │ │\n││ │ │ │ │ │ │\n││ │ │ │ │ │ │\n││ │ │ │ │ │ │\n│└────────────┘ └────────────┘ └────────────┘ │\n└──────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 14, - "key.doc.comment" : "When items in a row are not the same height, the shorter items will be stretched to be the same\nheight as the tallest item in the row. In the below diagram, the dotted line represents the additional added space.\n\n```\n┌──────────────────────────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ ┌────────────┐ │\n││ │ │ │ │ │ │\n││ │ ├ ─ ─ ─ ─ ─ ─│ │ │ │\n││ │ │ │ │─ ─ ─ ─ ─ ─ ┤ │\n││ Item │ │ Item │ │ Item │ │\n││ │ │ │ │ │ │\n││ │ │ │ │ │ │\n││ │ │ │ │ │ │\n│└────────────┘ └────────────┘ └────────────┘ │\n└──────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "fill<\/Name>s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO4fillyA2EmF<\/USR><\/Declaration>When items in a row are not the same height, the shorter items will be stretched to be the same height as the tallest item in the row. In the below diagram, the dotted line represents the additional added space.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 352, - "key.doc.name" : "fill", - "key.doc.type" : "Other", - "key.doclength" : 1567, - "key.docoffset" : 22285, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fill<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 352, - "key.modulename" : "ListableUI", - "key.name" : "fill", - "key.namelength" : 4, - "key.nameoffset" : 23865, - "key.offset" : 23865, - "key.parsed_declaration" : "case fill", - "key.parsed_scope.end" : 352, - "key.parsed_scope.start" : 352, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.RowItemsAlignment.Type) -> FlowAppearance.RowItemsAlignment", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV17RowItemsAlignmentOAEmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO4fillyA2EmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func adjusted(height: CGFloat<\/Type>, forMaxRowHeight maxHeight: CGFloat<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.bodylength" : 207, - "key.bodyoffset" : 23968, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> adjusted<\/decl.name>(height<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, forMaxRowHeight<\/decl.var.parameter.argument_label> maxHeight<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 289, - "key.line" : 354, - "key.modulename" : "ListableUI", - "key.name" : "adjusted(height:forMaxRowHeight:)", - "key.namelength" : 63, - "key.nameoffset" : 23892, - "key.offset" : 23887, - "key.parsed_declaration" : "func adjusted(height : CGFloat, forMaxRowHeight maxHeight : CGFloat) -> CGFloat", - "key.parsed_scope.end" : 361, - "key.parsed_scope.start" : 354, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.RowItemsAlignment) -> (CGFloat, CGFloat) -> CGFloat", - "key.typeusr" : "$s6height15forMaxRowHeight14CoreFoundation7CGFloatVAE_AEtcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO8adjusted6height06forMaxE6Height14CoreFoundation7CGFloatVAK_AKtF" - } - ], - "key.typename" : "FlowAppearance.RowItemsAlignment.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV17RowItemsAlignmentOmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemLayout : Equatable<\/Type>, ItemLayoutsValue<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 24296 - } - ], - "key.bodylength" : 2057, - "key.bodyoffset" : 24356, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the layout parameters for a given `Item` when it is displayed within a `.flow` layout.", - "key.doc.column" : 19, - "key.doc.comment" : "Controls the layout parameters for a given `Item` when it is displayed within a `.flow` layout.", - "key.doc.declaration" : "public struct ItemLayout : Equatable, ItemLayoutsValue", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "ItemLayout<\/Name>s:10ListableUI14FlowAppearanceV10ItemLayoutV<\/USR>public struct ItemLayout : Equatable, ItemLayoutsValue<\/Declaration>Controls the layout parameters for a given Item<\/codeVoice> when it is displayed within a .flow<\/codeVoice> layout.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 365, - "key.doc.name" : "ItemLayout", - "key.doc.type" : "Class", - "key.doclength" : 100, - "key.docoffset" : 24192, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 24323 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 24334 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayout<\/decl.name> : Equatable<\/ref.protocol>, ItemLayoutsValue<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - }, - { - "key.name" : "ItemLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2111, - "key.line" : 365, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayout", - "key.namelength" : 10, - "key.nameoffset" : 24310, - "key.offset" : 24303, - "key.parsed_declaration" : "public struct ItemLayout : Equatable, ItemLayoutsValue", - "key.parsed_scope.end" : 406, - "key.parsed_scope.start" : 365, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: Width<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 24436 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to calculate the width of the item within the section.", - "key.doc.column" : 20, - "key.doc.comment" : "How to calculate the width of the item within the section.", - "key.doc.declaration" : "public var width: Width", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI14FlowAppearanceV10ItemLayoutV5widthAE5WidthOvp<\/USR>public var width: Width<\/Declaration>How to calculate the width of the item within the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 368, - "key.doc.name" : "width", - "key.doc.type" : "Other", - "key.doclength" : 63, - "key.docoffset" : 24365, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: Width<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 368, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 24447, - "key.offset" : 24443, - "key.parsed_declaration" : "public var width : Width", - "key.parsed_scope.end" : 368, - "key.parsed_scope.start" : 368, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.ItemLayout.Width", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemLayoutV5WidthOD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemLayoutV5widthAE5WidthOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(width: Width<\/Type> = .natural)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 24478 - } - ], - "key.bodylength" : 40, - "key.bodyoffset" : 24539, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: Width<\/ref.enum><\/decl.var.parameter.type> = .natural<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 95, - "key.line" : 370, - "key.modulename" : "ListableUI", - "key.name" : "init(width:)", - "key.namelength" : 52, - "key.nameoffset" : 24485, - "key.offset" : 24485, - "key.parsed_declaration" : "public init(\n width : Width = .natural\n)", - "key.parsed_scope.end" : 374, - "key.parsed_scope.start" : 370, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.ItemLayout.Type) -> (FlowAppearance.ItemLayout.Width) -> FlowAppearance.ItemLayout", - "key.typeusr" : "$s5width10ListableUI14FlowAppearanceV10ItemLayoutVAF5WidthO_tcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemLayoutV5widthA2E5WidthO_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 24598 - } - ], - "key.bodylength" : 33, - "key.bodyoffset" : 24637, - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from ItemLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 66, - "key.line" : 376, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 24616, - "key.offset" : 24605, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue : Self", - "key.parsed_scope.end" : 378, - "key.parsed_scope.start" : 376, - "key.reusingastcontext" : false, - "key.typename" : "FlowAppearance.ItemLayout", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemLayoutVD", - "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum FlowAppearance<\/Type>.ItemLayout<\/Type>.Width : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26170 - } - ], - "key.bodylength" : 206, - "key.bodyoffset" : 26201, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls how to determine the width of the items within a row.\n\n```\n┌───────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ │\n││ │ │ │ │\n││ .natural │ │ .natural │ │\n││ │ │ │ │\n│└────────────┘ └────────────┘ │\n│┌────────────────────────────────┐ │\n││ .fillRow │ │\n│└────────────────────────────────┘ │\n│┌────────────┐ ┌────────────┐ │\n││ │ │ │ │\n││ .natural │ │ .natural │ │\n││ │ │ │ │\n│└────────────┘ └────────────┘ │\n└───────────────────────────────────┘\n```", - "key.doc.column" : 21, - "key.doc.comment" : "Controls how to determine the width of the items within a row.\n\n```\n┌───────────────────────────────────┐\n│┌────────────┐ ┌────────────┐ │\n││ │ │ │ │\n││ .natural │ │ .natural │ │\n││ │ │ │ │\n│└────────────┘ └────────────┘ │\n│┌────────────────────────────────┐ │\n││ .fillRow │ │\n│└────────────────────────────────┘ │\n│┌────────────┐ ┌────────────┐ │\n││ │ │ │ │\n││ .natural │ │ .natural │ │\n││ │ │ │ │\n│└────────────┘ └────────────┘ │\n└───────────────────────────────────┘\n```", - "key.doc.declaration" : "public enum ListableUI.FlowAppearance.ItemLayout.Width : Equatable", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "Width<\/Name>s:10ListableUI14FlowAppearanceV10ItemLayoutV5WidthO<\/USR>public enum ListableUI.FlowAppearance.ItemLayout.Width : Equatable<\/Declaration>Controls how to determine the width of the items within a row.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 399, - "key.doc.name" : "Width", - "key.doc.type" : "Other", - "key.doclength" : 1473, - "key.docoffset" : 24689, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 26190 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> FlowAppearance<\/ref.struct>.ItemLayout<\/ref.struct>.Width<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 231, - "key.line" : 399, - "key.modulename" : "ListableUI", - "key.name" : "Width", - "key.namelength" : 5, - "key.nameoffset" : 26182, - "key.offset" : 26177, - "key.parsed_declaration" : "public enum Width : Equatable", - "key.parsed_scope.end" : 405, - "key.parsed_scope.start" : 399, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 26276, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case natural<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The standard with from the item will be used.", - "key.doc.column" : 18, - "key.doc.comment" : "The standard with from the item will be used.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "natural<\/Name>s:10ListableUI14FlowAppearanceV10ItemLayoutV5WidthO7naturalyA2GmF<\/USR><\/Declaration>The standard with from the item will be used.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 401, - "key.doc.name" : "natural", - "key.doc.type" : "Other", - "key.doclength" : 50, - "key.docoffset" : 26214, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> natural<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 401, - "key.modulename" : "ListableUI", - "key.name" : "natural", - "key.namelength" : 7, - "key.nameoffset" : 26281, - "key.offset" : 26281, - "key.parsed_declaration" : "case natural", - "key.parsed_scope.end" : 401, - "key.parsed_scope.start" : 401, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.ItemLayout.Width.Type) -> FlowAppearance.ItemLayout.Width", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV10ItemLayoutV5WidthOAGmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemLayoutV5WidthO7naturalyA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 26386, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fillRow<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The full width of the section will be used by the item.", - "key.doc.column" : 18, - "key.doc.comment" : "The full width of the section will be used by the item.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "fillRow<\/Name>s:10ListableUI14FlowAppearanceV10ItemLayoutV5WidthO7fillRowyA2GmF<\/USR><\/Declaration>The full width of the section will be used by the item.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 404, - "key.doc.name" : "fillRow", - "key.doc.type" : "Other", - "key.doclength" : 60, - "key.docoffset" : 26314, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fillRow<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 404, - "key.modulename" : "ListableUI", - "key.name" : "fillRow", - "key.namelength" : 7, - "key.nameoffset" : 26391, - "key.offset" : 26391, - "key.parsed_declaration" : "case fillRow", - "key.parsed_scope.end" : 404, - "key.parsed_scope.start" : 404, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.ItemLayout.Width.Type) -> FlowAppearance.ItemLayout.Width", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV10ItemLayoutV5WidthOAGmcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemLayoutV5WidthO7fillRowyA2GmF" - } - ] - } - ], - "key.typename" : "FlowAppearance.ItemLayout.Width.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemLayoutV5WidthOmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemLayoutV5WidthO" - } - ], - "key.typename" : "FlowAppearance.ItemLayout.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemLayoutVmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemLayoutV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct HeaderFooterLayout : Equatable<\/Type>, HeaderFooterLayoutsValue<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26541 - } - ], - "key.bodylength" : 117, - "key.bodyoffset" : 26617, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the layout parameters for a given `HeaderFooter` when it is displayed within a `.flow` layout.", - "key.doc.column" : 19, - "key.doc.comment" : "Controls the layout parameters for a given `HeaderFooter` when it is displayed within a `.flow` layout.", - "key.doc.declaration" : "public struct HeaderFooterLayout : Equatable, HeaderFooterLayoutsValue", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "HeaderFooterLayout<\/Name>s:10ListableUI14FlowAppearanceV18HeaderFooterLayoutV<\/USR>public struct HeaderFooterLayout : Equatable, HeaderFooterLayoutsValue<\/Declaration>Controls the layout parameters for a given HeaderFooter<\/codeVoice> when it is displayed within a .flow<\/codeVoice> layout.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 410, - "key.doc.name" : "HeaderFooterLayout", - "key.doc.type" : "Class", - "key.doclength" : 108, - "key.docoffset" : 26429, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 26576 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 24, - "key.offset" : 26587 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayout<\/decl.name> : Equatable<\/ref.protocol>, HeaderFooterLayoutsValue<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - }, - { - "key.name" : "HeaderFooterLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 187, - "key.line" : 410, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayout", - "key.namelength" : 18, - "key.nameoffset" : 26555, - "key.offset" : 26548, - "key.parsed_declaration" : "public struct HeaderFooterLayout : Equatable, HeaderFooterLayoutsValue", - "key.parsed_scope.end" : 417, - "key.parsed_scope.start" : 410, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26626 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 26641, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 9, - "key.line" : 412, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 26633, - "key.offset" : 26633, - "key.parsed_declaration" : "public init()", - "key.parsed_scope.end" : 412, - "key.parsed_scope.start" : 412, - "key.reusingastcontext" : false, - "key.typename" : "(FlowAppearance.HeaderFooterLayout.Type) -> () -> FlowAppearance.HeaderFooterLayout", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV18HeaderFooterLayoutVycD", - "key.usr" : "s:10ListableUI14FlowAppearanceV18HeaderFooterLayoutVAEycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26660 - } - ], - "key.bodylength" : 29, - "key.bodyoffset" : 26699, - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from HeaderFooterLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 62, - "key.line" : 414, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 26678, - "key.offset" : 26667, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue : Self", - "key.parsed_scope.end" : 416, - "key.parsed_scope.start" : 414, - "key.reusingastcontext" : false, - "key.typename" : "FlowAppearance.HeaderFooterLayout", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV18HeaderFooterLayoutVD", - "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ" - } - ], - "key.typename" : "FlowAppearance.HeaderFooterLayout.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV18HeaderFooterLayoutVmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV18HeaderFooterLayoutV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct SectionLayout : Equatable<\/Type>, SectionLayoutsValue<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26852 - } - ], - "key.bodylength" : 1483, - "key.bodyoffset" : 26918, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the layout parameters for a given `Section` when it is displayed within a `.flow` layout.", - "key.doc.column" : 19, - "key.doc.comment" : "Controls the layout parameters for a given `Section` when it is displayed within a `.flow` layout.", - "key.doc.declaration" : "public struct SectionLayout : Equatable, SectionLayoutsValue", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "SectionLayout<\/Name>s:10ListableUI14FlowAppearanceV13SectionLayoutV<\/USR>public struct SectionLayout : Equatable, SectionLayoutsValue<\/Declaration>Controls the layout parameters for a given Section<\/codeVoice> when it is displayed within a .flow<\/codeVoice> layout.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 420, - "key.doc.name" : "SectionLayout", - "key.doc.type" : "Class", - "key.doclength" : 103, - "key.docoffset" : 26745, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 26882 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 26893 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayout<\/decl.name> : Equatable<\/ref.protocol>, SectionLayoutsValue<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - }, - { - "key.name" : "SectionLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1543, - "key.line" : 420, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayout", - "key.namelength" : 13, - "key.nameoffset" : 26866, - "key.offset" : 26859, - "key.parsed_declaration" : "public struct SectionLayout : Equatable, SectionLayoutsValue", - "key.parsed_scope.end" : 461, - "key.parsed_scope.start" : 420, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isHeaderSticky: Bool<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26927 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Indicates if the header for the section will be sticky.\nSetting this value explicitly overrides the list-level stickiness for headers.", - "key.doc.column" : 9, - "key.doc.declaration" : "var isHeaderSticky: Bool? { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "isHeaderSticky<\/Name>s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp<\/USR>var isHeaderSticky: Bool? { get }<\/Declaration>Indicates if the header for the section will be sticky. Setting this value explicitly overrides the list-level stickiness for headers.<\/Para><\/Abstract>This documentation comment was inherited from SectionLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 116, - "key.doc.name" : "isHeaderSticky", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isHeaderSticky<\/decl.name>: Bool<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 422, - "key.modulename" : "ListableUI", - "key.name" : "isHeaderSticky", - "key.namelength" : 14, - "key.nameoffset" : 26938, - "key.offset" : 26934, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp" - } - ], - "key.parsed_declaration" : "public var isHeaderSticky: Bool?", - "key.parsed_scope.end" : 422, - "key.parsed_scope.start" : 422, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool?", - "key.typeusr" : "$sSbSgD", - "key.usr" : "s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 27033 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the custom width of the `Section`.", - "key.doc.column" : 20, - "key.doc.comment" : "Controls the custom width of the `Section`.", - "key.doc.declaration" : "public var width: CustomWidth", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI14FlowAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp<\/USR>public var width: CustomWidth<\/Declaration>Controls the custom width of the Section<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 425, - "key.doc.name" : "width", - "key.doc.type" : "Other", - "key.doclength" : 48, - "key.docoffset" : 26977, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 425, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 27044, - "key.offset" : 27040, - "key.parsed_declaration" : "public var width : CustomWidth", - "key.parsed_scope.end" : 425, - "key.parsed_scope.start" : 425, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CustomWidth", - "key.typeusr" : "$s10ListableUI11CustomWidthOD", - "key.usr" : "s:10ListableUI14FlowAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var rowUnderflowAlignment: RowUnderflowAlignment<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 27161 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a custom underflow alignment for the items in the section.", - "key.doc.column" : 20, - "key.doc.comment" : "Provides a custom underflow alignment for the items in the section.", - "key.doc.declaration" : "public var rowUnderflowAlignment: RowUnderflowAlignment?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "rowUnderflowAlignment<\/Name>s:10ListableUI14FlowAppearanceV13SectionLayoutV21rowUnderflowAlignmentAC03RowhI0OSgvp<\/USR>public var rowUnderflowAlignment: RowUnderflowAlignment?<\/Declaration>Provides a custom underflow alignment for the items in the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 428, - "key.doc.name" : "rowUnderflowAlignment", - "key.doc.type" : "Other", - "key.doclength" : 72, - "key.docoffset" : 27081, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rowUnderflowAlignment<\/decl.name>: RowUnderflowAlignment<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 428, - "key.modulename" : "ListableUI", - "key.name" : "rowUnderflowAlignment", - "key.namelength" : 21, - "key.nameoffset" : 27172, - "key.offset" : 27168, - "key.parsed_declaration" : "public var rowUnderflowAlignment : RowUnderflowAlignment?", - "key.parsed_scope.end" : 428, - "key.parsed_scope.start" : 428, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.RowUnderflowAlignment?", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV21RowUnderflowAlignmentOSgD", - "key.usr" : "s:10ListableUI14FlowAppearanceV13SectionLayoutV21rowUnderflowAlignmentAC03RowhI0OSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var rowItemsAlignment: RowItemsAlignment<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 27311 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a custom item alignment for the items in the section.", - "key.doc.column" : 20, - "key.doc.comment" : "Provides a custom item alignment for the items in the section.", - "key.doc.declaration" : "public var rowItemsAlignment: RowItemsAlignment?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "rowItemsAlignment<\/Name>s:10ListableUI14FlowAppearanceV13SectionLayoutV17rowItemsAlignmentAC03RowhI0OSgvp<\/USR>public var rowItemsAlignment: RowItemsAlignment?<\/Declaration>Provides a custom item alignment for the items in the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 431, - "key.doc.name" : "rowItemsAlignment", - "key.doc.type" : "Other", - "key.doclength" : 67, - "key.docoffset" : 27236, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rowItemsAlignment<\/decl.name>: RowItemsAlignment<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 431, - "key.modulename" : "ListableUI", - "key.name" : "rowItemsAlignment", - "key.namelength" : 17, - "key.nameoffset" : 27322, - "key.offset" : 27318, - "key.parsed_declaration" : "public var rowItemsAlignment : RowItemsAlignment?", - "key.parsed_scope.end" : 431, - "key.parsed_scope.start" : 431, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.RowItemsAlignment?", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV17RowItemsAlignmentOSgD", - "key.usr" : "s:10ListableUI14FlowAppearanceV13SectionLayoutV17rowItemsAlignmentAC03RowhI0OSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemSizing: ItemSizing<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 27450 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a custom item sizing for the items in the section.", - "key.doc.column" : 20, - "key.doc.comment" : "Provides a custom item sizing for the items in the section.", - "key.doc.declaration" : "public var itemSizing: ItemSizing?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "itemSizing<\/Name>s:10ListableUI14FlowAppearanceV13SectionLayoutV10itemSizingAC04ItemH0OSgvp<\/USR>public var itemSizing: ItemSizing?<\/Declaration>Provides a custom item sizing for the items in the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 434, - "key.doc.name" : "itemSizing", - "key.doc.type" : "Other", - "key.doclength" : 64, - "key.docoffset" : 27378, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSizing<\/decl.name>: ItemSizing<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 434, - "key.modulename" : "ListableUI", - "key.name" : "itemSizing", - "key.namelength" : 10, - "key.nameoffset" : 27461, - "key.offset" : 27457, - "key.parsed_declaration" : "public var itemSizing : ItemSizing?", - "key.parsed_scope.end" : 434, - "key.parsed_scope.start" : 434, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.ItemSizing?", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemSizingOSgD", - "key.usr" : "s:10ListableUI14FlowAppearanceV13SectionLayoutV10itemSizingAC04ItemH0OSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemSpacing: CGFloat<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 27576 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a custom item spacing for the items in the section.", - "key.doc.column" : 20, - "key.doc.comment" : "Provides a custom item spacing for the items in the section.", - "key.doc.declaration" : "public var itemSpacing: CGFloat?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "itemSpacing<\/Name>s:10ListableUI14FlowAppearanceV13SectionLayoutV11itemSpacing14CoreFoundation7CGFloatVSgvp<\/USR>public var itemSpacing: CGFloat?<\/Declaration>Provides a custom item spacing for the items in the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 437, - "key.doc.name" : "itemSpacing", - "key.doc.type" : "Other", - "key.doclength" : 65, - "key.docoffset" : 27503, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 437, - "key.modulename" : "ListableUI", - "key.name" : "itemSpacing", - "key.namelength" : 11, - "key.nameoffset" : 27587, - "key.offset" : 27583, - "key.parsed_declaration" : "public var itemSpacing : CGFloat?", - "key.parsed_scope.end" : 437, - "key.parsed_scope.start" : 437, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI14FlowAppearanceV13SectionLayoutV11itemSpacing14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(isHeaderSticky: Bool<\/Type>? = nil, width: CustomWidth<\/Type> = .default, rowUnderflowAlignment: RowUnderflowAlignment<\/Type>? = nil, rowItemsAlignment: RowItemsAlignment<\/Type>? = nil, itemSizing: ItemSizing<\/Type>? = nil, itemSpacing: CGFloat<\/Type>? = nil)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 27669 - } - ], - "key.bodylength" : 317, - "key.bodyoffset" : 27987, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new section layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new section layout.", - "key.doc.declaration" : "public init(isHeaderSticky: Bool? = nil, width: CustomWidth = .default, rowUnderflowAlignment: RowUnderflowAlignment? = nil, rowItemsAlignment: RowItemsAlignment? = nil, itemSizing: ItemSizing? = nil, itemSpacing: CGFloat? = nil)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "init(isHeaderSticky:width:rowUnderflowAlignment:rowItemsAlignment:itemSizing:itemSpacing:)<\/Name>s:10ListableUI14FlowAppearanceV13SectionLayoutV14isHeaderSticky5width21rowUnderflowAlignment0k5ItemsM010itemSizing0O7SpacingAESbSg_AA11CustomWidthOAC03RowlM0OSgAC0tnM0OSgAC04ItemP0OSg14CoreFoundation7CGFloatVSgtcfc<\/USR>public init(isHeaderSticky: Bool? = nil, width: CustomWidth = .default, rowUnderflowAlignment: RowUnderflowAlignment? = nil, rowItemsAlignment: RowItemsAlignment? = nil, itemSizing: ItemSizing? = nil, itemSpacing: CGFloat? = nil)<\/Declaration>Creates a new section layout.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 440, - "key.doc.name" : "init(isHeaderSticky:width:rowUnderflowAlignment:rowItemsAlignment:itemSizing:itemSpacing:)", - "key.doc.type" : "Function", - "key.doclength" : 34, - "key.docoffset" : 27627, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isHeaderSticky<\/decl.var.parameter.argument_label>: Bool<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>, rowUnderflowAlignment<\/decl.var.parameter.argument_label>: RowUnderflowAlignment<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, rowItemsAlignment<\/decl.var.parameter.argument_label>: RowItemsAlignment<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, itemSizing<\/decl.var.parameter.argument_label>: ItemSizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 629, - "key.line" : 440, - "key.modulename" : "ListableUI", - "key.name" : "init(isHeaderSticky:width:rowUnderflowAlignment:rowItemsAlignment:itemSizing:itemSpacing:)", - "key.namelength" : 309, - "key.nameoffset" : 27676, - "key.offset" : 27676, - "key.parsed_declaration" : "public init(\n isHeaderSticky: Bool? = nil,\n width : CustomWidth = .default,\n rowUnderflowAlignment : RowUnderflowAlignment? = nil,\n rowItemsAlignment : RowItemsAlignment? = nil,\n itemSizing : ItemSizing? = nil,\n itemSpacing : CGFloat? = nil\n)", - "key.parsed_scope.end" : 456, - "key.parsed_scope.start" : 440, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.SectionLayout.Type) -> (Bool?, CustomWidth, FlowAppearance.RowUnderflowAlignment?, FlowAppearance.RowItemsAlignment?, FlowAppearance.ItemSizing?, CGFloat?) -> FlowAppearance.SectionLayout", - "key.typeusr" : "$s14isHeaderSticky5width21rowUnderflowAlignment0e5ItemsG010itemSizing0I7Spacing10ListableUI14FlowAppearanceV13SectionLayoutVSbSg_AG11CustomWidthOAI03RowfG0OSgAI0thG0OSgAI04ItemJ0OSg14CoreFoundation7CGFloatVSgtcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV13SectionLayoutV14isHeaderSticky5width21rowUnderflowAlignment0k5ItemsM010itemSizing0O7SpacingAESbSg_AA11CustomWidthOAC03RowlM0OSgAC0tnM0OSgAC04ItemP0OSg14CoreFoundation7CGFloatVSgtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 28323 - } - ], - "key.bodylength" : 33, - "key.bodyoffset" : 28362, - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from SectionLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 66, - "key.line" : 458, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 28341, - "key.offset" : 28330, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue : Self", - "key.parsed_scope.end" : 460, - "key.parsed_scope.start" : 458, - "key.reusingastcontext" : false, - "key.typename" : "FlowAppearance.SectionLayout", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV13SectionLayoutVD", - "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ" - } - ], - "key.typename" : "FlowAppearance.SectionLayout.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV13SectionLayoutVmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV13SectionLayoutV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Spacings : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 28449 - } - ], - "key.bodylength" : 2974, - "key.bodyoffset" : 28489, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Layout options for the list.", - "key.doc.column" : 19, - "key.doc.comment" : "Layout options for the list.", - "key.doc.declaration" : "public struct Spacings : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "Spacings<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV<\/USR>public struct Spacings : Equatable<\/Declaration>Layout options for the list.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 464, - "key.doc.name" : "Spacings", - "key.doc.type" : "Class", - "key.doclength" : 33, - "key.docoffset" : 28412, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 28474 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Spacings<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3008, - "key.line" : 464, - "key.modulename" : "ListableUI", - "key.name" : "Spacings", - "key.namelength" : 8, - "key.nameoffset" : 28463, - "key.offset" : 28456, - "key.parsed_declaration" : "public struct Spacings : Equatable", - "key.parsed_scope.end" : 536, - "key.parsed_scope.start" : 464, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var headerToFirstSectionSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 28621 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing between the list header and the first section.\nNot applied if there is no list header.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing between the list header and the first section.\nNot applied if there is no list header.", - "key.doc.declaration" : "public var headerToFirstSectionSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "headerToFirstSectionSpacing<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV27headerToFirstSectionSpacing14CoreFoundation7CGFloatVvp<\/USR>public var headerToFirstSectionSpacing: CGFloat<\/Declaration>The spacing between the list header and the first section. Not applied if there is no list header.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 468, - "key.doc.name" : "headerToFirstSectionSpacing", - "key.doc.type" : "Other", - "key.doclength" : 115, - "key.docoffset" : 28498, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> headerToFirstSectionSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 468, - "key.modulename" : "ListableUI", - "key.name" : "headerToFirstSectionSpacing", - "key.namelength" : 27, - "key.nameoffset" : 28632, - "key.offset" : 28628, - "key.parsed_declaration" : "public var headerToFirstSectionSpacing : CGFloat", - "key.parsed_scope.end" : 468, - "key.parsed_scope.start" : 468, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV27headerToFirstSectionSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var interSectionSpacing: InterSectionSpacing<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 28730 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing to apply between sections.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing to apply between sections.", - "key.doc.declaration" : "public var interSectionSpacing: InterSectionSpacing", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "interSectionSpacing<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV19interSectionSpacingAE05IntergH0Vvp<\/USR>public var interSectionSpacing: InterSectionSpacing<\/Declaration>The spacing to apply between sections.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 471, - "key.doc.name" : "interSectionSpacing", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 28679, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interSectionSpacing<\/decl.name>: InterSectionSpacing<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 471, - "key.modulename" : "ListableUI", - "key.name" : "interSectionSpacing", - "key.namelength" : 19, - "key.nameoffset" : 28741, - "key.offset" : 28737, - "key.parsed_declaration" : "public var interSectionSpacing : InterSectionSpacing", - "key.parsed_scope.end" : 471, - "key.parsed_scope.start" : 471, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.Spacings.InterSectionSpacing", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV19interSectionSpacingAE05IntergH0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sectionHeaderBottomSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 28930 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing to apply below a section header, before its items.\nNot applied if there is no section header.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing to apply below a section header, before its items.\nNot applied if there is no section header.", - "key.doc.declaration" : "public var sectionHeaderBottomSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "sectionHeaderBottomSpacing<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV26sectionHeaderBottomSpacing14CoreFoundation7CGFloatVvp<\/USR>public var sectionHeaderBottomSpacing: CGFloat<\/Declaration>The spacing to apply below a section header, before its items. Not applied if there is no section header.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 475, - "key.doc.name" : "sectionHeaderBottomSpacing", - "key.doc.type" : "Other", - "key.doclength" : 122, - "key.docoffset" : 28800, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionHeaderBottomSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 475, - "key.modulename" : "ListableUI", - "key.name" : "sectionHeaderBottomSpacing", - "key.namelength" : 26, - "key.nameoffset" : 28941, - "key.offset" : 28937, - "key.parsed_declaration" : "public var sectionHeaderBottomSpacing : CGFloat", - "key.parsed_scope.end" : 475, - "key.parsed_scope.start" : 475, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV26sectionHeaderBottomSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 29073 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The horizontal spacing between individual items within a section.", - "key.doc.column" : 20, - "key.doc.comment" : "The horizontal spacing between individual items within a section.", - "key.doc.declaration" : "public var itemSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "itemSpacing<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV11itemSpacing14CoreFoundation7CGFloatVvp<\/USR>public var itemSpacing: CGFloat<\/Declaration>The horizontal spacing between individual items within a section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 478, - "key.doc.name" : "itemSpacing", - "key.doc.type" : "Other", - "key.doclength" : 70, - "key.docoffset" : 28995, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 478, - "key.modulename" : "ListableUI", - "key.name" : "itemSpacing", - "key.namelength" : 11, - "key.nameoffset" : 29084, - "key.offset" : 29080, - "key.parsed_declaration" : "public var itemSpacing : CGFloat", - "key.parsed_scope.end" : 478, - "key.parsed_scope.start" : 478, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV11itemSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var rowSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 29189 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The vertical spacing between rows in the flow layout.", - "key.doc.column" : 20, - "key.doc.comment" : "The vertical spacing between rows in the flow layout.", - "key.doc.declaration" : "public var rowSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "rowSpacing<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV10rowSpacing14CoreFoundation7CGFloatVvp<\/USR>public var rowSpacing: CGFloat<\/Declaration>The vertical spacing between rows in the flow layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 481, - "key.doc.name" : "rowSpacing", - "key.doc.type" : "Other", - "key.doclength" : 58, - "key.docoffset" : 29123, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rowSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 481, - "key.modulename" : "ListableUI", - "key.name" : "rowSpacing", - "key.namelength" : 10, - "key.nameoffset" : 29200, - "key.offset" : 29196, - "key.parsed_declaration" : "public var rowSpacing : CGFloat", - "key.parsed_scope.end" : 481, - "key.parsed_scope.start" : 481, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV10rowSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var rowToSectionFooterSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 29369 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing between the last row in the section and the footer.\nNot applied if there is no section footer.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing between the last row in the section and the footer.\nNot applied if there is no section footer.", - "key.doc.declaration" : "public var rowToSectionFooterSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "rowToSectionFooterSpacing<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV25rowToSectionFooterSpacing14CoreFoundation7CGFloatVvp<\/USR>public var rowToSectionFooterSpacing: CGFloat<\/Declaration>The spacing between the last row in the section and the footer. Not applied if there is no section footer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 485, - "key.doc.name" : "rowToSectionFooterSpacing", - "key.doc.type" : "Other", - "key.doclength" : 123, - "key.docoffset" : 29238, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rowToSectionFooterSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 485, - "key.modulename" : "ListableUI", - "key.name" : "rowToSectionFooterSpacing", - "key.namelength" : 25, - "key.nameoffset" : 29380, - "key.offset" : 29376, - "key.parsed_declaration" : "public var rowToSectionFooterSpacing : CGFloat", - "key.parsed_scope.end" : 485, - "key.parsed_scope.start" : 485, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV25rowToSectionFooterSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var lastSectionToFooterSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 29562 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing between the last section and the footer of the list.\nNot applied if there is no list footer.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing between the last section and the footer of the list.\nNot applied if there is no list footer.", - "key.doc.declaration" : "public var lastSectionToFooterSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "lastSectionToFooterSpacing<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV26lastSectionToFooterSpacing14CoreFoundation7CGFloatVvp<\/USR>public var lastSectionToFooterSpacing: CGFloat<\/Declaration>The spacing between the last section and the footer of the list. Not applied if there is no list footer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 489, - "key.doc.name" : "lastSectionToFooterSpacing", - "key.doc.type" : "Other", - "key.doclength" : 121, - "key.docoffset" : 29433, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastSectionToFooterSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 489, - "key.modulename" : "ListableUI", - "key.name" : "lastSectionToFooterSpacing", - "key.namelength" : 26, - "key.nameoffset" : 29573, - "key.offset" : 29569, - "key.parsed_declaration" : "public var lastSectionToFooterSpacing : CGFloat", - "key.parsed_scope.end" : 489, - "key.parsed_scope.start" : 489, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV26lastSectionToFooterSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(headerToFirstSectionSpacing: CGFloat<\/Type> = 0.0, interSectionSpacing: InterSectionSpacing<\/Type> = .init(0.0), sectionHeaderBottomSpacing: CGFloat<\/Type> = 0.0, itemSpacing: CGFloat<\/Type> = 0.0, rowSpacing: CGFloat<\/Type> = 0.0, rowToSectionFooterSpacing: CGFloat<\/Type> = 0.0, lastSectionToFooterSpacing: CGFloat<\/Type> = 0.0)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 29697 - } - ], - "key.bodylength" : 509, - "key.bodyoffset" : 30093, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `Layout` with the provided options.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new `Layout` with the provided options.", - "key.doc.declaration" : "public init(headerToFirstSectionSpacing: CGFloat = 0.0, interSectionSpacing: InterSectionSpacing = .init(0.0), sectionHeaderBottomSpacing: CGFloat = 0.0, itemSpacing: CGFloat = 0.0, rowSpacing: CGFloat = 0.0, rowToSectionFooterSpacing: CGFloat = 0.0, lastSectionToFooterSpacing: CGFloat = 0.0)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "init(headerToFirstSectionSpacing:interSectionSpacing:sectionHeaderBottomSpacing:itemSpacing:rowSpacing:rowToSectionFooterSpacing:lastSectionToFooterSpacing:)<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV27headerToFirstSectionSpacing05interiJ0019sectionHeaderBottomJ004itemJ003rowJ00pgi6FooterJ004lastigqJ0AE14CoreFoundation7CGFloatV_AE05InteriJ0VA5Otcfc<\/USR>public init(headerToFirstSectionSpacing: CGFloat = 0.0, interSectionSpacing: InterSectionSpacing = .init(0.0), sectionHeaderBottomSpacing: CGFloat = 0.0, itemSpacing: CGFloat = 0.0, rowSpacing: CGFloat = 0.0, rowToSectionFooterSpacing: CGFloat = 0.0, lastSectionToFooterSpacing: CGFloat = 0.0)<\/Declaration>Creates a new Layout<\/codeVoice> with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 492, - "key.doc.name" : "init(headerToFirstSectionSpacing:interSectionSpacing:sectionHeaderBottomSpacing:itemSpacing:rowSpacing:rowToSectionFooterSpacing:lastSectionToFooterSpacing:)", - "key.doc.type" : "Function", - "key.doclength" : 54, - "key.docoffset" : 29635, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(headerToFirstSectionSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, interSectionSpacing<\/decl.var.parameter.argument_label>: InterSectionSpacing<\/ref.struct><\/decl.var.parameter.type> = .init(0.0)<\/decl.var.parameter>, sectionHeaderBottomSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, rowSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, rowToSectionFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, lastSectionToFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 899, - "key.line" : 492, - "key.modulename" : "ListableUI", - "key.name" : "init(headerToFirstSectionSpacing:interSectionSpacing:sectionHeaderBottomSpacing:itemSpacing:rowSpacing:rowToSectionFooterSpacing:lastSectionToFooterSpacing:)", - "key.namelength" : 387, - "key.nameoffset" : 29704, - "key.offset" : 29704, - "key.parsed_declaration" : "public init(\n headerToFirstSectionSpacing : CGFloat = 0.0,\n interSectionSpacing : InterSectionSpacing = .init(0.0),\n sectionHeaderBottomSpacing : CGFloat = 0.0,\n itemSpacing : CGFloat = 0.0,\n rowSpacing : CGFloat = 0.0,\n rowToSectionFooterSpacing : CGFloat = 0.0,\n lastSectionToFooterSpacing : CGFloat = 0.0\n)", - "key.parsed_scope.end" : 513, - "key.parsed_scope.start" : 492, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.Spacings.Type) -> (CGFloat, FlowAppearance.Spacings.InterSectionSpacing, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat) -> FlowAppearance.Spacings", - "key.typeusr" : "$s27headerToFirstSectionSpacing05interdE0019sectionHeaderBottomE004itemE003rowE00kbd6FooterE004lastdblE010ListableUI14FlowAppearanceV8SpacingsV14CoreFoundation7CGFloatV_AL05InterdE0VA5OtcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV27headerToFirstSectionSpacing05interiJ0019sectionHeaderBottomJ004itemJ003rowJ00pgi6FooterJ004lastigqJ0AE14CoreFoundation7CGFloatV_AE05InteriJ0VA5Otcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct FlowAppearance<\/Type>.Spacings<\/Type>.InterSectionSpacing : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 30679 - } - ], - "key.bodylength" : 731, - "key.bodyoffset" : 30726, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the inter section spacing in a list.", - "key.doc.column" : 23, - "key.doc.comment" : "Controls the inter section spacing in a list.", - "key.doc.declaration" : "public struct ListableUI.FlowAppearance.Spacings.InterSectionSpacing : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "InterSectionSpacing<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV<\/USR>public struct ListableUI.FlowAppearance.Spacings.InterSectionSpacing : Equatable<\/Declaration>Controls the inter section spacing in a list.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 516, - "key.doc.name" : "InterSectionSpacing", - "key.doc.type" : "Class", - "key.doclength" : 50, - "key.docoffset" : 30621, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 30715 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> FlowAppearance<\/ref.struct>.Spacings<\/ref.struct>.InterSectionSpacing<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 772, - "key.line" : 516, - "key.modulename" : "ListableUI", - "key.name" : "InterSectionSpacing", - "key.namelength" : 19, - "key.nameoffset" : 30693, - "key.offset" : 30686, - "key.parsed_declaration" : "public struct InterSectionSpacing : Equatable", - "key.parsed_scope.end" : 535, - "key.parsed_scope.start" : 516, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var withFooter: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 30833 - } - ], - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing used if there is a footer in the proceeding section.", - "key.doc.column" : 24, - "key.doc.comment" : "The spacing used if there is a footer in the proceeding section.", - "key.doc.declaration" : "public var withFooter: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "withFooter<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV10withFooter14CoreFoundation7CGFloatVvp<\/USR>public var withFooter: CGFloat<\/Declaration>The spacing used if there is a footer in the proceeding section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 519, - "key.doc.name" : "withFooter", - "key.doc.type" : "Other", - "key.doclength" : 69, - "key.docoffset" : 30752, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> withFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 519, - "key.modulename" : "ListableUI", - "key.name" : "withFooter", - "key.namelength" : 10, - "key.nameoffset" : 30844, - "key.offset" : 30840, - "key.parsed_declaration" : "public var withFooter : CGFloat", - "key.parsed_scope.end" : 519, - "key.parsed_scope.start" : 519, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV10withFooter14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var noFooter: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 30972 - } - ], - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing used if there is no footer in the proceeding section.", - "key.doc.column" : 24, - "key.doc.comment" : "The spacing used if there is no footer in the proceeding section.", - "key.doc.declaration" : "public var noFooter: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "noFooter<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV8noFooter14CoreFoundation7CGFloatVvp<\/USR>public var noFooter: CGFloat<\/Declaration>The spacing used if there is no footer in the proceeding section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 522, - "key.doc.name" : "noFooter", - "key.doc.type" : "Other", - "key.doclength" : 70, - "key.docoffset" : 30890, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> noFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 522, - "key.modulename" : "ListableUI", - "key.name" : "noFooter", - "key.namelength" : 8, - "key.nameoffset" : 30983, - "key.offset" : 30979, - "key.parsed_declaration" : "public var noFooter : CGFloat", - "key.parsed_scope.end" : 522, - "key.parsed_scope.start" : 522, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV8noFooter14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(withFooter: CGFloat<\/Type>, noFooter: CGFloat<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 31086 - } - ], - "key.bodylength" : 99, - "key.bodyoffset" : 31139, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a new intersection spacing value.", - "key.doc.column" : 20, - "key.doc.comment" : "Provides a new intersection spacing value.", - "key.doc.declaration" : "public init(withFooter: CGFloat, noFooter: CGFloat)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "init(withFooter:noFooter:)<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV10withFooter02noJ0AG14CoreFoundation7CGFloatV_ALtcfc<\/USR>public init(withFooter: CGFloat, noFooter: CGFloat)<\/Declaration>Provides a new intersection spacing value.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 525, - "key.doc.name" : "init(withFooter:noFooter:)", - "key.doc.type" : "Function", - "key.doclength" : 47, - "key.docoffset" : 31027, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(withFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, noFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 146, - "key.line" : 525, - "key.modulename" : "ListableUI", - "key.name" : "init(withFooter:noFooter:)", - "key.namelength" : 44, - "key.nameoffset" : 31093, - "key.offset" : 31093, - "key.parsed_declaration" : "public init(withFooter: CGFloat, noFooter: CGFloat)", - "key.parsed_scope.end" : 528, - "key.parsed_scope.start" : 525, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.Spacings.InterSectionSpacing.Type) -> (CGFloat, CGFloat) -> FlowAppearance.Spacings.InterSectionSpacing", - "key.typeusr" : "$s10withFooter02noB010ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV14CoreFoundation7CGFloatV_ALtcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV10withFooter02noJ0AG14CoreFoundation7CGFloatV_ALtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ value: CGFloat<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 31324 - } - ], - "key.bodylength" : 91, - "key.bodyoffset" : 31356, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a new intersection spacing value.", - "key.doc.column" : 20, - "key.doc.comment" : "Provides a new intersection spacing value.", - "key.doc.declaration" : "public init(_ value: CGFloat)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingVyAG14CoreFoundation7CGFloatVcfc<\/USR>public init(_ value: CGFloat)<\/Declaration>Provides a new intersection spacing value.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 531, - "key.doc.name" : "init(_:)", - "key.doc.type" : "Function", - "key.doclength" : 47, - "key.docoffset" : 31265, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 117, - "key.line" : 531, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 23, - "key.nameoffset" : 31331, - "key.offset" : 31331, - "key.parsed_declaration" : "public init(_ value : CGFloat)", - "key.parsed_scope.end" : 534, - "key.parsed_scope.start" : 531, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(withFooter:noFooter:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowAppearance.Spacings.InterSectionSpacing.Type) -> (CGFloat) -> FlowAppearance.Spacings.InterSectionSpacing", - "key.typeusr" : "$sy10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV14CoreFoundation7CGFloatVcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingVyAG14CoreFoundation7CGFloatVcfc" - } - ], - "key.typename" : "FlowAppearance.Spacings.InterSectionSpacing.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingVmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV19InterSectionSpacingV" - } - ], - "key.typename" : "FlowAppearance.Spacings.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV8SpacingsVmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV8SpacingsV" - } - ], - "key.typename" : "FlowAppearance.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceVmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV" - }, - { - "key.annotated_decl" : "public struct ItemLayouts<\/Declaration>", - "key.bodylength" : 540, - "key.bodyoffset" : 31492, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`ItemLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your item:\n\n```\nmyItem.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `Item` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyItem.layouts.table = .init(\n width: .fill\n)\n\nmyItem.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `ItemLayouts`,\nto provide easier access to your layout-specific `ItemLayoutsValue` type, like so:\n\n```\nextension ItemLayoutsValue {\n public var table : TableAppearance.Item.Layout {\n get { self[TableAppearance.Item.Layout.self] }\n set { self[TableAppearance.Item.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ItemLayouts", - "key.doc.discussion" : [ - { - "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your item:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "And then, when the `Item` is used within a `.table` style list layout, the provided layout will be used." - }, - { - "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When implementing your own custom layout, you should add an extension to `ItemLayouts`, to provide easier access to your layout-specific `ItemLayoutsValue` type, like so:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "ItemLayouts<\/Name>s:10ListableUI11ItemLayoutsV<\/USR>public struct ItemLayouts<\/Declaration>ItemLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your item:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Item<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to ItemLayouts<\/codeVoice>, to provide easier access to your layout-specific ItemLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 54, - "key.doc.name" : "ItemLayouts", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayouts<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 564, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayouts", - "key.namelength" : 11, - "key.nameoffset" : 31479, - "key.offset" : 31469, - "key.parsed_declaration" : "extension ItemLayouts", - "key.parsed_scope.end" : 554, - "key.parsed_scope.start" : 540, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func flow(_ configure: (inout FlowAppearance<\/Type>.ItemLayout<\/Type>) -> ()) -> ItemLayouts<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 31598 - } - ], - "key.bodylength" : 63, - "key.bodyoffset" : 31686, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `ItemLayouts` value that allows configuring the flow values for the item.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates a new `ItemLayouts` value that allows configuring the flow values for the item.", - "key.doc.declaration" : "public static func flow(_ configure: (inout FlowAppearance.ItemLayout) -> ()) -> ListableUI.ItemLayouts", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "flow(_:)<\/Name>s:10ListableUI11ItemLayoutsV4flowyACyAA14FlowAppearanceV0C6LayoutVzXEFZ<\/USR>public static func flow(_ configure: (inout FlowAppearance.ItemLayout) -> ()) -> ListableUI.ItemLayouts<\/Declaration>Creates a new ItemLayouts<\/codeVoice> value that allows configuring the flow values for the item.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 543, - "key.doc.name" : "flow(_:)", - "key.doc.type" : "Function", - "key.doclength" : 92, - "key.docoffset" : 31502, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> flow<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> FlowAppearance<\/ref.struct>.ItemLayout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ItemLayouts<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 145, - "key.line" : 543, - "key.modulename" : "ListableUI", - "key.name" : "flow(_:)", - "key.namelength" : 59, - "key.nameoffset" : 31617, - "key.offset" : 31605, - "key.parsed_declaration" : "public static func flow(_ configure : (inout FlowAppearance.ItemLayout) -> ()) -> Self", - "key.parsed_scope.end" : 547, - "key.parsed_scope.start" : 543, - "key.related_decls" : [ - { - "key.annotated_decl" : "flow<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemLayouts.Type) -> ((inout FlowAppearance.ItemLayout) -> ()) -> ItemLayouts", - "key.typeusr" : "$sy10ListableUI11ItemLayoutsVyAA14FlowAppearanceV0C6LayoutVzXEcD", - "key.usr" : "s:10ListableUI11ItemLayoutsV4flowyACyAA14FlowAppearanceV0C6LayoutVzXEFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var flow: FlowAppearance<\/Type>.ItemLayout<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 31863 - } - ], - "key.bodylength" : 122, - "key.bodyoffset" : 31908, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows customization of an `Item`'s layout when it is presented within a `.flow` style layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Allows customization of an `Item`'s layout when it is presented within a `.flow` style layout.", - "key.doc.declaration" : "public var flow: FlowAppearance.ItemLayout { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "flow<\/Name>s:10ListableUI11ItemLayoutsV4flowAA14FlowAppearanceV0C6LayoutVvp<\/USR>public var flow: FlowAppearance.ItemLayout { get set }<\/Declaration>Allows customization of an Item<\/codeVoice>’s layout when it is presented within a .flow<\/codeVoice> style layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 550, - "key.doc.name" : "flow", - "key.doc.type" : "Other", - "key.doclength" : 99, - "key.docoffset" : 31760, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> flow<\/decl.name>: FlowAppearance<\/ref.struct>.ItemLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 161, - "key.line" : 550, - "key.modulename" : "ListableUI", - "key.name" : "flow", - "key.namelength" : 4, - "key.nameoffset" : 31874, - "key.offset" : 31870, - "key.parsed_declaration" : "public var flow : FlowAppearance.ItemLayout", - "key.parsed_scope.end" : 553, - "key.parsed_scope.start" : 550, - "key.related_decls" : [ - { - "key.annotated_decl" : "flow(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.ItemLayout", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemLayoutVD", - "key.usr" : "s:10ListableUI11ItemLayoutsV4flowAA14FlowAppearanceV0C6LayoutVvp" - } - ], - "key.typename" : "ItemLayouts.Type", - "key.typeusr" : "$s10ListableUI11ItemLayoutsVmD", - "key.usr" : "s:10ListableUI11ItemLayoutsV" - }, - { - "key.annotated_decl" : "public struct HeaderFooterLayouts<\/Declaration>", - "key.bodylength" : 598, - "key.bodyoffset" : 32067, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`HeaderFooterLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your header:\n\n```\nmyHeader.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `HeaderFooter` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyHeader.layouts.table = .init(\n width: .fill\n)\n\nmyHeader.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n padding: 10\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`,\nto provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:\n\n```\nextension HeaderFooterLayouts {\n public var table : TableAppearance.HeaderFooter.Layout {\n get { self[TableAppearance.HeaderFooter.Layout.self] }\n set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct HeaderFooterLayouts", - "key.doc.discussion" : [ - { - "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your header:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "And then, when the `HeaderFooter` is used within a `.table` style list layout, the provided layout will be used." - }, - { - "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`, to provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "HeaderFooterLayouts<\/Name>s:10ListableUI19HeaderFooterLayoutsV<\/USR>public struct HeaderFooterLayouts<\/Declaration>HeaderFooterLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your header:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the HeaderFooter<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to HeaderFooterLayouts<\/codeVoice>, to provide easier access to your layout-specific HeaderFooterLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 55, - "key.doc.name" : "HeaderFooterLayouts", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayouts<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 630, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayouts", - "key.namelength" : 19, - "key.nameoffset" : 32046, - "key.offset" : 32036, - "key.parsed_declaration" : "extension HeaderFooterLayouts", - "key.parsed_scope.end" : 571, - "key.parsed_scope.start" : 557, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func flow(_ configure: (inout FlowAppearance<\/Type>.HeaderFooterLayout<\/Type>) -> ()) -> HeaderFooterLayouts<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 32192 - } - ], - "key.bodylength" : 63, - "key.bodyoffset" : 32288, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `HeaderFooterLayouts` value that allows configuring the flow values for the header \/ footer.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates a new `HeaderFooterLayouts` value that allows configuring the flow values for the header \/ footer.", - "key.doc.declaration" : "public static func flow(_ configure: (inout FlowAppearance.HeaderFooterLayout) -> ()) -> ListableUI.HeaderFooterLayouts", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "flow(_:)<\/Name>s:10ListableUI19HeaderFooterLayoutsV4flowyACyAA14FlowAppearanceV0cD6LayoutVzXEFZ<\/USR>public static func flow(_ configure: (inout FlowAppearance.HeaderFooterLayout) -> ()) -> ListableUI.HeaderFooterLayouts<\/Declaration>Creates a new HeaderFooterLayouts<\/codeVoice> value that allows configuring the flow values for the header \/ footer.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 560, - "key.doc.name" : "flow(_:)", - "key.doc.type" : "Function", - "key.doclength" : 111, - "key.docoffset" : 32077, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> flow<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> FlowAppearance<\/ref.struct>.HeaderFooterLayout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> HeaderFooterLayouts<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 153, - "key.line" : 560, - "key.modulename" : "ListableUI", - "key.name" : "flow(_:)", - "key.namelength" : 67, - "key.nameoffset" : 32211, - "key.offset" : 32199, - "key.parsed_declaration" : "public static func flow(_ configure : (inout FlowAppearance.HeaderFooterLayout) -> ()) -> Self", - "key.parsed_scope.end" : 564, - "key.parsed_scope.start" : 560, - "key.related_decls" : [ - { - "key.annotated_decl" : "flow<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(HeaderFooterLayouts.Type) -> ((inout FlowAppearance.HeaderFooterLayout) -> ()) -> HeaderFooterLayouts", - "key.typeusr" : "$sy10ListableUI19HeaderFooterLayoutsVyAA14FlowAppearanceV0cD6LayoutVzXEcD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV4flowyACyAA14FlowAppearanceV0cD6LayoutVzXEFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var flow: FlowAppearance<\/Type>.HeaderFooterLayout<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 32472 - } - ], - "key.bodylength" : 138, - "key.bodyoffset" : 32525, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows customization of a `HeaderFooter`'s layout when it is presented within a `.flow` style layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Allows customization of a `HeaderFooter`'s layout when it is presented within a `.flow` style layout.", - "key.doc.declaration" : "public var flow: FlowAppearance.HeaderFooterLayout { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "flow<\/Name>s:10ListableUI19HeaderFooterLayoutsV4flowAA14FlowAppearanceV0cD6LayoutVvp<\/USR>public var flow: FlowAppearance.HeaderFooterLayout { get set }<\/Declaration>Allows customization of a HeaderFooter<\/codeVoice>’s layout when it is presented within a .flow<\/codeVoice> style layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 567, - "key.doc.name" : "flow", - "key.doc.type" : "Other", - "key.doclength" : 106, - "key.docoffset" : 32362, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> flow<\/decl.name>: FlowAppearance<\/ref.struct>.HeaderFooterLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 185, - "key.line" : 567, - "key.modulename" : "ListableUI", - "key.name" : "flow", - "key.namelength" : 4, - "key.nameoffset" : 32483, - "key.offset" : 32479, - "key.parsed_declaration" : "public var flow : FlowAppearance.HeaderFooterLayout", - "key.parsed_scope.end" : 570, - "key.parsed_scope.start" : 567, - "key.related_decls" : [ - { - "key.annotated_decl" : "flow(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.HeaderFooterLayout", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV18HeaderFooterLayoutVD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV4flowAA14FlowAppearanceV0cD6LayoutVvp" - } - ], - "key.typename" : "HeaderFooterLayouts.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVmD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV" - }, - { - "key.annotated_decl" : "public struct SectionLayouts<\/Declaration>", - "key.bodylength" : 560, - "key.bodyoffset" : 32695, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`SectionLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your section:\n\n```\nmySection.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `Section` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmySection.layouts.table = .init(\n width: .fill\n)\n\nmySection.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `SectionLayouts`,\nto provide easier access to your layout-specific `SectionLayoutsValue` type, like so:\n\n```\nextension SectionLayouts {\n public var table : TableAppearance.Section.Layout {\n get { self[TableAppearance.Section.Layout.self] }\n set { self[TableAppearance.Section.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct SectionLayouts", - "key.doc.discussion" : [ - { - "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your section:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "And then, when the `Section` is used within a `.table` style list layout, the provided layout will be used." - }, - { - "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When implementing your own custom layout, you should add an extension to `SectionLayouts`, to provide easier access to your layout-specific `SectionLayoutsValue` type, like so:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "SectionLayouts<\/Name>s:10ListableUI14SectionLayoutsV<\/USR>public struct SectionLayouts<\/Declaration>SectionLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your section:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Section<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to SectionLayouts<\/codeVoice>, to provide easier access to your layout-specific SectionLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 54, - "key.doc.name" : "SectionLayouts", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayouts<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 587, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayouts", - "key.namelength" : 14, - "key.nameoffset" : 32679, - "key.offset" : 32669, - "key.parsed_declaration" : "extension SectionLayouts", - "key.parsed_scope.end" : 588, - "key.parsed_scope.start" : 574, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func flow(_ configure: (inout FlowAppearance<\/Type>.SectionLayout<\/Type>) -> ()) -> SectionLayouts<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 32807 - } - ], - "key.bodylength" : 63, - "key.bodyoffset" : 32898, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `SectionLayouts` value that allows configuring the flow values for the section.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates a new `SectionLayouts` value that allows configuring the flow values for the section.", - "key.doc.declaration" : "public static func flow(_ configure: (inout FlowAppearance.SectionLayout) -> ()) -> ListableUI.SectionLayouts", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "flow(_:)<\/Name>s:10ListableUI14SectionLayoutsV4flowyACyAA14FlowAppearanceV0C6LayoutVzXEFZ<\/USR>public static func flow(_ configure: (inout FlowAppearance.SectionLayout) -> ()) -> ListableUI.SectionLayouts<\/Declaration>Creates a new SectionLayouts<\/codeVoice> value that allows configuring the flow values for the section.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 577, - "key.doc.name" : "flow(_:)", - "key.doc.type" : "Function", - "key.doclength" : 98, - "key.docoffset" : 32705, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> flow<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> FlowAppearance<\/ref.struct>.SectionLayout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> SectionLayouts<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 148, - "key.line" : 577, - "key.modulename" : "ListableUI", - "key.name" : "flow(_:)", - "key.namelength" : 62, - "key.nameoffset" : 32826, - "key.offset" : 32814, - "key.parsed_declaration" : "public static func flow(_ configure : (inout FlowAppearance.SectionLayout) -> ()) -> Self", - "key.parsed_scope.end" : 581, - "key.parsed_scope.start" : 577, - "key.related_decls" : [ - { - "key.annotated_decl" : "flow<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SectionLayouts.Type) -> ((inout FlowAppearance.SectionLayout) -> ()) -> SectionLayouts", - "key.typeusr" : "$sy10ListableUI14SectionLayoutsVyAA14FlowAppearanceV0C6LayoutVzXEcD", - "key.usr" : "s:10ListableUI14SectionLayoutsV4flowyACyAA14FlowAppearanceV0C6LayoutVzXEFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var flow: FlowAppearance<\/Type>.SectionLayout<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 33077 - } - ], - "key.bodylength" : 128, - "key.bodyoffset" : 33125, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows customization of a `Section`'s layout when it is presented within a `.flow` style layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Allows customization of a `Section`'s layout when it is presented within a `.flow` style layout.", - "key.doc.declaration" : "public var flow: FlowAppearance.SectionLayout { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "flow<\/Name>s:10ListableUI14SectionLayoutsV4flowAA14FlowAppearanceV0C6LayoutVvp<\/USR>public var flow: FlowAppearance.SectionLayout { get set }<\/Declaration>Allows customization of a Section<\/codeVoice>’s layout when it is presented within a .flow<\/codeVoice> style layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 584, - "key.doc.name" : "flow", - "key.doc.type" : "Other", - "key.doclength" : 101, - "key.docoffset" : 32972, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> flow<\/decl.name>: FlowAppearance<\/ref.struct>.SectionLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 170, - "key.line" : 584, - "key.modulename" : "ListableUI", - "key.name" : "flow", - "key.namelength" : 4, - "key.nameoffset" : 33088, - "key.offset" : 33084, - "key.parsed_declaration" : "public var flow : FlowAppearance.SectionLayout", - "key.parsed_scope.end" : 587, - "key.parsed_scope.start" : 584, - "key.related_decls" : [ - { - "key.annotated_decl" : "flow(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "FlowAppearance.SectionLayout", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV13SectionLayoutVD", - "key.usr" : "s:10ListableUI14SectionLayoutsV4flowAA14FlowAppearanceV0C6LayoutVvp" - } - ], - "key.typename" : "SectionLayouts.Type", - "key.typeusr" : "$s10ListableUI14SectionLayoutsVmD", - "key.usr" : "s:10ListableUI14SectionLayoutsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class FlowListLayout : ListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 33259 - } - ], - "key.bodylength" : 16286, - "key.bodyoffset" : 33300, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 10, - "key.offset" : 33288 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> FlowListLayout<\/decl.name> : ListLayout<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayout" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 16322, - "key.line" : 591, - "key.modulename" : "ListableUI", - "key.name" : "FlowListLayout", - "key.namelength" : 14, - "key.nameoffset" : 33271, - "key.offset" : 33265, - "key.parsed_declaration" : "final class FlowListLayout : ListLayout", - "key.parsed_scope.end" : 1087, - "key.parsed_scope.start" : 591, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias FlowListLayout<\/Type>.ItemLayout = FlowAppearance<\/Type>.ItemLayout<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> FlowListLayout<\/ref.class>.ItemLayout<\/decl.name> = FlowAppearance<\/ref.struct>.ItemLayout<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 48, - "key.line" : 593, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayout", - "key.namelength" : 10, - "key.nameoffset" : 33320, - "key.offset" : 33310, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP04ItemD0Qa" - } - ], - "key.parsed_declaration" : "typealias ItemLayout = FlowAppearance.ItemLayout", - "key.parsed_scope.end" : 593, - "key.parsed_scope.start" : 593, - "key.reusingastcontext" : false, - "key.typename" : "FlowAppearance.ItemLayout.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemLayoutVmD", - "key.usr" : "s:10ListableUI14FlowListLayoutC04ItemE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias FlowListLayout<\/Type>.HeaderFooterLayout = FlowAppearance<\/Type>.HeaderFooterLayout<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> FlowListLayout<\/ref.class>.HeaderFooterLayout<\/decl.name> = FlowAppearance<\/ref.struct>.HeaderFooterLayout<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 64, - "key.line" : 594, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayout", - "key.namelength" : 18, - "key.nameoffset" : 33373, - "key.offset" : 33363, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP012HeaderFooterD0Qa" - } - ], - "key.parsed_declaration" : "typealias HeaderFooterLayout = FlowAppearance.HeaderFooterLayout", - "key.parsed_scope.end" : 594, - "key.parsed_scope.start" : 594, - "key.reusingastcontext" : false, - "key.typename" : "FlowAppearance.HeaderFooterLayout.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV18HeaderFooterLayoutVmD", - "key.usr" : "s:10ListableUI14FlowListLayoutC012HeaderFooterE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias FlowListLayout<\/Type>.SectionLayout = FlowAppearance<\/Type>.SectionLayout<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> FlowListLayout<\/ref.class>.SectionLayout<\/decl.name> = FlowAppearance<\/ref.struct>.SectionLayout<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 54, - "key.line" : 595, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayout", - "key.namelength" : 13, - "key.nameoffset" : 33442, - "key.offset" : 33432, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP07SectionD0Qa" - } - ], - "key.parsed_declaration" : "typealias SectionLayout = FlowAppearance.SectionLayout", - "key.parsed_scope.end" : 595, - "key.parsed_scope.start" : 595, - "key.reusingastcontext" : false, - "key.typename" : "FlowAppearance.SectionLayout.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV13SectionLayoutVmD", - "key.usr" : "s:10ListableUI14FlowListLayoutC07SectionE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias FlowListLayout<\/Type>.LayoutAppearance = FlowAppearance<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> FlowListLayout<\/ref.class>.LayoutAppearance<\/decl.name> = FlowAppearance<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 43, - "key.line" : 597, - "key.modulename" : "ListableUI", - "key.name" : "LayoutAppearance", - "key.namelength" : 16, - "key.nameoffset" : 33506, - "key.offset" : 33496, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa" - } - ], - "key.parsed_declaration" : "typealias LayoutAppearance = FlowAppearance", - "key.parsed_scope.end" : 597, - "key.parsed_scope.start" : 597, - "key.reusingastcontext" : false, - "key.typename" : "FlowAppearance.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceVmD", - "key.usr" : "s:10ListableUI14FlowListLayoutC0E10Appearancea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>", - "key.bodylength" : 60, - "key.bodyoffset" : 33590, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 102, - "key.line" : 599, - "key.modulename" : "ListableUI", - "key.name" : "defaults", - "key.namelength" : 8, - "key.nameoffset" : 33560, - "key.offset" : 33549, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ" - } - ], - "key.parsed_declaration" : "static var defaults: ListLayoutDefaults", - "key.parsed_scope.end" : 601, - "key.parsed_scope.start" : 599, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutDefaults", - "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC8defaultsAA0dE8DefaultsVvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var layoutAppearance: FlowAppearance<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: FlowAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 603, - "key.modulename" : "ListableUI", - "key.name" : "layoutAppearance", - "key.namelength" : 16, - "key.nameoffset" : 33665, - "key.offset" : 33661, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp" - } - ], - "key.parsed_declaration" : "var layoutAppearance: FlowAppearance", - "key.parsed_scope.end" : 603, - "key.parsed_scope.start" : 603, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "FlowAppearance", - "key.typeusr" : "$s10ListableUI14FlowAppearanceVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC16layoutAppearanceAA0cG0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let appearance: Appearance<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 605, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 33711, - "key.offset" : 33707, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp" - } - ], - "key.parsed_declaration" : "let appearance: Appearance", - "key.parsed_scope.end" : 605, - "key.parsed_scope.start" : 605, - "key.reusingastcontext" : false, - "key.typename" : "Appearance", - "key.typeusr" : "$s10ListableUI10AppearanceVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC10appearanceAA10AppearanceVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let behavior: Behavior<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 606, - "key.modulename" : "ListableUI", - "key.name" : "behavior", - "key.namelength" : 8, - "key.nameoffset" : 33742, - "key.offset" : 33738, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp" - } - ], - "key.parsed_declaration" : "let behavior: Behavior", - "key.parsed_scope.end" : 606, - "key.parsed_scope.start" : 606, - "key.reusingastcontext" : false, - "key.typename" : "Behavior", - "key.typeusr" : "$s10ListableUI8BehaviorVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC8behaviorAA8BehaviorVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let content: ListLayoutContent<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 608, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 33774, - "key.offset" : 33770, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp" - } - ], - "key.parsed_declaration" : "let content: ListLayoutContent", - "key.parsed_scope.end" : 608, - "key.parsed_scope.start" : 608, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent", - "key.typeusr" : "$s10ListableUI17ListLayoutContentCD", - "key.usr" : "s:10ListableUI14FlowListLayoutC7contentAA0dE7ContentCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(layoutAppearance: LayoutAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>", - "key.bodylength" : 155, - "key.bodyoffset" : 33966, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: LayoutAppearance<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 312, - "key.line" : 610, - "key.modulename" : "ListableUI", - "key.name" : "init(layoutAppearance:appearance:behavior:content:)", - "key.namelength" : 154, - "key.nameoffset" : 33810, - "key.offset" : 33810, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc" - } - ], - "key.parsed_declaration" : "init(\n layoutAppearance : LayoutAppearance,\n appearance : Appearance,\n behavior : Behavior,\n content : ListLayoutContent\n)", - "key.parsed_scope.end" : 620, - "key.parsed_scope.start" : 610, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowListLayout.Type) -> (FlowAppearance, Appearance, Behavior, ListLayoutContent) -> FlowListLayout", - "key.typeusr" : "$s16layoutAppearance10appearance8behavior7content10ListableUI14FlowListLayoutCAE0hB0V_AE0B0VAE8BehaviorVAE0iJ7ContentCtcD", - "key.usr" : "s:10ListableUI14FlowListLayoutC16layoutAppearance10appearance8behavior7contentAcA0cG0V_AA0G0VAA8BehaviorVAA0dE7ContentCtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func updateLayout(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.bodylength" : 72, - "key.bodyoffset" : 34188, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 129, - "key.line" : 622, - "key.modulename" : "ListableUI", - "key.name" : "updateLayout(in:)", - "key.namelength" : 49, - "key.nameoffset" : 34137, - "key.offset" : 34132, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inyAA0deE7ContextV_tF" - } - ], - "key.parsed_declaration" : "func updateLayout(in context: ListLayoutLayoutContext)", - "key.parsed_scope.end" : 624, - "key.parsed_scope.start" : 622, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(FlowListLayout) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI14FlowListLayoutC06updateE02inyAA0deE7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func layout(delegate: CollectionViewLayoutDelegate<\/Type>?, in context: ListLayoutLayoutContext<\/Type>) -> ListLayoutResult<\/Type><\/Declaration>", - "key.bodylength" : 8110, - "key.bodyoffset" : 34408, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "No updates needed outside the regular `layout` method.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layout<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutResult<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 8248, - "key.line" : 626, - "key.modulename" : "ListableUI", - "key.name" : "layout(delegate:in:)", - "key.namelength" : 106, - "key.nameoffset" : 34276, - "key.offset" : 34271, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" - } - ], - "key.parsed_declaration" : "func layout(\n delegate: CollectionViewLayoutDelegate?,\n in context: ListLayoutLayoutContext\n) -> ListLayoutResult", - "key.parsed_scope.end" : 873, - "key.parsed_scope.start" : 626, - "key.related_decls" : [ - { - "key.annotated_decl" : "layout(headerFooter:width:viewWidth:defaultWidth:contentBottom:after:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let bounds: ListContentBounds<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 633, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 34496, - "key.offset" : 34492, - "key.parsed_declaration" : "let bounds = self.resolvedBounds(in: context)", - "key.parsed_scope.end" : 633, - "key.parsed_scope.start" : 633, - "key.reusingastcontext" : false, - "key.typename" : "ListContentBounds", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF6boundsL_AA0D13ContentBoundsVvp" - }, - { - "key.annotated_decl" : "let spacings: FlowAppearance<\/Type>.Spacings<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> spacings<\/decl.name>: FlowAppearance<\/ref.struct>.Spacings<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 635, - "key.modulename" : "ListableUI", - "key.name" : "spacings", - "key.namelength" : 8, - "key.nameoffset" : 34559, - "key.offset" : 34555, - "key.parsed_declaration" : "let spacings = self.layoutAppearance.spacings", - "key.parsed_scope.end" : 635, - "key.parsed_scope.start" : 635, - "key.reusingastcontext" : false, - "key.typename" : "FlowAppearance.Spacings", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV8SpacingsVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF8spacingsL_AA0C10AppearanceV8SpacingsVvp" - }, - { - "key.annotated_decl" : "let viewWidth: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 66, - "key.line" : 637, - "key.modulename" : "ListableUI", - "key.name" : "viewWidth", - "key.namelength" : 9, - "key.nameoffset" : 34622, - "key.offset" : 34618, - "key.parsed_declaration" : "let viewWidth = self.direction.width(for: context.viewBounds.size)", - "key.parsed_scope.end" : 637, - "key.parsed_scope.start" : 637, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF9viewWidthL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let rootWidth: CustomWidth<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rootWidth<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 390, - "key.line" : 639, - "key.modulename" : "ListableUI", - "key.name" : "rootWidth", - "key.namelength" : 9, - "key.nameoffset" : 34706, - "key.offset" : 34702, - "key.parsed_declaration" : "let rootWidth = CustomWidth.custom(.init(\n padding: self.direction.switch(\n vertical: HorizontalPadding(leading: bounds.padding.left, trailing: bounds.padding.right),\n horizontal: HorizontalPadding(leading: bounds.padding.top, trailing: bounds.padding.bottom)\n ),\n width: bounds.width,\n alignment: .center\n))", - "key.parsed_scope.end" : 639, - "key.parsed_scope.start" : 639, - "key.reusingastcontext" : false, - "key.typename" : "CustomWidth", - "key.typeusr" : "$s10ListableUI11CustomWidthOD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF9rootWidthL_AA06CustomO0Ovp" - }, - { - "key.annotated_decl" : "let defaultWidth: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> defaultWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 119, - "key.line" : 648, - "key.modulename" : "ListableUI", - "key.name" : "defaultWidth", - "key.namelength" : 12, - "key.nameoffset" : 35114, - "key.offset" : 35110, - "key.parsed_declaration" : "let defaultWidth = rootWidth.position(\n with: viewWidth,\n defaultWidth: viewWidth\n).width", - "key.parsed_scope.end" : 648, - "key.parsed_scope.start" : 648, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF12defaultWidthL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "var contentBottom: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentBottom<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 33, - "key.line" : 653, - "key.modulename" : "ListableUI", - "key.name" : "contentBottom", - "key.namelength" : 13, - "key.nameoffset" : 35251, - "key.offset" : 35247, - "key.parsed_declaration" : "var contentBottom : CGFloat = 0.0", - "key.parsed_scope.end" : 653, - "key.parsed_scope.start" : 653, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF13contentBottomL_14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : "(FlowListLayout) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ListLayoutResult", - "key.typeusr" : "$s8delegate2in10ListableUI16ListLayoutResultVAC014CollectionViewF8Delegate_pSg_AC0efF7ContextVtcD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func setX(for row: Row<\/Type>, isLastRow: Bool<\/Type>, sectionPosition: CustomWidth<\/Type>.Position<\/Type>, itemSpacing: CGFloat<\/Type>, lastRowItemSpacing: CGFloat<\/Type>, alignment: FlowAppearance<\/Type>.RowUnderflowAlignment<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 42623 - } - ], - "key.bodylength" : 2834, - "key.bodyoffset" : 42887, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Sets the x value for each item in a row, returning the item spacing used for the row.", - "key.doc.column" : 18, - "key.doc.comment" : "Sets the x value for each item in a row, returning the item spacing used for the row.", - "key.doc.declaration" : "private func setX(for row: Row, isLastRow: Bool, sectionPosition: CustomWidth.Position, itemSpacing: CGFloat, lastRowItemSpacing: CGFloat, alignment: FlowAppearance.RowUnderflowAlignment) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "setX(for:isLastRow:sectionPosition:itemSpacing:lastRowItemSpacing:alignment:)<\/Name>s:10ListableUI14FlowListLayoutC4setX33_E6A9B13B1C03E1986EDD541DF2ABB82FLL3for9isLastRow15sectionPosition11itemSpacing04lasts4ItemW09alignment14CoreFoundation7CGFloatVAC0S0AELLV_SbAA11CustomWidthO0U0VA2nA0C10AppearanceV0S18UnderflowAlignmentOtF<\/USR>private func setX(for row: Row, isLastRow: Bool, sectionPosition: CustomWidth.Position, itemSpacing: CGFloat, lastRowItemSpacing: CGFloat, alignment: FlowAppearance.RowUnderflowAlignment) -> CGFloat<\/Declaration>Sets the x value for each item in a row, returning the item spacing used for the row.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 876, - "key.doc.name" : "setX(for:isLastRow:sectionPosition:itemSpacing:lastRowItemSpacing:alignment:)", - "key.doc.type" : "Function", - "key.doclength" : 90, - "key.docoffset" : 42529, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setX<\/decl.name>(for<\/decl.var.parameter.argument_label> row<\/decl.var.parameter.name>: Row<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, isLastRow<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, sectionPosition<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum>.Position<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, lastRowItemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, alignment<\/decl.var.parameter.argument_label>: FlowAppearance<\/ref.struct>.RowUnderflowAlignment<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3091, - "key.line" : 876, - "key.modulename" : "ListableUI", - "key.name" : "setX(for:isLastRow:sectionPosition:itemSpacing:lastRowItemSpacing:alignment:)", - "key.namelength" : 234, - "key.nameoffset" : 42636, - "key.offset" : 42631, - "key.parsed_declaration" : "private func setX(\n for row : Row,\n isLastRow : Bool,\n sectionPosition : CustomWidth.Position,\n itemSpacing : CGFloat,\n lastRowItemSpacing : CGFloat,\n alignment : FlowAppearance.RowUnderflowAlignment\n) -> CGFloat", - "key.parsed_scope.end" : 969, - "key.parsed_scope.start" : 876, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var maxX: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "1) Set up our items as if they are `.leading`.", - "key.doc.column" : 17, - "key.doc.comment" : "1) Set up our items as if they are `.leading`.", - "key.doc.declaration" : "var maxX: CGFloat", - "key.doc.discussion" : [ - { - "List-Number" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "maxX<\/Name>s:10ListableUI14FlowListLayoutC4setX33_E6A9B13B1C03E1986EDD541DF2ABB82FLL3for9isLastRow15sectionPosition11itemSpacing04lasts4ItemW09alignment14CoreFoundation7CGFloatVAC0S0AELLV_SbAA11CustomWidthO0U0VA2nA0C10AppearanceV0S18UnderflowAlignmentOtF4maxXL_ANvp<\/USR>var maxX: CGFloat<\/Declaration>Set up our items as if they are .leading<\/codeVoice>.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 890, - "key.doc.name" : "maxX", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> maxX<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 4, - "key.line" : 890, - "key.modulename" : "ListableUI", - "key.name" : "maxX", - "key.offset" : 43065, - "key.parsed_declaration" : "var maxX", - "key.parsed_scope.end" : 890, - "key.parsed_scope.start" : 890, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC4setX33_E6A9B13B1C03E1986EDD541DF2ABB82FLL3for9isLastRow15sectionPosition11itemSpacing04lasts4ItemW09alignment14CoreFoundation7CGFloatVAC0S0AELLV_SbAA11CustomWidthO0U0VA2nA0C10AppearanceV0S18UnderflowAlignmentOtF4maxXL_ANvp" - } - ], - "key.typename" : "(FlowListLayout) -> (FlowListLayout.Row, Bool, CustomWidth.Position, CGFloat, CGFloat, FlowAppearance.RowUnderflowAlignment) -> CGFloat", - "key.typeusr" : "$s3for9isLastRow15sectionPosition11itemSpacing04lastd4ItemH09alignment14CoreFoundation7CGFloatV10ListableUI14FlowListLayoutC0D033_E6A9B13B1C03E1986EDD541DF2ABB82FLLV_SbAJ11CustomWidthO0F0VA2iJ0Q10AppearanceV0D18UnderflowAlignmentOtcD", - "key.usr" : "s:10ListableUI14FlowListLayoutC4setX33_E6A9B13B1C03E1986EDD541DF2ABB82FLL3for9isLastRow15sectionPosition11itemSpacing04lasts4ItemW09alignment14CoreFoundation7CGFloatVAC0S0AELLV_SbAA11CustomWidthO0U0VA2nA0C10AppearanceV0S18UnderflowAlignmentOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func setY(for row: Row<\/Type>, baseYPosition: CGFloat<\/Type>, alignment: FlowAppearance<\/Type>.RowItemsAlignment<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 45818 - } - ], - "key.bodylength" : 1001, - "key.bodyoffset" : 45964, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Sets the y value for each item in a row, returning the new bottom of content.", - "key.doc.column" : 18, - "key.doc.comment" : "Sets the y value for each item in a row, returning the new bottom of content.", - "key.doc.declaration" : "private func setY(for row: Row, baseYPosition: CGFloat, alignment: FlowAppearance.RowItemsAlignment) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "setY(for:baseYPosition:alignment:)<\/Name>s:10ListableUI14FlowListLayoutC4setY33_E6A9B13B1C03E1986EDD541DF2ABB82FLL3for13baseYPosition9alignment14CoreFoundation7CGFloatVAC3RowAELLV_AkA0C10AppearanceV0W14ItemsAlignmentOtF<\/USR>private func setY(for row: Row, baseYPosition: CGFloat, alignment: FlowAppearance.RowItemsAlignment) -> CGFloat<\/Declaration>Sets the y value for each item in a row, returning the new bottom of content.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 972, - "key.doc.name" : "setY(for:baseYPosition:alignment:)", - "key.doc.type" : "Function", - "key.doclength" : 82, - "key.docoffset" : 45732, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setY<\/decl.name>(for<\/decl.var.parameter.argument_label> row<\/decl.var.parameter.name>: Row<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, baseYPosition<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, alignment<\/decl.var.parameter.argument_label>: FlowAppearance<\/ref.struct>.RowItemsAlignment<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1140, - "key.line" : 972, - "key.modulename" : "ListableUI", - "key.name" : "setY(for:baseYPosition:alignment:)", - "key.namelength" : 120, - "key.nameoffset" : 45831, - "key.offset" : 45826, - "key.parsed_declaration" : "private func setY(\n for row : Row,\n baseYPosition : CGFloat,\n alignment : FlowAppearance.RowItemsAlignment\n) -> CGFloat", - "key.parsed_scope.end" : 1006, - "key.parsed_scope.start" : 972, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let heights: [CGFloat<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> heights<\/decl.name>: [CGFloat<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 82, - "key.line" : 978, - "key.modulename" : "ListableUI", - "key.name" : "heights", - "key.namelength" : 7, - "key.nameoffset" : 45994, - "key.offset" : 45990, - "key.parsed_declaration" : "let heights = row.items.map {\n direction.height(for: $0.size)\n}", - "key.parsed_scope.end" : 978, - "key.parsed_scope.start" : 978, - "key.reusingastcontext" : false, - "key.typename" : "[CGFloat]", - "key.typeusr" : "$sSay14CoreFoundation7CGFloatVGD", - "key.usr" : "s:10ListableUI14FlowListLayoutC4setY33_E6A9B13B1C03E1986EDD541DF2ABB82FLL3for13baseYPosition9alignment14CoreFoundation7CGFloatVAC3RowAELLV_AkA0C10AppearanceV0W14ItemsAlignmentOtF7heightsL_SayAKGvp" - }, - { - "key.annotated_decl" : "let maxHeight: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> maxHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 51, - "key.line" : 982, - "key.modulename" : "ListableUI", - "key.name" : "maxHeight", - "key.namelength" : 9, - "key.nameoffset" : 46094, - "key.offset" : 46090, - "key.parsed_declaration" : "let maxHeight : CGFloat = heights.max(by: <) ?? 0.0", - "key.parsed_scope.end" : 982, - "key.parsed_scope.start" : 982, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC4setY33_E6A9B13B1C03E1986EDD541DF2ABB82FLL3for13baseYPosition9alignment14CoreFoundation7CGFloatVAC3RowAELLV_AkA0C10AppearanceV0W14ItemsAlignmentOtF9maxHeightL_AKvp" - } - ], - "key.typename" : "(FlowListLayout) -> (FlowListLayout.Row, CGFloat, FlowAppearance.RowItemsAlignment) -> CGFloat", - "key.typeusr" : "$s3for13baseYPosition9alignment14CoreFoundation7CGFloatV10ListableUI14FlowListLayoutC3Row33_E6A9B13B1C03E1986EDD541DF2ABB82FLLV_AfG0J10AppearanceV0M14ItemsAlignmentOtcD", - "key.usr" : "s:10ListableUI14FlowListLayoutC4setY33_E6A9B13B1C03E1986EDD541DF2ABB82FLL3for13baseYPosition9alignment14CoreFoundation7CGFloatVAC3RowAELLV_AkA0C10AppearanceV0W14ItemsAlignmentOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func rows(with items: [ListLayoutContentItem<\/Type>], maxWidth: CGFloat<\/Type>) -> [Row<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 47136 - } - ], - "key.bodylength" : 756, - "key.bodyoffset" : 47222, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Breaks the given items into rows for the flow layout. A new row is created when an item does not\nfit into the last row (item spacing included).", - "key.doc.column" : 18, - "key.doc.comment" : "Breaks the given items into rows for the flow layout. A new row is created when an item does not\nfit into the last row (item spacing included).", - "key.doc.declaration" : "private func rows(with items: [ListLayoutContentItem], maxWidth: CGFloat) -> [Row]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "rows(with:maxWidth:)<\/Name>s:10ListableUI14FlowListLayoutC4rows33_E6A9B13B1C03E1986EDD541DF2ABB82FLL4with8maxWidthSayAC3RowAELLVGSayAA0dE11ContentItem_pG_14CoreFoundation7CGFloatVtF<\/USR>private func rows(with items: [ListLayoutContentItem], maxWidth: CGFloat) -> [Row]<\/Declaration>Breaks the given items into rows for the flow layout. A new row is created when an item does not fit into the last row (item spacing included).<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 1010, - "key.doc.name" : "rows(with:maxWidth:)", - "key.doc.type" : "Function", - "key.doclength" : 156, - "key.docoffset" : 46976, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> rows<\/decl.name>(with<\/decl.var.parameter.argument_label> items<\/decl.var.parameter.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.parameter.type><\/decl.var.parameter>, maxWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Row<\/ref.struct>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 835, - "key.line" : 1010, - "key.modulename" : "ListableUI", - "key.name" : "rows(with:maxWidth:)", - "key.namelength" : 62, - "key.nameoffset" : 47149, - "key.offset" : 47144, - "key.parsed_declaration" : "private func rows(with items : [ListLayoutContentItem], maxWidth : CGFloat) -> [Row]", - "key.parsed_scope.end" : 1038, - "key.parsed_scope.start" : 1010, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var items: [any ListLayoutContentItem<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [any ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 17, - "key.line" : 1014, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 47292, - "key.offset" : 47288, - "key.parsed_declaration" : "var items = items", - "key.parsed_scope.end" : 1014, - "key.parsed_scope.start" : 1014, - "key.reusingastcontext" : false, - "key.typename" : "[any ListLayoutContentItem]", - "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", - "key.usr" : "s:10ListableUI14FlowListLayoutC4rows33_E6A9B13B1C03E1986EDD541DF2ABB82FLL4with8maxWidthSayAC3RowAELLVGSayAA0dE11ContentItem_pG_14CoreFoundation7CGFloatVtF5itemsL0_ALvp" - }, - { - "key.annotated_decl" : "var rows: [FlowListLayout<\/Type>.Row<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> rows<\/decl.name>: [FlowListLayout<\/ref.class>.Row<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 18, - "key.line" : 1015, - "key.modulename" : "ListableUI", - "key.name" : "rows", - "key.namelength" : 4, - "key.nameoffset" : 47318, - "key.offset" : 47314, - "key.parsed_declaration" : "var rows = [Row]()", - "key.parsed_scope.end" : 1015, - "key.parsed_scope.start" : 1015, - "key.reusingastcontext" : false, - "key.typename" : "[FlowListLayout.Row]", - "key.typeusr" : "$sSay10ListableUI14FlowListLayoutC3Row33_E6A9B13B1C03E1986EDD541DF2ABB82FLLVGD", - "key.usr" : "s:10ListableUI14FlowListLayoutC4rows33_E6A9B13B1C03E1986EDD541DF2ABB82FLL4with8maxWidthSayAC3RowAELLVGSayAA0dE11ContentItem_pG_14CoreFoundation7CGFloatVtFADL_AJvp" - } - ], - "key.typename" : "(FlowListLayout) -> ([any ListLayoutContentItem], CGFloat) -> [FlowListLayout.Row]", - "key.typeusr" : "$s4with8maxWidthSay10ListableUI14FlowListLayoutC3Row33_E6A9B13B1C03E1986EDD541DF2ABB82FLLVGSayAC0gH11ContentItem_pG_14CoreFoundation7CGFloatVtcD", - "key.usr" : "s:10ListableUI14FlowListLayoutC4rows33_E6A9B13B1C03E1986EDD541DF2ABB82FLL4with8maxWidthSayAC3RowAELLVGSayAA0dE11ContentItem_pG_14CoreFoundation7CGFloatVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func layout(headerFooter: ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type>, width: CustomWidth<\/Type>, viewWidth: CGFloat<\/Type>, defaultWidth: CGFloat<\/Type>, contentBottom: CGFloat<\/Type>, after: (ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 48033 - } - ], - "key.bodylength" : 1126, - "key.bodyoffset" : 48312, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Lays out the given header \/ footer.", - "key.doc.column" : 18, - "key.doc.comment" : "Lays out the given header \/ footer.", - "key.doc.declaration" : "private func layout(headerFooter: ListLayoutContent.SupplementaryItemInfo, width: CustomWidth, viewWidth: CGFloat, defaultWidth: CGFloat, contentBottom: CGFloat, after: (ListLayoutContent.SupplementaryItemInfo) -> ())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "layout(headerFooter:width:viewWidth:defaultWidth:contentBottom:after:)<\/Name>s:10ListableUI14FlowListLayoutC6layout33_E6A9B13B1C03E1986EDD541DF2ABB82FLL12headerFooter5width9viewWidth07defaultT013contentBottom5afteryAA0dE7ContentC21SupplementaryItemInfoC_AA06CustomT0O14CoreFoundation7CGFloatVA2TyAOXEtF<\/USR>private func layout(headerFooter: ListLayoutContent.SupplementaryItemInfo, width: CustomWidth, viewWidth: CGFloat, defaultWidth: CGFloat, contentBottom: CGFloat, after: (ListLayoutContent.SupplementaryItemInfo) -> ())<\/Declaration>Lays out the given header \/ footer.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 1041, - "key.doc.name" : "layout(headerFooter:width:viewWidth:defaultWidth:contentBottom:after:)", - "key.doc.type" : "Function", - "key.doclength" : 40, - "key.docoffset" : 47989, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layout<\/decl.name>(headerFooter<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, viewWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, defaultWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentBottom<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, after<\/decl.var.parameter.argument_label>: (ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1398, - "key.line" : 1041, - "key.modulename" : "ListableUI", - "key.name" : "layout(headerFooter:width:viewWidth:defaultWidth:contentBottom:after:)", - "key.namelength" : 264, - "key.nameoffset" : 48046, - "key.offset" : 48041, - "key.parsed_declaration" : "private func layout(\n headerFooter : ListLayoutContent.SupplementaryItemInfo,\n width : CustomWidth,\n viewWidth : CGFloat,\n defaultWidth : CGFloat,\n contentBottom : CGFloat,\n after : (ListLayoutContent.SupplementaryItemInfo) -> ()\n)", - "key.parsed_scope.end" : 1081, - "key.parsed_scope.start" : 1041, - "key.related_decls" : [ - { - "key.annotated_decl" : "layout(delegate:in:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let position: CustomWidth<\/Type>.Position<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> position<\/decl.name>: CustomWidth<\/ref.enum>.Position<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 108, - "key.line" : 1049, - "key.modulename" : "ListableUI", - "key.name" : "position", - "key.namelength" : 8, - "key.nameoffset" : 48325, - "key.offset" : 48321, - "key.parsed_declaration" : "let position = width.position(\n with: viewWidth,\n defaultWidth: defaultWidth\n)", - "key.parsed_scope.end" : 1049, - "key.parsed_scope.start" : 1049, - "key.reusingastcontext" : false, - "key.typename" : "CustomWidth.Position", - "key.typeusr" : "$s10ListableUI11CustomWidthO8PositionVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout33_E6A9B13B1C03E1986EDD541DF2ABB82FLL12headerFooter5width9viewWidth07defaultT013contentBottom5afteryAA0dE7ContentC21SupplementaryItemInfoC_AA06CustomT0O14CoreFoundation7CGFloatVA2TyAOXEtF8positionL_AQ8PositionVvp" - }, - { - "key.annotated_decl" : "let measureInfo: Sizing<\/Type>.MeasureInfo<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> measureInfo<\/decl.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 204, - "key.line" : 1056, - "key.modulename" : "ListableUI", - "key.name" : "measureInfo", - "key.namelength" : 11, - "key.nameoffset" : 48513, - "key.offset" : 48509, - "key.parsed_declaration" : "let measureInfo = Sizing.MeasureInfo(\n sizeConstraint: self.direction.size(for: CGSize(width: position.width, height: .greatestFiniteMagnitude)),\n direction: self.direction\n)", - "key.parsed_scope.end" : 1056, - "key.parsed_scope.start" : 1056, - "key.reusingastcontext" : false, - "key.typename" : "Sizing.MeasureInfo", - "key.typeusr" : "$s10ListableUI6SizingO11MeasureInfoVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout33_E6A9B13B1C03E1986EDD541DF2ABB82FLL12headerFooter5width9viewWidth07defaultT013contentBottom5afteryAA0dE7ContentC21SupplementaryItemInfoC_AA06CustomT0O14CoreFoundation7CGFloatVA2TyAOXEtF11measureInfoL_AA6SizingO11MeasureInfoVvp" - }, - { - "key.annotated_decl" : "let size: CGSize<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 1063, - "key.modulename" : "ListableUI", - "key.name" : "size", - "key.namelength" : 4, - "key.nameoffset" : 48780, - "key.offset" : 48776, - "key.parsed_declaration" : "let size = headerFooter.measurer(measureInfo)", - "key.parsed_scope.end" : 1063, - "key.parsed_scope.start" : 1063, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout33_E6A9B13B1C03E1986EDD541DF2ABB82FLL12headerFooter5width9viewWidth07defaultT013contentBottom5afteryAA0dE7ContentC21SupplementaryItemInfoC_AA06CustomT0O14CoreFoundation7CGFloatVA2TyAOXEtF4sizeL_So6CGSizeVvp" - } - ], - "key.typename" : "(FlowListLayout) -> (ListLayoutContent.SupplementaryItemInfo, CustomWidth, CGFloat, CGFloat, CGFloat, (ListLayoutContent.SupplementaryItemInfo) -> ()) -> ()", - "key.typeusr" : "$s12headerFooter5width9viewWidth07defaultE013contentBottom5aftery10ListableUI17ListLayoutContentC21SupplementaryItemInfoC_AG06CustomE0O14CoreFoundation7CGFloatVA2PyAKXEtcD", - "key.usr" : "s:10ListableUI14FlowListLayoutC6layout33_E6A9B13B1C03E1986EDD541DF2ABB82FLL12headerFooter5width9viewWidth07defaultT013contentBottom5afteryAA0dE7ContentC21SupplementaryItemInfoC_AA06CustomT0O14CoreFoundation7CGFloatVA2TyAOXEtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private struct FlowListLayout<\/Type>.Row<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 49515 - } - ], - "key.bodylength" : 49, - "key.bodyoffset" : 49535, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Represents a row within a section within the flow layout.", - "key.doc.column" : 20, - "key.doc.comment" : "Represents a row within a section within the flow layout.", - "key.doc.declaration" : "private struct ListableUI.FlowListLayout.Row", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "Row<\/Name>s:10ListableUI14FlowListLayoutC3Row33_E6A9B13B1C03E1986EDD541DF2ABB82FLLV<\/USR>private struct ListableUI.FlowListLayout.Row<\/Declaration>Represents a row within a section within the flow layout.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 1084, - "key.doc.name" : "Row", - "key.doc.type" : "Class", - "key.doclength" : 62, - "key.docoffset" : 49449, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> FlowListLayout<\/ref.class>.Row<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 62, - "key.line" : 1084, - "key.modulename" : "ListableUI", - "key.name" : "Row", - "key.namelength" : 3, - "key.nameoffset" : 49530, - "key.offset" : 49523, - "key.parsed_declaration" : "private struct Row", - "key.parsed_scope.end" : 1086, - "key.parsed_scope.start" : 1084, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let items: [ListLayoutContentItem<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> items<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 1085, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 49548, - "key.offset" : 49544, - "key.parsed_declaration" : "let items : [ListLayoutContentItem]", - "key.parsed_scope.end" : 1085, - "key.parsed_scope.start" : 1085, - "key.reusingastcontext" : false, - "key.typename" : "[any ListLayoutContentItem]", - "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", - "key.usr" : "s:10ListableUI14FlowListLayoutC3Row33_E6A9B13B1C03E1986EDD541DF2ABB82FLLV5itemsSayAA0dE11ContentItem_pGvp" - } - ], - "key.typename" : "FlowListLayout.Row.Type", - "key.typeusr" : "$s10ListableUI14FlowListLayoutC3Row33_E6A9B13B1C03E1986EDD541DF2ABB82FLLVmD", - "key.usr" : "s:10ListableUI14FlowListLayoutC3Row33_E6A9B13B1C03E1986EDD541DF2ABB82FLLV" - } - ], - "key.typename" : "FlowListLayout.Type", - "key.typeusr" : "$s10ListableUI14FlowListLayoutCmD", - "key.usr" : "s:10ListableUI14FlowListLayoutC" - }, - { - "key.annotated_decl" : "public enum ItemSizing : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 2186, - "key.bodyoffset" : 49627, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls how items in a row are measured and sized.", - "key.doc.column" : 17, - "key.doc.declaration" : "public enum ItemSizing : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "ItemSizing<\/Name>s:10ListableUI14FlowAppearanceV10ItemSizingO<\/USR>public enum ItemSizing : Equatable<\/Declaration>Controls how items in a row are measured and sized.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 196, - "key.doc.name" : "ItemSizing", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ItemSizing<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2224, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "FlowAppearance.ItemSizing", - "key.namelength" : 25, - "key.nameoffset" : 49600, - "key.offset" : 49590, - "key.parsed_declaration" : "extension FlowAppearance.ItemSizing", - "key.parsed_scope.end" : 1154, - "key.parsed_scope.start" : 1090, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func size(for item: ListLayoutContent<\/Type>.ItemInfo<\/Type>, direction: LayoutDirection<\/Type>, maxWidth: CGFloat<\/Type>, itemSpacing: CGFloat<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.bodylength" : 1904, - "key.bodyoffset" : 49907, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Calculates the size of the given item within the constraints of the `ItemSizing` value.", - "key.doc.column" : 10, - "key.doc.comment" : "Calculates the size of the given item within the constraints of the `ItemSizing` value.", - "key.doc.declaration" : "func size(for item: ListLayoutContent.ItemInfo, direction: LayoutDirection, maxWidth: CGFloat, itemSpacing: CGFloat) -> CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "size(for:direction:maxWidth:itemSpacing:)<\/Name>s:10ListableUI14FlowAppearanceV10ItemSizingO4size3for9direction8maxWidth11itemSpacingSo6CGSizeVAA17ListLayoutContentC0E4InfoC_AA0P9DirectionO14CoreFoundation7CGFloatVAUtF<\/USR>func size(for item: ListLayoutContent.ItemInfo, direction: LayoutDirection, maxWidth: CGFloat, itemSpacing: CGFloat) -> CGSize<\/Declaration>Calculates the size of the given item within the constraints of the ItemSizing<\/codeVoice> value.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 1093, - "key.doc.name" : "size(for:direction:maxWidth:itemSpacing:)", - "key.doc.type" : "Function", - "key.doclength" : 92, - "key.docoffset" : 49637, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, maxWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2079, - "key.line" : 1093, - "key.modulename" : "ListableUI", - "key.name" : "size(for:direction:maxWidth:itemSpacing:)", - "key.namelength" : 153, - "key.nameoffset" : 49738, - "key.offset" : 49733, - "key.parsed_declaration" : "func size(\n for item : ListLayoutContent.ItemInfo,\n direction : LayoutDirection,\n maxWidth : CGFloat,\n itemSpacing : CGFloat\n) -> CGSize", - "key.parsed_scope.end" : 1153, - "key.parsed_scope.start" : 1093, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "func measure(in width: CGFloat<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.bodylength" : 401, - "key.bodyoffset" : 49960, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> measure<\/decl.name>(in<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 446, - "key.line" : 1100, - "key.modulename" : "ListableUI", - "key.name" : "measure(in:)", - "key.namelength" : 27, - "key.nameoffset" : 49921, - "key.offset" : 49916, - "key.parsed_declaration" : "func measure(in width : CGFloat) -> CGSize", - "key.parsed_scope.end" : 1112, - "key.parsed_scope.start" : 1100, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let measureInfo: Sizing<\/Type>.MeasureInfo<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> measureInfo<\/decl.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 320, - "key.line" : 1101, - "key.modulename" : "ListableUI", - "key.name" : "measureInfo", - "key.namelength" : 11, - "key.nameoffset" : 49977, - "key.offset" : 49973, - "key.parsed_declaration" : "let measureInfo = Sizing.MeasureInfo(\n sizeConstraint: direction.size(\n for: CGSize(\n width: min(width, maxWidth),\n height: .greatestFiniteMagnitude\n )\n ),\n direction: direction\n)", - "key.parsed_scope.end" : 1101, - "key.parsed_scope.start" : 1101, - "key.reusingastcontext" : false, - "key.typename" : "Sizing.MeasureInfo", - "key.typeusr" : "$s10ListableUI6SizingO11MeasureInfoVD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemSizingO4size3for9direction8maxWidth11itemSpacingSo6CGSizeVAA17ListLayoutContentC0E4InfoC_AA0P9DirectionO14CoreFoundation7CGFloatVAUtF7measureL_2inAlU_tF0wR0L_AA0F0O07MeasureR0Vvp" - } - ], - "key.typename" : "(CGFloat) -> CGSize", - "key.typeusr" : "$s2inSo6CGSizeV14CoreFoundation7CGFloatV_tcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemSizingO4size3for9direction8maxWidth11itemSpacingSo6CGSizeVAA17ListLayoutContentC0E4InfoC_AA0P9DirectionO14CoreFoundation7CGFloatVAUtF7measureL_2inAlU_tF" - } - ], - "key.typename" : "(FlowAppearance.ItemSizing) -> (ListLayoutContent.ItemInfo, LayoutDirection, CGFloat, CGFloat) -> CGSize", - "key.typeusr" : "$s3for9direction8maxWidth11itemSpacingSo6CGSizeV10ListableUI17ListLayoutContentC8ItemInfoC_AG0K9DirectionO14CoreFoundation7CGFloatVAPtcD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemSizingO4size3for9direction8maxWidth11itemSpacingSo6CGSizeVAA17ListLayoutContentC0E4InfoC_AA0P9DirectionO14CoreFoundation7CGFloatVAUtF" - } - ], - "key.typename" : "FlowAppearance.ItemSizing.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV10ItemSizingOmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV10ItemSizingO" - }, - { - "key.annotated_decl" : "@_originallyDefinedIn(module: "CoreGraphics", macOS 10.0) @_originallyDefinedIn(module: "CoreGraphics", macCatalyst 13.0) @_originallyDefinedIn(module: "CoreGraphics", iOS 2.0) @_originallyDefinedIn(module: "CoreGraphics", watchOS 1.0) @_originallyDefinedIn(module: "CoreGraphics", tvOS 9.0) @frozen struct CGFloat<\/Declaration>", - "key.bodylength" : 1940, - "key.bodyoffset" : 51836, - "key.decl_lang" : "source.lang.swift", - "key.fully_annotated_decl" : "@_originallyDefinedIn<\/syntaxtype.attribute.name>(module: "CoreGraphics", macOS 10.0)<\/syntaxtype.attribute.builtin> @_originallyDefinedIn<\/syntaxtype.attribute.name>(module: "CoreGraphics", macCatalyst 13.0)<\/syntaxtype.attribute.builtin> @_originallyDefinedIn<\/syntaxtype.attribute.name>(module: "CoreGraphics", iOS 2.0)<\/syntaxtype.attribute.builtin> @_originallyDefinedIn<\/syntaxtype.attribute.name>(module: "CoreGraphics", watchOS 1.0)<\/syntaxtype.attribute.builtin> @_originallyDefinedIn<\/syntaxtype.attribute.name>(module: "CoreGraphics", tvOS 9.0)<\/syntaxtype.attribute.builtin> @frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> CGFloat<\/decl.name><\/decl.struct>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1960, - "key.modulename" : "CoreFoundation", - "key.name" : "CGFloat", - "key.namelength" : 7, - "key.nameoffset" : 51827, - "key.offset" : 51817, - "key.parsed_declaration" : "extension CGFloat", - "key.parsed_scope.end" : 1210, - "key.parsed_scope.start" : 1157, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func sliceIntoSpacings<Element>(with items: [Element<\/Type>], using block: (SliceSpacing<\/Type>, Element<\/Type>) -> ())<\/Declaration>", - "key.bodylength" : 401, - "key.bodyoffset" : 52258, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "For fill layouts, ensures that the left over spacing to be distributed between items\nis entirely used, calling the given `block` with each spacing. The last call to the\nblock will pass a `SliceSpacing` of `.last`, to indicate the item is the last item in the row.", - "key.doc.column" : 10, - "key.doc.comment" : "For fill layouts, ensures that the left over spacing to be distributed between items\nis entirely used, calling the given `block` with each spacing. The last call to the\nblock will pass a `SliceSpacing` of `.last`, to indicate the item is the last item in the row.", - "key.doc.declaration" : "func sliceIntoSpacings(with items: [Element], using block: (SliceSpacing, Element) -> ())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "sliceIntoSpacings(with:using:)<\/Name>s:14CoreFoundation7CGFloatV10ListableUIE17sliceIntoSpacings4with5usingySayxG_yAcDE12SliceSpacingO_xtXEtlF<\/USR>func sliceIntoSpacings<Element>(with items: [Element], using block: (SliceSpacing, Element) -> ())<\/Declaration>For fill layouts, ensures that the left over spacing to be distributed between items is entirely used, calling the given block<\/codeVoice> with each spacing. The last call to the block will pass a SliceSpacing<\/codeVoice> of .last<\/codeVoice>, to indicate the item is the last item in the row.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 1162, - "key.doc.name" : "sliceIntoSpacings(with:using:)", - "key.doc.type" : "Function", - "key.doclength" : 284, - "key.docoffset" : 51846, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> sliceIntoSpacings<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>>(with<\/decl.var.parameter.argument_label> items<\/decl.var.parameter.name>: [Element<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, using<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (SliceSpacing<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 526, - "key.line" : 1162, - "key.modulename" : "ListableUI", - "key.name" : "sliceIntoSpacings(with:using:)", - "key.namelength" : 117, - "key.nameoffset" : 52139, - "key.offset" : 52134, - "key.parsed_declaration" : "func sliceIntoSpacings(\n with items : [Element],\n using block : (SliceSpacing, Element) -> ()\n)", - "key.parsed_scope.end" : 1179, - "key.parsed_scope.start" : 1162, - "key.related_decls" : [ - { - "key.annotated_decl" : "sliceIntoSpacings(for:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Element<\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "Element<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 1162, - "key.modulename" : "ListableUI", - "key.name" : "Element", - "key.namelength" : 7, - "key.nameoffset" : 52157, - "key.offset" : 52157, - "key.parsed_declaration" : "func sliceIntoSpacingslet spacings: [CGFloat<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> spacings<\/decl.name>: [CGFloat<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 55, - "key.line" : 1168, - "key.modulename" : "ListableUI", - "key.name" : "spacings", - "key.namelength" : 8, - "key.nameoffset" : 52316, - "key.offset" : 52312, - "key.parsed_declaration" : "let spacings = self.sliceIntoSpacings(for: items.count)", - "key.parsed_scope.end" : 1168, - "key.parsed_scope.start" : 1168, - "key.reusingastcontext" : false, - "key.typename" : "[CGFloat]", - "key.typeusr" : "$sSay14CoreFoundation7CGFloatVGD", - "key.usr" : "s:14CoreFoundation7CGFloatV10ListableUIE17sliceIntoSpacings4with5usingySayxG_yAcDE12SliceSpacingO_xtXEtlF8spacingsL_SayACGvp" - } - ], - "key.typename" : " (CGFloat) -> ([Element], (CGFloat.SliceSpacing, Element) -> ()) -> ()", - "key.typeusr" : "$s4with5usingySayxG_y14CoreFoundation7CGFloatV10ListableUIE12SliceSpacingO_xtXEtcluD", - "key.usr" : "s:14CoreFoundation7CGFloatV10ListableUIE17sliceIntoSpacings4with5usingySayxG_yAcDE12SliceSpacingO_xtXEtlF" - }, - { - "key.annotated_decl" : "func sliceIntoSpacings(for count: Int<\/Type>) -> [CGFloat<\/Type>]<\/Declaration>", - "key.bodylength" : 370, - "key.bodyoffset" : 53311, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "For fill layouts, ensures that the left over spacing is entirely distributed, avoiding\nrounding of a value dropping some amount of precision.\n\nEg: If you have `10` points of spacing left to distribute between 4 items (which have\n3 gutters of spacing between them), doing a normal `round` on `10\/3` would result\nin either `3,3,3 = 9` (rounding down), or `4, 4, 4 = 12` (rounding up), which\ndoes not match the original `10`. This method progresively calculates each spacing,\nensuring the entire value is used: `3, 4, 3 = 10`.", - "key.doc.column" : 10, - "key.doc.comment" : "For fill layouts, ensures that the left over spacing is entirely distributed, avoiding\nrounding of a value dropping some amount of precision.\n\nEg: If you have `10` points of spacing left to distribute between 4 items (which have\n3 gutters of spacing between them), doing a normal `round` on `10\/3` would result\nin either `3,3,3 = 9` (rounding down), or `4, 4, 4 = 12` (rounding up), which\ndoes not match the original `10`. This method progresively calculates each spacing,\nensuring the entire value is used: `3, 4, 3 = 10`.", - "key.doc.declaration" : "func sliceIntoSpacings(for count: Int) -> [CGFloat]", - "key.doc.discussion" : [ - { - "Para" : "Eg: If you have `10` points of spacing left to distribute between 4 items (which have 3 gutters of spacing between them), doing a normal `round` on `10\/3` would result in either `3,3,3 = 9` (rounding down), or `4, 4, 4 = 12` (rounding up), which does not match the original `10`. This method progresively calculates each spacing, ensuring the entire value is used: `3, 4, 3 = 10`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "sliceIntoSpacings(for:)<\/Name>s:14CoreFoundation7CGFloatV10ListableUIE17sliceIntoSpacings3forSayACGSi_tF<\/USR>func sliceIntoSpacings(for count: Int) -> [CGFloat]<\/Declaration>For fill layouts, ensures that the left over spacing is entirely distributed, avoiding rounding of a value dropping some amount of precision.<\/Para><\/Abstract>Eg: If you have 10<\/codeVoice> points of spacing left to distribute between 4 items (which have 3 gutters of spacing between them), doing a normal round<\/codeVoice> on 10\/3<\/codeVoice> would result in either 3,3,3 = 9<\/codeVoice> (rounding down), or 4, 4, 4 = 12<\/codeVoice> (rounding up), which does not match the original 10<\/codeVoice>. This method progresively calculates each spacing, ensuring the entire value is used: 3, 4, 3 = 10<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 1189, - "key.doc.name" : "sliceIntoSpacings(for:)", - "key.doc.type" : "Function", - "key.doclength" : 583, - "key.docoffset" : 52670, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> sliceIntoSpacings<\/decl.name>(for<\/decl.var.parameter.argument_label> count<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [CGFloat<\/ref.struct>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 425, - "key.line" : 1189, - "key.modulename" : "ListableUI", - "key.name" : "sliceIntoSpacings(for:)", - "key.namelength" : 34, - "key.nameoffset" : 53262, - "key.offset" : 53257, - "key.parsed_declaration" : "func sliceIntoSpacings(for count : Int) -> [CGFloat]", - "key.parsed_scope.end" : 1204, - "key.parsed_scope.start" : 1189, - "key.related_decls" : [ - { - "key.annotated_decl" : "sliceIntoSpacings(with:using:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let range: Range<\/Type><Int<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> range<\/decl.name>: Range<\/ref.struct><Int<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 27, - "key.line" : 1191, - "key.modulename" : "ListableUI", - "key.name" : "range", - "key.namelength" : 5, - "key.nameoffset" : 53333, - "key.offset" : 53329, - "key.parsed_declaration" : "let range = 0..<(count - 1)", - "key.parsed_scope.end" : 1191, - "key.parsed_scope.start" : 1191, - "key.reusingastcontext" : false, - "key.typename" : "Range", - "key.typeusr" : "$sSnySiGD", - "key.usr" : "s:14CoreFoundation7CGFloatV10ListableUIE17sliceIntoSpacings3forSayACGSi_tF5rangeL_SnySiGvp" - }, - { - "key.annotated_decl" : "var remaining: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> remaining<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 20, - "key.line" : 1193, - "key.modulename" : "ListableUI", - "key.name" : "remaining", - "key.namelength" : 9, - "key.nameoffset" : 53378, - "key.offset" : 53374, - "key.parsed_declaration" : "var remaining = self", - "key.parsed_scope.end" : 1193, - "key.parsed_scope.start" : 1193, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:14CoreFoundation7CGFloatV10ListableUIE17sliceIntoSpacings3forSayACGSi_tF9remainingL_ACvp" - }, - { - "key.annotated_decl" : "var remainingCount: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> remainingCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 36, - "key.line" : 1194, - "key.modulename" : "ListableUI", - "key.name" : "remainingCount", - "key.namelength" : 14, - "key.nameoffset" : 53407, - "key.offset" : 53403, - "key.parsed_declaration" : "var remainingCount : Int = count - 1", - "key.parsed_scope.end" : 1194, - "key.parsed_scope.start" : 1194, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:14CoreFoundation7CGFloatV10ListableUIE17sliceIntoSpacings3forSayACGSi_tF14remainingCountL_Sivp" - } - ], - "key.typename" : "(CGFloat) -> (Int) -> [CGFloat]", - "key.typeusr" : "$s3forSay14CoreFoundation7CGFloatVGSi_tcD", - "key.usr" : "s:14CoreFoundation7CGFloatV10ListableUIE17sliceIntoSpacings3forSayACGSi_tF" - }, - { - "key.annotated_decl" : "enum SliceSpacing : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 51, - "key.bodyoffset" : 53723, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 53712 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> SliceSpacing<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 83, - "key.line" : 1206, - "key.modulename" : "ListableUI", - "key.name" : "SliceSpacing", - "key.namelength" : 12, - "key.nameoffset" : 53697, - "key.offset" : 53692, - "key.parsed_declaration" : "enum SliceSpacing : Equatable", - "key.parsed_scope.end" : 1209, - "key.parsed_scope.start" : 1206, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 53732, - "key.substructure" : [ - { - "key.annotated_decl" : "case value(CGFloat<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> value<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 1207, - "key.modulename" : "ListableUI", - "key.name" : "value(_:)", - "key.namelength" : 14, - "key.nameoffset" : 53737, - "key.offset" : 53737, - "key.parsed_declaration" : "case value(CGFloat)", - "key.parsed_scope.end" : 1207, - "key.parsed_scope.start" : 1207, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CGFloat.SliceSpacing.Type) -> (CGFloat) -> CGFloat.SliceSpacing", - "key.typeusr" : "$sy14CoreFoundation7CGFloatV10ListableUIE12SliceSpacingOACcAFmcD", - "key.usr" : "s:14CoreFoundation7CGFloatV10ListableUIE12SliceSpacingO5valueyAfCcAFmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 53760, - "key.substructure" : [ - { - "key.annotated_decl" : "case last<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> last<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 1208, - "key.modulename" : "ListableUI", - "key.name" : "last", - "key.namelength" : 4, - "key.nameoffset" : 53765, - "key.offset" : 53765, - "key.parsed_declaration" : "case last", - "key.parsed_scope.end" : 1208, - "key.parsed_scope.start" : 1208, - "key.reusingastcontext" : false, - "key.typename" : "(CGFloat.SliceSpacing.Type) -> CGFloat.SliceSpacing", - "key.typeusr" : "$sy14CoreFoundation7CGFloatV10ListableUIE12SliceSpacingOAFmcD", - "key.usr" : "s:14CoreFoundation7CGFloatV10ListableUIE12SliceSpacingO4lastyA2FmF" - } - ] - } - ], - "key.typename" : "CGFloat.SliceSpacing.Type", - "key.typeusr" : "$s14CoreFoundation7CGFloatV10ListableUIE12SliceSpacingOmD", - "key.usr" : "s:14CoreFoundation7CGFloatV10ListableUIE12SliceSpacingO" - } - ], - "key.typename" : "CGFloat.Type", - "key.typeusr" : "$s14CoreFoundation7CGFloatVmD", - "key.usr" : "s:14CoreFoundation7CGFloatV" - }, - { - "key.annotated_decl" : "public enum RowUnderflowAlignment : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 601, - "key.bodyoffset" : 53828, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When there is left over space at the end of a row, `RowUnderflowAlignment` controls\nhow the extra space is distributed between the items.", - "key.doc.column" : 17, - "key.doc.declaration" : "public enum RowUnderflowAlignment : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "RowUnderflowAlignment<\/Name>s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO<\/USR>public enum RowUnderflowAlignment : Equatable<\/Declaration>When there is left over space at the end of a row, RowUnderflowAlignment<\/codeVoice> controls how the extra space is distributed between the items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 210, - "key.doc.name" : "RowUnderflowAlignment", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> RowUnderflowAlignment<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 650, - "key.line" : 210, - "key.modulename" : "ListableUI", - "key.name" : "FlowAppearance.RowUnderflowAlignment", - "key.namelength" : 36, - "key.nameoffset" : 53790, - "key.offset" : 53780, - "key.parsed_declaration" : "extension FlowAppearance.RowUnderflowAlignment", - "key.parsed_scope.end" : 1223, - "key.parsed_scope.start" : 1213, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static let allTestCases: [(value: `Self`, description: String<\/Type>)]<\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> allTestCases<\/decl.name>: [(value<\/tuple.element.argument_label>: `Self`<\/tuple.element.type><\/tuple.element>, description<\/tuple.element.argument_label>: String<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple>]<\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 590, - "key.line" : 1215, - "key.modulename" : "ListableUI", - "key.name" : "allTestCases", - "key.namelength" : 12, - "key.nameoffset" : 53849, - "key.offset" : 53838, - "key.parsed_declaration" : "static let allTestCases : [(value:Self, description:String)] = [\n (.leading, \"RowUnderflowAlignment.leading\"),\n (.centered, \"RowUnderflowAlignment.centered\"),\n (.trailing, \"RowUnderflowAlignment.trailing\"),\n (.fill(lastRowAlignment: .fill), \"RowUnderflowAlignment.fill(lastRowAlignment: .fill)\"),\n (.fill(lastRowAlignment: .matchPreviousRowSpacing), \"RowUnderflowAlignment.fill(lastRowAlignment: .matchPreviousRowSpacing)\"),\n (.fill(lastRowAlignment: .defaultItemSpacing), \"RowUnderflowAlignment.fill(lastRowAlignment: .defaultItemSpacing)\"),\n]", - "key.parsed_scope.end" : 1215, - "key.parsed_scope.start" : 1215, - "key.reusingastcontext" : false, - "key.typename" : "[(value: FlowAppearance.RowUnderflowAlignment, description: String)]", - "key.typeusr" : "$sSay10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO5value_SS11descriptiontGD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO12allTestCasesSayAE5value_SS11descriptiontGvpZ" - } - ], - "key.typename" : "FlowAppearance.RowUnderflowAlignment.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV21RowUnderflowAlignmentOmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV21RowUnderflowAlignmentO" - }, - { - "key.annotated_decl" : "public enum RowItemsAlignment : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 258, - "key.bodyoffset" : 54477, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When items in a row are not the same height, controls the alignment and sizing of the smaller items.", - "key.doc.column" : 17, - "key.doc.declaration" : "public enum RowItemsAlignment : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.doc.full_as_xml" : "RowItemsAlignment<\/Name>s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO<\/USR>public enum RowItemsAlignment : Equatable<\/Declaration>When items in a row are not the same height, controls the alignment and sizing of the smaller items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 283, - "key.doc.name" : "RowItemsAlignment", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> RowItemsAlignment<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 303, - "key.line" : 283, - "key.modulename" : "ListableUI", - "key.name" : "FlowAppearance.RowItemsAlignment", - "key.namelength" : 32, - "key.nameoffset" : 54443, - "key.offset" : 54433, - "key.parsed_declaration" : "extension FlowAppearance.RowItemsAlignment", - "key.parsed_scope.end" : 1234, - "key.parsed_scope.start" : 1226, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static let allTestCases: [(value: `Self`, description: String<\/Type>)]<\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Flow\/FlowListLayout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> allTestCases<\/decl.name>: [(value<\/tuple.element.argument_label>: `Self`<\/tuple.element.type><\/tuple.element>, description<\/tuple.element.argument_label>: String<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple>]<\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 247, - "key.line" : 1228, - "key.modulename" : "ListableUI", - "key.name" : "allTestCases", - "key.namelength" : 12, - "key.nameoffset" : 54498, - "key.offset" : 54487, - "key.parsed_declaration" : "static let allTestCases : [(value:Self, description:String)] = [\n (.top, \"RowItemsAlignment.top\"),\n (.center, \"RowItemsAlignment.center\"),\n (.bottom, \"RowItemsAlignment.bottom\"),\n (.fill, \"RowItemsAlignment.fill\")\n]", - "key.parsed_scope.end" : 1228, - "key.parsed_scope.start" : 1228, - "key.reusingastcontext" : false, - "key.typename" : "[(value: FlowAppearance.RowItemsAlignment, description: String)]", - "key.typeusr" : "$sSay10ListableUI14FlowAppearanceV17RowItemsAlignmentO5value_SS11descriptiontGD", - "key.usr" : "s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO12allTestCasesSayAE5value_SS11descriptiontGvpZ" - } - ], - "key.typename" : "FlowAppearance.RowItemsAlignment.Type", - "key.typeusr" : "$s10ListableUI14FlowAppearanceV17RowItemsAlignmentOmD", - "key.usr" : "s:10ListableUI14FlowAppearanceV17RowItemsAlignmentO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 6286, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1137 - } - ], - "key.bodylength" : 1394, - "key.bodyoffset" : 1182, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `LayoutDescription`, well, describes the type of and properties of a layout to apply to a list view.\n\nYou use a `LayoutDescription` by passing a closure to its initializer, which you use to\ncustomize the `layoutAppearance` of the provided list type.\n\nFor example, to use a standard list layout, and customize the layout, your code would look something like this:\n\n```\nlistView.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```\n\nOr a layout for your own custom layout type would look somewhat like this:\n\n```\nMyCustomLayout.describe {\n $0.myLayoutOption = true\n $0.anotherLayoutOption = .polkadots\n}\n```\n\nNote\n----\nUnder the hood, Listable is smart, and will only re-create the underlying\nlayout object when needed (when the layout type or layout appearance changes).\n", - "key.doc.column" : 15, - "key.doc.comment" : "\nA `LayoutDescription`, well, describes the type of and properties of a layout to apply to a list view.\n\nYou use a `LayoutDescription` by passing a closure to its initializer, which you use to\ncustomize the `layoutAppearance` of the provided list type.\n\nFor example, to use a standard list layout, and customize the layout, your code would look something like this:\n\n```\nlistView.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```\n\nOr a layout for your own custom layout type would look somewhat like this:\n\n```\nMyCustomLayout.describe {\n $0.myLayoutOption = true\n $0.anotherLayoutOption = .polkadots\n}\n```\n\nNote\n----\nUnder the hood, Listable is smart, and will only re-create the underlying\nlayout object when needed (when the layout type or layout appearance changes).", - "key.doc.declaration" : "public struct LayoutDescription : Equatable", - "key.doc.discussion" : [ - { - "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type." - }, - { - "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Or a layout for your own custom layout type would look somewhat like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription : Equatable<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "LayoutDescription", - "key.doc.type" : "Class", - "key.doclength" : 1022, - "key.docoffset" : 115, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1171 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1433, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDescription", - "key.namelength" : 17, - "key.nameoffset" : 1151, - "key.offset" : 1144, - "key.parsed_declaration" : "public struct LayoutDescription : Equatable", - "key.parsed_scope.end" : 79, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let configuration: AnyLayoutDescriptionConfiguration<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> configuration<\/decl.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 53, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "configuration", - "key.namelength" : 13, - "key.nameoffset" : 1191, - "key.offset" : 1187, - "key.parsed_declaration" : "let configuration : AnyLayoutDescriptionConfiguration", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.typename" : "any AnyLayoutDescriptionConfiguration", - "key.typeusr" : "$s10ListableUI33AnyLayoutDescriptionConfiguration_pD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13configurationAA03AnycD13Configuration_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<LayoutType>(layoutType: LayoutType<\/Type>.Type, appearance configure: (inout LayoutType<\/Type>.LayoutAppearance<\/Type>) -> () = { _ in }) where LayoutType<\/Type> : ListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1370 - } - ], - "key.bodylength" : 172, - "key.bodyoffset" : 1535, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new layout description for the provided layout type, with the provided optional layout configuration.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new layout description for the provided layout type, with the provided optional layout configuration.", - "key.doc.declaration" : "public init(layoutType: LayoutType.Type, appearance configure: (inout LayoutType.LayoutAppearance) -> () = { _ in }) where LayoutType : ListableUI.ListLayout", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "init(layoutType:appearance:)<\/Name>s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzXEtcAA04ListC0Rzlufc<\/USR>public init<LayoutType>(layoutType: LayoutType.Type, appearance configure: (inout LayoutType.LayoutAppearance) -> () = { _ in }) where LayoutType : ListableUI.ListLayout<\/Declaration>Creates a new layout description for the provided layout type, with the provided optional layout configuration.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 47, - "key.doc.name" : "init(layoutType:appearance:)", - "key.doc.type" : "Function", - "key.doclength" : 116, - "key.docoffset" : 1250, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><LayoutType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(layoutType<\/decl.var.parameter.argument_label>: LayoutType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> LayoutType<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> LayoutType<\/ref.generic_type_param> : ListLayout<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 331, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "init(layoutType:appearance:)", - "key.namelength" : 156, - "key.nameoffset" : 1377, - "key.offset" : 1377, - "key.parsed_declaration" : "public init(\n layoutType : LayoutType.Type,\n appearance configure : (inout LayoutType.LayoutAppearance) -> () = { _ in }\n)", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 47, - "key.related_decls" : [ - { - "key.annotated_decl" : "init<LayoutType>(layoutType: LayoutType.Type, appearance: LayoutType.LayoutAppearance) where LayoutType : ListLayout<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "LayoutType : ListLayout<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 10, - "key.offset" : 1393 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "LayoutType<\/decl.generic_type_param.name> : ListLayout<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayout" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 21, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "LayoutType", - "key.namelength" : 10, - "key.nameoffset" : 1382, - "key.offset" : 1382, - "key.parsed_declaration" : "public initvar appearance: LayoutType<\/Type>.LayoutAppearance<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> appearance<\/decl.name>: LayoutType<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 1548, - "key.offset" : 1544, - "key.parsed_declaration" : "var appearance = LayoutType.LayoutAppearance.default", - "key.parsed_scope.end" : 51, - "key.parsed_scope.start" : 51, - "key.reusingastcontext" : false, - "key.typename" : "LayoutType.LayoutAppearance", - "key.typeusr" : "$s16LayoutAppearanceQzD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzXEtcAA04ListC0RzlufcAEL_AGvp" - } - ], - "key.typename" : " (LayoutDescription.Type) -> (LayoutType.Type, (inout LayoutType.LayoutAppearance) -> ()) -> LayoutDescription", - "key.typeusr" : "$s10layoutType10appearance10ListableUI17LayoutDescriptionVxm_y0F10AppearanceQzzXEtcAC04ListF0RzluD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzXEtcAA04ListC0Rzlufc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<LayoutType>(layoutType: LayoutType<\/Type>.Type, appearance: LayoutType<\/Type>.LayoutAppearance<\/Type>) where LayoutType<\/Type> : ListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1819 - } - ], - "key.bodylength" : 136, - "key.bodyoffset" : 1949, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new layout description for the provided layout type, with the provided appearance.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new layout description for the provided layout type, with the provided appearance.", - "key.doc.declaration" : "public init(layoutType: LayoutType.Type, appearance: LayoutType.LayoutAppearance) where LayoutType : ListableUI.ListLayout", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "init(layoutType:appearance:)<\/Name>s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_0C10AppearanceQztcAA04ListC0Rzlufc<\/USR>public init<LayoutType>(layoutType: LayoutType.Type, appearance: LayoutType.LayoutAppearance) where LayoutType : ListableUI.ListLayout<\/Declaration>Creates a new layout description for the provided layout type, with the provided appearance.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 58, - "key.doc.name" : "init(layoutType:appearance:)", - "key.doc.type" : "Function", - "key.doclength" : 97, - "key.docoffset" : 1718, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><LayoutType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(layoutType<\/decl.var.parameter.argument_label>: LayoutType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: LayoutType<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> LayoutType<\/ref.generic_type_param> : ListLayout<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 260, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "init(layoutType:appearance:)", - "key.namelength" : 121, - "key.nameoffset" : 1826, - "key.offset" : 1826, - "key.parsed_declaration" : "public init(\n layoutType : LayoutType.Type,\n appearance : LayoutType.LayoutAppearance\n)", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 58, - "key.related_decls" : [ - { - "key.annotated_decl" : "init<LayoutType>(layoutType: LayoutType.Type, appearance: (inout LayoutType.LayoutAppearance) -> () = { _ in }) where LayoutType : ListLayout<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "LayoutType : ListLayout<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 10, - "key.offset" : 1842 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "LayoutType<\/decl.generic_type_param.name> : ListLayout<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayout" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 21, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "LayoutType", - "key.namelength" : 10, - "key.nameoffset" : 1831, - "key.offset" : 1831, - "key.parsed_declaration" : "public init (LayoutDescription.Type) -> (LayoutType.Type, LayoutType.LayoutAppearance) -> LayoutDescription", - "key.typeusr" : "$s10layoutType10appearance10ListableUI17LayoutDescriptionVxm_0F10AppearanceQztcAC04ListF0RzluD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_0C10AppearanceQztcAA04ListC0Rzlufc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layoutAppearanceProperties: ListLayoutAppearanceProperties<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2317 - } - ], - "key.bodylength" : 56, - "key.bodyoffset" : 2389, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the standard layout properties, which apply to any kind of list layout.\n\nCalling this method is relatively inexpensive – it does not create an instance\nof the backing list layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Returns the standard layout properties, which apply to any kind of list layout.\n\nCalling this method is relatively inexpensive – it does not create an instance\nof the backing list layout.", - "key.doc.declaration" : "public var layoutAppearanceProperties: ListLayoutAppearanceProperties { get }", - "key.doc.discussion" : [ - { - "Para" : "Calling this method is relatively inexpensive – it does not create an instance of the backing list layout." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "layoutAppearanceProperties<\/Name>s:10ListableUI17LayoutDescriptionV26layoutAppearancePropertiesAA04ListcfG0Vvp<\/USR>public var layoutAppearanceProperties: ListLayoutAppearanceProperties { get }<\/Declaration>Returns the standard layout properties, which apply to any kind of list layout.<\/Para><\/Abstract>Calling this method is relatively inexpensive – it does not create an instance of the backing list layout.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 72, - "key.doc.name" : "layoutAppearanceProperties", - "key.doc.type" : "Other", - "key.doclength" : 217, - "key.docoffset" : 2096, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layoutAppearanceProperties<\/decl.name>: ListLayoutAppearanceProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 122, - "key.line" : 72, - "key.modulename" : "ListableUI", - "key.name" : "layoutAppearanceProperties", - "key.namelength" : 26, - "key.nameoffset" : 2328, - "key.offset" : 2324, - "key.parsed_declaration" : "public var layoutAppearanceProperties : ListLayoutAppearanceProperties", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 72, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutAppearanceProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutAppearancePropertiesVD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV26layoutAppearancePropertiesAA04ListcfG0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func == (lhs: `Self`, rhs: `Self`) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2456 - } - ], - "key.bodylength" : 62, - "key.bodyoffset" : 2512, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns a Boolean value indicating whether two values are equal.\n\nEquality is the inverse of inequality. For any values `a` and `b`,\n`a == b` implies that `a != b` is `false`.\n\n- Parameters:\n - lhs: A value to compare.\n - rhs: Another value to compare.", - "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "Equality is the inverse of inequality. For any values `a` and `b`, `a == b` implies that `a != b` is `false`." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "==(_:_:)<\/Name>s:SQ2eeoiySbx_xtFZ<\/USR>static func == (lhs: Self, rhs: Self) -> Bool<\/Declaration>Returns a Boolean value indicating whether two values are equal.<\/Para><\/Abstract>lhs<\/Name>in<\/Direction>A value to compare.<\/Para><\/Discussion><\/Parameter>rhs<\/Name>in<\/Direction>Another value to compare.<\/Para><\/Discussion><\/Parameter><\/Parameters>Equality is the inverse of inequality. For any values a<\/codeVoice> and b<\/codeVoice>, a == b<\/codeVoice> implies that a != b<\/codeVoice> is false<\/codeVoice>.<\/Para>This documentation comment was inherited from Equatable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "==(_:_:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A value to compare." - } - ], - "name" : "lhs" - }, - { - "discussion" : [ - { - "Para" : "Another value to compare." - } - ], - "name" : "rhs" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 112, - "key.line" : 76, - "key.modulename" : "ListableUI", - "key.name" : "==(_:_:)", - "key.namelength" : 27, - "key.nameoffset" : 2475, - "key.offset" : 2463, - "key.overrides" : [ - { - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.parsed_declaration" : "public static func == (lhs : Self, rhs : Self) -> Bool", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 76, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDescription.Type) -> (LayoutDescription, LayoutDescription) -> Bool", - "key.typeusr" : "$sySb10ListableUI17LayoutDescriptionV_ACtcD", - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.typename" : "LayoutDescription.Type", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV" - }, - { - "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>", - "key.bodylength" : 364, - "key.bodyoffset" : 2602, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 387, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListLayout", - "key.namelength" : 10, - "key.nameoffset" : 2590, - "key.offset" : 2580, - "key.parsed_declaration" : "extension ListLayout", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 82, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func describe(appearance: (inout Self<\/Type>.LayoutAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2716 - } - ], - "key.bodylength" : 119, - "key.bodyoffset" : 2845, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new layout description for a list layout, with the provided optional layout configuration.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates a new layout description for a list layout, with the provided optional layout configuration.", - "key.doc.declaration" : "public static func describe(appearance: (inout Self.LayoutAppearance) -> () = { _ in }) -> LayoutDescription", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "describe(appearance:)<\/Name>s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzXE_tFZ<\/USR>public static func describe(appearance: (inout Self.LayoutAppearance) -> () = { _ in }) -> LayoutDescription<\/Declaration>Creates a new layout description for a list layout, with the provided optional layout configuration.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 85, - "key.doc.name" : "describe(appearance:)", - "key.doc.type" : "Function", - "key.doclength" : 105, - "key.docoffset" : 2607, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> describe<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 242, - "key.line" : 85, - "key.modulename" : "ListableUI", - "key.name" : "describe(appearance:)", - "key.namelength" : 83, - "key.nameoffset" : 2735, - "key.offset" : 2723, - "key.parsed_declaration" : "public static func describe(\n appearance : (inout Self.LayoutAppearance) -> () = { _ in }\n) -> LayoutDescription", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 85, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> ((inout Self.LayoutAppearance) -> ()) -> LayoutDescription", - "key.typeusr" : "$s10appearance10ListableUI17LayoutDescriptionVy0D10AppearanceQzzXE_tcD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzXE_tFZ" - } - ], - "key.typename" : "ListLayout.Type", - "key.typeusr" : "$s10ListableUI10ListLayout_pmD", - "key.usr" : "s:10ListableUI10ListLayoutP" - }, - { - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 2219, - "key.bodyoffset" : 2999, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `LayoutDescription`, well, describes the type of and properties of a layout to apply to a list view.\n\nYou use a `LayoutDescription` by passing a closure to its initializer, which you use to\ncustomize the `layoutAppearance` of the provided list type.\n\nFor example, to use a standard list layout, and customize the layout, your code would look something like this:\n\n```\nlistView.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```\n\nOr a layout for your own custom layout type would look somewhat like this:\n\n```\nMyCustomLayout.describe {\n $0.myLayoutOption = true\n $0.anotherLayoutOption = .polkadots\n}\n```\n\nNote\n----\nUnder the hood, Listable is smart, and will only re-create the underlying\nlayout object when needed (when the layout type or layout appearance changes).\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct LayoutDescription : Equatable", - "key.doc.discussion" : [ - { - "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type." - }, - { - "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Or a layout for your own custom layout type would look somewhat like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription : Equatable<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "LayoutDescription", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2249, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDescription", - "key.namelength" : 17, - "key.nameoffset" : 2980, - "key.offset" : 2970, - "key.parsed_declaration" : "extension LayoutDescription", - "key.parsed_scope.end" : 165, - "key.parsed_scope.start" : 97, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Configuration<LayoutType> : AnyLayoutDescriptionConfiguration<\/Type>, Equatable<\/Type> where LayoutType<\/Type> : ListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3004 - } - ], - "key.bodylength" : 2109, - "key.bodyoffset" : 3107, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 33, - "key.offset" : 3057 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 3092 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Configuration<\/decl.name><LayoutType<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyLayoutDescriptionConfiguration<\/ref.protocol>, Equatable<\/ref.protocol> where<\/syntaxtype.keyword> LayoutType<\/ref.generic_type_param> : ListLayout<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyLayoutDescriptionConfiguration" - }, - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2206, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "Configuration", - "key.namelength" : 13, - "key.nameoffset" : 3018, - "key.offset" : 3011, - "key.parsed_declaration" : "public struct Configuration : AnyLayoutDescriptionConfiguration, Equatable", - "key.parsed_scope.end" : 164, - "key.parsed_scope.start" : 99, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "LayoutType : ListLayout<\/Type><\/Declaration>", - "key.column" : 33, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 10, - "key.offset" : 3043 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "LayoutType<\/decl.generic_type_param.name> : ListLayout<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayout" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 21, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "LayoutType", - "key.namelength" : 10, - "key.nameoffset" : 3032, - "key.offset" : 3032, - "key.parsed_declaration" : "public struct Configurationpublic let layoutType: LayoutType<\/Type>.Type<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3116 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> layoutType<\/decl.name>: LayoutType<\/ref.generic_type_param>.Type<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "layoutType", - "key.namelength" : 10, - "key.nameoffset" : 3127, - "key.offset" : 3123, - "key.parsed_declaration" : "public let layoutType : LayoutType.Type", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 101, - "key.reusingastcontext" : false, - "key.typename" : "LayoutType.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV10layoutTypexmvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let layoutAppearance: LayoutType<\/Type>.LayoutAppearance<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3173 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: LayoutType<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 103, - "key.modulename" : "ListableUI", - "key.name" : "layoutAppearance", - "key.namelength" : 16, - "key.nameoffset" : 3184, - "key.offset" : 3180, - "key.parsed_declaration" : "public let layoutAppearance : LayoutType.LayoutAppearance", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 103, - "key.reusingastcontext" : false, - "key.typename" : "LayoutType.LayoutAppearance", - "key.typeusr" : "$s16LayoutAppearanceQzD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV16layoutAppearance0cG0Qzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func == (lhs: `Self`, rhs: `Self`) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3248 - } - ], - "key.bodylength" : 102, - "key.bodyoffset" : 3302, - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns a Boolean value indicating whether two values are equal.\n\nEquality is the inverse of inequality. For any values `a` and `b`,\n`a == b` implies that `a != b` is `false`.\n\n- Parameters:\n - lhs: A value to compare.\n - rhs: Another value to compare.", - "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "Equality is the inverse of inequality. For any values `a` and `b`, `a == b` implies that `a != b` is `false`." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "==(_:_:)<\/Name>s:SQ2eeoiySbx_xtFZ<\/USR>static func == (lhs: Self, rhs: Self) -> Bool<\/Declaration>Returns a Boolean value indicating whether two values are equal.<\/Para><\/Abstract>lhs<\/Name>in<\/Direction>A value to compare.<\/Para><\/Discussion><\/Parameter>rhs<\/Name>in<\/Direction>Another value to compare.<\/Para><\/Discussion><\/Parameter><\/Parameters>Equality is the inverse of inequality. For any values a<\/codeVoice> and b<\/codeVoice>, a == b<\/codeVoice> implies that a != b<\/codeVoice> is false<\/codeVoice>.<\/Para>This documentation comment was inherited from Equatable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "==(_:_:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A value to compare." - } - ], - "name" : "lhs" - }, - { - "discussion" : [ - { - "Para" : "Another value to compare." - } - ], - "name" : "rhs" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 150, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "==(_:_:)", - "key.namelength" : 25, - "key.nameoffset" : 3267, - "key.offset" : 3255, - "key.overrides" : [ - { - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.parsed_declaration" : "public static func == (lhs: Self, rhs: Self) -> Bool", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (LayoutDescription.Configuration.Type) -> (LayoutDescription.Configuration, LayoutDescription.Configuration) -> Bool", - "key.typeusr" : "$sySb10ListableUI17LayoutDescriptionV13ConfigurationVy_xG_AFtcD", - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 39, - "key.name" : "MARK: AnyLayoutDescriptionConfiguration", - "key.offset" : 3426 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func createEmptyLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>) -> AnyListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3483 - } - ], - "key.bodylength" : 208, - "key.bodyoffset" : 3618, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createEmptyLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 337, - "key.line" : 111, - "key.modulename" : "ListableUI", - "key.name" : "createEmptyLayout(appearance:behavior:)", - "key.namelength" : 96, - "key.nameoffset" : 3495, - "key.offset" : 3490, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF" - } - ], - "key.parsed_declaration" : "public func createEmptyLayout(\n appearance : Appearance,\n behavior: Behavior\n) -> AnyListLayout", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 111, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior) -> any AnyListLayout", - "key.typeusr" : "$s10appearance8behavior10ListableUI13AnyListLayout_pAC10AppearanceV_AC8BehaviorVtcD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV011createEmptyC010appearance8behaviorAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func createPopulatedLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: (ListLayoutDefaults<\/Type>) -> ListLayoutContent<\/Type>) -> AnyListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3845 - } - ], - "key.bodylength" : 234, - "key.bodyoffset" : 4049, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createPopulatedLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: (ListLayoutDefaults<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 432, - "key.line" : 124, - "key.modulename" : "ListableUI", - "key.name" : "createPopulatedLayout(appearance:behavior:content:)", - "key.namelength" : 165, - "key.nameoffset" : 3857, - "key.offset" : 3852, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior7contentAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA0lD7ContentCAA0lD8DefaultsVXEtF" - } - ], - "key.parsed_declaration" : "public func createPopulatedLayout(\n appearance : Appearance,\n behavior: Behavior,\n content : (ListLayoutDefaults) -> ListLayoutContent\n) -> AnyListLayout", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 124, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior, (ListLayoutDefaults) -> ListLayoutContent) -> any AnyListLayout", - "key.typeusr" : "$s10appearance8behavior7content10ListableUI13AnyListLayout_pAD10AppearanceV_AD8BehaviorVAD0gH7ContentCAD0gH8DefaultsVXEtcD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV015createPopulatedC010appearance8behavior7contentAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVAA0lC7ContentCAA0lC8DefaultsVXEtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func layoutAppearanceProperties() -> ListLayoutAppearanceProperties<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4302 - } - ], - "key.bodylength" : 50, - "key.bodyoffset" : 4378, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutAppearanceProperties<\/decl.name>() -> ListLayoutAppearanceProperties<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 120, - "key.line" : 138, - "key.modulename" : "ListableUI", - "key.name" : "layoutAppearanceProperties()", - "key.namelength" : 28, - "key.nameoffset" : 4314, - "key.offset" : 4309, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP26layoutAppearancePropertiesAA04ListdhI0VyF" - } - ], - "key.parsed_declaration" : "public func layoutAppearanceProperties() -> ListLayoutAppearanceProperties", - "key.parsed_scope.end" : 140, - "key.parsed_scope.start" : 138, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (LayoutDescription.Configuration) -> () -> ListLayoutAppearanceProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutAppearancePropertiesVycD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV26layoutAppearancePropertiesAA04ListcgH0VyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func shouldRebuild(layout anyLayout: AnyListLayout<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4447 - } - ], - "key.bodylength" : 166, - "key.bodyoffset" : 4524, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> shouldRebuild<\/decl.name>(layout<\/decl.var.parameter.argument_label> anyLayout<\/decl.var.parameter.name>: AnyListLayout<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 237, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "shouldRebuild(layout:)", - "key.namelength" : 47, - "key.nameoffset" : 4459, - "key.offset" : 4454, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF" - } - ], - "key.parsed_declaration" : "public func shouldRebuild(layout anyLayout : AnyListLayout) -> Bool", - "key.parsed_scope.end" : 148, - "key.parsed_scope.start" : 142, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let layout: LayoutType<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: LayoutType<\/ref.generic_type_param><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 37, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "layout", - "key.namelength" : 6, - "key.nameoffset" : 4541, - "key.offset" : 4537, - "key.parsed_declaration" : "let layout = anyLayout as! LayoutType", - "key.parsed_scope.end" : 144, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.typename" : "LayoutType", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tFAGL_xvp" - }, - { - "key.annotated_decl" : "let old: LayoutType<\/Type>.LayoutAppearance<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: LayoutType<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 33, - "key.line" : 145, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 4591, - "key.offset" : 4587, - "key.parsed_declaration" : "let old = layout.layoutAppearance", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 145, - "key.reusingastcontext" : false, - "key.typename" : "LayoutType.LayoutAppearance", - "key.typeusr" : "$s16LayoutAppearanceQzD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF3oldL_0C10AppearanceQzvp" - } - ], - "key.typename" : " (LayoutDescription.Configuration) -> (any AnyListLayout) -> Bool", - "key.typeusr" : "$s6layoutSb10ListableUI13AnyListLayout_p_tcD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func isSameLayoutType(as anyOther: AnyLayoutDescriptionConfiguration<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4709 - } - ], - "key.bodylength" : 266, - "key.bodyoffset" : 4804, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isSameLayoutType<\/decl.name>(as<\/decl.var.parameter.argument_label> anyOther<\/decl.var.parameter.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 355, - "key.line" : 150, - "key.modulename" : "ListableUI", - "key.name" : "isSameLayoutType(as:)", - "key.namelength" : 65, - "key.nameoffset" : 4721, - "key.offset" : 4716, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF" - } - ], - "key.parsed_declaration" : "public func isSameLayoutType(as anyOther : AnyLayoutDescriptionConfiguration) -> Bool", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 150, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 62, - "key.name" : "TODO: We don't need both of these checks, just the second one.", - "key.offset" : 4820 - } - ], - "key.typename" : " (LayoutDescription.Configuration) -> (any AnyLayoutDescriptionConfiguration) -> Bool", - "key.typeusr" : "$s2asSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV06isSameC4Type2asSbAA03AnycdE0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func isEqual(to other: AnyLayoutDescriptionConfiguration<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5089 - } - ], - "key.bodylength" : 46, - "key.bodyoffset" : 5164, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isEqual<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 115, - "key.line" : 161, - "key.modulename" : "ListableUI", - "key.name" : "isEqual(to:)", - "key.namelength" : 53, - "key.nameoffset" : 5101, - "key.offset" : 5096, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP7isEqual2toSbAaB_p_tF" - } - ], - "key.parsed_declaration" : "public func isEqual(to other : AnyLayoutDescriptionConfiguration) -> Bool", - "key.parsed_scope.end" : 163, - "key.parsed_scope.start" : 161, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (LayoutDescription.Configuration) -> (any AnyLayoutDescriptionConfiguration) -> Bool", - "key.typeusr" : "$s2toSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV7isEqual2toSbAA03AnycdE0_p_tF" - } - ], - "key.typename" : "LayoutDescription.Configuration.Type", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionV13ConfigurationVy_xGmD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV" - } - ], - "key.typename" : "LayoutDescription.Type", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol AnyLayoutDescriptionConfiguration<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5222 - } - ], - "key.bodylength" : 597, - "key.bodyoffset" : 5273, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyLayoutDescriptionConfiguration<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 642, - "key.line" : 168, - "key.modulename" : "ListableUI", - "key.name" : "AnyLayoutDescriptionConfiguration", - "key.namelength" : 33, - "key.nameoffset" : 5238, - "key.offset" : 5229, - "key.parsed_declaration" : "public protocol AnyLayoutDescriptionConfiguration", - "key.parsed_scope.end" : 188, - "key.parsed_scope.start" : 168, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func createEmptyLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>) -> AnyListLayout<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> createEmptyLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 106, - "key.line" : 170, - "key.modulename" : "ListableUI", - "key.name" : "createEmptyLayout(appearance:behavior:)", - "key.namelength" : 84, - "key.nameoffset" : 5283, - "key.offset" : 5278, - "key.parsed_declaration" : "func createEmptyLayout(\n appearance : Appearance,\n behavior: Behavior\n) -> AnyListLayout", - "key.parsed_scope.end" : 170, - "key.parsed_scope.start" : 170, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Appearance, Behavior) -> any AnyListLayout", - "key.typeusr" : "$s10appearance8behavior10ListableUI13AnyListLayout_pAC10AppearanceV_AC8BehaviorVtcD", - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func createPopulatedLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: (ListLayoutDefaults<\/Type>) -> ListLayoutContent<\/Type>) -> AnyListLayout<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> createPopulatedLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: (ListLayoutDefaults<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 171, - "key.line" : 175, - "key.modulename" : "ListableUI", - "key.name" : "createPopulatedLayout(appearance:behavior:content:)", - "key.namelength" : 149, - "key.nameoffset" : 5399, - "key.offset" : 5394, - "key.parsed_declaration" : "func createPopulatedLayout(\n appearance : Appearance,\n behavior: Behavior,\n content : (ListLayoutDefaults) -> ListLayoutContent\n) -> AnyListLayout", - "key.parsed_scope.end" : 175, - "key.parsed_scope.start" : 175, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (Appearance, Behavior, (ListLayoutDefaults) -> ListLayoutContent) -> any AnyListLayout", - "key.typeusr" : "$s10appearance8behavior7content10ListableUI13AnyListLayout_pAD10AppearanceV_AD8BehaviorVAD0gH7ContentCAD0gH8DefaultsVXEtcD", - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior7contentAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA0lD7ContentCAA0lD8DefaultsVXEtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func layoutAppearanceProperties() -> ListLayoutAppearanceProperties<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAppearanceProperties<\/decl.name>() -> ListLayoutAppearanceProperties<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 67, - "key.line" : 181, - "key.modulename" : "ListableUI", - "key.name" : "layoutAppearanceProperties()", - "key.namelength" : 28, - "key.nameoffset" : 5580, - "key.offset" : 5575, - "key.parsed_declaration" : "func layoutAppearanceProperties() -> ListLayoutAppearanceProperties", - "key.parsed_scope.end" : 181, - "key.parsed_scope.start" : 181, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ListLayoutAppearanceProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutAppearancePropertiesVycD", - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP26layoutAppearancePropertiesAA04ListdhI0VyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func shouldRebuild(layout anyLayout: AnyListLayout<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> shouldRebuild<\/decl.name>(layout<\/decl.var.parameter.argument_label> anyLayout<\/decl.var.parameter.name>: AnyListLayout<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 60, - "key.line" : 183, - "key.modulename" : "ListableUI", - "key.name" : "shouldRebuild(layout:)", - "key.namelength" : 47, - "key.nameoffset" : 5657, - "key.offset" : 5652, - "key.parsed_declaration" : "func shouldRebuild(layout anyLayout : AnyListLayout) -> Bool", - "key.parsed_scope.end" : 183, - "key.parsed_scope.start" : 183, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyListLayout) -> Bool", - "key.typeusr" : "$s6layoutSb10ListableUI13AnyListLayout_p_tcD", - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func isSameLayoutType(as other: AnyLayoutDescriptionConfiguration<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isSameLayoutType<\/decl.name>(as<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 75, - "key.line" : 185, - "key.modulename" : "ListableUI", - "key.name" : "isSameLayoutType(as:)", - "key.namelength" : 62, - "key.nameoffset" : 5723, - "key.offset" : 5718, - "key.parsed_declaration" : "func isSameLayoutType(as other : AnyLayoutDescriptionConfiguration) -> Bool", - "key.parsed_scope.end" : 185, - "key.parsed_scope.start" : 185, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyLayoutDescriptionConfiguration) -> Bool", - "key.typeusr" : "$s2asSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD", - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func isEqual(to other: AnyLayoutDescriptionConfiguration<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEqual<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 66, - "key.line" : 187, - "key.modulename" : "ListableUI", - "key.name" : "isEqual(to:)", - "key.namelength" : 53, - "key.nameoffset" : 5808, - "key.offset" : 5803, - "key.parsed_declaration" : "func isEqual(to other : AnyLayoutDescriptionConfiguration) -> Bool", - "key.parsed_scope.end" : 187, - "key.parsed_scope.start" : 187, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyLayoutDescriptionConfiguration) -> Bool", - "key.typeusr" : "$s2toSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD", - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP7isEqual2toSbAaB_p_tF" - } - ], - "key.typename" : "AnyLayoutDescriptionConfiguration.Type", - "key.typeusr" : "$s10ListableUI33AnyLayoutDescriptionConfiguration_pmD", - "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP" - }, - { - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 381, - "key.bodyoffset" : 5903, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `LayoutDescription`, well, describes the type of and properties of a layout to apply to a list view.\n\nYou use a `LayoutDescription` by passing a closure to its initializer, which you use to\ncustomize the `layoutAppearance` of the provided list type.\n\nFor example, to use a standard list layout, and customize the layout, your code would look something like this:\n\n```\nlistView.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```\n\nOr a layout for your own custom layout type would look somewhat like this:\n\n```\nMyCustomLayout.describe {\n $0.myLayoutOption = true\n $0.anotherLayoutOption = .polkadots\n}\n```\n\nNote\n----\nUnder the hood, Listable is smart, and will only re-create the underlying\nlayout object when needed (when the layout type or layout appearance changes).\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct LayoutDescription : Equatable", - "key.doc.discussion" : [ - { - "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type." - }, - { - "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Or a layout for your own custom layout type would look somewhat like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription : Equatable<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "LayoutDescription", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 411, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDescription", - "key.namelength" : 17, - "key.nameoffset" : 5884, - "key.offset" : 5874, - "key.parsed_declaration" : "extension LayoutDescription", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 191, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var wantsKeyboardInsetAdjustment: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 63, - "key.bodyoffset" : 5954, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> wantsKeyboardInsetAdjustment<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 105, - "key.line" : 193, - "key.modulename" : "ListableUI", - "key.name" : "wantsKeyboardInsetAdjustment", - "key.namelength" : 28, - "key.nameoffset" : 5917, - "key.offset" : 5913, - "key.parsed_declaration" : "var wantsKeyboardInsetAdjustment : Bool", - "key.parsed_scope.end" : 195, - "key.parsed_scope.start" : 193, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV28wantsKeyboardInsetAdjustmentSbvp" - }, - { - "key.annotated_decl" : "func needsCollectionViewInsetUpdate(for other: LayoutDescription<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 178, - "key.bodyoffset" : 6104, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> needsCollectionViewInsetUpdate<\/decl.name>(for<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: LayoutDescription<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 255, - "key.line" : 197, - "key.modulename" : "ListableUI", - "key.name" : "needsCollectionViewInsetUpdate(for:)", - "key.namelength" : 61, - "key.nameoffset" : 6033, - "key.offset" : 6028, - "key.parsed_declaration" : "func needsCollectionViewInsetUpdate(for other : LayoutDescription) -> Bool", - "key.parsed_scope.end" : 203, - "key.parsed_scope.start" : 197, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDescription) -> (LayoutDescription) -> Bool", - "key.typeusr" : "$s3forSb10ListableUI17LayoutDescriptionV_tcD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV30needsCollectionViewInsetUpdate3forSbAC_tF" - } - ], - "key.typename" : "LayoutDescription.Type", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2590, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListContentLayoutAttributes<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 318 - } - ], - "key.bodylength" : 2227, - "key.bodyoffset" : 361, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A struct-based version of many of the properties available on `UICollectionViewLayoutAttributes`,\nallowing configuration of properties for custom layouts, appearance animations, etc.\n", - "key.doc.column" : 15, - "key.doc.comment" : "\nA struct-based version of many of the properties available on `UICollectionViewLayoutAttributes`,\nallowing configuration of properties for custom layouts, appearance animations, etc.", - "key.doc.declaration" : "public struct ListContentLayoutAttributes", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.doc.full_as_xml" : "ListContentLayoutAttributes<\/Name>s:10ListableUI27ListContentLayoutAttributesV<\/USR>public struct ListContentLayoutAttributes<\/Declaration>A struct-based version of many of the properties available on UICollectionViewLayoutAttributes<\/codeVoice>, allowing configuration of properties for custom layouts, appearance animations, etc.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 15, - "key.doc.name" : "ListContentLayoutAttributes", - "key.doc.type" : "Class", - "key.doclength" : 199, - "key.docoffset" : 119, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListContentLayoutAttributes<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2264, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "ListContentLayoutAttributes", - "key.namelength" : 27, - "key.nameoffset" : 332, - "key.offset" : 325, - "key.parsed_declaration" : "public struct ListContentLayoutAttributes", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Sizing & Position", - "key.offset" : 376 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var size: CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 553 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The size of the represented item when it is laid out.\nSetting this property changes the value of the ``frame`` property.", - "key.doc.column" : 16, - "key.doc.comment" : "The size of the represented item when it is laid out.\nSetting this property changes the value of the ``frame`` property.", - "key.doc.declaration" : "public var size: CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.doc.full_as_xml" : "size<\/Name>s:10ListableUI27ListContentLayoutAttributesV4sizeSo6CGSizeVvp<\/USR>public var size: CGSize<\/Declaration>The size of the represented item when it is laid out. Setting this property changes the value of the frame<\/codeVoice> property.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 23, - "key.doc.name" : "size", - "key.doc.type" : "Other", - "key.doclength" : 133, - "key.docoffset" : 416, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 16, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "size", - "key.namelength" : 4, - "key.nameoffset" : 564, - "key.offset" : 560, - "key.parsed_declaration" : "public var size: CGSize", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesV4sizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var center: CGPoint<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 756 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The center of the item when it is laid out, in the coordinate space of the outer list.\nSetting this property changes the value of the ``frame`` property.", - "key.doc.column" : 16, - "key.doc.comment" : "The center of the item when it is laid out, in the coordinate space of the outer list.\nSetting this property changes the value of the ``frame`` property.", - "key.doc.declaration" : "public var center: CGPoint", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.doc.full_as_xml" : "center<\/Name>s:10ListableUI27ListContentLayoutAttributesV6centerSo7CGPointVvp<\/USR>public var center: CGPoint<\/Declaration>The center of the item when it is laid out, in the coordinate space of the outer list. Setting this property changes the value of the frame<\/codeVoice> property.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 27, - "key.doc.name" : "center", - "key.doc.type" : "Other", - "key.doclength" : 166, - "key.docoffset" : 586, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> center<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "center", - "key.namelength" : 6, - "key.nameoffset" : 767, - "key.offset" : 763, - "key.parsed_declaration" : "public var center: CGPoint", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesV6centerSo7CGPointVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var frame: CGRect<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 977 - } - ], - "key.bodylength" : 524, - "key.bodyoffset" : 1003, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The frame of the item when it is laid out, in the coordinate space of the outer list.\nSetting this property changes the value of the ``size`` and ``center`` properties.", - "key.doc.column" : 16, - "key.doc.comment" : "The frame of the item when it is laid out, in the coordinate space of the outer list.\nSetting this property changes the value of the ``size`` and ``center`` properties.", - "key.doc.declaration" : "public var frame: CGRect { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.doc.full_as_xml" : "frame<\/Name>s:10ListableUI27ListContentLayoutAttributesV5frameSo6CGRectVvp<\/USR>public var frame: CGRect { get set }<\/Declaration>The frame of the item when it is laid out, in the coordinate space of the outer list. Setting this property changes the value of the size<\/codeVoice> and center<\/codeVoice> properties.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 31, - "key.doc.name" : "frame", - "key.doc.type" : "Other", - "key.doclength" : 181, - "key.docoffset" : 792, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 544, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "frame", - "key.namelength" : 5, - "key.nameoffset" : 988, - "key.offset" : 984, - "key.parsed_declaration" : "public var frame: CGRect", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesV5frameSo6CGRectVvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 25, - "key.name" : "MARK: Transforms & Layout", - "key.offset" : 1548 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var transform: CGAffineTransform<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1590 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> transform<\/decl.name>: CGAffineTransform<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "transform", - "key.namelength" : 9, - "key.nameoffset" : 1601, - "key.offset" : 1597, - "key.parsed_declaration" : "public var transform: CGAffineTransform", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGAffineTransform", - "key.typeusr" : "$sSo17CGAffineTransformVD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesV9transformSo17CGAffineTransformVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var transform3D: CATransform3D<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1634 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> transform3D<\/decl.name>: CATransform3D<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 56, - "key.modulename" : "ListableUI", - "key.name" : "transform3D", - "key.namelength" : 11, - "key.nameoffset" : 1645, - "key.offset" : 1641, - "key.parsed_declaration" : "public var transform3D: CATransform3D", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 56, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CATransform3D", - "key.typeusr" : "$sSo13CATransform3DVD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesV11transform3DSo13CATransform3DVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var alpha: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1677 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alpha<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "alpha", - "key.namelength" : 5, - "key.nameoffset" : 1688, - "key.offset" : 1684, - "key.parsed_declaration" : "public var alpha: CGFloat", - "key.parsed_scope.end" : 58, - "key.parsed_scope.start" : 58, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesV5alpha14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var zIndex: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1708 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "zIndex", - "key.namelength" : 6, - "key.nameoffset" : 1719, - "key.offset" : 1715, - "key.parsed_declaration" : "public var zIndex: Int", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesV6zIndexSivp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 1750 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ attributes: UICollectionViewLayoutAttributes<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1787 - } - ], - "key.bodylength" : 289, - "key.bodyoffset" : 1853, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> attributes<\/decl.var.parameter.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 349, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 53, - "key.nameoffset" : 1794, - "key.offset" : 1794, - "key.parsed_declaration" : "public init(_ attributes : UICollectionViewLayoutAttributes)", - "key.parsed_scope.end" : 77, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListContentLayoutAttributes.Type) -> (UICollectionViewLayoutAttributes) -> ListContentLayoutAttributes", - "key.typeusr" : "$sy10ListableUI27ListContentLayoutAttributesVSo016UICollectionVieweF0CcD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesVyACSo016UICollectionVieweF0Ccfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Writing Values", - "key.offset" : 2163 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func apply(to attributes: UICollectionViewLayoutAttributes<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2200 - } - ], - "key.bodylength" : 313, - "key.bodyoffset" : 2273, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListContentLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> attributes<\/decl.var.parameter.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 380, - "key.line" : 83, - "key.modulename" : "ListableUI", - "key.name" : "apply(to:)", - "key.namelength" : 55, - "key.nameoffset" : 2212, - "key.offset" : 2207, - "key.parsed_declaration" : "public func apply(to attributes : UICollectionViewLayoutAttributes)", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 83, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListContentLayoutAttributes) -> (UICollectionViewLayoutAttributes) -> ()", - "key.typeusr" : "$s2toySo32UICollectionViewLayoutAttributesC_tcD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesV5apply2toySo016UICollectionVieweF0C_tF" - } - ], - "key.typename" : "ListContentLayoutAttributes.Type", - "key.typeusr" : "$s10ListableUI27ListContentLayoutAttributesVmD", - "key.usr" : "s:10ListableUI27ListContentLayoutAttributesV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListHeaderPosition.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 749, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ListHeaderPosition<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 71 - } - ], - "key.bodylength" : 644, - "key.bodyoffset" : 103, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the list header should be positioned when content is scrolled.", - "key.doc.column" : 13, - "key.doc.comment" : "How the list header should be positioned when content is scrolled.", - "key.doc.declaration" : "public enum ListHeaderPosition", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListHeaderPosition.swift", - "key.doc.full_as_xml" : "ListHeaderPosition<\/Name>s:10ListableUI18ListHeaderPositionO<\/USR>public enum ListHeaderPosition<\/Declaration>How the list header should be positioned when content is scrolled.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 2, - "key.doc.name" : "ListHeaderPosition", - "key.doc.type" : "Other", - "key.doclength" : 71, - "key.docoffset" : 0, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListHeaderPosition.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListHeaderPosition<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 670, - "key.line" : 2, - "key.modulename" : "ListableUI", - "key.name" : "ListHeaderPosition", - "key.namelength" : 18, - "key.nameoffset" : 83, - "key.offset" : 78, - "key.parsed_declaration" : "public enum ListHeaderPosition", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 2, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 170, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case inline<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The header will scroll up and down with the content.", - "key.doc.column" : 10, - "key.doc.comment" : "The header will scroll up and down with the content.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListHeaderPosition.swift", - "key.doc.full_as_xml" : "inline<\/Name>s:10ListableUI18ListHeaderPositionO6inlineyA2CmF<\/USR><\/Declaration>The header will scroll up and down with the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 5, - "key.doc.name" : "inline", - "key.doc.type" : "Other", - "key.doclength" : 57, - "key.docoffset" : 109, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListHeaderPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> inline<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 5, - "key.modulename" : "ListableUI", - "key.name" : "inline", - "key.namelength" : 6, - "key.nameoffset" : 175, - "key.offset" : 175, - "key.parsed_declaration" : "case inline", - "key.parsed_scope.end" : 5, - "key.parsed_scope.start" : 5, - "key.reusingastcontext" : false, - "key.typename" : "(ListHeaderPosition.Type) -> ListHeaderPosition", - "key.typeusr" : "$sy10ListableUI18ListHeaderPositionOACmcD", - "key.usr" : "s:10ListableUI18ListHeaderPositionO6inlineyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 372, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case sticky<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The header will stick to the top of the content when it's scrolled down, and bounce with content when\nit's scrolled up (identical to how sticky section headers behave).", - "key.doc.column" : 10, - "key.doc.comment" : "The header will stick to the top of the content when it's scrolled down, and bounce with content when\nit's scrolled up (identical to how sticky section headers behave).", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListHeaderPosition.swift", - "key.doc.full_as_xml" : "sticky<\/Name>s:10ListableUI18ListHeaderPositionO6stickyyA2CmF<\/USR><\/Declaration>The header will stick to the top of the content when it’s scrolled down, and bounce with content when it’s scrolled up (identical to how sticky section headers behave).<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 9, - "key.doc.name" : "sticky", - "key.doc.type" : "Other", - "key.doclength" : 181, - "key.docoffset" : 187, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListHeaderPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sticky<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 9, - "key.modulename" : "ListableUI", - "key.name" : "sticky", - "key.namelength" : 6, - "key.nameoffset" : 377, - "key.offset" : 377, - "key.parsed_declaration" : "case sticky", - "key.parsed_scope.end" : 9, - "key.parsed_scope.start" : 9, - "key.reusingastcontext" : false, - "key.typename" : "(ListHeaderPosition.Type) -> ListHeaderPosition", - "key.typeusr" : "$sy10ListableUI18ListHeaderPositionOACmcD", - "key.usr" : "s:10ListableUI18ListHeaderPositionO6stickyyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 10, - "key.offset" : 736, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fixed<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The header is always positioned at the top of the visible frame, and does not bounce with the content.\n\nNote: This mode only works if the list has no container header or refresh control. If there is a container\nheader or refresh control, the behavior falls back to `sticky` so the header doesn't overlap with those.", - "key.doc.column" : 10, - "key.doc.comment" : "The header is always positioned at the top of the visible frame, and does not bounce with the content.\n\nNote: This mode only works if the list has no container header or refresh control. If there is a container\nheader or refresh control, the behavior falls back to `sticky` so the header doesn't overlap with those.", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "Note: This mode only works if the list has no container header or refresh control. If there is a container header or refresh control, the behavior falls back to `sticky` so the header doesn’t overlap with those." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListHeaderPosition.swift", - "key.doc.full_as_xml" : "fixed<\/Name>s:10ListableUI18ListHeaderPositionO5fixedyA2CmF<\/USR><\/Declaration>The header is always positioned at the top of the visible frame, and does not bounce with the content.<\/Para><\/Abstract>Note: This mode only works if the list has no container header or refresh control. If there is a container header or refresh control, the behavior falls back to sticky<\/codeVoice> so the header doesn’t overlap with those.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 15, - "key.doc.name" : "fixed", - "key.doc.type" : "Other", - "key.doclength" : 343, - "key.docoffset" : 389, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListHeaderPosition.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" : 15, - "key.modulename" : "ListableUI", - "key.name" : "fixed", - "key.namelength" : 5, - "key.nameoffset" : 741, - "key.offset" : 741, - "key.parsed_declaration" : "case fixed", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "(ListHeaderPosition.Type) -> ListHeaderPosition", - "key.typeusr" : "$sy10ListableUI18ListHeaderPositionOACmcD", - "key.usr" : "s:10ListableUI18ListHeaderPositionO5fixedyA2CmF" - } - ] - } - ], - "key.typename" : "ListHeaderPosition.Type", - "key.typeusr" : "$s10ListableUI18ListHeaderPositionOmD", - "key.usr" : "s:10ListableUI18ListHeaderPositionO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 4116, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "@dynamicMemberLookup public struct ListProperties<\/Declaration>", - "key.bodylength" : 2620, - "key.bodyoffset" : 155, - "key.column" : 36, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `ListProperties` object describes all of the given values needed to configure\nand display a list on screen. It is usually used in declarative APIs which deal in descriptions of views\n(eg, Blueprint, SwiftUI, `ListViewController`) in place of referencing and managing a view directly.\n\nFor example, in `BlueprintUILists`, you create a Listable `List` element like so:\n```\nList { list in\n list.appearance = .myAppearance\n list.layout = .myLayout\n\n list(\"first section\") { section in\n section += MyItem()\n section += MyItem()\n }\n}\n```\nIn this example, the `list` parameter to the trailing closure is a `ListProperties` object.\n\n### Other Uses\nYou may even find using `ListProperties` useful if you do have a reference to the underlying `ListView`\ninstance (eg in your own `UIViewController`).\n\nIn these cases, you can apply `ListProperties` to a `ListView` by calling one of the\navailable `func configure(with:)` methods. Having a separate method which describes and provides\nall the properties to configure your `ListView` allows for a more singular flow of data through your application,\nand eases in testability.", - "key.doc.column" : 36, - "key.doc.declaration" : "@dynamicMemberLookup public struct ListProperties", - "key.doc.discussion" : [ - { - "Para" : "For example, in `BlueprintUILists`, you create a Listable `List` element like so:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "In this example, the `list` parameter to the trailing closure is a `ListProperties` object." - }, - { - "Para" : "You may even find using `ListProperties` useful if you do have a reference to the underlying `ListView` instance (eg in your own `UIViewController`)." - }, - { - "Para" : "In these cases, you can apply `ListProperties` to a `ListView` by calling one of the available `func configure(with:)` methods. Having a separate method which describes and provides all the properties to configure your `ListView` allows for a more singular flow of data through your application, and eases in testability." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "ListProperties<\/Name>s:10ListableUI14ListPropertiesV<\/USR>@dynamicMemberLookup public struct ListProperties<\/Declaration>The ListProperties<\/codeVoice> object describes all of the given values needed to configure and display a list on screen. It is usually used in declarative APIs which deal in descriptions of views (eg, Blueprint, SwiftUI, ListViewController<\/codeVoice>) in place of referencing and managing a view directly.<\/Para><\/Abstract>For example, in BlueprintUILists<\/codeVoice>, you create a Listable List<\/codeVoice> element like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In this example, the list<\/codeVoice> parameter to the trailing closure is a ListProperties<\/codeVoice> object.<\/Para>]]><\/rawHTML>Other Uses]]><\/rawHTML>You may even find using ListProperties<\/codeVoice> useful if you do have a reference to the underlying ListView<\/codeVoice> instance (eg in your own UIViewController<\/codeVoice>).<\/Para>In these cases, you can apply ListProperties<\/codeVoice> to a ListView<\/codeVoice> by calling one of the available func configure(with:)<\/codeVoice> methods. Having a separate method which describes and provides all the properties to configure your ListView<\/codeVoice> allows for a more singular flow of data through your application, and eases in testability.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 39, - "key.doc.name" : "ListProperties", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "@dynamicMemberLookup<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListProperties<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2647, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "ListProperties", - "key.namelength" : 14, - "key.nameoffset" : 139, - "key.offset" : 129, - "key.parsed_declaration" : "extension ListProperties", - "key.parsed_scope.end" : 81, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static let headerFooterMeasurementCache: ReusableViewCache<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> headerFooterMeasurementCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 61, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "headerFooterMeasurementCache", - "key.namelength" : 28, - "key.nameoffset" : 176, - "key.offset" : 165, - "key.parsed_declaration" : "static let headerFooterMeasurementCache = ReusableViewCache()", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.typename" : "ReusableViewCache", - "key.typeusr" : "$s10ListableUI17ReusableViewCacheCD", - "key.usr" : "s:10ListableUI14ListPropertiesV28headerFooterMeasurementCacheAA012ReusableViewH0CvpZ" - }, - { - "key.annotated_decl" : "static let itemMeasurementCache: ReusableViewCache<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> itemMeasurementCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 53, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "itemMeasurementCache", - "key.namelength" : 20, - "key.nameoffset" : 242, - "key.offset" : 231, - "key.parsed_declaration" : "static let itemMeasurementCache = ReusableViewCache()", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "ReusableViewCache", - "key.typeusr" : "$s10ListableUI17ReusableViewCacheCD", - "key.usr" : "s:10ListableUI14ListPropertiesV20itemMeasurementCacheAA012ReusableViewG0CvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal func makeLayout(in fittingSize: CGSize<\/Type>, safeAreaInsets: UIEdgeInsets<\/Type>, itemLimit: Int<\/Type>?) -> (AnyListLayout<\/Type>, ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 596 - } - ], - "key.bodylength" : 1999, - "key.bodyoffset" : 774, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "**Note**: For testing or measuring content sizes only.\n\nUses the properties from the list properties to create a `PresentationState`\ninstance, a `ListLayout` instance, and then lays out the layout within\nthe provided `fittingSize`, returning the laid out layout.", - "key.doc.column" : 19, - "key.doc.comment" : "**Note**: For testing or measuring content sizes only.\n\nUses the properties from the list properties to create a `PresentationState`\ninstance, a `ListLayout` instance, and then lays out the layout within\nthe provided `fittingSize`, returning the laid out layout.", - "key.doc.declaration" : "internal func makeLayout(in fittingSize: CGSize, safeAreaInsets: UIEdgeInsets, itemLimit: Int?) -> (AnyListLayout, ListLayoutLayoutContext)", - "key.doc.discussion" : [ - { - "Para" : "Uses the properties from the list properties to create a `PresentationState` instance, a `ListLayout` instance, and then lays out the layout within the provided `fittingSize`, returning the laid out layout." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.doc.full_as_xml" : "makeLayout(in:safeAreaInsets:itemLimit:)<\/Name>s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF<\/USR>internal func makeLayout(in fittingSize: CGSize, safeAreaInsets: UIEdgeInsets, itemLimit: Int?) -> (AnyListLayout, ListLayoutLayoutContext)<\/Declaration>Note<\/bold>: For testing or measuring content sizes only.<\/Para><\/Abstract>Uses the properties from the list properties to create a PresentationState<\/codeVoice> instance, a ListLayout<\/codeVoice> instance, and then lays out the layout within the provided fittingSize<\/codeVoice>, returning the laid out layout.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 22, - "key.doc.name" : "makeLayout(in:safeAreaInsets:itemLimit:)", - "key.doc.type" : "Function", - "key.doclength" : 298, - "key.docoffset" : 294, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> makeLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> fittingSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, safeAreaInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, itemLimit<\/decl.var.parameter.argument_label>: Int<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> (AnyListLayout<\/ref.protocol><\/tuple.element.type><\/tuple.element>, ListLayoutLayoutContext<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2169, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "makeLayout(in:safeAreaInsets:itemLimit:)", - "key.namelength" : 114, - "key.nameoffset" : 610, - "key.offset" : 605, - "key.parsed_declaration" : "internal func makeLayout(\n in fittingSize : CGSize,\n safeAreaInsets : UIEdgeInsets,\n itemLimit : Int?\n) -> (AnyListLayout, ListLayoutLayoutContext)", - "key.parsed_scope.end" : 80, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let presentationState: PresentationState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "1) Create an instance of presentation state and the layout we can use to measure the list.", - "key.doc.column" : 13, - "key.doc.comment" : "1) Create an instance of presentation state and the layout we can use to measure the list.", - "key.doc.declaration" : "let presentationState: ListableUI.PresentationState", - "key.doc.discussion" : [ - { - "List-Number" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.doc.full_as_xml" : "presentationState<\/Name>s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF17presentationStateL_AA012PresentationR0Cvp<\/USR>let presentationState: ListableUI.PresentationState<\/Declaration>Create an instance of presentation state and the layout we can use to measure the list.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 30, - "key.doc.name" : "presentationState", - "key.doc.type" : "Other", - "key.doclength" : 95, - "key.docoffset" : 783, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationState<\/decl.name>: PresentationState<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 562, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "presentationState", - "key.namelength" : 17, - "key.nameoffset" : 899, - "key.offset" : 895, - "key.parsed_declaration" : "let presentationState = PresentationState(\n forMeasuringOrTestsWith: {\n if let limit = itemLimit {\n let zero = IndexPath(item: 0, section: 0)\n return self.content.sliceTo(indexPath: zero, plus: limit).content\n } else {\n return self.content\n }\n }(),\n environment: self.environment,\n itemMeasurementCache: Self.itemMeasurementCache,\n headerFooterMeasurementCache: Self.headerFooterMeasurementCache\n)", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState", - "key.typeusr" : "$s10ListableUI17PresentationStateCD", - "key.usr" : "s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF17presentationStateL_AA012PresentationR0Cvp" - }, - { - "key.annotated_decl" : "let layout: any AnyListLayout<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "2) Create the layout used to measure the content.", - "key.doc.column" : 13, - "key.doc.comment" : "2) Create the layout used to measure the content.", - "key.doc.declaration" : "let layout: any ListableUI.AnyListLayout", - "key.doc.discussion" : [ - { - "List-Number" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF6layoutL_AaH_pvp<\/USR>let layout: any ListableUI.AnyListLayout<\/Declaration>Create the layout used to measure the content.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 46, - "key.doc.name" : "layout", - "key.doc.type" : "Other", - "key.doclength" : 54, - "key.docoffset" : 1475, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: any AnyListLayout<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 389, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "layout", - "key.namelength" : 6, - "key.nameoffset" : 1550, - "key.offset" : 1546, - "key.parsed_declaration" : "let layout = self.layout.configuration.createPopulatedLayout(\n appearance: self.appearance,\n behavior: self.behavior,\n content: { _ in\n presentationState.toListLayoutContent(\n defaults: .init(itemInsertAndRemoveAnimations: .fade),\n environment: self.environment\n )\n }\n)", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.typename" : "any AnyListLayout", - "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", - "key.usr" : "s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF6layoutL_AaH_pvp" - }, - { - "key.annotated_decl" : "let layoutContext: ListLayoutLayoutContext<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "2b) Measure the content.", - "key.doc.column" : 13, - "key.doc.comment" : "2b) Measure the content.", - "key.doc.declaration" : "let layoutContext: ListableUI.ListLayoutLayoutContext", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.doc.full_as_xml" : "layoutContext<\/Name>s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF06layoutN0L_AJvp<\/USR>let layoutContext: ListableUI.ListLayoutLayoutContext<\/Declaration>2b) Measure the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 59, - "key.doc.name" : "layoutContext", - "key.doc.type" : "Other", - "key.doclength" : 29, - "key.docoffset" : 1953, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layoutContext<\/decl.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 619, - "key.line" : 59, - "key.modulename" : "ListableUI", - "key.name" : "layoutContext", - "key.namelength" : 13, - "key.nameoffset" : 2003, - "key.offset" : 1999, - "key.parsed_declaration" : "let layoutContext = ListLayoutLayoutContext(\n viewBounds: CGRect(origin: .zero, size: fittingSize),\n safeAreaInsets: safeAreaInsets,\n contentInset: .zero,\n contentOffset: .zero,\n adjustedContentInset: .listAdjustedContentInset(\n with: layout.scrollViewProperties.contentInsetAdjustmentBehavior,\n direction: layout.direction,\n safeAreaInsets: safeAreaInsets,\n contentInset: .zero\n ),\n hasRefreshControl: self.refreshControl != nil,\n environment: self.environment\n)", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 59, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutLayoutContext", - "key.typeusr" : "$s10ListableUI010ListLayoutD7ContextVD", - "key.usr" : "s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF06layoutN0L_AJvp" - } - ], - "key.typename" : "(ListProperties) -> (CGSize, UIEdgeInsets, Int?) -> (any AnyListLayout, ListLayoutLayoutContext)", - "key.typeusr" : "$s2in14safeAreaInsets9itemLimit10ListableUI13AnyListLayout_p_AD0jkK7ContextVtSo6CGSizeV_So06UIEdgeD0VSiSgtcD", - "key.usr" : "s:10ListableUI14ListPropertiesV10makeLayout2in14safeAreaInsets9itemLimitAA03AnycF0_p_AA0cfF7ContextVtSo6CGSizeV_So06UIEdgeJ0VSiSgtF" - } - ], - "key.typename" : "ListProperties.Type", - "key.typeusr" : "$s10ListableUI14ListPropertiesVmD", - "key.usr" : "s:10ListableUI14ListPropertiesV" - }, - { - "key.annotated_decl" : "@_nonSendable(_assumed) struct UIEdgeInsets : @unchecked Sendable<\/Type><\/Declaration>", - "key.bodylength" : 1312, - "key.bodyoffset" : 2802, - "key.column" : 92, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", - "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> UIEdgeInsets<\/decl.name> : @unchecked Sendable<\/ref.protocol><\/decl.struct>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1337, - "key.line" : 23, - "key.modulename" : "UIKit.UIGeometry", - "key.name" : "UIEdgeInsets", - "key.namelength" : 12, - "key.nameoffset" : 2788, - "key.offset" : 2778, - "key.parsed_declaration" : "extension UIEdgeInsets", - "key.parsed_scope.end" : 120, - "key.parsed_scope.start" : 83, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static func listAdjustedContentInset(with contentInsetAdjustmentBehaviour: ContentInsetAdjustmentBehavior<\/Type>, direction: LayoutDirection<\/Type>, safeAreaInsets: UIEdgeInsets<\/Type>, contentInset: UIEdgeInsets<\/Type>) -> UIEdgeInsets<\/Type><\/Declaration>", - "key.bodylength" : 839, - "key.bodyoffset" : 3273, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Because `ListProperties.makeLayout(...)` does not deal with an actual\n`UIScrollView`, we need to calculate `adjustedContentInset` ourselves,\nto pass to `layout.performLayout(...)`.", - "key.doc.column" : 17, - "key.doc.comment" : "Because `ListProperties.makeLayout(...)` does not deal with an actual\n`UIScrollView`, we need to calculate `adjustedContentInset` ourselves,\nto pass to `layout.performLayout(...)`.", - "key.doc.declaration" : "static func listAdjustedContentInset(with contentInsetAdjustmentBehaviour: ContentInsetAdjustmentBehavior, direction: LayoutDirection, safeAreaInsets: UIEdgeInsets, contentInset: UIEdgeInsets) -> UIEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.doc.full_as_xml" : "listAdjustedContentInset(with:direction:safeAreaInsets:contentInset:)<\/Name>s:So12UIEdgeInsetsV10ListableUIE24listAdjustedContentInset4with9direction08safeAreaB007contentH0AbC0gH18AdjustmentBehaviorO_AC15LayoutDirectionOA2BtFZ<\/USR>static func listAdjustedContentInset(with contentInsetAdjustmentBehaviour: ContentInsetAdjustmentBehavior, direction: LayoutDirection, safeAreaInsets: UIEdgeInsets, contentInset: UIEdgeInsets) -> UIEdgeInsets<\/Declaration>Because ListProperties.makeLayout(...)<\/codeVoice> does not deal with an actual UIScrollView<\/codeVoice>, we need to calculate adjustedContentInset<\/codeVoice> ourselves, to pass to layout.performLayout(...)<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 88, - "key.doc.name" : "listAdjustedContentInset(with:direction:safeAreaInsets:contentInset:)", - "key.doc.type" : "Function", - "key.doclength" : 201, - "key.docoffset" : 2812, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout+Layout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> listAdjustedContentInset<\/decl.name>(with<\/decl.var.parameter.argument_label> contentInsetAdjustmentBehaviour<\/decl.var.parameter.name>: ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, safeAreaInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentInset<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIEdgeInsets<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 1096, - "key.line" : 88, - "key.modulename" : "ListableUI", - "key.name" : "listAdjustedContentInset(with:direction:safeAreaInsets:contentInset:)", - "key.namelength" : 222, - "key.nameoffset" : 3029, - "key.offset" : 3017, - "key.parsed_declaration" : "static func listAdjustedContentInset(\n with contentInsetAdjustmentBehaviour : ContentInsetAdjustmentBehavior,\n direction : LayoutDirection,\n safeAreaInsets : UIEdgeInsets,\n contentInset : UIEdgeInsets\n) -> UIEdgeInsets", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 88, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UIEdgeInsets.Type) -> (ContentInsetAdjustmentBehavior, LayoutDirection, UIEdgeInsets, UIEdgeInsets) -> UIEdgeInsets", - "key.typeusr" : "$s4with9direction14safeAreaInsets12contentInsetSo06UIEdgeE0V10ListableUI07ContentG18AdjustmentBehaviorO_AG15LayoutDirectionOA2FtcD", - "key.usr" : "s:So12UIEdgeInsetsV10ListableUIE24listAdjustedContentInset4with9direction08safeAreaB007contentH0AbC0gH18AdjustmentBehaviorO_AC15LayoutDirectionOA2BtFZ" - } - ], - "key.typename" : "UIEdgeInsets.Type", - "key.typeusr" : "$sSo12UIEdgeInsetsVmD", - "key.usr" : "c:@S@UIEdgeInsets" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 21768, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 120 - } - ], - "key.bodylength" : 513, - "key.bodyoffset" : 164, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 13, - "key.offset" : 149 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyListLayout" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 551, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListLayout", - "key.namelength" : 10, - "key.nameoffset" : 136, - "key.offset" : 127, - "key.parsed_declaration" : "public protocol ListLayout : AnyListLayout", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype LayoutAppearance : ListLayoutAppearance<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> LayoutAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 52, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "LayoutAppearance", - "key.namelength" : 16, - "key.nameoffset" : 184, - "key.offset" : 169, - "key.parsed_declaration" : "associatedtype LayoutAppearance:ListLayoutAppearance", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.LayoutAppearance.Type", - "key.typeusr" : "$s16LayoutAppearanceQzmD", - "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype ItemLayout : ItemLayoutsValue<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> ItemLayout<\/decl.name> : ItemLayoutsValue<\/ref.protocol><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 42, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayout", - "key.namelength" : 10, - "key.nameoffset" : 246, - "key.offset" : 231, - "key.parsed_declaration" : "associatedtype ItemLayout:ItemLayoutsValue", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.ItemLayout.Type", - "key.typeusr" : "$s10ItemLayoutQzmD", - "key.usr" : "s:10ListableUI10ListLayoutP04ItemD0Qa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype HeaderFooterLayout : HeaderFooterLayoutsValue<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> HeaderFooterLayout<\/decl.name> : HeaderFooterLayoutsValue<\/ref.protocol><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 58, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayout", - "key.namelength" : 18, - "key.nameoffset" : 293, - "key.offset" : 278, - "key.parsed_declaration" : "associatedtype HeaderFooterLayout:HeaderFooterLayoutsValue", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.HeaderFooterLayout.Type", - "key.typeusr" : "$s18HeaderFooterLayoutQzmD", - "key.usr" : "s:10ListableUI10ListLayoutP012HeaderFooterD0Qa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype SectionLayout : SectionLayoutsValue<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> SectionLayout<\/decl.name> : SectionLayoutsValue<\/ref.protocol><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 48, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayout", - "key.namelength" : 13, - "key.nameoffset" : 356, - "key.offset" : 341, - "key.parsed_declaration" : "associatedtype SectionLayout:SectionLayoutsValue", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.SectionLayout.Type", - "key.typeusr" : "$s13SectionLayoutQzmD", - "key.usr" : "s:10ListableUI10ListLayoutP07SectionD0Qa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 441, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 48, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "defaults", - "key.namelength" : 8, - "key.nameoffset" : 410, - "key.offset" : 399, - "key.parsed_declaration" : "static var defaults : ListLayoutDefaults", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutDefaults", - "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD", - "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var layoutAppearance: LayoutAppearance<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 498, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: LayoutAppearance<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "layoutAppearance", - "key.namelength" : 16, - "key.nameoffset" : 461, - "key.offset" : 457, - "key.parsed_declaration" : "var layoutAppearance : LayoutAppearance", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.LayoutAppearance", - "key.typeusr" : "$s16LayoutAppearanceQzD", - "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "init(layoutAppearance: LayoutAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>", - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 154, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "init(layoutAppearance:appearance:behavior:content:)", - "key.namelength" : 154, - "key.nameoffset" : 522, - "key.offset" : 522, - "key.parsed_declaration" : "init(\n layoutAppearance : LayoutAppearance,\n appearance : Appearance,\n behavior : Behavior,\n content : ListLayoutContent\n)", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> (Self.LayoutAppearance, Appearance, Behavior, ListLayoutContent) -> Self", - "key.typeusr" : "$s16layoutAppearance10appearance8behavior7contentx06LayoutB0Qz_10ListableUI0B0VAG8BehaviorVAG04ListF7ContentCtcD", - "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc" - } - ], - "key.typename" : "ListLayout.Type", - "key.typeusr" : "$s10ListableUI10ListLayout_pmD", - "key.usr" : "s:10ListableUI10ListLayoutP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListLayoutLayoutContext<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 681 - } - ], - "key.bodylength" : 1440, - "key.bodyoffset" : 720, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutLayoutContext<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1473, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutLayoutContext", - "key.namelength" : 23, - "key.nameoffset" : 695, - "key.offset" : 688, - "key.parsed_declaration" : "public struct ListLayoutLayoutContext", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var viewBounds: CGRect<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 730 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> viewBounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "viewBounds", - "key.namelength" : 10, - "key.nameoffset" : 741, - "key.offset" : 737, - "key.parsed_declaration" : "public var viewBounds : CGRect", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV10viewBoundsSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var safeAreaInsets: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 765 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "safeAreaInsets", - "key.namelength" : 14, - "key.nameoffset" : 776, - "key.offset" : 772, - "key.parsed_declaration" : "public var safeAreaInsets : UIEdgeInsets", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV14safeAreaInsetsSo06UIEdgeH0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var contentInset: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 810 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentInset<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "contentInset", - "key.namelength" : 12, - "key.nameoffset" : 821, - "key.offset" : 817, - "key.parsed_declaration" : "public var contentInset : UIEdgeInsets", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV12contentInsetSo12UIEdgeInsetsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var contentOffset: CGPoint<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 853 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentOffset<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 38, - "key.modulename" : "ListableUI", - "key.name" : "contentOffset", - "key.namelength" : 13, - "key.nameoffset" : 864, - "key.offset" : 860, - "key.parsed_declaration" : "public var contentOffset : CGPoint", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 38, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV13contentOffsetSo7CGPointVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var adjustedContentInset: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 892 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> adjustedContentInset<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "adjustedContentInset", - "key.namelength" : 20, - "key.nameoffset" : 903, - "key.offset" : 899, - "key.parsed_declaration" : "public var adjustedContentInset : UIEdgeInsets", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV20adjustedContentInsetSo12UIEdgeInsetsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var hasRefreshControl: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 948 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasRefreshControl<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "hasRefreshControl", - "key.namelength" : 17, - "key.nameoffset" : 959, - "key.offset" : 955, - "key.parsed_declaration" : "public var hasRefreshControl : Bool", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 41, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV17hasRefreshControlSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var environment: ListEnvironment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 993 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "environment", - "key.namelength" : 11, - "key.nameoffset" : 1004, - "key.offset" : 1000, - "key.parsed_declaration" : "public var environment : ListEnvironment", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV11environmentAA0C11EnvironmentVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(viewBounds: CGRect<\/Type>, safeAreaInsets: UIEdgeInsets<\/Type>, contentInset: UIEdgeInsets<\/Type>, contentOffset: CGPoint<\/Type>, adjustedContentInset: UIEdgeInsets<\/Type>, hasRefreshControl: Bool<\/Type>, environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1043 - } - ], - "key.bodylength" : 318, - "key.bodyoffset" : 1318, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(viewBounds<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, safeAreaInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentInset<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentOffset<\/decl.var.parameter.argument_label>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, adjustedContentInset<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, hasRefreshControl<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 587, - "key.line" : 45, - "key.modulename" : "ListableUI", - "key.name" : "init(viewBounds:safeAreaInsets:contentInset:contentOffset:adjustedContentInset:hasRefreshControl:environment:)", - "key.namelength" : 266, - "key.nameoffset" : 1050, - "key.offset" : 1050, - "key.parsed_declaration" : "public init(\n viewBounds : CGRect,\n safeAreaInsets : UIEdgeInsets,\n contentInset : UIEdgeInsets,\n contentOffset : CGPoint,\n adjustedContentInset : UIEdgeInsets,\n hasRefreshControl : Bool,\n environment : ListEnvironment\n)", - "key.parsed_scope.end" : 61, - "key.parsed_scope.start" : 45, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(collectionView:environment:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutLayoutContext.Type) -> (CGRect, UIEdgeInsets, UIEdgeInsets, CGPoint, UIEdgeInsets, Bool, ListEnvironment) -> ListLayoutLayoutContext", - "key.typeusr" : "$s10viewBounds14safeAreaInsets12contentInset0F6Offset015adjustedContentG017hasRefreshControl11environment10ListableUI010ListLayoutR7ContextVSo6CGRectV_So06UIEdgeE0VANSo7CGPointVANSbAH0Q11EnvironmentVtcD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV10viewBounds14safeAreaInsets12contentInset0K6Offset015adjustedContentL017hasRefreshControl11environmentACSo6CGRectV_So06UIEdgeJ0VANSo7CGPointVANSbAA0C11EnvironmentVtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(collectionView: UICollectionView<\/Type>, environment: ListEnvironment<\/Type>)<\/Declaration>", - "key.bodylength" : 417, - "key.bodyoffset" : 1741, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(collectionView<\/decl.var.parameter.argument_label>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 512, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "init(collectionView:environment:)", - "key.namelength" : 92, - "key.nameoffset" : 1647, - "key.offset" : 1647, - "key.parsed_declaration" : "init(\n collectionView : UICollectionView,\n environment : ListEnvironment\n)", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 63, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(viewBounds:safeAreaInsets:contentInset:contentOffset:adjustedContentInset:hasRefreshControl:environment:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutLayoutContext.Type) -> (UICollectionView, ListEnvironment) -> ListLayoutLayoutContext", - "key.typeusr" : "$s14collectionView11environment10ListableUI010ListLayoutG7ContextVSo012UICollectionB0C_AC0F11EnvironmentVtcD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV14collectionView11environmentACSo012UICollectionG0C_AA0C11EnvironmentVtcfc" - } - ], - "key.typename" : "ListLayoutLayoutContext.Type", - "key.typeusr" : "$s10ListableUI010ListLayoutD7ContextVmD", - "key.usr" : "s:10ListableUI010ListLayoutD7ContextV" - }, - { - "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>", - "key.bodylength" : 1059, - "key.bodyoffset" : 2186, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1082, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListLayout", - "key.namelength" : 10, - "key.nameoffset" : 2174, - "key.offset" : 2164, - "key.parsed_declaration" : "extension ListLayout", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 79, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var direction: LayoutDirection<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2191 - } - ], - "key.bodylength" : 45, - "key.bodyoffset" : 2230, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 78, - "key.line" : 81, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 2202, - "key.offset" : 2198, - "key.parsed_declaration" : "public var direction: LayoutDirection", - "key.parsed_scope.end" : 83, - "key.parsed_scope.start" : 81, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "direction<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE9directionAA0D9DirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var bounds: ListContentBounds<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2286 - } - ], - "key.bodylength" : 42, - "key.bodyoffset" : 2326, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 76, - "key.line" : 85, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 2297, - "key.offset" : 2293, - "key.parsed_declaration" : "public var bounds : ListContentBounds?", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 85, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "bounds<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListContentBounds?", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVSgD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE6boundsAA0C13ContentBoundsVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var listHeaderPosition: ListHeaderPosition<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2375 - } - ], - "key.bodylength" : 54, - "key.bodyoffset" : 2426, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listHeaderPosition<\/decl.name>: ListHeaderPosition<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 99, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "listHeaderPosition", - "key.namelength" : 18, - "key.nameoffset" : 2386, - "key.offset" : 2382, - "key.parsed_declaration" : "public var listHeaderPosition: ListHeaderPosition", - "key.parsed_scope.end" : 91, - "key.parsed_scope.start" : 89, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "listHeaderPosition<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListHeaderPosition", - "key.typeusr" : "$s10ListableUI18ListHeaderPositionOD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE18listHeaderPositionAA0cfG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var stickySectionHeaders: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2491 - } - ], - "key.bodylength" : 56, - "key.bodyoffset" : 2530, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 89, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "stickySectionHeaders", - "key.namelength" : 20, - "key.nameoffset" : 2502, - "key.offset" : 2498, - "key.parsed_declaration" : "public var stickySectionHeaders: Bool", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 93, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "stickySectionHeaders<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE20stickySectionHeadersSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var pagingBehavior: ListPagingBehavior<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2597 - } - ], - "key.bodylength" : 50, - "key.bodyoffset" : 2644, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pagingBehavior<\/decl.name>: ListPagingBehavior<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 91, - "key.line" : 97, - "key.modulename" : "ListableUI", - "key.name" : "pagingBehavior", - "key.namelength" : 14, - "key.nameoffset" : 2608, - "key.offset" : 2604, - "key.parsed_declaration" : "public var pagingBehavior: ListPagingBehavior", - "key.parsed_scope.end" : 99, - "key.parsed_scope.start" : 97, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "pagingBehavior<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListPagingBehavior", - "key.typeusr" : "$s10ListableUI18ListPagingBehaviorOD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE14pagingBehaviorAA0c6PagingF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2705 - } - ], - "key.bodylength" : 56, - "key.bodyoffset" : 2770, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 115, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewProperties", - "key.namelength" : 20, - "key.nameoffset" : 2716, - "key.offset" : 2712, - "key.parsed_declaration" : "public var scrollViewProperties: ListLayoutScrollViewProperties", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 101, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "scrollViewProperties<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutScrollViewProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE20scrollViewPropertiesAA0cd6ScrollfG0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func resolvedBounds(in context: ListLayoutLayoutContext<\/Type>) -> ListContentBounds<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2837 - } - ], - "key.bodylength" : 319, - "key.bodyoffset" : 2924, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> resolvedBounds<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListContentBounds<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 400, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "resolvedBounds(in:)", - "key.namelength" : 52, - "key.nameoffset" : 2849, - "key.offset" : 2844, - "key.parsed_declaration" : "public func resolvedBounds(in context : ListLayoutLayoutContext) -> ListContentBounds", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 105, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let boundsContext: ListContentBounds<\/Type>.Context<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> boundsContext<\/decl.name>: ListContentBounds<\/ref.struct>.Context<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 188, - "key.line" : 107, - "key.modulename" : "ListableUI", - "key.name" : "boundsContext", - "key.namelength" : 13, - "key.nameoffset" : 2946, - "key.offset" : 2942, - "key.parsed_declaration" : "let boundsContext = ListContentBounds.Context(\n viewSize: context.viewBounds.size,\n safeAreaInsets: context.safeAreaInsets,\n direction: direction\n)", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 107, - "key.reusingastcontext" : false, - "key.typename" : "ListContentBounds.Context", - "key.typeusr" : "$s10ListableUI17ListContentBoundsV7ContextVD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE14resolvedBounds2inAA0c7ContentF0VAA0cdD7ContextV_tF06boundsI0L_AG0I0Vvp" - } - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ListContentBounds", - "key.typeusr" : "$s2in10ListableUI17ListContentBoundsVAB0d6LayoutG7ContextV_tcD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE14resolvedBounds2inAA0c7ContentF0VAA0cdD7ContextV_tF" - } - ], - "key.typename" : "ListLayout.Type", - "key.typeusr" : "$s10ListableUI10ListLayout_pmD", - "key.usr" : "s:10ListableUI10ListLayoutP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3249 - } - ], - "key.bodylength" : 2231, - "key.bodyoffset" : 3292, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 3281 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 2268, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "AnyListLayout", - "key.namelength" : 13, - "key.nameoffset" : 3265, - "key.offset" : 3256, - "key.parsed_declaration" : "public protocol AnyListLayout : AnyObject", - "key.parsed_scope.end" : 186, - "key.parsed_scope.start" : 118, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Public Properties", - "key.offset" : 3307 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var appearance: Appearance<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3376, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 124, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 3351, - "key.offset" : 3347, - "key.parsed_declaration" : "var appearance : Appearance", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 124, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Appearance", - "key.typeusr" : "$s10ListableUI10AppearanceVD", - "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var behavior: Behavior<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3412, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 125, - "key.modulename" : "ListableUI", - "key.name" : "behavior", - "key.namelength" : 8, - "key.nameoffset" : 3391, - "key.offset" : 3387, - "key.parsed_declaration" : "var behavior : Behavior", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 125, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Behavior", - "key.typeusr" : "$s10ListableUI8BehaviorVD", - "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var content: ListLayoutContent<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3461, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 127, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 3432, - "key.offset" : 3428, - "key.parsed_declaration" : "var content : ListLayoutContent", - "key.parsed_scope.end" : 127, - "key.parsed_scope.start" : 127, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent", - "key.typeusr" : "$s10ListableUI17ListLayoutContentCD", - "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var direction: LayoutDirection<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3510, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 129, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 3481, - "key.offset" : 3477, - "key.parsed_declaration" : "var direction : LayoutDirection", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 129, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI13AnyListLayoutP9directionAA0E9DirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var bounds: ListContentBounds<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3559, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 131, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 3530, - "key.offset" : 3526, - "key.parsed_declaration" : "var bounds : ListContentBounds?", - "key.parsed_scope.end" : 131, - "key.parsed_scope.start" : 131, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListContentBounds?", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVSgD", - "key.usr" : "s:10ListableUI13AnyListLayoutP6boundsAA0D13ContentBoundsVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var listHeaderPosition: ListHeaderPosition<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3616, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> listHeaderPosition<\/decl.name>: ListHeaderPosition<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 133, - "key.modulename" : "ListableUI", - "key.name" : "listHeaderPosition", - "key.namelength" : 18, - "key.nameoffset" : 3575, - "key.offset" : 3571, - "key.parsed_declaration" : "var listHeaderPosition : ListHeaderPosition", - "key.parsed_scope.end" : 133, - "key.parsed_scope.start" : 133, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListHeaderPosition", - "key.typeusr" : "$s10ListableUI18ListHeaderPositionOD", - "key.usr" : "s:10ListableUI13AnyListLayoutP18listHeaderPositionAA0dgH0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var stickySectionHeaders: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3661, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 135, - "key.modulename" : "ListableUI", - "key.name" : "stickySectionHeaders", - "key.namelength" : 20, - "key.nameoffset" : 3632, - "key.offset" : 3628, - "key.parsed_declaration" : "var stickySectionHeaders : Bool", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 135, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI13AnyListLayoutP20stickySectionHeadersSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var pagingBehavior: ListPagingBehavior<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3718, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pagingBehavior<\/decl.name>: ListPagingBehavior<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 137, - "key.modulename" : "ListableUI", - "key.name" : "pagingBehavior", - "key.namelength" : 14, - "key.nameoffset" : 3681, - "key.offset" : 3677, - "key.parsed_declaration" : "var pagingBehavior : ListPagingBehavior", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 137, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListPagingBehavior", - "key.typeusr" : "$s10ListableUI18ListPagingBehaviorOD", - "key.usr" : "s:10ListableUI13AnyListLayoutP14pagingBehaviorAA0d6PagingG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3793, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 65, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewProperties", - "key.namelength" : 20, - "key.nameoffset" : 3738, - "key.offset" : 3734, - "key.parsed_declaration" : "var scrollViewProperties : ListLayoutScrollViewProperties", - "key.parsed_scope.end" : 139, - "key.parsed_scope.start" : 139, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutScrollViewProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD", - "key.usr" : "s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Performing Layouts", - "key.offset" : 3819 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func updateLayout(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 55, - "key.line" : 145, - "key.modulename" : "ListableUI", - "key.name" : "updateLayout(in:)", - "key.namelength" : 50, - "key.nameoffset" : 3865, - "key.offset" : 3860, - "key.parsed_declaration" : "func updateLayout(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 145, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inyAA0deE7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func layout(delegate: CollectionViewLayoutDelegate<\/Type>?, in context: ListLayoutLayoutContext<\/Type>) -> ListLayoutResult<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layout<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutResult<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 133, - "key.line" : 147, - "key.modulename" : "ListableUI", - "key.name" : "layout(delegate:in:)", - "key.namelength" : 108, - "key.nameoffset" : 3930, - "key.offset" : 3925, - "key.parsed_declaration" : "func layout(\n delegate : CollectionViewLayoutDelegate?,\n in context : ListLayoutLayoutContext\n) -> ListLayoutResult", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 147, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ListLayoutResult", - "key.typeusr" : "$s8delegate2in10ListableUI16ListLayoutResultVAC014CollectionViewF8Delegate_pSg_AC0efF7ContextVtcD", - "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func setZIndexes()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setZIndexes<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 18, - "key.line" : 152, - "key.modulename" : "ListableUI", - "key.name" : "setZIndexes()", - "key.namelength" : 13, - "key.nameoffset" : 4073, - "key.offset" : 4068, - "key.parsed_declaration" : "func setZIndexes()", - "key.parsed_scope.end" : 152, - "key.parsed_scope.start" : 152, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI13AnyListLayoutP11setZIndexesyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func positionStickyListHeaderIfNeeded(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> positionStickyListHeaderIfNeeded<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 75, - "key.line" : 154, - "key.modulename" : "ListableUI", - "key.name" : "positionStickyListHeaderIfNeeded(in:)", - "key.namelength" : 70, - "key.nameoffset" : 4101, - "key.offset" : 4096, - "key.parsed_declaration" : "func positionStickyListHeaderIfNeeded(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 154, - "key.parsed_scope.start" : 154, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI13AnyListLayoutP014positionStickyD14HeaderIfNeeded2inyAA0deE7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func positionStickySectionHeadersIfNeeded(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> positionStickySectionHeadersIfNeeded<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 79, - "key.line" : 155, - "key.modulename" : "ListableUI", - "key.name" : "positionStickySectionHeadersIfNeeded(in:)", - "key.namelength" : 74, - "key.nameoffset" : 4181, - "key.offset" : 4176, - "key.parsed_declaration" : "func positionStickySectionHeadersIfNeeded(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 155, - "key.parsed_scope.start" : 155, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI13AnyListLayoutP36positionStickySectionHeadersIfNeeded2inyAA0deE7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func updateOverscrollFooterPosition(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateOverscrollFooterPosition<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 73, - "key.line" : 157, - "key.modulename" : "ListableUI", - "key.name" : "updateOverscrollFooterPosition(in:)", - "key.namelength" : 68, - "key.nameoffset" : 4270, - "key.offset" : 4265, - "key.parsed_declaration" : "func updateOverscrollFooterPosition(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 157, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "updateOverscrollFooterPosition(in: ListLayoutLayoutContext)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI13AnyListLayoutP30updateOverscrollFooterPosition2inyAA0deE7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func adjustPositionsForLayoutUnderflow(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> adjustPositionsForLayoutUnderflow<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 76, - "key.line" : 159, - "key.modulename" : "ListableUI", - "key.name" : "adjustPositionsForLayoutUnderflow(in:)", - "key.namelength" : 71, - "key.nameoffset" : 4353, - "key.offset" : 4348, - "key.parsed_declaration" : "func adjustPositionsForLayoutUnderflow(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 159, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "adjustPositionsForLayoutUnderflow(in: ListLayoutLayoutContext)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI13AnyListLayoutP018adjustPositionsForE9Underflow2inyAA0deE7ContextV_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 28, - "key.name" : "MARK: Configuring Reordering", - "key.offset" : 4444 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func adjust(layoutAttributesForReorderingItem attributes: inout ListContentLayoutAttributes<\/Type>, originalAttributes: ListContentLayoutAttributes<\/Type>, at indexPath: IndexPath<\/Type>, withTargetPosition position: CGPoint<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> adjust<\/decl.name>(layoutAttributesForReorderingItem<\/decl.var.parameter.argument_label> attributes<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListContentLayoutAttributes<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, originalAttributes<\/decl.var.parameter.argument_label>: ListContentLayoutAttributes<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withTargetPosition<\/decl.var.parameter.argument_label> position<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 244, - "key.line" : 165, - "key.modulename" : "ListableUI", - "key.name" : "adjust(layoutAttributesForReorderingItem:originalAttributes:at:withTargetPosition:)", - "key.namelength" : 239, - "key.nameoffset" : 4494, - "key.offset" : 4489, - "key.parsed_declaration" : "func adjust(\n layoutAttributesForReorderingItem attributes : inout ListContentLayoutAttributes,\n originalAttributes : ListContentLayoutAttributes,\n at indexPath: IndexPath,\n withTargetPosition position: CGPoint\n)", - "key.parsed_scope.end" : 165, - "key.parsed_scope.start" : 165, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (inout ListContentLayoutAttributes, ListContentLayoutAttributes, IndexPath, CGPoint) -> ()", - "key.typeusr" : "$s33layoutAttributesForReorderingItem08originalB02at18withTargetPositiony10ListableUI017ListContentLayoutB0Vz_AG10Foundation9IndexPathVSo7CGPointVtcD", - "key.usr" : "s:10ListableUI13AnyListLayoutP6adjust33layoutAttributesForReorderingItem08originalH02at18withTargetPositionyAA0d7ContenteH0Vz_AJ10Foundation9IndexPathVSo7CGPointVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func targetIndexPath(forInteractivelyMovingItem previousIndexPath: IndexPath<\/Type>, withPosition position: CGPoint<\/Type>) -> IndexPath<\/Type>?<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the target index path for an item being interactively moved.\n\nCustom layouts can override this to provide layout-aware drop target\ndetermination. The default implementation returns `nil`, which causes\n`CollectionViewLayout` to fall back to UICollectionView's default behavior.\n\n- Parameters:\n - previousIndexPath: The current index path of the item being moved.\n - position: The current position of the item in the collection view's coordinate space.\n- Returns: The target index path if the layout can determine it, or `nil` to use default behavior.", - "key.doc.column" : 10, - "key.doc.comment" : "Returns the target index path for an item being interactively moved.\n\nCustom layouts can override this to provide layout-aware drop target\ndetermination. The default implementation returns `nil`, which causes\n`CollectionViewLayout` to fall back to UICollectionView's default behavior.\n\n- Parameters:\n - previousIndexPath: The current index path of the item being moved.\n - position: The current position of the item in the collection view's coordinate space.\n- Returns: The target index path if the layout can determine it, or `nil` to use default behavior.", - "key.doc.declaration" : "func targetIndexPath(forInteractivelyMovingItem previousIndexPath: IndexPath, withPosition position: CGPoint) -> IndexPath?", - "key.doc.discussion" : [ - { - "Para" : "Custom layouts can override this to provide layout-aware drop target determination. The default implementation returns `nil`, which causes `CollectionViewLayout` to fall back to UICollectionView’s default behavior." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.doc.full_as_xml" : "targetIndexPath(forInteractivelyMovingItem:withPosition:)<\/Name>s:10ListableUI13AnyListLayoutP15targetIndexPath26forInteractivelyMovingItem12withPosition10Foundation0gH0VSgAI_So7CGPointVtF<\/USR>func targetIndexPath(forInteractivelyMovingItem previousIndexPath: IndexPath, withPosition position: CGPoint) -> IndexPath?<\/Declaration>Returns the target index path for an item being interactively moved.<\/Para><\/Abstract>previousIndexPath<\/Name>in<\/Direction>The current index path of the item being moved.<\/Para><\/Discussion><\/Parameter>position<\/Name>in<\/Direction>The current position of the item in the collection view’s coordinate space.<\/Para><\/Discussion><\/Parameter><\/Parameters>The target index path if the layout can determine it, or nil<\/codeVoice> to use default behavior.<\/Para><\/ResultDiscussion>Custom layouts can override this to provide layout-aware drop target determination. The default implementation returns nil<\/codeVoice>, which causes CollectionViewLayout<\/codeVoice> to fall back to UICollectionView’s default behavior.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 182, - "key.doc.name" : "targetIndexPath(forInteractivelyMovingItem:withPosition:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The current index path of the item being moved." - } - ], - "name" : "previousIndexPath" - }, - { - "discussion" : [ - { - "Para" : "The current position of the item in the collection view’s coordinate space." - } - ], - "name" : "position" - } - ], - "key.doc.result_discussion" : [ - { - "Para" : "The target index path if the layout can determine it, or `nil` to use default behavior." - } - ], - "key.doc.type" : "Function", - "key.doclength" : 634, - "key.docoffset" : 4739, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> targetIndexPath<\/decl.name>(forInteractivelyMovingItem<\/decl.var.parameter.argument_label> previousIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withPosition<\/decl.var.parameter.argument_label> position<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 145, - "key.line" : 182, - "key.modulename" : "ListableUI", - "key.name" : "targetIndexPath(forInteractivelyMovingItem:withPosition:)", - "key.namelength" : 126, - "key.nameoffset" : 5382, - "key.offset" : 5377, - "key.parsed_declaration" : "func targetIndexPath(\n forInteractivelyMovingItem previousIndexPath: IndexPath,\n withPosition position: CGPoint\n) -> IndexPath?", - "key.parsed_scope.end" : 182, - "key.parsed_scope.start" : 182, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (IndexPath, CGPoint) -> IndexPath?", - "key.typeusr" : "$s26forInteractivelyMovingItem12withPosition10Foundation9IndexPathVSgAE_So7CGPointVtcD", - "key.usr" : "s:10ListableUI13AnyListLayoutP15targetIndexPath26forInteractivelyMovingItem12withPosition10Foundation0gH0VSgAI_So7CGPointVtF" - } - ], - "key.typename" : "AnyListLayout.Type", - "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD", - "key.usr" : "s:10ListableUI13AnyListLayoutP" - }, - { - "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>", - "key.bodylength" : 558, - "key.bodyoffset" : 5552, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 584, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "AnyListLayout", - "key.namelength" : 13, - "key.nameoffset" : 5537, - "key.offset" : 5527, - "key.parsed_declaration" : "extension AnyListLayout", - "key.parsed_scope.end" : 211, - "key.parsed_scope.start" : 189, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func performLayout(with delegate: CollectionViewLayoutDelegate<\/Type>?, in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.bodylength" : 424, - "key.bodyoffset" : 5684, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> performLayout<\/decl.name>(with<\/decl.var.parameter.argument_label> delegate<\/decl.var.parameter.name>: CollectionViewLayoutDelegate<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 552, - "key.line" : 191, - "key.modulename" : "ListableUI", - "key.name" : "performLayout(with:in:)", - "key.namelength" : 120, - "key.nameoffset" : 5562, - "key.offset" : 5557, - "key.parsed_declaration" : "func performLayout(\n with delegate : CollectionViewLayoutDelegate?,\n in context : ListLayoutLayoutContext\n)", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 191, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let result: ListLayoutResult<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> result<\/decl.name>: ListLayoutResult<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 91, - "key.line" : 195, - "key.modulename" : "ListableUI", - "key.name" : "result", - "key.namelength" : 6, - "key.nameoffset" : 5697, - "key.offset" : 5693, - "key.parsed_declaration" : "let result = self.layout(\n delegate: delegate,\n in: context\n)", - "key.parsed_scope.end" : 195, - "key.parsed_scope.start" : 195, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutResult", - "key.typeusr" : "$s10ListableUI16ListLayoutResultVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE07performE04with2inyAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF6resultL_AA0dE6ResultVvp" - } - ], - "key.typename" : " (Self) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s4with2iny10ListableUI28CollectionViewLayoutDelegate_pSg_AC04ListgG7ContextVtcD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE07performE04with2inyAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" - } - ], - "key.typename" : "AnyListLayout.Type", - "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD", - "key.usr" : "s:10ListableUI13AnyListLayoutP" - }, - { - "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>", - "key.bodylength" : 5980, - "key.bodyoffset" : 6136, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 6003, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListLayout", - "key.namelength" : 10, - "key.nameoffset" : 6124, - "key.offset" : 6114, - "key.parsed_declaration" : "extension ListLayout", - "key.parsed_scope.end" : 388, - "key.parsed_scope.start" : 214, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func visibleContentFrame(in context: ListLayoutLayoutContext<\/Type>) -> CGRect<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6141 - } - ], - "key.bodylength" : 271, - "key.bodyoffset" : 6226, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> visibleContentFrame<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 350, - "key.line" : 216, - "key.modulename" : "ListableUI", - "key.name" : "visibleContentFrame(in:)", - "key.namelength" : 57, - "key.nameoffset" : 6153, - "key.offset" : 6148, - "key.parsed_declaration" : "public func visibleContentFrame(in context : ListLayoutLayoutContext) -> CGRect", - "key.parsed_scope.end" : 224, - "key.parsed_scope.start" : 216, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "visibleContentFrame(for:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> CGRect", - "key.typeusr" : "$s2inSo6CGRectV10ListableUI010ListLayoutF7ContextV_tcD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE19visibleContentFrame2inSo6CGRectVAA0cdD7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func positionStickyListHeaderIfNeeded(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6504 - } - ], - "key.bodylength" : 1470, - "key.bodyoffset" : 6592, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> positionStickyListHeaderIfNeeded<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1552, - "key.line" : 226, - "key.modulename" : "ListableUI", - "key.name" : "positionStickyListHeaderIfNeeded(in:)", - "key.namelength" : 70, - "key.nameoffset" : 6516, - "key.offset" : 6511, - "key.parsed_declaration" : "public func positionStickyListHeaderIfNeeded(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 266, - "key.parsed_scope.start" : 226, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "positionStickyListHeaderIfNeeded(in: ListLayoutLayoutContext)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let visibleContentFrame: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleContentFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 63, - "key.line" : 230, - "key.modulename" : "ListableUI", - "key.name" : "visibleContentFrame", - "key.namelength" : 19, - "key.nameoffset" : 6671, - "key.offset" : 6667, - "key.parsed_declaration" : "let visibleContentFrame = self.visibleContentFrame(in: context)", - "key.parsed_scope.end" : 230, - "key.parsed_scope.start" : 230, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE014positionStickyC14HeaderIfNeeded2inyAA0cdD7ContextV_tF19visibleContentFrameL_So6CGRectVvp" - }, - { - "key.annotated_decl" : "let bounds: ListContentBounds<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 232, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 6752, - "key.offset" : 6748, - "key.parsed_declaration" : "let bounds = self.resolvedBounds(in: context)", - "key.parsed_scope.end" : 232, - "key.parsed_scope.start" : 232, - "key.reusingastcontext" : false, - "key.typename" : "ListContentBounds", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE014positionStickyC14HeaderIfNeeded2inyAA0cdD7ContextV_tF6boundsL_AA0C13ContentBoundsVvp" - }, - { - "key.annotated_decl" : "let topPadding: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> topPadding<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 234, - "key.modulename" : "ListableUI", - "key.name" : "topPadding", - "key.namelength" : 10, - "key.nameoffset" : 6815, - "key.offset" : 6811, - "key.parsed_declaration" : "let topPadding = direction.top(with: bounds.padding)", - "key.parsed_scope.end" : 234, - "key.parsed_scope.start" : 234, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE014positionStickyC14HeaderIfNeeded2inyAA0cdD7ContextV_tF10topPaddingL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let header: ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> header<\/decl.name>: ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 32, - "key.line" : 236, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.namelength" : 6, - "key.nameoffset" : 6877, - "key.offset" : 6873, - "key.parsed_declaration" : "let header = self.content.header", - "key.parsed_scope.end" : 236, - "key.parsed_scope.start" : 236, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE014positionStickyC14HeaderIfNeeded2inyAA0cdD7ContextV_tF6headerL_AA0cD7ContentC21SupplementaryItemInfoCvp" - }, - { - "key.annotated_decl" : "let headerOrigin: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> headerOrigin<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 68, - "key.line" : 238, - "key.modulename" : "ListableUI", - "key.name" : "headerOrigin", - "key.namelength" : 12, - "key.nameoffset" : 6919, - "key.offset" : 6915, - "key.parsed_declaration" : "let headerOrigin = self.direction.y(for: header.defaultFrame.origin)", - "key.parsed_scope.end" : 238, - "key.parsed_scope.start" : 238, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE014positionStickyC14HeaderIfNeeded2inyAA0cdD7ContextV_tF12headerOriginL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let visibleContentOrigin: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleContentOrigin<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 76, - "key.line" : 239, - "key.modulename" : "ListableUI", - "key.name" : "visibleContentOrigin", - "key.namelength" : 20, - "key.nameoffset" : 6996, - "key.offset" : 6992, - "key.parsed_declaration" : "let visibleContentOrigin = self.direction.y(for: visibleContentFrame.origin)", - "key.parsed_scope.end" : 239, - "key.parsed_scope.start" : 239, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE014positionStickyC14HeaderIfNeeded2inyAA0cdD7ContextV_tF20visibleContentOriginL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let shouldBeFixed: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `.fixed` position only works if:\n- There is no `containerHeader` or `refreshControl` (those behave \"inline\" so fixing it would overlap).\n- If there's no top padding (because this would adjust the fixed header position).\n", - "key.doc.column" : 13, - "key.doc.comment" : "The `.fixed` position only works if:\n- There is no `containerHeader` or `refreshControl` (those behave \"inline\" so fixing it would overlap).\n- If there's no top padding (because this would adjust the fixed header position).", - "key.doc.declaration" : "let shouldBeFixed: Bool", - "key.doc.discussion" : [ - { - "List-Bullet" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.doc.full_as_xml" : "shouldBeFixed<\/Name>s:10ListableUI10ListLayoutPAAE014positionStickyC14HeaderIfNeeded2inyAA0cdD7ContextV_tF13shouldBeFixedL_Sbvp<\/USR>let shouldBeFixed: Bool<\/Declaration>The .fixed<\/codeVoice> position only works if:<\/Para><\/Abstract>There is no containerHeader<\/codeVoice> or refreshControl<\/codeVoice> (those behave “inline” so fixing it would overlap).<\/Para><\/Item>If there’s no top padding (because this would adjust the fixed header position).<\/Para><\/Item><\/List-Bullet><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 245, - "key.doc.name" : "shouldBeFixed", - "key.doc.type" : "Other", - "key.doclength" : 264, - "key.docoffset" : 7078, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> shouldBeFixed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 183, - "key.line" : 245, - "key.modulename" : "ListableUI", - "key.name" : "shouldBeFixed", - "key.namelength" : 13, - "key.nameoffset" : 7354, - "key.offset" : 7350, - "key.parsed_declaration" : "let shouldBeFixed = listHeaderPosition == .fixed\n && !content.containerHeader.isPopulated\n && context.hasRefreshControl == false\n && topPadding == 0.0", - "key.parsed_scope.end" : 245, - "key.parsed_scope.start" : 245, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE014positionStickyC14HeaderIfNeeded2inyAA0cdD7ContextV_tF13shouldBeFixedL_Sbvp" - } - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE014positionStickyC14HeaderIfNeeded2inyAA0cdD7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func positionStickySectionHeadersIfNeeded(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8073 - } - ], - "key.bodylength" : 2227, - "key.bodyoffset" : 8165, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> positionStickySectionHeadersIfNeeded<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2313, - "key.line" : 268, - "key.modulename" : "ListableUI", - "key.name" : "positionStickySectionHeadersIfNeeded(in:)", - "key.namelength" : 74, - "key.nameoffset" : 8085, - "key.offset" : 8080, - "key.parsed_declaration" : "public func positionStickySectionHeadersIfNeeded(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 326, - "key.parsed_scope.start" : 268, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "positionStickySectionHeadersIfNeeded(in: ListLayoutLayoutContext)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var visibleContentFrame: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> visibleContentFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 63, - "key.line" : 270, - "key.modulename" : "ListableUI", - "key.name" : "visibleContentFrame", - "key.namelength" : 19, - "key.nameoffset" : 8178, - "key.offset" : 8174, - "key.parsed_declaration" : "var visibleContentFrame = self.visibleContentFrame(in: context)", - "key.parsed_scope.end" : 270, - "key.parsed_scope.start" : 270, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE36positionStickySectionHeadersIfNeeded2inyAA0cdD7ContextV_tF19visibleContentFrameL_So6CGRectVvp" - } - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE36positionStickySectionHeadersIfNeeded2inyAA0cdD7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func setZIndexes()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10403 - } - ], - "key.bodylength" : 486, - "key.bodyoffset" : 10434, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setZIndexes<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 511, - "key.line" : 328, - "key.modulename" : "ListableUI", - "key.name" : "setZIndexes()", - "key.namelength" : 13, - "key.nameoffset" : 10415, - "key.offset" : 10410, - "key.parsed_declaration" : "public func setZIndexes()", - "key.parsed_scope.end" : 346, - "key.parsed_scope.start" : 328, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "setZIndexes()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE11setZIndexesyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func adjust(layoutAttributesForReorderingItem attributes: inout ListContentLayoutAttributes<\/Type>, originalAttributes: ListContentLayoutAttributes<\/Type>, at indexPath: IndexPath<\/Type>, withTargetPosition position: CGPoint<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10931 - } - ], - "key.bodylength" : 56, - "key.bodyoffset" : 11184, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> adjust<\/decl.name>(layoutAttributesForReorderingItem<\/decl.var.parameter.argument_label> attributes<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListContentLayoutAttributes<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, originalAttributes<\/decl.var.parameter.argument_label>: ListContentLayoutAttributes<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withTargetPosition<\/decl.var.parameter.argument_label> position<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 303, - "key.line" : 348, - "key.modulename" : "ListableUI", - "key.name" : "adjust(layoutAttributesForReorderingItem:originalAttributes:at:withTargetPosition:)", - "key.namelength" : 239, - "key.nameoffset" : 10943, - "key.offset" : 10938, - "key.parsed_declaration" : "public func adjust(\n layoutAttributesForReorderingItem attributes : inout ListContentLayoutAttributes,\n originalAttributes : ListContentLayoutAttributes,\n at indexPath: IndexPath,\n withTargetPosition position: CGPoint\n)", - "key.parsed_scope.end" : 355, - "key.parsed_scope.start" : 348, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "adjust(layoutAttributesForReorderingItem: inout ListContentLayoutAttributes, originalAttributes: ListContentLayoutAttributes, at: IndexPath, withTargetPosition: CGPoint)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (inout ListContentLayoutAttributes, ListContentLayoutAttributes, IndexPath, CGPoint) -> ()", - "key.typeusr" : "$s33layoutAttributesForReorderingItem08originalB02at18withTargetPositiony10ListableUI017ListContentLayoutB0Vz_AG10Foundation9IndexPathVSo7CGPointVtcD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE6adjust33layoutAttributesForReorderingItem08originalG02at18withTargetPositionyAA0c7ContentdG0Vz_AJ10Foundation9IndexPathVSo7CGPointVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func targetIndexPath(forInteractivelyMovingItem previousIndexPath: IndexPath<\/Type>, withPosition position: CGPoint<\/Type>) -> IndexPath<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11247 - } - ], - "key.bodylength" : 169, - "key.bodyoffset" : 11401, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the target index path for an item being interactively moved.\n\nCustom layouts can override this to provide layout-aware drop target\ndetermination. The default implementation returns `nil`, which causes\n`CollectionViewLayout` to fall back to UICollectionView's default behavior.\n\n- Parameters:\n - previousIndexPath: The current index path of the item being moved.\n - position: The current position of the item in the collection view's coordinate space.\n- Returns: The target index path if the layout can determine it, or `nil` to use default behavior.", - "key.doc.column" : 10, - "key.doc.declaration" : "func targetIndexPath(forInteractivelyMovingItem previousIndexPath: IndexPath, withPosition position: CGPoint) -> IndexPath?", - "key.doc.discussion" : [ - { - "Para" : "Custom layouts can override this to provide layout-aware drop target determination. The default implementation returns `nil`, which causes `CollectionViewLayout` to fall back to UICollectionView’s default behavior." - }, - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.doc.full_as_xml" : "targetIndexPath(forInteractivelyMovingItem:withPosition:)<\/Name>s:10ListableUI13AnyListLayoutP15targetIndexPath26forInteractivelyMovingItem12withPosition10Foundation0gH0VSgAI_So7CGPointVtF<\/USR>func targetIndexPath(forInteractivelyMovingItem previousIndexPath: IndexPath, withPosition position: CGPoint) -> IndexPath?<\/Declaration>Returns the target index path for an item being interactively moved.<\/Para><\/Abstract>previousIndexPath<\/Name>in<\/Direction>The current index path of the item being moved.<\/Para><\/Discussion><\/Parameter>position<\/Name>in<\/Direction>The current position of the item in the collection view’s coordinate space.<\/Para><\/Discussion><\/Parameter><\/Parameters>The target index path if the layout can determine it, or nil<\/codeVoice> to use default behavior.<\/Para><\/ResultDiscussion>Custom layouts can override this to provide layout-aware drop target determination. The default implementation returns nil<\/codeVoice>, which causes CollectionViewLayout<\/codeVoice> to fall back to UICollectionView’s default behavior.<\/Para>This documentation comment was inherited from AnyListLayout<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 182, - "key.doc.name" : "targetIndexPath(forInteractivelyMovingItem:withPosition:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The current index path of the item being moved." - } - ], - "name" : "previousIndexPath" - }, - { - "discussion" : [ - { - "Para" : "The current position of the item in the collection view’s coordinate space." - } - ], - "name" : "position" - } - ], - "key.doc.result_discussion" : [ - { - "Para" : "The target index path if the layout can determine it, or `nil` to use default behavior." - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> targetIndexPath<\/decl.name>(forInteractivelyMovingItem<\/decl.var.parameter.argument_label> previousIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withPosition<\/decl.var.parameter.argument_label> position<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 317, - "key.line" : 357, - "key.modulename" : "ListableUI", - "key.name" : "targetIndexPath(forInteractivelyMovingItem:withPosition:)", - "key.namelength" : 126, - "key.nameoffset" : 11259, - "key.offset" : 11254, - "key.parsed_declaration" : "public func targetIndexPath(\n forInteractivelyMovingItem previousIndexPath: IndexPath,\n withPosition position: CGPoint\n) -> IndexPath?", - "key.parsed_scope.end" : 364, - "key.parsed_scope.start" : 357, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "targetIndexPath(forInteractivelyMovingItem: IndexPath, withPosition: CGPoint) -> IndexPath?<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (IndexPath, CGPoint) -> IndexPath?", - "key.typeusr" : "$s26forInteractivelyMovingItem12withPosition10Foundation9IndexPathVSgAE_So7CGPointVtcD", - "key.usr" : "s:10ListableUI13AnyListLayoutP15targetIndexPath26forInteractivelyMovingItem12withPosition10Foundation0gH0VSgAI_So7CGPointVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private static func isHeaderSticky(list: Bool<\/Type>, section: Bool<\/Type>?, header: Bool<\/Type>?) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 11581 - } - ], - "key.bodylength" : 416, - "key.bodyoffset" : 11698, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isHeaderSticky<\/decl.name>(list<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, section<\/decl.var.parameter.argument_label>: Bool<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: Bool<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 526, - "key.line" : 366, - "key.modulename" : "ListableUI", - "key.name" : "isHeaderSticky(list:section:header:)", - "key.namelength" : 87, - "key.nameoffset" : 11601, - "key.offset" : 11589, - "key.parsed_declaration" : "private static func isHeaderSticky(\n list: Bool,\n section: Bool?,\n header: Bool?\n) -> Bool", - "key.parsed_scope.end" : 387, - "key.parsed_scope.start" : 366, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let header: Bool<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "If the header itself specifies a stickiness; defer to that value.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> header<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 6, - "key.line" : 374, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.offset" : 11810, - "key.parsed_declaration" : "if let header", - "key.parsed_scope.end" : 374, - "key.parsed_scope.start" : 374, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE14isHeaderSticky33_C6789DCBE3319916D53DA06A2430438DLL4list7section6headerS2b_SbSgAItFZAHL0_Sbvp" - }, - { - "key.annotated_decl" : "let section: Bool<\/Type><\/Declaration>", - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Otherwise, use the value from the section's layout value.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 7, - "key.line" : 380, - "key.modulename" : "ListableUI", - "key.name" : "section", - "key.offset" : 11967, - "key.parsed_declaration" : "if let section", - "key.parsed_scope.end" : 380, - "key.parsed_scope.start" : 380, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE14isHeaderSticky33_C6789DCBE3319916D53DA06A2430438DLL4list7section6headerS2b_SbSgAItFZAGL0_Sbvp" - } - ], - "key.typename" : " (Self.Type) -> (Bool, Bool?, Bool?) -> Bool", - "key.typeusr" : "$s4list7section6headerS2b_SbSgADtcD", - "key.usr" : "s:10ListableUI10ListLayoutPAAE14isHeaderSticky33_C6789DCBE3319916D53DA06A2430438DLL4list7section6headerS2b_SbSgAItFZ" - } - ], - "key.typename" : "ListLayout.Type", - "key.typeusr" : "$s10ListableUI10ListLayout_pmD", - "key.usr" : "s:10ListableUI10ListLayoutP" - }, - { - "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>", - "key.bodylength" : 3640, - "key.bodyoffset" : 12144, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Finally, defer to the list's value.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 3666, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "AnyListLayout", - "key.namelength" : 13, - "key.nameoffset" : 12129, - "key.offset" : 12119, - "key.parsed_declaration" : "extension AnyListLayout", - "key.parsed_scope.end" : 478, - "key.parsed_scope.start" : 390, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func visibleContentFrame(for collectionView: UICollectionView<\/Type>) -> CGRect<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12149 - } - ], - "key.bodylength" : 305, - "key.bodyoffset" : 12235, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> visibleContentFrame<\/decl.name>(for<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 385, - "key.line" : 392, - "key.modulename" : "ListableUI", - "key.name" : "visibleContentFrame(for:)", - "key.namelength" : 58, - "key.nameoffset" : 12161, - "key.offset" : 12156, - "key.parsed_declaration" : "public func visibleContentFrame(for collectionView : UICollectionView) -> CGRect", - "key.parsed_scope.end" : 400, - "key.parsed_scope.start" : 392, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (UICollectionView) -> CGRect", - "key.typeusr" : "$s3forSo6CGRectVSo16UICollectionViewC_tcD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE19visibleContentFrame3forSo6CGRectVSo16UICollectionViewC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func updateOverscrollFooterPosition(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12551 - } - ], - "key.bodylength" : 1263, - "key.bodyoffset" : 12637, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateOverscrollFooterPosition<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1343, - "key.line" : 402, - "key.modulename" : "ListableUI", - "key.name" : "updateOverscrollFooterPosition(in:)", - "key.namelength" : 68, - "key.nameoffset" : 12563, - "key.offset" : 12558, - "key.parsed_declaration" : "public func updateOverscrollFooterPosition(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 426, - "key.parsed_scope.start" : 402, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "updateOverscrollFooterPosition(in: ListLayoutLayoutContext)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let footer: ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "TODO: This method should be using `adjustedContentInset`,\nnot the safe area and content inset directly.", - "key.doc.column" : 13, - "key.doc.comment" : "TODO: This method should be using `adjustedContentInset`,\nnot the safe area and content inset directly.", - "key.doc.declaration" : "let footer: ListableUI.ListLayoutContent.SupplementaryItemInfo", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.doc.full_as_xml" : "footer<\/Name>s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inyAA0deE7ContextV_tF6footerL_AA0dE7ContentC21SupplementaryItemInfoCvp<\/USR>let footer: ListableUI.ListLayoutContent.SupplementaryItemInfo<\/Declaration>TODO: This method should be using adjustedContentInset<\/codeVoice>, not the safe area and content inset directly.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 407, - "key.doc.name" : "footer", - "key.doc.type" : "Other", - "key.doclength" : 120, - "key.docoffset" : 12646, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> footer<\/decl.name>: ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 42, - "key.line" : 407, - "key.modulename" : "ListableUI", - "key.name" : "footer", - "key.namelength" : 6, - "key.nameoffset" : 12787, - "key.offset" : 12783, - "key.parsed_declaration" : "let footer = self.content.overscrollFooter", - "key.parsed_scope.end" : 407, - "key.parsed_scope.start" : 407, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inyAA0deE7ContextV_tF6footerL_AA0dE7ContentC21SupplementaryItemInfoCvp" - }, - { - "key.annotated_decl" : "let contentHeight: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 72, - "key.line" : 409, - "key.modulename" : "ListableUI", - "key.name" : "contentHeight", - "key.namelength" : 13, - "key.nameoffset" : 12855, - "key.offset" : 12851, - "key.parsed_declaration" : "let contentHeight = self.direction.height(for: self.content.contentSize)", - "key.parsed_scope.end" : 409, - "key.parsed_scope.start" : 409, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inyAA0deE7ContextV_tF13contentHeightL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let viewHeight: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 108, - "key.line" : 410, - "key.modulename" : "ListableUI", - "key.name" : "viewHeight", - "key.namelength" : 10, - "key.nameoffset" : 12936, - "key.offset" : 12932, - "key.parsed_declaration" : "let viewHeight = self.direction.height(for: context.viewBounds.inset(by: context.adjustedContentInset).size)", - "key.parsed_scope.end" : 410, - "key.parsed_scope.start" : 410, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inyAA0deE7ContextV_tF10viewHeightL_14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inyAA0deE7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func adjustPositionsForLayoutUnderflow(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13911 - } - ], - "key.bodylength" : 1782, - "key.bodyoffset" : 14000, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> adjustPositionsForLayoutUnderflow<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1865, - "key.line" : 428, - "key.modulename" : "ListableUI", - "key.name" : "adjustPositionsForLayoutUnderflow(in:)", - "key.namelength" : 71, - "key.nameoffset" : 13923, - "key.offset" : 13918, - "key.parsed_declaration" : "public func adjustPositionsForLayoutUnderflow(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 477, - "key.parsed_scope.start" : 428, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "adjustPositionsForLayoutUnderflow(in: ListLayoutLayoutContext)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let safeAreaInsets: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 228, - "key.line" : 432, - "key.modulename" : "ListableUI", - "key.name" : "safeAreaInsets", - "key.namelength" : 14, - "key.nameoffset" : 14124, - "key.offset" : 14120, - "key.parsed_declaration" : "let safeAreaInsets : CGFloat = self.direction.switch(\n vertical: context.safeAreaInsets.top + context.safeAreaInsets.bottom,\n horizontal: context.safeAreaInsets.left + context.safeAreaInsets.right\n)", - "key.parsed_scope.end" : 432, - "key.parsed_scope.start" : 432, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inyAA0deE7ContextV_tF14safeAreaInsetsL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let contentHeight: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 72, - "key.line" : 437, - "key.modulename" : "ListableUI", - "key.name" : "contentHeight", - "key.namelength" : 13, - "key.nameoffset" : 14362, - "key.offset" : 14358, - "key.parsed_declaration" : "let contentHeight = self.direction.height(for: self.content.contentSize)", - "key.parsed_scope.end" : 437, - "key.parsed_scope.start" : 437, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inyAA0deE7ContextV_tF13contentHeightL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let viewHeight: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 68, - "key.line" : 438, - "key.modulename" : "ListableUI", - "key.name" : "viewHeight", - "key.namelength" : 10, - "key.nameoffset" : 14443, - "key.offset" : 14439, - "key.parsed_declaration" : "let viewHeight = self.direction.height(for: context.viewBounds.size)", - "key.parsed_scope.end" : 438, - "key.parsed_scope.start" : 438, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inyAA0deE7ContextV_tF10viewHeightL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let additionalOffset: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> additionalOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 171, - "key.line" : 440, - "key.modulename" : "ListableUI", - "key.name" : "additionalOffset", - "key.namelength" : 16, - "key.nameoffset" : 14529, - "key.offset" : 14525, - "key.parsed_declaration" : "let additionalOffset = self.behavior.underflow.alignment.offsetFor(\n contentHeight: contentHeight,\n viewHeight: viewHeight - safeAreaInsets\n)", - "key.parsed_scope.end" : 440, - "key.parsed_scope.start" : 440, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inyAA0deE7ContextV_tF16additionalOffsetL_14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : " (Self) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inyAA0deE7ContextV_tF" - } - ], - "key.typename" : "AnyListLayout.Type", - "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD", - "key.usr" : "s:10ListableUI13AnyListLayoutP" - }, - { - "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>", - "key.bodylength" : 5716, - "key.bodyoffset" : 15813, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 5742, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "AnyListLayout", - "key.namelength" : 13, - "key.nameoffset" : 15798, - "key.offset" : 15788, - "key.parsed_declaration" : "extension AnyListLayout", - "key.parsed_scope.end" : 622, - "key.parsed_scope.start" : 481, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func onDidEndDraggingTargetContentOffset(for targetContentOffset: CGPoint<\/Type>, velocity: CGPoint<\/Type>, visibleContentFrame: CGRect<\/Type>) -> CGPoint<\/Type>?<\/Declaration>", - "key.bodylength" : 1120, - "key.bodyoffset" : 15990, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> onDidEndDraggingTargetContentOffset<\/decl.name>(for<\/decl.var.parameter.argument_label> targetContentOffset<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, velocity<\/decl.var.parameter.argument_label>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, visibleContentFrame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGPoint<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1293, - "key.line" : 483, - "key.modulename" : "ListableUI", - "key.name" : "onDidEndDraggingTargetContentOffset(for:velocity:visibleContentFrame:)", - "key.namelength" : 149, - "key.nameoffset" : 15823, - "key.offset" : 15818, - "key.parsed_declaration" : "func onDidEndDraggingTargetContentOffset(\n for targetContentOffset : CGPoint,\n velocity : CGPoint,\n visibleContentFrame: CGRect\n) -> CGPoint?", - "key.parsed_scope.end" : 518, - "key.parsed_scope.start" : 483, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let visibleContentSize: CGSize<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleContentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 49, - "key.line" : 499, - "key.modulename" : "ListableUI", - "key.name" : "visibleContentSize", - "key.namelength" : 18, - "key.nameoffset" : 16313, - "key.offset" : 16309, - "key.parsed_declaration" : "let visibleContentSize = visibleContentFrame.size", - "key.parsed_scope.end" : 499, - "key.parsed_scope.start" : 499, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE35onDidEndDraggingTargetContentOffset3for8velocity07visibleK5FrameSo7CGPointVSgAI_AISo6CGRectVtF0oK4SizeL_So6CGSizeVvp" - }, - { - "key.annotated_decl" : "let padding: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> padding<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 43, - "key.line" : 500, - "key.modulename" : "ListableUI", - "key.name" : "padding", - "key.namelength" : 7, - "key.nameoffset" : 16371, - "key.offset" : 16367, - "key.parsed_declaration" : "let padding = self.bounds?.padding ?? .zero", - "key.parsed_scope.end" : 500, - "key.parsed_scope.start" : 500, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE35onDidEndDraggingTargetContentOffset3for8velocity07visibleK5FrameSo7CGPointVSgAI_AISo6CGRectVtF7paddingL_So12UIEdgeInsetsVvp" - } - ], - "key.typename" : " (Self) -> (CGPoint, CGPoint, CGRect) -> CGPoint?", - "key.typeusr" : "$s3for8velocity19visibleContentFrameSo7CGPointVSgAE_AESo6CGRectVtcD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE35onDidEndDraggingTargetContentOffset3for8velocity07visibleK5FrameSo7CGPointVSgAI_AISo6CGRectVtF" - }, - { - "key.annotated_decl" : "func itemToScrollToOnDidEndDragging(after contentOffset: CGPoint<\/Type>, velocity: CGPoint<\/Type>, visibleContentFrame: CGRect<\/Type>) -> ListLayoutContent<\/Type>.ContentItem<\/Type>?<\/Declaration>", - "key.bodylength" : 3338, - "key.bodyoffset" : 17306, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> itemToScrollToOnDidEndDragging<\/decl.name>(after<\/decl.var.parameter.argument_label> contentOffset<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, velocity<\/decl.var.parameter.argument_label>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, visibleContentFrame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class>.ContentItem<\/ref.enum>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3524, - "key.line" : 520, - "key.modulename" : "ListableUI", - "key.name" : "itemToScrollToOnDidEndDragging(after:velocity:visibleContentFrame:)", - "key.namelength" : 140, - "key.nameoffset" : 17126, - "key.offset" : 17121, - "key.parsed_declaration" : "func itemToScrollToOnDidEndDragging(\n after contentOffset : CGPoint,\n velocity : CGPoint,\n visibleContentFrame: CGRect\n) -> ListLayoutContent.ContentItem?", - "key.parsed_scope.end" : 601, - "key.parsed_scope.start" : 520, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let rect: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rect<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 16, - "key.line" : 526, - "key.modulename" : "ListableUI", - "key.name" : "rect", - "key.namelength" : 4, - "key.nameoffset" : 17319, - "key.offset" : 17315, - "key.parsed_declaration" : "let rect: CGRect", - "key.parsed_scope.end" : 526, - "key.parsed_scope.start" : 526, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE012itemToScrollG16OnDidEndDragging5after8velocity19visibleContentFrameAA0deP0C0P4ItemOSgSo7CGPointV_ANSo6CGRectVtF4rectL_APvp" - }, - { - "key.annotated_decl" : "let scrollDirection: ScrollVelocityDirection<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "When peeking, the visible items are the only items considered for the page offest.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> scrollDirection<\/decl.name>: ScrollVelocityDirection<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 73, - "key.line" : 537, - "key.modulename" : "ListableUI", - "key.name" : "scrollDirection", - "key.namelength" : 15, - "key.nameoffset" : 17740, - "key.offset" : 17736, - "key.parsed_declaration" : "let scrollDirection = ScrollVelocityDirection(direction.y(for: velocity))", - "key.parsed_scope.end" : 537, - "key.parsed_scope.start" : 537, - "key.reusingastcontext" : false, - "key.typename" : "ScrollVelocityDirection", - "key.typeusr" : "$s10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLOD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE012itemToScrollG16OnDidEndDragging5after8velocity19visibleContentFrameAA0deP0C0P4ItemOSgSo7CGPointV_ANSo6CGRectVtF15scrollDirectionL_AA0h8VelocityV033_C6789DCBE3319916D53DA06A2430438DLLOvp" - }, - { - "key.annotated_decl" : "let items: [ListLayoutContent<\/Type>.ContentItem<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> items<\/decl.name>: [ListLayoutContent<\/ref.class>.ContentItem<\/ref.enum>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 147, - "key.line" : 539, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 17831, - "key.offset" : 17827, - "key.parsed_declaration" : "let items = self.content.content(\n in: rect,\n alwaysIncludeOverscroll: false,\n includeUnpopulated: false\n)", - "key.parsed_scope.end" : 539, - "key.parsed_scope.start" : 539, - "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContent.ContentItem]", - "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC0E4ItemOGD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE012itemToScrollG16OnDidEndDragging5after8velocity19visibleContentFrameAA0deP0C0P4ItemOSgSo7CGPointV_ANSo6CGRectVtF5itemsL_SayAKGvp" - } - ], - "key.typename" : " (Self) -> (CGPoint, CGPoint, CGRect) -> ListLayoutContent.ContentItem?", - "key.typeusr" : "$s5after8velocity19visibleContentFrame10ListableUI010ListLayoutD0C0D4ItemOSgSo7CGPointV_AKSo6CGRectVtcD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE012itemToScrollG16OnDidEndDragging5after8velocity19visibleContentFrameAA0deP0C0P4ItemOSgSo7CGPointV_ANSo6CGRectVtF" - }, - { - "key.annotated_decl" : "func rectForFindingItemToScrollToOnDidEndDragging(after contentOffset: CGPoint<\/Type>, velocity: CGPoint<\/Type>) -> CGRect<\/Type><\/Declaration>", - "key.bodylength" : 738, - "key.bodyoffset" : 20789, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Using the sorted items, return the first has has a min edge outside the offset.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> rectForFindingItemToScrollToOnDidEndDragging<\/decl.name>(after<\/decl.var.parameter.argument_label> contentOffset<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, velocity<\/decl.var.parameter.argument_label>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 873, - "key.line" : 603, - "key.modulename" : "ListableUI", - "key.name" : "rectForFindingItemToScrollToOnDidEndDragging(after:velocity:)", - "key.namelength" : 117, - "key.nameoffset" : 20660, - "key.offset" : 20655, - "key.parsed_declaration" : "func rectForFindingItemToScrollToOnDidEndDragging(\n after contentOffset : CGPoint,\n velocity : CGPoint\n) -> CGRect", - "key.parsed_scope.end" : 621, - "key.parsed_scope.start" : 603, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let height: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The height used here doesn't really matter; it just needs to be\ntall enough to make sure we end up with at least one overlapping item,\nand thus we'll assume most layouts have at least one item in 1,000pts.", - "key.doc.column" : 13, - "key.doc.comment" : "The height used here doesn't really matter; it just needs to be\ntall enough to make sure we end up with at least one overlapping item,\nand thus we'll assume most layouts have at least one item in 1,000pts.", - "key.doc.declaration" : "let height: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.doc.full_as_xml" : "height<\/Name>s:10ListableUI13AnyListLayoutPAAE026rectForFindingItemToScrollJ16OnDidEndDragging5after8velocitySo6CGRectVSo7CGPointV_AJtF6heightL_14CoreFoundation7CGFloatVvp<\/USR>let height: CGFloat<\/Declaration>The height used here doesn’t really matter; it just needs to be tall enough to make sure we end up with at least one overlapping item, and thus we’ll assume most layouts have at least one item in 1,000pts.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 612, - "key.doc.name" : "height", - "key.doc.type" : "Other", - "key.doclength" : 234, - "key.docoffset" : 20807, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> height<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 28, - "key.line" : 612, - "key.modulename" : "ListableUI", - "key.name" : "height", - "key.namelength" : 6, - "key.nameoffset" : 21062, - "key.offset" : 21058, - "key.parsed_declaration" : "let height : CGFloat = 1_000", - "key.parsed_scope.end" : 612, - "key.parsed_scope.start" : 612, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE026rectForFindingItemToScrollJ16OnDidEndDragging5after8velocitySo6CGRectVSo7CGPointV_AJtF6heightL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let scrollDirection: ScrollVelocityDirection<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> scrollDirection<\/decl.name>: ScrollVelocityDirection<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 73, - "key.line" : 613, - "key.modulename" : "ListableUI", - "key.name" : "scrollDirection", - "key.namelength" : 15, - "key.nameoffset" : 21099, - "key.offset" : 21095, - "key.parsed_declaration" : "let scrollDirection = ScrollVelocityDirection(direction.y(for: velocity))", - "key.parsed_scope.end" : 613, - "key.parsed_scope.start" : 613, - "key.reusingastcontext" : false, - "key.typename" : "ScrollVelocityDirection", - "key.typeusr" : "$s10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLOD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE026rectForFindingItemToScrollJ16OnDidEndDragging5after8velocitySo6CGRectVSo7CGPointV_AJtF15scrollDirectionL_AA0k8VelocityU033_C6789DCBE3319916D53DA06A2430438DLLOvp" - }, - { - "key.annotated_decl" : "let offset: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> offset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 63, - "key.line" : 614, - "key.modulename" : "ListableUI", - "key.name" : "offset", - "key.namelength" : 6, - "key.nameoffset" : 21181, - "key.offset" : 21177, - "key.parsed_declaration" : "let offset : CGFloat = scrollDirection == .backward ? 1_000 : 0", - "key.parsed_scope.end" : 614, - "key.parsed_scope.start" : 614, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE026rectForFindingItemToScrollJ16OnDidEndDragging5after8velocitySo6CGRectVSo7CGPointV_AJtF6offsetL_14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : " (Self) -> (CGPoint, CGPoint) -> CGRect", - "key.typeusr" : "$s5after8velocitySo6CGRectVSo7CGPointV_AFtcD", - "key.usr" : "s:10ListableUI13AnyListLayoutPAAE026rectForFindingItemToScrollJ16OnDidEndDragging5after8velocitySo6CGRectVSo7CGPointV_AJtF" - } - ], - "key.typename" : "AnyListLayout.Type", - "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD", - "key.usr" : "s:10ListableUI13AnyListLayoutP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate enum ScrollVelocityDirection<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 21533 - } - ], - "key.bodylength" : 191, - "key.bodyoffset" : 21575, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ScrollVelocityDirection<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 222, - "key.line" : 625, - "key.modulename" : "ListableUI", - "key.name" : "ScrollVelocityDirection", - "key.namelength" : 23, - "key.nameoffset" : 21550, - "key.offset" : 21545, - "key.parsed_declaration" : "fileprivate enum ScrollVelocityDirection", - "key.parsed_scope.end" : 636, - "key.parsed_scope.start" : 625, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 21580, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case forward<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> forward<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 626, - "key.modulename" : "ListableUI", - "key.name" : "forward", - "key.namelength" : 7, - "key.nameoffset" : 21585, - "key.offset" : 21585, - "key.parsed_declaration" : "case forward", - "key.parsed_scope.end" : 626, - "key.parsed_scope.start" : 626, - "key.reusingastcontext" : false, - "key.typename" : "(ScrollVelocityDirection.Type) -> ScrollVelocityDirection", - "key.typeusr" : "$sy10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLOADmcD", - "key.usr" : "s:10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLO7forwardyA2DmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 21597, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case backward<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> backward<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 627, - "key.modulename" : "ListableUI", - "key.name" : "backward", - "key.namelength" : 8, - "key.nameoffset" : 21602, - "key.offset" : 21602, - "key.parsed_declaration" : "case backward", - "key.parsed_scope.end" : 627, - "key.parsed_scope.start" : 627, - "key.reusingastcontext" : false, - "key.typename" : "(ScrollVelocityDirection.Type) -> ScrollVelocityDirection", - "key.typeusr" : "$sy10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLOADmcD", - "key.usr" : "s:10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLO8backwardyA2DmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(_ velocity: CGFloat<\/Type>)<\/Declaration>", - "key.bodylength" : 116, - "key.bodyoffset" : 21648, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> velocity<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 145, - "key.line" : 629, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 26, - "key.nameoffset" : 21620, - "key.offset" : 21620, - "key.parsed_declaration" : "init(_ velocity : CGFloat)", - "key.parsed_scope.end" : 635, - "key.parsed_scope.start" : 629, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ScrollVelocityDirection.Type) -> (CGFloat) -> ScrollVelocityDirection", - "key.typeusr" : "$sy10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLO14CoreFoundation7CGFloatVcD", - "key.usr" : "s:10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLOyAD14CoreFoundation7CGFloatVcfc" - } - ], - "key.typename" : "ScrollVelocityDirection.Type", - "key.typeusr" : "$s10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLOmD", - "key.usr" : "s:10ListableUI23ScrollVelocityDirection33_C6789DCBE3319916D53DA06A2430438DLLO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2161, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ListLayoutAppearance : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 118 - } - ], - "key.bodylength" : 499, - "key.bodyoffset" : 168, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 157 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayoutAppearance<\/decl.name> : Equatable<\/ref.protocol><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 543, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutAppearance", - "key.namelength" : 20, - "key.nameoffset" : 134, - "key.offset" : 125, - "key.parsed_declaration" : "public protocol ListLayoutAppearance : Equatable", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var `default`: Self<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 202, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 35, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "default", - "key.namelength" : 7, - "key.nameoffset" : 184, - "key.offset" : 173, - "key.parsed_declaration" : "static var `default` : Self", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "`default`(_: (inout Self) -> ()) -> Self<\/RelatedName>" - }, - { - "key.annotated_decl" : "`default`(_: (inout Self) -> ()) -> Self<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func `default`(_ modifying: (inout Self<\/Type>) -> ()) -> Self<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> `default`<\/decl.name>(_<\/decl.var.parameter.argument_label> modifying<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Self<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 63, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "default(_:)", - "key.namelength" : 43, - "key.nameoffset" : 230, - "key.offset" : 218, - "key.parsed_declaration" : "static func `default`(_ modifying : (inout Self) -> ()) -> Self", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "default<\/RelatedName>" - }, - { - "key.annotated_decl" : "`default`(_: (inout Self) -> ()) -> Self<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self.Type) -> ((inout Self) -> ()) -> Self", - "key.typeusr" : "$syxyxzXEcD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultyxyxzXEFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var direction: LayoutDirection<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 324, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 295, - "key.offset" : 291, - "key.parsed_declaration" : "var direction : LayoutDirection", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var bounds: ListContentBounds<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 373, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 344, - "key.offset" : 340, - "key.parsed_declaration" : "var bounds : ListContentBounds?", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListContentBounds?", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVSgD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP6boundsAA0C13ContentBoundsVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var listHeaderPosition: ListHeaderPosition<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 430, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> listHeaderPosition<\/decl.name>: ListHeaderPosition<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "listHeaderPosition", - "key.namelength" : 18, - "key.nameoffset" : 389, - "key.offset" : 385, - "key.parsed_declaration" : "var listHeaderPosition : ListHeaderPosition", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListHeaderPosition", - "key.typeusr" : "$s10ListableUI18ListHeaderPositionOD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP18listHeaderPositionAA0cgH0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var stickySectionHeaders: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 475, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "stickySectionHeaders", - "key.namelength" : 20, - "key.nameoffset" : 446, - "key.offset" : 442, - "key.parsed_declaration" : "var stickySectionHeaders : Bool", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var pagingBehavior: ListPagingBehavior<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 528, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pagingBehavior<\/decl.name>: ListPagingBehavior<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "pagingBehavior", - "key.namelength" : 14, - "key.nameoffset" : 491, - "key.offset" : 487, - "key.parsed_declaration" : "var pagingBehavior : ListPagingBehavior", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListPagingBehavior", - "key.typeusr" : "$s10ListableUI18ListPagingBehaviorOD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP14pagingBehaviorAA0c6PagingG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 603, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 65, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewProperties", - "key.namelength" : 20, - "key.nameoffset" : 548, - "key.offset" : 544, - "key.parsed_declaration" : "var scrollViewProperties : ListLayoutScrollViewProperties", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutScrollViewProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20scrollViewPropertiesAA0cd6ScrollgH0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func toLayoutDescription() -> LayoutDescription<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> toLayoutDescription<\/decl.name>() -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 47, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "toLayoutDescription()", - "key.namelength" : 21, - "key.nameoffset" : 624, - "key.offset" : 619, - "key.parsed_declaration" : "func toLayoutDescription() -> LayoutDescription", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> LayoutDescription", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVycD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP02toD11DescriptionAA0dG0VyF" - } - ], - "key.typename" : "ListLayoutAppearance.Type", - "key.typeusr" : "$s10ListableUI20ListLayoutAppearance_pmD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - }, - { - "key.annotated_decl" : "public protocol ListLayoutAppearance : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 184, - "key.bodyoffset" : 703, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayoutAppearance<\/decl.name> : Equatable<\/ref.protocol><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 217, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutAppearance", - "key.namelength" : 20, - "key.nameoffset" : 681, - "key.offset" : 671, - "key.parsed_declaration" : "extension ListLayoutAppearance", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func `default`(_ modifying: (inout Self<\/Type>) -> ()) -> Self<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 713 - } - ], - "key.bodylength" : 100, - "key.bodyoffset" : 785, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> `default`<\/decl.name>(_<\/decl.var.parameter.argument_label> modifying<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Self<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 166, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "default(_:)", - "key.namelength" : 43, - "key.nameoffset" : 732, - "key.offset" : 720, - "key.parsed_declaration" : "public static func `default`(_ modifying : (inout Self) -> ()) -> Self", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 35, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "default<\/RelatedName>" - }, - { - "key.annotated_decl" : "`default`(_: (inout Self) -> ()) -> Self<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var appearance: Self<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> appearance<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 29, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 798, - "key.offset" : 794, - "key.parsed_declaration" : "var appearance = Self.default", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.typename" : "Self", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI20ListLayoutAppearancePAAE7defaultyxyxzXEFZ10appearanceL_xvp" - } - ], - "key.typename" : " (Self.Type) -> ((inout Self) -> ()) -> Self", - "key.typeusr" : "$syxyxzXEcD", - "key.usr" : "s:10ListableUI20ListLayoutAppearancePAAE7defaultyxyxzXEFZ" - } - ], - "key.typename" : "ListLayoutAppearance.Type", - "key.typeusr" : "$s10ListableUI20ListLayoutAppearance_pmD", - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListLayoutAppearanceProperties : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1000 - } - ], - "key.bodylength" : 1101, - "key.bodyoffset" : 1058, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Represents the properties from a `ListLayoutAppearance`, which\nare applicable to any kind of layout.", - "key.doc.column" : 15, - "key.doc.comment" : "Represents the properties from a `ListLayoutAppearance`, which\nare applicable to any kind of layout.", - "key.doc.declaration" : "public struct ListLayoutAppearanceProperties : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.doc.full_as_xml" : "ListLayoutAppearanceProperties<\/Name>s:10ListableUI30ListLayoutAppearancePropertiesV<\/USR>public struct ListLayoutAppearanceProperties : Equatable<\/Declaration>Represents the properties from a ListLayoutAppearance<\/codeVoice>, which are applicable to any kind of layout.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 45, - "key.doc.name" : "ListLayoutAppearanceProperties", - "key.doc.type" : "Class", - "key.doclength" : 109, - "key.docoffset" : 891, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1047 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAppearanceProperties<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1153, - "key.line" : 45, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutAppearanceProperties", - "key.namelength" : 30, - "key.nameoffset" : 1014, - "key.offset" : 1007, - "key.parsed_declaration" : "public struct ListLayoutAppearanceProperties : Equatable", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 45, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let direction: LayoutDirection<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1072 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 1083, - "key.offset" : 1079, - "key.parsed_declaration" : "public let direction : LayoutDirection", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI30ListLayoutAppearancePropertiesV9directionAA0D9DirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let bounds: ListContentBounds<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1115 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 1126, - "key.offset" : 1122, - "key.parsed_declaration" : "public let bounds : ListContentBounds?", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 48, - "key.reusingastcontext" : false, - "key.typename" : "ListContentBounds?", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVSgD", - "key.usr" : "s:10ListableUI30ListLayoutAppearancePropertiesV6boundsAA0C13ContentBoundsVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let stickySectionHeaders: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1158 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "stickySectionHeaders", - "key.namelength" : 20, - "key.nameoffset" : 1169, - "key.offset" : 1165, - "key.parsed_declaration" : "public let stickySectionHeaders : Bool", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutAppearancePropertiesV20stickySectionHeadersSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let pagingBehavior: ListPagingBehavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1201 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> pagingBehavior<\/decl.name>: ListPagingBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "pagingBehavior", - "key.namelength" : 14, - "key.nameoffset" : 1212, - "key.offset" : 1208, - "key.parsed_declaration" : "public let pagingBehavior : ListPagingBehavior", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.typename" : "ListPagingBehavior", - "key.typeusr" : "$s10ListableUI18ListPagingBehaviorOD", - "key.usr" : "s:10ListableUI30ListLayoutAppearancePropertiesV14pagingBehaviorAA0c6PagingH0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let scrollViewProperties: ListLayoutScrollViewProperties<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1252 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 57, - "key.line" : 51, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewProperties", - "key.namelength" : 20, - "key.nameoffset" : 1263, - "key.offset" : 1259, - "key.parsed_declaration" : "public let scrollViewProperties : ListLayoutScrollViewProperties", - "key.parsed_scope.end" : 51, - "key.parsed_scope.start" : 51, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutScrollViewProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD", - "key.usr" : "s:10ListableUI30ListLayoutAppearancePropertiesV010scrollViewF0AA0cd6ScrollhF0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(direction: LayoutDirection<\/Type>, bounds: ListContentBounds<\/Type>?, stickySectionHeaders: Bool<\/Type>, pagingBehavior: ListPagingBehavior<\/Type>, scrollViewProperties: ListLayoutScrollViewProperties<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1326 - } - ], - "key.bodylength" : 228, - "key.bodyoffset" : 1562, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, bounds<\/decl.var.parameter.argument_label>: ListContentBounds<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, stickySectionHeaders<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, pagingBehavior<\/decl.var.parameter.argument_label>: ListPagingBehavior<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, scrollViewProperties<\/decl.var.parameter.argument_label>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 458, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "init(direction:bounds:stickySectionHeaders:pagingBehavior:scrollViewProperties:)", - "key.namelength" : 227, - "key.nameoffset" : 1333, - "key.offset" : 1333, - "key.parsed_declaration" : "public init(\n direction: LayoutDirection,\n bounds : ListContentBounds?,\n stickySectionHeaders: Bool,\n pagingBehavior : ListPagingBehavior,\n scrollViewProperties : ListLayoutScrollViewProperties\n)", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 53, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutAppearanceProperties.Type) -> (LayoutDirection, ListContentBounds?, Bool, ListPagingBehavior, ListLayoutScrollViewProperties) -> ListLayoutAppearanceProperties", - "key.typeusr" : "$s9direction6bounds20stickySectionHeaders14pagingBehavior20scrollViewProperties10ListableUI020ListLayoutAppearanceJ0VAF0N9DirectionO_AF0M13ContentBoundsVSgSbAF0m6PagingG0OAF0mn6ScrolliJ0VtcD", - "key.usr" : "s:10ListableUI30ListLayoutAppearancePropertiesV9direction6bounds20stickySectionHeaders14pagingBehavior010scrollViewF0AcA0D9DirectionO_AA0C13ContentBoundsVSgSbAA0c6PagingM0OAA0cd6ScrolloF0Vtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<Appearance>(_ appearance: Appearance<\/Type>) where Appearance<\/Type> : ListLayoutAppearance<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1801 - } - ], - "key.bodylength" : 283, - "key.bodyoffset" : 1874, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Appearance<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> appearance<\/decl.var.parameter.name>: Appearance<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Appearance<\/ref.generic_type_param> : ListLayoutAppearance<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 350, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 64, - "key.nameoffset" : 1808, - "key.offset" : 1808, - "key.parsed_declaration" : "public init(_ appearance : Appearance)", - "key.parsed_scope.end" : 73, - "key.parsed_scope.start" : 67, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(direction:bounds:stickySectionHeaders:pagingBehavior:scrollViewProperties:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Appearance : ListLayoutAppearance<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 20, - "key.offset" : 1824 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift", - "key.fully_annotated_decl" : "Appearance<\/decl.generic_type_param.name> : ListLayoutAppearance<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayoutAppearance" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 31, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "Appearance", - "key.namelength" : 10, - "key.nameoffset" : 1813, - "key.offset" : 1813, - "key.parsed_declaration" : "public initAppearance<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Appearance.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI30ListLayoutAppearancePropertiesVyACxcAA0cdE0Rzlufc0E0L_xmfp" - } - ], - "key.typename" : " (ListLayoutAppearanceProperties.Type) -> (Appearance) -> ListLayoutAppearanceProperties", - "key.typeusr" : "$sy10ListableUI30ListLayoutAppearancePropertiesVxcAA0cdE0RzluD", - "key.usr" : "s:10ListableUI30ListLayoutAppearancePropertiesVyACxcAA0cdE0Rzlufc" - } - ], - "key.typename" : "ListLayoutAppearanceProperties.Type", - "key.typeusr" : "$s10ListableUI30ListLayoutAppearancePropertiesVmD", - "key.usr" : "s:10ListableUI30ListLayoutAppearancePropertiesV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 948, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ListLayoutAttributes : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 605, - "key.bodyoffset" : 171, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 160 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListLayoutAttributes<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 647, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutAttributes", - "key.namelength" : 20, - "key.nameoffset" : 137, - "key.offset" : 130, - "key.parsed_declaration" : "struct ListLayoutAttributes : Equatable", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var contentSize: CGSize<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "contentSize", - "key.namelength" : 11, - "key.nameoffset" : 185, - "key.offset" : 181, - "key.parsed_declaration" : "var contentSize : CGSize", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV11contentSizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var naturalContentWidth: CGFloat<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> naturalContentWidth<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "naturalContentWidth", - "key.namelength" : 19, - "key.nameoffset" : 214, - "key.offset" : 210, - "key.parsed_declaration" : "var naturalContentWidth : CGFloat?", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV19naturalContentWidth14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var containerHeader: Supplementary<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> containerHeader<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "containerHeader", - "key.namelength" : 15, - "key.nameoffset" : 258, - "key.offset" : 254, - "key.parsed_declaration" : "var containerHeader : Supplementary?", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListLayoutAttributes.Supplementary?", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV15containerHeaderAC13SupplementaryVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var header: Supplementary<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> header<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.namelength" : 6, - "key.nameoffset" : 299, - "key.offset" : 295, - "key.parsed_declaration" : "var header : Supplementary?", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListLayoutAttributes.Supplementary?", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV6headerAC13SupplementaryVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var footer: Supplementary<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> footer<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "footer", - "key.namelength" : 6, - "key.nameoffset" : 331, - "key.offset" : 327, - "key.parsed_declaration" : "var footer : Supplementary?", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListLayoutAttributes.Supplementary?", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV6footerAC13SupplementaryVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var overscrollFooter: Supplementary<\/Type>?<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "overscrollFooter", - "key.namelength" : 16, - "key.nameoffset" : 363, - "key.offset" : 359, - "key.parsed_declaration" : "var overscrollFooter : Supplementary?", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListLayoutAttributes.Supplementary?", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV16overscrollFooterAC13SupplementaryVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var sections: [Section<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sections<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "sections", - "key.namelength" : 8, - "key.nameoffset" : 410, - "key.offset" : 406, - "key.parsed_declaration" : "var sections : [Section]", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[ListLayoutAttributes.Section]", - "key.typeusr" : "$sSay10ListableUI20ListLayoutAttributesV7SectionVGD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV8sectionsSayAC7SectionVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListLayoutAttributes<\/Type>.Section : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 440 - } - ], - "key.bodylength" : 140, - "key.bodyoffset" : 475, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 464 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/ref.struct>.Section<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 169, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "Section", - "key.namelength" : 7, - "key.nameoffset" : 454, - "key.offset" : 447, - "key.parsed_declaration" : "public struct Section : Equatable", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "frame", - "key.namelength" : 5, - "key.nameoffset" : 488, - "key.offset" : 484, - "key.parsed_declaration" : "var frame : CGRect", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV5frameSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var header: Supplementary<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> header<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.namelength" : 6, - "key.nameoffset" : 524, - "key.offset" : 520, - "key.parsed_declaration" : "var header : Supplementary?", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListLayoutAttributes.Supplementary?", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV6headerAC13SupplementaryVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var footer: Supplementary<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> footer<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "footer", - "key.namelength" : 6, - "key.nameoffset" : 560, - "key.offset" : 556, - "key.parsed_declaration" : "var footer : Supplementary?", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListLayoutAttributes.Supplementary?", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV6footerAC13SupplementaryVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var items: [Item<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [Item<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 596, - "key.offset" : 592, - "key.parsed_declaration" : "var items : [Item]", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[ListLayoutAttributes.Item]", - "key.typeusr" : "$sSay10ListableUI20ListLayoutAttributesV4ItemVGD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV5itemsSayAC4ItemVGvp" - } - ], - "key.typename" : "ListLayoutAttributes.Section.Type", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV7SectionVmD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListLayoutAttributes<\/Type>.Supplementary : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 626 - } - ], - "key.bodylength" : 32, - "key.bodyoffset" : 667, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 656 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/ref.struct>.Supplementary<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 67, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "Supplementary", - "key.namelength" : 13, - "key.nameoffset" : 640, - "key.offset" : 633, - "key.parsed_declaration" : "public struct Supplementary : Equatable", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 32, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "frame", - "key.namelength" : 5, - "key.nameoffset" : 680, - "key.offset" : 676, - "key.parsed_declaration" : "var frame : CGRect", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV13SupplementaryV5frameSo6CGRectVvp" - } - ], - "key.typename" : "ListLayoutAttributes.Supplementary.Type", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVmD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV13SupplementaryV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListLayoutAttributes<\/Type>.Item : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 710 - } - ], - "key.bodylength" : 32, - "key.bodyoffset" : 742, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 731 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/ref.struct>.Item<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 58, - "key.line" : 36, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 724, - "key.offset" : 717, - "key.parsed_declaration" : "public struct Item : Equatable", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 36, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "frame", - "key.namelength" : 5, - "key.nameoffset" : 755, - "key.offset" : 751, - "key.parsed_declaration" : "var frame : CGRect", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV4ItemV5frameSo6CGRectVvp" - } - ], - "key.typename" : "ListLayoutAttributes.Item.Type", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV4ItemVmD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV4ItemV" - } - ], - "key.typename" : "ListLayoutAttributes.Type", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesVmD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV" - }, - { - "key.annotated_decl" : "struct ListLayoutAttributes : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 134, - "key.bodyoffset" : 812, - "key.column" : 8, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListLayoutAttributes<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 167, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutAttributes", - "key.namelength" : 20, - "key.nameoffset" : 790, - "key.offset" : 780, - "key.parsed_declaration" : "extension ListLayoutAttributes", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var stringRepresentation: String<\/Type> { get }<\/Declaration>", - "key.bodylength" : 92, - "key.bodyoffset" : 852, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stringRepresentation<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 128, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "stringRepresentation", - "key.namelength" : 20, - "key.nameoffset" : 821, - "key.offset" : 817, - "key.parsed_declaration" : "var stringRepresentation : String", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV20stringRepresentationSSvp" - }, - { - "key.annotated_decl" : "var output: String<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> output<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 15, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "output", - "key.namelength" : 6, - "key.nameoffset" : 865, - "key.offset" : 861, - "key.parsed_declaration" : "var output = \"\"", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV20stringRepresentationSSvg6outputL_SSvp" - } - ], - "key.typename" : "ListLayoutAttributes.Type", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesVmD", - "key.usr" : "s:10ListableUI20ListLayoutAttributesV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 19282, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class ListLayoutContent<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 134 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 127 - } - ], - "key.bodylength" : 11087, - "key.bodyoffset" : 165, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListLayoutContent<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 11113, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutContent", - "key.namelength" : 17, - "key.nameoffset" : 146, - "key.offset" : 140, - "key.parsed_declaration" : "public final class ListLayoutContent", - "key.parsed_scope.end" : 324, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public private(set) var contentSize: CGSize<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 284 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 277 - } - ], - "key.column" : 29, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The full scrollable size of the content, provided by the layout's `ListLayoutResult` return value.", - "key.doc.column" : 29, - "key.doc.comment" : "The full scrollable size of the content, provided by the layout's `ListLayoutResult` return value.", - "key.doc.declaration" : "public private(set) var contentSize: CGSize { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.doc.full_as_xml" : "contentSize<\/Name>s:10ListableUI17ListLayoutContentC11contentSizeSo6CGSizeVvp<\/USR>public private(set) var contentSize: CGSize { get }<\/Declaration>The full scrollable size of the content, provided by the layout’s ListLayoutResult<\/codeVoice> return value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 15, - "key.doc.name" : "contentSize", - "key.doc.type" : "Other", - "key.doclength" : 103, - "key.docoffset" : 170, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "contentSize", - "key.namelength" : 11, - "key.nameoffset" : 301, - "key.offset" : 297, - "key.parsed_declaration" : "public private(set) var contentSize : CGSize", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11contentSizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public private(set) var naturalContentWidth: CGFloat<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 438 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 431 - } - ], - "key.column" : 29, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The natural width of the content, provided by the layout's `ListLayoutResult` return value.", - "key.doc.column" : 29, - "key.doc.comment" : "The natural width of the content, provided by the layout's `ListLayoutResult` return value.", - "key.doc.declaration" : "public private(set) var naturalContentWidth: CGFloat? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.doc.full_as_xml" : "naturalContentWidth<\/Name>s:10ListableUI17ListLayoutContentC07naturalE5Width14CoreFoundation7CGFloatVSgvp<\/USR>public private(set) var naturalContentWidth: CGFloat? { get }<\/Declaration>The natural width of the content, provided by the layout’s ListLayoutResult<\/codeVoice> return value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 18, - "key.doc.name" : "naturalContentWidth", - "key.doc.type" : "Other", - "key.doclength" : 96, - "key.docoffset" : 331, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> naturalContentWidth<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "naturalContentWidth", - "key.namelength" : 19, - "key.nameoffset" : 455, - "key.offset" : 451, - "key.parsed_declaration" : "public private(set) var naturalContentWidth : CGFloat?", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI17ListLayoutContentC07naturalE5Width14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let containerHeader: SupplementaryItemInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 495 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> containerHeader<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "containerHeader", - "key.namelength" : 15, - "key.nameoffset" : 506, - "key.offset" : 502, - "key.parsed_declaration" : "public let containerHeader : SupplementaryItemInfo", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC15containerHeaderAC21SupplementaryItemInfoCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let header: SupplementaryItemInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 550 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> header<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.namelength" : 6, - "key.nameoffset" : 561, - "key.offset" : 557, - "key.parsed_declaration" : "public let header : SupplementaryItemInfo", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC6headerAC21SupplementaryItemInfoCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let footer: SupplementaryItemInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 596 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> footer<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "footer", - "key.namelength" : 6, - "key.nameoffset" : 607, - "key.offset" : 603, - "key.parsed_declaration" : "public let footer : SupplementaryItemInfo", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC6footerAC21SupplementaryItemInfoCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let overscrollFooter: SupplementaryItemInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 647 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "overscrollFooter", - "key.namelength" : 16, - "key.nameoffset" : 658, - "key.offset" : 654, - "key.parsed_declaration" : "public let overscrollFooter : SupplementaryItemInfo", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC16overscrollFooterAC21SupplementaryItemInfoCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let sections: [SectionInfo<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 708 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> sections<\/decl.name>: [SectionInfo<\/ref.class>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "sections", - "key.namelength" : 8, - "key.nameoffset" : 719, - "key.offset" : 715, - "key.parsed_declaration" : "public let sections : [SectionInfo]", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContent.SectionInfo]", - "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC11SectionInfoCGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8sectionsSayAC11SectionInfoCGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var all: [ListLayoutContentItem<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 753 - } - ], - "key.bodylength" : 296, - "key.bodyoffset" : 795, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 332, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "all", - "key.namelength" : 3, - "key.nameoffset" : 764, - "key.offset" : 760, - "key.parsed_declaration" : "public var all : [ListLayoutContentItem]", - "key.parsed_scope.end" : 42, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.typename" : "[any ListLayoutContentItem]", - "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC3allSayAA0cdE4Item_pGvp" - }, - { - "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 38, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "all", - "key.namelength" : 3, - "key.nameoffset" : 808, - "key.offset" : 804, - "key.parsed_declaration" : "var all : [ListLayoutContentItem] = []", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.related_decls" : [ - { - "key.annotated_decl" : "all(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "[any ListLayoutContentItem]", - "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC3allSayAA0cdE4Item_pGvgADL_AFvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func maxValue(for keyPath: KeyPath<\/Type><ListLayoutContentItem<\/Type>, CGFloat<\/Type>>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1102 - } - ], - "key.bodylength" : 106, - "key.bodyoffset" : 1190, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> maxValue<\/decl.name>(for<\/decl.var.parameter.argument_label> keyPath<\/decl.var.parameter.name>: KeyPath<\/ref.class><ListLayoutContentItem<\/ref.protocol>, CGFloat<\/ref.struct>><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 188, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "maxValue(for:)", - "key.namelength" : 63, - "key.nameoffset" : 1114, - "key.offset" : 1109, - "key.parsed_declaration" : "public func maxValue(for keyPath : KeyPath) -> CGFloat", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent) -> (KeyPath) -> CGFloat", - "key.typeusr" : "$s3for14CoreFoundation7CGFloatVs7KeyPathCy10ListableUI21ListLayoutContentItem_pADG_tcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8maxValue3for14CoreFoundation7CGFloatVs7KeyPathCyAA0cdE4Item_pAHG_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init()<\/Declaration>", - "key.bodylength" : 324, - "key.bodyoffset" : 1319, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 337, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 1307, - "key.offset" : 1307, - "key.parsed_declaration" : "init()", - "key.parsed_scope.end" : 61, - "key.parsed_scope.start" : 50, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(containerHeader:header:footer:overscrollFooter:sections:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.Type) -> () -> ListLayoutContent", - "key.typeusr" : "$s10ListableUI17ListLayoutContentCycD", - "key.usr" : "s:10ListableUI17ListLayoutContentCACycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(containerHeader: SupplementaryItemInfo<\/Type>?, header: SupplementaryItemInfo<\/Type>?, footer: SupplementaryItemInfo<\/Type>?, overscrollFooter: SupplementaryItemInfo<\/Type>?, sections: [SectionInfo<\/Type>])<\/Declaration>", - "key.bodylength" : 380, - "key.bodyoffset" : 1883, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(containerHeader<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, overscrollFooter<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, sections<\/decl.var.parameter.argument_label>: [SectionInfo<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 610, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "init(containerHeader:header:footer:overscrollFooter:sections:)", - "key.namelength" : 227, - "key.nameoffset" : 1654, - "key.offset" : 1654, - "key.parsed_declaration" : "init(\n containerHeader : SupplementaryItemInfo?,\n header : SupplementaryItemInfo?,\n footer : SupplementaryItemInfo?,\n overscrollFooter : SupplementaryItemInfo?,\n sections : [SectionInfo]\n)", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 63, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.Type) -> (ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, [ListLayoutContent.SectionInfo]) -> ListLayoutContent", - "key.typeusr" : "$s15containerHeader6header6footer16overscrollFooter8sections10ListableUI17ListLayoutContentCAH21SupplementaryItemInfoCSg_A3KSayAH07SectionO0CGtcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC15containerHeader6header6footer16overscrollFooter8sectionsA2C21SupplementaryItemInfoCSg_A3KSayAC07SectionO0CGtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Fetching Elements", - "key.offset" : 2284 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func layoutAttributes(at indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.bodylength" : 112, - "key.bodyoffset" : 2413, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 202, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "layoutAttributes(at:)", - "key.namelength" : 42, - "key.nameoffset" : 2329, - "key.offset" : 2324, - "key.parsed_declaration" : "func layoutAttributes(at indexPath : IndexPath) -> UICollectionViewLayoutAttributes", - "key.parsed_scope.end" : 89, - "key.parsed_scope.start" : 84, - "key.related_decls" : [ - { - "key.annotated_decl" : "layoutAttributes(in:alwaysIncludeOverscroll:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "layoutAttributes<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: ListLayoutContent<\/Type>.ItemInfo<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 35, - "key.line" : 86, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 2426, - "key.offset" : 2422, - "key.parsed_declaration" : "let item = self.item(at: indexPath)", - "key.parsed_scope.end" : 86, - "key.parsed_scope.start" : 86, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.ItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC8ItemInfoCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2atSo016UICollectionViewdG0C10Foundation9IndexPathV_tF4itemL_AC8ItemInfoCvp" - } - ], - "key.typename" : "(ListLayoutContent) -> (IndexPath) -> UICollectionViewLayoutAttributes", - "key.typeusr" : "$s2atSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2atSo016UICollectionViewdG0C10Foundation9IndexPathV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func item(at indexPath: IndexPath<\/Type>) -> ListLayoutContent<\/Type>.ItemInfo<\/Type><\/Declaration>", - "key.bodylength" : 75, - "key.bodyoffset" : 2607, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> item<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 147, - "key.line" : 91, - "key.modulename" : "ListableUI", - "key.name" : "item(at:)", - "key.namelength" : 30, - "key.nameoffset" : 2541, - "key.offset" : 2536, - "key.parsed_declaration" : "func item(at indexPath : IndexPath) -> ListLayoutContent.ItemInfo", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 91, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent) -> (IndexPath) -> ListLayoutContent.ItemInfo", - "key.typeusr" : "$s2at10ListableUI17ListLayoutContentC8ItemInfoC10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC4item2atAC8ItemInfoC10Foundation9IndexPathV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func supplementaryLayoutAttributes(of kind: String<\/Type>, at indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>", - "key.bodylength" : 749, - "key.bodyoffset" : 2814, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> supplementaryLayoutAttributes<\/decl.name>(of<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 871, - "key.line" : 96, - "key.modulename" : "ListableUI", - "key.name" : "supplementaryLayoutAttributes(of:at:)", - "key.namelength" : 73, - "key.nameoffset" : 2698, - "key.offset" : 2693, - "key.parsed_declaration" : "func supplementaryLayoutAttributes(of kind : String, at indexPath : IndexPath) -> UICollectionViewLayoutAttributes?", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 96, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let section: ListLayoutContent<\/Type>.SectionInfo<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: ListLayoutContent<\/ref.class>.SectionInfo<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 46, - "key.line" : 98, - "key.modulename" : "ListableUI", - "key.name" : "section", - "key.namelength" : 7, - "key.nameoffset" : 2827, - "key.offset" : 2823, - "key.parsed_declaration" : "let section = self.sections[indexPath.section]", - "key.parsed_scope.end" : 98, - "key.parsed_scope.start" : 98, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.SectionInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC11SectionInfoCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC013supplementaryD10Attributes2of2atSo016UICollectionViewdG0CSgSS_10Foundation9IndexPathVtF7sectionL_AC11SectionInfoCvp" - } - ], - "key.typename" : "(ListLayoutContent) -> (String, IndexPath) -> UICollectionViewLayoutAttributes?", - "key.typeusr" : "$s2of2atSo32UICollectionViewLayoutAttributesCSgSS_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC013supplementaryD10Attributes2of2atSo016UICollectionViewdG0CSgSS_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func layoutAttributes(in rect: CGRect<\/Type>, alwaysIncludeOverscroll: Bool<\/Type>) -> [UICollectionViewLayoutAttributes<\/Type>]<\/Declaration>", - "key.bodylength" : 238, - "key.bodyoffset" : 3684, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(in<\/decl.var.parameter.argument_label> rect<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, alwaysIncludeOverscroll<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [UICollectionViewLayoutAttributes<\/ref.class>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 349, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "layoutAttributes(in:alwaysIncludeOverscroll:)", - "key.namelength" : 65, - "key.nameoffset" : 3579, - "key.offset" : 3574, - "key.parsed_declaration" : "func layoutAttributes(in rect: CGRect, alwaysIncludeOverscroll : Bool) -> [UICollectionViewLayoutAttributes]", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 116, - "key.related_decls" : [ - { - "key.annotated_decl" : "layoutAttributes(at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "layoutAttributes<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent) -> (CGRect, Bool) -> [UICollectionViewLayoutAttributes]", - "key.typeusr" : "$s2in23alwaysIncludeOverscrollSaySo32UICollectionViewLayoutAttributesCGSo6CGRectV_SbtcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2in23alwaysIncludeOverscrollSaySo016UICollectionViewdG0CGSo6CGRectV_SbtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func content(in rect: CGRect<\/Type>, alwaysIncludeOverscroll: Bool<\/Type>, includeUnpopulated: Bool<\/Type>) -> [ListLayoutContent<\/Type>.ContentItem<\/Type>]<\/Declaration>", - "key.bodylength" : 4236, - "key.bodyoffset" : 4091, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> content<\/decl.name>(in<\/decl.var.parameter.argument_label> rect<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, alwaysIncludeOverscroll<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, includeUnpopulated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [ListLayoutContent<\/ref.class>.ContentItem<\/ref.enum>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 4395, - "key.line" : 126, - "key.modulename" : "ListableUI", - "key.name" : "content(in:alwaysIncludeOverscroll:includeUnpopulated:)", - "key.namelength" : 112, - "key.nameoffset" : 3938, - "key.offset" : 3933, - "key.parsed_declaration" : "func content(\n in rect: CGRect,\n alwaysIncludeOverscroll : Bool,\n includeUnpopulated: Bool\n) -> [ListLayoutContent.ContentItem]", - "key.parsed_scope.end" : 240, - "key.parsed_scope.start" : 126, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var attributes: [ListLayoutContent<\/Type>.ContentItem<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Supplementary items are technically attached to index paths. Eg, list headers\nand footers are attached to (0,0), and section headers and footers are attached to\n(sectionIndex, 0). Because of this, we can't return any list headers or footers\nunless there's at least one section – the collection view will not have anything to\nattach them to, and will then crash.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> attributes<\/decl.name>: [ListLayoutContent<\/ref.class>.ContentItem<\/ref.enum>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 50, - "key.line" : 141, - "key.modulename" : "ListableUI", - "key.name" : "attributes", - "key.namelength" : 10, - "key.nameoffset" : 4593, - "key.offset" : 4589, - "key.parsed_declaration" : "var attributes = [ListLayoutContent.ContentItem]()", - "key.parsed_scope.end" : 141, - "key.parsed_scope.start" : 141, - "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContent.ContentItem]", - "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC0E4ItemOGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC7content2in23alwaysIncludeOverscroll18includeUnpopulatedSayAC0E4ItemOGSo6CGRectV_S2btF10attributesL_AJvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "func include(_ supplementary: ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 76, - "key.bodyoffset" : 4738, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> include<\/decl.name>(_<\/decl.var.parameter.argument_label> supplementary<\/decl.var.parameter.name>: ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 158, - "key.line" : 143, - "key.modulename" : "ListableUI", - "key.name" : "include(_:)", - "key.namelength" : 66, - "key.nameoffset" : 4662, - "key.offset" : 4657, - "key.parsed_declaration" : "func include(_ supplementary : ListLayoutContent.SupplementaryItemInfo) -> Bool", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 143, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.SupplementaryItemInfo) -> Bool", - "key.typeusr" : "$sySb10ListableUI17ListLayoutContentC21SupplementaryItemInfoCcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC7content2in23alwaysIncludeOverscroll18includeUnpopulatedSayAC0E4ItemOGSo6CGRectV_S2btF0K0L_ySbAC013SupplementaryM4InfoCF" - } - ], - "key.typename" : "(ListLayoutContent) -> (CGRect, Bool, Bool) -> [ListLayoutContent.ContentItem]", - "key.typeusr" : "$s2in23alwaysIncludeOverscroll18includeUnpopulatedSay10ListableUI17ListLayoutContentC0K4ItemOGSo6CGRectV_S2btcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC7content2in23alwaysIncludeOverscroll18includeUnpopulatedSayAC0E4ItemOGSo6CGRectV_S2btF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Performing Layouts", - "key.offset" : 8348 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func apply(result: ListLayoutResult<\/Type>)<\/Declaration>", - "key.bodylength" : 113, - "key.bodyoffset" : 8428, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(result<\/decl.var.parameter.argument_label>: ListLayoutResult<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 153, - "key.line" : 246, - "key.modulename" : "ListableUI", - "key.name" : "apply(result:)", - "key.namelength" : 32, - "key.nameoffset" : 8394, - "key.offset" : 8389, - "key.parsed_declaration" : "func apply(result : ListLayoutResult)", - "key.parsed_scope.end" : 249, - "key.parsed_scope.start" : 246, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent) -> (ListLayoutResult) -> ()", - "key.typeusr" : "$s6resulty10ListableUI16ListLayoutResultV_tcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC5apply6resultyAA0cD6ResultV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func setSectionContentsFrames()<\/Declaration>", - "key.bodylength" : 81, - "key.bodyoffset" : 8585, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setSectionContentsFrames<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 115, - "key.line" : 251, - "key.modulename" : "ListableUI", - "key.name" : "setSectionContentsFrames()", - "key.namelength" : 26, - "key.nameoffset" : 8557, - "key.offset" : 8552, - "key.parsed_declaration" : "func setSectionContentsFrames()", - "key.parsed_scope.end" : 255, - "key.parsed_scope.start" : 251, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17ListLayoutContentC24setSectionContentsFramesyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func move(from: [IndexPath<\/Type>], to: [IndexPath<\/Type>])<\/Declaration>", - "key.bodylength" : 1054, - "key.bodyoffset" : 8730, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> move<\/decl.name>(from<\/decl.var.parameter.argument_label>: [IndexPath<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: [IndexPath<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1108, - "key.line" : 257, - "key.modulename" : "ListableUI", - "key.name" : "move(from:to:)", - "key.namelength" : 42, - "key.nameoffset" : 8682, - "key.offset" : 8677, - "key.parsed_declaration" : "func move(from : [IndexPath], to : [IndexPath])", - "key.parsed_scope.end" : 289, - "key.parsed_scope.start" : 257, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "struct Move<\/Declaration>", - "key.bodylength" : 105, - "key.bodyoffset" : 8931, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Move<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 119, - "key.line" : 265, - "key.modulename" : "ListableUI", - "key.name" : "Move", - "key.namelength" : 4, - "key.nameoffset" : 8925, - "key.offset" : 8918, - "key.parsed_declaration" : "struct Move", - "key.parsed_scope.end" : 269, - "key.parsed_scope.start" : 265, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let from: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> from<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 266, - "key.modulename" : "ListableUI", - "key.name" : "from", - "key.namelength" : 4, - "key.nameoffset" : 8948, - "key.offset" : 8944, - "key.parsed_declaration" : "let from : IndexPath", - "key.parsed_scope.end" : 266, - "key.parsed_scope.start" : 266, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toySay10Foundation9IndexPathVG_AJtF4MoveL_VAeIvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let to: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> to<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 267, - "key.modulename" : "ListableUI", - "key.name" : "to", - "key.namelength" : 2, - "key.nameoffset" : 8981, - "key.offset" : 8977, - "key.parsed_declaration" : "let to : IndexPath", - "key.parsed_scope.end" : 267, - "key.parsed_scope.start" : 267, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toySay10Foundation9IndexPathVG_AJtF4MoveL_VAfIvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let item: ItemInfo<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: ItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 268, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 9012, - "key.offset" : 9008, - "key.parsed_declaration" : "let item : ItemInfo", - "key.parsed_scope.end" : 268, - "key.parsed_scope.start" : 268, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.ItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC8ItemInfoCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toySay10Foundation9IndexPathVG_AJtF4MoveL_V4itemAC8ItemInfoCvp" - } - ], - "key.typename" : "Move.Type", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC4move4from2toySay10Foundation9IndexPathVG_AJtF4MoveL_VmD", - "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toySay10Foundation9IndexPathVG_AJtF4MoveL_V" - }, - { - "key.annotated_decl" : "let moves: [Move<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moves<\/decl.name>: [Move<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 117, - "key.line" : 271, - "key.modulename" : "ListableUI", - "key.name" : "moves", - "key.namelength" : 5, - "key.nameoffset" : 9059, - "key.offset" : 9055, - "key.parsed_declaration" : "let moves = zip(from, to).map { from, to in\n Move(from: from, to: to, item: self.item(at: from))\n}", - "key.parsed_scope.end" : 271, - "key.parsed_scope.start" : 271, - "key.reusingastcontext" : false, - "key.typename" : "[Move]", - "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC4move4from2toySay10Foundation9IndexPathVG_AJtF4MoveL_VGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toySay10Foundation9IndexPathVG_AJtF5movesL_SayAcdeFyAJ_AJtF4MoveL_VGvp" - } - ], - "key.typename" : "(ListLayoutContent) -> ([IndexPath], [IndexPath]) -> ()", - "key.typeusr" : "$s4from2toySay10Foundation9IndexPathVG_AFtcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toySay10Foundation9IndexPathVG_AJtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func reindexIndexPaths()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 9795 - } - ], - "key.bodylength" : 248, - "key.bodyoffset" : 9833, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "2) In the opposite order, now add back the items in their new orders. This is done\nin the opposite order so index paths remain stable.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> reindexIndexPaths<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 279, - "key.line" : 291, - "key.modulename" : "ListableUI", - "key.name" : "reindexIndexPaths()", - "key.namelength" : 19, - "key.nameoffset" : 9808, - "key.offset" : 9803, - "key.parsed_declaration" : "private func reindexIndexPaths()", - "key.parsed_scope.end" : 298, - "key.parsed_scope.start" : 291, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17ListLayoutContentC17reindexIndexPaths33_0AABF38DDED9446349CBDF7E2938DA75LLyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 17, - "key.name" : "MARK: Layout Data", - "key.offset" : 10102 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var layoutAttributes: ListLayoutAttributes<\/Type> { get }<\/Declaration>", - "key.bodylength" : 1069, - "key.bodyoffset" : 10181, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAttributes<\/decl.name>: ListLayoutAttributes<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 1115, - "key.line" : 304, - "key.modulename" : "ListableUI", - "key.name" : "layoutAttributes", - "key.namelength" : 16, - "key.nameoffset" : 10140, - "key.offset" : 10136, - "key.parsed_declaration" : "var layoutAttributes : ListLayoutAttributes", - "key.parsed_scope.end" : 323, - "key.parsed_scope.start" : 304, - "key.related_decls" : [ - { - "key.annotated_decl" : "layoutAttributes(at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "layoutAttributes(in:alwaysIncludeOverscroll:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutAttributes", - "key.typeusr" : "$s10ListableUI20ListLayoutAttributesVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributesAA0cdG0Vvp" - } - ], - "key.typename" : "ListLayoutContent.Type", - "key.typeusr" : "$s10ListableUI17ListLayoutContentCmD", - "key.usr" : "s:10ListableUI17ListLayoutContentC" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 41, - "key.name" : "TODO: Consider `AnyListLayoutContentItem`", - "key.offset" : 11259 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ListLayoutContentItem : AnyObject<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11301 - } - ], - "key.bodylength" : 184, - "key.bodyoffset" : 11352, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 11341 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayoutContentItem<\/decl.name> : AnyObject<\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 229, - "key.line" : 328, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutContentItem", - "key.namelength" : 21, - "key.nameoffset" : 11317, - "key.offset" : 11308, - "key.parsed_declaration" : "public protocol ListLayoutContentItem : AnyObject", - "key.parsed_scope.end" : 337, - "key.parsed_scope.start" : 328, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var measuredSize: CGSize<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 11384, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> measuredSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 330, - "key.modulename" : "ListableUI", - "key.name" : "measuredSize", - "key.namelength" : 12, - "key.nameoffset" : 11361, - "key.offset" : 11357, - "key.parsed_declaration" : "var measuredSize : CGSize", - "key.parsed_scope.end" : 330, - "key.parsed_scope.start" : 330, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI21ListLayoutContentItemP12measuredSizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var size: CGSize<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 11423, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 332, - "key.modulename" : "ListableUI", - "key.name" : "size", - "key.namelength" : 4, - "key.nameoffset" : 11408, - "key.offset" : 11404, - "key.parsed_declaration" : "var size : CGSize", - "key.parsed_scope.end" : 332, - "key.parsed_scope.start" : 332, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI21ListLayoutContentItemP4sizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var x: CGFloat<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 11455, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 333, - "key.modulename" : "ListableUI", - "key.name" : "x", - "key.namelength" : 1, - "key.nameoffset" : 11442, - "key.offset" : 11438, - "key.parsed_declaration" : "var x : CGFloat", - "key.parsed_scope.end" : 333, - "key.parsed_scope.start" : 333, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI21ListLayoutContentItemP1x14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var y: CGFloat<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 11487, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 334, - "key.modulename" : "ListableUI", - "key.name" : "y", - "key.namelength" : 1, - "key.nameoffset" : 11474, - "key.offset" : 11470, - "key.parsed_declaration" : "var y : CGFloat", - "key.parsed_scope.end" : 334, - "key.parsed_scope.start" : 334, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI21ListLayoutContentItemP1y14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var zIndex: Int<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 9, - "key.bodyoffset" : 11525, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 336, - "key.modulename" : "ListableUI", - "key.name" : "zIndex", - "key.namelength" : 6, - "key.nameoffset" : 11511, - "key.offset" : 11507, - "key.parsed_declaration" : "var zIndex : Int", - "key.parsed_scope.end" : 336, - "key.parsed_scope.start" : 336, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp" - } - ], - "key.typename" : "ListLayoutContentItem.Type", - "key.typeusr" : "$s10ListableUI21ListLayoutContentItem_pmD", - "key.usr" : "s:10ListableUI21ListLayoutContentItemP" - }, - { - "key.annotated_decl" : "public final class ListLayoutContent<\/Declaration>", - "key.bodylength" : 7306, - "key.bodyoffset" : 11569, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListLayoutContent<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 7336, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutContent", - "key.namelength" : 17, - "key.nameoffset" : 11550, - "key.offset" : 11540, - "key.parsed_declaration" : "extension ListLayoutContent", - "key.parsed_scope.end" : 578, - "key.parsed_scope.start" : 340, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class SectionInfo<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 11581 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11574 - } - ], - "key.bodylength" : 1855, - "key.bodyoffset" : 11610, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SectionInfo<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1879, - "key.line" : 342, - "key.modulename" : "ListableUI", - "key.name" : "SectionInfo", - "key.namelength" : 11, - "key.nameoffset" : 11593, - "key.offset" : 11587, - "key.parsed_declaration" : "public final class SectionInfo", - "key.parsed_scope.end" : 409, - "key.parsed_scope.start" : 342, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let state: PresentationState<\/Type>.SectionState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> state<\/decl.name>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 344, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 11623, - "key.offset" : 11619, - "key.parsed_declaration" : "let state : PresentationState.SectionState", - "key.parsed_scope.end" : 344, - "key.parsed_scope.start" : 344, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.SectionState", - "key.typeusr" : "$s10ListableUI17PresentationStateC07SectionD0CD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC5stateAA17PresentationStateC0fJ0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let header: SupplementaryItemInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11679 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> header<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 346, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.namelength" : 6, - "key.nameoffset" : 11690, - "key.offset" : 11686, - "key.parsed_declaration" : "public let header : SupplementaryItemInfo", - "key.parsed_scope.end" : 346, - "key.parsed_scope.start" : 346, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC6headerAC017SupplementaryItemG0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let footer: SupplementaryItemInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11729 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> footer<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 347, - "key.modulename" : "ListableUI", - "key.name" : "footer", - "key.namelength" : 6, - "key.nameoffset" : 11740, - "key.offset" : 11736, - "key.parsed_declaration" : "public let footer : SupplementaryItemInfo", - "key.parsed_scope.end" : 347, - "key.parsed_scope.start" : 347, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC6footerAC017SupplementaryItemG0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public internal(set) var items: [ItemInfo<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.internal", - "key.length" : 13, - "key.offset" : 11803 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11796 - } - ], - "key.column" : 34, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> internal<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> items<\/decl.name>: [ItemInfo<\/ref.class>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 349, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 11821, - "key.offset" : 11817, - "key.parsed_declaration" : "public internal(set) var items : [ItemInfo]", - "key.parsed_scope.end" : 349, - "key.parsed_scope.start" : 349, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[ListLayoutContent.ItemInfo]", - "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC8ItemInfoCGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC5itemsSayAC04ItemG0CGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layouts: SectionLayouts<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11857 - } - ], - "key.bodylength" : 46, - "key.bodyoffset" : 11894, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: SectionLayouts<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 77, - "key.line" : 351, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 11868, - "key.offset" : 11864, - "key.parsed_declaration" : "public var layouts : SectionLayouts", - "key.parsed_scope.end" : 353, - "key.parsed_scope.start" : 351, - "key.reusingastcontext" : false, - "key.typename" : "SectionLayouts", - "key.typeusr" : "$s10ListableUI14SectionLayoutsVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7layoutsAA0F7LayoutsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isHeaderSticky: Bool<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11959 - } - ], - "key.bodylength" : 72, - "key.bodyoffset" : 11994, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isHeaderSticky<\/decl.name>: Bool<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 101, - "key.line" : 355, - "key.modulename" : "ListableUI", - "key.name" : "isHeaderSticky", - "key.namelength" : 14, - "key.nameoffset" : 11970, - "key.offset" : 11966, - "key.parsed_declaration" : "public var isHeaderSticky : Bool?", - "key.parsed_scope.end" : 357, - "key.parsed_scope.start" : 355, - "key.reusingastcontext" : false, - "key.typename" : "Bool?", - "key.typeusr" : "$sSbSgD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC14isHeaderStickySbSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>] { get }<\/Declaration>", - "key.bodylength" : 335, - "key.bodyoffset" : 12120, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 371, - "key.line" : 359, - "key.modulename" : "ListableUI", - "key.name" : "all", - "key.namelength" : 3, - "key.nameoffset" : 12089, - "key.offset" : 12085, - "key.parsed_declaration" : "var all : [ListLayoutContentItem]", - "key.parsed_scope.end" : 373, - "key.parsed_scope.start" : 359, - "key.reusingastcontext" : false, - "key.typename" : "[any ListLayoutContentItem]", - "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC3allSayAA0cdE4Item_pGvp" - }, - { - "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>]<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 38, - "key.line" : 360, - "key.modulename" : "ListableUI", - "key.name" : "all", - "key.namelength" : 3, - "key.nameoffset" : 12137, - "key.offset" : 12133, - "key.parsed_declaration" : "var all : [ListLayoutContentItem] = []", - "key.parsed_scope.end" : 360, - "key.parsed_scope.start" : 360, - "key.related_decls" : [ - { - "key.annotated_decl" : "all(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "[any ListLayoutContentItem]", - "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC3allSayAA0cdE4Item_pGvgAFL_AHvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var contentsFrame: CGRect<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 12474 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> contentsFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 375, - "key.modulename" : "ListableUI", - "key.name" : "contentsFrame", - "key.namelength" : 13, - "key.nameoffset" : 12491, - "key.offset" : 12487, - "key.parsed_declaration" : "private(set) var contentsFrame : CGRect", - "key.parsed_scope.end" : 375, - "key.parsed_scope.start" : 375, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC13contentsFrameSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(state: PresentationState<\/Type>.SectionState<\/Type>, header: SupplementaryItemInfo<\/Type>?, footer: SupplementaryItemInfo<\/Type>?, items: [ItemInfo<\/Type>])<\/Declaration>", - "key.bodylength" : 267, - "key.bodyoffset" : 12729, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(state<\/decl.var.parameter.argument_label>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [ItemInfo<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 458, - "key.line" : 377, - "key.modulename" : "ListableUI", - "key.name" : "init(state:header:footer:items:)", - "key.namelength" : 188, - "key.nameoffset" : 12539, - "key.offset" : 12539, - "key.parsed_declaration" : "init(\n state : PresentationState.SectionState,\n header : SupplementaryItemInfo?,\n footer : SupplementaryItemInfo?,\n items : [ItemInfo]\n)", - "key.parsed_scope.end" : 391, - "key.parsed_scope.start" : 377, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.SectionInfo.Type) -> (PresentationState.SectionState, ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, [ListLayoutContent.ItemInfo]) -> ListLayoutContent.SectionInfo", - "key.typeusr" : "$s5state6header6footer5items10ListableUI17ListLayoutContentC11SectionInfoCAE17PresentationStateC0jM0C_AG017SupplementaryItemK0CSgAPSayAG0oK0CGtcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC5state6header6footer5itemsAeA17PresentationStateC0fM0C_AC017SupplementaryItemG0CSgAPSayAC0oG0CGtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func setContentsFrame()<\/Declaration>", - "key.bodylength" : 419, - "key.bodyoffset" : 13040, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setContentsFrame<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 445, - "key.line" : 393, - "key.modulename" : "ListableUI", - "key.name" : "setContentsFrame()", - "key.namelength" : 18, - "key.nameoffset" : 13020, - "key.offset" : 13015, - "key.parsed_declaration" : "func setContentsFrame()", - "key.parsed_scope.end" : 408, - "key.parsed_scope.start" : 393, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var allFrames: [CGRect<\/Type>]<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> allFrames<\/decl.name>: [CGRect<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 29, - "key.line" : 395, - "key.modulename" : "ListableUI", - "key.name" : "allFrames", - "key.namelength" : 9, - "key.nameoffset" : 13070, - "key.offset" : 13066, - "key.parsed_declaration" : "var allFrames : [CGRect] = []", - "key.parsed_scope.end" : 395, - "key.parsed_scope.start" : 395, - "key.reusingastcontext" : false, - "key.typename" : "[CGRect]", - "key.typeusr" : "$sSaySo6CGRectVGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC16setContentsFrameyyF9allFramesL_SaySo6CGRectVGvp" - } - ], - "key.typename" : "(ListLayoutContent.SectionInfo) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC16setContentsFrameyyF" - } - ], - "key.typename" : "ListLayoutContent.SectionInfo.Type", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC11SectionInfoCmD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class SupplementaryItemInfo : ListLayoutContentItem<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 13479 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13472 - } - ], - "key.bodylength" : 2310, - "key.bodyoffset" : 13542, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 21, - "key.offset" : 13515 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SupplementaryItemInfo<\/decl.name> : ListLayoutContentItem<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayoutContentItem" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 2368, - "key.line" : 411, - "key.modulename" : "ListableUI", - "key.name" : "SupplementaryItemInfo", - "key.namelength" : 21, - "key.nameoffset" : 13491, - "key.offset" : 13485, - "key.parsed_declaration" : "public final class SupplementaryItemInfo : ListLayoutContentItem", - "key.parsed_scope.end" : 487, - "key.parsed_scope.start" : 411, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func empty(_ kind: SupplementaryKind<\/Type>) -> SupplementaryItemInfo<\/Type><\/Declaration>", - "key.bodylength" : 175, - "key.bodyoffset" : 13631, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> empty<\/decl.name>(_<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> SupplementaryItemInfo<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 256, - "key.line" : 413, - "key.modulename" : "ListableUI", - "key.name" : "empty(_:)", - "key.namelength" : 33, - "key.nameoffset" : 13563, - "key.offset" : 13551, - "key.parsed_declaration" : "static func empty(_ kind : SupplementaryKind) -> SupplementaryItemInfo", - "key.parsed_scope.end" : 420, - "key.parsed_scope.start" : 413, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.SupplementaryItemInfo.Type) -> (SupplementaryKind) -> ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$sy10ListableUI17ListLayoutContentC21SupplementaryItemInfoCAA0F4KindOcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC5emptyyAeA0F4KindOFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let state: AnyPresentationHeaderFooterState<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> state<\/decl.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 422, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 13829, - "key.offset" : 13825, - "key.parsed_declaration" : "let state : AnyPresentationHeaderFooterState?", - "key.parsed_scope.end" : 422, - "key.parsed_scope.start" : 422, - "key.reusingastcontext" : false, - "key.typename" : "(any AnyPresentationHeaderFooterState)?", - "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC5stateAA32AnyPresentationHeaderFooterState_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let kind: SupplementaryKind<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 424, - "key.modulename" : "ListableUI", - "key.name" : "kind", - "key.namelength" : 4, - "key.nameoffset" : 13892, - "key.offset" : 13888, - "key.parsed_declaration" : "let kind : SupplementaryKind", - "key.parsed_scope.end" : 424, - "key.parsed_scope.start" : 424, - "key.reusingastcontext" : false, - "key.typename" : "SupplementaryKind", - "key.typeusr" : "$s10ListableUI17SupplementaryKindOD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC4kindAA0F4KindOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let measurer: (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13925 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> measurer<\/decl.name>: (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 425, - "key.modulename" : "ListableUI", - "key.name" : "measurer", - "key.namelength" : 8, - "key.nameoffset" : 13936, - "key.offset" : 13932, - "key.parsed_declaration" : "public let measurer : (Sizing.MeasureInfo) -> CGSize", - "key.parsed_scope.end" : 425, - "key.parsed_scope.start" : 425, - "key.reusingastcontext" : false, - "key.typename" : "(Sizing.MeasureInfo) -> CGSize", - "key.typeusr" : "$sySo6CGSizeV10ListableUI6SizingO11MeasureInfoVcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC8measurerySo6CGSizeVAA6SizingO07MeasureH0Vcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let isPopulated: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14003 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> isPopulated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 427, - "key.modulename" : "ListableUI", - "key.name" : "isPopulated", - "key.namelength" : 11, - "key.nameoffset" : 14014, - "key.offset" : 14010, - "key.parsed_declaration" : "public let isPopulated : Bool", - "key.parsed_scope.end" : 427, - "key.parsed_scope.start" : 427, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC11isPopulatedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var measuredSize: CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14066 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> measuredSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 429, - "key.modulename" : "ListableUI", - "key.name" : "measuredSize", - "key.namelength" : 12, - "key.nameoffset" : 14077, - "key.offset" : 14073, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP12measuredSizeSo6CGSizeVvp" - } - ], - "key.parsed_declaration" : "public var measuredSize : CGSize = .zero", - "key.parsed_scope.end" : 429, - "key.parsed_scope.start" : 429, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC12measuredSizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var size: CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14124 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 431, - "key.modulename" : "ListableUI", - "key.name" : "size", - "key.namelength" : 4, - "key.nameoffset" : 14135, - "key.offset" : 14131, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP4sizeSo6CGSizeVvp" - } - ], - "key.parsed_declaration" : "public var size : CGSize = .zero", - "key.parsed_scope.end" : 431, - "key.parsed_scope.start" : 431, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC4sizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var x: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14174 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 433, - "key.modulename" : "ListableUI", - "key.name" : "x", - "key.namelength" : 1, - "key.nameoffset" : 14185, - "key.offset" : 14181, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP1x14CoreFoundation7CGFloatVvp" - } - ], - "key.parsed_declaration" : "public var x : CGFloat = .zero", - "key.parsed_scope.end" : 433, - "key.parsed_scope.start" : 433, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC1x14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var pinnedX: CGFloat<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pinnedX<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 434, - "key.modulename" : "ListableUI", - "key.name" : "pinnedX", - "key.namelength" : 7, - "key.nameoffset" : 14217, - "key.offset" : 14213, - "key.parsed_declaration" : "var pinnedX : CGFloat? = nil", - "key.parsed_scope.end" : 434, - "key.parsed_scope.start" : 434, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC7pinnedX14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var y: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14259 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 436, - "key.modulename" : "ListableUI", - "key.name" : "y", - "key.namelength" : 1, - "key.nameoffset" : 14270, - "key.offset" : 14266, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP1y14CoreFoundation7CGFloatVvp" - } - ], - "key.parsed_declaration" : "public var y : CGFloat = .zero", - "key.parsed_scope.end" : 436, - "key.parsed_scope.start" : 436, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC1y14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var pinnedY: CGFloat<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pinnedY<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 437, - "key.modulename" : "ListableUI", - "key.name" : "pinnedY", - "key.namelength" : 7, - "key.nameoffset" : 14302, - "key.offset" : 14298, - "key.parsed_declaration" : "var pinnedY : CGFloat? = nil", - "key.parsed_scope.end" : 437, - "key.parsed_scope.start" : 437, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC7pinnedY14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var zIndex: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14344 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 439, - "key.modulename" : "ListableUI", - "key.name" : "zIndex", - "key.namelength" : 6, - "key.nameoffset" : 14355, - "key.offset" : 14351, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp" - } - ], - "key.parsed_declaration" : "public var zIndex : Int = 0", - "key.parsed_scope.end" : 439, - "key.parsed_scope.start" : 439, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC6zIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layouts: HeaderFooterLayouts<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14389 - } - ], - "key.bodylength" : 61, - "key.bodyoffset" : 14431, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: HeaderFooterLayouts<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 97, - "key.line" : 441, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 14400, - "key.offset" : 14396, - "key.parsed_declaration" : "public var layouts : HeaderFooterLayouts", - "key.parsed_scope.end" : 443, - "key.parsed_scope.start" : 441, - "key.reusingastcontext" : false, - "key.typename" : "HeaderFooterLayouts", - "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC7layoutsAA19HeaderFooterLayoutsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var containsFirstResponder: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14511 - } - ], - "key.bodylength" : 65, - "key.bodyoffset" : 14553, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> containsFirstResponder<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 101, - "key.line" : 445, - "key.modulename" : "ListableUI", - "key.name" : "containsFirstResponder", - "key.namelength" : 22, - "key.nameoffset" : 14522, - "key.offset" : 14518, - "key.parsed_declaration" : "public var containsFirstResponder : Bool", - "key.parsed_scope.end" : 447, - "key.parsed_scope.start" : 445, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC22containsFirstResponderSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var defaultFrame: CGRect<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14637 - } - ], - "key.bodylength" : 130, - "key.bodyoffset" : 14671, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 158, - "key.line" : 449, - "key.modulename" : "ListableUI", - "key.name" : "defaultFrame", - "key.namelength" : 12, - "key.nameoffset" : 14648, - "key.offset" : 14644, - "key.parsed_declaration" : "public var defaultFrame : CGRect", - "key.parsed_scope.end" : 454, - "key.parsed_scope.start" : 449, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC12defaultFrameSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var visibleFrame: CGRect<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14820 - } - ], - "key.bodylength" : 220, - "key.bodyoffset" : 14854, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> visibleFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 248, - "key.line" : 456, - "key.modulename" : "ListableUI", - "key.name" : "visibleFrame", - "key.namelength" : 12, - "key.nameoffset" : 14831, - "key.offset" : 14827, - "key.parsed_declaration" : "public var visibleFrame : CGRect", - "key.parsed_scope.end" : 464, - "key.parsed_scope.start" : 456, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC12visibleFrameSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(state: AnyPresentationHeaderFooterState<\/Type>?, kind: SupplementaryKind<\/Type>, isPopulated: Bool<\/Type>, measurer: @escaping (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type>)<\/Declaration>", - "key.bodylength" : 149, - "key.bodyoffset" : 15298, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(state<\/decl.var.parameter.argument_label>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, kind<\/decl.var.parameter.argument_label>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, isPopulated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, measurer<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 355, - "key.line" : 466, - "key.modulename" : "ListableUI", - "key.name" : "init(state:kind:isPopulated:measurer:)", - "key.namelength" : 203, - "key.nameoffset" : 15093, - "key.offset" : 15093, - "key.parsed_declaration" : "init(\n state : AnyPresentationHeaderFooterState?,\n kind : SupplementaryKind,\n isPopulated: Bool,\n measurer : @escaping (Sizing.MeasureInfo) -> CGSize\n)", - "key.parsed_scope.end" : 476, - "key.parsed_scope.start" : 466, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.SupplementaryItemInfo.Type) -> ((any AnyPresentationHeaderFooterState)?, SupplementaryKind, Bool, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.SupplementaryItemInfo", - "key.typeusr" : "$s5state4kind11isPopulated8measurer10ListableUI17ListLayoutContentC21SupplementaryItemInfoCAE32AnyPresentationHeaderFooterState_pSg_AE0K4KindOSbSo6CGSizeVAE6SizingO07MeasureM0VctcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC5state4kind11isPopulated8measurerAeA32AnyPresentationHeaderFooterState_pSg_AA0F4KindOSbSo6CGSizeVAA6SizingO07MeasureH0Vctcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func layoutAttributes(with indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.bodylength" : 285, - "key.bodyoffset" : 15561, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(with<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 381, - "key.line" : 478, - "key.modulename" : "ListableUI", - "key.name" : "layoutAttributes(with:)", - "key.namelength" : 44, - "key.nameoffset" : 15471, - "key.offset" : 15466, - "key.parsed_declaration" : "func layoutAttributes(with indexPath : IndexPath) -> UICollectionViewLayoutAttributes", - "key.parsed_scope.end" : 486, - "key.parsed_scope.start" : 478, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 114, - "key.line" : 480, - "key.modulename" : "ListableUI", - "key.name" : "attributes", - "key.namelength" : 10, - "key.nameoffset" : 15578, - "key.offset" : 15574, - "key.parsed_declaration" : "let attributes = UICollectionViewLayoutAttributes(forSupplementaryViewOfKind: self.kind.rawValue, with: indexPath)", - "key.parsed_scope.end" : 480, - "key.parsed_scope.start" : 480, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionViewLayoutAttributes", - "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC16layoutAttributes4withSo016UICollectionViewdJ0C10Foundation9IndexPathV_tF10attributesL_AIvp" - } - ], - "key.typename" : "(ListLayoutContent.SupplementaryItemInfo) -> (IndexPath) -> UICollectionViewLayoutAttributes", - "key.typeusr" : "$s4withSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC16layoutAttributes4withSo016UICollectionViewdJ0C10Foundation9IndexPathV_tF" - } - ], - "key.typename" : "ListLayoutContent.SupplementaryItemInfo.Type", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCmD", - "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class ItemInfo : ListLayoutContentItem<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 15871 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 15864 - } - ], - "key.bodylength" : 1808, - "key.bodyoffset" : 15921, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 21, - "key.offset" : 15894 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemInfo<\/decl.name> : ListLayoutContentItem<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayoutContentItem" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1853, - "key.line" : 490, - "key.modulename" : "ListableUI", - "key.name" : "ItemInfo", - "key.namelength" : 8, - "key.nameoffset" : 15883, - "key.offset" : 15877, - "key.parsed_declaration" : "public final class ItemInfo : ListLayoutContentItem", - "key.parsed_scope.end" : 547, - "key.parsed_scope.start" : 490, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let state: AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> state<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 492, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 15934, - "key.offset" : 15930, - "key.parsed_declaration" : "let state : AnyPresentationItemState", - "key.parsed_scope.end" : 492, - "key.parsed_scope.start" : 492, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC5stateAA015AnyPresentationF5State_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var indexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 494, - "key.modulename" : "ListableUI", - "key.name" : "indexPath", - "key.namelength" : 9, - "key.nameoffset" : 15988, - "key.offset" : 15984, - "key.parsed_declaration" : "var indexPath : IndexPath", - "key.parsed_scope.end" : 494, - "key.parsed_scope.start" : 494, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC9indexPath10Foundation05IndexI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 61, - "key.line" : 496, - "key.modulename" : "ListableUI", - "key.name" : "insertAndRemoveAnimations", - "key.namelength" : 25, - "key.nameoffset" : 16039, - "key.offset" : 16035, - "key.parsed_declaration" : "let insertAndRemoveAnimations : ItemInsertAndRemoveAnimations", - "key.parsed_scope.end" : 496, - "key.parsed_scope.start" : 496, - "key.reusingastcontext" : false, - "key.typename" : "ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC25insertAndRemoveAnimationsAA0f6InsertijK0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let measurer: (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16105 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> measurer<\/decl.name>: (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 497, - "key.modulename" : "ListableUI", - "key.name" : "measurer", - "key.namelength" : 8, - "key.nameoffset" : 16116, - "key.offset" : 16112, - "key.parsed_declaration" : "public let measurer : (Sizing.MeasureInfo) -> CGSize", - "key.parsed_scope.end" : 497, - "key.parsed_scope.start" : 497, - "key.reusingastcontext" : false, - "key.typename" : "(Sizing.MeasureInfo) -> CGSize", - "key.typeusr" : "$sySo6CGSizeV10ListableUI6SizingO11MeasureInfoVcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC8measurerySo6CGSizeVAA6SizingO07MeasureG0Vcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var position: ItemPosition<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16175 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> position<\/decl.name>: ItemPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 499, - "key.modulename" : "ListableUI", - "key.name" : "position", - "key.namelength" : 8, - "key.nameoffset" : 16186, - "key.offset" : 16182, - "key.parsed_declaration" : "public var position : ItemPosition = .single", - "key.parsed_scope.end" : 499, - "key.parsed_scope.start" : 499, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemPosition", - "key.typeusr" : "$s10ListableUI12ItemPositionOD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC8positionAA0F8PositionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var measuredSize: CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16245 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> measuredSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 501, - "key.modulename" : "ListableUI", - "key.name" : "measuredSize", - "key.namelength" : 12, - "key.nameoffset" : 16256, - "key.offset" : 16252, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP12measuredSizeSo6CGSizeVvp" - } - ], - "key.parsed_declaration" : "public var measuredSize : CGSize = .zero", - "key.parsed_scope.end" : 501, - "key.parsed_scope.start" : 501, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC12measuredSizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var size: CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16303 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 503, - "key.modulename" : "ListableUI", - "key.name" : "size", - "key.namelength" : 4, - "key.nameoffset" : 16314, - "key.offset" : 16310, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP4sizeSo6CGSizeVvp" - } - ], - "key.parsed_declaration" : "public var size : CGSize = .zero", - "key.parsed_scope.end" : 503, - "key.parsed_scope.start" : 503, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC4sizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var x: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16361 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 505, - "key.modulename" : "ListableUI", - "key.name" : "x", - "key.namelength" : 1, - "key.nameoffset" : 16372, - "key.offset" : 16368, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP1x14CoreFoundation7CGFloatVvp" - } - ], - "key.parsed_declaration" : "public var x : CGFloat = .zero", - "key.parsed_scope.end" : 505, - "key.parsed_scope.start" : 505, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC1x14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var y: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16400 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 506, - "key.modulename" : "ListableUI", - "key.name" : "y", - "key.namelength" : 1, - "key.nameoffset" : 16411, - "key.offset" : 16407, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP1y14CoreFoundation7CGFloatVvp" - } - ], - "key.parsed_declaration" : "public var y : CGFloat = .zero", - "key.parsed_scope.end" : 506, - "key.parsed_scope.start" : 506, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC1y14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var zIndex: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16448 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 508, - "key.modulename" : "ListableUI", - "key.name" : "zIndex", - "key.namelength" : 6, - "key.nameoffset" : 16459, - "key.offset" : 16455, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp" - } - ], - "key.parsed_declaration" : "public var zIndex : Int = 0", - "key.parsed_scope.end" : 508, - "key.parsed_scope.start" : 508, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC6zIndexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layouts: ItemLayouts<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16493 - } - ], - "key.bodylength" : 49, - "key.bodyoffset" : 16527, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: ItemLayouts<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 77, - "key.line" : 510, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 16504, - "key.offset" : 16500, - "key.parsed_declaration" : "public var layouts : ItemLayouts", - "key.parsed_scope.end" : 512, - "key.parsed_scope.start" : 510, - "key.reusingastcontext" : false, - "key.typename" : "ItemLayouts", - "key.typeusr" : "$s10ListableUI11ItemLayoutsVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC7layoutsAA0F7LayoutsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isReorderable: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16666 - } - ], - "key.bodylength" : 59, - "key.bodyoffset" : 16698, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Whether this item can be reordered (has reordering configuration).", - "key.doc.column" : 20, - "key.doc.comment" : "Whether this item can be reordered (has reordering configuration).", - "key.doc.declaration" : "public var isReorderable: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.doc.full_as_xml" : "isReorderable<\/Name>s:10ListableUI17ListLayoutContentC8ItemInfoC13isReorderableSbvp<\/USR>public var isReorderable: Bool { get }<\/Declaration>Whether this item can be reordered (has reordering configuration).<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 515, - "key.doc.name" : "isReorderable", - "key.doc.type" : "Other", - "key.doclength" : 71, - "key.docoffset" : 16587, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isReorderable<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 85, - "key.line" : 515, - "key.modulename" : "ListableUI", - "key.name" : "isReorderable", - "key.namelength" : 13, - "key.nameoffset" : 16677, - "key.offset" : 16673, - "key.parsed_declaration" : "public var isReorderable: Bool", - "key.parsed_scope.end" : 517, - "key.parsed_scope.start" : 515, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC13isReorderableSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var frame: CGRect<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16776 - } - ], - "key.bodylength" : 130, - "key.bodyoffset" : 16803, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 151, - "key.line" : 519, - "key.modulename" : "ListableUI", - "key.name" : "frame", - "key.namelength" : 5, - "key.nameoffset" : 16787, - "key.offset" : 16783, - "key.parsed_declaration" : "public var frame : CGRect", - "key.parsed_scope.end" : 524, - "key.parsed_scope.start" : 519, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC5frameSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(state: AnyPresentationItemState<\/Type>, indexPath: IndexPath<\/Type>, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>, measurer: @escaping (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type>)<\/Declaration>", - "key.bodylength" : 187, - "key.bodyoffset" : 17185, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(state<\/decl.var.parameter.argument_label>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, indexPath<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, measurer<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 421, - "key.line" : 526, - "key.modulename" : "ListableUI", - "key.name" : "init(state:indexPath:insertAndRemoveAnimations:measurer:)", - "key.namelength" : 231, - "key.nameoffset" : 16952, - "key.offset" : 16952, - "key.parsed_declaration" : "init(\n state : AnyPresentationItemState,\n indexPath : IndexPath,\n insertAndRemoveAnimations : ItemInsertAndRemoveAnimations,\n measurer : @escaping (Sizing.MeasureInfo) -> CGSize\n)", - "key.parsed_scope.end" : 536, - "key.parsed_scope.start" : 526, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.ItemInfo.Type) -> (any AnyPresentationItemState, IndexPath, ItemInsertAndRemoveAnimations, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.ItemInfo", - "key.typeusr" : "$s5state9indexPath25insertAndRemoveAnimations8measurer10ListableUI17ListLayoutContentC8ItemInfoCAE015AnyPresentationN5State_p_10Foundation05IndexC0VAE0n6InsertefG0VSo6CGSizeVAE6SizingO07MeasureO0VctcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC5state9indexPath25insertAndRemoveAnimations8measurerAeA015AnyPresentationF5State_p_10Foundation05IndexJ0VAA0f6InsertlmN0VSo6CGSizeVAA6SizingO07MeasureG0Vctcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func layoutAttributes(with indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.bodylength" : 237, - "key.bodyoffset" : 17486, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(with<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 333, - "key.line" : 538, - "key.modulename" : "ListableUI", - "key.name" : "layoutAttributes(with:)", - "key.namelength" : 44, - "key.nameoffset" : 17396, - "key.offset" : 17391, - "key.parsed_declaration" : "func layoutAttributes(with indexPath : IndexPath) -> UICollectionViewLayoutAttributes", - "key.parsed_scope.end" : 546, - "key.parsed_scope.start" : 538, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 73, - "key.line" : 540, - "key.modulename" : "ListableUI", - "key.name" : "attributes", - "key.namelength" : 10, - "key.nameoffset" : 17503, - "key.offset" : 17499, - "key.parsed_declaration" : "let attributes = UICollectionViewLayoutAttributes(forCellWith: indexPath)", - "key.parsed_scope.end" : 540, - "key.parsed_scope.start" : 540, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionViewLayoutAttributes", - "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC16layoutAttributes4withSo016UICollectionViewdI0C10Foundation9IndexPathV_tF10attributesL_AIvp" - } - ], - "key.typename" : "(ListLayoutContent.ItemInfo) -> (IndexPath) -> UICollectionViewLayoutAttributes", - "key.typeusr" : "$s4withSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC16layoutAttributes4withSo016UICollectionViewdI0C10Foundation9IndexPathV_tF" - } - ], - "key.typename" : "ListLayoutContent.ItemInfo.Type", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC8ItemInfoCmD", - "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC" - }, - { - "key.annotated_decl" : "enum ContentItem<\/Declaration>", - "key.bodylength" : 1115, - "key.bodyoffset" : 17758, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> ContentItem<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1134, - "key.line" : 549, - "key.modulename" : "ListableUI", - "key.name" : "ContentItem", - "key.namelength" : 11, - "key.nameoffset" : 17745, - "key.offset" : 17740, - "key.parsed_declaration" : "enum ContentItem", - "key.parsed_scope.end" : 577, - "key.parsed_scope.start" : 549, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 71, - "key.offset" : 17776, - "key.substructure" : [ - { - "key.annotated_decl" : "case item(ListLayoutContent<\/Type>.ItemInfo<\/Type>, UICollectionViewLayoutAttributes<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> item<\/decl.name>(ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 66, - "key.line" : 551, - "key.modulename" : "ListableUI", - "key.name" : "item(_:_:)", - "key.namelength" : 66, - "key.nameoffset" : 17781, - "key.offset" : 17781, - "key.parsed_declaration" : "case item(ListLayoutContent.ItemInfo, UICollectionViewLayoutAttributes)", - "key.parsed_scope.end" : 551, - "key.parsed_scope.start" : 551, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.ContentItem.Type) -> (ListLayoutContent.ItemInfo, UICollectionViewLayoutAttributes) -> ListLayoutContent.ContentItem", - "key.typeusr" : "$sy10ListableUI17ListLayoutContentC0E4ItemOAC0F4InfoC_So016UICollectionViewD10AttributesCtcAEmcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC0E4ItemO4itemyAeC0F4InfoC_So016UICollectionViewD10AttributesCtcAEmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 93, - "key.offset" : 17865, - "key.substructure" : [ - { - "key.annotated_decl" : "case supplementary(ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type>, UICollectionViewLayoutAttributes<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> supplementary<\/decl.name>(ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 88, - "key.line" : 553, - "key.modulename" : "ListableUI", - "key.name" : "supplementary(_:_:)", - "key.namelength" : 88, - "key.nameoffset" : 17870, - "key.offset" : 17870, - "key.parsed_declaration" : "case supplementary(ListLayoutContent.SupplementaryItemInfo, UICollectionViewLayoutAttributes)", - "key.parsed_scope.end" : 553, - "key.parsed_scope.start" : 553, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.ContentItem.Type) -> (ListLayoutContent.SupplementaryItemInfo, UICollectionViewLayoutAttributes) -> ListLayoutContent.ContentItem", - "key.typeusr" : "$sy10ListableUI17ListLayoutContentC0E4ItemOAC013SupplementaryF4InfoC_So016UICollectionViewD10AttributesCtcAEmcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC0E4ItemO13supplementaryyAeC013SupplementaryF4InfoC_So016UICollectionViewD10AttributesCtcAEmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var collectionViewLayoutAttributes: UICollectionViewLayoutAttributes<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 17976 - } - ], - "key.bodylength" : 180, - "key.bodyoffset" : 18054, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> collectionViewLayoutAttributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 252, - "key.line" : 555, - "key.modulename" : "ListableUI", - "key.name" : "collectionViewLayoutAttributes", - "key.namelength" : 30, - "key.nameoffset" : 17987, - "key.offset" : 17983, - "key.parsed_declaration" : "public var collectionViewLayoutAttributes : UICollectionViewLayoutAttributes", - "key.parsed_scope.end" : 560, - "key.parsed_scope.start" : 555, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionViewLayoutAttributes", - "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCD", - "key.usr" : "s:10ListableUI17ListLayoutContentC0E4ItemO014collectionViewD10AttributesSo012UICollectionhdI0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var indexPath: IndexPath<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 18253 - } - ], - "key.bodylength" : 67, - "key.bodyoffset" : 18287, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 95, - "key.line" : 562, - "key.modulename" : "ListableUI", - "key.name" : "indexPath", - "key.namelength" : 9, - "key.nameoffset" : 18264, - "key.offset" : 18260, - "key.parsed_declaration" : "public var indexPath : IndexPath", - "key.parsed_scope.end" : 564, - "key.parsed_scope.start" : 562, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC0E4ItemO9indexPath10Foundation05IndexH0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var defaultFrame: CGRect<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 18373 - } - ], - "key.bodylength" : 193, - "key.bodyoffset" : 18407, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 221, - "key.line" : 566, - "key.modulename" : "ListableUI", - "key.name" : "defaultFrame", - "key.namelength" : 12, - "key.nameoffset" : 18384, - "key.offset" : 18380, - "key.parsed_declaration" : "public var defaultFrame : CGRect", - "key.parsed_scope.end" : 571, - "key.parsed_scope.start" : 566, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC0E4ItemO12defaultFrameSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func percentageVisible(inside container: CGRect<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.bodylength" : 95, - "key.bodyoffset" : 18772, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the percentage from `0.0` to `1.0` that this item overlaps `container`.", - "key.doc.column" : 14, - "key.doc.comment" : "Returns the percentage from `0.0` to `1.0` that this item overlaps `container`.", - "key.doc.declaration" : "func percentageVisible(inside container: CGRect) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.doc.full_as_xml" : "percentageVisible(inside:)<\/Name>s:10ListableUI17ListLayoutContentC0E4ItemO17percentageVisible6inside14CoreFoundation7CGFloatVSo6CGRectV_tF<\/USR>func percentageVisible(inside container: CGRect) -> CGFloat<\/Declaration>Returns the percentage from 0.0<\/codeVoice> to 1.0<\/codeVoice> that this item overlaps container<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 574, - "key.doc.name" : "percentageVisible(inside:)", - "key.doc.type" : "Function", - "key.doclength" : 84, - "key.docoffset" : 18619, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> percentageVisible<\/decl.name>(inside<\/decl.var.parameter.argument_label> container<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 157, - "key.line" : 574, - "key.modulename" : "ListableUI", - "key.name" : "percentageVisible(inside:)", - "key.namelength" : 43, - "key.nameoffset" : 18716, - "key.offset" : 18711, - "key.parsed_declaration" : "func percentageVisible(inside container: CGRect) -> CGFloat", - "key.parsed_scope.end" : 576, - "key.parsed_scope.start" : 574, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.ContentItem) -> (CGRect) -> CGFloat", - "key.typeusr" : "$s6inside14CoreFoundation7CGFloatVSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC0E4ItemO17percentageVisible6inside14CoreFoundation7CGFloatVSo6CGRectV_tF" - } - ], - "key.typename" : "ListLayoutContent.ContentItem.Type", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC0E4ItemOmD", - "key.usr" : "s:10ListableUI17ListLayoutContentC0E4ItemO" - } - ], - "key.typename" : "ListLayoutContent.Type", - "key.typeusr" : "$s10ListableUI17ListLayoutContentCmD", - "key.usr" : "s:10ListableUI17ListLayoutContentC" - }, - { - "key.annotated_decl" : "struct CGRect<\/Declaration>", - "key.bodylength" : 383, - "key.bodyoffset" : 18897, - "key.column" : 8, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/CoreFoundation.framework\/Headers\/CFCGTypes.h", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CGRect<\/decl.name><\/decl.struct>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 402, - "key.line" : 76, - "key.modulename" : "CoreFoundation.CFCGTypes", - "key.name" : "CGRect", - "key.namelength" : 6, - "key.nameoffset" : 18889, - "key.offset" : 18879, - "key.parsed_declaration" : "extension CGRect", - "key.parsed_scope.end" : 600, - "key.parsed_scope.start" : 581, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static func unioned(from rects: [CGRect<\/Type>]) -> CGRect<\/Type><\/Declaration>", - "key.bodylength" : 322, - "key.bodyoffset" : 18956, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> unioned<\/decl.name>(from<\/decl.var.parameter.argument_label> rects<\/decl.var.parameter.name>: [CGRect<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 377, - "key.line" : 582, - "key.modulename" : "ListableUI", - "key.name" : "unioned(from:)", - "key.namelength" : 30, - "key.nameoffset" : 18914, - "key.offset" : 18902, - "key.parsed_declaration" : "static func unioned(from rects : [CGRect]) -> CGRect", - "key.parsed_scope.end" : 599, - "key.parsed_scope.start" : 582, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let rects: [CGRect<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rects<\/decl.name>: [CGRect<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 68, - "key.line" : 584, - "key.modulename" : "ListableUI", - "key.name" : "rects", - "key.namelength" : 5, - "key.nameoffset" : 18978, - "key.offset" : 18974, - "key.parsed_declaration" : "let rects = rects.filter {\n $0.isEmpty == false\n}", - "key.parsed_scope.end" : 584, - "key.parsed_scope.start" : 584, - "key.reusingastcontext" : false, - "key.typename" : "[CGRect]", - "key.typeusr" : "$sSaySo6CGRectVGD", - "key.usr" : "s:So6CGRectV10ListableUIE7unioned4fromABSayABG_tFZ5rectsL0_AFvp" - }, - { - "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 17, - "key.line" : 592, - "key.modulename" : "ListableUI", - "key.name" : "frame", - "key.namelength" : 5, - "key.nameoffset" : 19145, - "key.offset" : 19141, - "key.parsed_declaration" : "var frame = first", - "key.parsed_scope.end" : 592, - "key.parsed_scope.start" : 592, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:So6CGRectV10ListableUIE7unioned4fromABSayABG_tFZ5frameL_ABvp" - } - ], - "key.typename" : "(CGRect.Type) -> ([CGRect]) -> CGRect", - "key.typeusr" : "$s4fromSo6CGRectVSayACG_tcD", - "key.usr" : "s:So6CGRectV10ListableUIE7unioned4fromABSayABG_tFZ" - } - ], - "key.typename" : "CGRect.Type", - "key.typeusr" : "$sSo6CGRectVmD", - "key.usr" : "c:@S@CGRect" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 401, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListLayoutDefaults<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 116 - } - ], - "key.bodylength" : 249, - "key.bodyoffset" : 150, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutDefaults<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 277, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutDefaults", - "key.namelength" : 18, - "key.nameoffset" : 130, - "key.offset" : 123, - "key.parsed_declaration" : "public struct ListLayoutDefaults", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemInsertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 155 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemInsertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 65, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "itemInsertAndRemoveAnimations", - "key.namelength" : 29, - "key.nameoffset" : 166, - "key.offset" : 162, - "key.parsed_declaration" : "public var itemInsertAndRemoveAnimations : ItemInsertAndRemoveAnimations", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemInsertAndRemoveAnimations", - "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD", - "key.usr" : "s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAA04ItemghiJ0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(itemInsertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 237 - } - ], - "key.bodylength" : 80, - "key.bodyoffset" : 317, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(itemInsertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 154, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "init(itemInsertAndRemoveAnimations:)", - "key.namelength" : 67, - "key.nameoffset" : 244, - "key.offset" : 244, - "key.parsed_declaration" : "public init(itemInsertAndRemoveAnimations : ItemInsertAndRemoveAnimations)", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutDefaults.Type) -> (ItemInsertAndRemoveAnimations) -> ListLayoutDefaults", - "key.typeusr" : "$s29itemInsertAndRemoveAnimations10ListableUI18ListLayoutDefaultsVAB04ItembcdE0V_tcD", - "key.usr" : "s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAcA04ItemghiJ0V_tcfc" - } - ], - "key.typename" : "ListLayoutDefaults.Type", - "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVmD", - "key.usr" : "s:10ListableUI18ListLayoutDefaultsV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutResult.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 884, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListLayoutResult : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 233 - } - ], - "key.bodylength" : 605, - "key.bodyoffset" : 277, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the values which should be calculated and returned from `ListLayout.layout(delegate:in:)`.", - "key.doc.column" : 15, - "key.doc.comment" : "Describes the values which should be calculated and returned from `ListLayout.layout(delegate:in:)`.", - "key.doc.declaration" : "public struct ListLayoutResult : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutResult.swift", - "key.doc.full_as_xml" : "ListLayoutResult<\/Name>s:10ListableUI16ListLayoutResultV<\/USR>public struct ListLayoutResult : Equatable<\/Declaration>Describes the values which should be calculated and returned from ListLayout.layout(delegate:in:)<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "ListLayoutResult", - "key.doc.type" : "Class", - "key.doclength" : 105, - "key.docoffset" : 128, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 266 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutResult.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutResult<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 643, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutResult", - "key.namelength" : 16, - "key.nameoffset" : 247, - "key.offset" : 240, - "key.parsed_declaration" : "public struct ListLayoutResult : Equatable", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var contentSize: CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 359 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The size of the content as it has been laid out by your layout.", - "key.doc.column" : 16, - "key.doc.comment" : "The size of the content as it has been laid out by your layout.", - "key.doc.declaration" : "public var contentSize: CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutResult.swift", - "key.doc.full_as_xml" : "contentSize<\/Name>s:10ListableUI16ListLayoutResultV11contentSizeSo6CGSizeVvp<\/USR>public var contentSize: CGSize<\/Declaration>The size of the content as it has been laid out by your layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 16, - "key.doc.name" : "contentSize", - "key.doc.type" : "Other", - "key.doclength" : 68, - "key.docoffset" : 287, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutResult.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "contentSize", - "key.namelength" : 11, - "key.nameoffset" : 370, - "key.offset" : 366, - "key.parsed_declaration" : "public var contentSize : CGSize", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI16ListLayoutResultV11contentSizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var naturalContentWidth: CGFloat<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 643 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If available, the natural width of any measured content.\nFor lists that lay out horizontally, this should be the natural height.\n\nIf your list does not have a natural content width, provide `nil` for this value.", - "key.doc.column" : 16, - "key.doc.comment" : "If available, the natural width of any measured content.\nFor lists that lay out horizontally, this should be the natural height.\n\nIf your list does not have a natural content width, provide `nil` for this value.", - "key.doc.declaration" : "public var naturalContentWidth: CGFloat?", - "key.doc.discussion" : [ - { - "Para" : "If your list does not have a natural content width, provide `nil` for this value." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutResult.swift", - "key.doc.full_as_xml" : "naturalContentWidth<\/Name>s:10ListableUI16ListLayoutResultV19naturalContentWidth14CoreFoundation7CGFloatVSgvp<\/USR>public var naturalContentWidth: CGFloat?<\/Declaration>If available, the natural width of any measured content. For lists that lay out horizontally, this should be the natural height.<\/Para><\/Abstract>If your list does not have a natural content width, provide nil<\/codeVoice> for this value.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 22, - "key.doc.name" : "naturalContentWidth", - "key.doc.type" : "Other", - "key.doclength" : 239, - "key.docoffset" : 400, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutResult.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> naturalContentWidth<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "naturalContentWidth", - "key.namelength" : 19, - "key.nameoffset" : 654, - "key.offset" : 650, - "key.parsed_declaration" : "public var naturalContentWidth : CGFloat?", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI16ListLayoutResultV19naturalContentWidth14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(contentSize: CGSize<\/Type>, naturalContentWidth: CGFloat<\/Type>?)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 694 - } - ], - "key.bodylength" : 99, - "key.bodyoffset" : 781, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutResult.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(contentSize<\/decl.var.parameter.argument_label>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, naturalContentWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 180, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "init(contentSize:naturalContentWidth:)", - "key.namelength" : 78, - "key.nameoffset" : 701, - "key.offset" : 701, - "key.parsed_declaration" : "public init(\n contentSize: CGSize,\n naturalContentWidth: CGFloat?\n)", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutResult.Type) -> (CGSize, CGFloat?) -> ListLayoutResult", - "key.typeusr" : "$s11contentSize19naturalContentWidth10ListableUI16ListLayoutResultVSo6CGSizeV_14CoreFoundation7CGFloatVSgtcD", - "key.usr" : "s:10ListableUI16ListLayoutResultV11contentSize19naturalContentWidthACSo6CGSizeV_14CoreFoundation7CGFloatVSgtcfc" - } - ], - "key.typename" : "ListLayoutResult.Type", - "key.typeusr" : "$s10ListableUI16ListLayoutResultVmD", - "key.usr" : "s:10ListableUI16ListLayoutResultV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 4776, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListLayoutScrollViewProperties : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 122 - } - ], - "key.bodylength" : 3341, - "key.bodyoffset" : 180, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 169 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutScrollViewProperties<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3393, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutScrollViewProperties", - "key.namelength" : 30, - "key.nameoffset" : 136, - "key.offset" : 129, - "key.parsed_declaration" : "public struct ListLayoutScrollViewProperties : Equatable", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var pageScrollingBehavior: PageScrollingBehavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 185 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pageScrollingBehavior<\/decl.name>: PageScrollingBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 49, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "pageScrollingBehavior", - "key.namelength" : 21, - "key.nameoffset" : 196, - "key.offset" : 192, - "key.parsed_declaration" : "public var pageScrollingBehavior : PageScrollingBehavior", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "PageScrollingBehavior", - "key.typeusr" : "$s10ListableUI21PageScrollingBehaviorOD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV21pageScrollingBehaviorAA04PageiJ0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 251 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentInsetAdjustmentBehavior<\/decl.name>: ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 67, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "contentInsetAdjustmentBehavior", - "key.namelength" : 30, - "key.nameoffset" : 262, - "key.offset" : 258, - "key.parsed_declaration" : "public var contentInsetAdjustmentBehavior : ContentInsetAdjustmentBehavior", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ContentInsetAdjustmentBehavior", - "key.typeusr" : "$s10ListableUI30ContentInsetAdjustmentBehaviorOD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30contentInsetAdjustmentBehaviorAA07ContentijK0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var allowsBounceVertical: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 335 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsBounceVertical<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "allowsBounceVertical", - "key.namelength" : 20, - "key.nameoffset" : 346, - "key.offset" : 342, - "key.parsed_declaration" : "public var allowsBounceVertical : Bool", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV20allowsBounceVerticalSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var allowsBounceHorizontal: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 378 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsBounceHorizontal<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "allowsBounceHorizontal", - "key.namelength" : 22, - "key.nameoffset" : 389, - "key.offset" : 385, - "key.parsed_declaration" : "public var allowsBounceHorizontal : Bool", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV22allowsBounceHorizontalSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var allowsHorizontalScrollIndicator: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 428 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsHorizontalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "allowsHorizontalScrollIndicator", - "key.namelength" : 31, - "key.nameoffset" : 439, - "key.offset" : 435, - "key.parsed_declaration" : "public var allowsHorizontalScrollIndicator : Bool", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV016allowsHorizontalE9IndicatorSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var allowsVerticalScrollIndicator: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 482 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsVerticalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "allowsVerticalScrollIndicator", - "key.namelength" : 29, - "key.nameoffset" : 493, - "key.offset" : 489, - "key.parsed_declaration" : "public var allowsVerticalScrollIndicator : Bool", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV014allowsVerticalE9IndicatorSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(pageScrollingBehavior: PageScrollingBehavior<\/Type>, contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior<\/Type>, allowsBounceVertical: Bool<\/Type>, allowsBounceHorizontal: Bool<\/Type>, allowsVerticalScrollIndicator: Bool<\/Type>, allowsHorizontalScrollIndicator: Bool<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 539 - } - ], - "key.bodylength" : 423, - "key.bodyoffset" : 854, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(pageScrollingBehavior<\/decl.var.parameter.argument_label>: PageScrollingBehavior<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, contentInsetAdjustmentBehavior<\/decl.var.parameter.argument_label>: ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, allowsBounceVertical<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, allowsBounceHorizontal<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, allowsVerticalScrollIndicator<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, allowsHorizontalScrollIndicator<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 732, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "init(pageScrollingBehavior:contentInsetAdjustmentBehavior:allowsBounceVertical:allowsBounceHorizontal:allowsVerticalScrollIndicator:allowsHorizontalScrollIndicator:)", - "key.namelength" : 306, - "key.nameoffset" : 546, - "key.offset" : 546, - "key.parsed_declaration" : "public init(\n pageScrollingBehavior: PageScrollingBehavior,\n contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior,\n allowsBounceVertical : Bool,\n allowsBounceHorizontal : Bool,\n allowsVerticalScrollIndicator : Bool,\n allowsHorizontalScrollIndicator : Bool\n)", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutScrollViewProperties.Type) -> (PageScrollingBehavior, ContentInsetAdjustmentBehavior, Bool, Bool, Bool, Bool) -> ListLayoutScrollViewProperties", - "key.typeusr" : "$s21pageScrollingBehavior022contentInsetAdjustmentC020allowsBounceVertical0gH10Horizontal0gI15ScrollIndicator0gjkL010ListableUI010ListLayoutK14ViewPropertiesVAG04PagebC0O_AG07ContentefC0OS4btcD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV21pageScrollingBehavior022contentInsetAdjustmentJ020allowsBounceVertical0nO10Horizontal0npE9Indicator0nqeR0AcA04PageiJ0O_AA07ContentlmJ0OS4btcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func apply(to view: UIScrollView<\/Type>, behavior: Behavior<\/Type>, direction: LayoutDirection<\/Type>, showsScrollIndicators: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 2073, - "key.bodyoffset" : 1446, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, showsScrollIndicators<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2228, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "apply(to:behavior:direction:showsScrollIndicators:)", - "key.namelength" : 147, - "key.nameoffset" : 1297, - "key.offset" : 1292, - "key.parsed_declaration" : "func apply(\n to view : UIScrollView,\n behavior : Behavior,\n direction : LayoutDirection,\n showsScrollIndicators : Bool\n)", - "key.parsed_scope.end" : 86, - "key.parsed_scope.start" : 41, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let isNativePagingEnabled: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "**Note**: Properties are only set if they are different (hence all the `if` statements below)\nbecause some UIScrollView properties, even when set to the same value, can affect or stop scrolling if it\nis in progress. Hard to tell which across iOS versions, so just always be defensive.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isNativePagingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 106, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "isNativePagingEnabled", - "key.namelength" : 21, - "key.nameoffset" : 1922, - "key.offset" : 1918, - "key.parsed_declaration" : "let isNativePagingEnabled = self.pageScrollingBehavior == .full || behavior.pageScrollingBehavior == .full", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF21isNativePagingEnabledL_Sbvp" - }, - { - "key.annotated_decl" : "let alwaysBounceVertical: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> alwaysBounceVertical<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 113, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "alwaysBounceVertical", - "key.namelength" : 20, - "key.nameoffset" : 2406, - "key.offset" : 2402, - "key.parsed_declaration" : "let alwaysBounceVertical = self.allowsBounceVertical && behavior.underflow.alwaysBounce && direction == .vertical", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF20alwaysBounceVerticalL_Sbvp" - }, - { - "key.annotated_decl" : "let alwaysBounceHorizontal: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> alwaysBounceHorizontal<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 119, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "alwaysBounceHorizontal", - "key.namelength" : 22, - "key.nameoffset" : 2528, - "key.offset" : 2524, - "key.parsed_declaration" : "let alwaysBounceHorizontal = self.allowsBounceHorizontal && behavior.underflow.alwaysBounce && direction == .horizontal", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF22alwaysBounceHorizontalL_Sbvp" - }, - { - "key.annotated_decl" : "let showsVerticalScrollIndicator: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> showsVerticalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 94, - "key.line" : 76, - "key.modulename" : "ListableUI", - "key.name" : "showsVerticalScrollIndicator", - "key.namelength" : 28, - "key.nameoffset" : 2959, - "key.offset" : 2955, - "key.parsed_declaration" : "let showsVerticalScrollIndicator = self.allowsVerticalScrollIndicator && showsScrollIndicators", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 76, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF0l8VerticalE9IndicatorL_Sbvp" - }, - { - "key.annotated_decl" : "let showsHorizontalScrollIndicator: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> showsHorizontalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 98, - "key.line" : 77, - "key.modulename" : "ListableUI", - "key.name" : "showsHorizontalScrollIndicator", - "key.namelength" : 30, - "key.nameoffset" : 3062, - "key.offset" : 3058, - "key.parsed_declaration" : "let showsHorizontalScrollIndicator = self.allowsHorizontalScrollIndicator && showsScrollIndicators", - "key.parsed_scope.end" : 77, - "key.parsed_scope.start" : 77, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF0l10HorizontalE9IndicatorL_Sbvp" - } - ], - "key.typename" : "(ListLayoutScrollViewProperties) -> (UIScrollView, Behavior, LayoutDirection, Bool) -> ()", - "key.typeusr" : "$s2to8behavior9direction21showsScrollIndicatorsySo12UIScrollViewC_10ListableUI8BehaviorVAG15LayoutDirectionOSbtcD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF" - } - ], - "key.typename" : "ListLayoutScrollViewProperties.Type", - "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVmD", - "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ContentInsetAdjustmentBehavior : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3671 - } - ], - "key.bodylength" : 583, - "key.bodyoffset" : 3727, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Constants indicating how safe area insets are added to the adjusted content inset.\nMirrors `UIScrollView.ContentInsetAdjustmentBehavior`.", - "key.doc.column" : 13, - "key.doc.comment" : "Constants indicating how safe area insets are added to the adjusted content inset.\nMirrors `UIScrollView.ContentInsetAdjustmentBehavior`.", - "key.doc.declaration" : "public enum ContentInsetAdjustmentBehavior : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "ContentInsetAdjustmentBehavior<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO<\/USR>public enum ContentInsetAdjustmentBehavior : Equatable<\/Declaration>Constants indicating how safe area insets are added to the adjusted content inset. Mirrors UIScrollView.ContentInsetAdjustmentBehavior<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 92, - "key.doc.name" : "ContentInsetAdjustmentBehavior", - "key.doc.type" : "Other", - "key.doclength" : 146, - "key.docoffset" : 3525, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 3716 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ContentInsetAdjustmentBehavior<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 633, - "key.line" : 92, - "key.modulename" : "ListableUI", - "key.name" : "ContentInsetAdjustmentBehavior", - "key.namelength" : 30, - "key.nameoffset" : 3683, - "key.offset" : 3678, - "key.parsed_declaration" : "public enum ContentInsetAdjustmentBehavior : Equatable", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 92, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 14, - "key.offset" : 3803, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case automatic<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applies the inset from a UIKit navigation bar or tab bar.", - "key.doc.column" : 10, - "key.doc.comment" : "Applies the inset from a UIKit navigation bar or tab bar.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "automatic<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO9automaticyA2CmF<\/USR><\/Declaration>Applies the inset from a UIKit navigation bar or tab bar.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 95, - "key.doc.name" : "automatic", - "key.doc.type" : "Other", - "key.doclength" : 62, - "key.docoffset" : 3737, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> automatic<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 9, - "key.line" : 95, - "key.modulename" : "ListableUI", - "key.name" : "automatic", - "key.namelength" : 9, - "key.nameoffset" : 3808, - "key.offset" : 3808, - "key.parsed_declaration" : "case automatic", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 95, - "key.reusingastcontext" : false, - "key.typename" : "(ContentInsetAdjustmentBehavior.Type) -> ContentInsetAdjustmentBehavior", - "key.typeusr" : "$sy10ListableUI30ContentInsetAdjustmentBehaviorOACmcD", - "key.usr" : "s:10ListableUI30ContentInsetAdjustmentBehaviorO9automaticyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 3888, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case scrollableAxes<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applies the safe area inset for the scrollable axes.", - "key.doc.column" : 10, - "key.doc.comment" : "Applies the safe area inset for the scrollable axes.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "scrollableAxes<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2CmF<\/USR><\/Declaration>Applies the safe area inset for the scrollable axes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 98, - "key.doc.name" : "scrollableAxes", - "key.doc.type" : "Other", - "key.doclength" : 57, - "key.docoffset" : 3827, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrollableAxes<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 98, - "key.modulename" : "ListableUI", - "key.name" : "scrollableAxes", - "key.namelength" : 14, - "key.nameoffset" : 3893, - "key.offset" : 3893, - "key.parsed_declaration" : "case scrollableAxes", - "key.parsed_scope.end" : 98, - "key.parsed_scope.start" : 98, - "key.reusingastcontext" : false, - "key.typename" : "(ContentInsetAdjustmentBehavior.Type) -> ContentInsetAdjustmentBehavior", - "key.typeusr" : "$sy10ListableUI30ContentInsetAdjustmentBehaviorOACmcD", - "key.usr" : "s:10ListableUI30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 10, - "key.offset" : 3953, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case never<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applies no safe area inset.", - "key.doc.column" : 10, - "key.doc.comment" : "Applies no safe area inset.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "never<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO5neveryA2CmF<\/USR><\/Declaration>Applies no safe area inset.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 101, - "key.doc.name" : "never", - "key.doc.type" : "Other", - "key.doclength" : 32, - "key.docoffset" : 3917, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> never<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 5, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "never", - "key.namelength" : 5, - "key.nameoffset" : 3958, - "key.offset" : 3958, - "key.parsed_declaration" : "case never", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 101, - "key.reusingastcontext" : false, - "key.typename" : "(ContentInsetAdjustmentBehavior.Type) -> ContentInsetAdjustmentBehavior", - "key.typeusr" : "$sy10ListableUI30ContentInsetAdjustmentBehaviorOACmcD", - "key.usr" : "s:10ListableUI30ContentInsetAdjustmentBehaviorO5neveryA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 4011, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case always<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applies all safe area insets.", - "key.doc.column" : 10, - "key.doc.comment" : "Applies all safe area insets.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "always<\/Name>s:10ListableUI30ContentInsetAdjustmentBehaviorO6alwaysyA2CmF<\/USR><\/Declaration>Applies all safe area insets.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 104, - "key.doc.name" : "always", - "key.doc.type" : "Other", - "key.doclength" : 34, - "key.docoffset" : 3973, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> always<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "always", - "key.namelength" : 6, - "key.nameoffset" : 4016, - "key.offset" : 4016, - "key.parsed_declaration" : "case always", - "key.parsed_scope.end" : 104, - "key.parsed_scope.start" : 104, - "key.reusingastcontext" : false, - "key.typename" : "(ContentInsetAdjustmentBehavior.Type) -> ContentInsetAdjustmentBehavior", - "key.typeusr" : "$sy10ListableUI30ContentInsetAdjustmentBehaviorOACmcD", - "key.usr" : "s:10ListableUI30ContentInsetAdjustmentBehaviorO6alwaysyA2CmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var toUIScrollViewValue: UIScrollView<\/Type>.ContentInsetAdjustmentBehavior<\/Type> { get }<\/Declaration>", - "key.bodylength" : 205, - "key.bodyoffset" : 4103, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toUIScrollViewValue<\/decl.name>: UIScrollView<\/ref.class>.ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 277, - "key.line" : 106, - "key.modulename" : "ListableUI", - "key.name" : "toUIScrollViewValue", - "key.namelength" : 19, - "key.nameoffset" : 4036, - "key.offset" : 4032, - "key.parsed_declaration" : "var toUIScrollViewValue : UIScrollView.ContentInsetAdjustmentBehavior", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 106, - "key.reusingastcontext" : false, - "key.typename" : "UIScrollView.ContentInsetAdjustmentBehavior", - "key.typeusr" : "$sSo42UIScrollViewContentInsetAdjustmentBehaviorVD", - "key.usr" : "s:10ListableUI30ContentInsetAdjustmentBehaviorO19toUIScrollViewValueSo0hicdeF0Vvp" - } - ], - "key.typename" : "ContentInsetAdjustmentBehavior.Type", - "key.typeusr" : "$s10ListableUI30ContentInsetAdjustmentBehaviorOmD", - "key.usr" : "s:10ListableUI30ContentInsetAdjustmentBehaviorO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum PageScrollingBehavior<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4355 - } - ], - "key.bodylength" : 384, - "key.bodyoffset" : 4390, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The paging style of the scroll view.", - "key.doc.column" : 13, - "key.doc.comment" : "The paging style of the scroll view.", - "key.doc.declaration" : "public enum PageScrollingBehavior", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "PageScrollingBehavior<\/Name>s:10ListableUI21PageScrollingBehaviorO<\/USR>public enum PageScrollingBehavior<\/Declaration>The paging style of the scroll view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 118, - "key.doc.name" : "PageScrollingBehavior", - "key.doc.type" : "Other", - "key.doclength" : 41, - "key.docoffset" : 4314, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> PageScrollingBehavior<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 413, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "PageScrollingBehavior", - "key.namelength" : 21, - "key.nameoffset" : 4367, - "key.offset" : 4362, - "key.parsed_declaration" : "public enum PageScrollingBehavior", - "key.parsed_scope.end" : 130, - "key.parsed_scope.start" : 118, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 4461, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This behavior does not use any paging functionality.", - "key.doc.column" : 10, - "key.doc.comment" : "This behavior does not use any paging functionality.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI21PageScrollingBehaviorO4noneyA2CmF<\/USR><\/Declaration>This behavior does not use any paging functionality.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 121, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 57, - "key.docoffset" : 4400, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 4466, - "key.offset" : 4466, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 121, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.typename" : "(PageScrollingBehavior.Type) -> PageScrollingBehavior", - "key.typeusr" : "$sy10ListableUI21PageScrollingBehaviorOACmcD", - "key.usr" : "s:10ListableUI21PageScrollingBehaviorO4noneyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 4602, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case full<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applies native `UIScrollView` paging, where each page is the full size of the\nscroll view's primary axis.", - "key.doc.column" : 10, - "key.doc.comment" : "Applies native `UIScrollView` paging, where each page is the full size of the\nscroll view's primary axis.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "full<\/Name>s:10ListableUI21PageScrollingBehaviorO4fullyA2CmF<\/USR><\/Declaration>Applies native UIScrollView<\/codeVoice> paging, where each page is the full size of the scroll view’s primary axis.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 125, - "key.doc.name" : "full", - "key.doc.type" : "Other", - "key.doclength" : 118, - "key.docoffset" : 4480, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> full<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 125, - "key.modulename" : "ListableUI", - "key.name" : "full", - "key.namelength" : 4, - "key.nameoffset" : 4607, - "key.offset" : 4607, - "key.parsed_declaration" : "case full", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 125, - "key.reusingastcontext" : false, - "key.typename" : "(PageScrollingBehavior.Type) -> PageScrollingBehavior", - "key.typeusr" : "$sy10ListableUI21PageScrollingBehaviorOACmcD", - "key.usr" : "s:10ListableUI21PageScrollingBehaviorO4fullyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 4764, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case peek<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applies custom paging, where pages aren't the full width of the scroll view's\nbounds, allowing items to peek in from the edge.", - "key.doc.column" : 10, - "key.doc.comment" : "Applies custom paging, where pages aren't the full width of the scroll view's\nbounds, allowing items to peek in from the edge.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.doc.full_as_xml" : "peek<\/Name>s:10ListableUI21PageScrollingBehaviorO4peekyA2CmF<\/USR><\/Declaration>Applies custom paging, where pages aren’t the full width of the scroll view’s bounds, allowing items to peek in from the edge.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 129, - "key.doc.name" : "peek", - "key.doc.type" : "Other", - "key.doclength" : 139, - "key.docoffset" : 4621, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> peek<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 129, - "key.modulename" : "ListableUI", - "key.name" : "peek", - "key.namelength" : 4, - "key.nameoffset" : 4769, - "key.offset" : 4769, - "key.parsed_declaration" : "case peek", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 129, - "key.reusingastcontext" : false, - "key.typename" : "(PageScrollingBehavior.Type) -> PageScrollingBehavior", - "key.typeusr" : "$sy10ListableUI21PageScrollingBehaviorOACmcD", - "key.usr" : "s:10ListableUI21PageScrollingBehaviorO4peekyA2CmF" - } - ] - } - ], - "key.typename" : "PageScrollingBehavior.Type", - "key.typeusr" : "$s10ListableUI21PageScrollingBehaviorOmD", - "key.usr" : "s:10ListableUI21PageScrollingBehaviorO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListPagingBehavior.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 896, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ListPagingBehavior : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 299 - } - ], - "key.bodylength" : 551, - "key.bodyoffset" : 343, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls how to align \/ adjust the `contentOffset` of the list when\nthe user finishes a drag action, allowing you to align the end of the\nscroll event to the first visible item if desired.", - "key.doc.column" : 13, - "key.doc.comment" : "Controls how to align \/ adjust the `contentOffset` of the list when\nthe user finishes a drag action, allowing you to align the end of the\nscroll event to the first visible item if desired.", - "key.doc.declaration" : "public enum ListPagingBehavior : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListPagingBehavior.swift", - "key.doc.full_as_xml" : "ListPagingBehavior<\/Name>s:10ListableUI18ListPagingBehaviorO<\/USR>public enum ListPagingBehavior : Equatable<\/Declaration>Controls how to align \/ adjust the contentOffset<\/codeVoice> of the list when the user finishes a drag action, allowing you to align the end of the scroll event to the first visible item if desired.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 12, - "key.doc.name" : "ListPagingBehavior", - "key.doc.type" : "Other", - "key.doclength" : 201, - "key.docoffset" : 98, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 332 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListPagingBehavior.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListPagingBehavior<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 589, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListPagingBehavior", - "key.namelength" : 18, - "key.nameoffset" : 311, - "key.offset" : 306, - "key.parsed_declaration" : "public enum ListPagingBehavior : Equatable", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 485, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the user stops scrolling, no paging adjusts will be made, the\nscroll event will stop where it regularly would.", - "key.doc.column" : 10, - "key.doc.comment" : "When the user stops scrolling, no paging adjusts will be made, the\nscroll event will stop where it regularly would.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListPagingBehavior.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI18ListPagingBehaviorO4noneyA2CmF<\/USR><\/Declaration>When the user stops scrolling, no paging adjusts will be made, the scroll event will stop where it regularly would.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 16, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 128, - "key.docoffset" : 353, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListPagingBehavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 490, - "key.offset" : 490, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "(ListPagingBehavior.Type) -> ListPagingBehavior", - "key.typeusr" : "$sy10ListableUI18ListPagingBehaviorOACmcD", - "key.usr" : "s:10ListableUI18ListPagingBehaviorO4noneyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 25, - "key.offset" : 654, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case firstVisibleItemEdge<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the user stops scrolling, the final offset of the scroll event\nwill be adjusted so that the first visible item is fully visible.", - "key.doc.column" : 10, - "key.doc.comment" : "When the user stops scrolling, the final offset of the scroll event\nwill be adjusted so that the first visible item is fully visible.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListPagingBehavior.swift", - "key.doc.full_as_xml" : "firstVisibleItemEdge<\/Name>s:10ListableUI18ListPagingBehaviorO20firstVisibleItemEdgeyA2CmF<\/USR><\/Declaration>When the user stops scrolling, the final offset of the scroll event will be adjusted so that the first visible item is fully visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "firstVisibleItemEdge", - "key.doc.type" : "Other", - "key.doclength" : 146, - "key.docoffset" : 504, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListPagingBehavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> firstVisibleItemEdge<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 20, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "firstVisibleItemEdge", - "key.namelength" : 20, - "key.nameoffset" : 659, - "key.offset" : 659, - "key.parsed_declaration" : "case firstVisibleItemEdge", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "(ListPagingBehavior.Type) -> ListPagingBehavior", - "key.typeusr" : "$sy10ListableUI18ListPagingBehaviorOACmcD", - "key.usr" : "s:10ListableUI18ListPagingBehaviorO20firstVisibleItemEdgeyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 29, - "key.offset" : 864, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case firstVisibleItemCentered<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When the user stops scrolling, the final offset of the scroll event\nwill be adjusted so that the first visible item is centered within the\nvisible bounds.", - "key.doc.column" : 10, - "key.doc.comment" : "When the user stops scrolling, the final offset of the scroll event\nwill be adjusted so that the first visible item is centered within the\nvisible bounds.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListPagingBehavior.swift", - "key.doc.full_as_xml" : "firstVisibleItemCentered<\/Name>s:10ListableUI18ListPagingBehaviorO24firstVisibleItemCenteredyA2CmF<\/USR><\/Declaration>When the user stops scrolling, the final offset of the scroll event will be adjusted so that the first visible item is centered within the visible bounds.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 25, - "key.doc.name" : "firstVisibleItemCentered", - "key.doc.type" : "Other", - "key.doclength" : 175, - "key.docoffset" : 685, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListPagingBehavior.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> firstVisibleItemCentered<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 24, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "firstVisibleItemCentered", - "key.namelength" : 24, - "key.nameoffset" : 869, - "key.offset" : 869, - "key.parsed_declaration" : "case firstVisibleItemCentered", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.typename" : "(ListPagingBehavior.Type) -> ListPagingBehavior", - "key.typeusr" : "$sy10ListableUI18ListPagingBehaviorOACmcD", - "key.usr" : "s:10ListableUI18ListPagingBehaviorO24firstVisibleItemCenteredyA2CmF" - } - ] - } - ], - "key.typename" : "ListPagingBehavior.Type", - "key.typeusr" : "$s10ListableUI18ListPagingBehaviorOmD", - "key.usr" : "s:10ListableUI18ListPagingBehaviorO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 12748, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 107 - } - ], - "key.bodylength" : 155, - "key.bodyoffset" : 143, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `LayoutDescription`, well, describes the type of and properties of a layout to apply to a list view.\n\nYou use a `LayoutDescription` by passing a closure to its initializer, which you use to\ncustomize the `layoutAppearance` of the provided list type.\n\nFor example, to use a standard list layout, and customize the layout, your code would look something like this:\n\n```\nlistView.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```\n\nOr a layout for your own custom layout type would look somewhat like this:\n\n```\nMyCustomLayout.describe {\n $0.myLayoutOption = true\n $0.anotherLayoutOption = .polkadots\n}\n```\n\nNote\n----\nUnder the hood, Listable is smart, and will only re-create the underlying\nlayout object when needed (when the layout type or layout appearance changes).\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct LayoutDescription : Equatable", - "key.doc.discussion" : [ - { - "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type." - }, - { - "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Or a layout for your own custom layout type would look somewhat like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription : Equatable<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "LayoutDescription", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 185, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDescription", - "key.namelength" : 17, - "key.nameoffset" : 124, - "key.offset" : 114, - "key.parsed_declaration" : "public extension LayoutDescription", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func paged(_ configure: (inout PagedAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>", - "key.bodylength" : 61, - "key.bodyoffset" : 235, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> paged<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> PagedAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 149, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "paged(_:)", - "key.namelength" : 61, - "key.nameoffset" : 160, - "key.offset" : 148, - "key.parsed_declaration" : "static func paged(_ configure : (inout PagedAppearance) -> () = { _ in }) -> Self", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDescription.Type) -> ((inout PagedAppearance) -> ()) -> LayoutDescription", - "key.typeusr" : "$sy10ListableUI17LayoutDescriptionVyAA15PagedAppearanceVzXEcD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV5pagedyACyAA15PagedAppearanceVzXEFZ" - } - ], - "key.typename" : "LayoutDescription.Type", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct PagedAppearance : ListLayoutAppearance<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2155 - } - ], - "key.bodylength" : 3482, - "key.bodyoffset" : 2209, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the available appearance configuration options for a paged list layout.\nPaged list layouts lay out the headers, footers, and items in a list in a paged layout,\nsimilar to how UIPageViewController works.\n\nYou can control the direction via the `direction` property, and you can control\nthe inset on each page via the `itemInsets` property. You may also optionally show\nthe scroll indicators with the `showsScrollIndicators` property.\n\nNote\n----\nDo not edit this ASCII diagram directly.\nEdit the `PagedAppearance.monopic` file in this directory using Monodraw.\n```\n┌─────────────────────────────────┐\n│ itemInsets.top │\n│ ┌─────────────────────────┐ i │\n│ i │ │ t │\n│ t │ │ e │\n│ e │ │ m │\n│ m │ │ I │\n│ I │ │ n │\n│ n │ │ s │\n│ s │ │ e │\n│ e │ │ t │\n│ t │ │ s │\n│ s │ │ . │\n│ . │ │ r │\n│ l │ │ i │\n│ e │ │ g │\n│ f │ │ h │\n│ t │ │ t │\n│ └─────────────────────────┘ │\n│ itemInsets.bottom │\n└─────────────────────────────────┘\n```", - "key.doc.column" : 15, - "key.doc.comment" : "Describes the available appearance configuration options for a paged list layout.\nPaged list layouts lay out the headers, footers, and items in a list in a paged layout,\nsimilar to how UIPageViewController works.\n\nYou can control the direction via the `direction` property, and you can control\nthe inset on each page via the `itemInsets` property. You may also optionally show\nthe scroll indicators with the `showsScrollIndicators` property.\n\nNote\n----\nDo not edit this ASCII diagram directly.\nEdit the `PagedAppearance.monopic` file in this directory using Monodraw.\n```\n┌─────────────────────────────────┐\n│ itemInsets.top │\n│ ┌─────────────────────────┐ i │\n│ i │ │ t │\n│ t │ │ e │\n│ e │ │ m │\n│ m │ │ I │\n│ I │ │ n │\n│ n │ │ s │\n│ s │ │ e │\n│ e │ │ t │\n│ t │ │ s │\n│ s │ │ . │\n│ . │ │ r │\n│ l │ │ i │\n│ e │ │ g │\n│ f │ │ h │\n│ t │ │ t │\n│ └─────────────────────────┘ │\n│ itemInsets.bottom │\n└─────────────────────────────────┘\n```", - "key.doc.declaration" : "public struct PagedAppearance : ListLayoutAppearance", - "key.doc.discussion" : [ - { - "Para" : "You can control the direction via the `direction` property, and you can control the inset on each page via the `itemInsets` property. You may also optionally show the scroll indicators with the `showsScrollIndicators` property." - }, - { - "Para" : "Do not edit this ASCII diagram directly. Edit the `PagedAppearance.monopic` file in this directory using Monodraw." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "PagedAppearance<\/Name>s:10ListableUI15PagedAppearanceV<\/USR>public struct PagedAppearance : ListLayoutAppearance<\/Declaration>Describes the available appearance configuration options for a paged list layout. Paged list layouts lay out the headers, footers, and items in a list in a paged layout, similar to how UIPageViewController works.<\/Para><\/Abstract>You can control the direction via the direction<\/codeVoice> property, and you can control the inset on each page via the itemInsets<\/codeVoice> property. You may also optionally show the scroll indicators with the showsScrollIndicators<\/codeVoice> property.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not edit this ASCII diagram directly. Edit the PagedAppearance.monopic<\/codeVoice> file in this directory using Monodraw.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 54, - "key.doc.name" : "PagedAppearance", - "key.doc.type" : "Class", - "key.doclength" : 1854, - "key.docoffset" : 301, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 20, - "key.offset" : 2187 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> PagedAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayoutAppearance" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3530, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "PagedAppearance", - "key.namelength" : 15, - "key.nameoffset" : 2169, - "key.offset" : 2162, - "key.parsed_declaration" : "public struct PagedAppearance : ListLayoutAppearance", - "key.parsed_scope.end" : 160, - "key.parsed_scope.start" : 54, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 26, - "key.name" : "MARK: ListLayoutAppearance", - "key.offset" : 2217 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var `default`: PagedAppearance<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2253 - } - ], - "key.bodylength" : 25, - "key.bodyoffset" : 2299, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: PagedAppearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 65, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "default", - "key.namelength" : 7, - "key.nameoffset" : 2271, - "key.offset" : 2260, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ" - } - ], - "key.parsed_declaration" : "public static var `default`: PagedAppearance", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 58, - "key.reusingastcontext" : false, - "key.typename" : "PagedAppearance", - "key.typeusr" : "$s10ListableUI15PagedAppearanceVD", - "key.usr" : "s:10ListableUI15PagedAppearanceV7defaultACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var direction: LayoutDirection<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2416 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The direction the paging layout should occur in. Defaults to `vertical`.", - "key.doc.column" : 16, - "key.doc.comment" : "The direction the paging layout should occur in. Defaults to `vertical`.", - "key.doc.declaration" : "public var direction: LayoutDirection", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "direction<\/Name>s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp<\/USR>public var direction: LayoutDirection<\/Declaration>The direction the paging layout should occur in. Defaults to vertical<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 63, - "key.doc.name" : "direction", - "key.doc.type" : "Other", - "key.doclength" : 77, - "key.docoffset" : 2335, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 2427, - "key.offset" : 2423, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp" - } - ], - "key.parsed_declaration" : "public var direction: LayoutDirection", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let listHeaderPosition: ListHeaderPosition<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2459 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> listHeaderPosition<\/decl.name>: ListHeaderPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "listHeaderPosition", - "key.namelength" : 18, - "key.nameoffset" : 2470, - "key.offset" : 2466, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP18listHeaderPositionAA0cgH0Ovp" - } - ], - "key.parsed_declaration" : "public let listHeaderPosition: ListHeaderPosition = .inline", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.typename" : "ListHeaderPosition", - "key.typeusr" : "$s10ListableUI18ListHeaderPositionOD", - "key.usr" : "s:10ListableUI15PagedAppearanceV18listHeaderPositionAA04ListfG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let stickySectionHeaders: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2524 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "stickySectionHeaders", - "key.namelength" : 20, - "key.nameoffset" : 2535, - "key.offset" : 2531, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp" - } - ], - "key.parsed_declaration" : "public let stickySectionHeaders: Bool = false", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 67, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI15PagedAppearanceV20stickySectionHeadersSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var pagingBehavior: ListPagingBehavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2579 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pagingBehavior<\/decl.name>: ListPagingBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "pagingBehavior", - "key.namelength" : 14, - "key.nameoffset" : 2590, - "key.offset" : 2586, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP14pagingBehaviorAA0c6PagingG0Ovp" - } - ], - "key.parsed_declaration" : "public var pagingBehavior: ListPagingBehavior = .none", - "key.parsed_scope.end" : 69, - "key.parsed_scope.start" : 69, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListPagingBehavior", - "key.typeusr" : "$s10ListableUI18ListPagingBehaviorOD", - "key.usr" : "s:10ListableUI15PagedAppearanceV14pagingBehaviorAA010ListPagingF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2642 - } - ], - "key.bodylength" : 707, - "key.bodyoffset" : 2707, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 766, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewProperties", - "key.namelength" : 20, - "key.nameoffset" : 2653, - "key.offset" : 2649, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20scrollViewPropertiesAA0cd6ScrollgH0Vvp" - } - ], - "key.parsed_declaration" : "public var scrollViewProperties: ListLayoutScrollViewProperties", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 71, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutScrollViewProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD", - "key.usr" : "s:10ListableUI15PagedAppearanceV20scrollViewPropertiesAA016ListLayoutScrollfG0Vvp" - }, - { - "key.annotated_decl" : "let pageScrollingBehavior: PageScrollingBehavior<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> pageScrollingBehavior<\/decl.name>: PageScrollingBehavior<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 306, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "pageScrollingBehavior", - "key.namelength" : 21, - "key.nameoffset" : 2729, - "key.offset" : 2725, - "key.parsed_declaration" : "let pageScrollingBehavior: PageScrollingBehavior = switch pagingSize {\n\/\/ When there is no peek, meaning pages span the width of the collection view,\n\/\/ use the system's native paging behavior.\ncase .inset(let peek): peek.isEmpty ? .full : .peek\ncase .fixed: .full\n}", - "key.parsed_scope.end" : 73, - "key.parsed_scope.start" : 73, - "key.reusingastcontext" : false, - "key.typename" : "PageScrollingBehavior", - "key.typeusr" : "$s10ListableUI21PageScrollingBehaviorOD", - "key.usr" : "s:10ListableUI15PagedAppearanceV20scrollViewPropertiesAA016ListLayoutScrollfG0Vvg21pageScrollingBehaviorL_AA04PagelM0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var bounds: ListContentBounds<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3425 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 3436, - "key.offset" : 3432, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP6boundsAA0C13ContentBoundsVSgvp" - } - ], - "key.parsed_declaration" : "public var bounds: ListContentBounds?", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 90, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListContentBounds?", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVSgD", - "key.usr" : "s:10ListableUI15PagedAppearanceV6boundsAA17ListContentBoundsVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var peek: Peek<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3526 - } - ], - "key.bodylength" : 204, - "key.bodyoffset" : 3549, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This is a proxy to the internal `pagingSize`.", - "key.doc.column" : 16, - "key.doc.comment" : "This is a proxy to the internal `pagingSize`.", - "key.doc.declaration" : "public var peek: Peek { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "peek<\/Name>s:10ListableUI15PagedAppearanceV4peekAC4PeekVvp<\/USR>public var peek: Peek { get set }<\/Declaration>This is a proxy to the internal pagingSize<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 93, - "key.doc.name" : "peek", - "key.doc.type" : "Other", - "key.doclength" : 50, - "key.docoffset" : 3472, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> peek<\/decl.name>: Peek<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 221, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "peek", - "key.namelength" : 4, - "key.nameoffset" : 3537, - "key.offset" : 3533, - "key.parsed_declaration" : "public var peek: Peek", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "PagedAppearance.Peek", - "key.typeusr" : "$s10ListableUI15PagedAppearanceV4PeekVD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4peekAC4PeekVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func toLayoutDescription() -> LayoutDescription<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3764 - } - ], - "key.bodylength" : 83, - "key.bodyoffset" : 3820, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> toLayoutDescription<\/decl.name>() -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 133, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "toLayoutDescription()", - "key.namelength" : 21, - "key.nameoffset" : 3776, - "key.offset" : 3771, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP02toD11DescriptionAA0dG0VyF" - } - ], - "key.parsed_declaration" : "public func toLayoutDescription() -> LayoutDescription", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 104, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedAppearance) -> () -> LayoutDescription", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVycD", - "key.usr" : "s:10ListableUI15PagedAppearanceV19toLayoutDescriptionAA0fG0VyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 16, - "key.name" : "MARK: Properties", - "key.offset" : 3917 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var showsScrollIndicators: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4017 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If scroll indicators should be visible along the scrollable axis.", - "key.doc.column" : 16, - "key.doc.comment" : "If scroll indicators should be visible along the scrollable axis.", - "key.doc.declaration" : "public var showsScrollIndicators: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "showsScrollIndicators<\/Name>s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp<\/USR>public var showsScrollIndicators: Bool<\/Declaration>If scroll indicators should be visible along the scrollable axis.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 111, - "key.doc.name" : "showsScrollIndicators", - "key.doc.type" : "Other", - "key.doclength" : 70, - "key.docoffset" : 3943, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> showsScrollIndicators<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 111, - "key.modulename" : "ListableUI", - "key.name" : "showsScrollIndicators", - "key.namelength" : 21, - "key.nameoffset" : 4028, - "key.offset" : 4024, - "key.parsed_declaration" : "public var showsScrollIndicators : Bool", - "key.parsed_scope.end" : 111, - "key.parsed_scope.start" : 111, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal var pagingSize: PagingSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 4115 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Internal property for test harness only.", - "key.doc.column" : 18, - "key.doc.comment" : "Internal property for test harness only.", - "key.doc.declaration" : "internal var pagingSize: PagingSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "pagingSize<\/Name>s:10ListableUI15PagedAppearanceV10pagingSizeAC06PagingF0Ovp<\/USR>internal var pagingSize: PagingSize<\/Declaration>Internal property for test harness only.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 114, - "key.doc.name" : "pagingSize", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 4066, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pagingSize<\/decl.name>: PagingSize<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 114, - "key.modulename" : "ListableUI", - "key.name" : "pagingSize", - "key.namelength" : 10, - "key.nameoffset" : 4128, - "key.offset" : 4124, - "key.parsed_declaration" : "internal var pagingSize : PagingSize", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 114, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "PagedAppearance.PagingSize", - "key.typeusr" : "$s10ListableUI15PagedAppearanceV10PagingSizeOD", - "key.usr" : "s:10ListableUI15PagedAppearanceV10pagingSizeAC06PagingF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(direction: LayoutDirection<\/Type> = .vertical, showsScrollIndicators: Bool<\/Type> = false, bounds: ListContentBounds<\/Type>? = nil, peek: Peek<\/Type> = .none)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4161 - } - ], - "key.bodylength" : 201, - "key.bodyoffset" : 4344, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type> = .vertical<\/decl.var.parameter>, showsScrollIndicators<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, bounds<\/decl.var.parameter.argument_label>: ListContentBounds<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, peek<\/decl.var.parameter.argument_label>: Peek<\/ref.struct><\/decl.var.parameter.type> = .none<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 378, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "init(direction:showsScrollIndicators:bounds:peek:)", - "key.namelength" : 174, - "key.nameoffset" : 4168, - "key.offset" : 4168, - "key.parsed_declaration" : "public init(\n direction: LayoutDirection = .vertical,\n showsScrollIndicators : Bool = false,\n bounds: ListContentBounds? = nil,\n peek: Peek = .none\n)", - "key.parsed_scope.end" : 128, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedAppearance.Type) -> (LayoutDirection, Bool, ListContentBounds?, PagedAppearance.Peek) -> PagedAppearance", - "key.typeusr" : "$s9direction21showsScrollIndicators6bounds4peek10ListableUI15PagedAppearanceVAE15LayoutDirectionO_SbAE17ListContentBoundsVSgAG4PeekVtcD", - "key.usr" : "s:10ListableUI15PagedAppearanceV9direction21showsScrollIndicators6bounds4peekAcA15LayoutDirectionO_SbAA17ListContentBoundsVSgAC4PeekVtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum PagedAppearance<\/Type>.PagingSize : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 1104, - "key.bodyoffset" : 4585, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 4574 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> PagedAppearance<\/ref.struct>.PagingSize<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1134, - "key.line" : 130, - "key.modulename" : "ListableUI", - "key.name" : "PagingSize", - "key.namelength" : 10, - "key.nameoffset" : 4561, - "key.offset" : 4556, - "key.parsed_declaration" : "enum PagingSize : Equatable", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 130, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 4691, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case inset(Peek<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This will inset the layout's primary dimension using the associated `Peek`.", - "key.doc.column" : 14, - "key.doc.comment" : "This will inset the layout's primary dimension using the associated `Peek`.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "inset(_:)<\/Name>s:10ListableUI15PagedAppearanceV10PagingSizeO5insetyAeC4PeekVcAEmF<\/USR><\/Declaration>This will inset the layout’s primary dimension using the associated Peek<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 133, - "key.doc.name" : "inset(_:)", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 4603, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> inset<\/decl.name>(Peek<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 133, - "key.modulename" : "ListableUI", - "key.name" : "inset(_:)", - "key.namelength" : 11, - "key.nameoffset" : 4696, - "key.offset" : 4696, - "key.parsed_declaration" : "case inset(Peek)", - "key.parsed_scope.end" : 133, - "key.parsed_scope.start" : 133, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedAppearance.PagingSize.Type) -> (PagedAppearance.Peek) -> PagedAppearance.PagingSize", - "key.typeusr" : "$sy10ListableUI15PagedAppearanceV10PagingSizeOAC4PeekVcAEmcD", - "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO5insetyAeC4PeekVcAEmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 4725, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case fixed(CGFloat<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 135, - "key.modulename" : "ListableUI", - "key.name" : "fixed(_:)", - "key.namelength" : 14, - "key.nameoffset" : 4730, - "key.offset" : 4730, - "key.parsed_declaration" : "case fixed(CGFloat)", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 135, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedAppearance.PagingSize.Type) -> (CGFloat) -> PagedAppearance.PagingSize", - "key.typeusr" : "$sy10ListableUI15PagedAppearanceV10PagingSizeO14CoreFoundation7CGFloatVcAEmcD", - "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO5fixedyAE14CoreFoundation7CGFloatVcAEmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func size(for viewSize: CGSize<\/Type>, isFirstItem: Bool<\/Type>, direction: LayoutDirection<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.bodylength" : 829, - "key.bodyoffset" : 4854, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> viewSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, isFirstItem<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 922, - "key.line" : 137, - "key.modulename" : "ListableUI", - "key.name" : "size(for:isFirstItem:direction:)", - "key.namelength" : 75, - "key.nameoffset" : 4767, - "key.offset" : 4762, - "key.parsed_declaration" : "func size(for viewSize : CGSize, isFirstItem: Bool, direction : LayoutDirection) -> CGSize", - "key.parsed_scope.end" : 158, - "key.parsed_scope.start" : 137, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedAppearance.PagingSize) -> (CGSize, Bool, LayoutDirection) -> CGSize", - "key.typeusr" : "$s3for11isFirstItem9directionSo6CGSizeVAE_Sb10ListableUI15LayoutDirectionOtcD", - "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO4size3for11isFirstItem9directionSo6CGSizeVAK_SbAA15LayoutDirectionOtF" - } - ], - "key.typename" : "PagedAppearance.PagingSize.Type", - "key.typeusr" : "$s10ListableUI15PagedAppearanceV10PagingSizeOmD", - "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO" - } - ], - "key.typename" : "PagedAppearance.Type", - "key.typeusr" : "$s10ListableUI15PagedAppearanceVmD", - "key.usr" : "s:10ListableUI15PagedAppearanceV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct PagedAppearance : ListLayoutAppearance<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5694 - } - ], - "key.bodylength" : 2854, - "key.bodyoffset" : 5728, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the available appearance configuration options for a paged list layout.\nPaged list layouts lay out the headers, footers, and items in a list in a paged layout,\nsimilar to how UIPageViewController works.\n\nYou can control the direction via the `direction` property, and you can control\nthe inset on each page via the `itemInsets` property. You may also optionally show\nthe scroll indicators with the `showsScrollIndicators` property.\n\nNote\n----\nDo not edit this ASCII diagram directly.\nEdit the `PagedAppearance.monopic` file in this directory using Monodraw.\n```\n┌─────────────────────────────────┐\n│ itemInsets.top │\n│ ┌─────────────────────────┐ i │\n│ i │ │ t │\n│ t │ │ e │\n│ e │ │ m │\n│ m │ │ I │\n│ I │ │ n │\n│ n │ │ s │\n│ s │ │ e │\n│ e │ │ t │\n│ t │ │ s │\n│ s │ │ . │\n│ . │ │ r │\n│ l │ │ i │\n│ e │ │ g │\n│ f │ │ h │\n│ t │ │ t │\n│ └─────────────────────────┘ │\n│ itemInsets.bottom │\n└─────────────────────────────────┘\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct PagedAppearance : ListLayoutAppearance", - "key.doc.discussion" : [ - { - "Para" : "You can control the direction via the `direction` property, and you can control the inset on each page via the `itemInsets` property. You may also optionally show the scroll indicators with the `showsScrollIndicators` property." - }, - { - "Para" : "Do not edit this ASCII diagram directly. Edit the `PagedAppearance.monopic` file in this directory using Monodraw." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "PagedAppearance<\/Name>s:10ListableUI15PagedAppearanceV<\/USR>public struct PagedAppearance : ListLayoutAppearance<\/Declaration>Describes the available appearance configuration options for a paged list layout. Paged list layouts lay out the headers, footers, and items in a list in a paged layout, similar to how UIPageViewController works.<\/Para><\/Abstract>You can control the direction via the direction<\/codeVoice> property, and you can control the inset on each page via the itemInsets<\/codeVoice> property. You may also optionally show the scroll indicators with the showsScrollIndicators<\/codeVoice> property.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not edit this ASCII diagram directly. Edit the PagedAppearance.monopic<\/codeVoice> file in this directory using Monodraw.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 54, - "key.doc.name" : "PagedAppearance", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> PagedAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2882, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "PagedAppearance", - "key.namelength" : 15, - "key.nameoffset" : 5711, - "key.offset" : 5701, - "key.parsed_declaration" : "public extension PagedAppearance", - "key.parsed_scope.end" : 222, - "key.parsed_scope.start" : 162, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "struct Peek : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 2666, - "key.bodyoffset" : 5914, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This data model is used to apply an inset to each page, allowing items residing on the\nedge of the collection view to \"peek\" into view.", - "key.doc.column" : 12, - "key.doc.comment" : "This data model is used to apply an inset to each page, allowing items residing on the\nedge of the collection view to \"peek\" into view.", - "key.doc.declaration" : "struct Peek : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "Peek<\/Name>s:10ListableUI15PagedAppearanceV4PeekV<\/USR>struct Peek : Equatable<\/Declaration>This data model is used to apply an inset to each page, allowing items residing on the edge of the collection view to “peek” into view.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 166, - "key.doc.name" : "Peek", - "key.doc.type" : "Class", - "key.doclength" : 148, - "key.docoffset" : 5738, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 5903 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Peek<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2691, - "key.line" : 166, - "key.modulename" : "ListableUI", - "key.name" : "Peek", - "key.namelength" : 4, - "key.nameoffset" : 5897, - "key.offset" : 5890, - "key.parsed_declaration" : "struct Peek: Equatable", - "key.parsed_scope.end" : 221, - "key.parsed_scope.start" : 166, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let value: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The main leading and trailing peek value.", - "key.doc.column" : 13, - "key.doc.comment" : "The main leading and trailing peek value.", - "key.doc.declaration" : "let value: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "value<\/Name>s:10ListableUI15PagedAppearanceV4PeekV5value14CoreFoundation7CGFloatVvp<\/USR>let value: CGFloat<\/Declaration>The main leading and trailing peek value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 169, - "key.doc.name" : "value", - "key.doc.type" : "Other", - "key.doclength" : 46, - "key.docoffset" : 5932, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> value<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 169, - "key.modulename" : "ListableUI", - "key.name" : "value", - "key.namelength" : 5, - "key.nameoffset" : 5990, - "key.offset" : 5986, - "key.parsed_declaration" : "let value: CGFloat", - "key.parsed_scope.end" : 169, - "key.parsed_scope.start" : 169, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV5value14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let firstItemConfiguration: FirstItemConfiguration<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Configures the first item's peek, which can be unique from the other peek values.", - "key.doc.column" : 13, - "key.doc.comment" : "Configures the first item's peek, which can be unique from the other peek values.", - "key.doc.declaration" : "let firstItemConfiguration: FirstItemConfiguration", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "firstItemConfiguration<\/Name>s:10ListableUI15PagedAppearanceV4PeekV22firstItemConfigurationAE05FirstgH0Ovp<\/USR>let firstItemConfiguration: FirstItemConfiguration<\/Declaration>Configures the first item’s peek, which can be unique from the other peek values.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 172, - "key.doc.name" : "firstItemConfiguration", - "key.doc.type" : "Other", - "key.doclength" : 86, - "key.docoffset" : 6022, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> firstItemConfiguration<\/decl.name>: FirstItemConfiguration<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 172, - "key.modulename" : "ListableUI", - "key.name" : "firstItemConfiguration", - "key.namelength" : 22, - "key.nameoffset" : 6120, - "key.offset" : 6116, - "key.parsed_declaration" : "let firstItemConfiguration: FirstItemConfiguration", - "key.parsed_scope.end" : 172, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.typename" : "PagedAppearance.Peek.FirstItemConfiguration", - "key.typeusr" : "$s10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationOD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV22firstItemConfigurationAE05FirstgH0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var firstItemLeadingValue: CGFloat<\/Type> { get }<\/Declaration>", - "key.bodylength" : 162, - "key.bodyoffset" : 6278, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The leading peek value before the first item.", - "key.doc.column" : 13, - "key.doc.comment" : "The leading peek value before the first item.", - "key.doc.declaration" : "var firstItemLeadingValue: CGFloat { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "firstItemLeadingValue<\/Name>s:10ListableUI15PagedAppearanceV4PeekV21firstItemLeadingValue14CoreFoundation7CGFloatVvp<\/USR>var firstItemLeadingValue: CGFloat { get }<\/Declaration>The leading peek value before the first item.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 175, - "key.doc.name" : "firstItemLeadingValue", - "key.doc.type" : "Other", - "key.doclength" : 50, - "key.docoffset" : 6184, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> firstItemLeadingValue<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 199, - "key.line" : 175, - "key.modulename" : "ListableUI", - "key.name" : "firstItemLeadingValue", - "key.namelength" : 21, - "key.nameoffset" : 6246, - "key.offset" : 6242, - "key.parsed_declaration" : "var firstItemLeadingValue: CGFloat", - "key.parsed_scope.end" : 180, - "key.parsed_scope.start" : 175, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV21firstItemLeadingValue14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum PagedAppearance<\/Type>.Peek<\/Type>.FirstItemConfiguration : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6545 - } - ], - "key.bodylength" : 785, - "key.bodyoffset" : 6592, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Houses the various configuration options for the first item's peek value.", - "key.doc.column" : 21, - "key.doc.comment" : "Houses the various configuration options for the first item's peek value.", - "key.doc.declaration" : "public enum ListableUI.PagedAppearance.Peek.FirstItemConfiguration : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "FirstItemConfiguration<\/Name>s:10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationO<\/USR>public enum ListableUI.PagedAppearance.Peek.FirstItemConfiguration : Equatable<\/Declaration>Houses the various configuration options for the first item’s peek value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 183, - "key.doc.name" : "FirstItemConfiguration", - "key.doc.type" : "Other", - "key.doclength" : 78, - "key.docoffset" : 6459, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 6581 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> PagedAppearance<\/ref.struct>.Peek<\/ref.struct>.FirstItemConfiguration<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 826, - "key.line" : 183, - "key.modulename" : "ListableUI", - "key.name" : "FirstItemConfiguration", - "key.namelength" : 22, - "key.nameoffset" : 6557, - "key.offset" : 6552, - "key.parsed_declaration" : "public enum FirstItemConfiguration: Equatable", - "key.parsed_scope.end" : 196, - "key.parsed_scope.start" : 183, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 6804, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case uniform<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The first item's leading peek is equal to the `Peek.value`. This will keep the first\nitem centered within the layout and will keep page sizes consistent.", - "key.doc.column" : 18, - "key.doc.comment" : "The first item's leading peek is equal to the `Peek.value`. This will keep the first\nitem centered within the layout and will keep page sizes consistent.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "uniform<\/Name>s:10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationO7uniformyA2GmF<\/USR><\/Declaration>The first item’s leading peek is equal to the Peek.value<\/codeVoice>. This will keep the first item centered within the layout and will keep page sizes consistent.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 187, - "key.doc.name" : "uniform", - "key.doc.type" : "Other", - "key.doclength" : 174, - "key.docoffset" : 6618, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> uniform<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 187, - "key.modulename" : "ListableUI", - "key.name" : "uniform", - "key.namelength" : 7, - "key.nameoffset" : 6809, - "key.offset" : 6809, - "key.parsed_declaration" : "case uniform", - "key.parsed_scope.end" : 187, - "key.parsed_scope.start" : 187, - "key.reusingastcontext" : false, - "key.typename" : "(PagedAppearance.Peek.FirstItemConfiguration.Type) -> PagedAppearance.Peek.FirstItemConfiguration", - "key.typeusr" : "$sy10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationOAGmcD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationO7uniformyA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 27, - "key.offset" : 7341, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case customLeading(CGFloat<\/Type>)<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The first item's leading peek is equal to the associated value. This will offset the\nfirst item, giving it a larger page size than the rest of the items.\n\nNote: this value should be smaller than `Peek.value`. If a first item leading peek that\nis larger than the rest of the peeks becomes a business requirement, add a new\n`ListPagingBehavior` case to support trailing\/bottom alignment on the first item.", - "key.doc.column" : 18, - "key.doc.comment" : "The first item's leading peek is equal to the associated value. This will offset the\nfirst item, giving it a larger page size than the rest of the items.\n\nNote: this value should be smaller than `Peek.value`. If a first item leading peek that\nis larger than the rest of the peeks becomes a business requirement, add a new\n`ListPagingBehavior` case to support trailing\/bottom alignment on the first item.", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "Note: this value should be smaller than `Peek.value`. If a first item leading peek that is larger than the rest of the peeks becomes a business requirement, add a new `ListPagingBehavior` case to support trailing\/bottom alignment on the first item." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "customLeading(_:)<\/Name>s:10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationO13customLeadingyAG14CoreFoundation7CGFloatVcAGmF<\/USR><\/Declaration>The first item’s leading peek is equal to the associated value. This will offset the first item, giving it a larger page size than the rest of the items.<\/Para><\/Abstract>Note: this value should be smaller than Peek.value<\/codeVoice>. If a first item leading peek that is larger than the rest of the peeks becomes a business requirement, add a new ListPagingBehavior<\/codeVoice> case to support trailing\/bottom alignment on the first item.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 195, - "key.doc.name" : "customLeading(_:)", - "key.doc.type" : "Other", - "key.doclength" : 487, - "key.docoffset" : 6842, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> customLeading<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 22, - "key.line" : 195, - "key.modulename" : "ListableUI", - "key.name" : "customLeading(_:)", - "key.namelength" : 22, - "key.nameoffset" : 7346, - "key.offset" : 7346, - "key.parsed_declaration" : "case customLeading(CGFloat)", - "key.parsed_scope.end" : 195, - "key.parsed_scope.start" : 195, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedAppearance.Peek.FirstItemConfiguration.Type) -> (CGFloat) -> PagedAppearance.Peek.FirstItemConfiguration", - "key.typeusr" : "$sy10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationO14CoreFoundation7CGFloatVcAGmcD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationO13customLeadingyAG14CoreFoundation7CGFloatVcAGmF" - } - ] - } - ], - "key.typename" : "PagedAppearance.Peek.FirstItemConfiguration.Type", - "key.typeusr" : "$s10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationOmD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV22FirstItemConfigurationO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func totalValue(_ isFirstItem: Bool<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.bodylength" : 75, - "key.bodyoffset" : 7588, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This returns the combined leading and trailing peek, accounting for a custom leading value\nwhen `isFirstItem` is true.", - "key.doc.column" : 14, - "key.doc.comment" : "This returns the combined leading and trailing peek, accounting for a custom leading value\nwhen `isFirstItem` is true.", - "key.doc.declaration" : "func totalValue(_ isFirstItem: Bool) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "totalValue(_:)<\/Name>s:10ListableUI15PagedAppearanceV4PeekV10totalValuey14CoreFoundation7CGFloatVSbF<\/USR>func totalValue(_ isFirstItem: Bool) -> CGFloat<\/Declaration>This returns the combined leading and trailing peek, accounting for a custom leading value when isFirstItem<\/codeVoice> is true.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 200, - "key.doc.name" : "totalValue(_:)", - "key.doc.type" : "Function", - "key.doclength" : 135, - "key.docoffset" : 7396, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> totalValue<\/decl.name>(_<\/decl.var.parameter.argument_label> isFirstItem<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 125, - "key.line" : 200, - "key.modulename" : "ListableUI", - "key.name" : "totalValue(_:)", - "key.namelength" : 31, - "key.nameoffset" : 7544, - "key.offset" : 7539, - "key.parsed_declaration" : "func totalValue(_ isFirstItem: Bool) -> CGFloat", - "key.parsed_scope.end" : 202, - "key.parsed_scope.start" : 200, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedAppearance.Peek) -> (Bool) -> CGFloat", - "key.typeusr" : "$sy14CoreFoundation7CGFloatVSbcD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV10totalValuey14CoreFoundation7CGFloatVSbF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isEmpty: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7738 - } - ], - "key.bodylength" : 62, - "key.bodyoffset" : 7764, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This is `true` if there are no peek values.", - "key.doc.column" : 20, - "key.doc.comment" : "This is `true` if there are no peek values.", - "key.doc.declaration" : "public var isEmpty: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "isEmpty<\/Name>s:10ListableUI15PagedAppearanceV4PeekV7isEmptySbvp<\/USR>public var isEmpty: Bool { get }<\/Declaration>This is true<\/codeVoice> if there are no peek values.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 205, - "key.doc.name" : "isEmpty", - "key.doc.type" : "Other", - "key.doclength" : 48, - "key.docoffset" : 7682, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 82, - "key.line" : 205, - "key.modulename" : "ListableUI", - "key.name" : "isEmpty", - "key.namelength" : 7, - "key.nameoffset" : 7749, - "key.offset" : 7745, - "key.parsed_declaration" : "public var isEmpty: Bool", - "key.parsed_scope.end" : 207, - "key.parsed_scope.start" : 205, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV7isEmptySbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(value: CGFloat<\/Type> = 0, firstItemConfiguration: FirstItemConfiguration<\/Type> = .uniform)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8265 - } - ], - "key.bodylength" : 105, - "key.bodyoffset" : 8357, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `Peek` with the specified peek value and first item configuration. By default,\nthis initializer creates an empty `Peek`, so that items consume the layout's full width.\n- Parameters:\n - value: The peek value applied to the leading and trailing side of items.\n - firstItemConfiguration: The custom peek configuration for the layout's first item.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new `Peek` with the specified peek value and first item configuration. By default,\nthis initializer creates an empty `Peek`, so that items consume the layout's full width.\n- Parameters:\n - value: The peek value applied to the leading and trailing side of items.\n - firstItemConfiguration: The custom peek configuration for the layout's first item.", - "key.doc.declaration" : "public init(value: CGFloat = 0, firstItemConfiguration: FirstItemConfiguration = .uniform)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "init(value:firstItemConfiguration:)<\/Name>s:10ListableUI15PagedAppearanceV4PeekV5value22firstItemConfigurationAE14CoreFoundation7CGFloatV_AE05FirsthI0Otcfc<\/USR>public init(value: CGFloat = 0, firstItemConfiguration: FirstItemConfiguration = .uniform)<\/Declaration>Creates a new Peek<\/codeVoice> with the specified peek value and first item configuration. By default, this initializer creates an empty Peek<\/codeVoice>, so that items consume the layout’s full width.<\/Para><\/Abstract>value<\/Name>in<\/Direction>The peek value applied to the leading and trailing side of items.<\/Para><\/Discussion><\/Parameter>firstItemConfiguration<\/Name>in<\/Direction>The custom peek configuration for the layout’s first item.<\/Para><\/Discussion><\/Parameter><\/Parameters><\/CommentParts><\/Function>", - "key.doc.line" : 214, - "key.doc.name" : "init(value:firstItemConfiguration:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The peek value applied to the leading and trailing side of items." - } - ], - "name" : "value" - }, - { - "discussion" : [ - { - "Para" : "The custom peek configuration for the layout’s first item." - } - ], - "name" : "firstItemConfiguration" - } - ], - "key.doc.type" : "Function", - "key.doclength" : 412, - "key.docoffset" : 7845, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(value<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0<\/decl.var.parameter>, firstItemConfiguration<\/decl.var.parameter.argument_label>: FirstItemConfiguration<\/ref.enum><\/decl.var.parameter.type> = .uniform<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 191, - "key.line" : 214, - "key.modulename" : "ListableUI", - "key.name" : "init(value:firstItemConfiguration:)", - "key.namelength" : 83, - "key.nameoffset" : 8272, - "key.offset" : 8272, - "key.parsed_declaration" : "public init(value: CGFloat = 0, firstItemConfiguration: FirstItemConfiguration = .uniform)", - "key.parsed_scope.end" : 217, - "key.parsed_scope.start" : 214, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedAppearance.Peek.Type) -> (CGFloat, PagedAppearance.Peek.FirstItemConfiguration) -> PagedAppearance.Peek", - "key.typeusr" : "$s5value22firstItemConfiguration10ListableUI15PagedAppearanceV4PeekV14CoreFoundation7CGFloatV_AG05FirstcD0OtcD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV5value22firstItemConfigurationAE14CoreFoundation7CGFloatV_AE05FirsthI0Otcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var none: `Self` { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8535 - } - ], - "key.bodylength" : 9, - "key.bodyoffset" : 8565, - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This represents no peeking functionality.", - "key.doc.column" : 27, - "key.doc.comment" : "This represents no peeking functionality.", - "key.doc.declaration" : "public static var none: `Self` { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI15PagedAppearanceV4PeekV4noneAEvpZ<\/USR>public static var none: `Self` { get }<\/Declaration>This represents no peeking functionality.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 220, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 46, - "key.docoffset" : 8481, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> none<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 33, - "key.line" : 220, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 8553, - "key.offset" : 8542, - "key.parsed_declaration" : "public static var none: Self", - "key.parsed_scope.end" : 220, - "key.parsed_scope.start" : 220, - "key.reusingastcontext" : false, - "key.typename" : "PagedAppearance.Peek", - "key.typeusr" : "$s10ListableUI15PagedAppearanceV4PeekVD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV4noneAEvpZ" - } - ], - "key.typename" : "PagedAppearance.Peek.Type", - "key.typeusr" : "$s10ListableUI15PagedAppearanceV4PeekVmD", - "key.usr" : "s:10ListableUI15PagedAppearanceV4PeekV" - } - ], - "key.typename" : "PagedAppearance.Type", - "key.typeusr" : "$s10ListableUI15PagedAppearanceVmD", - "key.usr" : "s:10ListableUI15PagedAppearanceV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class PagedListLayout : ListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 8586 - } - ], - "key.bodylength" : 4118, - "key.bodyoffset" : 8628, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 10, - "key.offset" : 8616 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PagedListLayout<\/decl.name> : ListLayout<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayout" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 4155, - "key.line" : 225, - "key.modulename" : "ListableUI", - "key.name" : "PagedListLayout", - "key.namelength" : 15, - "key.nameoffset" : 8598, - "key.offset" : 8592, - "key.parsed_declaration" : "final class PagedListLayout : ListLayout", - "key.parsed_scope.end" : 362, - "key.parsed_scope.start" : 225, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias PagedListLayout<\/Type>.ItemLayout = EmptyItemLayoutsValue<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> PagedListLayout<\/ref.class>.ItemLayout<\/decl.name> = EmptyItemLayoutsValue<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 44, - "key.line" : 227, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayout", - "key.namelength" : 10, - "key.nameoffset" : 8643, - "key.offset" : 8633, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP04ItemD0Qa" - } - ], - "key.parsed_declaration" : "typealias ItemLayout = EmptyItemLayoutsValue", - "key.parsed_scope.end" : 227, - "key.parsed_scope.start" : 227, - "key.reusingastcontext" : false, - "key.typename" : "EmptyItemLayoutsValue.Type", - "key.typeusr" : "$s10ListableUI21EmptyItemLayoutsValueVmD", - "key.usr" : "s:10ListableUI15PagedListLayoutC04ItemE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias PagedListLayout<\/Type>.HeaderFooterLayout = EmptyHeaderFooterLayoutsValue<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> PagedListLayout<\/ref.class>.HeaderFooterLayout<\/decl.name> = EmptyHeaderFooterLayoutsValue<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 60, - "key.line" : 228, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayout", - "key.namelength" : 18, - "key.nameoffset" : 8692, - "key.offset" : 8682, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP012HeaderFooterD0Qa" - } - ], - "key.parsed_declaration" : "typealias HeaderFooterLayout = EmptyHeaderFooterLayoutsValue", - "key.parsed_scope.end" : 228, - "key.parsed_scope.start" : 228, - "key.reusingastcontext" : false, - "key.typename" : "EmptyHeaderFooterLayoutsValue.Type", - "key.typeusr" : "$s10ListableUI29EmptyHeaderFooterLayoutsValueVmD", - "key.usr" : "s:10ListableUI15PagedListLayoutC012HeaderFooterE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias PagedListLayout<\/Type>.SectionLayout = EmptySectionLayoutsValue<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> PagedListLayout<\/ref.class>.SectionLayout<\/decl.name> = EmptySectionLayoutsValue<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 50, - "key.line" : 229, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayout", - "key.namelength" : 13, - "key.nameoffset" : 8757, - "key.offset" : 8747, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP07SectionD0Qa" - } - ], - "key.parsed_declaration" : "typealias SectionLayout = EmptySectionLayoutsValue", - "key.parsed_scope.end" : 229, - "key.parsed_scope.start" : 229, - "key.reusingastcontext" : false, - "key.typename" : "EmptySectionLayoutsValue.Type", - "key.typeusr" : "$s10ListableUI24EmptySectionLayoutsValueVmD", - "key.usr" : "s:10ListableUI15PagedListLayoutC07SectionE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias PagedListLayout<\/Type>.LayoutAppearance = PagedAppearance<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8807 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> PagedListLayout<\/ref.class>.LayoutAppearance<\/decl.name> = PagedAppearance<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 44, - "key.line" : 231, - "key.modulename" : "ListableUI", - "key.name" : "LayoutAppearance", - "key.namelength" : 16, - "key.nameoffset" : 8824, - "key.offset" : 8814, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa" - } - ], - "key.parsed_declaration" : "public typealias LayoutAppearance = PagedAppearance", - "key.parsed_scope.end" : 231, - "key.parsed_scope.start" : 231, - "key.reusingastcontext" : false, - "key.typename" : "PagedAppearance.Type", - "key.typeusr" : "$s10ListableUI15PagedAppearanceVmD", - "key.usr" : "s:10ListableUI15PagedListLayoutC0E10Appearancea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>", - "key.bodylength" : 62, - "key.bodyoffset" : 8909, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 104, - "key.line" : 233, - "key.modulename" : "ListableUI", - "key.name" : "defaults", - "key.namelength" : 8, - "key.nameoffset" : 8879, - "key.offset" : 8868, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ" - } - ], - "key.parsed_declaration" : "static var defaults: ListLayoutDefaults", - "key.parsed_scope.end" : 235, - "key.parsed_scope.start" : 233, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutDefaults", - "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD", - "key.usr" : "s:10ListableUI15PagedListLayoutC8defaultsAA0dE8DefaultsVvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var layoutAppearance: PagedAppearance<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: PagedAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 237, - "key.modulename" : "ListableUI", - "key.name" : "layoutAppearance", - "key.namelength" : 16, - "key.nameoffset" : 8986, - "key.offset" : 8982, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp" - } - ], - "key.parsed_declaration" : "var layoutAppearance: PagedAppearance", - "key.parsed_scope.end" : 237, - "key.parsed_scope.start" : 237, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "PagedAppearance", - "key.typeusr" : "$s10ListableUI15PagedAppearanceVD", - "key.usr" : "s:10ListableUI15PagedListLayoutC16layoutAppearanceAA0cG0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let appearance: Appearance<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 239, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 9033, - "key.offset" : 9029, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp" - } - ], - "key.parsed_declaration" : "let appearance: Appearance", - "key.parsed_scope.end" : 239, - "key.parsed_scope.start" : 239, - "key.reusingastcontext" : false, - "key.typename" : "Appearance", - "key.typeusr" : "$s10ListableUI10AppearanceVD", - "key.usr" : "s:10ListableUI15PagedListLayoutC10appearanceAA10AppearanceVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let behavior: Behavior<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 240, - "key.modulename" : "ListableUI", - "key.name" : "behavior", - "key.namelength" : 8, - "key.nameoffset" : 9064, - "key.offset" : 9060, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp" - } - ], - "key.parsed_declaration" : "let behavior: Behavior", - "key.parsed_scope.end" : 240, - "key.parsed_scope.start" : 240, - "key.reusingastcontext" : false, - "key.typename" : "Behavior", - "key.typeusr" : "$s10ListableUI8BehaviorVD", - "key.usr" : "s:10ListableUI15PagedListLayoutC8behaviorAA8BehaviorVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let content: ListLayoutContent<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 241, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 9091, - "key.offset" : 9087, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp" - } - ], - "key.parsed_declaration" : "let content: ListLayoutContent", - "key.parsed_scope.end" : 241, - "key.parsed_scope.start" : 241, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent", - "key.typeusr" : "$s10ListableUI17ListLayoutContentCD", - "key.usr" : "s:10ListableUI15PagedListLayoutC7contentAA0dE7ContentCvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 9137 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(layoutAppearance: PagedAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>", - "key.bodylength" : 172, - "key.bodyoffset" : 9325, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: PagedAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 324, - "key.line" : 247, - "key.modulename" : "ListableUI", - "key.name" : "init(layoutAppearance:appearance:behavior:content:)", - "key.namelength" : 149, - "key.nameoffset" : 9174, - "key.offset" : 9174, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc" - } - ], - "key.parsed_declaration" : "init(\n layoutAppearance: PagedAppearance,\n appearance: Appearance,\n behavior: Behavior,\n content: ListLayoutContent\n)", - "key.parsed_scope.end" : 258, - "key.parsed_scope.start" : 247, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedListLayout.Type) -> (PagedAppearance, Appearance, Behavior, ListLayoutContent) -> PagedListLayout", - "key.typeusr" : "$s16layoutAppearance10appearance8behavior7content10ListableUI15PagedListLayoutCAE0hB0V_AE0B0VAE8BehaviorVAE0iJ7ContentCtcD", - "key.usr" : "s:10ListableUI15PagedListLayoutC16layoutAppearance10appearance8behavior7contentAcA0cG0V_AA0G0VAA8BehaviorVAA0dE7ContentCtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Performing Layouts", - "key.offset" : 9518 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func updateLayout(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.bodylength" : 32, - "key.bodyoffset" : 9620, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 94, - "key.line" : 264, - "key.modulename" : "ListableUI", - "key.name" : "updateLayout(in:)", - "key.namelength" : 50, - "key.nameoffset" : 9564, - "key.offset" : 9559, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inyAA0deE7ContextV_tF" - } - ], - "key.parsed_declaration" : "func updateLayout(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 267, - "key.parsed_scope.start" : 264, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(PagedListLayout) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI15PagedListLayoutC06updateE02inyAA0deE7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func layout(delegate: CollectionViewLayoutDelegate<\/Type>?, in context: ListLayoutLayoutContext<\/Type>) -> ListLayoutResult<\/Type><\/Declaration>", - "key.bodylength" : 2942, - "key.bodyoffset" : 9802, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layout<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutResult<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3082, - "key.line" : 269, - "key.modulename" : "ListableUI", - "key.name" : "layout(delegate:in:)", - "key.namelength" : 108, - "key.nameoffset" : 9668, - "key.offset" : 9663, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" - } - ], - "key.parsed_declaration" : "func layout(\n delegate : CollectionViewLayoutDelegate?,\n in context : ListLayoutLayoutContext\n) -> ListLayoutResult", - "key.parsed_scope.end" : 361, - "key.parsed_scope.start" : 269, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let bounds: ListContentBounds<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 274, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 9815, - "key.offset" : 9811, - "key.parsed_declaration" : "let bounds = self.resolvedBounds(in: context)", - "key.parsed_scope.end" : 274, - "key.parsed_scope.start" : 274, - "key.reusingastcontext" : false, - "key.typename" : "ListContentBounds", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVD", - "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF6boundsL_AA0D13ContentBoundsVvp" - }, - { - "key.annotated_decl" : "let viewSize: CGSize<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The size of the containing view.", - "key.doc.column" : 13, - "key.doc.comment" : "The size of the containing view.", - "key.doc.declaration" : "let viewSize: CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "viewSize<\/Name>s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF8viewSizeL_So6CGSizeVvp<\/USR>let viewSize: CGSize<\/Declaration>The size of the containing view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 278, - "key.doc.name" : "viewSize", - "key.doc.type" : "Other", - "key.doclength" : 37, - "key.docoffset" : 9874, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 38, - "key.line" : 278, - "key.modulename" : "ListableUI", - "key.name" : "viewSize", - "key.namelength" : 8, - "key.nameoffset" : 9932, - "key.offset" : 9928, - "key.parsed_declaration" : "let viewSize = context.viewBounds.size", - "key.parsed_scope.end" : 278, - "key.parsed_scope.start" : 278, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF8viewSizeL_So6CGSizeVvp" - }, - { - "key.annotated_decl" : "let itemWidth: CustomWidth<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemWidth<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 264, - "key.line" : 280, - "key.modulename" : "ListableUI", - "key.name" : "itemWidth", - "key.namelength" : 9, - "key.nameoffset" : 9988, - "key.offset" : 9984, - "key.parsed_declaration" : "let itemWidth = CustomWidth.custom(.init(\n padding: HorizontalPadding(\n leading: bounds.padding.left,\n trailing: bounds.padding.right\n ),\n width: bounds.width,\n alignment: .center\n))", - "key.parsed_scope.end" : 280, - "key.parsed_scope.start" : 280, - "key.reusingastcontext" : false, - "key.typename" : "CustomWidth", - "key.typeusr" : "$s10ListableUI11CustomWidthOD", - "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF9itemWidthL_AA06CustomO0Ovp" - }, - { - "key.annotated_decl" : "var lastMaxY: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Apply the leading peek to the first item's position.", - "key.doc.column" : 13, - "key.doc.comment" : "Apply the leading peek to the first item's position.", - "key.doc.declaration" : "var lastMaxY: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "lastMaxY<\/Name>s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF8lastMaxYL_14CoreFoundation7CGFloatVvp<\/USR>var lastMaxY: CGFloat<\/Declaration>Apply the leading peek to the first item’s position.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 292, - "key.doc.name" : "lastMaxY", - "key.doc.type" : "Other", - "key.doclength" : 57, - "key.docoffset" : 10275, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastMaxY<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 68, - "key.line" : 292, - "key.modulename" : "ListableUI", - "key.name" : "lastMaxY", - "key.namelength" : 8, - "key.nameoffset" : 10353, - "key.offset" : 10349, - "key.parsed_declaration" : "var lastMaxY : CGFloat = layoutAppearance.peek.firstItemLeadingValue", - "key.parsed_scope.end" : 292, - "key.parsed_scope.start" : 292, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF8lastMaxYL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let pageSize: CGSize<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The size of each page to use during the layout.\nTests override this, but it's typically either the size of the view, with\noptional peeking insets applied.", - "key.doc.column" : 17, - "key.doc.comment" : "The size of each page to use during the layout.\nTests override this, but it's typically either the size of the view, with\noptional peeking insets applied.", - "key.doc.declaration" : "let pageSize: CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.doc.full_as_xml" : "pageSize<\/Name>s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtFySi_SbAA0dE11ContentItem_ptXEfU_8pageSizeL_So6CGSizeVvp<\/USR>let pageSize: CGSize<\/Declaration>The size of each page to use during the layout. Tests override this, but it’s typically either the size of the view, with optional peeking insets applied.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 300, - "key.doc.name" : "pageSize", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> pageSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 8, - "key.line" : 300, - "key.modulename" : "ListableUI", - "key.name" : "pageSize", - "key.offset" : 10729, - "key.parsed_declaration" : "let pageSize", - "key.parsed_scope.end" : 300, - "key.parsed_scope.start" : 300, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtFySi_SbAA0dE11ContentItem_ptXEfU_8pageSizeL_So6CGSizeVvp" - } - ], - "key.typename" : "(PagedListLayout) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ListLayoutResult", - "key.typeusr" : "$s8delegate2in10ListableUI16ListLayoutResultVAC014CollectionViewF8Delegate_pSg_AC0efF7ContextVtcD", - "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" - } - ], - "key.typename" : "PagedListLayout.Type", - "key.typeusr" : "$s10ListableUI15PagedListLayoutCmD", - "key.usr" : "s:10ListableUI15PagedListLayoutC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1029, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum SupplementaryKind : String<\/Type>, CaseIterable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 114 - } - ], - "key.bodylength" : 859, - "key.bodyoffset" : 168, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 146 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 12, - "key.offset" : 154 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SupplementaryKind<\/decl.name> : String<\/ref.struct>, CaseIterable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "String" - }, - { - "key.name" : "CaseIterable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 907, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "SupplementaryKind", - "key.namelength" : 17, - "key.nameoffset" : 126, - "key.offset" : 121, - "key.parsed_declaration" : "public enum SupplementaryKind : String, CaseIterable", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 57, - "key.offset" : 173, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case listContainerHeader = "Listable.ListContainerHeader"<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.init_expr", - "key.length" : 30, - "key.offset" : 200 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listContainerHeader<\/decl.name> = "Listable.ListContainerHeader"<\/syntaxtype.string><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 52, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "listContainerHeader", - "key.namelength" : 19, - "key.nameoffset" : 178, - "key.offset" : 178, - "key.parsed_declaration" : "case listContainerHeader = \"Listable.ListContainerHeader\"", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind", - "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD", - "key.usr" : "s:10ListableUI17SupplementaryKindO19listContainerHeaderyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 39, - "key.offset" : 235, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case listHeader = "Listable.ListHeader"<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.init_expr", - "key.length" : 21, - "key.offset" : 253 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listHeader<\/decl.name> = "Listable.ListHeader"<\/syntaxtype.string><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 34, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "listHeader", - "key.namelength" : 10, - "key.nameoffset" : 240, - "key.offset" : 240, - "key.parsed_declaration" : "case listHeader = \"Listable.ListHeader\"", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind", - "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD", - "key.usr" : "s:10ListableUI17SupplementaryKindO10listHeaderyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 39, - "key.offset" : 279, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case listFooter = "Listable.ListFooter"<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.init_expr", - "key.length" : 21, - "key.offset" : 297 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listFooter<\/decl.name> = "Listable.ListFooter"<\/syntaxtype.string><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 34, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "listFooter", - "key.namelength" : 10, - "key.nameoffset" : 284, - "key.offset" : 284, - "key.parsed_declaration" : "case listFooter = \"Listable.ListFooter\"", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind", - "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD", - "key.usr" : "s:10ListableUI17SupplementaryKindO10listFooteryA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 45, - "key.offset" : 328, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case sectionHeader = "Listable.SectionHeader"<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.init_expr", - "key.length" : 24, - "key.offset" : 349 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionHeader<\/decl.name> = "Listable.SectionHeader"<\/syntaxtype.string><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 40, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "sectionHeader", - "key.namelength" : 13, - "key.nameoffset" : 333, - "key.offset" : 333, - "key.parsed_declaration" : "case sectionHeader = \"Listable.SectionHeader\"", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind", - "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD", - "key.usr" : "s:10ListableUI17SupplementaryKindO13sectionHeaderyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 45, - "key.offset" : 378, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case sectionFooter = "Listable.SectionFooter"<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.init_expr", - "key.length" : 24, - "key.offset" : 399 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionFooter<\/decl.name> = "Listable.SectionFooter"<\/syntaxtype.string><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 40, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "sectionFooter", - "key.namelength" : 13, - "key.nameoffset" : 383, - "key.offset" : 383, - "key.parsed_declaration" : "case sectionFooter = \"Listable.SectionFooter\"", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind", - "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD", - "key.usr" : "s:10ListableUI17SupplementaryKindO13sectionFooteryA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 51, - "key.offset" : 433, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case overscrollFooter = "Listable.OverscrollFooter"<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.init_expr", - "key.length" : 27, - "key.offset" : 457 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> overscrollFooter<\/decl.name> = "Listable.OverscrollFooter"<\/syntaxtype.string><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 46, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "overscrollFooter", - "key.namelength" : 16, - "key.nameoffset" : 438, - "key.offset" : 438, - "key.parsed_declaration" : "case overscrollFooter = \"Listable.OverscrollFooter\"", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind", - "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD", - "key.usr" : "s:10ListableUI17SupplementaryKindO16overscrollFooteryA2CmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func indexPath(in section: Int<\/Type>) -> IndexPath<\/Type><\/Declaration>", - "key.bodylength" : 480, - "key.bodyoffset" : 545, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> indexPath<\/decl.name>(in<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 532, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "indexPath(in:)", - "key.namelength" : 27, - "key.nameoffset" : 499, - "key.offset" : 494, - "key.parsed_declaration" : "func indexPath(in section : Int) -> IndexPath", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SupplementaryKind) -> (Int) -> IndexPath", - "key.typeusr" : "$s2in10Foundation9IndexPathVSi_tcD", - "key.usr" : "s:10ListableUI17SupplementaryKindO9indexPath2in10Foundation05IndexF0VSi_tF" - } - ], - "key.typename" : "SupplementaryKind.Type", - "key.typeusr" : "$s10ListableUI17SupplementaryKindOmD", - "key.usr" : "s:10ListableUI17SupplementaryKindO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 38798, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "public struct LayoutDescription : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 162, - "key.bodyoffset" : 156, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `LayoutDescription`, well, describes the type of and properties of a layout to apply to a list view.\n\nYou use a `LayoutDescription` by passing a closure to its initializer, which you use to\ncustomize the `layoutAppearance` of the provided list type.\n\nFor example, to use a standard list layout, and customize the layout, your code would look something like this:\n\n```\nlistView.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```\n\nOr a layout for your own custom layout type would look somewhat like this:\n\n```\nMyCustomLayout.describe {\n $0.myLayoutOption = true\n $0.anotherLayoutOption = .polkadots\n}\n```\n\nNote\n----\nUnder the hood, Listable is smart, and will only re-create the underlying\nlayout object when needed (when the layout type or layout appearance changes).\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct LayoutDescription : Equatable", - "key.doc.discussion" : [ - { - "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type." - }, - { - "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Or a layout for your own custom layout type would look somewhat like this:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription : Equatable<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "LayoutDescription", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 192, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDescription", - "key.namelength" : 17, - "key.nameoffset" : 137, - "key.offset" : 127, - "key.parsed_declaration" : "extension LayoutDescription", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func table(_ configure: (inout TableAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 161 - } - ], - "key.bodylength" : 61, - "key.bodyoffset" : 255, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> table<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> TableAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 149, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "table(_:)", - "key.namelength" : 61, - "key.nameoffset" : 180, - "key.offset" : 168, - "key.parsed_declaration" : "public static func table(_ configure : (inout TableAppearance) -> () = { _ in }) -> Self", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDescription.Type) -> ((inout TableAppearance) -> ()) -> LayoutDescription", - "key.typeusr" : "$sy10ListableUI17LayoutDescriptionVyAA15TableAppearanceVzXEcD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV5tableyACyAA15TableAppearanceVzXEFZ" - } - ], - "key.typename" : "LayoutDescription.Type", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD", - "key.usr" : "s:10ListableUI17LayoutDescriptionV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct TableAppearance : ListLayoutAppearance<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9735 - } - ], - "key.bodylength" : 3038, - "key.bodyoffset" : 9789, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`TableAppearance` defines the appearance and layout attribute for list layouts within a Listable list.\n\nThe below diagram shows where each of the properties on the `TableAppearance.Layout` values are\napplied when laying out the list.\n```\n┌─────────────────────────────────────────────────────────────────┐\n│ padding.top │\n│ ┌─────────────────────────────────────────────────────────┐ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ headerToFirstSectionSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ Section Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemToSectionFooterSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ p ││ Section Footer ││ p │\n│ a ││ ││ a │\n│ d │└───────────────────────────────────────────────────────┘│ d │\n│ d │ │ d │\n│ i │ interSectionSpacingWithFooter │ i │\n│ n │ │ n │\n│ g │┌───────────────────────────────────────────────────────┐│ g │\n│ . ││ ││ . │\n│ l ││ Section Header ││ r │\n│ e ││ ││ i │\n│ f │└───────────────────────────────────────────────────────┘│ g │\n│ t │ sectionHeaderBottomSpacing │ h │\n│ │┌───────────────────────────────────────────────────────┐│ t │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ interSectionSpacingWithNoFooter │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ Section Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ lastSectionToFooterSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Footer ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ └─────────────────────────────────────────────────────────┘ │\n│ padding.bottom │\n└─────────────────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 15, - "key.doc.comment" : "\n`TableAppearance` defines the appearance and layout attribute for list layouts within a Listable list.\n\nThe below diagram shows where each of the properties on the `TableAppearance.Layout` values are\napplied when laying out the list.\n```\n┌─────────────────────────────────────────────────────────────────┐\n│ padding.top │\n│ ┌─────────────────────────────────────────────────────────┐ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ headerToFirstSectionSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ Section Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemToSectionFooterSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ p ││ Section Footer ││ p │\n│ a ││ ││ a │\n│ d │└───────────────────────────────────────────────────────┘│ d │\n│ d │ │ d │\n│ i │ interSectionSpacingWithFooter │ i │\n│ n │ │ n │\n│ g │┌───────────────────────────────────────────────────────┐│ g │\n│ . ││ ││ . │\n│ l ││ Section Header ││ r │\n│ e ││ ││ i │\n│ f │└───────────────────────────────────────────────────────┘│ g │\n│ t │ sectionHeaderBottomSpacing │ h │\n│ │┌───────────────────────────────────────────────────────┐│ t │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ interSectionSpacingWithNoFooter │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ Section Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ lastSectionToFooterSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Footer ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ └─────────────────────────────────────────────────────────┘ │\n│ padding.bottom │\n└─────────────────────────────────────────────────────────────────┘\n```", - "key.doc.declaration" : "public struct TableAppearance : ListLayoutAppearance", - "key.doc.discussion" : [ - { - "Para" : "The below diagram shows where each of the properties on the `TableAppearance.Layout` values are applied when laying out the list." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "TableAppearance<\/Name>s:10ListableUI15TableAppearanceV<\/USR>public struct TableAppearance : ListLayoutAppearance<\/Declaration>TableAppearance<\/codeVoice> defines the appearance and layout attribute for list layouts within a Listable list.<\/Para><\/Abstract>The below diagram shows where each of the properties on the TableAppearance.Layout<\/codeVoice> values are applied when laying out the list.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 101, - "key.doc.name" : "TableAppearance", - "key.doc.type" : "Class", - "key.doclength" : 9413, - "key.docoffset" : 322, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 20, - "key.offset" : 9767 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> TableAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayoutAppearance" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3086, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "TableAppearance", - "key.namelength" : 15, - "key.nameoffset" : 9749, - "key.offset" : 9742, - "key.parsed_declaration" : "public struct TableAppearance : ListLayoutAppearance", - "key.parsed_scope.end" : 179, - "key.parsed_scope.start" : 101, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 26, - "key.name" : "MARK: ListLayoutAppearance", - "key.offset" : 9797 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var `default`: TableAppearance<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9833 - } - ], - "key.bodylength" : 32, - "key.bodyoffset" : 9879, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: TableAppearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 72, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "default", - "key.namelength" : 7, - "key.nameoffset" : 9851, - "key.offset" : 9840, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ" - } - ], - "key.parsed_declaration" : "public static var `default`: TableAppearance", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance", - "key.typeusr" : "$s10ListableUI15TableAppearanceVD", - "key.usr" : "s:10ListableUI15TableAppearanceV7defaultACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var direction: LayoutDirection<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9993 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the layout should flow, either horizontally or vertically.", - "key.doc.column" : 16, - "key.doc.comment" : "How the layout should flow, either horizontally or vertically.", - "key.doc.declaration" : "public var direction: LayoutDirection", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "direction<\/Name>s:10ListableUI15TableAppearanceV9directionAA15LayoutDirectionOvp<\/USR>public var direction: LayoutDirection<\/Declaration>How the layout should flow, either horizontally or vertically.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 110, - "key.doc.name" : "direction", - "key.doc.type" : "Other", - "key.doclength" : 67, - "key.docoffset" : 9922, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 110, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 10004, - "key.offset" : 10000, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp" - } - ], - "key.parsed_declaration" : "public var direction: LayoutDirection", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 110, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI15TableAppearanceV9directionAA15LayoutDirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var listHeaderPosition: ListHeaderPosition<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10111 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the list header should be positioned when content is scrolled.", - "key.doc.column" : 16, - "key.doc.comment" : "How the list header should be positioned when content is scrolled.", - "key.doc.declaration" : "public var listHeaderPosition: ListHeaderPosition", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "listHeaderPosition<\/Name>s:10ListableUI15TableAppearanceV18listHeaderPositionAA04ListfG0Ovp<\/USR>public var listHeaderPosition: ListHeaderPosition<\/Declaration>How the list header should be positioned when content is scrolled.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 113, - "key.doc.name" : "listHeaderPosition", - "key.doc.type" : "Other", - "key.doclength" : 71, - "key.docoffset" : 10036, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listHeaderPosition<\/decl.name>: ListHeaderPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 113, - "key.modulename" : "ListableUI", - "key.name" : "listHeaderPosition", - "key.namelength" : 18, - "key.nameoffset" : 10122, - "key.offset" : 10118, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP18listHeaderPositionAA0cgH0Ovp" - } - ], - "key.parsed_declaration" : "public var listHeaderPosition: ListHeaderPosition", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 113, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListHeaderPosition", - "key.typeusr" : "$s10ListableUI18ListHeaderPositionOD", - "key.usr" : "s:10ListableUI15TableAppearanceV18listHeaderPositionAA04ListfG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var stickySectionHeaders: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10235 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If sticky section headers should be leveraged in the layout.", - "key.doc.column" : 16, - "key.doc.comment" : "If sticky section headers should be leveraged in the layout.", - "key.doc.declaration" : "public var stickySectionHeaders: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "stickySectionHeaders<\/Name>s:10ListableUI15TableAppearanceV20stickySectionHeadersSbvp<\/USR>public var stickySectionHeaders: Bool<\/Declaration>If sticky section headers should be leveraged in the layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 116, - "key.doc.name" : "stickySectionHeaders", - "key.doc.type" : "Other", - "key.doclength" : 65, - "key.docoffset" : 10166, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "stickySectionHeaders", - "key.namelength" : 20, - "key.nameoffset" : 10246, - "key.offset" : 10242, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp" - } - ], - "key.parsed_declaration" : "public var stickySectionHeaders : Bool", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI15TableAppearanceV20stickySectionHeadersSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var pagingBehavior: ListPagingBehavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10339 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How paging is performed when a drag event ends.", - "key.doc.column" : 16, - "key.doc.comment" : "How paging is performed when a drag event ends.", - "key.doc.declaration" : "public var pagingBehavior: ListPagingBehavior", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "pagingBehavior<\/Name>s:10ListableUI15TableAppearanceV14pagingBehaviorAA010ListPagingF0Ovp<\/USR>public var pagingBehavior: ListPagingBehavior<\/Declaration>How paging is performed when a drag event ends.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 119, - "key.doc.name" : "pagingBehavior", - "key.doc.type" : "Other", - "key.doclength" : 52, - "key.docoffset" : 10283, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pagingBehavior<\/decl.name>: ListPagingBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "pagingBehavior", - "key.namelength" : 14, - "key.nameoffset" : 10350, - "key.offset" : 10346, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP14pagingBehaviorAA0c6PagingG0Ovp" - } - ], - "key.parsed_declaration" : "public var pagingBehavior : ListPagingBehavior", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListPagingBehavior", - "key.typeusr" : "$s10ListableUI18ListPagingBehaviorOD", - "key.usr" : "s:10ListableUI15TableAppearanceV14pagingBehaviorAA010ListPagingF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10463 - } - ], - "key.bodylength" : 370, - "key.bodyoffset" : 10528, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The properties applied to the scroll view backing the list.", - "key.doc.column" : 16, - "key.doc.comment" : "The properties applied to the scroll view backing the list.", - "key.doc.declaration" : "public var scrollViewProperties: ListLayoutScrollViewProperties { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "scrollViewProperties<\/Name>s:10ListableUI15TableAppearanceV20scrollViewPropertiesAA016ListLayoutScrollfG0Vvp<\/USR>public var scrollViewProperties: ListLayoutScrollViewProperties { get }<\/Declaration>The properties applied to the scroll view backing the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 122, - "key.doc.name" : "scrollViewProperties", - "key.doc.type" : "Other", - "key.doclength" : 64, - "key.docoffset" : 10395, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 429, - "key.line" : 122, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewProperties", - "key.namelength" : 20, - "key.nameoffset" : 10474, - "key.offset" : 10470, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20scrollViewPropertiesAA0cd6ScrollgH0Vvp" - } - ], - "key.parsed_declaration" : "public var scrollViewProperties: ListLayoutScrollViewProperties", - "key.parsed_scope.end" : 131, - "key.parsed_scope.start" : 122, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutScrollViewProperties", - "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD", - "key.usr" : "s:10ListableUI15TableAppearanceV20scrollViewPropertiesAA016ListLayoutScrollfG0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func toLayoutDescription() -> LayoutDescription<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10909 - } - ], - "key.bodylength" : 83, - "key.bodyoffset" : 10965, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> toLayoutDescription<\/decl.name>() -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 133, - "key.line" : 133, - "key.modulename" : "ListableUI", - "key.name" : "toLayoutDescription()", - "key.namelength" : 21, - "key.nameoffset" : 10921, - "key.offset" : 10916, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP02toD11DescriptionAA0dG0VyF" - } - ], - "key.parsed_declaration" : "public func toLayoutDescription() -> LayoutDescription", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 133, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableAppearance) -> () -> LayoutDescription", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVycD", - "key.usr" : "s:10ListableUI15TableAppearanceV19toLayoutDescriptionAA0fG0VyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 16, - "key.name" : "MARK: Properties", - "key.offset" : 11062 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemPositionGroupingHeight: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11339 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When providing the `ItemPosition` for items in a list, specifies the max spacing\nfor items to be considered in the same group. For example, if this value is 1, and\nitems are spaced 2pts apart, the items will be in a new group.", - "key.doc.column" : 16, - "key.doc.comment" : "When providing the `ItemPosition` for items in a list, specifies the max spacing\nfor items to be considered in the same group. For example, if this value is 1, and\nitems are spaced 2pts apart, the items will be in a new group.", - "key.doc.declaration" : "public var itemPositionGroupingHeight: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "itemPositionGroupingHeight<\/Name>s:10ListableUI15TableAppearanceV26itemPositionGroupingHeight14CoreFoundation7CGFloatVvp<\/USR>public var itemPositionGroupingHeight: CGFloat<\/Declaration>When providing the ItemPosition<\/codeVoice> for items in a list, specifies the max spacing for items to be considered in the same group. For example, if this value is 1, and items are spaced 2pts apart, the items will be in a new group.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 142, - "key.doc.name" : "itemPositionGroupingHeight", - "key.doc.type" : "Other", - "key.doclength" : 247, - "key.docoffset" : 11088, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemPositionGroupingHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "itemPositionGroupingHeight", - "key.namelength" : 26, - "key.nameoffset" : 11350, - "key.offset" : 11346, - "key.parsed_declaration" : "public var itemPositionGroupingHeight : CGFloat", - "key.parsed_scope.end" : 142, - "key.parsed_scope.start" : 142, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV26itemPositionGroupingHeight14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11457 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to adjust the safe area insets of the list view.", - "key.doc.column" : 16, - "key.doc.comment" : "How to adjust the safe area insets of the list view.", - "key.doc.declaration" : "public var contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "contentInsetAdjustmentBehavior<\/Name>s:10ListableUI15TableAppearanceV30contentInsetAdjustmentBehaviorAA07ContentfgH0Ovp<\/USR>public var contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior<\/Declaration>How to adjust the safe area insets of the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 145, - "key.doc.name" : "contentInsetAdjustmentBehavior", - "key.doc.type" : "Other", - "key.doclength" : 57, - "key.docoffset" : 11396, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentInsetAdjustmentBehavior<\/decl.name>: ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 67, - "key.line" : 145, - "key.modulename" : "ListableUI", - "key.name" : "contentInsetAdjustmentBehavior", - "key.namelength" : 30, - "key.nameoffset" : 11468, - "key.offset" : 11464, - "key.parsed_declaration" : "public var contentInsetAdjustmentBehavior : ContentInsetAdjustmentBehavior", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 145, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ContentInsetAdjustmentBehavior", - "key.typeusr" : "$s10ListableUI30ContentInsetAdjustmentBehaviorOD", - "key.usr" : "s:10ListableUI15TableAppearanceV30contentInsetAdjustmentBehaviorAA07ContentfgH0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var bounceOnUnderflow: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11541 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bounceOnUnderflow<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 147, - "key.modulename" : "ListableUI", - "key.name" : "bounceOnUnderflow", - "key.namelength" : 17, - "key.nameoffset" : 11552, - "key.offset" : 11548, - "key.parsed_declaration" : "public var bounceOnUnderflow : Bool", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 147, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI15TableAppearanceV17bounceOnUnderflowSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var bounds: ListContentBounds<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11670 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The bounds of the content of the list, which can be optionally constrained.", - "key.doc.column" : 16, - "key.doc.comment" : "The bounds of the content of the list, which can be optionally constrained.", - "key.doc.declaration" : "public var bounds: ListContentBounds?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "bounds<\/Name>s:10ListableUI15TableAppearanceV6boundsAA17ListContentBoundsVSgvp<\/USR>public var bounds: ListContentBounds?<\/Declaration>The bounds of the content of the list, which can be optionally constrained.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 150, - "key.doc.name" : "bounds", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 11586, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 150, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 11681, - "key.offset" : 11677, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI20ListLayoutAppearanceP6boundsAA0C13ContentBoundsVSgvp" - } - ], - "key.parsed_declaration" : "public var bounds : ListContentBounds?", - "key.parsed_scope.end" : 150, - "key.parsed_scope.start" : 150, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListContentBounds?", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVSgD", - "key.usr" : "s:10ListableUI15TableAppearanceV6boundsAA17ListContentBoundsVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layout: Layout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11769 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Layout attributes for content in the list.", - "key.doc.column" : 16, - "key.doc.comment" : "Layout attributes for content in the list.", - "key.doc.declaration" : "public var layout: Layout", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI15TableAppearanceV6layoutAC6LayoutVvp<\/USR>public var layout: Layout<\/Declaration>Layout attributes for content in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 153, - "key.doc.name" : "layout", - "key.doc.type" : "Other", - "key.doclength" : 47, - "key.docoffset" : 11718, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: Layout<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 153, - "key.modulename" : "ListableUI", - "key.name" : "layout", - "key.namelength" : 6, - "key.nameoffset" : 11780, - "key.offset" : 11776, - "key.parsed_declaration" : "public var layout : Layout", - "key.parsed_scope.end" : 153, - "key.parsed_scope.start" : 153, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "TableAppearance.Layout", - "key.typeusr" : "$s10ListableUI15TableAppearanceV6LayoutVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6layoutAC6LayoutVvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 11808 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(direction: LayoutDirection<\/Type> = .vertical, listHeaderPosition: ListHeaderPosition<\/Type> = .inline, stickySectionHeaders: Bool<\/Type> = true, pagingBehavior: ListPagingBehavior<\/Type> = .none, itemPositionGroupingHeight: CGFloat<\/Type> = 0.0, contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior<\/Type> = .scrollableAxes, bounceOnUnderflow: Bool<\/Type> = true, bounds: ListContentBounds<\/Type>? = nil, layout: Layout<\/Type> = .init())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11890 - } - ], - "key.bodylength" : 450, - "key.bodyoffset" : 12375, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `TableAppearance` object.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new `TableAppearance` object.", - "key.doc.declaration" : "public init(direction: LayoutDirection = .vertical, listHeaderPosition: ListHeaderPosition = .inline, stickySectionHeaders: Bool = true, pagingBehavior: ListPagingBehavior = .none, itemPositionGroupingHeight: CGFloat = 0.0, contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior = .scrollableAxes, bounceOnUnderflow: Bool = true, bounds: ListContentBounds? = nil, layout: Layout = .init())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "init(direction:listHeaderPosition:stickySectionHeaders:pagingBehavior:itemPositionGroupingHeight:contentInsetAdjustmentBehavior:bounceOnUnderflow:bounds:layout:)<\/Name>s:10ListableUI15TableAppearanceV9direction18listHeaderPosition20stickySectionHeaders14pagingBehavior04itemH14GroupingHeight022contentInsetAdjustmentM017bounceOnUnderflow6bounds6layoutAcA15LayoutDirectionO_AA04ListgH0OSbAA010ListPagingM0O14CoreFoundation7CGFloatVAA07ContentrsM0OSbAA17ListContentBoundsVSgAC0Y0Vtcfc<\/USR>public init(direction: LayoutDirection = .vertical, listHeaderPosition: ListHeaderPosition = .inline, stickySectionHeaders: Bool = true, pagingBehavior: ListPagingBehavior = .none, itemPositionGroupingHeight: CGFloat = 0.0, contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior = .scrollableAxes, bounceOnUnderflow: Bool = true, bounds: ListContentBounds? = nil, layout: Layout = .init())<\/Declaration>Creates a new TableAppearance<\/codeVoice> object.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 158, - "key.doc.name" : "init(direction:listHeaderPosition:stickySectionHeaders:pagingBehavior:itemPositionGroupingHeight:contentInsetAdjustmentBehavior:bounceOnUnderflow:bounds:layout:)", - "key.doc.type" : "Function", - "key.doclength" : 44, - "key.docoffset" : 11842, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type> = .vertical<\/decl.var.parameter>, listHeaderPosition<\/decl.var.parameter.argument_label>: ListHeaderPosition<\/ref.enum><\/decl.var.parameter.type> = .inline<\/decl.var.parameter>, stickySectionHeaders<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, pagingBehavior<\/decl.var.parameter.argument_label>: ListPagingBehavior<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, itemPositionGroupingHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, contentInsetAdjustmentBehavior<\/decl.var.parameter.argument_label>: ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.parameter.type> = .scrollableAxes<\/decl.var.parameter>, bounceOnUnderflow<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, bounds<\/decl.var.parameter.argument_label>: ListContentBounds<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: Layout<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 929, - "key.line" : 158, - "key.modulename" : "ListableUI", - "key.name" : "init(direction:listHeaderPosition:stickySectionHeaders:pagingBehavior:itemPositionGroupingHeight:contentInsetAdjustmentBehavior:bounceOnUnderflow:bounds:layout:)", - "key.namelength" : 476, - "key.nameoffset" : 11897, - "key.offset" : 11897, - "key.parsed_declaration" : "public init(\n direction : LayoutDirection = .vertical,\n listHeaderPosition: ListHeaderPosition = .inline,\n stickySectionHeaders : Bool = true,\n pagingBehavior : ListPagingBehavior = .none,\n itemPositionGroupingHeight : CGFloat = 0.0,\n contentInsetAdjustmentBehavior : ContentInsetAdjustmentBehavior = .scrollableAxes,\n bounceOnUnderflow : Bool = true,\n bounds : ListContentBounds? = nil,\n layout : Layout = .init()\n)", - "key.parsed_scope.end" : 178, - "key.parsed_scope.start" : 158, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableAppearance.Type) -> (LayoutDirection, ListHeaderPosition, Bool, ListPagingBehavior, CGFloat, ContentInsetAdjustmentBehavior, Bool, ListContentBounds?, TableAppearance.Layout) -> TableAppearance", - "key.typeusr" : "$s9direction18listHeaderPosition20stickySectionHeaders14pagingBehavior04itemD14GroupingHeight022contentInsetAdjustmentI017bounceOnUnderflow6bounds6layout10ListableUI15TableAppearanceVAJ15LayoutDirectionO_AJ04ListcD0OSbAJ010ListPagingI0O14CoreFoundation7CGFloatVAJ07ContentnoI0OSbAJ17ListContentBoundsVSgAL0Y0VtcD", - "key.usr" : "s:10ListableUI15TableAppearanceV9direction18listHeaderPosition20stickySectionHeaders14pagingBehavior04itemH14GroupingHeight022contentInsetAdjustmentM017bounceOnUnderflow6bounds6layoutAcA15LayoutDirectionO_AA04ListgH0OSbAA010ListPagingM0O14CoreFoundation7CGFloatVAA07ContentrsM0OSbAA17ListContentBoundsVSgAC0Y0Vtcfc" - } - ], - "key.typename" : "TableAppearance.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceVmD", - "key.usr" : "s:10ListableUI15TableAppearanceV" - }, - { - "key.annotated_decl" : "public struct TableAppearance : ListLayoutAppearance<\/Type><\/Declaration>", - "key.bodylength" : 5991, - "key.bodyoffset" : 12858, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`TableAppearance` defines the appearance and layout attribute for list layouts within a Listable list.\n\nThe below diagram shows where each of the properties on the `TableAppearance.Layout` values are\napplied when laying out the list.\n```\n┌─────────────────────────────────────────────────────────────────┐\n│ padding.top │\n│ ┌─────────────────────────────────────────────────────────┐ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ headerToFirstSectionSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ Section Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemToSectionFooterSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ p ││ Section Footer ││ p │\n│ a ││ ││ a │\n│ d │└───────────────────────────────────────────────────────┘│ d │\n│ d │ │ d │\n│ i │ interSectionSpacingWithFooter │ i │\n│ n │ │ n │\n│ g │┌───────────────────────────────────────────────────────┐│ g │\n│ . ││ ││ . │\n│ l ││ Section Header ││ r │\n│ e ││ ││ i │\n│ f │└───────────────────────────────────────────────────────┘│ g │\n│ t │ sectionHeaderBottomSpacing │ h │\n│ │┌───────────────────────────────────────────────────────┐│ t │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ interSectionSpacingWithNoFooter │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ Section Header ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ sectionHeaderBottomSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ itemSpacing │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ Item ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ │ │ │\n│ │ lastSectionToFooterSpacing │ │\n│ │ │ │\n│ │┌───────────────────────────────────────────────────────┐│ │\n│ ││ ││ │\n│ ││ List Footer ││ │\n│ ││ ││ │\n│ │└───────────────────────────────────────────────────────┘│ │\n│ └─────────────────────────────────────────────────────────┘ │\n│ padding.bottom │\n└─────────────────────────────────────────────────────────────────┘\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct TableAppearance : ListLayoutAppearance", - "key.doc.discussion" : [ - { - "Para" : "The below diagram shows where each of the properties on the `TableAppearance.Layout` values are applied when laying out the list." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "TableAppearance<\/Name>s:10ListableUI15TableAppearanceV<\/USR>public struct TableAppearance : ListLayoutAppearance<\/Declaration>TableAppearance<\/codeVoice> defines the appearance and layout attribute for list layouts within a Listable list.<\/Para><\/Abstract>The below diagram shows where each of the properties on the TableAppearance.Layout<\/codeVoice> values are applied when laying out the list.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 101, - "key.doc.name" : "TableAppearance", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> TableAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 6019, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "TableAppearance", - "key.namelength" : 15, - "key.nameoffset" : 12841, - "key.offset" : 12831, - "key.parsed_declaration" : "extension TableAppearance", - "key.parsed_scope.end" : 355, - "key.parsed_scope.start" : 182, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemLayout : Equatable<\/Type>, ItemLayoutsValue<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12863 - } - ], - "key.bodylength" : 601, - "key.bodyoffset" : 12923, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12890 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 12901 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayout<\/decl.name> : Equatable<\/ref.protocol>, ItemLayoutsValue<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - }, - { - "key.name" : "ItemLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 655, - "key.line" : 184, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayout", - "key.namelength" : 10, - "key.nameoffset" : 12877, - "key.offset" : 12870, - "key.parsed_declaration" : "public struct ItemLayout : Equatable, ItemLayoutsValue", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 184, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemSpacing: CGFloat<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12932 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 186, - "key.modulename" : "ListableUI", - "key.name" : "itemSpacing", - "key.namelength" : 11, - "key.nameoffset" : 12943, - "key.offset" : 12939, - "key.parsed_declaration" : "public var itemSpacing : CGFloat?", - "key.parsed_scope.end" : 186, - "key.parsed_scope.start" : 186, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV11itemSpacing14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemToSectionFooterSpacing: CGFloat<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12974 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemToSectionFooterSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 187, - "key.modulename" : "ListableUI", - "key.name" : "itemToSectionFooterSpacing", - "key.namelength" : 26, - "key.nameoffset" : 12985, - "key.offset" : 12981, - "key.parsed_declaration" : "public var itemToSectionFooterSpacing : CGFloat?", - "key.parsed_scope.end" : 187, - "key.parsed_scope.start" : 187, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV26itemToSectionFooterSpacing14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13040 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 189, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 13051, - "key.offset" : 13047, - "key.parsed_declaration" : "public var width : CustomWidth", - "key.parsed_scope.end" : 189, - "key.parsed_scope.start" : 189, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CustomWidth", - "key.typeusr" : "$s10ListableUI11CustomWidthOD", - "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV5widthAA11CustomWidthOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(itemSpacing: CGFloat<\/Type>? = nil, itemToSectionFooterSpacing: CGFloat<\/Type>? = nil, width: CustomWidth<\/Type> = .default)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13092 - } - ], - "key.bodylength" : 169, - "key.bodyoffset" : 13258, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, itemToSectionFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 329, - "key.line" : 191, - "key.modulename" : "ListableUI", - "key.name" : "init(itemSpacing:itemToSectionFooterSpacing:width:)", - "key.namelength" : 157, - "key.nameoffset" : 13099, - "key.offset" : 13099, - "key.parsed_declaration" : "public init(\n itemSpacing : CGFloat? = nil,\n itemToSectionFooterSpacing : CGFloat? = nil,\n width : CustomWidth = .default\n)", - "key.parsed_scope.end" : 200, - "key.parsed_scope.start" : 191, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableAppearance.ItemLayout.Type) -> (CGFloat?, CGFloat?, CustomWidth) -> TableAppearance.ItemLayout", - "key.typeusr" : "$s11itemSpacing0a15ToSectionFooterB05width10ListableUI15TableAppearanceV10ItemLayoutV14CoreFoundation7CGFloatVSg_AlD11CustomWidthOtcD", - "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV11itemSpacing0g15ToSectionFooterH05widthAE14CoreFoundation7CGFloatVSg_AlA11CustomWidthOtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13446 - } - ], - "key.bodylength" : 33, - "key.bodyoffset" : 13485, - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from ItemLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 66, - "key.line" : 202, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 13464, - "key.offset" : 13453, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue : Self", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 202, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.ItemLayout", - "key.typeusr" : "$s10ListableUI15TableAppearanceV10ItemLayoutVD", - "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ" - } - ], - "key.typename" : "TableAppearance.ItemLayout.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceV10ItemLayoutVmD", - "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct HeaderFooterLayout : Equatable<\/Type>, HeaderFooterLayoutsValue<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13540 - } - ], - "key.bodylength" : 261, - "key.bodyoffset" : 13616, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 13575 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 24, - "key.offset" : 13586 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayout<\/decl.name> : Equatable<\/ref.protocol>, HeaderFooterLayoutsValue<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - }, - { - "key.name" : "HeaderFooterLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 331, - "key.line" : 208, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayout", - "key.namelength" : 18, - "key.nameoffset" : 13554, - "key.offset" : 13547, - "key.parsed_declaration" : "public struct HeaderFooterLayout : Equatable, HeaderFooterLayoutsValue", - "key.parsed_scope.end" : 221, - "key.parsed_scope.start" : 208, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13625 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 210, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 13636, - "key.offset" : 13632, - "key.parsed_declaration" : "public var width : CustomWidth", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 210, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CustomWidth", - "key.typeusr" : "$s10ListableUI11CustomWidthOD", - "key.usr" : "s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV5widthAA11CustomWidthOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(width: CustomWidth<\/Type> = .default)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13677 - } - ], - "key.bodylength" : 40, - "key.bodyoffset" : 13744, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 101, - "key.line" : 212, - "key.modulename" : "ListableUI", - "key.name" : "init(width:)", - "key.namelength" : 58, - "key.nameoffset" : 13684, - "key.offset" : 13684, - "key.parsed_declaration" : "public init(\n width : CustomWidth = .default\n)", - "key.parsed_scope.end" : 216, - "key.parsed_scope.start" : 212, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableAppearance.HeaderFooterLayout.Type) -> (CustomWidth) -> TableAppearance.HeaderFooterLayout", - "key.typeusr" : "$s5width10ListableUI15TableAppearanceV18HeaderFooterLayoutVAB11CustomWidthO_tcD", - "key.usr" : "s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV5widthAeA11CustomWidthO_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13803 - } - ], - "key.bodylength" : 29, - "key.bodyoffset" : 13842, - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from HeaderFooterLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 62, - "key.line" : 218, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 13821, - "key.offset" : 13810, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue : Self", - "key.parsed_scope.end" : 220, - "key.parsed_scope.start" : 218, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.HeaderFooterLayout", - "key.typeusr" : "$s10ListableUI15TableAppearanceV18HeaderFooterLayoutVD", - "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ" - } - ], - "key.typename" : "TableAppearance.HeaderFooterLayout.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceV18HeaderFooterLayoutVmD", - "key.usr" : "s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct SectionLayout : Equatable<\/Type>, SectionLayoutsValue<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13888 - } - ], - "key.bodylength" : 1971, - "key.bodyoffset" : 13954, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 13918 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 13929 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayout<\/decl.name> : Equatable<\/ref.protocol>, SectionLayoutsValue<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - }, - { - "key.name" : "SectionLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2031, - "key.line" : 223, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayout", - "key.namelength" : 13, - "key.nameoffset" : 13902, - "key.offset" : 13895, - "key.parsed_declaration" : "public struct SectionLayout : Equatable, SectionLayoutsValue", - "key.parsed_scope.end" : 285, - "key.parsed_scope.start" : 223, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isHeaderSticky: Bool<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14022 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Indicates if the header for the section will be sticky.\nSetting this value explicitly overrides the list-level stickiness for headers.", - "key.doc.column" : 9, - "key.doc.declaration" : "var isHeaderSticky: Bool? { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "isHeaderSticky<\/Name>s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp<\/USR>var isHeaderSticky: Bool? { get }<\/Declaration>Indicates if the header for the section will be sticky. Setting this value explicitly overrides the list-level stickiness for headers.<\/Para><\/Abstract>This documentation comment was inherited from SectionLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 116, - "key.doc.name" : "isHeaderSticky", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isHeaderSticky<\/decl.name>: Bool<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 226, - "key.modulename" : "ListableUI", - "key.name" : "isHeaderSticky", - "key.namelength" : 14, - "key.nameoffset" : 14033, - "key.offset" : 14029, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp" - } - ], - "key.parsed_declaration" : "public var isHeaderSticky : Bool?", - "key.parsed_scope.end" : 226, - "key.parsed_scope.start" : 226, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool?", - "key.typeusr" : "$sSbSgD", - "key.usr" : "s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14157 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "In a horizontal layout, this powers the height of the section.", - "key.doc.column" : 20, - "key.doc.comment" : "In a horizontal layout, this powers the height of the section.", - "key.doc.declaration" : "public var width: CustomWidth", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI15TableAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp<\/USR>public var width: CustomWidth<\/Declaration>In a horizontal layout, this powers the height of the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 230, - "key.doc.name" : "width", - "key.doc.type" : "Other", - "key.doclength" : 67, - "key.docoffset" : 14082, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 230, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 14168, - "key.offset" : 14164, - "key.parsed_declaration" : "public var width : CustomWidth", - "key.parsed_scope.end" : 230, - "key.parsed_scope.start" : 230, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CustomWidth", - "key.typeusr" : "$s10ListableUI11CustomWidthOD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var customInterSectionSpacing: CGFloat<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14261 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Overrides the calculated spacing after this section", - "key.doc.column" : 20, - "key.doc.comment" : "Overrides the calculated spacing after this section", - "key.doc.declaration" : "public var customInterSectionSpacing: CGFloat?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "customInterSectionSpacing<\/Name>s:10ListableUI15TableAppearanceV13SectionLayoutV011customInterE7Spacing14CoreFoundation7CGFloatVSgvp<\/USR>public var customInterSectionSpacing: CGFloat?<\/Declaration>Overrides the calculated spacing after this section<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 233, - "key.doc.name" : "customInterSectionSpacing", - "key.doc.type" : "Other", - "key.doclength" : 56, - "key.docoffset" : 14197, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> customInterSectionSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 233, - "key.modulename" : "ListableUI", - "key.name" : "customInterSectionSpacing", - "key.namelength" : 25, - "key.nameoffset" : 14272, - "key.offset" : 14268, - "key.parsed_declaration" : "public var customInterSectionSpacing : CGFloat?", - "key.parsed_scope.end" : 233, - "key.parsed_scope.start" : 233, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV011customInterE7Spacing14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var columns: Columns<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14326 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> columns<\/decl.name>: Columns<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 235, - "key.modulename" : "ListableUI", - "key.name" : "columns", - "key.namelength" : 7, - "key.nameoffset" : 14337, - "key.offset" : 14333, - "key.parsed_declaration" : "public var columns : Columns", - "key.parsed_scope.end" : 235, - "key.parsed_scope.start" : 235, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "TableAppearance.SectionLayout.Columns", - "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsVD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7columnsAE7ColumnsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(isHeaderSticky: Bool<\/Type>? = nil, width: CustomWidth<\/Type> = .default, customInterSectionSpacing: CGFloat<\/Type>? = nil, columns: Columns<\/Type> = .one)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14372 - } - ], - "key.bodylength" : 208, - "key.bodyoffset" : 14574, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isHeaderSticky<\/decl.var.parameter.argument_label>: Bool<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>, customInterSectionSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, columns<\/decl.var.parameter.argument_label>: Columns<\/ref.struct><\/decl.var.parameter.type> = .one<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 404, - "key.line" : 237, - "key.modulename" : "ListableUI", - "key.name" : "init(isHeaderSticky:width:customInterSectionSpacing:columns:)", - "key.namelength" : 193, - "key.nameoffset" : 14379, - "key.offset" : 14379, - "key.parsed_declaration" : "public init(\n isHeaderSticky: Bool? = nil,\n width : CustomWidth = .default,\n customInterSectionSpacing : CGFloat? = nil,\n columns : Columns = .one\n)", - "key.parsed_scope.end" : 248, - "key.parsed_scope.start" : 237, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableAppearance.SectionLayout.Type) -> (Bool?, CustomWidth, CGFloat?, TableAppearance.SectionLayout.Columns) -> TableAppearance.SectionLayout", - "key.typeusr" : "$s14isHeaderSticky5width25customInterSectionSpacing7columns10ListableUI15TableAppearanceV0G6LayoutVSbSg_AE11CustomWidthO14CoreFoundation7CGFloatVSgAI7ColumnsVtcD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV14isHeaderSticky5width011customInterE7Spacing7columnsAESbSg_AA11CustomWidthO14CoreFoundation7CGFloatVSgAE7ColumnsVtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14801 - } - ], - "key.bodylength" : 33, - "key.bodyoffset" : 14840, - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from SectionLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 66, - "key.line" : 250, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 14819, - "key.offset" : 14808, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue : Self", - "key.parsed_scope.end" : 252, - "key.parsed_scope.start" : 250, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.SectionLayout", - "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutVD", - "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct TableAppearance<\/Type>.SectionLayout<\/Type>.Columns : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14892 - } - ], - "key.bodylength" : 984, - "key.bodyoffset" : 14935, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 14916 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> TableAppearance<\/ref.struct>.SectionLayout<\/ref.struct>.Columns<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1021, - "key.line" : 254, - "key.modulename" : "ListableUI", - "key.name" : "Columns", - "key.namelength" : 7, - "key.nameoffset" : 14906, - "key.offset" : 14899, - "key.parsed_declaration" : "public struct Columns : Equatable", - "key.parsed_scope.end" : 284, - "key.parsed_scope.start" : 254, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var count: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14948 - } - ], - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 256, - "key.modulename" : "ListableUI", - "key.name" : "count", - "key.namelength" : 5, - "key.nameoffset" : 14959, - "key.offset" : 14955, - "key.parsed_declaration" : "public var count : Int", - "key.parsed_scope.end" : 256, - "key.parsed_scope.start" : 256, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5countSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var spacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 14983 - } - ], - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> spacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 257, - "key.modulename" : "ListableUI", - "key.name" : "spacing", - "key.namelength" : 7, - "key.nameoffset" : 14994, - "key.offset" : 14990, - "key.parsed_declaration" : "public var spacing : CGFloat", - "key.parsed_scope.end" : 257, - "key.parsed_scope.start" : 257, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV7spacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var one: Columns<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 15037 - } - ], - "key.bodylength" : 68, - "key.bodyoffset" : 15070, - "key.column" : 31, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> one<\/decl.name>: Columns<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 95, - "key.line" : 259, - "key.modulename" : "ListableUI", - "key.name" : "one", - "key.namelength" : 3, - "key.nameoffset" : 15055, - "key.offset" : 15044, - "key.parsed_declaration" : "public static var one : Columns", - "key.parsed_scope.end" : 261, - "key.parsed_scope.start" : 259, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.SectionLayout.Columns", - "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsVD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV3oneAGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(count: Int<\/Type> = 1, spacing: CGFloat<\/Type> = 0.0)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 15165 - } - ], - "key.bodylength" : 284, - "key.bodyoffset" : 15232, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(count<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type> = 1<\/decl.var.parameter>, spacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 345, - "key.line" : 263, - "key.modulename" : "ListableUI", - "key.name" : "init(count:spacing:)", - "key.namelength" : 46, - "key.nameoffset" : 15172, - "key.offset" : 15172, - "key.parsed_declaration" : "public init(count : Int = 1, spacing : CGFloat = 0.0)", - "key.parsed_scope.end" : 270, - "key.parsed_scope.start" : 263, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableAppearance.SectionLayout.Columns.Type) -> (Int, CGFloat) -> TableAppearance.SectionLayout.Columns", - "key.typeusr" : "$s5count7spacing10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsVSi_14CoreFoundation7CGFloatVtcD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5count7spacingAGSi_14CoreFoundation7CGFloatVtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func group<Value>(values: [Value<\/Type>]) -> [[Value<\/Type>]]<\/Declaration>", - "key.bodylength" : 304, - "key.bodyoffset" : 15605, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> group<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(values<\/decl.var.parameter.argument_label>: [Value<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> [[Value<\/ref.generic_type_param>]]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 367, - "key.line" : 272, - "key.modulename" : "ListableUI", - "key.name" : "group(values:)", - "key.namelength" : 30, - "key.nameoffset" : 15548, - "key.offset" : 15543, - "key.parsed_declaration" : "func group(values : [Value]) -> [[Value]]", - "key.parsed_scope.end" : 283, - "key.parsed_scope.start" : 272, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value<\/Declaration>", - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 272, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 15554, - "key.offset" : 15554, - "key.parsed_declaration" : "func groupvar values: [Value<\/Type>]<\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> values<\/decl.name>: [Value<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 19, - "key.line" : 274, - "key.modulename" : "ListableUI", - "key.name" : "values", - "key.namelength" : 6, - "key.nameoffset" : 15626, - "key.offset" : 15622, - "key.parsed_declaration" : "var values = values", - "key.parsed_scope.end" : 274, - "key.parsed_scope.start" : 274, - "key.reusingastcontext" : false, - "key.typename" : "[Value]", - "key.typeusr" : "$sSayxGD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5group6valuesSaySayxGGAJ_tlFAIL0_AJvp" - }, - { - "key.annotated_decl" : "var grouped: [[Value<\/Type>]]<\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> grouped<\/decl.name>: [[Value<\/ref.generic_type_param>]]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 28, - "key.line" : 276, - "key.modulename" : "ListableUI", - "key.name" : "grouped", - "key.namelength" : 7, - "key.nameoffset" : 15679, - "key.offset" : 15675, - "key.parsed_declaration" : "var grouped : [[Value]] = []", - "key.parsed_scope.end" : 276, - "key.parsed_scope.start" : 276, - "key.reusingastcontext" : false, - "key.typename" : "[[Value]]", - "key.typeusr" : "$sSaySayxGGD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5group6valuesSaySayxGGAJ_tlF7groupedL_AKvp" - } - ], - "key.typename" : " (TableAppearance.SectionLayout.Columns) -> ([Value]) -> [[Value]]", - "key.typeusr" : "$s6valuesSaySayxGGAB_tcluD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5group6valuesSaySayxGGAJ_tlF" - } - ], - "key.typename" : "TableAppearance.SectionLayout.Columns.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsVmD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV" - } - ], - "key.typename" : "TableAppearance.SectionLayout.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutVmD", - "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Layout : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 15977 - } - ], - "key.bodylength" : 2832, - "key.bodyoffset" : 16015, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Layout options for the list.", - "key.doc.column" : 19, - "key.doc.comment" : "Layout options for the list.", - "key.doc.declaration" : "public struct Layout : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "Layout<\/Name>s:10ListableUI15TableAppearanceV6LayoutV<\/USR>public struct Layout : Equatable<\/Declaration>Layout options for the list.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 288, - "key.doc.name" : "Layout", - "key.doc.type" : "Class", - "key.doclength" : 33, - "key.docoffset" : 15940, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 16000 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Layout<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2864, - "key.line" : 288, - "key.modulename" : "ListableUI", - "key.name" : "Layout", - "key.namelength" : 6, - "key.nameoffset" : 15991, - "key.offset" : 15984, - "key.parsed_declaration" : "public struct Layout : Equatable", - "key.parsed_scope.end" : 354, - "key.parsed_scope.start" : 288, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var headerToFirstSectionSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16147 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing between the list header and the first section.\nNot applied if there is no list header.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing between the list header and the first section.\nNot applied if there is no list header.", - "key.doc.declaration" : "public var headerToFirstSectionSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "headerToFirstSectionSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV27headerToFirstSectionSpacing14CoreFoundation7CGFloatVvp<\/USR>public var headerToFirstSectionSpacing: CGFloat<\/Declaration>The spacing between the list header and the first section. Not applied if there is no list header.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 292, - "key.doc.name" : "headerToFirstSectionSpacing", - "key.doc.type" : "Other", - "key.doclength" : 115, - "key.docoffset" : 16024, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> headerToFirstSectionSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 292, - "key.modulename" : "ListableUI", - "key.name" : "headerToFirstSectionSpacing", - "key.namelength" : 27, - "key.nameoffset" : 16158, - "key.offset" : 16154, - "key.parsed_declaration" : "public var headerToFirstSectionSpacing : CGFloat", - "key.parsed_scope.end" : 292, - "key.parsed_scope.start" : 292, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV27headerToFirstSectionSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var interSectionSpacingWithNoFooter: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16295 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing to apply between sections, if the previous section has no footer.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing to apply between sections, if the previous section has no footer.", - "key.doc.declaration" : "public var interSectionSpacingWithNoFooter: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "interSectionSpacingWithNoFooter<\/Name>s:10ListableUI15TableAppearanceV6LayoutV31interSectionSpacingWithNoFooter14CoreFoundation7CGFloatVvp<\/USR>public var interSectionSpacingWithNoFooter: CGFloat<\/Declaration>The spacing to apply between sections, if the previous section has no footer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 295, - "key.doc.name" : "interSectionSpacingWithNoFooter", - "key.doc.type" : "Other", - "key.doclength" : 82, - "key.docoffset" : 16205, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interSectionSpacingWithNoFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 295, - "key.modulename" : "ListableUI", - "key.name" : "interSectionSpacingWithNoFooter", - "key.namelength" : 31, - "key.nameoffset" : 16306, - "key.offset" : 16302, - "key.parsed_declaration" : "public var interSectionSpacingWithNoFooter : CGFloat", - "key.parsed_scope.end" : 295, - "key.parsed_scope.start" : 295, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV31interSectionSpacingWithNoFooter14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var interSectionSpacingWithFooter: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16445 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing to apply between sections, if the previous section has a footer.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing to apply between sections, if the previous section has a footer.", - "key.doc.declaration" : "public var interSectionSpacingWithFooter: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "interSectionSpacingWithFooter<\/Name>s:10ListableUI15TableAppearanceV6LayoutV29interSectionSpacingWithFooter14CoreFoundation7CGFloatVvp<\/USR>public var interSectionSpacingWithFooter: CGFloat<\/Declaration>The spacing to apply between sections, if the previous section has a footer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 297, - "key.doc.name" : "interSectionSpacingWithFooter", - "key.doc.type" : "Other", - "key.doclength" : 81, - "key.docoffset" : 16356, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interSectionSpacingWithFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 297, - "key.modulename" : "ListableUI", - "key.name" : "interSectionSpacingWithFooter", - "key.namelength" : 29, - "key.nameoffset" : 16456, - "key.offset" : 16452, - "key.parsed_declaration" : "public var interSectionSpacingWithFooter : CGFloat", - "key.parsed_scope.end" : 297, - "key.parsed_scope.start" : 297, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV29interSectionSpacingWithFooter14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sectionHeaderBottomSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16643 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing to apply below a section header, before its items.\nNot applied if there is no section header.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing to apply below a section header, before its items.\nNot applied if there is no section header.", - "key.doc.declaration" : "public var sectionHeaderBottomSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "sectionHeaderBottomSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV26sectionHeaderBottomSpacing14CoreFoundation7CGFloatVvp<\/USR>public var sectionHeaderBottomSpacing: CGFloat<\/Declaration>The spacing to apply below a section header, before its items. Not applied if there is no section header.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 301, - "key.doc.name" : "sectionHeaderBottomSpacing", - "key.doc.type" : "Other", - "key.doclength" : 122, - "key.docoffset" : 16513, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionHeaderBottomSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 301, - "key.modulename" : "ListableUI", - "key.name" : "sectionHeaderBottomSpacing", - "key.namelength" : 26, - "key.nameoffset" : 16654, - "key.offset" : 16650, - "key.parsed_declaration" : "public var sectionHeaderBottomSpacing : CGFloat", - "key.parsed_scope.end" : 301, - "key.parsed_scope.start" : 301, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV26sectionHeaderBottomSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16776 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing between individual items within a section in a list.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing between individual items within a section in a list.", - "key.doc.declaration" : "public var itemSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "itemSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV11itemSpacing14CoreFoundation7CGFloatVvp<\/USR>public var itemSpacing: CGFloat<\/Declaration>The spacing between individual items within a section in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 303, - "key.doc.name" : "itemSpacing", - "key.doc.type" : "Other", - "key.doclength" : 69, - "key.docoffset" : 16699, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 303, - "key.modulename" : "ListableUI", - "key.name" : "itemSpacing", - "key.namelength" : 11, - "key.nameoffset" : 16787, - "key.offset" : 16783, - "key.parsed_declaration" : "public var itemSpacing : CGFloat", - "key.parsed_scope.end" : 303, - "key.parsed_scope.start" : 303, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV11itemSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var itemToSectionFooterSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16949 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing between the last item in the section and the footer.\nNot applied if there is no section footer.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing between the last item in the section and the footer.\nNot applied if there is no section footer.", - "key.doc.declaration" : "public var itemToSectionFooterSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "itemToSectionFooterSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV26itemToSectionFooterSpacing14CoreFoundation7CGFloatVvp<\/USR>public var itemToSectionFooterSpacing: CGFloat<\/Declaration>The spacing between the last item in the section and the footer. Not applied if there is no section footer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 306, - "key.doc.name" : "itemToSectionFooterSpacing", - "key.doc.type" : "Other", - "key.doclength" : 124, - "key.docoffset" : 16817, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemToSectionFooterSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 306, - "key.modulename" : "ListableUI", - "key.name" : "itemToSectionFooterSpacing", - "key.namelength" : 26, - "key.nameoffset" : 16960, - "key.offset" : 16956, - "key.parsed_declaration" : "public var itemToSectionFooterSpacing : CGFloat", - "key.parsed_scope.end" : 306, - "key.parsed_scope.start" : 306, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV26itemToSectionFooterSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var lastSectionToFooterSpacing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 17143 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The spacing between the last section and the footer of the list.\nNot applied if there is no list footer.", - "key.doc.column" : 20, - "key.doc.comment" : "The spacing between the last section and the footer of the list.\nNot applied if there is no list footer.", - "key.doc.declaration" : "public var lastSectionToFooterSpacing: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "lastSectionToFooterSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV26lastSectionToFooterSpacing14CoreFoundation7CGFloatVvp<\/USR>public var lastSectionToFooterSpacing: CGFloat<\/Declaration>The spacing between the last section and the footer of the list. Not applied if there is no list footer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 310, - "key.doc.name" : "lastSectionToFooterSpacing", - "key.doc.type" : "Other", - "key.doclength" : 121, - "key.docoffset" : 17014, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastSectionToFooterSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 310, - "key.modulename" : "ListableUI", - "key.name" : "lastSectionToFooterSpacing", - "key.namelength" : 26, - "key.nameoffset" : 17154, - "key.offset" : 17150, - "key.parsed_declaration" : "public var lastSectionToFooterSpacing : CGFloat", - "key.parsed_scope.end" : 310, - "key.parsed_scope.start" : 310, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV26lastSectionToFooterSpacing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(headerToFirstSectionSpacing: CGFloat<\/Type> = 0.0, interSectionSpacingWithNoFooter: CGFloat<\/Type> = 0.0, interSectionSpacingWithFooter: CGFloat<\/Type> = 0.0, sectionHeaderBottomSpacing: CGFloat<\/Type> = 0.0, itemSpacing: CGFloat<\/Type> = 0.0, itemToSectionFooterSpacing: CGFloat<\/Type> = 0.0, lastSectionToFooterSpacing: CGFloat<\/Type> = 0.0)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 17278 - } - ], - "key.bodylength" : 547, - "key.bodyoffset" : 17695, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `Layout` with the provided options.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new `Layout` with the provided options.", - "key.doc.declaration" : "public init(headerToFirstSectionSpacing: CGFloat = 0.0, interSectionSpacingWithNoFooter: CGFloat = 0.0, interSectionSpacingWithFooter: CGFloat = 0.0, sectionHeaderBottomSpacing: CGFloat = 0.0, itemSpacing: CGFloat = 0.0, itemToSectionFooterSpacing: CGFloat = 0.0, lastSectionToFooterSpacing: CGFloat = 0.0)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "init(headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)<\/Name>s:10ListableUI15TableAppearanceV6LayoutV27headerToFirstSectionSpacing05interiJ12WithNoFooter0kijlN0019sectionHeaderBottomJ004itemJ00rginJ004lastignJ0AE14CoreFoundation7CGFloatV_A6Otcfc<\/USR>public init(headerToFirstSectionSpacing: CGFloat = 0.0, interSectionSpacingWithNoFooter: CGFloat = 0.0, interSectionSpacingWithFooter: CGFloat = 0.0, sectionHeaderBottomSpacing: CGFloat = 0.0, itemSpacing: CGFloat = 0.0, itemToSectionFooterSpacing: CGFloat = 0.0, lastSectionToFooterSpacing: CGFloat = 0.0)<\/Declaration>Creates a new Layout<\/codeVoice> with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 313, - "key.doc.name" : "init(headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)", - "key.doc.type" : "Function", - "key.doclength" : 54, - "key.docoffset" : 17216, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(headerToFirstSectionSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, interSectionSpacingWithNoFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, interSectionSpacingWithFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, sectionHeaderBottomSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, itemToSectionFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, lastSectionToFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 958, - "key.line" : 313, - "key.modulename" : "ListableUI", - "key.name" : "init(headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)", - "key.namelength" : 400, - "key.nameoffset" : 17285, - "key.offset" : 17285, - "key.parsed_declaration" : "public init(\n headerToFirstSectionSpacing : CGFloat = 0.0,\n interSectionSpacingWithNoFooter : CGFloat = 0.0,\n interSectionSpacingWithFooter : CGFloat = 0.0,\n sectionHeaderBottomSpacing : CGFloat = 0.0,\n itemSpacing : CGFloat = 0.0,\n itemToSectionFooterSpacing : CGFloat = 0.0,\n lastSectionToFooterSpacing : CGFloat = 0.0\n)", - "key.parsed_scope.end" : 333, - "key.parsed_scope.start" : 313, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableAppearance.Layout.Type) -> (CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat) -> TableAppearance.Layout", - "key.typeusr" : "$s27headerToFirstSectionSpacing05interdE12WithNoFooter0fdegI0019sectionHeaderBottomE004itemE00mbdiE004lastdbiE010ListableUI15TableAppearanceV6LayoutV14CoreFoundation7CGFloatV_A6OtcD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV27headerToFirstSectionSpacing05interiJ12WithNoFooter0kijlN0019sectionHeaderBottomJ004itemJ00rginJ004lastignJ0AE14CoreFoundation7CGFloatV_A6Otcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func set(with block: (inout Layout<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 18309 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 18302 - } - ], - "key.bodylength" : 92, - "key.bodyoffset" : 18371, - "key.column" : 30, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Easily mutate the `Layout` in place.", - "key.doc.column" : 30, - "key.doc.comment" : "Easily mutate the `Layout` in place.", - "key.doc.declaration" : "public mutating func set(with block: (inout Layout) -> ())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "set(with:)<\/Name>s:10ListableUI15TableAppearanceV6LayoutV3set4withyyAEzXE_tF<\/USR>public mutating func set(with block: (inout Layout) -> ())<\/Declaration>Easily mutate the Layout<\/codeVoice> in place.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 336, - "key.doc.name" : "set(with:)", - "key.doc.type" : "Function", - "key.doclength" : 41, - "key.docoffset" : 18253, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(with<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Layout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 146, - "key.line" : 336, - "key.modulename" : "ListableUI", - "key.name" : "set(with:)", - "key.namelength" : 38, - "key.nameoffset" : 18323, - "key.offset" : 18318, - "key.parsed_declaration" : "public mutating func set(with block : (inout Layout) -> ())", - "key.parsed_scope.end" : 341, - "key.parsed_scope.start" : 336, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var edited: TableAppearance<\/Type>.Layout<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> edited<\/decl.name>: TableAppearance<\/ref.struct>.Layout<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 17, - "key.line" : 338, - "key.modulename" : "ListableUI", - "key.name" : "edited", - "key.namelength" : 6, - "key.nameoffset" : 18388, - "key.offset" : 18384, - "key.parsed_declaration" : "var edited = self", - "key.parsed_scope.end" : 338, - "key.parsed_scope.start" : 338, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.Layout", - "key.typeusr" : "$s10ListableUI15TableAppearanceV6LayoutVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV3set4withyyAEzXE_tF6editedL_AEvp" - } - ], - "key.typename" : "(inout TableAppearance.Layout) -> ((inout TableAppearance.Layout) -> ()) -> ()", - "key.typeusr" : "$s4withyy10ListableUI15TableAppearanceV6LayoutVzXE_tcD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV3set4withyyAEzXE_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal static func width(with width: CGFloat<\/Type>, padding: HorizontalPadding<\/Type>, constraint: WidthConstraint<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 18523 - } - ], - "key.bodylength" : 144, - "key.bodyoffset" : 18697, - "key.column" : 30, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a width for layout.", - "key.doc.column" : 30, - "key.doc.comment" : "Provides a width for layout.", - "key.doc.declaration" : "internal static func width(with width: CGFloat, padding: HorizontalPadding, constraint: WidthConstraint) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "width(with:padding:constraint:)<\/Name>s:10ListableUI15TableAppearanceV6LayoutV5width4with7padding10constraint14CoreFoundation7CGFloatVAL_AA17HorizontalPaddingVAA15WidthConstraintOtFZ<\/USR>internal static func width(with width: CGFloat, padding: HorizontalPadding, constraint: WidthConstraint) -> CGFloat<\/Declaration>Provides a width for layout.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 344, - "key.doc.name" : "width(with:padding:constraint:)", - "key.doc.type" : "Function", - "key.doclength" : 33, - "key.docoffset" : 18482, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> width<\/decl.name>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, padding<\/decl.var.parameter.argument_label>: HorizontalPadding<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, constraint<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 310, - "key.line" : 344, - "key.modulename" : "ListableUI", - "key.name" : "width(with:padding:constraint:)", - "key.namelength" : 132, - "key.nameoffset" : 18544, - "key.offset" : 18532, - "key.parsed_declaration" : "internal static func width(\n with width : CGFloat,\n padding : HorizontalPadding,\n constraint : WidthConstraint\n) -> CGFloat", - "key.parsed_scope.end" : 353, - "key.parsed_scope.start" : 344, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let paddedWidth: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> paddedWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 60, - "key.line" : 350, - "key.modulename" : "ListableUI", - "key.name" : "paddedWidth", - "key.namelength" : 11, - "key.nameoffset" : 18714, - "key.offset" : 18710, - "key.parsed_declaration" : "let paddedWidth = width - padding.leading - padding.trailing", - "key.parsed_scope.end" : 350, - "key.parsed_scope.start" : 350, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV5width4with7padding10constraint14CoreFoundation7CGFloatVAL_AA17HorizontalPaddingVAA15WidthConstraintOtFZ06paddedO0L_ALvp" - } - ], - "key.typename" : "(TableAppearance.Layout.Type) -> (CGFloat, HorizontalPadding, WidthConstraint) -> CGFloat", - "key.typeusr" : "$s4with7padding10constraint14CoreFoundation7CGFloatVAF_10ListableUI17HorizontalPaddingVAG15WidthConstraintOtcD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV5width4with7padding10constraint14CoreFoundation7CGFloatVAL_AA17HorizontalPaddingVAA15WidthConstraintOtFZ" - } - ], - "key.typename" : "TableAppearance.Layout.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceV6LayoutVmD", - "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV" - } - ], - "key.typename" : "TableAppearance.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceVmD", - "key.usr" : "s:10ListableUI15TableAppearanceV" - }, - { - "key.annotated_decl" : "public struct ItemLayouts<\/Declaration>", - "key.bodylength" : 549, - "key.bodyoffset" : 18876, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`ItemLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your item:\n\n```\nmyItem.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `Item` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyItem.layouts.table = .init(\n width: .fill\n)\n\nmyItem.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `ItemLayouts`,\nto provide easier access to your layout-specific `ItemLayoutsValue` type, like so:\n\n```\nextension ItemLayoutsValue {\n public var table : TableAppearance.Item.Layout {\n get { self[TableAppearance.Item.Layout.self] }\n set { self[TableAppearance.Item.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ItemLayouts", - "key.doc.discussion" : [ - { - "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your item:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "And then, when the `Item` is used within a `.table` style list layout, the provided layout will be used." - }, - { - "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When implementing your own custom layout, you should add an extension to `ItemLayouts`, to provide easier access to your layout-specific `ItemLayoutsValue` type, like so:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.doc.full_as_xml" : "ItemLayouts<\/Name>s:10ListableUI11ItemLayoutsV<\/USR>public struct ItemLayouts<\/Declaration>ItemLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your item:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Item<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to ItemLayouts<\/codeVoice>, to provide easier access to your layout-specific ItemLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 54, - "key.doc.name" : "ItemLayouts", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/ItemLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayouts<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 573, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayouts", - "key.namelength" : 11, - "key.nameoffset" : 18863, - "key.offset" : 18853, - "key.parsed_declaration" : "extension ItemLayouts", - "key.parsed_scope.end" : 372, - "key.parsed_scope.start" : 358, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func table(_ configure: (inout TableAppearance<\/Type>.ItemLayout<\/Type>) -> ()) -> ItemLayouts<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 18983 - } - ], - "key.bodylength" : 64, - "key.bodyoffset" : 19073, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `ItemLayouts` value that allows configuring the table values for the item.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates a new `ItemLayouts` value that allows configuring the table values for the item.", - "key.doc.declaration" : "public static func table(_ configure: (inout TableAppearance.ItemLayout) -> ()) -> ListableUI.ItemLayouts", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "table(_:)<\/Name>s:10ListableUI11ItemLayoutsV5tableyACyAA15TableAppearanceV0C6LayoutVzXEFZ<\/USR>public static func table(_ configure: (inout TableAppearance.ItemLayout) -> ()) -> ListableUI.ItemLayouts<\/Declaration>Creates a new ItemLayouts<\/codeVoice> value that allows configuring the table values for the item.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 361, - "key.doc.name" : "table(_:)", - "key.doc.type" : "Function", - "key.doclength" : 93, - "key.docoffset" : 18886, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> table<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> TableAppearance<\/ref.struct>.ItemLayout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ItemLayouts<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 148, - "key.line" : 361, - "key.modulename" : "ListableUI", - "key.name" : "table(_:)", - "key.namelength" : 61, - "key.nameoffset" : 19002, - "key.offset" : 18990, - "key.parsed_declaration" : "public static func table(_ configure : (inout TableAppearance.ItemLayout) -> ()) -> Self", - "key.parsed_scope.end" : 365, - "key.parsed_scope.start" : 361, - "key.related_decls" : [ - { - "key.annotated_decl" : "table<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemLayouts.Type) -> ((inout TableAppearance.ItemLayout) -> ()) -> ItemLayouts", - "key.typeusr" : "$sy10ListableUI11ItemLayoutsVyAA15TableAppearanceV0C6LayoutVzXEcD", - "key.usr" : "s:10ListableUI11ItemLayoutsV5tableyACyAA15TableAppearanceV0C6LayoutVzXEFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var table: TableAppearance<\/Type>.ItemLayout<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 19252 - } - ], - "key.bodylength" : 124, - "key.bodyoffset" : 19299, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows customization of an `Item`'s layout when it is presented within a `.table` style layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Allows customization of an `Item`'s layout when it is presented within a `.table` style layout.", - "key.doc.declaration" : "public var table: TableAppearance.ItemLayout { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "table<\/Name>s:10ListableUI11ItemLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp<\/USR>public var table: TableAppearance.ItemLayout { get set }<\/Declaration>Allows customization of an Item<\/codeVoice>’s layout when it is presented within a .table<\/codeVoice> style layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 368, - "key.doc.name" : "table", - "key.doc.type" : "Other", - "key.doclength" : 100, - "key.docoffset" : 19148, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> table<\/decl.name>: TableAppearance<\/ref.struct>.ItemLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 165, - "key.line" : 368, - "key.modulename" : "ListableUI", - "key.name" : "table", - "key.namelength" : 5, - "key.nameoffset" : 19263, - "key.offset" : 19259, - "key.parsed_declaration" : "public var table : TableAppearance.ItemLayout", - "key.parsed_scope.end" : 371, - "key.parsed_scope.start" : 368, - "key.related_decls" : [ - { - "key.annotated_decl" : "table(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "TableAppearance.ItemLayout", - "key.typeusr" : "$s10ListableUI15TableAppearanceV10ItemLayoutVD", - "key.usr" : "s:10ListableUI11ItemLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp" - } - ], - "key.typename" : "ItemLayouts.Type", - "key.typeusr" : "$s10ListableUI11ItemLayoutsVmD", - "key.usr" : "s:10ListableUI11ItemLayoutsV" - }, - { - "key.annotated_decl" : "public struct HeaderFooterLayouts<\/Declaration>", - "key.bodylength" : 604, - "key.bodyoffset" : 19460, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`HeaderFooterLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your header:\n\n```\nmyHeader.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `HeaderFooter` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyHeader.layouts.table = .init(\n width: .fill\n)\n\nmyHeader.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n padding: 10\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`,\nto provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:\n\n```\nextension HeaderFooterLayouts {\n public var table : TableAppearance.HeaderFooter.Layout {\n get { self[TableAppearance.HeaderFooter.Layout.self] }\n set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct HeaderFooterLayouts", - "key.doc.discussion" : [ - { - "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your header:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "And then, when the `HeaderFooter` is used within a `.table` style list layout, the provided layout will be used." - }, - { - "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`, to provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.doc.full_as_xml" : "HeaderFooterLayouts<\/Name>s:10ListableUI19HeaderFooterLayoutsV<\/USR>public struct HeaderFooterLayouts<\/Declaration>HeaderFooterLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your header:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the HeaderFooter<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to HeaderFooterLayouts<\/codeVoice>, to provide easier access to your layout-specific HeaderFooterLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 55, - "key.doc.name" : "HeaderFooterLayouts", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayouts<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 636, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayouts", - "key.namelength" : 19, - "key.nameoffset" : 19439, - "key.offset" : 19429, - "key.parsed_declaration" : "extension HeaderFooterLayouts", - "key.parsed_scope.end" : 389, - "key.parsed_scope.start" : 375, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func table(_ configure: (inout TableAppearance<\/Type>.HeaderFooterLayout<\/Type>) -> ()) -> HeaderFooterLayouts<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 19583 - } - ], - "key.bodylength" : 64, - "key.bodyoffset" : 19681, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `HeaderFooterLayouts` value that allows configuring the header footer values for the item.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates a new `HeaderFooterLayouts` value that allows configuring the header footer values for the item.", - "key.doc.declaration" : "public static func table(_ configure: (inout TableAppearance.HeaderFooterLayout) -> ()) -> ListableUI.HeaderFooterLayouts", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "table(_:)<\/Name>s:10ListableUI19HeaderFooterLayoutsV5tableyACyAA15TableAppearanceV0cD6LayoutVzXEFZ<\/USR>public static func table(_ configure: (inout TableAppearance.HeaderFooterLayout) -> ()) -> ListableUI.HeaderFooterLayouts<\/Declaration>Creates a new HeaderFooterLayouts<\/codeVoice> value that allows configuring the header footer values for the item.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 378, - "key.doc.name" : "table(_:)", - "key.doc.type" : "Function", - "key.doclength" : 109, - "key.docoffset" : 19470, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> table<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> TableAppearance<\/ref.struct>.HeaderFooterLayout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> HeaderFooterLayouts<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 156, - "key.line" : 378, - "key.modulename" : "ListableUI", - "key.name" : "table(_:)", - "key.namelength" : 69, - "key.nameoffset" : 19602, - "key.offset" : 19590, - "key.parsed_declaration" : "public static func table(_ configure : (inout TableAppearance.HeaderFooterLayout) -> ()) -> Self", - "key.parsed_scope.end" : 382, - "key.parsed_scope.start" : 378, - "key.related_decls" : [ - { - "key.annotated_decl" : "table<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(HeaderFooterLayouts.Type) -> ((inout TableAppearance.HeaderFooterLayout) -> ()) -> HeaderFooterLayouts", - "key.typeusr" : "$sy10ListableUI19HeaderFooterLayoutsVyAA15TableAppearanceV0cD6LayoutVzXEcD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV5tableyACyAA15TableAppearanceV0cD6LayoutVzXEFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var table: TableAppearance<\/Type>.HeaderFooterLayout<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 19867 - } - ], - "key.bodylength" : 140, - "key.bodyoffset" : 19922, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows customization of a `HeaderFooter`'s layout when it is presented within a `.table` style layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Allows customization of a `HeaderFooter`'s layout when it is presented within a `.table` style layout.", - "key.doc.declaration" : "public var table: TableAppearance.HeaderFooterLayout { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "table<\/Name>s:10ListableUI19HeaderFooterLayoutsV5tableAA15TableAppearanceV0cD6LayoutVvp<\/USR>public var table: TableAppearance.HeaderFooterLayout { get set }<\/Declaration>Allows customization of a HeaderFooter<\/codeVoice>’s layout when it is presented within a .table<\/codeVoice> style layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 385, - "key.doc.name" : "table", - "key.doc.type" : "Other", - "key.doclength" : 107, - "key.docoffset" : 19756, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> table<\/decl.name>: TableAppearance<\/ref.struct>.HeaderFooterLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 189, - "key.line" : 385, - "key.modulename" : "ListableUI", - "key.name" : "table", - "key.namelength" : 5, - "key.nameoffset" : 19878, - "key.offset" : 19874, - "key.parsed_declaration" : "public var table : TableAppearance.HeaderFooterLayout", - "key.parsed_scope.end" : 388, - "key.parsed_scope.start" : 385, - "key.related_decls" : [ - { - "key.annotated_decl" : "table(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "TableAppearance.HeaderFooterLayout", - "key.typeusr" : "$s10ListableUI15TableAppearanceV18HeaderFooterLayoutVD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV5tableAA15TableAppearanceV0cD6LayoutVvp" - } - ], - "key.typename" : "HeaderFooterLayouts.Type", - "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVmD", - "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV" - }, - { - "key.annotated_decl" : "public struct SectionLayouts<\/Declaration>", - "key.bodylength" : 569, - "key.bodyoffset" : 20094, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`SectionLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your section:\n\n```\nmySection.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `Section` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmySection.layouts.table = .init(\n width: .fill\n)\n\nmySection.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `SectionLayouts`,\nto provide easier access to your layout-specific `SectionLayoutsValue` type, like so:\n\n```\nextension SectionLayouts {\n public var table : TableAppearance.Section.Layout {\n get { self[TableAppearance.Section.Layout.self] }\n set { self[TableAppearance.Section.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct SectionLayouts", - "key.doc.discussion" : [ - { - "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your section:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "And then, when the `Section` is used within a `.table` style list layout, the provided layout will be used." - }, - { - "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When implementing your own custom layout, you should add an extension to `SectionLayouts`, to provide easier access to your layout-specific `SectionLayoutsValue` type, like so:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "SectionLayouts<\/Name>s:10ListableUI14SectionLayoutsV<\/USR>public struct SectionLayouts<\/Declaration>SectionLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your section:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Section<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to SectionLayouts<\/codeVoice>, to provide easier access to your layout-specific SectionLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 54, - "key.doc.name" : "SectionLayouts", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayouts<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 596, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayouts", - "key.namelength" : 14, - "key.nameoffset" : 20078, - "key.offset" : 20068, - "key.parsed_declaration" : "extension SectionLayouts", - "key.parsed_scope.end" : 406, - "key.parsed_scope.start" : 392, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func table(_ configure: (inout TableAppearance<\/Type>.SectionLayout<\/Type>) -> ()) -> SectionLayouts<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 20207 - } - ], - "key.bodylength" : 64, - "key.bodyoffset" : 20300, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `SectionLayouts` value that allows configuring the table values for the section.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates a new `SectionLayouts` value that allows configuring the table values for the section.", - "key.doc.declaration" : "public static func table(_ configure: (inout TableAppearance.SectionLayout) -> ()) -> ListableUI.SectionLayouts", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "table(_:)<\/Name>s:10ListableUI14SectionLayoutsV5tableyACyAA15TableAppearanceV0C6LayoutVzXEFZ<\/USR>public static func table(_ configure: (inout TableAppearance.SectionLayout) -> ()) -> ListableUI.SectionLayouts<\/Declaration>Creates a new SectionLayouts<\/codeVoice> value that allows configuring the table values for the section.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 395, - "key.doc.name" : "table(_:)", - "key.doc.type" : "Function", - "key.doclength" : 99, - "key.docoffset" : 20104, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> table<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> TableAppearance<\/ref.struct>.SectionLayout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> SectionLayouts<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 151, - "key.line" : 395, - "key.modulename" : "ListableUI", - "key.name" : "table(_:)", - "key.namelength" : 64, - "key.nameoffset" : 20226, - "key.offset" : 20214, - "key.parsed_declaration" : "public static func table(_ configure : (inout TableAppearance.SectionLayout) -> ()) -> Self", - "key.parsed_scope.end" : 399, - "key.parsed_scope.start" : 395, - "key.related_decls" : [ - { - "key.annotated_decl" : "table<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SectionLayouts.Type) -> ((inout TableAppearance.SectionLayout) -> ()) -> SectionLayouts", - "key.typeusr" : "$sy10ListableUI14SectionLayoutsVyAA15TableAppearanceV0C6LayoutVzXEcD", - "key.usr" : "s:10ListableUI14SectionLayoutsV5tableyACyAA15TableAppearanceV0C6LayoutVzXEFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var table: TableAppearance<\/Type>.SectionLayout<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 20481 - } - ], - "key.bodylength" : 130, - "key.bodyoffset" : 20531, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows customization of a `Section`'s layout when it is presented within a `.table` style layout.", - "key.doc.column" : 16, - "key.doc.comment" : "Allows customization of a `Section`'s layout when it is presented within a `.table` style layout.", - "key.doc.declaration" : "public var table: TableAppearance.SectionLayout { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.doc.full_as_xml" : "table<\/Name>s:10ListableUI14SectionLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp<\/USR>public var table: TableAppearance.SectionLayout { get set }<\/Declaration>Allows customization of a Section<\/codeVoice>’s layout when it is presented within a .table<\/codeVoice> style layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 402, - "key.doc.name" : "table", - "key.doc.type" : "Other", - "key.doclength" : 102, - "key.docoffset" : 20375, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> table<\/decl.name>: TableAppearance<\/ref.struct>.SectionLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 174, - "key.line" : 402, - "key.modulename" : "ListableUI", - "key.name" : "table", - "key.namelength" : 5, - "key.nameoffset" : 20492, - "key.offset" : 20488, - "key.parsed_declaration" : "public var table : TableAppearance.SectionLayout", - "key.parsed_scope.end" : 405, - "key.parsed_scope.start" : 402, - "key.related_decls" : [ - { - "key.annotated_decl" : "table(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "TableAppearance.SectionLayout", - "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutVD", - "key.usr" : "s:10ListableUI14SectionLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp" - } - ], - "key.typename" : "SectionLayouts.Type", - "key.typeusr" : "$s10ListableUI14SectionLayoutsVmD", - "key.usr" : "s:10ListableUI14SectionLayoutsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class TableListLayout : ListLayout<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 20667 - } - ], - "key.bodylength" : 15485, - "key.bodyoffset" : 20709, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 10, - "key.offset" : 20697 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> TableListLayout<\/decl.name> : ListLayout<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ListLayout" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 15522, - "key.line" : 409, - "key.modulename" : "ListableUI", - "key.name" : "TableListLayout", - "key.namelength" : 15, - "key.nameoffset" : 20679, - "key.offset" : 20673, - "key.parsed_declaration" : "final class TableListLayout : ListLayout", - "key.parsed_scope.end" : 845, - "key.parsed_scope.start" : 409, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias TableListLayout<\/Type>.ItemLayout = TableAppearance<\/Type>.ItemLayout<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> TableListLayout<\/ref.class>.ItemLayout<\/decl.name> = TableAppearance<\/ref.struct>.ItemLayout<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 49, - "key.line" : 411, - "key.modulename" : "ListableUI", - "key.name" : "ItemLayout", - "key.namelength" : 10, - "key.nameoffset" : 20724, - "key.offset" : 20714, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP04ItemD0Qa" - } - ], - "key.parsed_declaration" : "typealias ItemLayout = TableAppearance.ItemLayout", - "key.parsed_scope.end" : 411, - "key.parsed_scope.start" : 411, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.ItemLayout.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceV10ItemLayoutVmD", - "key.usr" : "s:10ListableUI15TableListLayoutC04ItemE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias TableListLayout<\/Type>.HeaderFooterLayout = TableAppearance<\/Type>.HeaderFooterLayout<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> TableListLayout<\/ref.class>.HeaderFooterLayout<\/decl.name> = TableAppearance<\/ref.struct>.HeaderFooterLayout<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 65, - "key.line" : 412, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooterLayout", - "key.namelength" : 18, - "key.nameoffset" : 20778, - "key.offset" : 20768, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP012HeaderFooterD0Qa" - } - ], - "key.parsed_declaration" : "typealias HeaderFooterLayout = TableAppearance.HeaderFooterLayout", - "key.parsed_scope.end" : 412, - "key.parsed_scope.start" : 412, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.HeaderFooterLayout.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceV18HeaderFooterLayoutVmD", - "key.usr" : "s:10ListableUI15TableListLayoutC012HeaderFooterE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias TableListLayout<\/Type>.SectionLayout = TableAppearance<\/Type>.SectionLayout<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> TableListLayout<\/ref.class>.SectionLayout<\/decl.name> = TableAppearance<\/ref.struct>.SectionLayout<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 55, - "key.line" : 413, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayout", - "key.namelength" : 13, - "key.nameoffset" : 20848, - "key.offset" : 20838, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP07SectionD0Qa" - } - ], - "key.parsed_declaration" : "typealias SectionLayout = TableAppearance.SectionLayout", - "key.parsed_scope.end" : 413, - "key.parsed_scope.start" : 413, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.SectionLayout.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutVmD", - "key.usr" : "s:10ListableUI15TableListLayoutC07SectionE0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias TableListLayout<\/Type>.LayoutAppearance = TableAppearance<\/Type><\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> TableListLayout<\/ref.class>.LayoutAppearance<\/decl.name> = TableAppearance<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 44, - "key.line" : 415, - "key.modulename" : "ListableUI", - "key.name" : "LayoutAppearance", - "key.namelength" : 16, - "key.nameoffset" : 20913, - "key.offset" : 20903, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa" - } - ], - "key.parsed_declaration" : "typealias LayoutAppearance = TableAppearance", - "key.parsed_scope.end" : 415, - "key.parsed_scope.start" : 415, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.Type", - "key.typeusr" : "$s10ListableUI15TableAppearanceVmD", - "key.usr" : "s:10ListableUI15TableListLayoutC0E10Appearancea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>", - "key.bodylength" : 57, - "key.bodyoffset" : 20998, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 99, - "key.line" : 417, - "key.modulename" : "ListableUI", - "key.name" : "defaults", - "key.namelength" : 8, - "key.nameoffset" : 20968, - "key.offset" : 20957, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ" - } - ], - "key.parsed_declaration" : "static var defaults: ListLayoutDefaults", - "key.parsed_scope.end" : 419, - "key.parsed_scope.start" : 417, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutDefaults", - "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD", - "key.usr" : "s:10ListableUI15TableListLayoutC8defaultsAA0dE8DefaultsVvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var layoutAppearance: TableAppearance<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: TableAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 421, - "key.modulename" : "ListableUI", - "key.name" : "layoutAppearance", - "key.namelength" : 16, - "key.nameoffset" : 21070, - "key.offset" : 21066, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp" - } - ], - "key.parsed_declaration" : "var layoutAppearance: TableAppearance", - "key.parsed_scope.end" : 421, - "key.parsed_scope.start" : 421, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "TableAppearance", - "key.typeusr" : "$s10ListableUI15TableAppearanceVD", - "key.usr" : "s:10ListableUI15TableListLayoutC16layoutAppearanceAA0cG0Vvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Public Properties", - "key.offset" : 21123 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let appearance: Appearance<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 427, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 21167, - "key.offset" : 21163, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp" - } - ], - "key.parsed_declaration" : "let appearance : Appearance", - "key.parsed_scope.end" : 427, - "key.parsed_scope.start" : 427, - "key.reusingastcontext" : false, - "key.typename" : "Appearance", - "key.typeusr" : "$s10ListableUI10AppearanceVD", - "key.usr" : "s:10ListableUI15TableListLayoutC10appearanceAA10AppearanceVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let behavior: Behavior<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 428, - "key.modulename" : "ListableUI", - "key.name" : "behavior", - "key.namelength" : 8, - "key.nameoffset" : 21199, - "key.offset" : 21195, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp" - } - ], - "key.parsed_declaration" : "let behavior : Behavior", - "key.parsed_scope.end" : 428, - "key.parsed_scope.start" : 428, - "key.reusingastcontext" : false, - "key.typename" : "Behavior", - "key.typeusr" : "$s10ListableUI8BehaviorVD", - "key.usr" : "s:10ListableUI15TableListLayoutC8behaviorAA8BehaviorVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let content: ListLayoutContent<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 430, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 21232, - "key.offset" : 21228, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp" - } - ], - "key.parsed_declaration" : "let content : ListLayoutContent", - "key.parsed_scope.end" : 430, - "key.parsed_scope.start" : 430, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutContent", - "key.typeusr" : "$s10ListableUI17ListLayoutContentCD", - "key.usr" : "s:10ListableUI15TableListLayoutC7contentAA0dE7ContentCvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 21283 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(layoutAppearance: LayoutAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>", - "key.bodylength" : 164, - "key.bodyoffset" : 21476, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: LayoutAppearance<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 321, - "key.line" : 436, - "key.modulename" : "ListableUI", - "key.name" : "init(layoutAppearance:appearance:behavior:content:)", - "key.namelength" : 154, - "key.nameoffset" : 21320, - "key.offset" : 21320, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc" - } - ], - "key.parsed_declaration" : "init(\n layoutAppearance : LayoutAppearance,\n appearance : Appearance,\n behavior : Behavior,\n content : ListLayoutContent\n)", - "key.parsed_scope.end" : 447, - "key.parsed_scope.start" : 436, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableListLayout.Type) -> (TableAppearance, Appearance, Behavior, ListLayoutContent) -> TableListLayout", - "key.typeusr" : "$s16layoutAppearance10appearance8behavior7content10ListableUI15TableListLayoutCAE0hB0V_AE0B0VAE8BehaviorVAE0iJ7ContentCtcD", - "key.usr" : "s:10ListableUI15TableListLayoutC16layoutAppearance10appearance8behavior7contentAcA0cG0V_AA0G0VAA8BehaviorVAA0dE7ContentCtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Performing Layouts", - "key.offset" : 21661 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func updateLayout(in context: ListLayoutLayoutContext<\/Type>)<\/Declaration>", - "key.bodylength" : 14, - "key.bodyoffset" : 21763, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 76, - "key.line" : 453, - "key.modulename" : "ListableUI", - "key.name" : "updateLayout(in:)", - "key.namelength" : 50, - "key.nameoffset" : 21707, - "key.offset" : 21702, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inyAA0deE7ContextV_tF" - } - ], - "key.parsed_declaration" : "func updateLayout(in context : ListLayoutLayoutContext)", - "key.parsed_scope.end" : 456, - "key.parsed_scope.start" : 453, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableListLayout) -> (ListLayoutLayoutContext) -> ()", - "key.typeusr" : "$s2iny10ListableUI010ListLayoutE7ContextV_tcD", - "key.usr" : "s:10ListableUI15TableListLayoutC06updateE02inyAA0deE7ContextV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func layout(headerFooter: ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type>, width: CustomWidth<\/Type>, viewWidth: CGFloat<\/Type>, defaultWidth: CGFloat<\/Type>, contentBottom: CGFloat<\/Type>, after: (ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 21788 - } - ], - "key.bodylength" : 1272, - "key.bodyoffset" : 22067, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layout<\/decl.name>(headerFooter<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, viewWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, defaultWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentBottom<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, after<\/decl.var.parameter.argument_label>: (ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1544, - "key.line" : 458, - "key.modulename" : "ListableUI", - "key.name" : "layout(headerFooter:width:viewWidth:defaultWidth:contentBottom:after:)", - "key.namelength" : 264, - "key.nameoffset" : 21801, - "key.offset" : 21796, - "key.parsed_declaration" : "private func layout(\n headerFooter : ListLayoutContent.SupplementaryItemInfo,\n width : CustomWidth,\n viewWidth : CGFloat,\n defaultWidth : CGFloat,\n contentBottom : CGFloat,\n after : (ListLayoutContent.SupplementaryItemInfo) -> ()\n)", - "key.parsed_scope.end" : 505, - "key.parsed_scope.start" : 458, - "key.related_decls" : [ - { - "key.annotated_decl" : "layout(delegate:in:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let position: CustomWidth<\/Type>.Position<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> position<\/decl.name>: CustomWidth<\/ref.enum>.Position<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 108, - "key.line" : 466, - "key.modulename" : "ListableUI", - "key.name" : "position", - "key.namelength" : 8, - "key.nameoffset" : 22088, - "key.offset" : 22084, - "key.parsed_declaration" : "let position = width.position(\n with: viewWidth,\n defaultWidth: defaultWidth\n)", - "key.parsed_scope.end" : 466, - "key.parsed_scope.start" : 466, - "key.reusingastcontext" : false, - "key.typename" : "CustomWidth.Position", - "key.typeusr" : "$s10ListableUI11CustomWidthO8PositionVD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout33_E71D3D96C42690D19F7CD02522C562C9LL12headerFooter5width9viewWidth07defaultT013contentBottom5afteryAA0dE7ContentC21SupplementaryItemInfoC_AA06CustomT0O14CoreFoundation7CGFloatVA2TyAOXEtF8positionL_AQ8PositionVvp" - }, - { - "key.annotated_decl" : "let measureInfo: Sizing<\/Type>.MeasureInfo<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> measureInfo<\/decl.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 292, - "key.line" : 473, - "key.modulename" : "ListableUI", - "key.name" : "measureInfo", - "key.namelength" : 11, - "key.nameoffset" : 22276, - "key.offset" : 22272, - "key.parsed_declaration" : "let measureInfo = Sizing.MeasureInfo(\n sizeConstraint: self.direction.size(\n for: CGSize(\n width: position.width,\n height: .greatestFiniteMagnitude\n )\n ),\n direction: self.direction\n)", - "key.parsed_scope.end" : 473, - "key.parsed_scope.start" : 473, - "key.reusingastcontext" : false, - "key.typename" : "Sizing.MeasureInfo", - "key.typeusr" : "$s10ListableUI6SizingO11MeasureInfoVD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout33_E71D3D96C42690D19F7CD02522C562C9LL12headerFooter5width9viewWidth07defaultT013contentBottom5afteryAA0dE7ContentC21SupplementaryItemInfoC_AA06CustomT0O14CoreFoundation7CGFloatVA2TyAOXEtF11measureInfoL_AA6SizingO11MeasureInfoVvp" - }, - { - "key.annotated_decl" : "let size: CGSize<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 485, - "key.modulename" : "ListableUI", - "key.name" : "size", - "key.namelength" : 4, - "key.nameoffset" : 22631, - "key.offset" : 22627, - "key.parsed_declaration" : "let size = headerFooter.measurer(measureInfo)", - "key.parsed_scope.end" : 485, - "key.parsed_scope.start" : 485, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout33_E71D3D96C42690D19F7CD02522C562C9LL12headerFooter5width9viewWidth07defaultT013contentBottom5afteryAA0dE7ContentC21SupplementaryItemInfoC_AA06CustomT0O14CoreFoundation7CGFloatVA2TyAOXEtF4sizeL_So6CGSizeVvp" - } - ], - "key.typename" : "(TableListLayout) -> (ListLayoutContent.SupplementaryItemInfo, CustomWidth, CGFloat, CGFloat, CGFloat, (ListLayoutContent.SupplementaryItemInfo) -> ()) -> ()", - "key.typeusr" : "$s12headerFooter5width9viewWidth07defaultE013contentBottom5aftery10ListableUI17ListLayoutContentC21SupplementaryItemInfoC_AG06CustomE0O14CoreFoundation7CGFloatVA2PyAKXEtcD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout33_E71D3D96C42690D19F7CD02522C562C9LL12headerFooter5width9viewWidth07defaultT013contentBottom5afteryAA0dE7ContentC21SupplementaryItemInfoC_AA06CustomT0O14CoreFoundation7CGFloatVA2TyAOXEtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func layout(delegate: CollectionViewLayoutDelegate<\/Type>?, in context: ListLayoutLayoutContext<\/Type>) -> ListLayoutResult<\/Type><\/Declaration>", - "key.bodylength" : 12523, - "key.bodyoffset" : 23489, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layout<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutResult<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 12663, - "key.line" : 507, - "key.modulename" : "ListableUI", - "key.name" : "layout(delegate:in:)", - "key.namelength" : 108, - "key.nameoffset" : 23355, - "key.offset" : 23350, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" - } - ], - "key.parsed_declaration" : "func layout(\n delegate : CollectionViewLayoutDelegate?,\n in context : ListLayoutLayoutContext\n) -> ListLayoutResult", - "key.parsed_scope.end" : 837, - "key.parsed_scope.start" : 507, - "key.related_decls" : [ - { - "key.annotated_decl" : "layout(headerFooter:width:viewWidth:defaultWidth:contentBottom:after:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let bounds: ListContentBounds<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: ListContentBounds<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 512, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 23502, - "key.offset" : 23498, - "key.parsed_declaration" : "let bounds = self.resolvedBounds(in: context)", - "key.parsed_scope.end" : 512, - "key.parsed_scope.start" : 512, - "key.reusingastcontext" : false, - "key.typename" : "ListContentBounds", - "key.typeusr" : "$s10ListableUI17ListContentBoundsVD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF6boundsL_AA0D13ContentBoundsVvp" - }, - { - "key.annotated_decl" : "let layout: TableAppearance<\/Type>.Layout<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: TableAppearance<\/ref.struct>.Layout<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 41, - "key.line" : 514, - "key.modulename" : "ListableUI", - "key.name" : "layout", - "key.namelength" : 6, - "key.nameoffset" : 23565, - "key.offset" : 23561, - "key.parsed_declaration" : "let layout = self.layoutAppearance.layout", - "key.parsed_scope.end" : 514, - "key.parsed_scope.start" : 514, - "key.reusingastcontext" : false, - "key.typename" : "TableAppearance.Layout", - "key.typeusr" : "$s10ListableUI15TableAppearanceV6LayoutVD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtFADL_AA0C10AppearanceV0E0Vvp" - }, - { - "key.annotated_decl" : "let viewWidth: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 66, - "key.line" : 516, - "key.modulename" : "ListableUI", - "key.name" : "viewWidth", - "key.namelength" : 9, - "key.nameoffset" : 23624, - "key.offset" : 23620, - "key.parsed_declaration" : "let viewWidth = self.direction.width(for: context.viewBounds.size)", - "key.parsed_scope.end" : 516, - "key.parsed_scope.start" : 516, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF9viewWidthL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let rootWidth: CustomWidth<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rootWidth<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 390, - "key.line" : 518, - "key.modulename" : "ListableUI", - "key.name" : "rootWidth", - "key.namelength" : 9, - "key.nameoffset" : 23708, - "key.offset" : 23704, - "key.parsed_declaration" : "let rootWidth = CustomWidth.custom(.init(\n padding: self.direction.switch(\n vertical: HorizontalPadding(leading: bounds.padding.left, trailing: bounds.padding.right),\n horizontal: HorizontalPadding(leading: bounds.padding.top, trailing: bounds.padding.bottom)\n ),\n width: bounds.width,\n alignment: .center\n))", - "key.parsed_scope.end" : 518, - "key.parsed_scope.start" : 518, - "key.reusingastcontext" : false, - "key.typename" : "CustomWidth", - "key.typeusr" : "$s10ListableUI11CustomWidthOD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF9rootWidthL_AA06CustomO0Ovp" - }, - { - "key.annotated_decl" : "let defaultWidth: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> defaultWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 119, - "key.line" : 527, - "key.modulename" : "ListableUI", - "key.name" : "defaultWidth", - "key.namelength" : 12, - "key.nameoffset" : 24108, - "key.offset" : 24104, - "key.parsed_declaration" : "let defaultWidth = rootWidth.position(\n with: viewWidth,\n defaultWidth: viewWidth\n).width", - "key.parsed_scope.end" : 527, - "key.parsed_scope.start" : 527, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF12defaultWidthL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "var contentBottom: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Item positions are set and sent to the delegate first,\nin case the position affects the height calculation later in the layout pass.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentBottom<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 33, - "key.line" : 548, - "key.modulename" : "ListableUI", - "key.name" : "contentBottom", - "key.namelength" : 13, - "key.nameoffset" : 24641, - "key.offset" : 24637, - "key.parsed_declaration" : "var contentBottom : CGFloat = 0.0", - "key.parsed_scope.end" : 548, - "key.parsed_scope.start" : 548, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF13contentBottomL_14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : "(TableListLayout) -> ((any CollectionViewLayoutDelegate)?, ListLayoutLayoutContext) -> ListLayoutResult", - "key.typeusr" : "$s8delegate2in10ListableUI16ListLayoutResultVAC014CollectionViewF8Delegate_pSg_AC0efF7ContextVtcD", - "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inAA0dE6ResultVAA014CollectionViewE8Delegate_pSg_AA0deE7ContextVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func setItemPositions()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 36023 - } - ], - "key.bodylength" : 132, - "key.bodyoffset" : 36060, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setItemPositions<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 162, - "key.line" : 839, - "key.modulename" : "ListableUI", - "key.name" : "setItemPositions()", - "key.namelength" : 18, - "key.nameoffset" : 36036, - "key.offset" : 36031, - "key.parsed_declaration" : "private func setItemPositions()", - "key.parsed_scope.end" : 844, - "key.parsed_scope.start" : 839, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(TableListLayout) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI15TableListLayoutC16setItemPositions33_E71D3D96C42690D19F7CD02522C562C9LLyyF" - } - ], - "key.typename" : "TableListLayout.Type", - "key.typeusr" : "$s10ListableUI15TableListLayoutCmD", - "key.usr" : "s:10ListableUI15TableListLayoutC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "public final class SectionInfo<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 36198 - } - ], - "key.bodylength" : 2157, - "key.bodyoffset" : 36251, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SectionInfo<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2199, - "key.line" : 342, - "key.modulename" : "ListableUI", - "key.name" : "ListLayoutContent.SectionInfo", - "key.namelength" : 29, - "key.nameoffset" : 36220, - "key.offset" : 36210, - "key.parsed_declaration" : "fileprivate extension ListLayoutContent.SectionInfo", - "key.parsed_scope.end" : 911, - "key.parsed_scope.start" : 848, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "func setItemPositions(with appearance: TableAppearance<\/Type>)<\/Declaration>", - "key.bodylength" : 1195, - "key.bodyoffset" : 36318, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setItemPositions<\/decl.name>(with<\/decl.var.parameter.argument_label> appearance<\/decl.var.parameter.name>: TableAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1258, - "key.line" : 850, - "key.modulename" : "ListableUI", - "key.name" : "setItemPositions(with:)", - "key.namelength" : 51, - "key.nameoffset" : 36261, - "key.offset" : 36256, - "key.parsed_declaration" : "func setItemPositions(with appearance : TableAppearance)", - "key.parsed_scope.end" : 883, - "key.parsed_scope.start" : 850, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListLayoutContent.SectionInfo) -> (TableAppearance) -> ()", - "key.typeusr" : "$s4withy10ListableUI15TableAppearanceV_tcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC16setItemPositions33_E71D3D96C42690D19F7CD02522C562C9LL4withyAA15TableAppearanceV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private static func grouped(items: [ListLayoutContent<\/Type>.ItemInfo<\/Type>], groupingHeight: CGFloat<\/Type>, appearance: TableAppearance<\/Type>) -> [[ListLayoutContent<\/Type>.ItemInfo<\/Type>]]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 37524 - } - ], - "key.bodylength" : 721, - "key.bodyoffset" : 37685, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> grouped<\/decl.name>(items<\/decl.var.parameter.argument_label>: [ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>, groupingHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: TableAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [[ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]]<\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 875, - "key.line" : 885, - "key.modulename" : "ListableUI", - "key.name" : "grouped(items:groupingHeight:appearance:)", - "key.namelength" : 101, - "key.nameoffset" : 37544, - "key.offset" : 37532, - "key.parsed_declaration" : "private static func grouped(items : [ListLayoutContent.ItemInfo], groupingHeight : CGFloat, appearance : TableAppearance) -> [[ListLayoutContent.ItemInfo]]", - "key.parsed_scope.end" : 910, - "key.parsed_scope.start" : 885, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var all: [[ListLayoutContent<\/Type>.ItemInfo<\/Type>]]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [[ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 42, - "key.line" : 887, - "key.modulename" : "ListableUI", - "key.name" : "all", - "key.namelength" : 3, - "key.nameoffset" : 37698, - "key.offset" : 37694, - "key.parsed_declaration" : "var all = [[ListLayoutContent.ItemInfo]]()", - "key.parsed_scope.end" : 887, - "key.parsed_scope.start" : 887, - "key.related_decls" : [ - { - "key.annotated_decl" : "all(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "[[ListLayoutContent.ItemInfo]]", - "key.typeusr" : "$sSaySay10ListableUI17ListLayoutContentC8ItemInfoCGGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_E71D3D96C42690D19F7CD02522C562C9LL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_14CoreFoundation7CGFloatVAA15TableAppearanceVtFZ3allL_ANvp" - }, - { - "key.annotated_decl" : "var current: [ListLayoutContent<\/Type>.ItemInfo<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> current<\/decl.name>: [ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 44, - "key.line" : 888, - "key.modulename" : "ListableUI", - "key.name" : "current", - "key.namelength" : 7, - "key.nameoffset" : 37749, - "key.offset" : 37745, - "key.parsed_declaration" : "var current = [ListLayoutContent.ItemInfo]()", - "key.parsed_scope.end" : 888, - "key.parsed_scope.start" : 888, - "key.reusingastcontext" : false, - "key.typename" : "[ListLayoutContent.ItemInfo]", - "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC8ItemInfoCGD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_E71D3D96C42690D19F7CD02522C562C9LL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_14CoreFoundation7CGFloatVAA15TableAppearanceVtFZ7currentL_AMvp" - }, - { - "key.annotated_decl" : "var lastSpacing: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 31, - "key.line" : 890, - "key.modulename" : "ListableUI", - "key.name" : "lastSpacing", - "key.namelength" : 11, - "key.nameoffset" : 37811, - "key.offset" : 37807, - "key.parsed_declaration" : "var lastSpacing : CGFloat = 0.0", - "key.parsed_scope.end" : 890, - "key.parsed_scope.start" : 890, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_E71D3D96C42690D19F7CD02522C562C9LL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_14CoreFoundation7CGFloatVAA15TableAppearanceVtFZ11lastSpacingL_AQvp" - } - ], - "key.typename" : "(ListLayoutContent.SectionInfo.Type) -> ([ListLayoutContent.ItemInfo], CGFloat, TableAppearance) -> [[ListLayoutContent.ItemInfo]]", - "key.typeusr" : "$s5items14groupingHeight10appearanceSaySay10ListableUI17ListLayoutContentC8ItemInfoCGGAI_14CoreFoundation7CGFloatVAD15TableAppearanceVtcD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_E71D3D96C42690D19F7CD02522C562C9LL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_14CoreFoundation7CGFloatVAA15TableAppearanceVtFZ" - } - ], - "key.typename" : "ListLayoutContent.SectionInfo.Type", - "key.typeusr" : "$s10ListableUI17ListLayoutContentC11SectionInfoCmD", - "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@frozen @_eagerMove struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 38412 - } - ], - "key.bodylength" : 250, - "key.bodyoffset" : 38441, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An ordered, random-access collection.\n\nArrays are one of the most commonly used data types in an app. You use\narrays to organize your app's data. Specifically, you use the `Array` type\nto hold elements of a single type, the array's `Element` type. An array\ncan store any kind of elements---from integers to strings to classes.\n\nSwift makes it easy to create arrays in your code using an array literal:\nsimply surround a comma-separated list of values with square brackets.\nWithout any other information, Swift creates an array that includes the\nspecified values, automatically inferring the array's `Element` type. For\nexample:\n\n \/\/ An array of 'Int' elements\n let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]\n\n \/\/ An array of 'String' elements\n let streets = [\"Albemarle\", \"Brandywine\", \"Chesapeake\"]\n\nYou can create an empty array by specifying the `Element` type of your\narray in the declaration. For example:\n\n \/\/ Shortened forms are preferred\n var emptyDoubles: [Double] = []\n\n \/\/ The full type name is also allowed\n var emptyFloats: Array = Array()\n\nIf you need an array that is preinitialized with a fixed number of default\nvalues, use the `Array(repeating:count:)` initializer.\n\n var digitCounts = Array(repeating: 0, count: 10)\n print(digitCounts)\n \/\/ Prints \"[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\"\n\nAccessing Array Values\n======================\n\nWhen you need to perform an operation on all of an array's elements, use a\n`for`-`in` loop to iterate through the array's contents.\n\n for street in streets {\n print(\"I don't live on \\(street).\")\n }\n \/\/ Prints \"I don't live on Albemarle.\"\n \/\/ Prints \"I don't live on Brandywine.\"\n \/\/ Prints \"I don't live on Chesapeake.\"\n\nUse the `isEmpty` property to check quickly whether an array has any\nelements, or use the `count` property to find the number of elements in\nthe array.\n\n if oddNumbers.isEmpty {\n print(\"I don't know any odd numbers.\")\n } else {\n print(\"I know \\(oddNumbers.count) odd numbers.\")\n }\n \/\/ Prints \"I know 8 odd numbers.\"\n\nUse the `first` and `last` properties for safe access to the value of the\narray's first and last elements. If the array is empty, these properties\nare `nil`.\n\n if let firstElement = oddNumbers.first, let lastElement = oddNumbers.last {\n print(firstElement, lastElement, separator: \", \")\n }\n \/\/ Prints \"1, 15\"\n\n print(emptyDoubles.first, emptyDoubles.last, separator: \", \")\n \/\/ Prints \"nil, nil\"\n\nYou can access individual array elements through a subscript. The first\nelement of a nonempty array is always at index zero. You can subscript an\narray with any integer from zero up to, but not including, the count of\nthe array. Using a negative number or an index equal to or greater than\n`count` triggers a runtime error. For example:\n\n print(oddNumbers[0], oddNumbers[3], separator: \", \")\n \/\/ Prints \"1, 7\"\n\n print(emptyDoubles[0])\n \/\/ Triggers runtime error: Index out of range\n\nAdding and Removing Elements\n============================\n\nSuppose you need to store a list of the names of students that are signed\nup for a class you're teaching. During the registration period, you need\nto add and remove names as students add and drop the class.\n\n var students = [\"Ben\", \"Ivy\", \"Jordell\"]\n\nTo add single elements to the end of an array, use the `append(_:)` method.\nAdd multiple elements at the same time by passing another array or a\nsequence of any kind to the `append(contentsOf:)` method.\n\n students.append(\"Maxime\")\n students.append(contentsOf: [\"Shakia\", \"William\"])\n \/\/ [\"Ben\", \"Ivy\", \"Jordell\", \"Maxime\", \"Shakia\", \"William\"]\n\nYou can add new elements in the middle of an array by using the\n`insert(_:at:)` method for single elements and by using\n`insert(contentsOf:at:)` to insert multiple elements from another\ncollection or array literal. The elements at that index and later indices\nare shifted back to make room.\n\n students.insert(\"Liam\", at: 3)\n \/\/ [\"Ben\", \"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\", \"William\"]\n\nTo remove elements from an array, use the `remove(at:)`,\n`removeSubrange(_:)`, and `removeLast()` methods.\n\n \/\/ Ben's family is moving to another state\n students.remove(at: 0)\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\", \"William\"]\n\n \/\/ William is signing up for a different class\n students.removeLast()\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Maxime\", \"Shakia\"]\n\nYou can replace an existing element with a new value by assigning the new\nvalue to the subscript.\n\n if let i = students.firstIndex(of: \"Maxime\") {\n students[i] = \"Max\"\n }\n \/\/ [\"Ivy\", \"Jordell\", \"Liam\", \"Max\", \"Shakia\"]\n\nGrowing the Size of an Array\n----------------------------\n\nEvery array reserves a specific amount of memory to hold its contents. When\nyou add elements to an array and that array begins to exceed its reserved\ncapacity, the array allocates a larger region of memory and copies its\nelements into the new storage. The new storage is a multiple of the old\nstorage's size. This exponential growth strategy means that appending an\nelement happens in constant time, averaging the performance of many append\noperations. Append operations that trigger reallocation have a performance\ncost, but they occur less and less often as the array grows larger.\n\nIf you know approximately how many elements you will need to store, use the\n`reserveCapacity(_:)` method before appending to the array to avoid\nintermediate reallocations. Use the `capacity` and `count` properties to\ndetermine how many more elements the array can store without allocating\nlarger storage.\n\nFor arrays of most `Element` types, this storage is a contiguous block of\nmemory. For arrays with an `Element` type that is a class or `@objc`\nprotocol type, this storage can be a contiguous block of memory or an\ninstance of `NSArray`. Because any arbitrary subclass of `NSArray` can\nbecome an `Array`, there are no guarantees about representation or\nefficiency in this case.\n\nModifying Copies of Arrays\n==========================\n\nEach array has an independent value that includes the values of all of its\nelements. For simple types such as integers and other structures, this\nmeans that when you change a value in one array, the value of that element\ndoes not change in any copies of the array. For example:\n\n var numbers = [1, 2, 3, 4, 5]\n var numbersCopy = numbers\n numbers[0] = 100\n print(numbers)\n \/\/ Prints \"[100, 2, 3, 4, 5]\"\n print(numbersCopy)\n \/\/ Prints \"[1, 2, 3, 4, 5]\"\n\nIf the elements in an array are instances of a class, the semantics are the\nsame, though they might appear different at first. In this case, the\nvalues stored in the array are references to objects that live outside the\narray. If you change a reference to an object in one array, only that\narray has a reference to the new object. However, if two arrays contain\nreferences to the same object, you can observe changes to that object's\nproperties from both arrays. For example:\n\n \/\/ An integer type with reference semantics\n class IntegerReference {\n var value = 10\n }\n var firstIntegers = [IntegerReference(), IntegerReference()]\n var secondIntegers = firstIntegers\n\n \/\/ Modifications to an instance are visible from either array\n firstIntegers[0].value = 100\n print(secondIntegers[0].value)\n \/\/ Prints \"100\"\n\n \/\/ Replacements, additions, and removals are still visible\n \/\/ only in the modified array\n firstIntegers[0] = IntegerReference()\n print(firstIntegers[0].value)\n \/\/ Prints \"10\"\n print(secondIntegers[0].value)\n \/\/ Prints \"100\"\n\nArrays, like all variable-size collections in the standard library, use\ncopy-on-write optimization. Multiple copies of an array share the same\nstorage until you modify one of the copies. When that happens, the array\nbeing modified replaces its storage with a uniquely owned copy of itself,\nwhich is then modified in place. Optimizations are sometimes applied that\ncan reduce the amount of copying.\n\nThis means that if an array is sharing storage with other copies, the first\nmutating operation on that array incurs the cost of copying the array. An\narray that is the sole owner of its storage can perform mutating\noperations in place.\n\nIn the example below, a `numbers` array is created along with two copies\nthat share the same storage. When the original `numbers` array is\nmodified, it makes a unique copy of its storage before making the\nmodification. Further modifications to `numbers` are made in place, while\nthe two copies continue to share the original storage.\n\n var numbers = [1, 2, 3, 4, 5]\n var firstCopy = numbers\n var secondCopy = numbers\n\n \/\/ The storage for 'numbers' is copied here\n numbers[0] = 100\n numbers[1] = 200\n numbers[2] = 300\n \/\/ 'numbers' is [100, 200, 300, 4, 5]\n \/\/ 'firstCopy' and 'secondCopy' are [1, 2, 3, 4, 5]\n\nBridging Between Array and NSArray\n==================================\n\nWhen you need to access APIs that require data in an `NSArray` instance\ninstead of `Array`, use the type-cast operator (`as`) to bridge your\ninstance. For bridging to be possible, the `Element` type of your array\nmust be a class, an `@objc` protocol (a protocol imported from Objective-C\nor marked with the `@objc` attribute), or a type that bridges to a\nFoundation type.\n\nThe following example shows how you can bridge an `Array` instance to\n`NSArray` to use the `write(to:atomically:)` method. In this example, the\n`colors` array can be bridged to `NSArray` because the `colors` array's\n`String` elements bridge to `NSString`. The compiler prevents bridging the\n`moreColors` array, on the other hand, because its `Element` type is\n`Optional`, which does *not* bridge to a Foundation type.\n\n let colors = [\"periwinkle\", \"rose\", \"moss\"]\n let moreColors: [String?] = [\"ochre\", \"pine\"]\n\n let url = URL(fileURLWithPath: \"names.plist\")\n (colors as NSArray).write(to: url, atomically: true)\n \/\/ true\n\n (moreColors as NSArray).write(to: url, atomically: true)\n \/\/ error: cannot convert value of type '[String?]' to type 'NSArray'\n\nBridging from `Array` to `NSArray` takes O(1) time and O(1) space if the\narray's elements are already instances of a class or an `@objc` protocol;\notherwise, it takes O(*n*) time and space.\n\nWhen the destination array's element type is a class or an `@objc`\nprotocol, bridging from `NSArray` to `Array` first calls the `copy(with:)`\n(`- copyWithZone:` in Objective-C) method on the array to get an immutable\ncopy and then performs additional Swift bookkeeping work that takes O(1)\ntime. For instances of `NSArray` that are already immutable, `copy(with:)`\nusually returns the same array in O(1) time; otherwise, the copying\nperformance is unspecified. If `copy(with:)` returns the same array, the\ninstances of `NSArray` and `Array` share storage using the same\ncopy-on-write optimization that is used when two instances of `Array`\nshare storage.\n\nWhen the destination array's element type is a nonclass type that bridges\nto a Foundation type, bridging from `NSArray` to `Array` performs a\nbridging copy of the elements to contiguous storage in O(*n*) time. For\nexample, bridging from `NSArray` to `Array` performs such a copy. No\nfurther bridging is required when accessing elements of the `Array`\ninstance.\n\n- Note: The `ContiguousArray` and `ArraySlice` types are not bridged;\n instances of those types always have a contiguous block of memory as\n their storage.", - "key.doc.declaration" : "@frozen struct Array : _DestructorSafeContainer", - "key.doc.discussion" : [ - { - "Para" : "Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the `Array` type to hold elements of a single type, the array’s `Element` type. An array can store any kind of elements—from integers to strings to classes." - }, - { - "Para" : "Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s `Element` type. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can create an empty array by specifying the `Element` type of your array in the declaration. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If you need an array that is preinitialized with a fixed number of default values, use the `Array(repeating:count:)` initializer." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When you need to perform an operation on all of an array’s elements, use a `for`-`in` loop to iterate through the array’s contents." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Use the `isEmpty` property to check quickly whether an array has any elements, or use the `count` property to find the number of elements in the array." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Use the `first` and `last` properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are `nil`." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than `count` triggers a runtime error. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To add single elements to the end of an array, use the `append(_:)` method. Add multiple elements at the same time by passing another array or a sequence of any kind to the `append(contentsOf:)` method." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can add new elements in the middle of an array by using the `insert(_:at:)` method for single elements and by using `insert(contentsOf:at:)` to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room." - }, - { - "CodeListing" : "" - }, - { - "Para" : "To remove elements from an array, use the `remove(at:)`, `removeSubrange(_:)`, and `removeLast()` methods." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can replace an existing element with a new value by assigning the new value to the subscript." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger." - }, - { - "Para" : "If you know approximately how many elements you will need to store, use the `reserveCapacity(_:)` method before appending to the array to avoid intermediate reallocations. Use the `capacity` and `count` properties to determine how many more elements the array can store without allocating larger storage." - }, - { - "Para" : "For arrays of most `Element` types, this storage is a contiguous block of memory. For arrays with an `Element` type that is a class or `@objc` protocol type, this storage can be a contiguous block of memory or an instance of `NSArray`. Because any arbitrary subclass of `NSArray` can become an `Array`, there are no guarantees about representation or efficiency in this case." - }, - { - "Para" : "Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying." - }, - { - "Para" : "This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place." - }, - { - "Para" : "In the example below, a `numbers` array is created along with two copies that share the same storage. When the original `numbers` array is modified, it makes a unique copy of its storage before making the modification. Further modifications to `numbers` are made in place, while the two copies continue to share the original storage." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When you need to access APIs that require data in an `NSArray` instance instead of `Array`, use the type-cast operator (`as`) to bridge your instance. For bridging to be possible, the `Element` type of your array must be a class, an `@objc` protocol (a protocol imported from Objective-C or marked with the `@objc` attribute), or a type that bridges to a Foundation type." - }, - { - "Para" : "The following example shows how you can bridge an `Array` instance to `NSArray` to use the `write(to:atomically:)` method. In this example, the `colors` array can be bridged to `NSArray` because the `colors` array’s `String` elements bridge to `NSString`. The compiler prevents bridging the `moreColors` array, on the other hand, because its `Element` type is `Optional`, which does bridge to a Foundation type." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Bridging from `Array` to `NSArray` takes O(1) time and O(1) space if the array’s elements are already instances of a class or an `@objc` protocol; otherwise, it takes O() time and space." - }, - { - "Para" : "When the destination array’s element type is a class or an `@objc` protocol, bridging from `NSArray` to `Array` first calls the `copy(with:)` (`- copyWithZone:` in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of `NSArray` that are already immutable, `copy(with:)` usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If `copy(with:)` returns the same array, the instances of `NSArray` and `Array` share storage using the same copy-on-write optimization that is used when two instances of `Array` share storage." - }, - { - "Para" : "When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from `NSArray` to `Array` performs a bridging copy of the elements to contiguous storage in O() time. For example, bridging from `NSArray` to `Array` performs such a copy. No further bridging is required when accessing elements of the `Array` instance." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element> : _DestructorSafeContainer<\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>", - "key.doc.name" : "Array", - "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>", - "key.groupname" : "Collection\/Array", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 268, - "key.modulename" : "Swift", - "key.name" : "Array", - "key.namelength" : 5, - "key.nameoffset" : 38434, - "key.offset" : 38424, - "key.parsed_declaration" : "fileprivate extension Array", - "key.parsed_scope.end" : 925, - "key.parsed_scope.start" : 914, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "mutating func safeDropFirst(_ count: Int<\/Type>) -> [Element<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 38446 - } - ], - "key.bodylength" : 182, - "key.bodyoffset" : 38507, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> safeDropFirst<\/decl.name>(_<\/decl.var.parameter.argument_label> count<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Element<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 235, - "key.line" : 916, - "key.modulename" : "ListableUI", - "key.name" : "safeDropFirst(_:)", - "key.namelength" : 28, - "key.nameoffset" : 38460, - "key.offset" : 38455, - "key.parsed_declaration" : "mutating func safeDropFirst(_ count : Int) -> [Element]", - "key.parsed_scope.end" : 924, - "key.parsed_scope.start" : 916, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let safeCount: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 44, - "key.line" : 918, - "key.modulename" : "ListableUI", - "key.name" : "safeCount", - "key.namelength" : 9, - "key.nameoffset" : 38520, - "key.offset" : 38516, - "key.parsed_declaration" : "let safeCount = Swift.min(self.count, count)", - "key.parsed_scope.end" : 918, - "key.parsed_scope.start" : 918, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_E71D3D96C42690D19F7CD02522C562C9LLySayxGSiF0C5CountL_Sivp" - }, - { - "key.annotated_decl" : "let values: ArraySlice<\/Type><Element<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> values<\/decl.name>: ArraySlice<\/ref.struct><Element<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 32, - "key.line" : 919, - "key.modulename" : "ListableUI", - "key.name" : "values", - "key.namelength" : 6, - "key.nameoffset" : 38573, - "key.offset" : 38569, - "key.parsed_declaration" : "let values = self[0..", - "key.typeusr" : "$ss10ArraySliceVyxGD", - "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_E71D3D96C42690D19F7CD02522C562C9LLySayxGSiF6valuesL_s10ArraySliceVyxGvp" - } - ], - "key.typename" : " (inout Array) -> (Int) -> [Element]", - "key.typeusr" : "$sySayxGSicD", - "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_E71D3D96C42690D19F7CD02522C562C9LLySayxGSiF" - } - ], - "key.typename" : "Array.Type", - "key.typeusr" : "$sSayxGmD", - "key.usr" : "s:Sa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate func performLayout<Input>(for input: Input<\/Type>, _ block: (Input<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 38695 - } - ], - "key.bodylength" : 18, - "key.bodyoffset" : 38778, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performLayout<\/decl.name><Input<\/decl.generic_type_param.name><\/decl.generic_type_param>>(for<\/decl.var.parameter.argument_label> input<\/decl.var.parameter.name>: Input<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Input<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 90, - "key.line" : 928, - "key.modulename" : "ListableUI", - "key.name" : "performLayout(for:_:)", - "key.namelength" : 64, - "key.nameoffset" : 38712, - "key.offset" : 38707, - "key.parsed_declaration" : "fileprivate func performLayout(for input : Input, _ block : (Input) -> ())", - "key.parsed_scope.end" : 931, - "key.parsed_scope.start" : 928, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Input<\/Declaration>", - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift", - "key.fully_annotated_decl" : "Input<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 928, - "key.modulename" : "ListableUI", - "key.name" : "Input", - "key.namelength" : 5, - "key.nameoffset" : 38726, - "key.offset" : 38726, - "key.parsed_declaration" : "fileprivate func performLayout (for: Input, (Input) -> ()) -> ()", - "key.typeusr" : "$s3for_yx_yxXEtcluD", - "key.usr" : "s:10ListableUI13performLayout33_E71D3D96C42690D19F7CD02522C562C9LL3for_yx_yxXEtlF" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 8479, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum LayoutDirection : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1560 - } - ], - "key.bodylength" : 1056, - "key.bodyoffset" : 1600, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the given direction \/ axis that a layout uses when flowing its content.\n\nTraditional table views \/ lists you see use a `.vertical` layout direction, however,\nyou may want to use `.horizontal` for embedded lists that scroll\nhorizontally in a larger vertical list, similar to what you would see in the iOS App Store,\nor for a list that users can scroll left to right.\n```\n.vertical:\n┌─────────┐\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n└─────────┘\n\n.horizontal:\n┌────────────────────┐\n│┌────┐ ┌────┐ ┌────┐│\n││ │ │ │ │ ││\n││ │ │ │ │ ││\n│└────┘ └────┘ └────┘│\n└────────────────────┘\n```\nWhen writing custom list layouts, `LayoutDirection` provides many helper methods\nto convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical\nlayout directions. See the extensions in this file for more details.\n", - "key.doc.column" : 13, - "key.doc.comment" : "\nDescribes the given direction \/ axis that a layout uses when flowing its content.\n\nTraditional table views \/ lists you see use a `.vertical` layout direction, however,\nyou may want to use `.horizontal` for embedded lists that scroll\nhorizontally in a larger vertical list, similar to what you would see in the iOS App Store,\nor for a list that users can scroll left to right.\n```\n.vertical:\n┌─────────┐\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n└─────────┘\n\n.horizontal:\n┌────────────────────┐\n│┌────┐ ┌────┐ ┌────┐│\n││ │ │ │ │ ││\n││ │ │ │ │ ││\n│└────┘ └────┘ └────┘│\n└────────────────────┘\n```\nWhen writing custom list layouts, `LayoutDirection` provides many helper methods\nto convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical\nlayout directions. See the extensions in this file for more details.", - "key.doc.declaration" : "public enum LayoutDirection : Hashable", - "key.doc.discussion" : [ - { - "Para" : "Traditional table views \/ lists you see use a `.vertical` layout direction, however, you may want to use `.horizontal` for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When writing custom list layouts, `LayoutDirection` provides many helper methods to convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical layout directions. See the extensions in this file for more details." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "LayoutDirection<\/Name>s:10ListableUI15LayoutDirectionO<\/USR>public enum LayoutDirection : Hashable<\/Declaration>Describes the given direction \/ axis that a layout uses when flowing its content.<\/Para><\/Abstract>Traditional table views \/ lists you see use a .vertical<\/codeVoice> layout direction, however, you may want to use .horizontal<\/codeVoice> for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>When writing custom list layouts, LayoutDirection<\/codeVoice> provides many helper methods to convert the coordinates of CGSize<\/codeVoice>, CGPoint<\/codeVoice>, CGRect<\/codeVoice>, etc, to horizontal or vertical layout directions. See the extensions in this file for more details.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 44, - "key.doc.name" : "LayoutDirection", - "key.doc.type" : "Other", - "key.doclength" : 1451, - "key.docoffset" : 109, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 1590 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> LayoutDirection<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1090, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDirection", - "key.namelength" : 15, - "key.nameoffset" : 1572, - "key.offset" : 1567, - "key.parsed_declaration" : "public enum LayoutDirection : Hashable", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 2101, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case vertical<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A list layout which lays out top to bottom.\n```\n┌─────────┐\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n└─────────┘\n```", - "key.doc.column" : 10, - "key.doc.comment" : "A list layout which lays out top to bottom.\n```\n┌─────────┐\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n└─────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "vertical<\/Name>s:10ListableUI15LayoutDirectionO8verticalyA2CmF<\/USR><\/Declaration>A list layout which lays out top to bottom.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 60, - "key.doc.name" : "vertical", - "key.doc.type" : "Other", - "key.doclength" : 492, - "key.docoffset" : 1605, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> vertical<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "vertical", - "key.namelength" : 8, - "key.nameoffset" : 2106, - "key.offset" : 2106, - "key.parsed_declaration" : "case vertical", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.typename" : "(LayoutDirection.Type) -> LayoutDirection", - "key.typeusr" : "$sy10ListableUI15LayoutDirectionOACmcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO8verticalyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 15, - "key.offset" : 2640, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case horizontal<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A list layout which lays out left to right (or leading to trailing, depending on implementation).\n```\n┌────────────────────┐\n│┌────┐ ┌────┐ ┌────┐│\n││ │ │ │ │ ││\n││ │ │ │ │ ││\n│└────┘ └────┘ └────┘│\n└────────────────────┘\n```", - "key.doc.column" : 10, - "key.doc.comment" : "A list layout which lays out left to right (or leading to trailing, depending on implementation).\n```\n┌────────────────────┐\n│┌────┐ ┌────┐ ┌────┐│\n││ │ │ │ │ ││\n││ │ │ │ │ ││\n│└────┘ └────┘ └────┘│\n└────────────────────┘\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "horizontal<\/Name>s:10ListableUI15LayoutDirectionO10horizontalyA2CmF<\/USR><\/Declaration>A list layout which lays out left to right (or leading to trailing, depending on implementation).<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 71, - "key.doc.name" : "horizontal", - "key.doc.type" : "Other", - "key.doclength" : 512, - "key.docoffset" : 2124, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> horizontal<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 10, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "horizontal", - "key.namelength" : 10, - "key.nameoffset" : 2645, - "key.offset" : 2645, - "key.parsed_declaration" : "case horizontal", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 71, - "key.reusingastcontext" : false, - "key.typename" : "(LayoutDirection.Type) -> LayoutDirection", - "key.typeusr" : "$sy10ListableUI15LayoutDirectionOACmcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO10horizontalyA2CmF" - } - ] - } - ], - "key.typename" : "LayoutDirection.Type", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOmD", - "key.usr" : "s:10ListableUI15LayoutDirectionO" - }, - { - "key.annotated_decl" : "public enum LayoutDirection : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 1840, - "key.bodyoffset" : 2687, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the given direction \/ axis that a layout uses when flowing its content.\n\nTraditional table views \/ lists you see use a `.vertical` layout direction, however,\nyou may want to use `.horizontal` for embedded lists that scroll\nhorizontally in a larger vertical list, similar to what you would see in the iOS App Store,\nor for a list that users can scroll left to right.\n```\n.vertical:\n┌─────────┐\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n└─────────┘\n\n.horizontal:\n┌────────────────────┐\n│┌────┐ ┌────┐ ┌────┐│\n││ │ │ │ │ ││\n││ │ │ │ │ ││\n│└────┘ └────┘ └────┘│\n└────────────────────┘\n```\nWhen writing custom list layouts, `LayoutDirection` provides many helper methods\nto convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical\nlayout directions. See the extensions in this file for more details.\n", - "key.doc.column" : 13, - "key.doc.declaration" : "public enum LayoutDirection : Hashable", - "key.doc.discussion" : [ - { - "Para" : "Traditional table views \/ lists you see use a `.vertical` layout direction, however, you may want to use `.horizontal` for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When writing custom list layouts, `LayoutDirection` provides many helper methods to convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical layout directions. See the extensions in this file for more details." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "LayoutDirection<\/Name>s:10ListableUI15LayoutDirectionO<\/USR>public enum LayoutDirection : Hashable<\/Declaration>Describes the given direction \/ axis that a layout uses when flowing its content.<\/Para><\/Abstract>Traditional table views \/ lists you see use a .vertical<\/codeVoice> layout direction, however, you may want to use .horizontal<\/codeVoice> for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>When writing custom list layouts, LayoutDirection<\/codeVoice> provides many helper methods to convert the coordinates of CGSize<\/codeVoice>, CGPoint<\/codeVoice>, CGRect<\/codeVoice>, etc, to horizontal or vertical layout directions. See the extensions in this file for more details.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 44, - "key.doc.name" : "LayoutDirection", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> LayoutDirection<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1868, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDirection", - "key.namelength" : 15, - "key.nameoffset" : 2670, - "key.offset" : 2660, - "key.parsed_declaration" : "extension LayoutDirection", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 75, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func `switch`<Value>(vertical: () -> Value<\/Type>, horizontal: () -> Value<\/Type>) -> Value<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2880 - } - ], - "key.bodylength" : 125, - "key.bodyoffset" : 2968, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When writing a layout, use this method to return differing values based on\nthe direction. The passed closures will only be evaluated if they are for the current direction.", - "key.doc.column" : 17, - "key.doc.comment" : "When writing a layout, use this method to return differing values based on\nthe direction. The passed closures will only be evaluated if they are for the current direction.", - "key.doc.declaration" : "public func `switch`(vertical: () -> Value, horizontal: () -> Value) -> Value", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "switch(vertical:horizontal:)<\/Name>s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXE_xyXEtlF<\/USR>public func `switch`<Value>(vertical: () -> Value, horizontal: () -> Value) -> Value<\/Declaration>When writing a layout, use this method to return differing values based on the direction. The passed closures will only be evaluated if they are for the current direction.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 79, - "key.doc.name" : "switch(vertical:horizontal:)", - "key.doc.type" : "Function", - "key.doclength" : 184, - "key.docoffset" : 2692, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> `switch`<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(vertical<\/decl.var.parameter.argument_label>: () -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, horizontal<\/decl.var.parameter.argument_label>: () -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 207, - "key.line" : 79, - "key.modulename" : "ListableUI", - "key.name" : "switch(vertical:horizontal:)", - "key.namelength" : 65, - "key.nameoffset" : 2892, - "key.offset" : 2887, - "key.parsed_declaration" : "public func `switch`(vertical : () -> Value, horizontal : () -> Value) -> Value", - "key.parsed_scope.end" : 84, - "key.parsed_scope.start" : 79, - "key.related_decls" : [ - { - "key.annotated_decl" : "`switch`<Value>(vertical: @autoclosure () -> Value, horizontal: @autoclosure () -> Value) -> Value<\/RelatedName>" - }, - { - "key.annotated_decl" : "`switch`(vertical: () -> (), horizontal: () -> ())<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value<\/Declaration>", - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 79, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 2901, - "key.offset" : 2901, - "key.parsed_declaration" : "public func `switch` (LayoutDirection) -> (() -> Value, () -> Value) -> Value", - "key.typeusr" : "$s8vertical10horizontalxxyXE_xyXEtcluD", - "key.usr" : "s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXE_xyXEtlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func `switch`<Value>(vertical: @autoclosure () -> Value<\/Type>, horizontal: @autoclosure () -> Value<\/Type>) -> Value<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3296 - } - ], - "key.bodylength" : 125, - "key.bodyoffset" : 3410, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When writing a layout, use this method to return differing values based on\nthe direction. The passed autoclosures will only be evaluated if they are for the current direction.", - "key.doc.column" : 17, - "key.doc.comment" : "When writing a layout, use this method to return differing values based on\nthe direction. The passed autoclosures will only be evaluated if they are for the current direction.", - "key.doc.declaration" : "public func `switch`(vertical: @autoclosure () -> Value, horizontal: @autoclosure () -> Value) -> Value", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "switch(vertical:horizontal:)<\/Name>s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXK_xyXKtlF<\/USR>public func `switch`<Value>(vertical: @autoclosure () -> Value, horizontal: @autoclosure () -> Value) -> Value<\/Declaration>When writing a layout, use this method to return differing values based on the direction. The passed autoclosures will only be evaluated if they are for the current direction.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 88, - "key.doc.name" : "switch(vertical:horizontal:)", - "key.doc.type" : "Function", - "key.doclength" : 188, - "key.docoffset" : 3104, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> `switch`<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(vertical<\/decl.var.parameter.argument_label>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, horizontal<\/decl.var.parameter.argument_label>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 233, - "key.line" : 88, - "key.modulename" : "ListableUI", - "key.name" : "switch(vertical:horizontal:)", - "key.namelength" : 91, - "key.nameoffset" : 3308, - "key.offset" : 3303, - "key.parsed_declaration" : "public func `switch`(vertical : @autoclosure () -> Value, horizontal : @autoclosure () -> Value) -> Value", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 88, - "key.related_decls" : [ - { - "key.annotated_decl" : "`switch`<Value>(vertical: () -> Value, horizontal: () -> Value) -> Value<\/RelatedName>" - }, - { - "key.annotated_decl" : "`switch`(vertical: () -> (), horizontal: () -> ())<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value<\/Declaration>", - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 88, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 3317, - "key.offset" : 3317, - "key.parsed_declaration" : "public func `switch` (LayoutDirection) -> (@autoclosure () -> Value, @autoclosure () -> Value) -> Value", - "key.typeusr" : "$s8vertical10horizontalxxyXK_xyXKtcluD", - "key.usr" : "s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXK_xyXKtlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func `switch`(vertical: () -> (), horizontal: () -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3740 - } - ], - "key.bodylength" : 111, - "key.bodyoffset" : 3806, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "When writing a layout, use this method to perform differing actions based on\nthe direction. The passed autoclosures will only be evaluated if they are for the current direction.", - "key.doc.column" : 17, - "key.doc.comment" : "When writing a layout, use this method to perform differing actions based on\nthe direction. The passed autoclosures will only be evaluated if they are for the current direction.", - "key.doc.declaration" : "public func `switch`(vertical: () -> (), horizontal: () -> ())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "switch(vertical:horizontal:)<\/Name>s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalyyyXE_yyXEtF<\/USR>public func `switch`(vertical: () -> (), horizontal: () -> ())<\/Declaration>When writing a layout, use this method to perform differing actions based on the direction. The passed autoclosures will only be evaluated if they are for the current direction.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 97, - "key.doc.name" : "switch(vertical:horizontal:)", - "key.doc.type" : "Function", - "key.doclength" : 190, - "key.docoffset" : 3546, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> `switch`<\/decl.name>(vertical<\/decl.var.parameter.argument_label>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, horizontal<\/decl.var.parameter.argument_label>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 171, - "key.line" : 97, - "key.modulename" : "ListableUI", - "key.name" : "switch(vertical:horizontal:)", - "key.namelength" : 52, - "key.nameoffset" : 3752, - "key.offset" : 3747, - "key.parsed_declaration" : "public func `switch`(vertical : () -> (), horizontal : () -> ())", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 97, - "key.related_decls" : [ - { - "key.annotated_decl" : "`switch`<Value>(vertical: () -> Value, horizontal: () -> Value) -> Value<\/RelatedName>" - }, - { - "key.annotated_decl" : "`switch`<Value>(vertical: @autoclosure () -> Value, horizontal: @autoclosure () -> Value) -> Value<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (() -> (), () -> ()) -> ()", - "key.typeusr" : "$s8vertical10horizontalyyyXE_yyXEtcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalyyyXE_yyXEtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func mutate<Root, Value>(_ root: Root<\/Type>, vertical: ReferenceWritableKeyPath<\/Type><Root<\/Type>, Value<\/Type>>, horizontal: ReferenceWritableKeyPath<\/Type><Root<\/Type>, Value<\/Type>>, mutate: (inout Value<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3928 - } - ], - "key.bodylength" : 381, - "key.bodyoffset" : 4144, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> mutate<\/decl.name><Root<\/decl.generic_type_param.name><\/decl.generic_type_param>, Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> root<\/decl.var.parameter.name>: Root<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, vertical<\/decl.var.parameter.argument_label>: ReferenceWritableKeyPath<\/ref.class><Root<\/ref.generic_type_param>, Value<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, horizontal<\/decl.var.parameter.argument_label>: ReferenceWritableKeyPath<\/ref.class><Root<\/ref.generic_type_param>, Value<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, mutate<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 591, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "mutate(_:vertical:horizontal:mutate:)", - "key.namelength" : 202, - "key.nameoffset" : 3940, - "key.offset" : 3935, - "key.parsed_declaration" : "public func mutate(\n _ root : Root,\n vertical: ReferenceWritableKeyPath,\n horizontal: ReferenceWritableKeyPath,\n mutate : (inout Value) -> ()\n)", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 104, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Root<\/Declaration>", - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "Root<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 4, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "Root", - "key.namelength" : 4, - "key.nameoffset" : 3947, - "key.offset" : 3947, - "key.parsed_declaration" : "public func mutateValue<\/Declaration>", - "key.column" : 30, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 3953, - "key.offset" : 3953, - "key.parsed_declaration" : "public func mutate (LayoutDirection) -> (Root, ReferenceWritableKeyPath, ReferenceWritableKeyPath, (inout Value) -> ()) -> ()", - "key.typeusr" : "$s_8vertical10horizontal6mutateyx_s24ReferenceWritableKeyPathCyxq_GAFyq_zXEtcr0_luD", - "key.usr" : "s:10ListableUI15LayoutDirectionO6mutate_8vertical10horizontalADyx_s24ReferenceWritableKeyPathCyxq_GAIyq_zXEtr0_lF" - } - ], - "key.typename" : "LayoutDirection.Type", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOmD", - "key.usr" : "s:10ListableUI15LayoutDirectionO" - }, - { - "key.annotated_decl" : "public enum LayoutDirection : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 3919, - "key.bodyoffset" : 4558, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the given direction \/ axis that a layout uses when flowing its content.\n\nTraditional table views \/ lists you see use a `.vertical` layout direction, however,\nyou may want to use `.horizontal` for embedded lists that scroll\nhorizontally in a larger vertical list, similar to what you would see in the iOS App Store,\nor for a list that users can scroll left to right.\n```\n.vertical:\n┌─────────┐\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n│┌───────┐│\n││ ││\n│└───────┘│\n└─────────┘\n\n.horizontal:\n┌────────────────────┐\n│┌────┐ ┌────┐ ┌────┐│\n││ │ │ │ │ ││\n││ │ │ │ │ ││\n│└────┘ └────┘ └────┘│\n└────────────────────┘\n```\nWhen writing custom list layouts, `LayoutDirection` provides many helper methods\nto convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical\nlayout directions. See the extensions in this file for more details.\n", - "key.doc.column" : 13, - "key.doc.declaration" : "public enum LayoutDirection : Hashable", - "key.doc.discussion" : [ - { - "Para" : "Traditional table views \/ lists you see use a `.vertical` layout direction, however, you may want to use `.horizontal` for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right." - }, - { - "CodeListing" : "" - }, - { - "Para" : "When writing custom list layouts, `LayoutDirection` provides many helper methods to convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical layout directions. See the extensions in this file for more details." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "LayoutDirection<\/Name>s:10ListableUI15LayoutDirectionO<\/USR>public enum LayoutDirection : Hashable<\/Declaration>Describes the given direction \/ axis that a layout uses when flowing its content.<\/Para><\/Abstract>Traditional table views \/ lists you see use a .vertical<\/codeVoice> layout direction, however, you may want to use .horizontal<\/codeVoice> for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>When writing custom list layouts, LayoutDirection<\/codeVoice> provides many helper methods to convert the coordinates of CGSize<\/codeVoice>, CGPoint<\/codeVoice>, CGRect<\/codeVoice>, etc, to horizontal or vertical layout directions. See the extensions in this file for more details.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 44, - "key.doc.name" : "LayoutDirection", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> LayoutDirection<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 3947, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "LayoutDirection", - "key.namelength" : 15, - "key.nameoffset" : 4541, - "key.offset" : 4531, - "key.parsed_declaration" : "extension LayoutDirection", - "key.parsed_scope.end" : 251, - "key.parsed_scope.start" : 126, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 31, - "key.name" : "MARK: Creating & Reading Values", - "key.offset" : 4573 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func height(for size: CGSize<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4754 - } - ], - "key.bodylength" : 124, - "key.bodyoffset" : 4808, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the **height** of the provided size.\n`.horizontal`: Returns the **width** of the provided size.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the **height** of the provided size.\n`.horizontal`: Returns the **width** of the provided size.", - "key.doc.declaration" : "public func height(for size: CGSize) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "height(for:)<\/Name>s:10ListableUI15LayoutDirectionO6height3for14CoreFoundation7CGFloatVSo6CGSizeV_tF<\/USR>public func height(for size: CGSize) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the height<\/bold> of the provided size. .horizontal<\/codeVoice>: Returns the width<\/bold> of the provided size.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 134, - "key.doc.name" : "height(for:)", - "key.doc.type" : "Function", - "key.doclength" : 129, - "key.docoffset" : 4621, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> height<\/decl.name>(for<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 172, - "key.line" : 134, - "key.modulename" : "ListableUI", - "key.name" : "height(for:)", - "key.namelength" : 25, - "key.nameoffset" : 4766, - "key.offset" : 4761, - "key.parsed_declaration" : "public func height(for size : CGSize) -> CGFloat", - "key.parsed_scope.end" : 140, - "key.parsed_scope.start" : 134, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGSize) -> CGFloat", - "key.typeusr" : "$s3for14CoreFoundation7CGFloatVSo6CGSizeV_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO6height3for14CoreFoundation7CGFloatVSo6CGSizeV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func width(for size: CGSize<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5076 - } - ], - "key.bodylength" : 124, - "key.bodyoffset" : 5129, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the **width** of the provided size.\n`.horizontal`: Returns the **height** of the provided size.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the **width** of the provided size.\n`.horizontal`: Returns the **height** of the provided size.", - "key.doc.declaration" : "public func width(for size: CGSize) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "width(for:)<\/Name>s:10ListableUI15LayoutDirectionO5width3for14CoreFoundation7CGFloatVSo6CGSizeV_tF<\/USR>public func width(for size: CGSize) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the width<\/bold> of the provided size. .horizontal<\/codeVoice>: Returns the height<\/bold> of the provided size.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 144, - "key.doc.name" : "width(for:)", - "key.doc.type" : "Function", - "key.doclength" : 129, - "key.docoffset" : 4943, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> width<\/decl.name>(for<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 171, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "width(for:)", - "key.namelength" : 24, - "key.nameoffset" : 5088, - "key.offset" : 5083, - "key.parsed_declaration" : "public func width(for size : CGSize) -> CGFloat", - "key.parsed_scope.end" : 150, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGSize) -> CGFloat", - "key.typeusr" : "$s3for14CoreFoundation7CGFloatVSo6CGSizeV_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO5width3for14CoreFoundation7CGFloatVSo6CGSizeV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func point(x: CGFloat<\/Type>, y: CGFloat<\/Type>) -> CGPoint<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5388 - } - ], - "key.bodylength" : 141, - "key.bodyoffset" : 5448, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns a `CGPoint` made with `(x, y)`.\n`.horizontal`: Returns a `CGPoint` made with `(y, x)`.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns a `CGPoint` made with `(x, y)`.\n`.horizontal`: Returns a `CGPoint` made with `(y, x)`.", - "key.doc.declaration" : "public func point(x: CGFloat, y: CGFloat) -> CGPoint", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "point(x:y:)<\/Name>s:10ListableUI15LayoutDirectionO5point1x1ySo7CGPointV14CoreFoundation7CGFloatV_AKtF<\/USR>public func point(x: CGFloat, y: CGFloat) -> CGPoint<\/Declaration>.vertical<\/codeVoice>: Returns a CGPoint<\/codeVoice> made with (x, y)<\/codeVoice>. .horizontal<\/codeVoice>: Returns a CGPoint<\/codeVoice> made with (y, x)<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 154, - "key.doc.name" : "point(x:y:)", - "key.doc.type" : "Function", - "key.doclength" : 120, - "key.docoffset" : 5264, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> point<\/decl.name>(x<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, y<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGPoint<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 195, - "key.line" : 154, - "key.modulename" : "ListableUI", - "key.name" : "point(x:y:)", - "key.namelength" : 31, - "key.nameoffset" : 5400, - "key.offset" : 5395, - "key.parsed_declaration" : "public func point(x : CGFloat, y : CGFloat) -> CGPoint", - "key.parsed_scope.end" : 160, - "key.parsed_scope.start" : 154, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGFloat, CGFloat) -> CGPoint", - "key.typeusr" : "$s1x1ySo7CGPointV14CoreFoundation7CGFloatV_AGtcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO5point1x1ySo7CGPointV14CoreFoundation7CGFloatV_AKtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func size(for size: CGSize<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5728 - } - ], - "key.bodylength" : 195, - "key.bodyoffset" : 5779, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the provided size.\n`.horizontal`: Returns a size created by swapping the width and height.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the provided size.\n`.horizontal`: Returns a size created by swapping the width and height.", - "key.doc.declaration" : "public func size(for size: CGSize) -> CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "size(for:)<\/Name>s:10ListableUI15LayoutDirectionO4size3forSo6CGSizeVAG_tF<\/USR>public func size(for size: CGSize) -> CGSize<\/Declaration>.vertical<\/codeVoice>: Returns the provided size. .horizontal<\/codeVoice>: Returns a size created by swapping the width and height.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 164, - "key.doc.name" : "size(for:)", - "key.doc.type" : "Function", - "key.doclength" : 124, - "key.docoffset" : 5600, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 240, - "key.line" : 164, - "key.modulename" : "ListableUI", - "key.name" : "size(for:)", - "key.namelength" : 23, - "key.nameoffset" : 5740, - "key.offset" : 5735, - "key.parsed_declaration" : "public func size(for size : CGSize) -> CGSize", - "key.parsed_scope.end" : 170, - "key.parsed_scope.start" : 164, - "key.related_decls" : [ - { - "key.annotated_decl" : "size(width:height:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGSize) -> CGSize", - "key.typeusr" : "$s3forSo6CGSizeVAC_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO4size3forSo6CGSizeVAG_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func size(width: CGFloat<\/Type>, height: CGFloat<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6125 - } - ], - "key.bodylength" : 175, - "key.bodyoffset" : 6192, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns a `CGSize` made with `(width, height)`.\n`.horizontal`: Returns a `CGSize` made with `(height, width)`.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns a `CGSize` made with `(width, height)`.\n`.horizontal`: Returns a `CGSize` made with `(height, width)`.", - "key.doc.declaration" : "public func size(width: CGFloat, height: CGFloat) -> CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "size(width:height:)<\/Name>s:10ListableUI15LayoutDirectionO4size5width6heightSo6CGSizeV14CoreFoundation7CGFloatV_AKtF<\/USR>public func size(width: CGFloat, height: CGFloat) -> CGSize<\/Declaration>.vertical<\/codeVoice>: Returns a CGSize<\/codeVoice> made with (width, height)<\/codeVoice>. .horizontal<\/codeVoice>: Returns a CGSize<\/codeVoice> made with (height, width)<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 174, - "key.doc.name" : "size(width:height:)", - "key.doc.type" : "Function", - "key.doclength" : 136, - "key.docoffset" : 5985, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> size<\/decl.name>(width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 236, - "key.line" : 174, - "key.modulename" : "ListableUI", - "key.name" : "size(width:height:)", - "key.namelength" : 39, - "key.nameoffset" : 6137, - "key.offset" : 6132, - "key.parsed_declaration" : "public func size(width : CGFloat, height : CGFloat) -> CGSize", - "key.parsed_scope.end" : 180, - "key.parsed_scope.start" : 174, - "key.related_decls" : [ - { - "key.annotated_decl" : "size(for:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGFloat, CGFloat) -> CGSize", - "key.typeusr" : "$s5width6heightSo6CGSizeV14CoreFoundation7CGFloatV_AGtcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO4size5width6heightSo6CGSizeV14CoreFoundation7CGFloatV_AKtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func maxY(for frame: CGRect<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6492 - } - ], - "key.bodylength" : 123, - "key.bodyoffset" : 6545, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the **maxY** of the frame.\n`.horizontal`: Returns the **maxX** of the frame.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the **maxY** of the frame.\n`.horizontal`: Returns the **maxX** of the frame.", - "key.doc.declaration" : "public func maxY(for frame: CGRect) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "maxY(for:)<\/Name>s:10ListableUI15LayoutDirectionO4maxY3for14CoreFoundation7CGFloatVSo6CGRectV_tF<\/USR>public func maxY(for frame: CGRect) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the maxY<\/bold> of the frame. .horizontal<\/codeVoice>: Returns the maxX<\/bold> of the frame.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 184, - "key.doc.name" : "maxY(for:)", - "key.doc.type" : "Function", - "key.doclength" : 110, - "key.docoffset" : 6378, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> maxY<\/decl.name>(for<\/decl.var.parameter.argument_label> frame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 170, - "key.line" : 184, - "key.modulename" : "ListableUI", - "key.name" : "maxY(for:)", - "key.namelength" : 24, - "key.nameoffset" : 6504, - "key.offset" : 6499, - "key.parsed_declaration" : "public func maxY(for frame : CGRect) -> CGFloat", - "key.parsed_scope.end" : 190, - "key.parsed_scope.start" : 184, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGRect) -> CGFloat", - "key.typeusr" : "$s3for14CoreFoundation7CGFloatVSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO4maxY3for14CoreFoundation7CGFloatVSo6CGRectV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func minY(for frame: CGRect<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6793 - } - ], - "key.bodylength" : 123, - "key.bodyoffset" : 6846, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the **minY** of the frame.\n`.horizontal`: Returns the **minX** of the frame.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the **minY** of the frame.\n`.horizontal`: Returns the **minX** of the frame.", - "key.doc.declaration" : "public func minY(for frame: CGRect) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "minY(for:)<\/Name>s:10ListableUI15LayoutDirectionO4minY3for14CoreFoundation7CGFloatVSo6CGRectV_tF<\/USR>public func minY(for frame: CGRect) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the minY<\/bold> of the frame. .horizontal<\/codeVoice>: Returns the minX<\/bold> of the frame.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 194, - "key.doc.name" : "minY(for:)", - "key.doc.type" : "Function", - "key.doclength" : 110, - "key.docoffset" : 6679, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> minY<\/decl.name>(for<\/decl.var.parameter.argument_label> frame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 170, - "key.line" : 194, - "key.modulename" : "ListableUI", - "key.name" : "minY(for:)", - "key.namelength" : 24, - "key.nameoffset" : 6805, - "key.offset" : 6800, - "key.parsed_declaration" : "public func minY(for frame : CGRect) -> CGFloat", - "key.parsed_scope.end" : 200, - "key.parsed_scope.start" : 194, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGRect) -> CGFloat", - "key.typeusr" : "$s3for14CoreFoundation7CGFloatVSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO4minY3for14CoreFoundation7CGFloatVSo6CGRectV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func maxX(for frame: CGRect<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7094 - } - ], - "key.bodylength" : 123, - "key.bodyoffset" : 7147, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the **maxX** of the frame.\n`.horizontal`: Returns the **maxY** of the frame.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the **maxX** of the frame.\n`.horizontal`: Returns the **maxY** of the frame.", - "key.doc.declaration" : "public func maxX(for frame: CGRect) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "maxX(for:)<\/Name>s:10ListableUI15LayoutDirectionO4maxX3for14CoreFoundation7CGFloatVSo6CGRectV_tF<\/USR>public func maxX(for frame: CGRect) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the maxX<\/bold> of the frame. .horizontal<\/codeVoice>: Returns the maxY<\/bold> of the frame.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 204, - "key.doc.name" : "maxX(for:)", - "key.doc.type" : "Function", - "key.doclength" : 110, - "key.docoffset" : 6980, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> maxX<\/decl.name>(for<\/decl.var.parameter.argument_label> frame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 170, - "key.line" : 204, - "key.modulename" : "ListableUI", - "key.name" : "maxX(for:)", - "key.namelength" : 24, - "key.nameoffset" : 7106, - "key.offset" : 7101, - "key.parsed_declaration" : "public func maxX(for frame : CGRect) -> CGFloat", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 204, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGRect) -> CGFloat", - "key.typeusr" : "$s3for14CoreFoundation7CGFloatVSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO4maxX3for14CoreFoundation7CGFloatVSo6CGRectV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func x(for point: CGPoint<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7389 - } - ], - "key.bodylength" : 117, - "key.bodyoffset" : 7440, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the **x** of the point.\n`.horizontal`: Returns the **y** of the point.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the **x** of the point.\n`.horizontal`: Returns the **y** of the point.", - "key.doc.declaration" : "public func x(for point: CGPoint) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "x(for:)<\/Name>s:10ListableUI15LayoutDirectionO1x3for14CoreFoundation7CGFloatVSo7CGPointV_tF<\/USR>public func x(for point: CGPoint) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the x<\/bold> of the point. .horizontal<\/codeVoice>: Returns the y<\/bold> of the point.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 214, - "key.doc.name" : "x(for:)", - "key.doc.type" : "Function", - "key.doclength" : 104, - "key.docoffset" : 7281, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> x<\/decl.name>(for<\/decl.var.parameter.argument_label> point<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 162, - "key.line" : 214, - "key.modulename" : "ListableUI", - "key.name" : "x(for:)", - "key.namelength" : 22, - "key.nameoffset" : 7401, - "key.offset" : 7396, - "key.parsed_declaration" : "public func x(for point : CGPoint) -> CGFloat", - "key.parsed_scope.end" : 220, - "key.parsed_scope.start" : 214, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGPoint) -> CGFloat", - "key.typeusr" : "$s3for14CoreFoundation7CGFloatVSo7CGPointV_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO1x3for14CoreFoundation7CGFloatVSo7CGPointV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func y(for point: CGPoint<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7676 - } - ], - "key.bodylength" : 117, - "key.bodyoffset" : 7727, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the **y** of the point.\n`.horizontal`: Returns the **x** of the point.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the **y** of the point.\n`.horizontal`: Returns the **x** of the point.", - "key.doc.declaration" : "public func y(for point: CGPoint) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "y(for:)<\/Name>s:10ListableUI15LayoutDirectionO1y3for14CoreFoundation7CGFloatVSo7CGPointV_tF<\/USR>public func y(for point: CGPoint) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the y<\/bold> of the point. .horizontal<\/codeVoice>: Returns the x<\/bold> of the point.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 224, - "key.doc.name" : "y(for:)", - "key.doc.type" : "Function", - "key.doclength" : 104, - "key.docoffset" : 7568, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> y<\/decl.name>(for<\/decl.var.parameter.argument_label> point<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 162, - "key.line" : 224, - "key.modulename" : "ListableUI", - "key.name" : "y(for:)", - "key.namelength" : 22, - "key.nameoffset" : 7688, - "key.offset" : 7683, - "key.parsed_declaration" : "public func y(for point : CGPoint) -> CGFloat", - "key.parsed_scope.end" : 230, - "key.parsed_scope.start" : 224, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (CGPoint) -> CGFloat", - "key.typeusr" : "$s3for14CoreFoundation7CGFloatVSo7CGPointV_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO1y3for14CoreFoundation7CGFloatVSo7CGPointV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func top(with insets: UIEdgeInsets<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7970 - } - ], - "key.bodylength" : 124, - "key.bodyoffset" : 8030, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the **top** of the insets.\n`.horizontal`: Returns the **left** of the insets.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the **top** of the insets.\n`.horizontal`: Returns the **left** of the insets.", - "key.doc.declaration" : "public func top(with insets: UIEdgeInsets) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "top(with:)<\/Name>s:10ListableUI15LayoutDirectionO3top4with14CoreFoundation7CGFloatVSo12UIEdgeInsetsV_tF<\/USR>public func top(with insets: UIEdgeInsets) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the top<\/bold> of the insets. .horizontal<\/codeVoice>: Returns the left<\/bold> of the insets.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 234, - "key.doc.name" : "top(with:)", - "key.doc.type" : "Function", - "key.doclength" : 111, - "key.docoffset" : 7855, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> top<\/decl.name>(with<\/decl.var.parameter.argument_label> insets<\/decl.var.parameter.name>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 178, - "key.line" : 234, - "key.modulename" : "ListableUI", - "key.name" : "top(with:)", - "key.namelength" : 31, - "key.nameoffset" : 7982, - "key.offset" : 7977, - "key.parsed_declaration" : "public func top(with insets : UIEdgeInsets) -> CGFloat", - "key.parsed_scope.end" : 240, - "key.parsed_scope.start" : 234, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (UIEdgeInsets) -> CGFloat", - "key.typeusr" : "$s4with14CoreFoundation7CGFloatVSo12UIEdgeInsetsV_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO3top4with14CoreFoundation7CGFloatVSo12UIEdgeInsetsV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func bottom(with insets: UIEdgeInsets<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8284 - } - ], - "key.bodylength" : 128, - "key.bodyoffset" : 8347, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`.vertical`: Returns the **bottom** of the insets.\n`.horizontal`: Returns the **right** of the insets.", - "key.doc.column" : 17, - "key.doc.comment" : "`.vertical`: Returns the **bottom** of the insets.\n`.horizontal`: Returns the **right** of the insets.", - "key.doc.declaration" : "public func bottom(with insets: UIEdgeInsets) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.doc.full_as_xml" : "bottom(with:)<\/Name>s:10ListableUI15LayoutDirectionO6bottom4with14CoreFoundation7CGFloatVSo12UIEdgeInsetsV_tF<\/USR>public func bottom(with insets: UIEdgeInsets) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the bottom<\/bold> of the insets. .horizontal<\/codeVoice>: Returns the right<\/bold> of the insets.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 244, - "key.doc.name" : "bottom(with:)", - "key.doc.type" : "Function", - "key.doclength" : 115, - "key.docoffset" : 8165, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LayoutDirection.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> bottom<\/decl.name>(with<\/decl.var.parameter.argument_label> insets<\/decl.var.parameter.name>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 185, - "key.line" : 244, - "key.modulename" : "ListableUI", - "key.name" : "bottom(with:)", - "key.namelength" : 34, - "key.nameoffset" : 8296, - "key.offset" : 8291, - "key.parsed_declaration" : "public func bottom(with insets : UIEdgeInsets) -> CGFloat", - "key.parsed_scope.end" : 250, - "key.parsed_scope.start" : 244, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LayoutDirection) -> (UIEdgeInsets) -> CGFloat", - "key.typeusr" : "$s4with14CoreFoundation7CGFloatVSo12UIEdgeInsetsV_tcD", - "key.usr" : "s:10ListableUI15LayoutDirectionO6bottom4with14CoreFoundation7CGFloatVSo12UIEdgeInsetsV_tF" - } - ], - "key.typename" : "LayoutDirection.Type", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOmD", - "key.usr" : "s:10ListableUI15LayoutDirectionO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 7826, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class ListActions<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 2115 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2108 - } - ], - "key.bodylength" : 5684, - "key.bodyoffset" : 2140, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`ListActions` is an type that you can use to gain access to actions to perform on a `List`\n(for example, scrolling to a given item in the list) when used when you otherwise do\nnot have a reference to the underlying list view (for example, when using `ListViewController` or `BlueprintUILists`).\n\nYou also gain access to a `ListActions` instance when using `ListStateObserver`, in each registered callback.\n\nYou usually use `ListActions` by keeping an instance on your view controller,\nand then assign it when providing list content. Once the list is updated with the content,\nthe `ListActions` will be registered with the list to perform actions.\n\nA `ListActions` behaviors are split into internal sub-objects, such as `Scrolling` and `ViewControllerTransitioning`.\nYou can pass these separate objects around if your code invokes actions from several different places.\n\nOnly one `ListActions` can be registered in a list at a time. If you register a new one, it replaces the last one,\nand any actions performed on the last instance become no-ops.\n\nExample\n-------\n```\nfinal class ListStateViewController : ListViewController\n{\n \/\/ Owned by the view controller.\n let actions = ListActions()\n\n override func configure(list : inout ListProperties)\n {\n list.appearance = .myAppearance\n list.layout = .myLayout\n\n \/\/ Registered with list here.\n list.actions = self.actions\n\n list.stateObserver = ListStateObserver { reader in\n reader.onDidScroll { info in\n \/\/ Perform an action based on scrolling.\n }\n }\n }\n\n private func performScrollTo(item : AnyItem)\n {\n \/\/ Used here to scroll to an item.\n self.actions.scrolling.scrollTo(item: item, position: .init(position: .top), animated: true)\n }\n}\n```", - "key.doc.column" : 20, - "key.doc.comment" : "\n`ListActions` is an type that you can use to gain access to actions to perform on a `List`\n(for example, scrolling to a given item in the list) when used when you otherwise do\nnot have a reference to the underlying list view (for example, when using `ListViewController` or `BlueprintUILists`).\n\nYou also gain access to a `ListActions` instance when using `ListStateObserver`, in each registered callback.\n\nYou usually use `ListActions` by keeping an instance on your view controller,\nand then assign it when providing list content. Once the list is updated with the content,\nthe `ListActions` will be registered with the list to perform actions.\n\nA `ListActions` behaviors are split into internal sub-objects, such as `Scrolling` and `ViewControllerTransitioning`.\nYou can pass these separate objects around if your code invokes actions from several different places.\n\nOnly one `ListActions` can be registered in a list at a time. If you register a new one, it replaces the last one,\nand any actions performed on the last instance become no-ops.\n\nExample\n-------\n```\nfinal class ListStateViewController : ListViewController\n{\n \/\/ Owned by the view controller.\n let actions = ListActions()\n\n override func configure(list : inout ListProperties)\n {\n list.appearance = .myAppearance\n list.layout = .myLayout\n\n \/\/ Registered with list here.\n list.actions = self.actions\n\n list.stateObserver = ListStateObserver { reader in\n reader.onDidScroll { info in\n \/\/ Perform an action based on scrolling.\n }\n }\n }\n\n private func performScrollTo(item : AnyItem)\n {\n \/\/ Used here to scroll to an item.\n self.actions.scrolling.scrollTo(item: item, position: .init(position: .top), animated: true)\n }\n}\n```", - "key.doc.declaration" : "public final class ListActions", - "key.doc.discussion" : [ - { - "Para" : "You also gain access to a `ListActions` instance when using `ListStateObserver`, in each registered callback." - }, - { - "Para" : "You usually use `ListActions` by keeping an instance on your view controller, and then assign it when providing list content. Once the list is updated with the content, the `ListActions` will be registered with the list to perform actions." - }, - { - "Para" : "A `ListActions` behaviors are split into internal sub-objects, such as `Scrolling` and `ViewControllerTransitioning`. You can pass these separate objects around if your code invokes actions from several different places." - }, - { - "Para" : "Only one `ListActions` can be registered in a list at a time. If you register a new one, it replaces the last one, and any actions performed on the last instance become no-ops." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "ListActions<\/Name>s:10ListableUI11ListActionsC<\/USR>public final class ListActions<\/Declaration>ListActions<\/codeVoice> is an type that you can use to gain access to actions to perform on a List<\/codeVoice> (for example, scrolling to a given item in the list) when used when you otherwise do not have a reference to the underlying list view (for example, when using ListViewController<\/codeVoice> or BlueprintUILists<\/codeVoice>).<\/Para><\/Abstract>You also gain access to a ListActions<\/codeVoice> instance when using ListStateObserver<\/codeVoice>, in each registered callback.<\/Para>You usually use ListActions<\/codeVoice> by keeping an instance on your view controller, and then assign it when providing list content. Once the list is updated with the content, the ListActions<\/codeVoice> will be registered with the list to perform actions.<\/Para>A ListActions<\/codeVoice> behaviors are split into internal sub-objects, such as Scrolling<\/codeVoice> and ViewControllerTransitioning<\/codeVoice>. You can pass these separate objects around if your code invokes actions from several different places.<\/Para>Only one ListActions<\/codeVoice> can be registered in a list at a time. If you register a new one, it replaces the last one, and any actions performed on the last instance become no-ops.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 59, - "key.doc.name" : "ListActions", - "key.doc.type" : "Class", - "key.doclength" : 1986, - "key.docoffset" : 122, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListActions<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 5704, - "key.line" : 59, - "key.modulename" : "ListableUI", - "key.name" : "ListActions", - "key.namelength" : 11, - "key.nameoffset" : 2127, - "key.offset" : 2121, - "key.parsed_declaration" : "public final class ListActions", - "key.parsed_scope.end" : 222, - "key.parsed_scope.start" : 59, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let scrolling: Scrolling<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2223 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Actions which allow scrolling to individual items in a list.", - "key.doc.column" : 16, - "key.doc.comment" : "Actions which allow scrolling to individual items in a list.", - "key.doc.declaration" : "public let scrolling: Scrolling", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "scrolling<\/Name>s:10ListableUI11ListActionsC9scrollingAC9ScrollingCvp<\/USR>public let scrolling: Scrolling<\/Declaration>Actions which allow scrolling to individual items in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 62, - "key.doc.name" : "scrolling", - "key.doc.type" : "Other", - "key.doclength" : 65, - "key.docoffset" : 2154, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> scrolling<\/decl.name>: Scrolling<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 62, - "key.modulename" : "ListableUI", - "key.name" : "scrolling", - "key.namelength" : 9, - "key.nameoffset" : 2234, - "key.offset" : 2230, - "key.parsed_declaration" : "public let scrolling : Scrolling", - "key.parsed_scope.end" : 62, - "key.parsed_scope.start" : 62, - "key.reusingastcontext" : false, - "key.typename" : "ListActions.Scrolling", - "key.typeusr" : "$s10ListableUI11ListActionsC9ScrollingCD", - "key.usr" : "s:10ListableUI11ListActionsC9scrollingAC9ScrollingCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let viewControllerTransitioning: ViewControllerTransitioning<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2357 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Actions which allow hooking up your list to the view controller transitioning APIs.", - "key.doc.column" : 16, - "key.doc.comment" : "Actions which allow hooking up your list to the view controller transitioning APIs.", - "key.doc.declaration" : "public let viewControllerTransitioning: ViewControllerTransitioning", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "viewControllerTransitioning<\/Name>s:10ListableUI11ListActionsC27viewControllerTransitioningAC04ViewfG0Cvp<\/USR>public let viewControllerTransitioning: ViewControllerTransitioning<\/Declaration>Actions which allow hooking up your list to the view controller transitioning APIs.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 65, - "key.doc.name" : "viewControllerTransitioning", - "key.doc.type" : "Other", - "key.doclength" : 88, - "key.docoffset" : 2265, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> viewControllerTransitioning<\/decl.name>: ViewControllerTransitioning<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 61, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "viewControllerTransitioning", - "key.namelength" : 27, - "key.nameoffset" : 2368, - "key.offset" : 2364, - "key.parsed_declaration" : "public let viewControllerTransitioning : ViewControllerTransitioning", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.typename" : "ListActions.ViewControllerTransitioning", - "key.typeusr" : "$s10ListableUI11ListActionsC27ViewControllerTransitioningCD", - "key.usr" : "s:10ListableUI11ListActionsC27viewControllerTransitioningAC04ViewfG0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2523 - } - ], - "key.bodylength" : 115, - "key.bodyoffset" : 2538, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates and returns an actions object which can be registered with a list view.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates and returns an actions object which can be registered with a list view.", - "key.doc.declaration" : "public init()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "init()<\/Name>s:10ListableUI11ListActionsCACycfc<\/USR>public init()<\/Declaration>Creates and returns an actions object which can be registered with a list view.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 68, - "key.doc.name" : "init()", - "key.doc.type" : "Function", - "key.doclength" : 84, - "key.docoffset" : 2435, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 124, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 2530, - "key.offset" : 2530, - "key.parsed_declaration" : "public init()", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 68, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListActions.Type) -> () -> ListActions", - "key.typeusr" : "$s10ListableUI11ListActionsCycD", - "key.usr" : "s:10ListableUI11ListActionsCACycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "weak var listView: ListView<\/Type>? { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 2664 - } - ], - "key.bodylength" : 154, - "key.bodyoffset" : 2695, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 181, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "listView", - "key.namelength" : 8, - "key.nameoffset" : 2673, - "key.offset" : 2669, - "key.parsed_declaration" : "weak var listView : ListView?", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 73, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListView?", - "key.typeusr" : "$s10ListableUI8ListViewCSgD", - "key.usr" : "s:10ListableUI11ListActionsC8listViewAA0cF0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class ListActions<\/Type>.Scrolling<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 2928 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2921 - } - ], - "key.bodylength" : 4278, - "key.bodyoffset" : 2951, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides access to scrolling actions within a list view.", - "key.doc.column" : 24, - "key.doc.comment" : "Provides access to scrolling actions within a list view.", - "key.doc.declaration" : "public final class ListableUI.ListActions.Scrolling", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "Scrolling<\/Name>s:10ListableUI11ListActionsC9ScrollingC<\/USR>public final class ListableUI.ListActions.Scrolling<\/Declaration>Provides access to scrolling actions within a list view.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 81, - "key.doc.name" : "Scrolling", - "key.doc.type" : "Class", - "key.doclength" : 61, - "key.docoffset" : 2856, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListActions<\/ref.class>.Scrolling<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 4296, - "key.line" : 81, - "key.modulename" : "ListableUI", - "key.name" : "Scrolling", - "key.namelength" : 9, - "key.nameoffset" : 2940, - "key.offset" : 2934, - "key.parsed_declaration" : "public final class Scrolling", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 81, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2969 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 2984, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 9, - "key.line" : 83, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 2976, - "key.offset" : 2976, - "key.parsed_declaration" : "public init()", - "key.parsed_scope.end" : 83, - "key.parsed_scope.start" : 83, - "key.reusingastcontext" : false, - "key.typename" : "(ListActions.Scrolling.Type) -> () -> ListActions.Scrolling", - "key.typeusr" : "$s10ListableUI11ListActionsC9ScrollingCycD", - "key.usr" : "s:10ListableUI11ListActionsC9ScrollingCAEycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate weak var listView: ListView<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 3015 - }, - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 3003 - } - ], - "key.column" : 30, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 85, - "key.modulename" : "ListableUI", - "key.name" : "listView", - "key.namelength" : 8, - "key.nameoffset" : 3024, - "key.offset" : 3020, - "key.parsed_declaration" : "fileprivate weak var listView : ListView?", - "key.parsed_scope.end" : 85, - "key.parsed_scope.start" : 85, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.typename" : "ListView?", - "key.typeusr" : "$s10ListableUI8ListViewCSgD", - "key.usr" : "s:10ListableUI11ListActionsC9ScrollingC8listView33_4B52F576721FFEAA4EFE6B6520AB6040LLAA0cG0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListActions<\/Type>.Scrolling<\/Type>.ScrollCompletion = ListView<\/Type>.ScrollCompletion<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3062 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListActions<\/ref.class>.Scrolling<\/ref.class>.ScrollCompletion<\/decl.name> = ListView<\/ref.class>.ScrollCompletion<\/ref.typealias><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 54, - "key.line" : 87, - "key.modulename" : "ListableUI", - "key.name" : "ScrollCompletion", - "key.namelength" : 16, - "key.nameoffset" : 3079, - "key.offset" : 3069, - "key.parsed_declaration" : "public typealias ScrollCompletion = ListView.ScrollCompletion", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 87, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.DidEndScrollingAnimation) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV24DidEndScrollingAnimationVcmD", - "key.usr" : "s:10ListableUI11ListActionsC9ScrollingC16ScrollCompletiona" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult public func scrollTo(item: AnyItem<\/Type>, position: ScrollPosition<\/Type>, animated: Bool<\/Type> = false, completion: ScrollCompletion<\/Type>? = nil) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3366 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 3339 - } - ], - "key.bodylength" : 310, - "key.bodyoffset" : 3567, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the provided item, with the provided positioning.\nIf the item is contained in the list, true is returned. If it is not, false is returned.\n", - "key.doc.column" : 21, - "key.doc.comment" : "\nScrolls to the provided item, with the provided positioning.\nIf the item is contained in the list, true is returned. If it is not, false is returned.", - "key.doc.declaration" : "@discardableResult\npublic func scrollTo(item: AnyItem, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "scrollTo(item:position:animated:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position8animated10completionSbAA7AnyItem_p_AA14ScrollPositionVSbyAA0C13StateObserverV06DidEndE9AnimationVcSgtF<\/USR>@discardableResult\npublic func scrollTo(item: AnyItem, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/Declaration>Scrolls to the provided item, with the provided positioning. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 94, - "key.doc.name" : "scrollTo(item:position:animated:completion:)", - "key.doc.type" : "Function", - "key.doclength" : 190, - "key.docoffset" : 3141, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 505, - "key.line" : 94, - "key.modulename" : "ListableUI", - "key.name" : "scrollTo(item:position:animated:completion:)", - "key.namelength" : 171, - "key.nameoffset" : 3378, - "key.offset" : 3373, - "key.parsed_declaration" : "public func scrollTo(\n item : AnyItem,\n position : ScrollPosition,\n animated : Bool = false,\n completion: ScrollCompletion? = nil\n) -> Bool", - "key.parsed_scope.end" : 111, - "key.parsed_scope.start" : 94, - "key.related_decls" : [ - { - "key.annotated_decl" : "scrollTo(item: AnyIdentifier, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListActions.Scrolling) -> (any AnyItem, ScrollPosition, Bool, ((ListStateObserver.DidEndScrollingAnimation) -> ())?) -> Bool", - "key.typeusr" : "$s4item8position8animated10completionSb10ListableUI7AnyItem_p_AE14ScrollPositionVSbyAE17ListStateObserverV24DidEndScrollingAnimationVcSgtcD", - "key.usr" : "s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position8animated10completionSbAA7AnyItem_p_AA14ScrollPositionVSbyAA0C13StateObserverV06DidEndE9AnimationVcSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult public func scrollTo(item: AnyIdentifier<\/Type>, position: ScrollPosition<\/Type>, animated: Bool<\/Type> = false, completion: ScrollCompletion<\/Type>? = nil) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4241 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 4214 - } - ], - "key.bodylength" : 310, - "key.bodyoffset" : 4452, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the item with the provided identifier, with the provided positioning.\nIf there is more than one item with the same identifier, the list scrolls to the first.\nIf the item is contained in the list, true is returned. If it is not, false is returned.\n", - "key.doc.column" : 21, - "key.doc.comment" : "\nScrolls to the item with the provided identifier, with the provided positioning.\nIf there is more than one item with the same identifier, the list scrolls to the first.\nIf the item is contained in the list, true is returned. If it is not, false is returned.", - "key.doc.declaration" : "@discardableResult\npublic func scrollTo(item: AnyIdentifier, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "scrollTo(item:position:animated:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position8animated10completionSbAA13AnyIdentifierC_AA14ScrollPositionVSbyAA0C13StateObserverV06DidEndE9AnimationVcSgtF<\/USR>@discardableResult\npublic func scrollTo(item: AnyIdentifier, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/Declaration>Scrolls to the item with the provided identifier, with the provided positioning. If there is more than one item with the same identifier, the list scrolls to the first. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 119, - "key.doc.name" : "scrollTo(item:position:animated:completion:)", - "key.doc.type" : "Function", - "key.doclength" : 310, - "key.docoffset" : 3896, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 515, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "scrollTo(item:position:animated:completion:)", - "key.namelength" : 181, - "key.nameoffset" : 4253, - "key.offset" : 4248, - "key.parsed_declaration" : "public func scrollTo(\n item : AnyIdentifier,\n position : ScrollPosition,\n animated : Bool = false,\n completion: ScrollCompletion? = nil\n ) -> Bool", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 119, - "key.related_decls" : [ - { - "key.annotated_decl" : "scrollTo(item: AnyItem, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListActions.Scrolling) -> (AnyIdentifier, ScrollPosition, Bool, ((ListStateObserver.DidEndScrollingAnimation) -> ())?) -> Bool", - "key.typeusr" : "$s4item8position8animated10completionSb10ListableUI13AnyIdentifierC_AE14ScrollPositionVSbyAE17ListStateObserverV24DidEndScrollingAnimationVcSgtcD", - "key.usr" : "s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position8animated10completionSbAA13AnyIdentifierC_AA14ScrollPositionVSbyAA0C13StateObserverV06DidEndE9AnimationVcSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult public func scrollToSection(with identifier: AnyIdentifier<\/Type>, sectionPosition: SectionPosition<\/Type> = .top, scrollPosition: ScrollPosition<\/Type>, animated: Bool<\/Type> = false, completion: ScrollCompletion<\/Type>? = nil) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5684 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 5657 - } - ], - "key.bodylength" : 373, - "key.bodyoffset" : 5968, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the section with the given identifier, with the provided scroll and section positioning.\n\nIf there is more than one section with the same identifier, the list scrolls to the first.\nIf the section has any content and is contained in the list, true is returned. If not, false is returned.\n\nThe list will first attempt to scroll to the section's supplementary view\n(header for `SectionPosition.top`, footer for `SectionPosition.bottom`).\n\nIf not found, the list will scroll to the adjacent item instead\n(section's first item for `.top`, last item for `.bottom`).\n\nIf none of the above are present, the list will fallback to the remaining supplementary view\n(footer for `.top`, header for `.bottom`).\n", - "key.doc.column" : 21, - "key.doc.comment" : "\nScrolls to the section with the given identifier, with the provided scroll and section positioning.\n\nIf there is more than one section with the same identifier, the list scrolls to the first.\nIf the section has any content and is contained in the list, true is returned. If not, false is returned.\n\nThe list will first attempt to scroll to the section's supplementary view\n(header for `SectionPosition.top`, footer for `SectionPosition.bottom`).\n\nIf not found, the list will scroll to the adjacent item instead\n(section's first item for `.top`, last item for `.bottom`).\n\nIf none of the above are present, the list will fallback to the remaining supplementary view\n(footer for `.top`, header for `.bottom`).", - "key.doc.declaration" : "@discardableResult\npublic func scrollToSection(with identifier: AnyIdentifier, sectionPosition: SectionPosition = .top, scrollPosition: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "If there is more than one section with the same identifier, the list scrolls to the first. If the section has any content and is contained in the list, true is returned. If not, false is returned." - }, - { - "Para" : "The list will first attempt to scroll to the section’s supplementary view (header for `SectionPosition.top`, footer for `SectionPosition.bottom`)." - }, - { - "Para" : "If not found, the list will scroll to the adjacent item instead (section’s first item for `.top`, last item for `.bottom`)." - }, - { - "Para" : "If none of the above are present, the list will fallback to the remaining supplementary view (footer for `.top`, header for `.bottom`)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "scrollToSection(with:sectionPosition:scrollPosition:animated:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC15scrollToSection4with15sectionPosition0fK08animated10completionSbAA13AnyIdentifierC_AA0hK0OAA06ScrollK0VSbyAA0C13StateObserverV06DidEndE9AnimationVcSgtF<\/USR>@discardableResult\npublic func scrollToSection(with identifier: AnyIdentifier, sectionPosition: SectionPosition = .top, scrollPosition: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/Declaration>Scrolls to the section with the given identifier, with the provided scroll and section positioning.<\/Para><\/Abstract>If there is more than one section with the same identifier, the list scrolls to the first. If the section has any content and is contained in the list, true is returned. If not, false is returned.<\/Para>The list will first attempt to scroll to the section’s supplementary view (header for SectionPosition.top<\/codeVoice>, footer for SectionPosition.bottom<\/codeVoice>).<\/Para>If not found, the list will scroll to the adjacent item instead (section’s first item for .top<\/codeVoice>, last item for .bottom<\/codeVoice>).<\/Para>If none of the above are present, the list will fallback to the remaining supplementary view (footer for .top<\/codeVoice>, header for .bottom<\/codeVoice>).<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 154, - "key.doc.name" : "scrollToSection(with:sectionPosition:scrollPosition:animated:completion:)", - "key.doc.type" : "Function", - "key.doclength" : 876, - "key.docoffset" : 4773, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToSection<\/decl.name>(with<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, sectionPosition<\/decl.var.parameter.argument_label>: SectionPosition<\/ref.enum><\/decl.var.parameter.type> = .top<\/decl.var.parameter>, scrollPosition<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 651, - "key.line" : 154, - "key.modulename" : "ListableUI", - "key.name" : "scrollToSection(with:sectionPosition:scrollPosition:animated:completion:)", - "key.namelength" : 254, - "key.nameoffset" : 5696, - "key.offset" : 5691, - "key.parsed_declaration" : "public func scrollToSection(\n with identifier : AnyIdentifier,\n sectionPosition : SectionPosition = .top,\n scrollPosition : ScrollPosition,\n animated: Bool = false,\n completion: ScrollCompletion? = nil\n) -> Bool", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 154, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListActions.Scrolling) -> (AnyIdentifier, SectionPosition, ScrollPosition, Bool, ((ListStateObserver.DidEndScrollingAnimation) -> ())?) -> Bool", - "key.typeusr" : "$s4with15sectionPosition06scrollC08animated10completionSb10ListableUI13AnyIdentifierC_AF07SectionC0OAF06ScrollC0VSbyAF17ListStateObserverV24DidEndScrollingAnimationVcSgtcD", - "key.usr" : "s:10ListableUI11ListActionsC9ScrollingC15scrollToSection4with15sectionPosition0fK08animated10completionSbAA13AnyIdentifierC_AA0hK0OAA06ScrollK0VSbyAA0C13StateObserverV06DidEndE9AnimationVcSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult public func scrollToTop(animated: Bool<\/Type> = false) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6479 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 6452 - } - ], - "key.bodylength" : 209, - "key.bodyoffset" : 6566, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the very top of the list, which includes displaying the list header.", - "key.doc.column" : 21, - "key.doc.comment" : "Scrolls to the very top of the list, which includes displaying the list header.", - "key.doc.declaration" : "@discardableResult\npublic func scrollToTop(animated: Bool = false) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "scrollToTop(animated:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC11scrollToTop8animatedS2b_tF<\/USR>@discardableResult\npublic func scrollToTop(animated: Bool = false) -> Bool<\/Declaration>Scrolls to the very top of the list, which includes displaying the list header.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 177, - "key.doc.name" : "scrollToTop(animated:)", - "key.doc.type" : "Function", - "key.doclength" : 84, - "key.docoffset" : 6360, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToTop<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 290, - "key.line" : 177, - "key.modulename" : "ListableUI", - "key.name" : "scrollToTop(animated:)", - "key.namelength" : 57, - "key.nameoffset" : 6491, - "key.offset" : 6486, - "key.parsed_declaration" : "public func scrollToTop(\n animated: Bool = false\n) -> Bool", - "key.parsed_scope.end" : 188, - "key.parsed_scope.start" : 177, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListActions.Scrolling) -> (Bool) -> Bool", - "key.typeusr" : "$s8animatedS2b_tcD", - "key.usr" : "s:10ListableUI11ListActionsC9ScrollingC11scrollToTop8animatedS2b_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult public func scrollToLastItem(animated: Bool<\/Type> = false) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6918 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 6891 - } - ], - "key.bodylength" : 213, - "key.bodyoffset" : 7010, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the last item in the list. If the list contains no items, no action is performed.", - "key.doc.column" : 21, - "key.doc.comment" : "Scrolls to the last item in the list. If the list contains no items, no action is performed.", - "key.doc.declaration" : "@discardableResult\npublic func scrollToLastItem(animated: Bool = false) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "scrollToLastItem(animated:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC16scrollToLastItem8animatedS2b_tF<\/USR>@discardableResult\npublic func scrollToLastItem(animated: Bool = false) -> Bool<\/Declaration>Scrolls to the last item in the list. If the list contains no items, no action is performed.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 192, - "key.doc.name" : "scrollToLastItem(animated:)", - "key.doc.type" : "Function", - "key.doclength" : 97, - "key.docoffset" : 6786, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToLastItem<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 299, - "key.line" : 192, - "key.modulename" : "ListableUI", - "key.name" : "scrollToLastItem(animated:)", - "key.namelength" : 62, - "key.nameoffset" : 6930, - "key.offset" : 6925, - "key.parsed_declaration" : "public func scrollToLastItem(\n animated: Bool = false\n) -> Bool", - "key.parsed_scope.end" : 203, - "key.parsed_scope.start" : 192, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListActions.Scrolling) -> (Bool) -> Bool", - "key.typeusr" : "$s8animatedS2b_tcD", - "key.usr" : "s:10ListableUI11ListActionsC9ScrollingC16scrollToLastItem8animatedS2b_tF" - } - ], - "key.typename" : "ListActions.Scrolling.Type", - "key.typeusr" : "$s10ListableUI11ListActionsC9ScrollingCmD", - "key.usr" : "s:10ListableUI11ListActionsC9ScrollingC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class ListActions<\/Type>.ViewControllerTransitioning<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 7323 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7316 - } - ], - "key.bodylength" : 458, - "key.bodyoffset" : 7364, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides access to view controller transitioning options in a list.", - "key.doc.column" : 24, - "key.doc.comment" : "Provides access to view controller transitioning options in a list.", - "key.doc.declaration" : "public final class ListableUI.ListActions.ViewControllerTransitioning", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.doc.full_as_xml" : "ViewControllerTransitioning<\/Name>s:10ListableUI11ListActionsC27ViewControllerTransitioningC<\/USR>public final class ListableUI.ListActions.ViewControllerTransitioning<\/Declaration>Provides access to view controller transitioning options in a list.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 207, - "key.doc.name" : "ViewControllerTransitioning", - "key.doc.type" : "Class", - "key.doclength" : 72, - "key.docoffset" : 7240, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListActions<\/ref.class>.ViewControllerTransitioning<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 494, - "key.line" : 207, - "key.modulename" : "ListableUI", - "key.name" : "ViewControllerTransitioning", - "key.namelength" : 27, - "key.nameoffset" : 7335, - "key.offset" : 7329, - "key.parsed_declaration" : "public final class ViewControllerTransitioning", - "key.parsed_scope.end" : 221, - "key.parsed_scope.start" : 207, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7382 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 7397, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 9, - "key.line" : 209, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 7389, - "key.offset" : 7389, - "key.parsed_declaration" : "public init()", - "key.parsed_scope.end" : 209, - "key.parsed_scope.start" : 209, - "key.reusingastcontext" : false, - "key.typename" : "(ListActions.ViewControllerTransitioning.Type) -> () -> ListActions.ViewControllerTransitioning", - "key.typeusr" : "$s10ListableUI11ListActionsC27ViewControllerTransitioningCycD", - "key.usr" : "s:10ListableUI11ListActionsC27ViewControllerTransitioningCAEycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate weak var listView: ListView<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 7428 - }, - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 7416 - } - ], - "key.column" : 30, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 211, - "key.modulename" : "ListableUI", - "key.name" : "listView", - "key.namelength" : 8, - "key.nameoffset" : 7437, - "key.offset" : 7433, - "key.parsed_declaration" : "fileprivate weak var listView : ListView?", - "key.parsed_scope.end" : 211, - "key.parsed_scope.start" : 211, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.typename" : "ListView?", - "key.typeusr" : "$s10ListableUI8ListViewCSgD", - "key.usr" : "s:10ListableUI11ListActionsC27ViewControllerTransitioningC04listE033_4B52F576721FFEAA4EFE6B6520AB6040LLAA0cE0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator<\/Type>?, animated: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 212, - "key.bodyoffset" : 7604, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListActions.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> clearSelectionDuringViewWillAppear<\/decl.name>(alongside<\/decl.var.parameter.argument_label> coordinator<\/decl.var.parameter.name>: UIViewControllerTransitionCoordinator<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 342, - "key.line" : 213, - "key.modulename" : "ListableUI", - "key.name" : "clearSelectionDuringViewWillAppear(alongside:animated:)", - "key.namelength" : 114, - "key.nameoffset" : 7480, - "key.offset" : 7475, - "key.parsed_declaration" : "func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator?, animated : Bool)", - "key.parsed_scope.end" : 220, - "key.parsed_scope.start" : 213, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListActions.ViewControllerTransitioning) -> ((any UIViewControllerTransitionCoordinator)?, Bool) -> ()", - "key.typeusr" : "$s9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtcD", - "key.usr" : "s:10ListableUI11ListActionsC27ViewControllerTransitioningC020clearSelectionDuringE10WillAppear9alongside8animatedySo06UIViewF21TransitionCoordinator_pSg_SbtF" - } - ], - "key.typename" : "ListActions.ViewControllerTransitioning.Type", - "key.typeusr" : "$s10ListableUI11ListActionsC27ViewControllerTransitioningCmD", - "key.usr" : "s:10ListableUI11ListActionsC27ViewControllerTransitioningC" - } - ], - "key.typename" : "ListActions.Type", - "key.typeusr" : "$s10ListableUI11ListActionsCmD", - "key.usr" : "s:10ListableUI11ListActionsC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1097, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListAnimation<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 195 - } - ], - "key.bodylength" : 871, - "key.bodyoffset" : 224, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the animation to use when updating the content of a list.", - "key.doc.column" : 15, - "key.doc.comment" : "Controls the animation to use when updating the content of a list.", - "key.doc.declaration" : "public struct ListAnimation", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.doc.full_as_xml" : "ListAnimation<\/Name>s:10ListableUI13ListAnimationV<\/USR>public struct ListAnimation<\/Declaration>Controls the animation to use when updating the content of a list.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 13, - "key.doc.name" : "ListAnimation", - "key.doc.type" : "Class", - "key.doclength" : 71, - "key.docoffset" : 124, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListAnimation<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 894, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "ListAnimation", - "key.namelength" : 13, - "key.nameoffset" : 209, - "key.offset" : 202, - "key.parsed_declaration" : "public struct ListAnimation", - "key.parsed_scope.end" : 36, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListAnimation<\/Type>.Animations = () -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 263 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The animation block.", - "key.doc.column" : 22, - "key.doc.comment" : "The animation block.", - "key.doc.declaration" : "public typealias ListableUI.ListAnimation.Animations = () -> ()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.doc.full_as_xml" : "Animations<\/Name>s:10ListableUI13ListAnimationV10Animationsa<\/USR>public typealias ListableUI.ListAnimation.Animations = () -> ()<\/Declaration>The animation block.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 16, - "key.doc.name" : "Animations", - "key.doc.type" : "Other", - "key.doclength" : 25, - "key.docoffset" : 234, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListAnimation<\/ref.struct>.Animations<\/decl.name> = () -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 31, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "Animations", - "key.namelength" : 10, - "key.nameoffset" : 280, - "key.offset" : 270, - "key.parsed_declaration" : "public typealias Animations = () -> ()", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "(() -> ()).Type", - "key.typeusr" : "$syycmD", - "key.usr" : "s:10ListableUI13ListAnimationV10Animationsa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var perform: (@escaping Animations<\/Type>) -> ()<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The block which is invoked to perform the animaton.", - "key.doc.column" : 9, - "key.doc.comment" : "The block which is invoked to perform the animaton.", - "key.doc.declaration" : "var perform: (@escaping Animations) -> ()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.doc.full_as_xml" : "perform<\/Name>s:10ListableUI13ListAnimationV7performyyyyccvp<\/USR>var perform: (@escaping Animations) -> ()<\/Declaration>The block which is invoked to perform the animaton.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 19, - "key.doc.name" : "perform", - "key.doc.type" : "Other", - "key.doclength" : 56, - "key.docoffset" : 311, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> perform<\/decl.name>: (@escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Animations<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "perform", - "key.namelength" : 7, - "key.nameoffset" : 375, - "key.offset" : 371, - "key.parsed_declaration" : "var perform : (@escaping Animations) -> ()", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(@escaping () -> ()) -> ()", - "key.typeusr" : "$syyyyccD", - "key.usr" : "s:10ListableUI13ListAnimationV7performyyyyccvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ perform: @escaping (@escaping Animations<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 625 - } - ], - "key.bodylength" : 36, - "key.bodyoffset" : 690, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new animation. in your custom animation, you _must_ invoke the passed\nin `Animations` block within `UIView.animate(...)` or other animation such as a `UIViewPropertyAnimator`.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new animation. in your custom animation, you _must_ invoke the passed\nin `Animations` block within `UIView.animate(...)` or other animation such as a `UIViewPropertyAnimator`.", - "key.doc.declaration" : "public init(_ perform: @escaping (@escaping Animations) -> ())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI13ListAnimationVyACyyycccfc<\/USR>public init(_ perform: @escaping (@escaping Animations) -> ())<\/Declaration>Creates a new animation. in your custom animation, you must<\/emphasis> invoke the passed in Animations<\/codeVoice> block within UIView.animate(...)<\/codeVoice> or other animation such as a UIViewPropertyAnimator<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 23, - "key.doc.name" : "init(_:)", - "key.doc.type" : "Function", - "key.doclength" : 198, - "key.docoffset" : 423, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> perform<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (@escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Animations<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 95, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 56, - "key.nameoffset" : 632, - "key.offset" : 632, - "key.parsed_declaration" : "public init(_ perform : @escaping (@escaping Animations) -> ())", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListAnimation.Type) -> (@escaping (@escaping () -> ()) -> ()) -> ListAnimation", - "key.typeusr" : "$sy10ListableUI13ListAnimationVyyycccD", - "key.usr" : "s:10ListableUI13ListAnimationVyACyyycccfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let `default`: `Self`<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 799 - } - ], - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default animation provided by `UICollectionView`.", - "key.doc.column" : 23, - "key.doc.comment" : "The default animation provided by `UICollectionView`.", - "key.doc.declaration" : "public static let `default`: `Self`", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI13ListAnimationV7defaultACvpZ<\/USR>public static let `default`: `Self`<\/Declaration>The default animation provided by UICollectionView<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "default", - "key.doc.type" : "Other", - "key.doclength" : 58, - "key.docoffset" : 737, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> `default`<\/decl.name>: `Self`<\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 78, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "default", - "key.namelength" : 7, - "key.nameoffset" : 817, - "key.offset" : 806, - "key.parsed_declaration" : "public static let `default` : Self = .init { animations in\n animations()\n}", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.typename" : "ListAnimation", - "key.typeusr" : "$s10ListableUI13ListAnimationVD", - "key.usr" : "s:10ListableUI13ListAnimationV7defaultACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let fast: `Self`<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 968 - } - ], - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A faster animation than the default `UICollectionView` animation.", - "key.doc.column" : 23, - "key.doc.comment" : "A faster animation than the default `UICollectionView` animation.", - "key.doc.declaration" : "public static let fast: `Self`", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.doc.full_as_xml" : "fast<\/Name>s:10ListableUI13ListAnimationV4fastACvpZ<\/USR>public static let fast: `Self`<\/Declaration>A faster animation than the default UICollectionView<\/codeVoice> animation.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 33, - "key.doc.name" : "fast", - "key.doc.type" : "Other", - "key.doclength" : 70, - "key.docoffset" : 894, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> fast<\/decl.name>: `Self`<\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 119, - "key.line" : 33, - "key.modulename" : "ListableUI", - "key.name" : "fast", - "key.namelength" : 4, - "key.nameoffset" : 986, - "key.offset" : 975, - "key.parsed_declaration" : "public static let fast : Self = .init { animations in\n UIView.animate(withDuration: 0.15, animations: animations)\n}", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 33, - "key.reusingastcontext" : false, - "key.typename" : "ListAnimation", - "key.typeusr" : "$s10ListableUI13ListAnimationVD", - "key.usr" : "s:10ListableUI13ListAnimationV4fastACvpZ" - } - ], - "key.typename" : "ListAnimation.Type", - "key.typeusr" : "$s10ListableUI13ListAnimationVmD", - "key.usr" : "s:10ListableUI13ListAnimationV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 10487, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@dynamicMemberLookup public struct ListProperties<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1393 - }, - { - "key.attribute" : "source.decl.attribute.dynamicMemberLookup", - "key.length" : 20, - "key.offset" : 1372 - } - ], - "key.bodylength" : 9062, - "key.bodyoffset" : 1423, - "key.column" : 36, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `ListProperties` object describes all of the given values needed to configure\nand display a list on screen. It is usually used in declarative APIs which deal in descriptions of views\n(eg, Blueprint, SwiftUI, `ListViewController`) in place of referencing and managing a view directly.\n\nFor example, in `BlueprintUILists`, you create a Listable `List` element like so:\n```\nList { list in\n list.appearance = .myAppearance\n list.layout = .myLayout\n\n list(\"first section\") { section in\n section += MyItem()\n section += MyItem()\n }\n}\n```\nIn this example, the `list` parameter to the trailing closure is a `ListProperties` object.\n\n### Other Uses\nYou may even find using `ListProperties` useful if you do have a reference to the underlying `ListView`\ninstance (eg in your own `UIViewController`).\n\nIn these cases, you can apply `ListProperties` to a `ListView` by calling one of the\navailable `func configure(with:)` methods. Having a separate method which describes and provides\nall the properties to configure your `ListView` allows for a more singular flow of data through your application,\nand eases in testability.", - "key.doc.column" : 36, - "key.doc.comment" : "\nThe `ListProperties` object describes all of the given values needed to configure\nand display a list on screen. It is usually used in declarative APIs which deal in descriptions of views\n(eg, Blueprint, SwiftUI, `ListViewController`) in place of referencing and managing a view directly.\n\nFor example, in `BlueprintUILists`, you create a Listable `List` element like so:\n```\nList { list in\n list.appearance = .myAppearance\n list.layout = .myLayout\n\n list(\"first section\") { section in\n section += MyItem()\n section += MyItem()\n }\n}\n```\nIn this example, the `list` parameter to the trailing closure is a `ListProperties` object.\n\n### Other Uses\nYou may even find using `ListProperties` useful if you do have a reference to the underlying `ListView`\ninstance (eg in your own `UIViewController`).\n\nIn these cases, you can apply `ListProperties` to a `ListView` by calling one of the\navailable `func configure(with:)` methods. Having a separate method which describes and provides\nall the properties to configure your `ListView` allows for a more singular flow of data through your application,\nand eases in testability.", - "key.doc.declaration" : "@dynamicMemberLookup public struct ListProperties", - "key.doc.discussion" : [ - { - "Para" : "For example, in `BlueprintUILists`, you create a Listable `List` element like so:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "In this example, the `list` parameter to the trailing closure is a `ListProperties` object." - }, - { - "Para" : "You may even find using `ListProperties` useful if you do have a reference to the underlying `ListView` instance (eg in your own `UIViewController`)." - }, - { - "Para" : "In these cases, you can apply `ListProperties` to a `ListView` by calling one of the available `func configure(with:)` methods. Having a separate method which describes and provides all the properties to configure your `ListView` allows for a more singular flow of data through your application, and eases in testability." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "ListProperties<\/Name>s:10ListableUI14ListPropertiesV<\/USR>@dynamicMemberLookup public struct ListProperties<\/Declaration>The ListProperties<\/codeVoice> object describes all of the given values needed to configure and display a list on screen. It is usually used in declarative APIs which deal in descriptions of views (eg, Blueprint, SwiftUI, ListViewController<\/codeVoice>) in place of referencing and managing a view directly.<\/Para><\/Abstract>For example, in BlueprintUILists<\/codeVoice>, you create a Listable List<\/codeVoice> element like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In this example, the list<\/codeVoice> parameter to the trailing closure is a ListProperties<\/codeVoice> object.<\/Para>]]><\/rawHTML>Other Uses]]><\/rawHTML>You may even find using ListProperties<\/codeVoice> useful if you do have a reference to the underlying ListView<\/codeVoice> instance (eg in your own UIViewController<\/codeVoice>).<\/Para>In these cases, you can apply ListProperties<\/codeVoice> to a ListView<\/codeVoice> by calling one of the available func configure(with:)<\/codeVoice> methods. Having a separate method which describes and provides all the properties to configure your ListView<\/codeVoice> allows for a more singular flow of data through your application, and eases in testability.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 39, - "key.doc.name" : "ListProperties", - "key.doc.type" : "Class", - "key.doclength" : 1247, - "key.docoffset" : 125, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "@dynamicMemberLookup<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListProperties<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 9086, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "ListProperties", - "key.namelength" : 14, - "key.nameoffset" : 1407, - "key.offset" : 1400, - "key.parsed_declaration" : "@dynamicMemberLookup public struct ListProperties", - "key.parsed_scope.end" : 324, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 22, - "key.name" : "MARK: Animated Changes", - "key.offset" : 1438 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var animatesChanges: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1638 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the changes applied should be animated or not.\nDefaults to `true` if `ListProperties` is created inside an existing `UIView` animation block.", - "key.doc.column" : 16, - "key.doc.comment" : "If the changes applied should be animated or not.\nDefaults to `true` if `ListProperties` is created inside an existing `UIView` animation block.", - "key.doc.declaration" : "public var animatesChanges: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "animatesChanges<\/Name>s:10ListableUI14ListPropertiesV15animatesChangesSbvp<\/USR>public var animatesChanges: Bool<\/Declaration>If the changes applied should be animated or not. Defaults to true<\/codeVoice> if ListProperties<\/codeVoice> is created inside an existing UIView<\/codeVoice> animation block.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 47, - "key.doc.name" : "animatesChanges", - "key.doc.type" : "Other", - "key.doclength" : 157, - "key.docoffset" : 1477, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> animatesChanges<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "animatesChanges", - "key.namelength" : 15, - "key.nameoffset" : 1649, - "key.offset" : 1645, - "key.parsed_declaration" : "public var animatesChanges : Bool", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI14ListPropertiesV15animatesChangesSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var animation: ListAnimation<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1727 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The animation to use for any changes.", - "key.doc.column" : 16, - "key.doc.comment" : "The animation to use for any changes.", - "key.doc.declaration" : "public var animation: ListAnimation", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "animation<\/Name>s:10ListableUI14ListPropertiesV9animationAA0C9AnimationVvp<\/USR>public var animation: ListAnimation<\/Declaration>The animation to use for any changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 50, - "key.doc.name" : "animation", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 1681, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> animation<\/decl.name>: ListAnimation<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "animation", - "key.namelength" : 9, - "key.nameoffset" : 1738, - "key.offset" : 1734, - "key.parsed_declaration" : "public var animation : ListAnimation", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListAnimation", - "key.typeusr" : "$s10ListableUI13ListAnimationVD", - "key.usr" : "s:10ListableUI14ListPropertiesV9animationAA0C9AnimationVvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 18, - "key.name" : "MARK: List Content", - "key.offset" : 1783 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var content: Content<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2260 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content displayed by the list.\nNote that you do not need to reference `list.content` to add sections to the content.\n`ListProperties` has helper methods which allow directly adding sections to the `list`:\n```\nlet list : ListProperties = ...\n\nlist(\"section one\") { section in\n\n}\n\nlist += Section(\"section two\") { section in\n\n}\n```", - "key.doc.column" : 16, - "key.doc.comment" : "The content displayed by the list.\nNote that you do not need to reference `list.content` to add sections to the content.\n`ListProperties` has helper methods which allow directly adding sections to the `list`:\n```\nlet list : ListProperties = ...\n\nlist(\"section one\") { section in\n\n}\n\nlist += Section(\"section two\") { section in\n\n}\n```", - "key.doc.declaration" : "public var content: Content", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI14ListPropertiesV7contentAA7ContentVvp<\/USR>public var content: Content<\/Declaration>The content displayed by the list. Note that you do not need to reference list.content<\/codeVoice> to add sections to the content. ListProperties<\/codeVoice> has helper methods which allow directly adding sections to the list<\/codeVoice>:<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 70, - "key.doc.name" : "content", - "key.doc.type" : "Other", - "key.doclength" : 438, - "key.docoffset" : 1818, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 70, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 2271, - "key.offset" : 2267, - "key.parsed_declaration" : "public var content : Content", - "key.parsed_scope.end" : 70, - "key.parsed_scope.start" : 70, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Content", - "key.typeusr" : "$s10ListableUI7ContentVD", - "key.usr" : "s:10ListableUI14ListPropertiesV7contentAA7ContentVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var environment: ListEnvironment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2348 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The environment associated with the List.", - "key.doc.column" : 16, - "key.doc.comment" : "The environment associated with the List.", - "key.doc.declaration" : "public var environment: ListEnvironment", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI14ListPropertiesV11environmentAA0C11EnvironmentVvp<\/USR>public var environment: ListEnvironment<\/Declaration>The environment associated with the List.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 73, - "key.doc.name" : "environment", - "key.doc.type" : "Other", - "key.doclength" : 46, - "key.docoffset" : 2298, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "environment", - "key.namelength" : 11, - "key.nameoffset" : 2359, - "key.offset" : 2355, - "key.parsed_declaration" : "public var environment : ListEnvironment", - "key.parsed_scope.end" : 73, - "key.parsed_scope.start" : 73, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVD", - "key.usr" : "s:10ListableUI14ListPropertiesV11environmentAA0C11EnvironmentVvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 25, - "key.name" : "MARK: Layout & Appearance", - "key.offset" : 2404 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layout: LayoutDescription<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3050 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The layout type to use with the list. Defaults to `.table()`, aka a table\nwith no spacing and full width headers, footers, and content – basically a plain table view.\n\nIf you would like to change the layout to either a new type, or provide\na `list` with different configuration options, assign it here.\n\n```\nlist.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```", - "key.doc.column" : 16, - "key.doc.comment" : "The layout type to use with the list. Defaults to `.table()`, aka a table\nwith no spacing and full width headers, footers, and content – basically a plain table view.\n\nIf you would like to change the layout to either a new type, or provide\na `list` with different configuration options, assign it here.\n\n```\nlist.layout = .table {\n $0.stickySectionHeaders = true\n\n $0.bounds = .init(padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))\n $0.layout.itemSpacing = 10.0\n}\n```", - "key.doc.declaration" : "public var layout: LayoutDescription", - "key.doc.discussion" : [ - { - "Para" : "If you would like to change the layout to either a new type, or provide a `list` with different configuration options, assign it here." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI14ListPropertiesV6layoutAA17LayoutDescriptionVvp<\/USR>public var layout: LayoutDescription<\/Declaration>The layout type to use with the list. Defaults to .table()<\/codeVoice>, aka a table with no spacing and full width headers, footers, and content – basically a plain table view.<\/Para><\/Abstract>If you would like to change the layout to either a new type, or provide a list<\/codeVoice> with different configuration options, assign it here.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 93, - "key.doc.name" : "layout", - "key.doc.type" : "Other", - "key.doclength" : 600, - "key.docoffset" : 2446, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: LayoutDescription<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "layout", - "key.namelength" : 6, - "key.nameoffset" : 3061, - "key.offset" : 3057, - "key.parsed_declaration" : "public var layout : LayoutDescription", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "LayoutDescription", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVD", - "key.usr" : "s:10ListableUI14ListPropertiesV6layoutAA17LayoutDescriptionVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var appearance: Appearance<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3142 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The appearance to use with the list.", - "key.doc.column" : 16, - "key.doc.comment" : "The appearance to use with the list.", - "key.doc.declaration" : "public var appearance: Appearance", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "appearance<\/Name>s:10ListableUI14ListPropertiesV10appearanceAA10AppearanceVvp<\/USR>public var appearance: Appearance<\/Declaration>The appearance to use with the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 96, - "key.doc.name" : "appearance", - "key.doc.type" : "Other", - "key.doclength" : 41, - "key.docoffset" : 3097, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 96, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 3153, - "key.offset" : 3149, - "key.parsed_declaration" : "public var appearance : Appearance", - "key.parsed_scope.end" : 96, - "key.parsed_scope.start" : 96, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Appearance", - "key.typeusr" : "$s10ListableUI10AppearanceVD", - "key.usr" : "s:10ListableUI14ListPropertiesV10appearanceAA10AppearanceVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var scrollIndicatorInsets: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3239 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The scroll insets to apply to the list view.", - "key.doc.column" : 16, - "key.doc.comment" : "The scroll insets to apply to the list view.", - "key.doc.declaration" : "public var scrollIndicatorInsets: UIEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "scrollIndicatorInsets<\/Name>s:10ListableUI14ListPropertiesV21scrollIndicatorInsetsSo06UIEdgeG0Vvp<\/USR>public var scrollIndicatorInsets: UIEdgeInsets<\/Declaration>The scroll insets to apply to the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 99, - "key.doc.name" : "scrollIndicatorInsets", - "key.doc.type" : "Other", - "key.doclength" : 49, - "key.docoffset" : 3186, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollIndicatorInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "scrollIndicatorInsets", - "key.namelength" : 21, - "key.nameoffset" : 3250, - "key.offset" : 3246, - "key.parsed_declaration" : "public var scrollIndicatorInsets : UIEdgeInsets", - "key.parsed_scope.end" : 99, - "key.parsed_scope.start" : 99, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI14ListPropertiesV21scrollIndicatorInsetsSo06UIEdgeG0Vvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 14, - "key.name" : "MARK: Behavior", - "key.offset" : 3306 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var behavior: Behavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3804 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The various behavior options to apply to the list, which affect how the user\nwill interact with the list view. This includes keyboard dismissal, selection mode,\nunderflow behavior, etc.\n\nNote that some of the parameters within `Behavior` are not authoritative;\nthey may be overridden by the provided `layout`. For example, even if your\n`behavior` disables scroll view paging, the `.paged` layout will enable it.", - "key.doc.column" : 16, - "key.doc.comment" : "The various behavior options to apply to the list, which affect how the user\nwill interact with the list view. This includes keyboard dismissal, selection mode,\nunderflow behavior, etc.\n\nNote that some of the parameters within `Behavior` are not authoritative;\nthey may be overridden by the provided `layout`. For example, even if your\n`behavior` disables scroll view paging, the `.paged` layout will enable it.", - "key.doc.declaration" : "public var behavior: Behavior", - "key.doc.discussion" : [ - { - "Para" : "Note that some of the parameters within `Behavior` are not authoritative; they may be overridden by the provided `layout`. For example, even if your `behavior` disables scroll view paging, the `.paged` layout will enable it." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "behavior<\/Name>s:10ListableUI14ListPropertiesV8behaviorAA8BehaviorVvp<\/USR>public var behavior: Behavior<\/Declaration>The various behavior options to apply to the list, which affect how the user will interact with the list view. This includes keyboard dismissal, selection mode, underflow behavior, etc.<\/Para><\/Abstract>Note that some of the parameters within Behavior<\/codeVoice> are not authoritative; they may be overridden by the provided layout<\/codeVoice>. For example, even if your behavior<\/codeVoice> disables scroll view paging, the .paged<\/codeVoice> layout will enable it.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "behavior", - "key.doc.type" : "Other", - "key.doclength" : 463, - "key.docoffset" : 3337, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 112, - "key.modulename" : "ListableUI", - "key.name" : "behavior", - "key.namelength" : 8, - "key.nameoffset" : 3815, - "key.offset" : 3811, - "key.parsed_declaration" : "public var behavior : Behavior", - "key.parsed_scope.end" : 112, - "key.parsed_scope.start" : 112, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior", - "key.typeusr" : "$s10ListableUI8BehaviorVD", - "key.usr" : "s:10ListableUI14ListPropertiesV8behaviorAA8BehaviorVvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 40, - "key.name" : "MARK: Reading State & Performing Actions", - "key.offset" : 3854 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var stateObserver: ListStateObserver<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4182 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The state reader to use with your list. A `ListStateObserver`\nallows for observing changes to the list as they happen,\neither due to user interaction, content update, view hierarchy changes, etc.\nSee the `ListStateObserver` type for more.", - "key.doc.column" : 16, - "key.doc.comment" : "The state reader to use with your list. A `ListStateObserver`\nallows for observing changes to the list as they happen,\neither due to user interaction, content update, view hierarchy changes, etc.\nSee the `ListStateObserver` type for more.", - "key.doc.declaration" : "public var stateObserver: ListStateObserver", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "stateObserver<\/Name>s:10ListableUI14ListPropertiesV13stateObserverAA0c5StateF0Vvp<\/USR>public var stateObserver: ListStateObserver<\/Declaration>The state reader to use with your list. A ListStateObserver<\/codeVoice> allows for observing changes to the list as they happen, either due to user interaction, content update, view hierarchy changes, etc. See the ListStateObserver<\/codeVoice> type for more.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 122, - "key.doc.name" : "stateObserver", - "key.doc.type" : "Other", - "key.doclength" : 267, - "key.docoffset" : 3911, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stateObserver<\/decl.name>: ListStateObserver<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 122, - "key.modulename" : "ListableUI", - "key.name" : "stateObserver", - "key.namelength" : 13, - "key.nameoffset" : 4193, - "key.offset" : 4189, - "key.parsed_declaration" : "public var stateObserver : ListStateObserver", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 122, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListStateObserver", - "key.typeusr" : "$s10ListableUI17ListStateObserverVD", - "key.usr" : "s:10ListableUI14ListPropertiesV13stateObserverAA0c5StateF0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var actions: ListActions<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4660 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The actions instance to use to control the list, eg to scroll to a given\nrow or enable interactive view transitions. See the `ListActions` type\nfor more information.\n\nNote that you can only associate one `ListActions` with a list at a given time.\nWhen a new instance is provided, the old one becomes a no-op instance; calling\nmethods on it will have no effect.\n", - "key.doc.column" : 16, - "key.doc.comment" : "The actions instance to use to control the list, eg to scroll to a given\nrow or enable interactive view transitions. See the `ListActions` type\nfor more information.\n\nNote that you can only associate one `ListActions` with a list at a given time.\nWhen a new instance is provided, the old one becomes a no-op instance; calling\nmethods on it will have no effect.", - "key.doc.declaration" : "public var actions: ListActions?", - "key.doc.discussion" : [ - { - "Para" : "Note that you can only associate one `ListActions` with a list at a given time. When a new instance is provided, the old one becomes a no-op instance; calling methods on it will have no effect." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI14ListPropertiesV7actionsAA0C7ActionsCSgvp<\/USR>public var actions: ListActions?<\/Declaration>The actions instance to use to control the list, eg to scroll to a given row or enable interactive view transitions. See the ListActions<\/codeVoice> type for more information.<\/Para><\/Abstract>Note that you can only associate one ListActions<\/codeVoice> with a list at a given time. When a new instance is provided, the old one becomes a no-op instance; calling methods on it will have no effect.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 132, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.doclength" : 420, - "key.docoffset" : 4236, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 132, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 4671, - "key.offset" : 4667, - "key.parsed_declaration" : "public var actions : ListActions?", - "key.parsed_scope.end" : 132, - "key.parsed_scope.start" : 132, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListActions?", - "key.typeusr" : "$s10ListableUI11ListActionsCSgD", - "key.usr" : "s:10ListableUI14ListPropertiesV7actionsAA0C7ActionsCSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var autoScrollAction: AutoScrollAction<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4868 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The auto scroll action to apply to the list. This allows you to\nscroll to a given item on insert depending on the current state\nof the view.", - "key.doc.column" : 16, - "key.doc.comment" : "The auto scroll action to apply to the list. This allows you to\nscroll to a given item on insert depending on the current state\nof the view.", - "key.doc.declaration" : "public var autoScrollAction: AutoScrollAction", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "autoScrollAction<\/Name>s:10ListableUI14ListPropertiesV16autoScrollActionAA04AutofG0Ovp<\/USR>public var autoScrollAction: AutoScrollAction<\/Declaration>The auto scroll action to apply to the list. This allows you to scroll to a given item on insert depending on the current state of the view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 137, - "key.doc.name" : "autoScrollAction", - "key.doc.type" : "Other", - "key.doclength" : 161, - "key.docoffset" : 4703, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> autoScrollAction<\/decl.name>: AutoScrollAction<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 137, - "key.modulename" : "ListableUI", - "key.name" : "autoScrollAction", - "key.namelength" : 16, - "key.nameoffset" : 4879, - "key.offset" : 4875, - "key.parsed_declaration" : "public var autoScrollAction : AutoScrollAction", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 137, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "AutoScrollAction", - "key.typeusr" : "$s10ListableUI16AutoScrollActionOD", - "key.usr" : "s:10ListableUI14ListPropertiesV16autoScrollActionAA04AutofG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onKeyboardFrameWillChange: ListView<\/Type>.KeyboardFrameWillChangeCallback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4974 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Called whenever a keyboard change is detected", - "key.doc.column" : 16, - "key.doc.comment" : "Called whenever a keyboard change is detected", - "key.doc.declaration" : "public var onKeyboardFrameWillChange: ListView.KeyboardFrameWillChangeCallback?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "onKeyboardFrameWillChange<\/Name>s:10ListableUI14ListPropertiesV25onKeyboardFrameWillChangey0F8Observer0f7CurrentG8Provider_p_Sd17animationDuration_So20UIViewAnimationCurveV0mQ0ttcSgvp<\/USR>public var onKeyboardFrameWillChange: ListView.KeyboardFrameWillChangeCallback?<\/Declaration>Called whenever a keyboard change is detected<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 140, - "key.doc.name" : "onKeyboardFrameWillChange", - "key.doc.type" : "Other", - "key.doclength" : 50, - "key.docoffset" : 4920, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onKeyboardFrameWillChange<\/decl.name>: ListView<\/ref.class>.KeyboardFrameWillChangeCallback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 72, - "key.line" : 140, - "key.modulename" : "ListableUI", - "key.name" : "onKeyboardFrameWillChange", - "key.namelength" : 25, - "key.nameoffset" : 4985, - "key.offset" : 4981, - "key.parsed_declaration" : "public var onKeyboardFrameWillChange: ListView.KeyboardFrameWillChangeCallback?", - "key.parsed_scope.end" : 140, - "key.parsed_scope.start" : 140, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((any KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ())?", - "key.typeusr" : "$sy16KeyboardObserver0A20CurrentFrameProvider_p_Sd17animationDuration_So20UIViewAnimationCurveV0fJ0ttcSgD", - "key.usr" : "s:10ListableUI14ListPropertiesV25onKeyboardFrameWillChangey0F8Observer0f7CurrentG8Provider_p_Sd17animationDuration_So20UIViewAnimationCurveV0mQ0ttcSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 17, - "key.name" : "MARK: Identifiers", - "key.offset" : 5073 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var accessibilityIdentifier: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5186 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The accessibility identifier assigned to the inner `UICollectionView`.", - "key.doc.column" : 16, - "key.doc.comment" : "The accessibility identifier assigned to the inner `UICollectionView`.", - "key.doc.declaration" : "public var accessibilityIdentifier: String?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "accessibilityIdentifier<\/Name>s:10ListableUI14ListPropertiesV23accessibilityIdentifierSSSgvp<\/USR>public var accessibilityIdentifier: String?<\/Declaration>The accessibility identifier assigned to the inner UICollectionView<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 147, - "key.doc.name" : "accessibilityIdentifier", - "key.doc.type" : "Other", - "key.doclength" : 75, - "key.docoffset" : 5107, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> accessibilityIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 147, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityIdentifier", - "key.namelength" : 23, - "key.nameoffset" : 5197, - "key.offset" : 5193, - "key.parsed_declaration" : "public var accessibilityIdentifier: String?", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 147, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI14ListPropertiesV23accessibilityIdentifierSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var debuggingIdentifier: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5378 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The debugging identifier assigned to the list. Used for `os_signpost` integration\nyou can observe through Instruments.app.", - "key.doc.column" : 16, - "key.doc.comment" : "The debugging identifier assigned to the list. Used for `os_signpost` integration\nyou can observe through Instruments.app.", - "key.doc.declaration" : "public var debuggingIdentifier: String?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "debuggingIdentifier<\/Name>s:10ListableUI14ListPropertiesV19debuggingIdentifierSSSgvp<\/USR>public var debuggingIdentifier: String?<\/Declaration>The debugging identifier assigned to the list. Used for os_signpost<\/codeVoice> integration you can observe through Instruments.app.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 151, - "key.doc.name" : "debuggingIdentifier", - "key.doc.type" : "Other", - "key.doclength" : 135, - "key.docoffset" : 5239, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 151, - "key.modulename" : "ListableUI", - "key.name" : "debuggingIdentifier", - "key.namelength" : 19, - "key.nameoffset" : 5389, - "key.offset" : 5385, - "key.parsed_declaration" : "public var debuggingIdentifier: String?", - "key.parsed_scope.end" : 151, - "key.parsed_scope.start" : 151, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI14ListPropertiesV19debuggingIdentifierSSSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 5437 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListProperties<\/Type>.Configure = (inout ListProperties<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5470 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListProperties<\/ref.struct>.Configure<\/decl.name> = (inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 50, - "key.line" : 157, - "key.modulename" : "ListableUI", - "key.name" : "Configure", - "key.namelength" : 9, - "key.nameoffset" : 5487, - "key.offset" : 5477, - "key.parsed_declaration" : "public typealias Configure = (inout ListProperties) -> ()", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 157, - "key.reusingastcontext" : false, - "key.typename" : "((inout ListProperties) -> ()).Type", - "key.typeusr" : "$sy10ListableUI14ListPropertiesVzcmD", - "key.usr" : "s:10ListableUI14ListPropertiesV9Configurea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func `default`(with configure: Configure<\/Type> = { _ in }) -> ListProperties<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5607 - } - ], - "key.bodylength" : 427, - "key.bodyoffset" : 5698, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An instance of `ListProperties` with sensible default values.", - "key.doc.column" : 24, - "key.doc.comment" : "An instance of `ListProperties` with sensible default values.", - "key.doc.declaration" : "public static func `default`(with configure: Configure = { _ in }) -> ListableUI.ListProperties", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "default(with:)<\/Name>s:10ListableUI14ListPropertiesV7default4withACyACzXE_tFZ<\/USR>public static func `default`(with configure: Configure = { _ in }) -> ListableUI.ListProperties<\/Declaration>An instance of ListProperties<\/codeVoice> with sensible default values.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 160, - "key.doc.name" : "default(with:)", - "key.doc.type" : "Function", - "key.doclength" : 66, - "key.docoffset" : 5537, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> `default`<\/decl.name>(with<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: Configure<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> ListProperties<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 512, - "key.line" : 160, - "key.modulename" : "ListableUI", - "key.name" : "default(with:)", - "key.namelength" : 62, - "key.nameoffset" : 5626, - "key.offset" : 5614, - "key.parsed_declaration" : "public static func `default`(\n with configure : Configure = { _ in }\n) -> Self", - "key.parsed_scope.end" : 176, - "key.parsed_scope.start" : 160, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListProperties.Type) -> ((inout ListProperties) -> ()) -> ListProperties", - "key.typeusr" : "$s4with10ListableUI14ListPropertiesVyADzXE_tcD", - "key.usr" : "s:10ListableUI14ListPropertiesV7default4withACyACzXE_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(animatesChanges: Bool<\/Type>, animation: ListAnimation<\/Type>, layout: LayoutDescription<\/Type>, appearance: Appearance<\/Type>, scrollIndicatorInsets: UIEdgeInsets<\/Type>, behavior: Behavior<\/Type>, autoScrollAction: AutoScrollAction<\/Type>, onKeyboardFrameWillChange: ListView<\/Type>.KeyboardFrameWillChangeCallback<\/Type>?, accessibilityIdentifier: String<\/Type>?, debuggingIdentifier: String<\/Type>?, configure: Configure<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6212 - } - ], - "key.bodylength" : 650, - "key.bodyoffset" : 6675, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create a new instance of `ListProperties` with the provided values.", - "key.doc.column" : 12, - "key.doc.comment" : "Create a new instance of `ListProperties` with the provided values.", - "key.doc.declaration" : "public init(animatesChanges: Bool, animation: ListAnimation, layout: LayoutDescription, appearance: Appearance, scrollIndicatorInsets: UIEdgeInsets, behavior: Behavior, autoScrollAction: AutoScrollAction, onKeyboardFrameWillChange: ListView.KeyboardFrameWillChangeCallback?, accessibilityIdentifier: String?, debuggingIdentifier: String?, configure: Configure)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "init(animatesChanges:animation:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:onKeyboardFrameWillChange:accessibilityIdentifier:debuggingIdentifier:configure:)<\/Name>s:10ListableUI14ListPropertiesV15animatesChanges9animation6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction25onKeyboardFrameWillChange23accessibilityIdentifier09debuggingW09configureACSb_AA0C9AnimationVAA17LayoutDescriptionVAA10AppearanceVSo06UIEdgeL0VAA8BehaviorVAA04AutooP0Oy0R8Observer0r7CurrentS8Provider_p_Sd0G8Duration_So06UIViewZ5CurveV0G5CurvettcSgSSSgA6_yACzXEtcfc<\/USR>public init(animatesChanges: Bool, animation: ListAnimation, layout: LayoutDescription, appearance: Appearance, scrollIndicatorInsets: UIEdgeInsets, behavior: Behavior, autoScrollAction: AutoScrollAction, onKeyboardFrameWillChange: ListView.KeyboardFrameWillChangeCallback?, accessibilityIdentifier: String?, debuggingIdentifier: String?, configure: Configure)<\/Declaration>Create a new instance of ListProperties<\/codeVoice> with the provided values.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 179, - "key.doc.name" : "init(animatesChanges:animation:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:onKeyboardFrameWillChange:accessibilityIdentifier:debuggingIdentifier:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 72, - "key.docoffset" : 6136, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(animatesChanges<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animation<\/decl.var.parameter.argument_label>: ListAnimation<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: LayoutDescription<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, scrollIndicatorInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, autoScrollAction<\/decl.var.parameter.argument_label>: AutoScrollAction<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, onKeyboardFrameWillChange<\/decl.var.parameter.argument_label>: ListView<\/ref.class>.KeyboardFrameWillChangeCallback<\/ref.typealias>?<\/decl.var.parameter.type><\/decl.var.parameter>, accessibilityIdentifier<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, debuggingIdentifier<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1107, - "key.line" : 179, - "key.modulename" : "ListableUI", - "key.name" : "init(animatesChanges:animation:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:onKeyboardFrameWillChange:accessibilityIdentifier:debuggingIdentifier:configure:)", - "key.namelength" : 454, - "key.nameoffset" : 6219, - "key.offset" : 6219, - "key.parsed_declaration" : "public init(\n animatesChanges: Bool,\n animation : ListAnimation,\n layout : LayoutDescription,\n appearance : Appearance,\n scrollIndicatorInsets : UIEdgeInsets,\n behavior : Behavior,\n autoScrollAction : AutoScrollAction,\n onKeyboardFrameWillChange: ListView.KeyboardFrameWillChangeCallback?,\n accessibilityIdentifier: String?,\n debuggingIdentifier: String?,\n configure : Configure\n)", - "key.parsed_scope.end" : 209, - "key.parsed_scope.start" : 179, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListProperties.Type) -> (Bool, ListAnimation, LayoutDescription, Appearance, UIEdgeInsets, Behavior, AutoScrollAction, ((any KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ())?, String?, String?, (inout ListProperties) -> ()) -> ListProperties", - "key.typeusr" : "$s15animatesChanges9animation6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction25onKeyboardFrameWillChange23accessibilityIdentifier09debuggingS09configure10ListableUI14ListPropertiesVSb_AL0X9AnimationVAL17LayoutDescriptionVAL10AppearanceVSo06UIEdgeH0VAL8BehaviorVAL04AutokL0Oy0N8Observer0n7CurrentO8Provider_p_Sd0C8Duration_So06UIViewZ5CurveV0C5CurvettcSgSSSgA6_yANzXEtcD", - "key.usr" : "s:10ListableUI14ListPropertiesV15animatesChanges9animation6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction25onKeyboardFrameWillChange23accessibilityIdentifier09debuggingW09configureACSb_AA0C9AnimationVAA17LayoutDescriptionVAA10AppearanceVSo06UIEdgeL0VAA8BehaviorVAA04AutooP0Oy0R8Observer0r7CurrentS8Provider_p_Sd0G8Duration_So06UIViewZ5CurveV0G5CurvettcSgSSSgA6_yACzXEtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 21, - "key.name" : "MARK: Reading Content", - "key.offset" : 7346 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public subscript<Value>(dynamicMember keyPath: KeyPath<\/Type><Content<\/Type>, Value<\/Type>>) -> Value<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7858 - } - ], - "key.bodylength" : 52, - "key.bodyoffset" : 7940, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows directly reading properties on the list's `Content`, without having to explicitly specify\nthe `.content` component.\n\nEg, you can now replace:\n```\nListProperties { list in\n ... = list.content.firstItem\n ... = list.content.lastItem\n}\n```\nWith:\n```\nListProperties { list in\n ... = list.firstItem\n ... = list.lastItem\n}\n```", - "key.doc.column" : 12, - "key.doc.comment" : "Allows directly reading properties on the list's `Content`, without having to explicitly specify\nthe `.content` component.\n\nEg, you can now replace:\n```\nListProperties { list in\n ... = list.content.firstItem\n ... = list.content.lastItem\n}\n```\nWith:\n```\nListProperties { list in\n ... = list.firstItem\n ... = list.lastItem\n}\n```", - "key.doc.declaration" : "public subscript(dynamicMember keyPath: KeyPath) -> Value { get }", - "key.doc.discussion" : [ - { - "Para" : "Eg, you can now replace:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "With:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "subscript(dynamicMember:)<\/Name>s:10ListableUI14ListPropertiesV13dynamicMemberxs7KeyPathCyAA7ContentVxG_tcluip<\/USR>public subscript<Value>(dynamicMember keyPath: KeyPath<Content, Value>) -> Value { get }<\/Declaration>Allows directly reading properties on the list’s Content<\/codeVoice>, without having to explicitly specify the .content<\/codeVoice> component.<\/Para><\/Abstract>Eg, you can now replace:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>With:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 232, - "key.doc.name" : "subscript(dynamicMember:)", - "key.doc.type" : "Other", - "key.doclength" : 470, - "key.docoffset" : 7384, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(dynamicMember<\/decl.var.parameter.argument_label> keyPath<\/decl.var.parameter.name>: KeyPath<\/ref.class><Content<\/ref.struct>, Value<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Value<\/ref.generic_type_param><\/decl.function.returntype> { get<\/syntaxtype.keyword> }<\/decl.function.subscript>", - "key.kind" : "source.lang.swift.decl.function.subscript", - "key.length" : 128, - "key.line" : 232, - "key.modulename" : "ListableUI", - "key.name" : "subscript(dynamicMember:)", - "key.namelength" : 64, - "key.nameoffset" : 7865, - "key.offset" : 7865, - "key.parsed_declaration" : "public subscript(dynamicMember keyPath: KeyPath) -> Value", - "key.parsed_scope.end" : 234, - "key.parsed_scope.start" : 232, - "key.related_decls" : [ - { - "key.annotated_decl" : "subscript(dynamicMember:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 232, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 7875, - "key.offset" : 7875, - "key.parsed_declaration" : "public subscript (dynamicMember: KeyPath) -> Value", - "key.typeusr" : "$s13dynamicMemberxs7KeyPathCy10ListableUI7ContentVxG_tcluD", - "key.usr" : "s:10ListableUI14ListPropertiesV13dynamicMemberxs7KeyPathCyAA7ContentVxG_tcluip" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Adding Content", - "key.offset" : 8013 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public subscript<Value>(dynamicMember keyPath: WritableKeyPath<\/Type><Content<\/Type>, Value<\/Type>>) -> Value<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8514 - } - ], - "key.bodylength" : 110, - "key.bodyoffset" : 8604, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows directly setting properties on the list's `Content`, without having to explicitly specify\nthe `.content` component.\n\nEg, you can now replace:\n```\nListProperties { list in\n list.content.header = ...\n list.content.footer = ...\n}\n```\nWith:\n```\nListProperties { list in\n list.header = ...\n list.footer = ...\n}\n```", - "key.doc.column" : 12, - "key.doc.comment" : "Allows directly setting properties on the list's `Content`, without having to explicitly specify\nthe `.content` component.\n\nEg, you can now replace:\n```\nListProperties { list in\n list.content.header = ...\n list.content.footer = ...\n}\n```\nWith:\n```\nListProperties { list in\n list.header = ...\n list.footer = ...\n}\n```", - "key.doc.declaration" : "public subscript(dynamicMember keyPath: WritableKeyPath) -> Value { get set }", - "key.doc.discussion" : [ - { - "Para" : "Eg, you can now replace:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "With:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "subscript(dynamicMember:)<\/Name>s:10ListableUI14ListPropertiesV13dynamicMemberxs15WritableKeyPathCyAA7ContentVxG_tcluip<\/USR>public subscript<Value>(dynamicMember keyPath: WritableKeyPath<Content, Value>) -> Value { get set }<\/Declaration>Allows directly setting properties on the list’s Content<\/codeVoice>, without having to explicitly specify the .content<\/codeVoice> component.<\/Para><\/Abstract>Eg, you can now replace:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>With:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 257, - "key.doc.name" : "subscript(dynamicMember:)", - "key.doc.type" : "Other", - "key.doclength" : 460, - "key.docoffset" : 8050, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(dynamicMember<\/decl.var.parameter.argument_label> keyPath<\/decl.var.parameter.name>: WritableKeyPath<\/ref.class><Content<\/ref.struct>, Value<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Value<\/ref.generic_type_param><\/decl.function.returntype> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>", - "key.kind" : "source.lang.swift.decl.function.subscript", - "key.length" : 194, - "key.line" : 257, - "key.modulename" : "ListableUI", - "key.name" : "subscript(dynamicMember:)", - "key.namelength" : 72, - "key.nameoffset" : 8521, - "key.offset" : 8521, - "key.parsed_declaration" : "public subscript(dynamicMember keyPath: WritableKeyPath) -> Value", - "key.parsed_scope.end" : 260, - "key.parsed_scope.start" : 257, - "key.related_decls" : [ - { - "key.annotated_decl" : "subscript(dynamicMember:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.substructure" : [ - { - "key.annotated_decl" : "Value<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 5, - "key.line" : 257, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 8531, - "key.offset" : 8531, - "key.parsed_declaration" : "public subscript (dynamicMember: WritableKeyPath) -> Value", - "key.typeusr" : "$s13dynamicMemberxs15WritableKeyPathCy10ListableUI7ContentVxG_tcluD", - "key.usr" : "s:10ListableUI14ListPropertiesV13dynamicMemberxs15WritableKeyPathCyAA7ContentVxG_tcluip" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func callAsFunction<Identifier>(_ identifier: Identifier<\/Type>, configure: Section<\/Type>.Configure<\/Type>) where Identifier<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 8951 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8944 - } - ], - "key.bodylength" : 63, - "key.bodyoffset" : 9082, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows streamlined creation of sections when building a list:\n```\nlistView.configure { list in\n list(\"section-id\") { section in\n ...\n }\n}\n```", - "key.doc.column" : 26, - "key.doc.comment" : "Allows streamlined creation of sections when building a list:\n```\nlistView.configure { list in\n list(\"section-id\") { section in\n ...\n }\n}\n```", - "key.doc.declaration" : "public mutating func callAsFunction(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "callAsFunction(_:configure:)<\/Name>s:10ListableUI14ListPropertiesV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF<\/USR>public mutating func callAsFunction<Identifier>(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable<\/Declaration>Allows streamlined creation of sections when building a list:<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 270, - "key.doc.name" : "callAsFunction(_:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 215, - "key.docoffset" : 8725, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> callAsFunction<\/decl.name><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Section<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 186, - "key.line" : 270, - "key.modulename" : "ListableUI", - "key.name" : "callAsFunction(_:configure:)", - "key.namelength" : 115, - "key.nameoffset" : 8965, - "key.offset" : 8960, - "key.parsed_declaration" : "public mutating func callAsFunction(\n _ identifier : Identifier,\n configure : Section.Configure\n)", - "key.parsed_scope.end" : 275, - "key.parsed_scope.start" : 270, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Identifier : Hashable<\/Type><\/Declaration>", - "key.column" : 41, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 8991 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 270, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 8980, - "key.offset" : 8980, - "key.parsed_declaration" : "public mutating func callAsFunctionIdentifier<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Identifier.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI14ListPropertiesV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF10IdentifierL_xmfp" - } - ], - "key.typename" : " (inout ListProperties) -> (Identifier, (inout Section) -> ()) -> ()", - "key.typeusr" : "$s_9configureyx_y10ListableUI7SectionVzXEtcSHRzluD", - "key.usr" : "s:10ListableUI14ListPropertiesV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func add(@ListableBuilder<\/Type><Section<\/Type>> sections: () -> [Section<\/Type>])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 9373 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9366 - } - ], - "key.bodylength" : 49, - "key.bodyoffset" : 9460, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Adds the provided sections with the provided result builder.\n\n```\nlist.add {\n Section(\"section1\") { ... }\n Section(\"section2\") { ... }\n}\n```", - "key.doc.column" : 26, - "key.doc.comment" : "Adds the provided sections with the provided result builder.\n\n```\nlist.add {\n Section(\"section1\") { ... }\n Section(\"section2\") { ... }\n}\n```", - "key.doc.declaration" : "public mutating func add(@ListableUI.ListableBuilder sections: () -> [Section])", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "add(sections:)<\/Name>s:10ListableUI14ListPropertiesV3add8sectionsySayAA7SectionVGyXE_tF<\/USR>public mutating func add(@ListableUI.ListableBuilder<ListableUI.Section> sections: () -> [Section])<\/Declaration>Adds the provided sections with the provided result builder.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 285, - "key.doc.name" : "add(sections:)", - "key.doc.type" : "Function", - "key.doclength" : 206, - "key.docoffset" : 9156, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(@ListableBuilder<\/ref.enum><Section<\/ref.struct>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> sections<\/decl.var.parameter.argument_label>: () -> [Section<\/ref.struct>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 128, - "key.line" : 285, - "key.modulename" : "ListableUI", - "key.name" : "add(sections:)", - "key.namelength" : 71, - "key.nameoffset" : 9387, - "key.offset" : 9382, - "key.parsed_declaration" : "public mutating func add(\n @ListableBuilder
sections : () -> [Section]\n)", - "key.parsed_scope.end" : 289, - "key.parsed_scope.start" : 285, - "key.related_decls" : [ - { - "key.annotated_decl" : "add(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListProperties) -> (() -> [Section]) -> ()", - "key.typeusr" : "$s8sectionsySay10ListableUI7SectionVGyXE_tcD", - "key.usr" : "s:10ListableUI14ListPropertiesV3add8sectionsySayAA7SectionVGyXE_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func add(_ section: Section<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 9572 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9565 - } - ], - "key.bodylength" : 51, - "key.bodyoffset" : 9616, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Adds a new section to the `content`.", - "key.doc.column" : 26, - "key.doc.comment" : "Adds a new section to the `content`.", - "key.doc.declaration" : "public mutating func add(_ section: Section)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "add(_:)<\/Name>s:10ListableUI14ListPropertiesV3addyyAA7SectionVF<\/USR>public mutating func add(_ section: Section)<\/Declaration>Adds a new section to the content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 292, - "key.doc.name" : "add(_:)", - "key.doc.type" : "Function", - "key.doclength" : 41, - "key.docoffset" : 9520, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(_<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 87, - "key.line" : 292, - "key.modulename" : "ListableUI", - "key.name" : "add(_:)", - "key.namelength" : 24, - "key.nameoffset" : 9586, - "key.offset" : 9581, - "key.parsed_declaration" : "public mutating func add(_ section : Section)", - "key.parsed_scope.end" : 295, - "key.parsed_scope.start" : 292, - "key.related_decls" : [ - { - "key.annotated_decl" : "add(sections:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListProperties) -> (Section) -> ()", - "key.typeusr" : "$syy10ListableUI7SectionVcD", - "key.usr" : "s:10ListableUI14ListPropertiesV3addyyAA7SectionVF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += (lhs: inout ListProperties<\/Type>, rhs: Section<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9723 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 9794, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Adds a new section to the `content`.", - "key.doc.column" : 24, - "key.doc.comment" : "Adds a new section to the `content`.", - "key.doc.declaration" : "public static func += (lhs: inout ListProperties, rhs: Section)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI14ListPropertiesV2peoiyyACz_AA7SectionVtFZ<\/USR>public static func += (lhs: inout ListProperties, rhs: Section)<\/Declaration>Adds a new section to the content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 298, - "key.doc.name" : "+=(_:_:)", - "key.doc.type" : "Function", - "key.doclength" : 41, - "key.docoffset" : 9678, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 91, - "key.line" : 298, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 46, - "key.nameoffset" : 9742, - "key.offset" : 9730, - "key.parsed_declaration" : "public static func += (lhs : inout ListProperties, rhs : Section)", - "key.parsed_scope.end" : 301, - "key.parsed_scope.start" : 298, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= (_: inout ListProperties, _: [Section])<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var lhs: inout ListProperties<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>", - "key.kind" : "source.lang.swift.decl.var.parameter", - "key.length" : 3, - "key.line" : 298, - "key.modulename" : "ListableUI", - "key.name" : "lhs", - "key.offset" : 9746, - "key.parent_loc" : 9742, - "key.parsed_declaration" : "public static func += (lhs", - "key.parsed_scope.end" : 298, - "key.parsed_scope.start" : 298, - "key.reusingastcontext" : false, - "key.typename" : "ListProperties", - "key.typeusr" : "$s10ListableUI14ListPropertiesVD", - "key.usr" : "s:10ListableUI14ListPropertiesV2peoiyyACz_AA7SectionVtFZ3lhsL_ACvp" - } - ], - "key.typename" : "(ListProperties.Type) -> (inout ListProperties, Section) -> ()", - "key.typeusr" : "$syy10ListableUI14ListPropertiesVz_AA7SectionVtcD", - "key.usr" : "s:10ListableUI14ListPropertiesV2peoiyyACz_AA7SectionVtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += (lhs: inout ListProperties<\/Type>, rhs: [Section<\/Type>])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9885 - } - ], - "key.bodylength" : 41, - "key.bodyoffset" : 9958, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Adds a list of new sections to the `content`.", - "key.doc.column" : 24, - "key.doc.comment" : "Adds a list of new sections to the `content`.", - "key.doc.declaration" : "public static func += (lhs: inout ListProperties, rhs: [Section])", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI14ListPropertiesV2peoiyyACz_SayAA7SectionVGtFZ<\/USR>public static func += (lhs: inout ListProperties, rhs: [Section])<\/Declaration>Adds a list of new sections to the content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 304, - "key.doc.name" : "+=(_:_:)", - "key.doc.type" : "Function", - "key.doclength" : 50, - "key.docoffset" : 9831, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [Section<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 108, - "key.line" : 304, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 48, - "key.nameoffset" : 9904, - "key.offset" : 9892, - "key.parsed_declaration" : "public static func += (lhs : inout ListProperties, rhs : [Section])", - "key.parsed_scope.end" : 307, - "key.parsed_scope.start" : 304, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= (_: inout ListProperties, _: Section)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var lhs: inout ListProperties<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>", - "key.kind" : "source.lang.swift.decl.var.parameter", - "key.length" : 3, - "key.line" : 304, - "key.modulename" : "ListableUI", - "key.name" : "lhs", - "key.offset" : 9908, - "key.parent_loc" : 9904, - "key.parsed_declaration" : "public static func += (lhs", - "key.parsed_scope.end" : 304, - "key.parsed_scope.start" : 304, - "key.reusingastcontext" : false, - "key.typename" : "ListProperties", - "key.typeusr" : "$s10ListableUI14ListPropertiesVD", - "key.usr" : "s:10ListableUI14ListPropertiesV2peoiyyACz_SayAA7SectionVGtFZ3lhsL_ACvp" - } - ], - "key.typename" : "(ListProperties.Type) -> (inout ListProperties, [Section]) -> ()", - "key.typeusr" : "$syy10ListableUI14ListPropertiesVz_SayAA7SectionVGtcD", - "key.usr" : "s:10ListableUI14ListPropertiesV2peoiyyACz_SayAA7SectionVGtFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Modifying Content", - "key.offset" : 10020 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func modify(using configure: Configure<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 10153 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10146 - } - ], - "key.bodylength" : 30, - "key.bodyoffset" : 10204, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Updates the `ListProperties` object with the changes in the provided builder.", - "key.doc.column" : 26, - "key.doc.comment" : "Updates the `ListProperties` object with the changes in the provided builder.", - "key.doc.declaration" : "public mutating func modify(using configure: Configure)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "modify(using:)<\/Name>s:10ListableUI14ListPropertiesV6modify5usingyyACzXE_tF<\/USR>public mutating func modify(using configure: Configure)<\/Declaration>Updates the ListProperties<\/codeVoice> object with the changes in the provided builder.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 314, - "key.doc.name" : "modify(using:)", - "key.doc.type" : "Function", - "key.doclength" : 82, - "key.docoffset" : 10060, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> modify<\/decl.name>(using<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 73, - "key.line" : 314, - "key.modulename" : "ListableUI", - "key.name" : "modify(using:)", - "key.namelength" : 35, - "key.nameoffset" : 10167, - "key.offset" : 10162, - "key.parsed_declaration" : "public mutating func modify(using configure : Configure)", - "key.parsed_scope.end" : 316, - "key.parsed_scope.start" : 314, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListProperties) -> ((inout ListProperties) -> ()) -> ()", - "key.typeusr" : "$s5usingyy10ListableUI14ListPropertiesVzXE_tcD", - "key.usr" : "s:10ListableUI14ListPropertiesV6modify5usingyyACzXE_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func modified(using configure: Configure<\/Type>) -> ListProperties<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10340 - } - ], - "key.bodylength" : 74, - "key.bodyoffset" : 10409, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new `ListProperties` object modified by the changes in the provided builder.", - "key.doc.column" : 17, - "key.doc.comment" : "Creates a new `ListProperties` object modified by the changes in the provided builder.", - "key.doc.declaration" : "public func modified(using configure: Configure) -> ListProperties", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.doc.full_as_xml" : "modified(using:)<\/Name>s:10ListableUI14ListPropertiesV8modified5usingACyACzXE_tF<\/USR>public func modified(using configure: Configure) -> ListProperties<\/Declaration>Creates a new ListProperties<\/codeVoice> object modified by the changes in the provided builder.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 319, - "key.doc.name" : "modified(using:)", - "key.doc.type" : "Function", - "key.doclength" : 91, - "key.docoffset" : 10245, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> modified<\/decl.name>(using<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListProperties<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 137, - "key.line" : 319, - "key.modulename" : "ListableUI", - "key.name" : "modified(using:)", - "key.namelength" : 37, - "key.nameoffset" : 10352, - "key.offset" : 10347, - "key.parsed_declaration" : "public func modified(using configure : Configure) -> ListProperties", - "key.parsed_scope.end" : 323, - "key.parsed_scope.start" : 319, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var copy: ListProperties<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListProperties.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> copy<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 15, - "key.line" : 320, - "key.modulename" : "ListableUI", - "key.name" : "copy", - "key.namelength" : 4, - "key.nameoffset" : 10422, - "key.offset" : 10418, - "key.parsed_declaration" : "var copy = self", - "key.parsed_scope.end" : 320, - "key.parsed_scope.start" : 320, - "key.reusingastcontext" : false, - "key.typename" : "ListProperties", - "key.typeusr" : "$s10ListableUI14ListPropertiesVD", - "key.usr" : "s:10ListableUI14ListPropertiesV8modified5usingACyACzXE_tF4copyL_ACvp" - } - ], - "key.typename" : "(ListProperties) -> ((inout ListProperties) -> ()) -> ListProperties", - "key.typeusr" : "$s5using10ListableUI14ListPropertiesVyADzXE_tcD", - "key.usr" : "s:10ListableUI14ListPropertiesV8modified5usingACyACzXE_tF" - } - ], - "key.typename" : "ListProperties.Type", - "key.typeusr" : "$s10ListableUI14ListPropertiesVmD", - "key.usr" : "s:10ListableUI14ListPropertiesV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 8045, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListScrollPositionInfo : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 477 - } - ], - "key.bodylength" : 5700, - "key.bodyoffset" : 527, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Information about the current scroll position of a list,\nincluding which edges of the list are visible, and which items are visible.\n\nThis is useful within callback APIs where you as a developer may want to\nperform different behavior based on the position of the list, eg, do you\nwant to allow an auto-scroll action, etc.", - "key.doc.column" : 15, - "key.doc.comment" : "Information about the current scroll position of a list,\nincluding which edges of the list are visible, and which items are visible.\n\nThis is useful within callback APIs where you as a developer may want to\nperform different behavior based on the position of the list, eg, do you\nwant to allow an auto-scroll action, etc.", - "key.doc.declaration" : "public struct ListScrollPositionInfo : Equatable", - "key.doc.discussion" : [ - { - "Para" : "This is useful within callback APIs where you as a developer may want to perform different behavior based on the position of the list, eg, do you want to allow an auto-scroll action, etc." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "ListScrollPositionInfo<\/Name>s:10ListableUI22ListScrollPositionInfoV<\/USR>public struct ListScrollPositionInfo : Equatable<\/Declaration>Information about the current scroll position of a list, including which edges of the list are visible, and which items are visible.<\/Para><\/Abstract>This is useful within callback APIs where you as a developer may want to perform different behavior based on the position of the list, eg, do you want to allow an auto-scroll action, etc.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 18, - "key.doc.name" : "ListScrollPositionInfo", - "key.doc.type" : "Class", - "key.doclength" : 345, - "key.docoffset" : 132, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 516 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListScrollPositionInfo<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 5744, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "ListScrollPositionInfo", - "key.namelength" : 22, - "key.nameoffset" : 491, - "key.offset" : 484, - "key.parsed_declaration" : "public struct ListScrollPositionInfo : Equatable", - "key.parsed_scope.end" : 148, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 12, - "key.name" : "MARK: Public", - "key.offset" : 547 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var visibleItems: Set<\/Type><VisibleItem<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 635 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Which items within the list are currently visible.", - "key.doc.column" : 16, - "key.doc.comment" : "Which items within the list are currently visible.", - "key.doc.declaration" : "public var visibleItems: Set", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "visibleItems<\/Name>s:10ListableUI22ListScrollPositionInfoV12visibleItemsShyAC11VisibleItemVGvp<\/USR>public var visibleItems: Set<VisibleItem><\/Declaration>Which items within the list are currently visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 25, - "key.doc.name" : "visibleItems", - "key.doc.type" : "Other", - "key.doclength" : 55, - "key.docoffset" : 576, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> visibleItems<\/decl.name>: Set<\/ref.struct><VisibleItem<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "visibleItems", - "key.namelength" : 12, - "key.nameoffset" : 646, - "key.offset" : 642, - "key.parsed_declaration" : "public var visibleItems : Set", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI22ListScrollPositionInfoV11VisibleItemVGD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV12visibleItemsShyAC11VisibleItemVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var mostVisibleItem: VisibleItem<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 771 - } - ], - "key.bodylength" : 232, - "key.bodyoffset" : 813, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item from `visibleItems` that has the highest percentage of visibility.", - "key.doc.column" : 16, - "key.doc.comment" : "The item from `visibleItems` that has the highest percentage of visibility.", - "key.doc.declaration" : "public var mostVisibleItem: VisibleItem? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "mostVisibleItem<\/Name>s:10ListableUI22ListScrollPositionInfoV15mostVisibleItemAC0hI0VSgvp<\/USR>public var mostVisibleItem: VisibleItem? { get }<\/Declaration>The item from visibleItems<\/codeVoice> that has the highest percentage of visibility.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "mostVisibleItem", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 687, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> mostVisibleItem<\/decl.name>: VisibleItem<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 268, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "mostVisibleItem", - "key.namelength" : 15, - "key.nameoffset" : 782, - "key.offset" : 778, - "key.parsed_declaration" : "public var mostVisibleItem: VisibleItem?", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo.VisibleItem?", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoV11VisibleItemVSgD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV15mostVisibleItemAC0hI0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isFirstItemVisible: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1109 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the first item list is partially visible.", - "key.doc.column" : 16, - "key.doc.comment" : "If the first item list is partially visible.", - "key.doc.declaration" : "public var isFirstItemVisible: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "isFirstItemVisible<\/Name>s:10ListableUI22ListScrollPositionInfoV18isFirstItemVisibleSbvp<\/USR>public var isFirstItemVisible: Bool<\/Declaration>If the first item list is partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 37, - "key.doc.name" : "isFirstItemVisible", - "key.doc.type" : "Other", - "key.doclength" : 49, - "key.docoffset" : 1056, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstItemVisible<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "isFirstItemVisible", - "key.namelength" : 18, - "key.nameoffset" : 1120, - "key.offset" : 1116, - "key.parsed_declaration" : "public var isFirstItemVisible : Bool", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV18isFirstItemVisibleSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isLastItemVisible: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1207 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the last item list is partially visible.", - "key.doc.column" : 16, - "key.doc.comment" : "If the last item list is partially visible.", - "key.doc.declaration" : "public var isLastItemVisible: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "isLastItemVisible<\/Name>s:10ListableUI22ListScrollPositionInfoV17isLastItemVisibleSbvp<\/USR>public var isLastItemVisible: Bool<\/Declaration>If the last item list is partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 40, - "key.doc.name" : "isLastItemVisible", - "key.doc.type" : "Other", - "key.doclength" : 48, - "key.docoffset" : 1155, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isLastItemVisible<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "isLastItemVisible", - "key.namelength" : 17, - "key.nameoffset" : 1218, - "key.offset" : 1214, - "key.parsed_declaration" : "public var isLastItemVisible : Bool", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV17isLastItemVisibleSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var bottomScrollOffset: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1298 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Distance required to scroll to the bottom", - "key.doc.column" : 16, - "key.doc.comment" : "Distance required to scroll to the bottom", - "key.doc.declaration" : "public var bottomScrollOffset: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "bottomScrollOffset<\/Name>s:10ListableUI22ListScrollPositionInfoV06bottomD6Offset14CoreFoundation7CGFloatVvp<\/USR>public var bottomScrollOffset: CGFloat<\/Declaration>Distance required to scroll to the bottom<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 43, - "key.doc.name" : "bottomScrollOffset", - "key.doc.type" : "Other", - "key.doclength" : 46, - "key.docoffset" : 1248, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bottomScrollOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "bottomScrollOffset", - "key.namelength" : 18, - "key.nameoffset" : 1309, - "key.offset" : 1305, - "key.parsed_declaration" : "public var bottomScrollOffset: CGFloat", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV06bottomD6Offset14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var bounds: CGRect<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1376 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`bounds` of the list view", - "key.doc.column" : 16, - "key.doc.comment" : "`bounds` of the list view", - "key.doc.declaration" : "public var bounds: CGRect", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "bounds<\/Name>s:10ListableUI22ListScrollPositionInfoV6boundsSo6CGRectVvp<\/USR>public var bounds: CGRect<\/Declaration>bounds<\/codeVoice> of the list view<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 46, - "key.doc.name" : "bounds", - "key.doc.type" : "Other", - "key.doclength" : 30, - "key.docoffset" : 1342, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 1387, - "key.offset" : 1383, - "key.parsed_declaration" : "public var bounds: CGRect", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV6boundsSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var safeAreaInsets: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1450 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`safeAreaInsests` of the list view", - "key.doc.column" : 16, - "key.doc.comment" : "`safeAreaInsests` of the list view", - "key.doc.declaration" : "public var safeAreaInsets: UIEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "safeAreaInsets<\/Name>s:10ListableUI22ListScrollPositionInfoV14safeAreaInsetsSo06UIEdgeI0Vvp<\/USR>public var safeAreaInsets: UIEdgeInsets<\/Declaration>safeAreaInsests<\/codeVoice> of the list view<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 49, - "key.doc.name" : "safeAreaInsets", - "key.doc.type" : "Other", - "key.doclength" : 39, - "key.docoffset" : 1407, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 49, - "key.modulename" : "ListableUI", - "key.name" : "safeAreaInsets", - "key.namelength" : 14, - "key.nameoffset" : 1461, - "key.offset" : 1457, - "key.parsed_declaration" : "public var safeAreaInsets: UIEdgeInsets", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 49, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV14safeAreaInsetsSo06UIEdgeI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func visibleContentEdges(includingSafeAreaEdges safeAreaEdges: UIRectEdge<\/Type> = .all) -> UIRectEdge<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4424 - } - ], - "key.bodylength" : 311, - "key.bodyoffset" : 4533, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used to retrieve the visible content edges for the list's content.\n\nEg, for vertical lists:\n- If the list is scrolled all the way to the bottom, the visible edges are the left, right, and bottom.\n- If the list is scrolled all the way to the top, the visible edges are the left, right, and top.\n\nYou can use this method to determine how and where the list is scrolled if you want to modify\nbehavior based on the current scroll position.\n\nExamples\n---------\n```\n+---------------+ +---------------+ +-----------------+ +--------------------+\n|all | |top, left | |top, left, right | |left, right, bottom |\n+---------------+ +---------------+ +-----------------+ +--------------------+\nList List List\n+---------------+ +---------------+ +---------------+ +---------------+\n| | | | | | |Content@@@@@@@@|\n| +-----------+ | | +-------------+-+ | | |@@@@@@@@@@@@@@@|\n| |Content@@@@| | | |Content@@@@@@|@| | | List@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| +---------------+ +---------------+\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |Content@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| +-----------+ | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n+---------------+ +-+-------------+@| +---------------+ +---------------+\n |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@| | |\n +---------------+ |@@@@@@@@@@@@@@@| | |\n |@@@@@@@@@@@@@@@| | |\n +---------------+ +---------------+\n```\nSafe Area Insets\n-----------------\nYou can control whether `safeAreaInsets` should be taken into account via the `includingSafeAreaEdges` parameter.\n\nGenerally, you want to include the `safeAreaInsets` for the top, left, and right, but may want to exclude the bottom\nif you consider the bottom edge visible if it's visible below the home indicator on a home button-less iPhone or iPad.\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nUsed to retrieve the visible content edges for the list's content.\n\nEg, for vertical lists:\n- If the list is scrolled all the way to the bottom, the visible edges are the left, right, and bottom.\n- If the list is scrolled all the way to the top, the visible edges are the left, right, and top.\n\nYou can use this method to determine how and where the list is scrolled if you want to modify\nbehavior based on the current scroll position.\n\nExamples\n---------\n```\n+---------------+ +---------------+ +-----------------+ +--------------------+\n|all | |top, left | |top, left, right | |left, right, bottom |\n+---------------+ +---------------+ +-----------------+ +--------------------+\nList List List\n+---------------+ +---------------+ +---------------+ +---------------+\n| | | | | | |Content@@@@@@@@|\n| +-----------+ | | +-------------+-+ | | |@@@@@@@@@@@@@@@|\n| |Content@@@@| | | |Content@@@@@@|@| | | List@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| +---------------+ +---------------+\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |Content@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| |@@@@@@@@@@@| | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n| +-----------+ | | |@@@@@@@@@@@@@|@| |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@|\n+---------------+ +-+-------------+@| +---------------+ +---------------+\n |@@@@@@@@@@@@@@@| |@@@@@@@@@@@@@@@| | |\n +---------------+ |@@@@@@@@@@@@@@@| | |\n |@@@@@@@@@@@@@@@| | |\n +---------------+ +---------------+\n```\nSafe Area Insets\n-----------------\nYou can control whether `safeAreaInsets` should be taken into account via the `includingSafeAreaEdges` parameter.\n\nGenerally, you want to include the `safeAreaInsets` for the top, left, and right, but may want to exclude the bottom\nif you consider the bottom edge visible if it's visible below the home indicator on a home button-less iPhone or iPad.", - "key.doc.declaration" : "public func visibleContentEdges(includingSafeAreaEdges safeAreaEdges: UIRectEdge = .all) -> UIRectEdge", - "key.doc.discussion" : [ - { - "Para" : "Eg, for vertical lists:" - }, - { - "List-Bullet" : "" - }, - { - "Para" : "You can use this method to determine how and where the list is scrolled if you want to modify behavior based on the current scroll position." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can control whether `safeAreaInsets` should be taken into account via the `includingSafeAreaEdges` parameter." - }, - { - "Para" : "Generally, you want to include the `safeAreaInsets` for the top, left, and right, but may want to exclude the bottom if you consider the bottom edge visible if it’s visible below the home indicator on a home button-less iPhone or iPad." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "visibleContentEdges(includingSafeAreaEdges:)<\/Name>s:10ListableUI22ListScrollPositionInfoV19visibleContentEdges017includingSafeAreaI0So10UIRectEdgeVAG_tF<\/USR>public func visibleContentEdges(includingSafeAreaEdges safeAreaEdges: UIRectEdge = .all) -> UIRectEdge<\/Declaration>Used to retrieve the visible content edges for the list’s content.<\/Para><\/Abstract>Eg, for vertical lists:<\/Para>If the list is scrolled all the way to the bottom, the visible edges are the left, right, and bottom.<\/Para><\/Item>If the list is scrolled all the way to the top, the visible edges are the left, right, and top.<\/Para><\/Item><\/List-Bullet>You can use this method to determine how and where the list is scrolled if you want to modify behavior based on the current scroll position.<\/Para>]]><\/rawHTML>Examples]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Safe Area Insets]]><\/rawHTML>You can control whether safeAreaInsets<\/codeVoice> should be taken into account via the includingSafeAreaEdges<\/codeVoice> parameter.<\/Para>Generally, you want to include the safeAreaInsets<\/codeVoice> for the top, left, and right, but may want to exclude the bottom if you consider the bottom edge visible if it’s visible below the home indicator on a home button-less iPhone or iPad.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 93, - "key.doc.name" : "visibleContentEdges(includingSafeAreaEdges:)", - "key.doc.type" : "Function", - "key.doclength" : 2921, - "key.docoffset" : 1499, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> visibleContentEdges<\/decl.name>(includingSafeAreaEdges<\/decl.var.parameter.argument_label> safeAreaEdges<\/decl.var.parameter.name>: UIRectEdge<\/ref.struct><\/decl.var.parameter.type> = .all<\/decl.var.parameter>) -> UIRectEdge<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 414, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "visibleContentEdges(includingSafeAreaEdges:)", - "key.namelength" : 77, - "key.nameoffset" : 4436, - "key.offset" : 4431, - "key.parsed_declaration" : "public func visibleContentEdges(includingSafeAreaEdges safeAreaEdges : UIRectEdge = .all) -> UIRectEdge", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let safeArea: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeArea<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 76, - "key.line" : 95, - "key.modulename" : "ListableUI", - "key.name" : "safeArea", - "key.namelength" : 8, - "key.nameoffset" : 4546, - "key.offset" : 4542, - "key.parsed_declaration" : "let safeArea = self.scrollViewState.safeAreaInsets.masked(by: safeAreaEdges)", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 95, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV19visibleContentEdges017includingSafeAreaI0So10UIRectEdgeVAG_tF04safeL0L_So12UIEdgeInsetsVvp" - } - ], - "key.typename" : "(ListScrollPositionInfo) -> (UIRectEdge) -> UIRectEdge", - "key.typeusr" : "$s22includingSafeAreaEdgesSo10UIRectEdgeVAC_tcD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV19visibleContentEdges017includingSafeAreaI0So10UIRectEdgeVAG_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 13, - "key.name" : "MARK: Private", - "key.offset" : 4865 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let scrollViewState: ScrollViewState<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4895 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> scrollViewState<\/decl.name>: ScrollViewState<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 108, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewState", - "key.namelength" : 15, - "key.nameoffset" : 4907, - "key.offset" : 4903, - "key.parsed_declaration" : "private let scrollViewState : ScrollViewState", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 108, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo.ScrollViewState", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoV0D9ViewStateVD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV15scrollViewState33_2B003C33516B6304485EFC15A8A0778BLLAC0dhI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(scrollView: UIScrollView<\/Type>, visibleItems: Set<\/Type><VisibleItem<\/Type>>, isFirstItemVisible: Bool<\/Type>, isLastItemVisible: Bool<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5023 - } - ], - "key.bodylength" : 633, - "key.bodyoffset" : 5187, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a `ListScrollPositionInfo` for the provided scroll view.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a `ListScrollPositionInfo` for the provided scroll view.", - "key.doc.declaration" : "public init(scrollView: UIScrollView, visibleItems: Set, isFirstItemVisible: Bool, isLastItemVisible: Bool)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)<\/Name>s:10ListableUI22ListScrollPositionInfoV10scrollView12visibleItems18isFirstItemVisible0k4LastmN0ACSo08UIScrollH0C_ShyAC0nM0VGS2btcfc<\/USR>public init(scrollView: UIScrollView, visibleItems: Set<VisibleItem>, isFirstItemVisible: Bool, isLastItemVisible: Bool)<\/Declaration>Creates a ListScrollPositionInfo<\/codeVoice> for the provided scroll view.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 111, - "key.doc.name" : "init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)", - "key.doc.type" : "Function", - "key.doclength" : 69, - "key.docoffset" : 4950, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(scrollView<\/decl.var.parameter.argument_label>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, visibleItems<\/decl.var.parameter.argument_label>: Set<\/ref.struct><VisibleItem<\/ref.struct>><\/decl.var.parameter.type><\/decl.var.parameter>, isFirstItemVisible<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, isLastItemVisible<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 791, - "key.line" : 111, - "key.modulename" : "ListableUI", - "key.name" : "init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)", - "key.namelength" : 155, - "key.nameoffset" : 5030, - "key.offset" : 5030, - "key.parsed_declaration" : "public init(\n scrollView : UIScrollView,\n visibleItems : Set,\n isFirstItemVisible : Bool,\n isLastItemVisible : Bool\n)", - "key.parsed_scope.end" : 132, - "key.parsed_scope.start" : 111, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListScrollPositionInfo.Type) -> (UIScrollView, Set, Bool, Bool) -> ListScrollPositionInfo", - "key.typeusr" : "$s10scrollView12visibleItems18isFirstItemVisible0e4LastgH010ListableUI22ListScrollPositionInfoVSo08UIScrollB0C_ShyAG0hG0VGS2btcD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV10scrollView12visibleItems18isFirstItemVisible0k4LastmN0ACSo08UIScrollH0C_ShyAC0nM0VGS2btcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ListScrollPositionInfo<\/Type>.ScrollViewState : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 108, - "key.bodyoffset" : 5871, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 5856 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListScrollPositionInfo<\/ref.struct>.ScrollViewState<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 149, - "key.line" : 134, - "key.modulename" : "ListableUI", - "key.name" : "ScrollViewState", - "key.namelength" : 15, - "key.nameoffset" : 5838, - "key.offset" : 5831, - "key.parsed_declaration" : "struct ScrollViewState : Equatable", - "key.parsed_scope.end" : 139, - "key.parsed_scope.start" : 134, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var bounds: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 136, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 5884, - "key.offset" : 5880, - "key.parsed_declaration" : "var bounds : CGRect", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 136, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV0D9ViewStateV6boundsSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var contentSize: CGSize<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 137, - "key.modulename" : "ListableUI", - "key.name" : "contentSize", - "key.namelength" : 11, - "key.nameoffset" : 5912, - "key.offset" : 5908, - "key.parsed_declaration" : "var contentSize : CGSize", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 137, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV0D9ViewStateV11contentSizeSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var safeAreaInsets: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 138, - "key.modulename" : "ListableUI", - "key.name" : "safeAreaInsets", - "key.namelength" : 14, - "key.nameoffset" : 5945, - "key.offset" : 5941, - "key.parsed_declaration" : "var safeAreaInsets : UIEdgeInsets", - "key.parsed_scope.end" : 138, - "key.parsed_scope.start" : 138, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV0D9ViewStateV14safeAreaInsetsSo06UIEdgeK0Vvp" - } - ], - "key.typename" : "ListScrollPositionInfo.ScrollViewState.Type", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoV0D9ViewStateVmD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV0D9ViewStateV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListScrollPositionInfo<\/Type>.VisibleItem : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5990 - } - ], - "key.bodylength" : 198, - "key.bodyoffset" : 6027, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 6017 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListScrollPositionInfo<\/ref.struct>.VisibleItem<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 229, - "key.line" : 141, - "key.modulename" : "ListableUI", - "key.name" : "VisibleItem", - "key.namelength" : 11, - "key.nameoffset" : 6004, - "key.offset" : 5997, - "key.parsed_declaration" : "public struct VisibleItem: Hashable", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 141, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let identifier: AnyIdentifier<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6045 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> identifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 143, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 6056, - "key.offset" : 6052, - "key.parsed_declaration" : "public let identifier: AnyIdentifier", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 143, - "key.reusingastcontext" : false, - "key.typename" : "AnyIdentifier", - "key.typeusr" : "$s10ListableUI13AnyIdentifierCD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV11VisibleItemV10identifierAA13AnyIdentifierCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let percentageVisible: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6183 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The percentage of this item within the collection view's visible frame.", - "key.doc.column" : 20, - "key.doc.comment" : "The percentage of this item within the collection view's visible frame.", - "key.doc.declaration" : "public let percentageVisible: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.doc.full_as_xml" : "percentageVisible<\/Name>s:10ListableUI22ListScrollPositionInfoV11VisibleItemV010percentageG014CoreFoundation7CGFloatVvp<\/USR>public let percentageVisible: CGFloat<\/Declaration>The percentage of this item within the collection view’s visible frame.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 146, - "key.doc.name" : "percentageVisible", - "key.doc.type" : "Other", - "key.doclength" : 76, - "key.docoffset" : 6099, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> percentageVisible<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 146, - "key.modulename" : "ListableUI", - "key.name" : "percentageVisible", - "key.namelength" : 17, - "key.nameoffset" : 6194, - "key.offset" : 6190, - "key.parsed_declaration" : "public let percentageVisible: CGFloat", - "key.parsed_scope.end" : 146, - "key.parsed_scope.start" : 146, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV11VisibleItemV010percentageG014CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : "ListScrollPositionInfo.VisibleItem.Type", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoV11VisibleItemVmD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV11VisibleItemV" - } - ], - "key.typename" : "ListScrollPositionInfo.Type", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVmD", - "key.usr" : "s:10ListableUI22ListScrollPositionInfoV" - }, - { - "key.annotated_decl" : "@_nonSendable(_assumed) struct UIEdgeInsets : @unchecked Sendable<\/Type><\/Declaration>", - "key.bodylength" : 501, - "key.bodyoffset" : 6254, - "key.column" : 92, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIGeometry.h", - "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> UIEdgeInsets<\/decl.name> : @unchecked Sendable<\/ref.protocol><\/decl.struct>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 526, - "key.line" : 23, - "key.modulename" : "UIKit.UIGeometry", - "key.name" : "UIEdgeInsets", - "key.namelength" : 12, - "key.nameoffset" : 6240, - "key.offset" : 6230, - "key.parsed_declaration" : "extension UIEdgeInsets", - "key.parsed_scope.end" : 174, - "key.parsed_scope.start" : 150, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "func masked(by edges: UIRectEdge<\/Type>) -> UIEdgeInsets<\/Type><\/Declaration>", - "key.bodylength" : 438, - "key.bodyoffset" : 6315, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> masked<\/decl.name>(by<\/decl.var.parameter.argument_label> edges<\/decl.var.parameter.name>: UIRectEdge<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIEdgeInsets<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 495, - "key.line" : 152, - "key.modulename" : "ListableUI", - "key.name" : "masked(by:)", - "key.namelength" : 29, - "key.nameoffset" : 6264, - "key.offset" : 6259, - "key.parsed_declaration" : "func masked(by edges : UIRectEdge) -> UIEdgeInsets", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 152, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var insets: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 27, - "key.line" : 154, - "key.modulename" : "ListableUI", - "key.name" : "insets", - "key.namelength" : 6, - "key.nameoffset" : 6328, - "key.offset" : 6324, - "key.parsed_declaration" : "var insets = UIEdgeInsets()", - "key.parsed_scope.end" : 154, - "key.parsed_scope.start" : 154, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:So12UIEdgeInsetsV10ListableUIE6masked2byABSo10UIRectEdgeV_tF6insetsL_ABvp" - } - ], - "key.typename" : "(UIEdgeInsets) -> (UIRectEdge) -> UIEdgeInsets", - "key.typeusr" : "$s2bySo12UIEdgeInsetsVSo10UIRectEdgeV_tcD", - "key.usr" : "s:So12UIEdgeInsetsV10ListableUIE6masked2byABSo10UIRectEdgeV_tF" - } - ], - "key.typename" : "UIEdgeInsets.Type", - "key.typeusr" : "$sSo12UIEdgeInsetsVmD", - "key.usr" : "c:@S@UIEdgeInsets" - }, - { - "key.annotated_decl" : "@_nonSendable(_assumed) struct UIRectEdge : OptionSet<\/Type>, @unchecked Sendable<\/Type><\/Declaration>", - "key.bodylength" : 1232, - "key.bodyoffset" : 6811, - "key.column" : 32, - "key.decl_lang" : "source.lang.objc", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 28, - "key.offset" : 6781 - } - ], - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/SubFrameworks\/UIUtilities.framework\/Headers\/UIGeometry.h", - "key.fully_annotated_decl" : "@_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> UIRectEdge<\/decl.name> : OptionSet<\/ref.protocol>, @unchecked Sendable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "CustomDebugStringConvertible" - } - ], - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1286, - "key.line" : 12, - "key.modulename" : "UIUtilities.UIGeometry", - "key.name" : "UIRectEdge", - "key.namelength" : 10, - "key.nameoffset" : 6768, - "key.offset" : 6758, - "key.parsed_declaration" : "extension UIRectEdge : CustomDebugStringConvertible", - "key.parsed_scope.end" : 228, - "key.parsed_scope.start" : 176, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "static func visibleScrollViewContentEdges(bounds: CGRect<\/Type>, contentSize: CGSize<\/Type>, safeAreaInsets: UIEdgeInsets<\/Type>) -> UIRectEdge<\/Type><\/Declaration>", - "key.bodylength" : 539, - "key.bodyoffset" : 6977, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> visibleScrollViewContentEdges<\/decl.name>(bounds<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentSize<\/decl.var.parameter.argument_label>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, safeAreaInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIRectEdge<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 701, - "key.line" : 178, - "key.modulename" : "ListableUI", - "key.name" : "visibleScrollViewContentEdges(bounds:contentSize:safeAreaInsets:)", - "key.namelength" : 129, - "key.nameoffset" : 6828, - "key.offset" : 6816, - "key.parsed_declaration" : "static func visibleScrollViewContentEdges(\n bounds : CGRect,\n contentSize : CGSize,\n safeAreaInsets : UIEdgeInsets\n) -> UIRectEdge", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 178, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let insetBounds: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insetBounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 50, - "key.line" : 184, - "key.modulename" : "ListableUI", - "key.name" : "insetBounds", - "key.namelength" : 11, - "key.nameoffset" : 6990, - "key.offset" : 6986, - "key.parsed_declaration" : "let insetBounds = bounds.inset(by: safeAreaInsets)", - "key.parsed_scope.end" : 184, - "key.parsed_scope.start" : 184, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:So10UIRectEdgeV10ListableUIE29visibleScrollViewContentEdges6bounds11contentSize14safeAreaInsetsABSo6CGRectV_So6CGSizeVSo06UIEdgeO0VtFZ11insetBoundsL_AIvp" - }, - { - "key.annotated_decl" : "var edges: UIRectEdge<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> edges<\/decl.name>: UIRectEdge<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 24, - "key.line" : 186, - "key.modulename" : "ListableUI", - "key.name" : "edges", - "key.namelength" : 5, - "key.nameoffset" : 7066, - "key.offset" : 7062, - "key.parsed_declaration" : "var edges = UIRectEdge()", - "key.parsed_scope.end" : 186, - "key.parsed_scope.start" : 186, - "key.reusingastcontext" : false, - "key.typename" : "UIRectEdge", - "key.typeusr" : "$sSo10UIRectEdgeVD", - "key.usr" : "s:So10UIRectEdgeV10ListableUIE29visibleScrollViewContentEdges6bounds11contentSize14safeAreaInsetsABSo6CGRectV_So6CGSizeVSo06UIEdgeO0VtFZ5edgesL_ABvp" - } - ], - "key.typename" : "(UIRectEdge.Type) -> (CGRect, CGSize, UIEdgeInsets) -> UIRectEdge", - "key.typeusr" : "$s6bounds11contentSize14safeAreaInsetsSo10UIRectEdgeVSo6CGRectV_So6CGSizeVSo06UIEdgeF0VtcD", - "key.usr" : "s:So10UIRectEdgeV10ListableUIE29visibleScrollViewContentEdges6bounds11contentSize14safeAreaInsetsABSo6CGRectV_So6CGSizeVSo06UIEdgeO0VtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var debugDescription: String<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7527 - } - ], - "key.bodylength" : 477, - "key.bodyoffset" : 7564, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A textual representation of this instance, suitable for debugging.\n\nCalling this property directly is discouraged. Instead, convert an\ninstance of any type to a string by using the `String(reflecting:)`\ninitializer. This initializer works with any type, and uses the custom\n`debugDescription` property for types that conform to\n`CustomDebugStringConvertible`:\n\n struct Point: CustomDebugStringConvertible {\n let x: Int, y: Int\n\n var debugDescription: String {\n return \"(\\(x), \\(y))\"\n }\n }\n\n let p = Point(x: 21, y: 30)\n let s = String(reflecting: p)\n print(s)\n \/\/ Prints \"(21, 30)\"\n\nThe conversion of `p` to a string in the assignment to `s` uses the\n`Point` type's `debugDescription` property.", - "key.doc.declaration" : "var debugDescription: String { get }", - "key.doc.discussion" : [ - { - "Para" : "Calling this property directly is discouraged. Instead, convert an instance of any type to a string by using the `String(reflecting:)` initializer. This initializer works with any type, and uses the custom `debugDescription` property for types that conform to `CustomDebugStringConvertible`:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "The conversion of `p` to a string in the assignment to `s` uses the `Point` type’s `debugDescription` property." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "debugDescription<\/Name>s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp<\/USR>var debugDescription: String { get }<\/Declaration>A textual representation of this instance, suitable for debugging.<\/Para><\/Abstract>Calling this property directly is discouraged. Instead, convert an instance of any type to a string by using the String(reflecting:)<\/codeVoice> initializer. This initializer works with any type, and uses the custom debugDescription<\/codeVoice> property for types that conform to CustomDebugStringConvertible<\/codeVoice>:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The conversion of p<\/codeVoice> to a string in the assignment to s<\/codeVoice> uses the Point<\/codeVoice> type’s debugDescription<\/codeVoice> property.<\/Para>This documentation comment was inherited from CustomDebugStringConvertible<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.name" : "debugDescription", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debugDescription<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 508, - "key.line" : 207, - "key.modulename" : "ListableUI", - "key.name" : "debugDescription", - "key.namelength" : 16, - "key.nameoffset" : 7538, - "key.offset" : 7534, - "key.overrides" : [ - { - "key.usr" : "s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp" - } - ], - "key.parsed_declaration" : "public var debugDescription: String", - "key.parsed_scope.end" : 227, - "key.parsed_scope.start" : 207, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp" - }, - { - "key.annotated_decl" : "var components: [String<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListScrollPositionInfo.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> components<\/decl.name>: [String<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 27, - "key.line" : 208, - "key.modulename" : "ListableUI", - "key.name" : "components", - "key.namelength" : 10, - "key.nameoffset" : 7577, - "key.offset" : 7573, - "key.parsed_declaration" : "var components = [String]()", - "key.parsed_scope.end" : 208, - "key.parsed_scope.start" : 208, - "key.reusingastcontext" : false, - "key.typename" : "[String]", - "key.typeusr" : "$sSaySSGD", - "key.usr" : "s:So10UIRectEdgeV10ListableUIE16debugDescriptionSSvg10componentsL_SaySSGvp" - } - ], - "key.typename" : "UIRectEdge.Type", - "key.typeusr" : "$sSo10UIRectEdgeVmD", - "key.usr" : "c:@E@UIRectEdge" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 12702, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListStateObserver<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1386 - } - ], - "key.bodylength" : 5752, - "key.bodyoffset" : 1419, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows reading state and events based on state changes within the list view.\nFor example, you can determine when a user scrolls, when the content of a list\nchanges, etc.\n\nThis is useful if you want to log these events to a logging or debugging system,\nor potentially perform actions on the list based on some change.\n\nEvery callback has its own data type, filled with information relevant to that callback.\nEvery callback also contains a `ListActions` to perform actions back on the list.\n\nYou can register for each callback type multiple times – eg to split apart different pieces of\nfunctionality. Eg, two calls to `onDidScroll` registers two callbacks.\n\n### Example\n```\nListStateObserver { observer in\n observer.onDidScroll { info in\n \/\/ Called whenever the list is scrolled.\n }\n\n observer.onContentChanged { info in\n \/\/ Called when items are inserted or removed.\n }\n}\n```\n\n### Note\nThe duration of performing all callbacks is logged to `os_signpost`. If you find that\nyour application is running slowly, and you have registered `ListStateObserver` callbacks,\nuse Instruments.app to see what callback is slow.\n", - "key.doc.column" : 15, - "key.doc.comment" : "Allows reading state and events based on state changes within the list view.\nFor example, you can determine when a user scrolls, when the content of a list\nchanges, etc.\n\nThis is useful if you want to log these events to a logging or debugging system,\nor potentially perform actions on the list based on some change.\n\nEvery callback has its own data type, filled with information relevant to that callback.\nEvery callback also contains a `ListActions` to perform actions back on the list.\n\nYou can register for each callback type multiple times – eg to split apart different pieces of\nfunctionality. Eg, two calls to `onDidScroll` registers two callbacks.\n\n### Example\n```\nListStateObserver { observer in\n observer.onDidScroll { info in\n \/\/ Called whenever the list is scrolled.\n }\n\n observer.onContentChanged { info in\n \/\/ Called when items are inserted or removed.\n }\n}\n```\n\n### Note\nThe duration of performing all callbacks is logged to `os_signpost`. If you find that\nyour application is running slowly, and you have registered `ListStateObserver` callbacks,\nuse Instruments.app to see what callback is slow.", - "key.doc.declaration" : "public struct ListStateObserver", - "key.doc.discussion" : [ - { - "Para" : "This is useful if you want to log these events to a logging or debugging system, or potentially perform actions on the list based on some change." - }, - { - "Para" : "Every callback has its own data type, filled with information relevant to that callback. Every callback also contains a `ListActions` to perform actions back on the list." - }, - { - "Para" : "You can register for each callback type multiple times – eg to split apart different pieces of functionality. Eg, two calls to `onDidScroll` registers two callbacks." - }, - { - "CodeListing" : "" - }, - { - "Para" : "The duration of performing all callbacks is logged to `os_signpost`. If you find that your application is running slowly, and you have registered `ListStateObserver` callbacks, use Instruments.app to see what callback is slow." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "ListStateObserver<\/Name>s:10ListableUI17ListStateObserverV<\/USR>public struct ListStateObserver<\/Declaration>Allows reading state and events based on state changes within the list view. For example, you can determine when a user scrolls, when the content of a list changes, etc.<\/Para><\/Abstract>This is useful if you want to log these events to a logging or debugging system, or potentially perform actions on the list based on some change.<\/Para>Every callback has its own data type, filled with information relevant to that callback. Every callback also contains a ListActions<\/codeVoice> to perform actions back on the list.<\/Para>You can register for each callback type multiple times – eg to split apart different pieces of functionality. Eg, two calls to onDidScroll<\/codeVoice> registers two callbacks.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>The duration of performing all callbacks is logged to os_signpost<\/codeVoice>. If you find that your application is running slowly, and you have registered ListStateObserver<\/codeVoice> callbacks, use Instruments.app to see what callback is slow.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ListStateObserver", - "key.doc.type" : "Class", - "key.doclength" : 1259, - "key.docoffset" : 127, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListStateObserver<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 5779, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ListStateObserver", - "key.namelength" : 17, - "key.nameoffset" : 1400, - "key.offset" : 1393, - "key.parsed_declaration" : "public struct ListStateObserver", - "key.parsed_scope.end" : 218, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ configure: (inout ListStateObserver<\/Type>) -> () = { _ in })<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1497 - } - ], - "key.bodylength" : 30, - "key.bodyoffset" : 1572, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates and optionally allows you to configure an observer.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates and optionally allows you to configure an observer.", - "key.doc.declaration" : "public init(_ configure: (inout ListStateObserver) -> () = { _ in })", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI17ListStateObserverVyACyACzXEcfc<\/USR>public init(_ configure: (inout ListStateObserver) -> () = { _ in })<\/Declaration>Creates and optionally allows you to configure an observer.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 46, - "key.doc.name" : "init(_:)", - "key.doc.type" : "Function", - "key.doclength" : 64, - "key.docoffset" : 1429, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> ListStateObserver<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 99, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 62, - "key.nameoffset" : 1504, - "key.offset" : 1504, - "key.parsed_declaration" : "public init(_ configure : (inout ListStateObserver) -> () = { _ in })", - "key.parsed_scope.end" : 49, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListStateObserver.Type) -> ((inout ListStateObserver) -> ()) -> ListStateObserver", - "key.typeusr" : "$sy10ListableUI17ListStateObserverVyACzXEcD", - "key.usr" : "s:10ListableUI17ListStateObserverVyACyACzXEcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 29, - "key.name" : "MARK: Responding To Scrolling", - "key.offset" : 1623 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListStateObserver<\/Type>.OnDidScroll = (DidScroll<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1669 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnDidScroll<\/decl.name> = (DidScroll<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 41, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "OnDidScroll", - "key.namelength" : 11, - "key.nameoffset" : 1686, - "key.offset" : 1676, - "key.parsed_declaration" : "public typealias OnDidScroll = (DidScroll) -> ()", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.DidScroll) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV9DidScrollVcmD", - "key.usr" : "s:10ListableUI17ListStateObserverV11OnDidScrolla" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func onDidScroll(_ callback: @escaping OnDidScroll<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 2063 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2056 - } - ], - "key.bodylength" : 47, - "key.bodyoffset" : 2131, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Registers a callback which will be called when the list view is scrolled, or is\nscrolled to top.\n\n### ⚠️ Important Note!\nThis callback is called very frequently when the user is scrolling the list (eg, every frame!).\nAs such, make sure any work you do in the callback is efficient.", - "key.doc.column" : 26, - "key.doc.comment" : "Registers a callback which will be called when the list view is scrolled, or is\nscrolled to top.\n\n### ⚠️ Important Note!\nThis callback is called very frequently when the user is scrolling the list (eg, every frame!).\nAs such, make sure any work you do in the callback is efficient.", - "key.doc.declaration" : "public mutating func onDidScroll(_ callback: @escaping OnDidScroll)", - "key.doc.discussion" : [ - { - "Para" : "This callback is called very frequently when the user is scrolling the list (eg, every frame!). As such, make sure any work you do in the callback is efficient." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "onDidScroll(_:)<\/Name>s:10ListableUI17ListStateObserverV11onDidScrollyyyAC0gH0VcF<\/USR>public mutating func onDidScroll(_ callback: @escaping OnDidScroll)<\/Declaration>Registers a callback which will be called when the list view is scrolled, or is scrolled to top.<\/Para><\/Abstract>]]><\/rawHTML>⚠️ Important Note!]]><\/rawHTML>This callback is called very frequently when the user is scrolling the list (eg, every frame!). As such, make sure any work you do in the callback is efficient.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 63, - "key.doc.name" : "onDidScroll(_:)", - "key.doc.type" : "Function", - "key.doclength" : 329, - "key.docoffset" : 1723, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onDidScroll<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnDidScroll<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 107, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "onDidScroll(_:)", - "key.namelength" : 48, - "key.nameoffset" : 2077, - "key.offset" : 2072, - "key.parsed_declaration" : "public mutating func onDidScroll( _ callback : @escaping OnDidScroll)", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 63, - "key.related_decls" : [ - { - "key.annotated_decl" : "onDidScroll<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListStateObserver) -> (@escaping (ListStateObserver.DidScroll) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI17ListStateObserverV9DidScrollVccD", - "key.usr" : "s:10ListableUI17ListStateObserverV11onDidScrollyyyAC0gH0VcF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var onDidScroll: [OnDidScroll<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 2189 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onDidScroll<\/decl.name>: [OnDidScroll<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "onDidScroll", - "key.namelength" : 11, - "key.nameoffset" : 2206, - "key.offset" : 2202, - "key.parsed_declaration" : "private(set) var onDidScroll : [OnDidScroll] = []", - "key.parsed_scope.end" : 68, - "key.parsed_scope.start" : 68, - "key.related_decls" : [ - { - "key.annotated_decl" : "onDidScroll(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[(ListStateObserver.DidScroll) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV9DidScrollVcGD", - "key.usr" : "s:10ListableUI17ListStateObserverV11onDidScrollSayyAC0gH0VcGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 42, - "key.name" : "MARK: Responding to Scrolling Deceleration", - "key.offset" : 2258 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListStateObserver<\/Type>.OnDidEndDeceleration = (DidEndDeceleration<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2313 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnDidEndDeceleration<\/decl.name> = (DidEndDeceleration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 59, - "key.line" : 74, - "key.modulename" : "ListableUI", - "key.name" : "OnDidEndDeceleration", - "key.namelength" : 20, - "key.nameoffset" : 2330, - "key.offset" : 2320, - "key.parsed_declaration" : "public typealias OnDidEndDeceleration = (DidEndDeceleration) -> ()", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 74, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.DidEndDeceleration) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV18DidEndDecelerationVcmD", - "key.usr" : "s:10ListableUI17ListStateObserverV20OnDidEndDecelerationa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func onDidEndDeceleration(_ callback: @escaping OnDidEndDeceleration<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 2487 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2480 - } - ], - "key.bodylength" : 56, - "key.bodyoffset" : 2573, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Registers a callback which will be called when the list view is finished decelerating.", - "key.doc.column" : 26, - "key.doc.comment" : "Registers a callback which will be called when the list view is finished decelerating.", - "key.doc.declaration" : "public mutating func onDidEndDeceleration(_ callback: @escaping OnDidEndDeceleration)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "onDidEndDeceleration(_:)<\/Name>s:10ListableUI17ListStateObserverV20onDidEndDecelerationyyyAC0ghI0VcF<\/USR>public mutating func onDidEndDeceleration(_ callback: @escaping OnDidEndDeceleration)<\/Declaration>Registers a callback which will be called when the list view is finished decelerating.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 77, - "key.doc.name" : "onDidEndDeceleration(_:)", - "key.doc.type" : "Function", - "key.doclength" : 91, - "key.docoffset" : 2385, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onDidEndDeceleration<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnDidEndDeceleration<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 134, - "key.line" : 77, - "key.modulename" : "ListableUI", - "key.name" : "onDidEndDeceleration(_:)", - "key.namelength" : 66, - "key.nameoffset" : 2501, - "key.offset" : 2496, - "key.parsed_declaration" : "public mutating func onDidEndDeceleration( _ callback : @escaping OnDidEndDeceleration)", - "key.parsed_scope.end" : 80, - "key.parsed_scope.start" : 77, - "key.related_decls" : [ - { - "key.annotated_decl" : "onDidEndDeceleration<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListStateObserver) -> (@escaping (ListStateObserver.DidEndDeceleration) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI17ListStateObserverV18DidEndDecelerationVccD", - "key.usr" : "s:10ListableUI17ListStateObserverV20onDidEndDecelerationyyyAC0ghI0VcF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var onDidEndDeceleration: [OnDidEndDeceleration<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 2636 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onDidEndDeceleration<\/decl.name>: [OnDidEndDeceleration<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 53, - "key.line" : 82, - "key.modulename" : "ListableUI", - "key.name" : "onDidEndDeceleration", - "key.namelength" : 20, - "key.nameoffset" : 2653, - "key.offset" : 2649, - "key.parsed_declaration" : "private(set) var onDidEndDeceleration: [OnDidEndDeceleration] = []", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 82, - "key.related_decls" : [ - { - "key.annotated_decl" : "onDidEndDeceleration(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[(ListStateObserver.DidEndDeceleration) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV18DidEndDecelerationVcGD", - "key.usr" : "s:10ListableUI17ListStateObserverV20onDidEndDecelerationSayyAC0ghI0VcGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 46, - "key.name" : "MARK: Responding to Scrolling Animation Ending", - "key.offset" : 2718 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListStateObserver<\/Type>.OnDidEndScrollingAnimation = (DidEndScrollingAnimation<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2777 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnDidEndScrollingAnimation<\/decl.name> = (DidEndScrollingAnimation<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 71, - "key.line" : 88, - "key.modulename" : "ListableUI", - "key.name" : "OnDidEndScrollingAnimation", - "key.namelength" : 26, - "key.nameoffset" : 2794, - "key.offset" : 2784, - "key.parsed_declaration" : "public typealias OnDidEndScrollingAnimation = (DidEndScrollingAnimation) -> ()", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 88, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.DidEndScrollingAnimation) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV24DidEndScrollingAnimationVcmD", - "key.usr" : "s:10ListableUI17ListStateObserverV26OnDidEndScrollingAnimationa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func onDidEndScrollingAnimation(_ callback: @escaping OnDidEndScrollingAnimation<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 2968 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2961 - } - ], - "key.bodylength" : 62, - "key.bodyoffset" : 3066, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Registers a callback which will be called when the list view had ended scrolling animation.", - "key.doc.column" : 26, - "key.doc.comment" : "Registers a callback which will be called when the list view had ended scrolling animation.", - "key.doc.declaration" : "public mutating func onDidEndScrollingAnimation(_ callback: @escaping OnDidEndScrollingAnimation)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "onDidEndScrollingAnimation(_:)<\/Name>s:10ListableUI17ListStateObserverV26onDidEndScrollingAnimationyyyAC0ghiJ0VcF<\/USR>public mutating func onDidEndScrollingAnimation(_ callback: @escaping OnDidEndScrollingAnimation)<\/Declaration>Registers a callback which will be called when the list view had ended scrolling animation.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 91, - "key.doc.name" : "onDidEndScrollingAnimation(_:)", - "key.doc.type" : "Function", - "key.doclength" : 96, - "key.docoffset" : 2861, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onDidEndScrollingAnimation<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnDidEndScrollingAnimation<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 152, - "key.line" : 91, - "key.modulename" : "ListableUI", - "key.name" : "onDidEndScrollingAnimation(_:)", - "key.namelength" : 78, - "key.nameoffset" : 2982, - "key.offset" : 2977, - "key.parsed_declaration" : "public mutating func onDidEndScrollingAnimation( _ callback : @escaping OnDidEndScrollingAnimation)", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 91, - "key.related_decls" : [ - { - "key.annotated_decl" : "onDidEndScrollingAnimation<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListStateObserver) -> (@escaping (ListStateObserver.DidEndScrollingAnimation) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI17ListStateObserverV24DidEndScrollingAnimationVccD", - "key.usr" : "s:10ListableUI17ListStateObserverV26onDidEndScrollingAnimationyyyAC0ghiJ0VcF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var onDidEndScrollingAnimation: [OnDidEndScrollingAnimation<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 3135 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onDidEndScrollingAnimation<\/decl.name>: [OnDidEndScrollingAnimation<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 65, - "key.line" : 96, - "key.modulename" : "ListableUI", - "key.name" : "onDidEndScrollingAnimation", - "key.namelength" : 26, - "key.nameoffset" : 3152, - "key.offset" : 3148, - "key.parsed_declaration" : "private(set) var onDidEndScrollingAnimation: [OnDidEndScrollingAnimation] = []", - "key.parsed_scope.end" : 96, - "key.parsed_scope.start" : 96, - "key.related_decls" : [ - { - "key.annotated_decl" : "onDidEndScrollingAnimation(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[(ListStateObserver.DidEndScrollingAnimation) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV24DidEndScrollingAnimationVcGD", - "key.usr" : "s:10ListableUI17ListStateObserverV26onDidEndScrollingAnimationSayyAC0ghiJ0VcGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 30, - "key.name" : "MARK: Responding to Drag Begin", - "key.offset" : 3229 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListStateObserver<\/Type>.OnBeginDrag = (BeginDrag<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3276 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnBeginDrag<\/decl.name> = (BeginDrag<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 41, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "OnBeginDrag", - "key.namelength" : 11, - "key.nameoffset" : 3293, - "key.offset" : 3283, - "key.parsed_declaration" : "public typealias OnBeginDrag = (BeginDrag) -> ()", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 102, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.BeginDrag) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV9BeginDragVcmD", - "key.usr" : "s:10ListableUI17ListStateObserverV11OnBeginDraga" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func onBeginDrag(_ callback: @escaping OnBeginDrag<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 3431 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3424 - } - ], - "key.bodylength" : 47, - "key.bodyoffset" : 3498, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Registers a callback which will be called when the list view will begin dragging.", - "key.doc.column" : 26, - "key.doc.comment" : "Registers a callback which will be called when the list view will begin dragging.", - "key.doc.declaration" : "public mutating func onBeginDrag(_ callback: @escaping OnBeginDrag)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "onBeginDrag(_:)<\/Name>s:10ListableUI17ListStateObserverV11onBeginDragyyyAC0gH0VcF<\/USR>public mutating func onBeginDrag(_ callback: @escaping OnBeginDrag)<\/Declaration>Registers a callback which will be called when the list view will begin dragging.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 105, - "key.doc.name" : "onBeginDrag(_:)", - "key.doc.type" : "Function", - "key.doclength" : 86, - "key.docoffset" : 3334, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onBeginDrag<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnBeginDrag<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 106, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "onBeginDrag(_:)", - "key.namelength" : 47, - "key.nameoffset" : 3445, - "key.offset" : 3440, - "key.parsed_declaration" : "public mutating func onBeginDrag( _ callback: @escaping OnBeginDrag)", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 105, - "key.related_decls" : [ - { - "key.annotated_decl" : "onBeginDrag<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListStateObserver) -> (@escaping (ListStateObserver.BeginDrag) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI17ListStateObserverV9BeginDragVccD", - "key.usr" : "s:10ListableUI17ListStateObserverV11onBeginDragyyyAC0gH0VcF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var onBeginDrag: [OnBeginDrag<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 3556 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onBeginDrag<\/decl.name>: [OnBeginDrag<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 110, - "key.modulename" : "ListableUI", - "key.name" : "onBeginDrag", - "key.namelength" : 11, - "key.nameoffset" : 3573, - "key.offset" : 3569, - "key.parsed_declaration" : "private(set) var onBeginDrag: [OnBeginDrag] = []", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 110, - "key.related_decls" : [ - { - "key.annotated_decl" : "onBeginDrag(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[(ListStateObserver.BeginDrag) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV9BeginDragVcGD", - "key.usr" : "s:10ListableUI17ListStateObserverV11onBeginDragSayyAC0gH0VcGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 35, - "key.name" : "MARK: Responding To Content Updates", - "key.offset" : 3624 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListStateObserver<\/Type>.OnContentUpdated = (ContentUpdated<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3676 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnContentUpdated<\/decl.name> = (ContentUpdated<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 51, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "OnContentUpdated", - "key.namelength" : 16, - "key.nameoffset" : 3693, - "key.offset" : 3683, - "key.parsed_declaration" : "public typealias OnContentUpdated = (ContentUpdated) -> ()", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.ContentUpdated) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV14ContentUpdatedVcmD", - "key.usr" : "s:10ListableUI17ListStateObserverV16OnContentUpdateda" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func onContentUpdated(_ callback: @escaping OnContentUpdated<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 4098 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4091 - } - ], - "key.bodylength" : 52, - "key.bodyoffset" : 4176, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Registers a callback which will be called when the list view's content is updated\ndue to a call to `setContent`.\n\n### Note\nThis method is called even if there were no actual changes made during the `setContent`\ncall. To see if there were changes, check the `hadChanges` property on `ContentUpdated`.", - "key.doc.column" : 26, - "key.doc.comment" : "Registers a callback which will be called when the list view's content is updated\ndue to a call to `setContent`.\n\n### Note\nThis method is called even if there were no actual changes made during the `setContent`\ncall. To see if there were changes, check the `hadChanges` property on `ContentUpdated`.", - "key.doc.declaration" : "public mutating func onContentUpdated(_ callback: @escaping OnContentUpdated)", - "key.doc.discussion" : [ - { - "Para" : "This method is called even if there were no actual changes made during the `setContent` call. To see if there were changes, check the `hadChanges` property on `ContentUpdated`." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "onContentUpdated(_:)<\/Name>s:10ListableUI17ListStateObserverV16onContentUpdatedyyyAC0gH0VcF<\/USR>public mutating func onContentUpdated(_ callback: @escaping OnContentUpdated)<\/Declaration>Registers a callback which will be called when the list view’s content is updated due to a call to setContent<\/codeVoice>.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>This method is called even if there were no actual changes made during the setContent<\/codeVoice> call. To see if there were changes, check the hadChanges<\/codeVoice> property on ContentUpdated<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 124, - "key.doc.name" : "onContentUpdated(_:)", - "key.doc.type" : "Function", - "key.doclength" : 343, - "key.docoffset" : 3744, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onContentUpdated<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnContentUpdated<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 122, - "key.line" : 124, - "key.modulename" : "ListableUI", - "key.name" : "onContentUpdated(_:)", - "key.namelength" : 58, - "key.nameoffset" : 4112, - "key.offset" : 4107, - "key.parsed_declaration" : "public mutating func onContentUpdated( _ callback : @escaping OnContentUpdated)", - "key.parsed_scope.end" : 127, - "key.parsed_scope.start" : 124, - "key.related_decls" : [ - { - "key.annotated_decl" : "onContentUpdated<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListStateObserver) -> (@escaping (ListStateObserver.ContentUpdated) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI17ListStateObserverV14ContentUpdatedVccD", - "key.usr" : "s:10ListableUI17ListStateObserverV16onContentUpdatedyyyAC0gH0VcF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var onContentUpdated: [OnContentUpdated<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 4239 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onContentUpdated<\/decl.name>: [OnContentUpdated<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 129, - "key.modulename" : "ListableUI", - "key.name" : "onContentUpdated", - "key.namelength" : 16, - "key.nameoffset" : 4256, - "key.offset" : 4252, - "key.parsed_declaration" : "private(set) var onContentUpdated : [OnContentUpdated] = []", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 129, - "key.related_decls" : [ - { - "key.annotated_decl" : "onContentUpdated(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[(ListStateObserver.ContentUpdated) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV14ContentUpdatedVcGD", - "key.usr" : "s:10ListableUI17ListStateObserverV16onContentUpdatedSayyAC0gH0VcGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 38, - "key.name" : "MARK: Responding To Visibility Changes", - "key.offset" : 4318 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListStateObserver<\/Type>.OnVisibilityChanged = (VisibilityChanged<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4373 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnVisibilityChanged<\/decl.name> = (VisibilityChanged<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 57, - "key.line" : 135, - "key.modulename" : "ListableUI", - "key.name" : "OnVisibilityChanged", - "key.namelength" : 19, - "key.nameoffset" : 4390, - "key.offset" : 4380, - "key.parsed_declaration" : "public typealias OnVisibilityChanged = (VisibilityChanged) -> ()", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 135, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.VisibilityChanged) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV17VisibilityChangedVcmD", - "key.usr" : "s:10ListableUI17ListStateObserverV19OnVisibilityChangeda" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func onVisibilityChanged(_ callback: @escaping OnVisibilityChanged<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 4813 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4806 - } - ], - "key.bodylength" : 55, - "key.bodyoffset" : 4897, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Registers a callback which will be called when the visiblity of content within the list changes,\neither due to the user scrolling the list, or due to an update changing the visible content.\n\nIf you'd like to (eg) update a pagination indicator or other indicator of what\nitems \/ pages \/ etc are visible, use this method.", - "key.doc.column" : 26, - "key.doc.comment" : "Registers a callback which will be called when the visiblity of content within the list changes,\neither due to the user scrolling the list, or due to an update changing the visible content.\n\nIf you'd like to (eg) update a pagination indicator or other indicator of what\nitems \/ pages \/ etc are visible, use this method.", - "key.doc.declaration" : "public mutating func onVisibilityChanged(_ callback: @escaping OnVisibilityChanged)", - "key.doc.discussion" : [ - { - "Para" : "If you’d like to (eg) update a pagination indicator or other indicator of what items \/ pages \/ etc are visible, use this method." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "onVisibilityChanged(_:)<\/Name>s:10ListableUI17ListStateObserverV19onVisibilityChangedyyyAC0gH0VcF<\/USR>public mutating func onVisibilityChanged(_ callback: @escaping OnVisibilityChanged)<\/Declaration>Registers a callback which will be called when the visiblity of content within the list changes, either due to the user scrolling the list, or due to an update changing the visible content.<\/Para><\/Abstract>If you’d like to (eg) update a pagination indicator or other indicator of what items \/ pages \/ etc are visible, use this method.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 142, - "key.doc.name" : "onVisibilityChanged(_:)", - "key.doc.type" : "Function", - "key.doclength" : 355, - "key.docoffset" : 4447, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onVisibilityChanged<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnVisibilityChanged<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 131, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "onVisibilityChanged(_:)", - "key.namelength" : 64, - "key.nameoffset" : 4827, - "key.offset" : 4822, - "key.parsed_declaration" : "public mutating func onVisibilityChanged( _ callback : @escaping OnVisibilityChanged)", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 142, - "key.related_decls" : [ - { - "key.annotated_decl" : "onVisibilityChanged<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListStateObserver) -> (@escaping (ListStateObserver.VisibilityChanged) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI17ListStateObserverV17VisibilityChangedVccD", - "key.usr" : "s:10ListableUI17ListStateObserverV19onVisibilityChangedyyyAC0gH0VcF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var onVisibilityChanged: [OnVisibilityChanged<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 4963 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onVisibilityChanged<\/decl.name>: [OnVisibilityChanged<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 52, - "key.line" : 147, - "key.modulename" : "ListableUI", - "key.name" : "onVisibilityChanged", - "key.namelength" : 19, - "key.nameoffset" : 4980, - "key.offset" : 4976, - "key.parsed_declaration" : "private(set) var onVisibilityChanged : [OnVisibilityChanged] = []", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 147, - "key.related_decls" : [ - { - "key.annotated_decl" : "onVisibilityChanged(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[(ListStateObserver.VisibilityChanged) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV17VisibilityChangedVcGD", - "key.usr" : "s:10ListableUI17ListStateObserverV19onVisibilityChangedSayyAC0gH0VcGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 33, - "key.name" : "MARK: Responding To Frame Changes", - "key.offset" : 5048 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListStateObserver<\/Type>.OnFrameChanged = (FrameChanged<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5098 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnFrameChanged<\/decl.name> = (FrameChanged<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 47, - "key.line" : 153, - "key.modulename" : "ListableUI", - "key.name" : "OnFrameChanged", - "key.namelength" : 14, - "key.nameoffset" : 5115, - "key.offset" : 5105, - "key.parsed_declaration" : "public typealias OnFrameChanged = (FrameChanged) -> ()", - "key.parsed_scope.end" : 153, - "key.parsed_scope.start" : 153, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.FrameChanged) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV12FrameChangedVcmD", - "key.usr" : "s:10ListableUI17ListStateObserverV14OnFrameChangeda" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func onFrameChanged(_ callback: @escaping OnFrameChanged<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 5258 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5251 - } - ], - "key.bodylength" : 50, - "key.bodyoffset" : 5331, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Registers a callback which will be called when the list view's frame is changed.", - "key.doc.column" : 26, - "key.doc.comment" : "Registers a callback which will be called when the list view's frame is changed.", - "key.doc.declaration" : "public mutating func onFrameChanged(_ callback: @escaping OnFrameChanged)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "onFrameChanged(_:)<\/Name>s:10ListableUI17ListStateObserverV14onFrameChangedyyyAC0gH0VcF<\/USR>public mutating func onFrameChanged(_ callback: @escaping OnFrameChanged)<\/Declaration>Registers a callback which will be called when the list view’s frame is changed.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 156, - "key.doc.name" : "onFrameChanged(_:)", - "key.doc.type" : "Function", - "key.doclength" : 85, - "key.docoffset" : 5162, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onFrameChanged<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnFrameChanged<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 115, - "key.line" : 156, - "key.modulename" : "ListableUI", - "key.name" : "onFrameChanged(_:)", - "key.namelength" : 53, - "key.nameoffset" : 5272, - "key.offset" : 5267, - "key.parsed_declaration" : "public mutating func onFrameChanged(_ callback : @escaping OnFrameChanged)", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 156, - "key.related_decls" : [ - { - "key.annotated_decl" : "onFrameChanged<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListStateObserver) -> (@escaping (ListStateObserver.FrameChanged) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI17ListStateObserverV12FrameChangedVccD", - "key.usr" : "s:10ListableUI17ListStateObserverV14onFrameChangedyyyAC0gH0VcF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var onFrameChanged: [OnFrameChanged<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 5392 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onFrameChanged<\/decl.name>: [OnFrameChanged<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 161, - "key.modulename" : "ListableUI", - "key.name" : "onFrameChanged", - "key.namelength" : 14, - "key.nameoffset" : 5409, - "key.offset" : 5405, - "key.parsed_declaration" : "private(set) var onFrameChanged : [OnFrameChanged] = []", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 161, - "key.related_decls" : [ - { - "key.annotated_decl" : "onFrameChanged(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[(ListStateObserver.FrameChanged) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV12FrameChangedVcGD", - "key.usr" : "s:10ListableUI17ListStateObserverV14onFrameChangedSayyAC0gH0VcGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 37, - "key.name" : "MARK: Responding To Selection Changes", - "key.offset" : 5467 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListStateObserver<\/Type>.OnSelectionChanged = (SelectionChanged<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5521 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnSelectionChanged<\/decl.name> = (SelectionChanged<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 55, - "key.line" : 167, - "key.modulename" : "ListableUI", - "key.name" : "OnSelectionChanged", - "key.namelength" : 18, - "key.nameoffset" : 5538, - "key.offset" : 5528, - "key.parsed_declaration" : "public typealias OnSelectionChanged = (SelectionChanged) -> ()", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 167, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.SelectionChanged) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV16SelectionChangedVcmD", - "key.usr" : "s:10ListableUI17ListStateObserverV18OnSelectionChangeda" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func onSelectionChanged(_ callback: @escaping OnSelectionChanged<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 5711 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5704 - } - ], - "key.bodylength" : 54, - "key.bodyoffset" : 5792, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Registers a callback which will be called when the list view's selected items are changed by the user.", - "key.doc.column" : 26, - "key.doc.comment" : "Registers a callback which will be called when the list view's selected items are changed by the user.", - "key.doc.declaration" : "public mutating func onSelectionChanged(_ callback: @escaping OnSelectionChanged)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "onSelectionChanged(_:)<\/Name>s:10ListableUI17ListStateObserverV18onSelectionChangedyyyAC0gH0VcF<\/USR>public mutating func onSelectionChanged(_ callback: @escaping OnSelectionChanged)<\/Declaration>Registers a callback which will be called when the list view’s selected items are changed by the user.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 170, - "key.doc.name" : "onSelectionChanged(_:)", - "key.doc.type" : "Function", - "key.doclength" : 107, - "key.docoffset" : 5593, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onSelectionChanged<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnSelectionChanged<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 127, - "key.line" : 170, - "key.modulename" : "ListableUI", - "key.name" : "onSelectionChanged(_:)", - "key.namelength" : 61, - "key.nameoffset" : 5725, - "key.offset" : 5720, - "key.parsed_declaration" : "public mutating func onSelectionChanged(_ callback : @escaping OnSelectionChanged)", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 170, - "key.related_decls" : [ - { - "key.annotated_decl" : "onSelectionChanged<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListStateObserver) -> (@escaping (ListStateObserver.SelectionChanged) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI17ListStateObserverV16SelectionChangedVccD", - "key.usr" : "s:10ListableUI17ListStateObserverV18onSelectionChangedyyyAC0gH0VcF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var onSelectionChanged: [OnSelectionChanged<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 5857 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onSelectionChanged<\/decl.name>: [OnSelectionChanged<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 175, - "key.modulename" : "ListableUI", - "key.name" : "onSelectionChanged", - "key.namelength" : 18, - "key.nameoffset" : 5874, - "key.offset" : 5870, - "key.parsed_declaration" : "private(set) var onSelectionChanged : [OnSelectionChanged] = []", - "key.parsed_scope.end" : 175, - "key.parsed_scope.start" : 175, - "key.related_decls" : [ - { - "key.annotated_decl" : "onSelectionChanged(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[(ListStateObserver.SelectionChanged) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV16SelectionChangedVcGD", - "key.usr" : "s:10ListableUI17ListStateObserverV18onSelectionChangedSayyAC0gH0VcGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 35, - "key.name" : "MARK: Responding To Reordered Items", - "key.offset" : 5940 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListStateObserver<\/Type>.OnItemReordered = (ItemReordered<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5992 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnItemReordered<\/decl.name> = (ItemReordered<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 49, - "key.line" : 181, - "key.modulename" : "ListableUI", - "key.name" : "OnItemReordered", - "key.namelength" : 15, - "key.nameoffset" : 6009, - "key.offset" : 5999, - "key.parsed_declaration" : "public typealias OnItemReordered = (ItemReordered) -> ()", - "key.parsed_scope.end" : 181, - "key.parsed_scope.start" : 181, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.ItemReordered) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV13ItemReorderedVcmD", - "key.usr" : "s:10ListableUI17ListStateObserverV15OnItemReordereda" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func onItemReordered(_ callback: @escaping OnItemReordered<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 6270 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6263 - } - ], - "key.bodylength" : 51, - "key.bodyoffset" : 6345, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Registers a callback which will be called when an item in the list view is reordered by the customer.\nMay be called multiple times in a row for reorder events which contain multiple items.", - "key.doc.column" : 26, - "key.doc.comment" : "Registers a callback which will be called when an item in the list view is reordered by the customer.\nMay be called multiple times in a row for reorder events which contain multiple items.", - "key.doc.declaration" : "public mutating func onItemReordered(_ callback: @escaping OnItemReordered)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "onItemReordered(_:)<\/Name>s:10ListableUI17ListStateObserverV15onItemReorderedyyyAC0gH0VcF<\/USR>public mutating func onItemReordered(_ callback: @escaping OnItemReordered)<\/Declaration>Registers a callback which will be called when an item in the list view is reordered by the customer. May be called multiple times in a row for reorder events which contain multiple items.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 185, - "key.doc.name" : "onItemReordered(_:)", - "key.doc.type" : "Function", - "key.doclength" : 201, - "key.docoffset" : 6058, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onItemReordered<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnItemReordered<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 118, - "key.line" : 185, - "key.modulename" : "ListableUI", - "key.name" : "onItemReordered(_:)", - "key.namelength" : 55, - "key.nameoffset" : 6284, - "key.offset" : 6279, - "key.parsed_declaration" : "public mutating func onItemReordered(_ callback : @escaping OnItemReordered)", - "key.parsed_scope.end" : 188, - "key.parsed_scope.start" : 185, - "key.related_decls" : [ - { - "key.annotated_decl" : "onItemReordered<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout ListStateObserver) -> (@escaping (ListStateObserver.ItemReordered) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI17ListStateObserverV13ItemReorderedVccD", - "key.usr" : "s:10ListableUI17ListStateObserverV15onItemReorderedyyyAC0gH0VcF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var onItemReordered: [OnItemReordered<\/Type>] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 6407 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onItemReordered<\/decl.name>: [OnItemReordered<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 190, - "key.modulename" : "ListableUI", - "key.name" : "onItemReordered", - "key.namelength" : 15, - "key.nameoffset" : 6424, - "key.offset" : 6420, - "key.parsed_declaration" : "private(set) var onItemReordered : [OnItemReordered] = []", - "key.parsed_scope.end" : 190, - "key.parsed_scope.start" : 190, - "key.related_decls" : [ - { - "key.annotated_decl" : "onItemReordered(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[(ListStateObserver.ItemReordered) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV13ItemReorderedVcGD", - "key.usr" : "s:10ListableUI17ListStateObserverV15onItemReorderedSayyAC0gH0VcGvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 22, - "key.name" : "MARK: Internal Methods", - "key.offset" : 6484 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func perform<CallbackInfo>(_ callbacks: Array<\/Type><(CallbackInfo<\/Type>) -> ()>, _ loggingName: StaticString<\/Type>, with listView: ListView<\/Type>, makeInfo: (ListActions<\/Type>) -> (CallbackInfo<\/Type>))<\/Declaration>", - "key.bodylength" : 439, - "key.bodyoffset" : 6730, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> perform<\/decl.name><CallbackInfo<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> callbacks<\/decl.var.parameter.name>: Array<\/ref.struct><(CallbackInfo<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype>><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> loggingName<\/decl.var.parameter.name>: StaticString<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> listView<\/decl.var.parameter.name>: ListView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, makeInfo<\/decl.var.parameter.argument_label>: (ListActions<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> (CallbackInfo<\/ref.generic_type_param><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 647, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "perform(_:_:with:makeInfo:)", - "key.namelength" : 194, - "key.nameoffset" : 6535, - "key.offset" : 6523, - "key.parsed_declaration" : "static func perform(\n _ callbacks : Array<(CallbackInfo) -> ()>,\n _ loggingName : StaticString,\n with listView : ListView, makeInfo : (ListActions) -> (CallbackInfo)\n)", - "key.parsed_scope.end" : 217, - "key.parsed_scope.start" : 196, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "CallbackInfo<\/Declaration>", - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "CallbackInfo<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 12, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "CallbackInfo", - "key.namelength" : 12, - "key.nameoffset" : 6543, - "key.offset" : 6543, - "key.parsed_declaration" : "static func performlet actions: ListActions<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 27, - "key.line" : 205, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 6829, - "key.offset" : 6825, - "key.parsed_declaration" : "let actions = ListActions()", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 205, - "key.reusingastcontext" : false, - "key.typename" : "ListActions", - "key.typeusr" : "$s10ListableUI11ListActionsCD", - "key.usr" : "s:10ListableUI17ListStateObserverV7perform__4with8makeInfoySayyxcG_s12StaticStringVAA0C4ViewCxAA0C7ActionsCXEtlFZ7actionsL_AMvp" - }, - { - "key.annotated_decl" : "let callbackInfo: CallbackInfo<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> callbackInfo<\/decl.name>: CallbackInfo<\/ref.generic_type_param><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 36, - "key.line" : 208, - "key.modulename" : "ListableUI", - "key.name" : "callbackInfo", - "key.namelength" : 12, - "key.nameoffset" : 6910, - "key.offset" : 6906, - "key.parsed_declaration" : "let callbackInfo = makeInfo(actions)", - "key.parsed_scope.end" : 208, - "key.parsed_scope.start" : 208, - "key.reusingastcontext" : false, - "key.typename" : "CallbackInfo", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI17ListStateObserverV7perform__4with8makeInfoySayyxcG_s12StaticStringVAA0C4ViewCxAA0C7ActionsCXEtlFZ08callbackI0L_xvp" - } - ], - "key.typename" : " (ListStateObserver.Type) -> (Array<(CallbackInfo) -> ()>, StaticString, ListView, (ListActions) -> CallbackInfo) -> ()", - "key.typeusr" : "$s__4with8makeInfoySayyxcG_s12StaticStringV10ListableUI8ListViewCxAF0H7ActionsCXEtcluD", - "key.usr" : "s:10ListableUI17ListStateObserverV7perform__4with8makeInfoySayyxcG_s12StaticStringVAA0C4ViewCxAA0C7ActionsCXEtlFZ" - } - ], - "key.typename" : "ListStateObserver.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV" - }, - { - "key.annotated_decl" : "public struct ListStateObserver<\/Declaration>", - "key.bodylength" : 5496, - "key.bodyoffset" : 7204, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows reading state and events based on state changes within the list view.\nFor example, you can determine when a user scrolls, when the content of a list\nchanges, etc.\n\nThis is useful if you want to log these events to a logging or debugging system,\nor potentially perform actions on the list based on some change.\n\nEvery callback has its own data type, filled with information relevant to that callback.\nEvery callback also contains a `ListActions` to perform actions back on the list.\n\nYou can register for each callback type multiple times – eg to split apart different pieces of\nfunctionality. Eg, two calls to `onDidScroll` registers two callbacks.\n\n### Example\n```\nListStateObserver { observer in\n observer.onDidScroll { info in\n \/\/ Called whenever the list is scrolled.\n }\n\n observer.onContentChanged { info in\n \/\/ Called when items are inserted or removed.\n }\n}\n```\n\n### Note\nThe duration of performing all callbacks is logged to `os_signpost`. If you find that\nyour application is running slowly, and you have registered `ListStateObserver` callbacks,\nuse Instruments.app to see what callback is slow.\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ListStateObserver", - "key.doc.discussion" : [ - { - "Para" : "This is useful if you want to log these events to a logging or debugging system, or potentially perform actions on the list based on some change." - }, - { - "Para" : "Every callback has its own data type, filled with information relevant to that callback. Every callback also contains a `ListActions` to perform actions back on the list." - }, - { - "Para" : "You can register for each callback type multiple times – eg to split apart different pieces of functionality. Eg, two calls to `onDidScroll` registers two callbacks." - }, - { - "CodeListing" : "" - }, - { - "Para" : "The duration of performing all callbacks is logged to `os_signpost`. If you find that your application is running slowly, and you have registered `ListStateObserver` callbacks, use Instruments.app to see what callback is slow." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "ListStateObserver<\/Name>s:10ListableUI17ListStateObserverV<\/USR>public struct ListStateObserver<\/Declaration>Allows reading state and events based on state changes within the list view. For example, you can determine when a user scrolls, when the content of a list changes, etc.<\/Para><\/Abstract>This is useful if you want to log these events to a logging or debugging system, or potentially perform actions on the list based on some change.<\/Para>Every callback has its own data type, filled with information relevant to that callback. Every callback also contains a ListActions<\/codeVoice> to perform actions back on the list.<\/Para>You can register for each callback type multiple times – eg to split apart different pieces of functionality. Eg, two calls to onDidScroll<\/codeVoice> registers two callbacks.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>The duration of performing all callbacks is logged to os_signpost<\/codeVoice>. If you find that your application is running slowly, and you have registered ListStateObserver<\/codeVoice> callbacks, use Instruments.app to see what callback is slow.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "ListStateObserver", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListStateObserver<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 5526, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "ListStateObserver", - "key.namelength" : 17, - "key.nameoffset" : 7185, - "key.offset" : 7175, - "key.parsed_declaration" : "extension ListStateObserver", - "key.parsed_scope.end" : 369, - "key.parsed_scope.start" : 221, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct DidScroll<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7269 - } - ], - "key.bodylength" : 103, - "key.bodyoffset" : 7294, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Parameters available for ``OnDidScroll`` callbacks.", - "key.doc.column" : 19, - "key.doc.comment" : "Parameters available for ``OnDidScroll`` callbacks.", - "key.doc.declaration" : "public struct DidScroll", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "DidScroll<\/Name>s:10ListableUI17ListStateObserverV9DidScrollV<\/USR>public struct DidScroll<\/Declaration>Parameters available for OnDidScroll<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 224, - "key.doc.name" : "DidScroll", - "key.doc.type" : "Class", - "key.doclength" : 56, - "key.docoffset" : 7209, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> DidScroll<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 122, - "key.line" : 224, - "key.modulename" : "ListableUI", - "key.name" : "DidScroll", - "key.namelength" : 9, - "key.nameoffset" : 7283, - "key.offset" : 7276, - "key.parsed_declaration" : "public struct DidScroll", - "key.parsed_scope.end" : 227, - "key.parsed_scope.start" : 224, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let actions: ListActions<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7303 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 225, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 7314, - "key.offset" : 7310, - "key.parsed_declaration" : "public let actions : ListActions", - "key.parsed_scope.end" : 225, - "key.parsed_scope.start" : 225, - "key.reusingastcontext" : false, - "key.typename" : "ListActions", - "key.typeusr" : "$s10ListableUI11ListActionsCD", - "key.usr" : "s:10ListableUI17ListStateObserverV9DidScrollV7actionsAA0C7ActionsCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7344 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 226, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 7355, - "key.offset" : 7351, - "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 226, - "key.parsed_scope.start" : 226, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI17ListStateObserverV9DidScrollV12positionInfoAA0cg8PositionI0Vvp" - } - ], - "key.typename" : "ListStateObserver.DidScroll.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV9DidScrollVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV9DidScrollV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct DidEndDeceleration<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7477 - } - ], - "key.bodylength" : 62, - "key.bodyoffset" : 7511, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Parameters available for ``OnDidEndDeceleration`` callbacks.", - "key.doc.column" : 19, - "key.doc.comment" : "Parameters available for ``OnDidEndDeceleration`` callbacks.", - "key.doc.declaration" : "public struct DidEndDeceleration", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "DidEndDeceleration<\/Name>s:10ListableUI17ListStateObserverV18DidEndDecelerationV<\/USR>public struct DidEndDeceleration<\/Declaration>Parameters available for OnDidEndDeceleration<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 230, - "key.doc.name" : "DidEndDeceleration", - "key.doc.type" : "Class", - "key.doclength" : 65, - "key.docoffset" : 7408, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> DidEndDeceleration<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 90, - "key.line" : 230, - "key.modulename" : "ListableUI", - "key.name" : "DidEndDeceleration", - "key.namelength" : 18, - "key.nameoffset" : 7491, - "key.offset" : 7484, - "key.parsed_declaration" : "public struct DidEndDeceleration", - "key.parsed_scope.end" : 232, - "key.parsed_scope.start" : 230, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7520 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 231, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 7531, - "key.offset" : 7527, - "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 231, - "key.parsed_scope.start" : 231, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI17ListStateObserverV18DidEndDecelerationV12positionInfoAA0c14ScrollPositionJ0Vvp" - } - ], - "key.typename" : "ListStateObserver.DidEndDeceleration.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV18DidEndDecelerationVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV18DidEndDecelerationV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct DidEndScrollingAnimation<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7655 - } - ], - "key.bodylength" : 62, - "key.bodyoffset" : 7695, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Parameters available for ``OnDidEndScrollingAnimation`` callbacks.", - "key.doc.column" : 19, - "key.doc.comment" : "Parameters available for ``OnDidEndScrollingAnimation`` callbacks.", - "key.doc.declaration" : "public struct DidEndScrollingAnimation", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "DidEndScrollingAnimation<\/Name>s:10ListableUI17ListStateObserverV24DidEndScrollingAnimationV<\/USR>public struct DidEndScrollingAnimation<\/Declaration>Parameters available for OnDidEndScrollingAnimation<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 235, - "key.doc.name" : "DidEndScrollingAnimation", - "key.doc.type" : "Class", - "key.doclength" : 71, - "key.docoffset" : 7580, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> DidEndScrollingAnimation<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 96, - "key.line" : 235, - "key.modulename" : "ListableUI", - "key.name" : "DidEndScrollingAnimation", - "key.namelength" : 24, - "key.nameoffset" : 7669, - "key.offset" : 7662, - "key.parsed_declaration" : "public struct DidEndScrollingAnimation", - "key.parsed_scope.end" : 237, - "key.parsed_scope.start" : 235, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7704 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 236, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 7715, - "key.offset" : 7711, - "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 236, - "key.parsed_scope.start" : 236, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI17ListStateObserverV24DidEndScrollingAnimationV12positionInfoAA0c14ScrollPositionK0Vvp" - } - ], - "key.typename" : "ListStateObserver.DidEndScrollingAnimation.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV24DidEndScrollingAnimationVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV24DidEndScrollingAnimationV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct BeginDrag<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7824 - } - ], - "key.bodylength" : 62, - "key.bodyoffset" : 7849, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Parameters available for ``OnBeginDrag`` callbacks.", - "key.doc.column" : 19, - "key.doc.comment" : "Parameters available for ``OnBeginDrag`` callbacks.", - "key.doc.declaration" : "public struct BeginDrag", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "BeginDrag<\/Name>s:10ListableUI17ListStateObserverV9BeginDragV<\/USR>public struct BeginDrag<\/Declaration>Parameters available for OnBeginDrag<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 240, - "key.doc.name" : "BeginDrag", - "key.doc.type" : "Class", - "key.doclength" : 56, - "key.docoffset" : 7764, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> BeginDrag<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 81, - "key.line" : 240, - "key.modulename" : "ListableUI", - "key.name" : "BeginDrag", - "key.namelength" : 9, - "key.nameoffset" : 7838, - "key.offset" : 7831, - "key.parsed_declaration" : "public struct BeginDrag", - "key.parsed_scope.end" : 242, - "key.parsed_scope.start" : 240, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7858 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 241, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 7869, - "key.offset" : 7865, - "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 241, - "key.parsed_scope.start" : 241, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI17ListStateObserverV9BeginDragV12positionInfoAA0c14ScrollPositionI0Vvp" - } - ], - "key.typename" : "ListStateObserver.BeginDrag.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV9BeginDragVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV9BeginDragV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ContentUpdated<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7987 - } - ], - "key.bodylength" : 2134, - "key.bodyoffset" : 8017, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Parameters available for ``OnContentUpdated`` callbacks.", - "key.doc.column" : 19, - "key.doc.comment" : "Parameters available for ``OnContentUpdated`` callbacks.", - "key.doc.declaration" : "public struct ContentUpdated", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "ContentUpdated<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV<\/USR>public struct ContentUpdated<\/Declaration>Parameters available for OnContentUpdated<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 245, - "key.doc.name" : "ContentUpdated", - "key.doc.type" : "Class", - "key.doclength" : 61, - "key.docoffset" : 7922, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ContentUpdated<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2158, - "key.line" : 245, - "key.modulename" : "ListableUI", - "key.name" : "ContentUpdated", - "key.namelength" : 14, - "key.nameoffset" : 8001, - "key.offset" : 7994, - "key.parsed_declaration" : "public struct ContentUpdated", - "key.parsed_scope.end" : 297, - "key.parsed_scope.start" : 245, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let hadChanges: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8105 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> hadChanges<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 248, - "key.modulename" : "ListableUI", - "key.name" : "hadChanges", - "key.namelength" : 10, - "key.nameoffset" : 8116, - "key.offset" : 8112, - "key.parsed_declaration" : "public let hadChanges : Bool", - "key.parsed_scope.end" : 248, - "key.parsed_scope.start" : 248, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV10hadChangesSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let insertionsAndRemovals: InsertionsAndRemovals<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8215 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The insertions and removals in this change, if any.", - "key.doc.column" : 20, - "key.doc.comment" : "The insertions and removals in this change, if any.", - "key.doc.declaration" : "public let insertionsAndRemovals: InsertionsAndRemovals", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "insertionsAndRemovals<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV21insertionsAndRemovalsAE010InsertionsiJ0Vvp<\/USR>public let insertionsAndRemovals: InsertionsAndRemovals<\/Declaration>The insertions and removals in this change, if any.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 251, - "key.doc.name" : "insertionsAndRemovals", - "key.doc.type" : "Other", - "key.doclength" : 56, - "key.docoffset" : 8151, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> insertionsAndRemovals<\/decl.name>: InsertionsAndRemovals<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 49, - "key.line" : 251, - "key.modulename" : "ListableUI", - "key.name" : "insertionsAndRemovals", - "key.namelength" : 21, - "key.nameoffset" : 8226, - "key.offset" : 8222, - "key.parsed_declaration" : "public let insertionsAndRemovals : InsertionsAndRemovals", - "key.parsed_scope.end" : 251, - "key.parsed_scope.start" : 251, - "key.reusingastcontext" : false, - "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals", - "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsVD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21insertionsAndRemovalsAE010InsertionsiJ0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let actions: ListActions<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8391 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.column" : 20, - "key.doc.comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.declaration" : "public let actions: ListActions", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV7actionsAA0C7ActionsCvp<\/USR>public let actions: ListActions<\/Declaration>A set of methods you can use to perform actions on the list, eg scrolling to a given row.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 254, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.doclength" : 94, - "key.docoffset" : 8289, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 254, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 8402, - "key.offset" : 8398, - "key.parsed_declaration" : "public let actions : ListActions", - "key.parsed_scope.end" : 254, - "key.parsed_scope.start" : 254, - "key.reusingastcontext" : false, - "key.typename" : "ListActions", - "key.typeusr" : "$s10ListableUI11ListActionsCD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV7actionsAA0C7ActionsCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8494 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The current scroll position of the list.", - "key.doc.column" : 20, - "key.doc.comment" : "The current scroll position of the list.", - "key.doc.declaration" : "public let positionInfo: ListScrollPositionInfo", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "positionInfo<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV12positionInfoAA0c14ScrollPositionI0Vvp<\/USR>public let positionInfo: ListScrollPositionInfo<\/Declaration>The current scroll position of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 257, - "key.doc.name" : "positionInfo", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 8441, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 257, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 8505, - "key.offset" : 8501, - "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 257, - "key.parsed_scope.start" : 257, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV12positionInfoAA0c14ScrollPositionI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListStateObserver<\/Type>.ContentUpdated<\/Type>.InsertionsAndRemovals<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9025 - } - ], - "key.bodylength" : 1083, - "key.bodyoffset" : 9062, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The insertions and removals, for both sections and items, applied to a list\nas the result of an update.\n\nNote that if developers do not provide unique IDs across sections,\nIDs will overlap for items across sections. Because `ChangedIDs`\ncontains a `Set`, two sections inserting (or removing) an item with an equal ID\nwill only be included in `ChangedIDs.inserted\/removed` set once.", - "key.doc.column" : 23, - "key.doc.comment" : "The insertions and removals, for both sections and items, applied to a list\nas the result of an update.\n\nNote that if developers do not provide unique IDs across sections,\nIDs will overlap for items across sections. Because `ChangedIDs`\ncontains a `Set`, two sections inserting (or removing) an item with an equal ID\nwill only be included in `ChangedIDs.inserted\/removed` set once.", - "key.doc.declaration" : "public struct ListableUI.ListStateObserver.ContentUpdated.InsertionsAndRemovals", - "key.doc.discussion" : [ - { - "Para" : "Note that if developers do not provide unique IDs across sections, IDs will overlap for items across sections. Because `ChangedIDs` contains a `Set`, two sections inserting (or removing) an item with an equal ID will only be included in `ChangedIDs.inserted\/removed` set once." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "InsertionsAndRemovals<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV<\/USR>public struct ListableUI.ListStateObserver.ContentUpdated.InsertionsAndRemovals<\/Declaration>The insertions and removals, for both sections and items, applied to a list as the result of an update.<\/Para><\/Abstract>Note that if developers do not provide unique IDs across sections, IDs will overlap for items across sections. Because ChangedIDs<\/codeVoice> contains a Set<\/codeVoice>, two sections inserting (or removing) an item with an equal ID will only be included in ChangedIDs.inserted\/removed<\/codeVoice> set once.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 266, - "key.doc.name" : "InsertionsAndRemovals", - "key.doc.type" : "Class", - "key.doclength" : 457, - "key.docoffset" : 8560, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.ContentUpdated<\/ref.struct>.InsertionsAndRemovals<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1114, - "key.line" : 266, - "key.modulename" : "ListableUI", - "key.name" : "InsertionsAndRemovals", - "key.namelength" : 21, - "key.nameoffset" : 9039, - "key.offset" : 9032, - "key.parsed_declaration" : "public struct InsertionsAndRemovals", - "key.parsed_scope.end" : 296, - "key.parsed_scope.start" : 266, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sections: ChangedIDs<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9127 - } - ], - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The inserted and removed sections.", - "key.doc.column" : 24, - "key.doc.comment" : "The inserted and removed sections.", - "key.doc.declaration" : "public var sections: ChangedIDs", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "sections<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV8sectionsAG10ChangedIDsVvp<\/USR>public var sections: ChangedIDs<\/Declaration>The inserted and removed sections.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 269, - "key.doc.name" : "sections", - "key.doc.type" : "Other", - "key.doclength" : 39, - "key.docoffset" : 9076, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sections<\/decl.name>: ChangedIDs<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 269, - "key.modulename" : "ListableUI", - "key.name" : "sections", - "key.namelength" : 8, - "key.nameoffset" : 9138, - "key.offset" : 9134, - "key.parsed_declaration" : "public var sections : ChangedIDs", - "key.parsed_scope.end" : 269, - "key.parsed_scope.start" : 269, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs", - "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsVD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV8sectionsAG10ChangedIDsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var items: ChangedIDs<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9233 - } - ], - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The inserted and removed items.", - "key.doc.column" : 24, - "key.doc.comment" : "The inserted and removed items.", - "key.doc.declaration" : "public var items: ChangedIDs", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV5itemsAG10ChangedIDsVvp<\/USR>public var items: ChangedIDs<\/Declaration>The inserted and removed items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 272, - "key.doc.name" : "items", - "key.doc.type" : "Other", - "key.doclength" : 36, - "key.docoffset" : 9185, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> items<\/decl.name>: ChangedIDs<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 272, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 9244, - "key.offset" : 9240, - "key.parsed_declaration" : "public var items : ChangedIDs", - "key.parsed_scope.end" : 272, - "key.parsed_scope.start" : 272, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs", - "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsVD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV5itemsAG10ChangedIDsVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(diff: SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>)<\/Declaration>", - "key.bodylength" : 450, - "key.bodyoffset" : 9364, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(diff<\/decl.var.parameter.argument_label>: SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 527, - "key.line" : 274, - "key.modulename" : "ListableUI", - "key.name" : "init(diff:)", - "key.namelength" : 74, - "key.nameoffset" : 9288, - "key.offset" : 9288, - "key.parsed_declaration" : "init(diff : SectionedDiff)", - "key.parsed_scope.end" : 285, - "key.parsed_scope.start" : 274, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListStateObserver.ContentUpdated.InsertionsAndRemovals.Type) -> (SectionedDiff) -> ListStateObserver.ContentUpdated.InsertionsAndRemovals", - "key.typeusr" : "$s4diff10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsVAB13SectionedDiffVyAB7SectionVAB13AnyIdentifierCAB0O4Item_pANG_tcD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV4diffAgA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0O4Item_pANG_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListStateObserver<\/Type>.ContentUpdated<\/Type>.InsertionsAndRemovals<\/Type>.ChangedIDs<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9874 - } - ], - "key.bodylength" : 235, - "key.bodyoffset" : 9900, - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The changed IDs.", - "key.doc.column" : 27, - "key.doc.comment" : "The changed IDs.", - "key.doc.declaration" : "public struct ListableUI.ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "ChangedIDs<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV<\/USR>public struct ListableUI.ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs<\/Declaration>The changed IDs.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 288, - "key.doc.name" : "ChangedIDs", - "key.doc.type" : "Class", - "key.doclength" : 21, - "key.docoffset" : 9841, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.ContentUpdated<\/ref.struct>.InsertionsAndRemovals<\/ref.struct>.ChangedIDs<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 255, - "key.line" : 288, - "key.modulename" : "ListableUI", - "key.name" : "ChangedIDs", - "key.namelength" : 10, - "key.nameoffset" : 9888, - "key.offset" : 9881, - "key.parsed_declaration" : "public struct ChangedIDs", - "key.parsed_scope.end" : 295, - "key.parsed_scope.start" : 288, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var inserted: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9972 - } - ], - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The inserted IDs.", - "key.doc.column" : 28, - "key.doc.comment" : "The inserted IDs.", - "key.doc.declaration" : "public var inserted: Set", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "inserted<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV8insertedShyAA13AnyIdentifierCGvp<\/USR>public var inserted: Set<AnyIdentifier><\/Declaration>The inserted IDs.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 291, - "key.doc.name" : "inserted", - "key.doc.type" : "Other", - "key.doclength" : 22, - "key.docoffset" : 9934, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> inserted<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 291, - "key.modulename" : "ListableUI", - "key.name" : "inserted", - "key.namelength" : 8, - "key.nameoffset" : 9983, - "key.offset" : 9979, - "key.parsed_declaration" : "public var inserted : Set", - "key.parsed_scope.end" : 291, - "key.parsed_scope.start" : 291, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV8insertedShyAA13AnyIdentifierCGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var removed: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10083 - } - ], - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The removed IDs.", - "key.doc.column" : 28, - "key.doc.comment" : "The removed IDs.", - "key.doc.declaration" : "public var removed: Set", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "removed<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV7removedShyAA13AnyIdentifierCGvp<\/USR>public var removed: Set<AnyIdentifier><\/Declaration>The removed IDs.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 294, - "key.doc.name" : "removed", - "key.doc.type" : "Other", - "key.doclength" : 21, - "key.docoffset" : 10046, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> removed<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 294, - "key.modulename" : "ListableUI", - "key.name" : "removed", - "key.namelength" : 7, - "key.nameoffset" : 10094, - "key.offset" : 10090, - "key.parsed_declaration" : "public var removed : Set", - "key.parsed_scope.end" : 294, - "key.parsed_scope.start" : 294, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV7removedShyAA13AnyIdentifierCGvp" - } - ], - "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV" - } - ], - "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV" - } - ], - "key.typename" : "ListStateObserver.ContentUpdated.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct VisibilityChanged<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10235 - } - ], - "key.bodylength" : 551, - "key.bodyoffset" : 10268, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Parameters available for ``OnVisibilityChanged`` callbacks.", - "key.doc.column" : 19, - "key.doc.comment" : "Parameters available for ``OnVisibilityChanged`` callbacks.", - "key.doc.declaration" : "public struct VisibilityChanged", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "VisibilityChanged<\/Name>s:10ListableUI17ListStateObserverV17VisibilityChangedV<\/USR>public struct VisibilityChanged<\/Declaration>Parameters available for OnVisibilityChanged<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 301, - "key.doc.name" : "VisibilityChanged", - "key.doc.type" : "Class", - "key.doclength" : 64, - "key.docoffset" : 10167, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> VisibilityChanged<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 578, - "key.line" : 301, - "key.modulename" : "ListableUI", - "key.name" : "VisibilityChanged", - "key.namelength" : 17, - "key.nameoffset" : 10249, - "key.offset" : 10242, - "key.parsed_declaration" : "public struct VisibilityChanged", - "key.parsed_scope.end" : 314, - "key.parsed_scope.start" : 301, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let actions: ListActions<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10388 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.column" : 20, - "key.doc.comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.declaration" : "public let actions: ListActions", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI17ListStateObserverV17VisibilityChangedV7actionsAA0C7ActionsCvp<\/USR>public let actions: ListActions<\/Declaration>A set of methods you can use to perform actions on the list, eg scrolling to a given row.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 304, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.doclength" : 94, - "key.docoffset" : 10286, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 304, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 10399, - "key.offset" : 10395, - "key.parsed_declaration" : "public let actions : ListActions", - "key.parsed_scope.end" : 304, - "key.parsed_scope.start" : 304, - "key.reusingastcontext" : false, - "key.typename" : "ListActions", - "key.typeusr" : "$s10ListableUI11ListActionsCD", - "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV7actionsAA0C7ActionsCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10491 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The current scroll position of the list.", - "key.doc.column" : 20, - "key.doc.comment" : "The current scroll position of the list.", - "key.doc.declaration" : "public let positionInfo: ListScrollPositionInfo", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "positionInfo<\/Name>s:10ListableUI17ListStateObserverV17VisibilityChangedV12positionInfoAA0c14ScrollPositionI0Vvp<\/USR>public let positionInfo: ListScrollPositionInfo<\/Declaration>The current scroll position of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 307, - "key.doc.name" : "positionInfo", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 10438, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 307, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 10502, - "key.offset" : 10498, - "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 307, - "key.parsed_scope.start" : 307, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV12positionInfoAA0c14ScrollPositionI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let displayed: [AnyItem<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10638 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The items which were scrolled into view or otherwise became visible.", - "key.doc.column" : 20, - "key.doc.comment" : "The items which were scrolled into view or otherwise became visible.", - "key.doc.declaration" : "public let displayed: [AnyItem]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "displayed<\/Name>s:10ListableUI17ListStateObserverV17VisibilityChangedV9displayedSayAA7AnyItem_pGvp<\/USR>public let displayed: [AnyItem]<\/Declaration>The items which were scrolled into view or otherwise became visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 310, - "key.doc.name" : "displayed", - "key.doc.type" : "Other", - "key.doclength" : 73, - "key.docoffset" : 10557, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> displayed<\/decl.name>: [AnyItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 310, - "key.modulename" : "ListableUI", - "key.name" : "displayed", - "key.namelength" : 9, - "key.nameoffset" : 10649, - "key.offset" : 10645, - "key.parsed_declaration" : "public let displayed : [AnyItem]", - "key.parsed_scope.end" : 310, - "key.parsed_scope.start" : 310, - "key.reusingastcontext" : false, - "key.typename" : "[any AnyItem]", - "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD", - "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV9displayedSayAA7AnyItem_pGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let endedDisplay: [AnyItem<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10779 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The items which were scrolled out of view or otherwise were removed from view.", - "key.doc.column" : 20, - "key.doc.comment" : "The items which were scrolled out of view or otherwise were removed from view.", - "key.doc.declaration" : "public let endedDisplay: [AnyItem]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "endedDisplay<\/Name>s:10ListableUI17ListStateObserverV17VisibilityChangedV12endedDisplaySayAA7AnyItem_pGvp<\/USR>public let endedDisplay: [AnyItem]<\/Declaration>The items which were scrolled out of view or otherwise were removed from view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 313, - "key.doc.name" : "endedDisplay", - "key.doc.type" : "Other", - "key.doclength" : 83, - "key.docoffset" : 10688, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> endedDisplay<\/decl.name>: [AnyItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 313, - "key.modulename" : "ListableUI", - "key.name" : "endedDisplay", - "key.namelength" : 12, - "key.nameoffset" : 10790, - "key.offset" : 10786, - "key.parsed_declaration" : "public let endedDisplay : [AnyItem]", - "key.parsed_scope.end" : 313, - "key.parsed_scope.start" : 313, - "key.reusingastcontext" : false, - "key.typename" : "[any AnyItem]", - "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD", - "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV12endedDisplaySayAA7AnyItem_pGvp" - } - ], - "key.typename" : "ListStateObserver.VisibilityChanged.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV17VisibilityChangedVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct FrameChanged<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10898 - } - ], - "key.bodylength" : 464, - "key.bodyoffset" : 10926, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Parameters available for ``OnFrameChanged`` callbacks.", - "key.doc.column" : 19, - "key.doc.comment" : "Parameters available for ``OnFrameChanged`` callbacks.", - "key.doc.declaration" : "public struct FrameChanged", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "FrameChanged<\/Name>s:10ListableUI17ListStateObserverV12FrameChangedV<\/USR>public struct FrameChanged<\/Declaration>Parameters available for OnFrameChanged<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 318, - "key.doc.name" : "FrameChanged", - "key.doc.type" : "Class", - "key.doclength" : 59, - "key.docoffset" : 10835, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> FrameChanged<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 486, - "key.line" : 318, - "key.modulename" : "ListableUI", - "key.name" : "FrameChanged", - "key.namelength" : 12, - "key.nameoffset" : 10912, - "key.offset" : 10905, - "key.parsed_declaration" : "public struct FrameChanged", - "key.parsed_scope.end" : 331, - "key.parsed_scope.start" : 318, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let actions: ListActions<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11046 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.column" : 20, - "key.doc.comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.declaration" : "public let actions: ListActions", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI17ListStateObserverV12FrameChangedV7actionsAA0C7ActionsCvp<\/USR>public let actions: ListActions<\/Declaration>A set of methods you can use to perform actions on the list, eg scrolling to a given row.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 321, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.doclength" : 94, - "key.docoffset" : 10944, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 321, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 11057, - "key.offset" : 11053, - "key.parsed_declaration" : "public let actions : ListActions", - "key.parsed_scope.end" : 321, - "key.parsed_scope.start" : 321, - "key.reusingastcontext" : false, - "key.typename" : "ListActions", - "key.typeusr" : "$s10ListableUI11ListActionsCD", - "key.usr" : "s:10ListableUI17ListStateObserverV12FrameChangedV7actionsAA0C7ActionsCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11149 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The current scroll position of the list.", - "key.doc.column" : 20, - "key.doc.comment" : "The current scroll position of the list.", - "key.doc.declaration" : "public let positionInfo: ListScrollPositionInfo", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "positionInfo<\/Name>s:10ListableUI17ListStateObserverV12FrameChangedV12positionInfoAA0c14ScrollPositionI0Vvp<\/USR>public let positionInfo: ListScrollPositionInfo<\/Declaration>The current scroll position of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 324, - "key.doc.name" : "positionInfo", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 11096, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 324, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 11160, - "key.offset" : 11156, - "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 324, - "key.parsed_scope.start" : 324, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI17ListStateObserverV12FrameChangedV12positionInfoAA0c14ScrollPositionI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let old: CGRect<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11264 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The old frame within the bounds of the list.", - "key.doc.column" : 20, - "key.doc.comment" : "The old frame within the bounds of the list.", - "key.doc.declaration" : "public let old: CGRect", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "old<\/Name>s:10ListableUI17ListStateObserverV12FrameChangedV3oldSo6CGRectVvp<\/USR>public let old: CGRect<\/Declaration>The old frame within the bounds of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 327, - "key.doc.name" : "old", - "key.doc.type" : "Other", - "key.doclength" : 49, - "key.docoffset" : 11207, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> old<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 16, - "key.line" : 327, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 11275, - "key.offset" : 11271, - "key.parsed_declaration" : "public let old : CGRect", - "key.parsed_scope.end" : 327, - "key.parsed_scope.start" : 327, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI17ListStateObserverV12FrameChangedV3oldSo6CGRectVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let new: CGRect<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11362 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The new frame within the bounds of the list.", - "key.doc.column" : 20, - "key.doc.comment" : "The new frame within the bounds of the list.", - "key.doc.declaration" : "public let new: CGRect", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "new<\/Name>s:10ListableUI17ListStateObserverV12FrameChangedV3newSo6CGRectVvp<\/USR>public let new: CGRect<\/Declaration>The new frame within the bounds of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 330, - "key.doc.name" : "new", - "key.doc.type" : "Other", - "key.doclength" : 49, - "key.docoffset" : 11305, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> new<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 16, - "key.line" : 330, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 11373, - "key.offset" : 11369, - "key.parsed_declaration" : "public let new : CGRect", - "key.parsed_scope.end" : 330, - "key.parsed_scope.start" : 330, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI17ListStateObserverV12FrameChangedV3newSo6CGRectVvp" - } - ], - "key.typename" : "ListStateObserver.FrameChanged.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV12FrameChangedVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV12FrameChangedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct SelectionChanged<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11473 - } - ], - "key.bodylength" : 481, - "key.bodyoffset" : 11505, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Parameters available for ``OnSelectionChanged`` callbacks.", - "key.doc.column" : 19, - "key.doc.comment" : "Parameters available for ``OnSelectionChanged`` callbacks.", - "key.doc.declaration" : "public struct SelectionChanged", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "SelectionChanged<\/Name>s:10ListableUI17ListStateObserverV16SelectionChangedV<\/USR>public struct SelectionChanged<\/Declaration>Parameters available for OnSelectionChanged<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 335, - "key.doc.name" : "SelectionChanged", - "key.doc.type" : "Class", - "key.doclength" : 63, - "key.docoffset" : 11406, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SelectionChanged<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 507, - "key.line" : 335, - "key.modulename" : "ListableUI", - "key.name" : "SelectionChanged", - "key.namelength" : 16, - "key.nameoffset" : 11487, - "key.offset" : 11480, - "key.parsed_declaration" : "public struct SelectionChanged", - "key.parsed_scope.end" : 348, - "key.parsed_scope.start" : 335, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let actions: ListActions<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11625 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.column" : 20, - "key.doc.comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.declaration" : "public let actions: ListActions", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI17ListStateObserverV16SelectionChangedV7actionsAA0C7ActionsCvp<\/USR>public let actions: ListActions<\/Declaration>A set of methods you can use to perform actions on the list, eg scrolling to a given row.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 338, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.doclength" : 94, - "key.docoffset" : 11523, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 338, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 11636, - "key.offset" : 11632, - "key.parsed_declaration" : "public let actions : ListActions", - "key.parsed_scope.end" : 338, - "key.parsed_scope.start" : 338, - "key.reusingastcontext" : false, - "key.typename" : "ListActions", - "key.typeusr" : "$s10ListableUI11ListActionsCD", - "key.usr" : "s:10ListableUI17ListStateObserverV16SelectionChangedV7actionsAA0C7ActionsCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11728 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The current scroll position of the list.", - "key.doc.column" : 20, - "key.doc.comment" : "The current scroll position of the list.", - "key.doc.declaration" : "public let positionInfo: ListScrollPositionInfo", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "positionInfo<\/Name>s:10ListableUI17ListStateObserverV16SelectionChangedV12positionInfoAA0c14ScrollPositionI0Vvp<\/USR>public let positionInfo: ListScrollPositionInfo<\/Declaration>The current scroll position of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 341, - "key.doc.name" : "positionInfo", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 11675, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 341, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 11739, - "key.offset" : 11735, - "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 341, - "key.parsed_scope.start" : 341, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI17ListStateObserverV16SelectionChangedV12positionInfoAA0c14ScrollPositionI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let old: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11842 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The previously selected items' identifiers.", - "key.doc.column" : 20, - "key.doc.comment" : "The previously selected items' identifiers.", - "key.doc.declaration" : "public let old: Set", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "old<\/Name>s:10ListableUI17ListStateObserverV16SelectionChangedV3oldShyAA13AnyIdentifierCGvp<\/USR>public let old: Set<AnyIdentifier><\/Declaration>The previously selected items’ identifiers.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 344, - "key.doc.name" : "old", - "key.doc.type" : "Other", - "key.doclength" : 48, - "key.docoffset" : 11786, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> old<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 344, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 11853, - "key.offset" : 11849, - "key.parsed_declaration" : "public let old : Set", - "key.parsed_scope.end" : 344, - "key.parsed_scope.start" : 344, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD", - "key.usr" : "s:10ListableUI17ListStateObserverV16SelectionChangedV3oldShyAA13AnyIdentifierCGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let new: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11946 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The newly selected items' identifiers.", - "key.doc.column" : 20, - "key.doc.comment" : "The newly selected items' identifiers.", - "key.doc.declaration" : "public let new: Set", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "new<\/Name>s:10ListableUI17ListStateObserverV16SelectionChangedV3newShyAA13AnyIdentifierCGvp<\/USR>public let new: Set<AnyIdentifier><\/Declaration>The newly selected items’ identifiers.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 347, - "key.doc.name" : "new", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 11895, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> new<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 347, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 11957, - "key.offset" : 11953, - "key.parsed_declaration" : "public let new : Set", - "key.parsed_scope.end" : 347, - "key.parsed_scope.start" : 347, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD", - "key.usr" : "s:10ListableUI17ListStateObserverV16SelectionChangedV3newShyAA13AnyIdentifierCGvp" - } - ], - "key.typename" : "ListStateObserver.SelectionChanged.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV16SelectionChangedVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV16SelectionChangedV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemReordered<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12066 - } - ], - "key.bodylength" : 603, - "key.bodyoffset" : 12095, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Parameters available for ``OnItemReordered`` callbacks.", - "key.doc.column" : 19, - "key.doc.comment" : "Parameters available for ``OnItemReordered`` callbacks.", - "key.doc.declaration" : "public struct ItemReordered", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "ItemReordered<\/Name>s:10ListableUI17ListStateObserverV13ItemReorderedV<\/USR>public struct ItemReordered<\/Declaration>Parameters available for OnItemReordered<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 352, - "key.doc.name" : "ItemReordered", - "key.doc.type" : "Class", - "key.doclength" : 60, - "key.docoffset" : 12002, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemReordered<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 626, - "key.line" : 352, - "key.modulename" : "ListableUI", - "key.name" : "ItemReordered", - "key.namelength" : 13, - "key.nameoffset" : 12080, - "key.offset" : 12073, - "key.parsed_declaration" : "public struct ItemReordered", - "key.parsed_scope.end" : 368, - "key.parsed_scope.start" : 352, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let actions: ListActions<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12215 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.column" : 20, - "key.doc.comment" : "A set of methods you can use to perform actions on the list, eg scrolling to a given row.", - "key.doc.declaration" : "public let actions: ListActions", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI17ListStateObserverV13ItemReorderedV7actionsAA0C7ActionsCvp<\/USR>public let actions: ListActions<\/Declaration>A set of methods you can use to perform actions on the list, eg scrolling to a given row.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 355, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.doclength" : 94, - "key.docoffset" : 12113, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 355, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 12226, - "key.offset" : 12222, - "key.parsed_declaration" : "public let actions : ListActions", - "key.parsed_scope.end" : 355, - "key.parsed_scope.start" : 355, - "key.reusingastcontext" : false, - "key.typename" : "ListActions", - "key.typeusr" : "$s10ListableUI11ListActionsCD", - "key.usr" : "s:10ListableUI17ListStateObserverV13ItemReorderedV7actionsAA0C7ActionsCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12318 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The current scroll position of the list.", - "key.doc.column" : 20, - "key.doc.comment" : "The current scroll position of the list.", - "key.doc.declaration" : "public let positionInfo: ListScrollPositionInfo", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "positionInfo<\/Name>s:10ListableUI17ListStateObserverV13ItemReorderedV12positionInfoAA0c14ScrollPositionI0Vvp<\/USR>public let positionInfo: ListScrollPositionInfo<\/Declaration>The current scroll position of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 358, - "key.doc.name" : "positionInfo", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 12265, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 358, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 12329, - "key.offset" : 12325, - "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 358, - "key.parsed_scope.start" : 358, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI17ListStateObserverV13ItemReorderedV12positionInfoAA0c14ScrollPositionI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let item: AnyItem<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12442 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item which was reordered by the customer.", - "key.doc.column" : 20, - "key.doc.comment" : "The item which was reordered by the customer.", - "key.doc.declaration" : "public let item: AnyItem", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "item<\/Name>s:10ListableUI17ListStateObserverV13ItemReorderedV4itemAA03AnyF0_pvp<\/USR>public let item: AnyItem<\/Declaration>The item which was reordered by the customer.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 361, - "key.doc.name" : "item", - "key.doc.type" : "Other", - "key.doclength" : 50, - "key.docoffset" : 12384, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 361, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 12453, - "key.offset" : 12449, - "key.parsed_declaration" : "public let item : AnyItem", - "key.parsed_scope.end" : 361, - "key.parsed_scope.start" : 361, - "key.reusingastcontext" : false, - "key.typename" : "any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pD", - "key.usr" : "s:10ListableUI17ListStateObserverV13ItemReorderedV4itemAA03AnyF0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let sections: [Section<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12540 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The new state of all sections in the list.", - "key.doc.column" : 20, - "key.doc.comment" : "The new state of all sections in the list.", - "key.doc.declaration" : "public let sections: [Section]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "sections<\/Name>s:10ListableUI17ListStateObserverV13ItemReorderedV8sectionsSayAA7SectionVGvp<\/USR>public let sections: [Section]<\/Declaration>The new state of all sections in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 364, - "key.doc.name" : "sections", - "key.doc.type" : "Other", - "key.doclength" : 47, - "key.docoffset" : 12485, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> sections<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 364, - "key.modulename" : "ListableUI", - "key.name" : "sections", - "key.namelength" : 8, - "key.nameoffset" : 12551, - "key.offset" : 12547, - "key.parsed_declaration" : "public let sections : [Section]", - "key.parsed_scope.end" : 364, - "key.parsed_scope.start" : 364, - "key.reusingastcontext" : false, - "key.typename" : "[Section]", - "key.typeusr" : "$sSay10ListableUI7SectionVGD", - "key.usr" : "s:10ListableUI17ListStateObserverV13ItemReorderedV8sectionsSayAA7SectionVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let result: ItemReordering<\/Type>.Result<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12652 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The detailed information about the reorder event. ", - "key.doc.column" : 20, - "key.doc.comment" : "The detailed information about the reorder event.", - "key.doc.declaration" : "public let result: ItemReordering.Result", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.doc.full_as_xml" : "result<\/Name>s:10ListableUI17ListStateObserverV13ItemReorderedV6resultAA0F10ReorderingV6ResultVvp<\/USR>public let result: ItemReordering.Result<\/Declaration>The detailed information about the reorder event.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 367, - "key.doc.name" : "result", - "key.doc.type" : "Other", - "key.doclength" : 55, - "key.docoffset" : 12589, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListStateObserver.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> result<\/decl.name>: ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 367, - "key.modulename" : "ListableUI", - "key.name" : "result", - "key.namelength" : 6, - "key.nameoffset" : 12663, - "key.offset" : 12659, - "key.parsed_declaration" : "public let result : ItemReordering.Result", - "key.parsed_scope.end" : 367, - "key.parsed_scope.start" : 367, - "key.reusingastcontext" : false, - "key.typename" : "ItemReordering.Result", - "key.typeusr" : "$s10ListableUI14ItemReorderingV6ResultVD", - "key.usr" : "s:10ListableUI17ListStateObserverV13ItemReorderedV6resultAA0F10ReorderingV6ResultVvp" - } - ], - "key.typename" : "ListStateObserver.ItemReordered.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverV13ItemReorderedVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV13ItemReorderedV" - } - ], - "key.typename" : "ListStateObserver.Type", - "key.typeusr" : "$s10ListableUI17ListStateObserverVmD", - "key.usr" : "s:10ListableUI17ListStateObserverV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 13229, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class ListChangesQueue<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 5429 - } - ], - "key.bodylength" : 4750, - "key.bodyoffset" : 5459, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A queue used to synchronized and serialize changes made to the backing collection view,\nto work around either bugs or confusing behavior.\n\n## Handling Applying Re-ordering \/ Move Events (`isQueuingToApplyReorderEvent`)\nCollection View has an issue wherein if you perform a re-order event, and then within\nthe same runloop, deliver an update to the collection view as a result of that re-order event\nthat removes a row or section, the collection view will crash because it's internal index path\ncache \/ data model has not yet been updated. Thus, in `collectionView(_:moveItemAt:to:)`,\nwe set this value to `true`, and then after one runloop, we set it back to `false`, after\nthe collection view's updates have \"settled\". Please see `sendEndQueuingEditsAfterDelay` for more.\n\n## Disabling Updates During In-Progress Re-orders (`listHasUncommittedReorderUpdates`)\nIf an update is pushed into a `UICollectionView` while a reorder is in progress, there will be a crash\nas the collection view tries to layout an index path that does not exist in the data source, as the reordering event\nhas not yet been committed. As such, we'll queue external updates while reordering is in progress.\n\n```\n💥\nArray.subscript.getter ()\nListLayoutContent.item(at:)\nListLayoutContent.layoutAttributes(at:)\nCollectionViewLayout.layoutAttributesForItem(at:)\n@objc CollectionViewLayout.layoutAttributesForItem(at:)\n-[UICollectionViewData layoutAttributesForItemAtIndexPath:]\n-[UICollectionViewData layoutAttributesForGlobalItemIndex:]\n__107-[UICollectionView _attributesForItemsVisibleDuringCurrentUpdateWithOldVisibleViews:attributesForNewModel:]_block_invoke\n__NSDICTIONARY_IS_CALLING_OUT_TO_A_BLOCK__\n-[__NSDictionaryM enumerateKeysAndObjectsWithOptions:usingBlock:]\n-[_UICollectionViewSubviewManager enumerateCellsWithEnumerator:]\n-[UICollectionView _attributesForItemsVisibleDuringCurrentUpdateWithOldVisibleViews:attributesForNewModel:]\n-[UICollectionView \/\/\/ _createAndAppendViewAnimationsForExistingAndNewlyVisibleItemsInCurrentUpdate:animationsForOnScreenViews:newSubviewManager:oldVisibleViews:attributesF\/\/\/ orNewModel:]\n-[UICollectionView _viewAnimationsForCurrentUpdateWithCollectionViewAnimator:]\n__102-[UICollectionView _updateWithItems:tentativelyForReordering:propertyAnimator:collectionViewAnimator:]_block_invoke.632\n+[UIView(Animation) performWithoutAnimation:]\n-[UICollectionView _updateWithItems:tentativelyForReordering:propertyAnimator:collectionViewAnimator:]\n-[UICollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:animator:collectionViewAnimator:]\n-[UICollectionView _performBatchUpdates:completion:invalidationContext:tentativelyForReordering:animator:animationHandler:]\nListView.IOS16_4_First_Responder_Bug_CollectionView.performBatchUpdates(_:changes:completion:)\nclosure #3 in ListView.performBatchUpdates(with:animated:updateBackingData:collectionViewUpdateCompletion:animationCompletion:)\nListView.performBatchUpdates(with:animated:updateBackingData:collectionViewUpdateCompletion:animationCompletion:)\nclosure #1 in ListView.updatePresentationStateWith(firstVisibleIndexPath:for:completion:)\nclosure #1 in ListChangesQueue.add(async:)\nclosure #2 in ListChangesQueue.runIfNeeded()\nListChangesQueue.Operation.ifSynchronous(_:ifAsynchronous:)\nListChangesQueue.runIfNeeded()\nListChangesQueue.add(sync:)\nListView.configure(with:)\n```\n\n## Handling async batch updates (`add(async:)`)\nBecause we perform updates to _our_ backing data model (`PresentationState`) alongside\nour collection view in order to make sure they remain in sync, we need to handle cases where\n`UICollectionView.performBatchUpdates(_:completion:)` does not synchronously\ninvoke its `update` block, which means state can get out of sync.\nSee `updatePresentationStateWith(firstVisibleIndexPath:for:completion:)` for more.\n\n## Misc\nWhy not use `NSOperationQueue` here?\nNamely, because we want operations to be synchronous when possible.\n\nEg, if if you perform the following changes:\n\n```\nlist.something()\n\n\/\/ A synchronous operation.\nqueue.add {\n doSomethingElse()\n}\n\n\/\/ An operation which may be synchronous or asynchronous,\n\/\/ depending on when the completion callback fires.\nqueue.add { completion in\n doAnotherThing(onCompletion: completion.finished)\n}\n```\nWhere the first block can be run immediately (eg the queue is not paused),\nit will be performed once the queue callback returns, and without jumping threads at all.\n\nThe second block might invoke its `onCompletion` immediately,\nor it might take a runloop or two to do so. This implementation ensures\nthat if the completion block is invoked immediately (eg inline), the operation will also be synchronous.\nThe main use case for this case is `UICollectionView` callbacks which are sometimes\nexecuted after a few runloop cycles – we don't want _every_ event going through\nthe queue to delay its completion by a runloop cycle unless we have to.\n\nOnly one operation will execute at once. This is a FIFO queue.\n", - "key.doc.column" : 13, - "key.doc.comment" : "A queue used to synchronized and serialize changes made to the backing collection view,\nto work around either bugs or confusing behavior.\n\n## Handling Applying Re-ordering \/ Move Events (`isQueuingToApplyReorderEvent`)\nCollection View has an issue wherein if you perform a re-order event, and then within\nthe same runloop, deliver an update to the collection view as a result of that re-order event\nthat removes a row or section, the collection view will crash because it's internal index path\ncache \/ data model has not yet been updated. Thus, in `collectionView(_:moveItemAt:to:)`,\nwe set this value to `true`, and then after one runloop, we set it back to `false`, after\nthe collection view's updates have \"settled\". Please see `sendEndQueuingEditsAfterDelay` for more.\n\n## Disabling Updates During In-Progress Re-orders (`listHasUncommittedReorderUpdates`)\nIf an update is pushed into a `UICollectionView` while a reorder is in progress, there will be a crash\nas the collection view tries to layout an index path that does not exist in the data source, as the reordering event\nhas not yet been committed. As such, we'll queue external updates while reordering is in progress.\n\n```\n💥\nArray.subscript.getter ()\nListLayoutContent.item(at:)\nListLayoutContent.layoutAttributes(at:)\nCollectionViewLayout.layoutAttributesForItem(at:)\n@objc CollectionViewLayout.layoutAttributesForItem(at:)\n-[UICollectionViewData layoutAttributesForItemAtIndexPath:]\n-[UICollectionViewData layoutAttributesForGlobalItemIndex:]\n__107-[UICollectionView _attributesForItemsVisibleDuringCurrentUpdateWithOldVisibleViews:attributesForNewModel:]_block_invoke\n__NSDICTIONARY_IS_CALLING_OUT_TO_A_BLOCK__\n-[__NSDictionaryM enumerateKeysAndObjectsWithOptions:usingBlock:]\n-[_UICollectionViewSubviewManager enumerateCellsWithEnumerator:]\n-[UICollectionView _attributesForItemsVisibleDuringCurrentUpdateWithOldVisibleViews:attributesForNewModel:]\n-[UICollectionView \/\/\/ _createAndAppendViewAnimationsForExistingAndNewlyVisibleItemsInCurrentUpdate:animationsForOnScreenViews:newSubviewManager:oldVisibleViews:attributesF\/\/\/ orNewModel:]\n-[UICollectionView _viewAnimationsForCurrentUpdateWithCollectionViewAnimator:]\n__102-[UICollectionView _updateWithItems:tentativelyForReordering:propertyAnimator:collectionViewAnimator:]_block_invoke.632\n+[UIView(Animation) performWithoutAnimation:]\n-[UICollectionView _updateWithItems:tentativelyForReordering:propertyAnimator:collectionViewAnimator:]\n-[UICollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:animator:collectionViewAnimator:]\n-[UICollectionView _performBatchUpdates:completion:invalidationContext:tentativelyForReordering:animator:animationHandler:]\nListView.IOS16_4_First_Responder_Bug_CollectionView.performBatchUpdates(_:changes:completion:)\nclosure #3 in ListView.performBatchUpdates(with:animated:updateBackingData:collectionViewUpdateCompletion:animationCompletion:)\nListView.performBatchUpdates(with:animated:updateBackingData:collectionViewUpdateCompletion:animationCompletion:)\nclosure #1 in ListView.updatePresentationStateWith(firstVisibleIndexPath:for:completion:)\nclosure #1 in ListChangesQueue.add(async:)\nclosure #2 in ListChangesQueue.runIfNeeded()\nListChangesQueue.Operation.ifSynchronous(_:ifAsynchronous:)\nListChangesQueue.runIfNeeded()\nListChangesQueue.add(sync:)\nListView.configure(with:)\n```\n\n## Handling async batch updates (`add(async:)`)\nBecause we perform updates to _our_ backing data model (`PresentationState`) alongside\nour collection view in order to make sure they remain in sync, we need to handle cases where\n`UICollectionView.performBatchUpdates(_:completion:)` does not synchronously\ninvoke its `update` block, which means state can get out of sync.\nSee `updatePresentationStateWith(firstVisibleIndexPath:for:completion:)` for more.\n\n## Misc\nWhy not use `NSOperationQueue` here?\nNamely, because we want operations to be synchronous when possible.\n\nEg, if if you perform the following changes:\n\n```\nlist.something()\n\n\/\/ A synchronous operation.\nqueue.add {\n doSomethingElse()\n}\n\n\/\/ An operation which may be synchronous or asynchronous,\n\/\/ depending on when the completion callback fires.\nqueue.add { completion in\n doAnotherThing(onCompletion: completion.finished)\n}\n```\nWhere the first block can be run immediately (eg the queue is not paused),\nit will be performed once the queue callback returns, and without jumping threads at all.\n\nThe second block might invoke its `onCompletion` immediately,\nor it might take a runloop or two to do so. This implementation ensures\nthat if the completion block is invoked immediately (eg inline), the operation will also be synchronous.\nThe main use case for this case is `UICollectionView` callbacks which are sometimes\nexecuted after a few runloop cycles – we don't want _every_ event going through\nthe queue to delay its completion by a runloop cycle unless we have to.\n\nOnly one operation will execute at once. This is a FIFO queue.", - "key.doc.declaration" : "final class ListChangesQueue", - "key.doc.discussion" : [ - { - "Para" : "Collection View has an issue wherein if you perform a re-order event, and then within the same runloop, deliver an update to the collection view as a result of that re-order event that removes a row or section, the collection view will crash because it’s internal index path cache \/ data model has not yet been updated. Thus, in `collectionView(_:moveItemAt:to:)`, we set this value to `true`, and then after one runloop, we set it back to `false`, after the collection view’s updates have “settled”. Please see `sendEndQueuingEditsAfterDelay` for more." - }, - { - "Para" : "If an update is pushed into a `UICollectionView` while a reorder is in progress, there will be a crash as the collection view tries to layout an index path that does not exist in the data source, as the reordering event has not yet been committed. As such, we’ll queue external updates while reordering is in progress." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Because we perform updates to backing data model (`PresentationState`) alongside our collection view in order to make sure they remain in sync, we need to handle cases where `UICollectionView.performBatchUpdates(_:completion:)` does not synchronously invoke its `update` block, which means state can get out of sync. See `updatePresentationStateWith(firstVisibleIndexPath:for:completion:)` for more." - }, - { - "Para" : "Why not use `NSOperationQueue` here? Namely, because we want operations to be synchronous when possible." - }, - { - "Para" : "Eg, if if you perform the following changes:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Where the first block can be run immediately (eg the queue is not paused), it will be performed once the queue callback returns, and without jumping threads at all." - }, - { - "Para" : "The second block might invoke its `onCompletion` immediately, or it might take a runloop or two to do so. This implementation ensures that if the completion block is invoked immediately (eg inline), the operation will also be synchronous. The main use case for this case is `UICollectionView` callbacks which are sometimes executed after a few runloop cycles – we don’t want event going through the queue to delay its completion by a runloop cycle unless we have to." - }, - { - "Para" : "Only one operation will execute at once. This is a FIFO queue." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "ListChangesQueue<\/Name>s:10ListableUI16ListChangesQueueC<\/USR>final class ListChangesQueue<\/Declaration>A queue used to synchronized and serialize changes made to the backing collection view, to work around either bugs or confusing behavior.<\/Para><\/Abstract>]]><\/rawHTML>Handling Applying Re-ordering \/ Move Events (isQueuingToApplyReorderEvent<\/codeVoice>)]]><\/rawHTML>Collection View has an issue wherein if you perform a re-order event, and then within the same runloop, deliver an update to the collection view as a result of that re-order event that removes a row or section, the collection view will crash because it’s internal index path cache \/ data model has not yet been updated. Thus, in collectionView(_:moveItemAt:to:)<\/codeVoice>, we set this value to true<\/codeVoice>, and then after one runloop, we set it back to false<\/codeVoice>, after the collection view’s updates have “settled”. Please see sendEndQueuingEditsAfterDelay<\/codeVoice> for more.<\/Para>]]><\/rawHTML>Disabling Updates During In-Progress Re-orders (listHasUncommittedReorderUpdates<\/codeVoice>)]]><\/rawHTML>If an update is pushed into a UICollectionView<\/codeVoice> while a reorder is in progress, there will be a crash as the collection view tries to layout an index path that does not exist in the data source, as the reordering event has not yet been committed. As such, we’ll queue external updates while reordering is in progress.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Handling async batch updates (add(async:)<\/codeVoice>)]]><\/rawHTML>Because we perform updates to our<\/emphasis> backing data model (PresentationState<\/codeVoice>) alongside our collection view in order to make sure they remain in sync, we need to handle cases where UICollectionView.performBatchUpdates(_:completion:)<\/codeVoice> does not synchronously invoke its update<\/codeVoice> block, which means state can get out of sync. See updatePresentationStateWith(firstVisibleIndexPath:for:completion:)<\/codeVoice> for more.<\/Para>]]><\/rawHTML>Misc]]><\/rawHTML>Why not use NSOperationQueue<\/codeVoice> here? Namely, because we want operations to be synchronous when possible.<\/Para>Eg, if if you perform the following changes:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Where the first block can be run immediately (eg the queue is not paused), it will be performed once the queue callback returns, and without jumping threads at all.<\/Para>The second block might invoke its onCompletion<\/codeVoice> immediately, or it might take a runloop or two to do so. This implementation ensures that if the completion block is invoked immediately (eg inline), the operation will also be synchronous. The main use case for this case is UICollectionView<\/codeVoice> callbacks which are sometimes executed after a few runloop cycles – we don’t want every<\/emphasis> event going through the queue to delay its completion by a runloop cycle unless we have to.<\/Para>Only one operation will execute at once. This is a FIFO queue.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 99, - "key.doc.name" : "ListChangesQueue", - "key.doc.type" : "Class", - "key.doclength" : 5315, - "key.docoffset" : 114, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListChangesQueue<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 4775, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "ListChangesQueue", - "key.namelength" : 16, - "key.nameoffset" : 5441, - "key.offset" : 5435, - "key.parsed_declaration" : "final class ListChangesQueue", - "key.parsed_scope.end" : 244, - "key.parsed_scope.start" : 99, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func add(sync block: @escaping () -> ())<\/Declaration>", - "key.bodylength" : 263, - "key.bodyoffset" : 5600, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Adds a synchronous block to the queue, marked as done once the block exits.", - "key.doc.column" : 10, - "key.doc.comment" : "Adds a synchronous block to the queue, marked as done once the block exits.", - "key.doc.declaration" : "func add(sync block: @escaping () -> ())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "add(sync:)<\/Name>s:10ListableUI16ListChangesQueueC3add4syncyyyc_tF<\/USR>func add(sync block: @escaping () -> ())<\/Declaration>Adds a synchronous block to the queue, marked as done once the block exits.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 102, - "key.doc.name" : "add(sync:)", - "key.doc.type" : "Function", - "key.doclength" : 80, - "key.docoffset" : 5473, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> add<\/decl.name>(sync<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 307, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "add(sync:)", - "key.namelength" : 36, - "key.nameoffset" : 5562, - "key.offset" : 5557, - "key.parsed_declaration" : "func add(sync block : @escaping () -> ())", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 102, - "key.related_decls" : [ - { - "key.annotated_decl" : "add(async:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let operation: ListChangesQueue<\/Type>.Operation<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> operation<\/decl.name>: ListChangesQueue<\/ref.class>.Operation<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 123, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "operation", - "key.namelength" : 9, - "key.nameoffset" : 5655, - "key.offset" : 5651, - "key.parsed_declaration" : "let operation = Operation(\n kind: .synchronous(\n .new(.init(body: block))\n )\n)", - "key.parsed_scope.end" : 105, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.typename" : "ListChangesQueue.Operation", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLCD", - "key.usr" : "s:10ListableUI16ListChangesQueueC3add4syncyyyc_tF9operationL_AC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLCvp" - } - ], - "key.typename" : "(ListChangesQueue) -> (@escaping () -> ()) -> ()", - "key.typeusr" : "$s4syncyyyc_tcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC3add4syncyyyc_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func add(async block: @escaping (Completion<\/Type>) -> ())<\/Declaration>", - "key.bodylength" : 790, - "key.bodyoffset" : 6120, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Adds an asynchronous block to the queue, marked as done once `Completion.finished()` is called.\nIf `finished()` is called inline, the operation will be executed synchronously.", - "key.doc.column" : 10, - "key.doc.comment" : "Adds an asynchronous block to the queue, marked as done once `Completion.finished()` is called.\nIf `finished()` is called inline, the operation will be executed synchronously.", - "key.doc.declaration" : "func add(async block: @escaping (Completion) -> ())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "add(async:)<\/Name>s:10ListableUI16ListChangesQueueC3add5asyncyyAC10CompletionCc_tF<\/USR>func add(async block: @escaping (Completion) -> ())<\/Declaration>Adds an asynchronous block to the queue, marked as done once Completion.finished()<\/codeVoice> is called. If finished()<\/codeVoice> is called inline, the operation will be executed synchronously.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 118, - "key.doc.name" : "add(async:)", - "key.doc.type" : "Function", - "key.doclength" : 188, - "key.docoffset" : 5874, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> add<\/decl.name>(async<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Completion<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 845, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "add(async:)", - "key.namelength" : 47, - "key.nameoffset" : 6071, - "key.offset" : 6066, - "key.parsed_declaration" : "func add(async block : @escaping (Completion) -> ())", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 118, - "key.related_decls" : [ - { - "key.annotated_decl" : "add(sync:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let operation: ListChangesQueue<\/Type>.Operation<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> operation<\/decl.name>: ListChangesQueue<\/ref.class>.Operation<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 650, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "operation", - "key.namelength" : 9, - "key.nameoffset" : 6175, - "key.offset" : 6171, - "key.parsed_declaration" : "let operation = Operation(\n kind: .asynchronous(\n .new(\n .init(\n completion: Completion(),\n body: { operation, completion in\n \n completion.onFinish = { [weak self, weak operation] in\n operation?.kind = .asynchronous(.completed)\n self?.runIfNeeded()\n }\n \n block(completion)\n }\n )\n )\n )\n)", - "key.parsed_scope.end" : 121, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.typename" : "ListChangesQueue.Operation", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLCD", - "key.usr" : "s:10ListableUI16ListChangesQueueC3add5asyncyyAC10CompletionCc_tF9operationL_AC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLCvp" - } - ], - "key.typename" : "(ListChangesQueue) -> (@escaping (ListChangesQueue.Completion) -> ()) -> ()", - "key.typeusr" : "$s5asyncyy10ListableUI16ListChangesQueueC10CompletionCc_tcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC3add5asyncyyAC10CompletionCc_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isQueuingToApplyReorderEvent: Bool<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 63, - "key.bodyoffset" : 7065, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Set by consumers to enable and disable queueing when a reorder event is being applied.", - "key.doc.column" : 9, - "key.doc.comment" : "Set by consumers to enable and disable queueing when a reorder event is being applied.", - "key.doc.declaration" : "var isQueuingToApplyReorderEvent: Bool { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "isQueuingToApplyReorderEvent<\/Name>s:10ListableUI16ListChangesQueueC28isQueuingToApplyReorderEventSbvp<\/USR>var isQueuingToApplyReorderEvent: Bool { get set }<\/Declaration>Set by consumers to enable and disable queueing when a reorder event is being applied.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 146, - "key.doc.name" : "isQueuingToApplyReorderEvent", - "key.doc.type" : "Other", - "key.doclength" : 91, - "key.docoffset" : 6921, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isQueuingToApplyReorderEvent<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 113, - "key.line" : 146, - "key.modulename" : "ListableUI", - "key.name" : "isQueuingToApplyReorderEvent", - "key.namelength" : 28, - "key.nameoffset" : 7020, - "key.offset" : 7016, - "key.parsed_declaration" : "var isQueuingToApplyReorderEvent : Bool = false", - "key.parsed_scope.end" : 150, - "key.parsed_scope.start" : 146, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16ListChangesQueueC28isQueuingToApplyReorderEventSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var listHasUncommittedReorderUpdates: () -> Bool<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Should be set to `{ collectionView.hasUncommittedUpdates }`.\n\nWhen this closure returns `true`, the queue is paused, to avoid crashes when applying\ncontent updates while there are index-changing reorder events in process.", - "key.doc.column" : 9, - "key.doc.comment" : "Should be set to `{ collectionView.hasUncommittedUpdates }`.\n\nWhen this closure returns `true`, the queue is paused, to avoid crashes when applying\ncontent updates while there are index-changing reorder events in process.", - "key.doc.declaration" : "var listHasUncommittedReorderUpdates: () -> Bool", - "key.doc.discussion" : [ - { - "Para" : "When this closure returns `true`, the queue is paused, to avoid crashes when applying content updates while there are index-changing reorder events in process." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "listHasUncommittedReorderUpdates<\/Name>s:10ListableUI16ListChangesQueueC32listHasUncommittedReorderUpdatesSbycvp<\/USR>var listHasUncommittedReorderUpdates: () -> Bool<\/Declaration>Should be set to { collectionView.hasUncommittedUpdates }<\/codeVoice>.<\/Para><\/Abstract>When this closure returns true<\/codeVoice>, the queue is paused, to avoid crashes when applying content updates while there are index-changing reorder events in process.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 156, - "key.doc.name" : "listHasUncommittedReorderUpdates", - "key.doc.type" : "Other", - "key.doclength" : 249, - "key.docoffset" : 7139, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> listHasUncommittedReorderUpdates<\/decl.name>: () -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 158, - "key.line" : 156, - "key.modulename" : "ListableUI", - "key.name" : "listHasUncommittedReorderUpdates", - "key.namelength" : 32, - "key.nameoffset" : 7396, - "key.offset" : 7392, - "key.parsed_declaration" : "var listHasUncommittedReorderUpdates : () -> Bool = {\n fatalError(\"Must set `listHasUncommittedReorderUpdates` before using `ListChangesQueue`.\")\n}", - "key.parsed_scope.end" : 156, - "key.parsed_scope.start" : 156, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "() -> Bool", - "key.typeusr" : "$sSbycD", - "key.usr" : "s:10ListableUI16ListChangesQueueC32listHasUncommittedReorderUpdatesSbycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isPaused: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 90, - "key.bodyoffset" : 7636, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Prevents processing other events in the queue.", - "key.doc.column" : 9, - "key.doc.comment" : "Prevents processing other events in the queue.", - "key.doc.declaration" : "var isPaused: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "isPaused<\/Name>s:10ListableUI16ListChangesQueueC8isPausedSbvp<\/USR>var isPaused: Bool { get }<\/Declaration>Prevents processing other events in the queue.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 161, - "key.doc.name" : "isPaused", - "key.doc.type" : "Other", - "key.doclength" : 51, - "key.docoffset" : 7560, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isPaused<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 112, - "key.line" : 161, - "key.modulename" : "ListableUI", - "key.name" : "isPaused", - "key.namelength" : 8, - "key.nameoffset" : 7619, - "key.offset" : 7615, - "key.parsed_declaration" : "var isPaused : Bool", - "key.parsed_scope.end" : 163, - "key.parsed_scope.start" : 161, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16ListChangesQueueC8isPausedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isEmpty: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 29, - "key.bodyoffset" : 7757, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 165, - "key.modulename" : "ListableUI", - "key.name" : "isEmpty", - "key.namelength" : 7, - "key.nameoffset" : 7741, - "key.offset" : 7737, - "key.parsed_declaration" : "var isEmpty : Bool", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 165, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16ListChangesQueueC7isEmptySbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var count: Int<\/Type> { get }<\/Declaration>", - "key.bodylength" : 27, - "key.bodyoffset" : 7814, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 169, - "key.modulename" : "ListableUI", - "key.name" : "count", - "key.namelength" : 5, - "key.nameoffset" : 7801, - "key.offset" : 7797, - "key.parsed_declaration" : "var count : Int", - "key.parsed_scope.end" : 171, - "key.parsed_scope.start" : 169, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI16ListChangesQueueC5countSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var waiting: [Operation<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 7973 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Operations waiting to execute, or in the case of asynchronous operations,\nthey may already be operating.", - "key.doc.column" : 17, - "key.doc.comment" : "Operations waiting to execute, or in the case of asynchronous operations,\nthey may already be operating.", - "key.doc.declaration" : "private var waiting: [Operation]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "waiting<\/Name>s:10ListableUI16ListChangesQueueC7waiting33_475391DF0214734EF1AB295B7E69CF9FLLSayAC9OperationAELLCGvp<\/USR>private var waiting: [Operation]<\/Declaration>Operations waiting to execute, or in the case of asynchronous operations, they may already be operating.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 175, - "key.doc.name" : "waiting", - "key.doc.type" : "Other", - "key.doclength" : 117, - "key.docoffset" : 7852, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> waiting<\/decl.name>: [Operation<\/ref.class>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 175, - "key.modulename" : "ListableUI", - "key.name" : "waiting", - "key.namelength" : 7, - "key.nameoffset" : 7985, - "key.offset" : 7981, - "key.parsed_declaration" : "private var waiting : [Operation] = []", - "key.parsed_scope.end" : 175, - "key.parsed_scope.start" : 175, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[ListChangesQueue.Operation]", - "key.typeusr" : "$sSay10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLCGD", - "key.usr" : "s:10ListableUI16ListChangesQueueC7waiting33_475391DF0214734EF1AB295B7E69CF9FLLSayAC9OperationAELLCGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var isRunning: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 8021 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isRunning<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 177, - "key.modulename" : "ListableUI", - "key.name" : "isRunning", - "key.namelength" : 9, - "key.nameoffset" : 8033, - "key.offset" : 8029, - "key.parsed_declaration" : "private var isRunning : Bool = false", - "key.parsed_scope.end" : 177, - "key.parsed_scope.start" : 177, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9isRunning33_475391DF0214734EF1AB295B7E69CF9FLLSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func runIfNeeded()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 8120 - } - ], - "key.bodylength" : 1848, - "key.bodyoffset" : 8148, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked to continue processing queue events.", - "key.doc.column" : 18, - "key.doc.comment" : "Invoked to continue processing queue events.", - "key.doc.declaration" : "private func runIfNeeded()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "runIfNeeded()<\/Name>s:10ListableUI16ListChangesQueueC11runIfNeeded33_475391DF0214734EF1AB295B7E69CF9FLLyyF<\/USR>private func runIfNeeded()<\/Declaration>Invoked to continue processing queue events.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 180, - "key.doc.name" : "runIfNeeded()", - "key.doc.type" : "Function", - "key.doclength" : 49, - "key.docoffset" : 8067, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> runIfNeeded<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1869, - "key.line" : 180, - "key.modulename" : "ListableUI", - "key.name" : "runIfNeeded()", - "key.namelength" : 13, - "key.nameoffset" : 8133, - "key.offset" : 8128, - "key.parsed_declaration" : "private func runIfNeeded()", - "key.parsed_scope.end" : 236, - "key.parsed_scope.start" : 180, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI16ListChangesQueueC11runIfNeeded33_475391DF0214734EF1AB295B7E69CF9FLLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func preconditionMainThread()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 10007 - } - ], - "key.bodylength" : 161, - "key.bodyoffset" : 10046, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Even though this is an async operation;\nits possible (and allowed) to call the completion\nblock synchronously – let's ensure we handle that!", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preconditionMainThread<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 193, - "key.line" : 238, - "key.modulename" : "ListableUI", - "key.name" : "preconditionMainThread()", - "key.namelength" : 24, - "key.nameoffset" : 10020, - "key.offset" : 10015, - "key.parsed_declaration" : "private func preconditionMainThread()", - "key.parsed_scope.end" : 243, - "key.parsed_scope.start" : 238, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI16ListChangesQueueC22preconditionMainThread33_475391DF0214734EF1AB295B7E69CF9FLLyyF" - } - ], - "key.typename" : "ListChangesQueue.Type", - "key.typeusr" : "$s10ListableUI16ListChangesQueueCmD", - "key.usr" : "s:10ListableUI16ListChangesQueueC" - }, - { - "key.annotated_decl" : "final class ListChangesQueue<\/Declaration>", - "key.bodylength" : 2986, - "key.bodyoffset" : 10241, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A queue used to synchronized and serialize changes made to the backing collection view,\nto work around either bugs or confusing behavior.\n\n## Handling Applying Re-ordering \/ Move Events (`isQueuingToApplyReorderEvent`)\nCollection View has an issue wherein if you perform a re-order event, and then within\nthe same runloop, deliver an update to the collection view as a result of that re-order event\nthat removes a row or section, the collection view will crash because it's internal index path\ncache \/ data model has not yet been updated. Thus, in `collectionView(_:moveItemAt:to:)`,\nwe set this value to `true`, and then after one runloop, we set it back to `false`, after\nthe collection view's updates have \"settled\". Please see `sendEndQueuingEditsAfterDelay` for more.\n\n## Disabling Updates During In-Progress Re-orders (`listHasUncommittedReorderUpdates`)\nIf an update is pushed into a `UICollectionView` while a reorder is in progress, there will be a crash\nas the collection view tries to layout an index path that does not exist in the data source, as the reordering event\nhas not yet been committed. As such, we'll queue external updates while reordering is in progress.\n\n```\n💥\nArray.subscript.getter ()\nListLayoutContent.item(at:)\nListLayoutContent.layoutAttributes(at:)\nCollectionViewLayout.layoutAttributesForItem(at:)\n@objc CollectionViewLayout.layoutAttributesForItem(at:)\n-[UICollectionViewData layoutAttributesForItemAtIndexPath:]\n-[UICollectionViewData layoutAttributesForGlobalItemIndex:]\n__107-[UICollectionView _attributesForItemsVisibleDuringCurrentUpdateWithOldVisibleViews:attributesForNewModel:]_block_invoke\n__NSDICTIONARY_IS_CALLING_OUT_TO_A_BLOCK__\n-[__NSDictionaryM enumerateKeysAndObjectsWithOptions:usingBlock:]\n-[_UICollectionViewSubviewManager enumerateCellsWithEnumerator:]\n-[UICollectionView _attributesForItemsVisibleDuringCurrentUpdateWithOldVisibleViews:attributesForNewModel:]\n-[UICollectionView \/\/\/ _createAndAppendViewAnimationsForExistingAndNewlyVisibleItemsInCurrentUpdate:animationsForOnScreenViews:newSubviewManager:oldVisibleViews:attributesF\/\/\/ orNewModel:]\n-[UICollectionView _viewAnimationsForCurrentUpdateWithCollectionViewAnimator:]\n__102-[UICollectionView _updateWithItems:tentativelyForReordering:propertyAnimator:collectionViewAnimator:]_block_invoke.632\n+[UIView(Animation) performWithoutAnimation:]\n-[UICollectionView _updateWithItems:tentativelyForReordering:propertyAnimator:collectionViewAnimator:]\n-[UICollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:animator:collectionViewAnimator:]\n-[UICollectionView _performBatchUpdates:completion:invalidationContext:tentativelyForReordering:animator:animationHandler:]\nListView.IOS16_4_First_Responder_Bug_CollectionView.performBatchUpdates(_:changes:completion:)\nclosure #3 in ListView.performBatchUpdates(with:animated:updateBackingData:collectionViewUpdateCompletion:animationCompletion:)\nListView.performBatchUpdates(with:animated:updateBackingData:collectionViewUpdateCompletion:animationCompletion:)\nclosure #1 in ListView.updatePresentationStateWith(firstVisibleIndexPath:for:completion:)\nclosure #1 in ListChangesQueue.add(async:)\nclosure #2 in ListChangesQueue.runIfNeeded()\nListChangesQueue.Operation.ifSynchronous(_:ifAsynchronous:)\nListChangesQueue.runIfNeeded()\nListChangesQueue.add(sync:)\nListView.configure(with:)\n```\n\n## Handling async batch updates (`add(async:)`)\nBecause we perform updates to _our_ backing data model (`PresentationState`) alongside\nour collection view in order to make sure they remain in sync, we need to handle cases where\n`UICollectionView.performBatchUpdates(_:completion:)` does not synchronously\ninvoke its `update` block, which means state can get out of sync.\nSee `updatePresentationStateWith(firstVisibleIndexPath:for:completion:)` for more.\n\n## Misc\nWhy not use `NSOperationQueue` here?\nNamely, because we want operations to be synchronous when possible.\n\nEg, if if you perform the following changes:\n\n```\nlist.something()\n\n\/\/ A synchronous operation.\nqueue.add {\n doSomethingElse()\n}\n\n\/\/ An operation which may be synchronous or asynchronous,\n\/\/ depending on when the completion callback fires.\nqueue.add { completion in\n doAnotherThing(onCompletion: completion.finished)\n}\n```\nWhere the first block can be run immediately (eg the queue is not paused),\nit will be performed once the queue callback returns, and without jumping threads at all.\n\nThe second block might invoke its `onCompletion` immediately,\nor it might take a runloop or two to do so. This implementation ensures\nthat if the completion block is invoked immediately (eg inline), the operation will also be synchronous.\nThe main use case for this case is `UICollectionView` callbacks which are sometimes\nexecuted after a few runloop cycles – we don't want _every_ event going through\nthe queue to delay its completion by a runloop cycle unless we have to.\n\nOnly one operation will execute at once. This is a FIFO queue.\n", - "key.doc.column" : 13, - "key.doc.declaration" : "final class ListChangesQueue", - "key.doc.discussion" : [ - { - "Para" : "Collection View has an issue wherein if you perform a re-order event, and then within the same runloop, deliver an update to the collection view as a result of that re-order event that removes a row or section, the collection view will crash because it’s internal index path cache \/ data model has not yet been updated. Thus, in `collectionView(_:moveItemAt:to:)`, we set this value to `true`, and then after one runloop, we set it back to `false`, after the collection view’s updates have “settled”. Please see `sendEndQueuingEditsAfterDelay` for more." - }, - { - "Para" : "If an update is pushed into a `UICollectionView` while a reorder is in progress, there will be a crash as the collection view tries to layout an index path that does not exist in the data source, as the reordering event has not yet been committed. As such, we’ll queue external updates while reordering is in progress." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Because we perform updates to backing data model (`PresentationState`) alongside our collection view in order to make sure they remain in sync, we need to handle cases where `UICollectionView.performBatchUpdates(_:completion:)` does not synchronously invoke its `update` block, which means state can get out of sync. See `updatePresentationStateWith(firstVisibleIndexPath:for:completion:)` for more." - }, - { - "Para" : "Why not use `NSOperationQueue` here? Namely, because we want operations to be synchronous when possible." - }, - { - "Para" : "Eg, if if you perform the following changes:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Where the first block can be run immediately (eg the queue is not paused), it will be performed once the queue callback returns, and without jumping threads at all." - }, - { - "Para" : "The second block might invoke its `onCompletion` immediately, or it might take a runloop or two to do so. This implementation ensures that if the completion block is invoked immediately (eg inline), the operation will also be synchronous. The main use case for this case is `UICollectionView` callbacks which are sometimes executed after a few runloop cycles – we don’t want event going through the queue to delay its completion by a runloop cycle unless we have to." - }, - { - "Para" : "Only one operation will execute at once. This is a FIFO queue." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "ListChangesQueue<\/Name>s:10ListableUI16ListChangesQueueC<\/USR>final class ListChangesQueue<\/Declaration>A queue used to synchronized and serialize changes made to the backing collection view, to work around either bugs or confusing behavior.<\/Para><\/Abstract>]]><\/rawHTML>Handling Applying Re-ordering \/ Move Events (isQueuingToApplyReorderEvent<\/codeVoice>)]]><\/rawHTML>Collection View has an issue wherein if you perform a re-order event, and then within the same runloop, deliver an update to the collection view as a result of that re-order event that removes a row or section, the collection view will crash because it’s internal index path cache \/ data model has not yet been updated. Thus, in collectionView(_:moveItemAt:to:)<\/codeVoice>, we set this value to true<\/codeVoice>, and then after one runloop, we set it back to false<\/codeVoice>, after the collection view’s updates have “settled”. Please see sendEndQueuingEditsAfterDelay<\/codeVoice> for more.<\/Para>]]><\/rawHTML>Disabling Updates During In-Progress Re-orders (listHasUncommittedReorderUpdates<\/codeVoice>)]]><\/rawHTML>If an update is pushed into a UICollectionView<\/codeVoice> while a reorder is in progress, there will be a crash as the collection view tries to layout an index path that does not exist in the data source, as the reordering event has not yet been committed. As such, we’ll queue external updates while reordering is in progress.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Handling async batch updates (add(async:)<\/codeVoice>)]]><\/rawHTML>Because we perform updates to our<\/emphasis> backing data model (PresentationState<\/codeVoice>) alongside our collection view in order to make sure they remain in sync, we need to handle cases where UICollectionView.performBatchUpdates(_:completion:)<\/codeVoice> does not synchronously invoke its update<\/codeVoice> block, which means state can get out of sync. See updatePresentationStateWith(firstVisibleIndexPath:for:completion:)<\/codeVoice> for more.<\/Para>]]><\/rawHTML>Misc]]><\/rawHTML>Why not use NSOperationQueue<\/codeVoice> here? Namely, because we want operations to be synchronous when possible.<\/Para>Eg, if if you perform the following changes:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Where the first block can be run immediately (eg the queue is not paused), it will be performed once the queue callback returns, and without jumping threads at all.<\/Para>The second block might invoke its onCompletion<\/codeVoice> immediately, or it might take a runloop or two to do so. This implementation ensures that if the completion block is invoked immediately (eg inline), the operation will also be synchronous. The main use case for this case is UICollectionView<\/codeVoice> callbacks which are sometimes executed after a few runloop cycles – we don’t want every<\/emphasis> event going through the queue to delay its completion by a runloop cycle unless we have to.<\/Para>Only one operation will execute at once. This is a FIFO queue.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 99, - "key.doc.name" : "ListChangesQueue", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListChangesQueue<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 3015, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "ListChangesQueue", - "key.namelength" : 16, - "key.nameoffset" : 10223, - "key.offset" : 10213, - "key.parsed_declaration" : "extension ListChangesQueue", - "key.parsed_scope.end" : 342, - "key.parsed_scope.start" : 247, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "final class Completion<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 10255 - } - ], - "key.bodylength" : 560, - "key.bodyoffset" : 10279, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Completion<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 579, - "key.line" : 249, - "key.modulename" : "ListableUI", - "key.name" : "Completion", - "key.namelength" : 10, - "key.nameoffset" : 10267, - "key.offset" : 10261, - "key.parsed_declaration" : "final class Completion", - "key.parsed_scope.end" : 266, - "key.parsed_scope.start" : 249, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate var onFinish: () -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 10289 - } - ], - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onFinish<\/decl.name>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 125, - "key.line" : 251, - "key.modulename" : "ListableUI", - "key.name" : "onFinish", - "key.namelength" : 8, - "key.nameoffset" : 10305, - "key.offset" : 10301, - "key.parsed_declaration" : "fileprivate var onFinish : () -> () = {\n fatalError(\"onFinish must be set before the completion operation is used.\")\n}", - "key.parsed_scope.end" : 251, - "key.parsed_scope.start" : 251, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.typename" : "() -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI16ListChangesQueueC10CompletionC8onFinish33_475391DF0214734EF1AB295B7E69CF9FLLyycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var isFinished: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 10444 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFinished<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 255, - "key.modulename" : "ListableUI", - "key.name" : "isFinished", - "key.namelength" : 10, - "key.nameoffset" : 10456, - "key.offset" : 10452, - "key.parsed_declaration" : "private var isFinished : Bool = false", - "key.parsed_scope.end" : 255, - "key.parsed_scope.start" : 255, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16ListChangesQueueC10CompletionC10isFinished33_475391DF0214734EF1AB295B7E69CF9FLLSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func finish()<\/Declaration>", - "key.bodylength" : 180, - "key.bodyoffset" : 10653, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked by callers when their async work completed.\nIf this method is called more than once, a fatal error occurs.", - "key.doc.column" : 14, - "key.doc.comment" : "Invoked by callers when their async work completed.\nIf this method is called more than once, a fatal error occurs.", - "key.doc.declaration" : "func finish()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "finish()<\/Name>s:10ListableUI16ListChangesQueueC10CompletionC6finishyyF<\/USR>func finish()<\/Declaration>Invoked by callers when their async work completed. If this method is called more than once, a fatal error occurs.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 259, - "key.doc.name" : "finish()", - "key.doc.type" : "Function", - "key.doclength" : 131, - "key.docoffset" : 10499, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> finish<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 196, - "key.line" : 259, - "key.modulename" : "ListableUI", - "key.name" : "finish()", - "key.namelength" : 8, - "key.nameoffset" : 10643, - "key.offset" : 10638, - "key.parsed_declaration" : "func finish()", - "key.parsed_scope.end" : 265, - "key.parsed_scope.start" : 259, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue.Completion) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI16ListChangesQueueC10CompletionC6finishyyF" - } - ], - "key.typename" : "ListChangesQueue.Completion.Type", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC10CompletionCmD", - "key.usr" : "s:10ListableUI16ListChangesQueueC10CompletionC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate final class Operation<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 10862 - }, - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 10850 - } - ], - "key.bodylength" : 2340, - "key.bodyoffset" : 10885, - "key.column" : 29, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Operation<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 2358, - "key.line" : 268, - "key.modulename" : "ListableUI", - "key.name" : "Operation", - "key.namelength" : 9, - "key.nameoffset" : 10874, - "key.offset" : 10868, - "key.parsed_declaration" : "fileprivate final class Operation", - "key.parsed_scope.end" : 341, - "key.parsed_scope.start" : 268, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var kind: Kind<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> kind<\/decl.name>: Kind<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 270, - "key.modulename" : "ListableUI", - "key.name" : "kind", - "key.namelength" : 4, - "key.nameoffset" : 10907, - "key.offset" : 10903, - "key.parsed_declaration" : "var kind : Kind", - "key.parsed_scope.end" : 270, - "key.parsed_scope.start" : 270, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListChangesQueue.Operation.Kind", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindOD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4kindAF4KindOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(kind: Kind<\/Type>)<\/Declaration>", - "key.bodylength" : 38, - "key.bodyoffset" : 10955, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(kind<\/decl.var.parameter.argument_label>: Kind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 58, - "key.line" : 272, - "key.modulename" : "ListableUI", - "key.name" : "init(kind:)", - "key.namelength" : 17, - "key.nameoffset" : 10936, - "key.offset" : 10936, - "key.parsed_declaration" : "init(kind : Kind)", - "key.parsed_scope.end" : 274, - "key.parsed_scope.start" : 272, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue.Operation.Type) -> (ListChangesQueue.Operation.Kind) -> ListChangesQueue.Operation", - "key.typeusr" : "$s4kind10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLCAG4KindO_tcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4kindA2F4KindO_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func ifSynchronous(_ synchronous: (inout Kind<\/Type>.Synchronous<\/Type>) -> (), ifAsynchronous asynchronous: (inout Kind<\/Type>.Asynchronous<\/Type>) -> ())<\/Declaration>", - "key.bodylength" : 338, - "key.bodyoffset" : 11290, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Helper method for accessing (and mutating) the state\nof each separate type of operation.", - "key.doc.column" : 14, - "key.doc.comment" : "Helper method for accessing (and mutating) the state\nof each separate type of operation.", - "key.doc.declaration" : "func ifSynchronous(_ synchronous: (inout Kind.Synchronous) -> (), ifAsynchronous asynchronous: (inout Kind.Asynchronous) -> ())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "ifSynchronous(_:ifAsynchronous:)<\/Name>s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC13ifSynchronous_0M12AsynchronousyyAF4KindO0N0OzXE_yAJ0O0OzXEtF<\/USR>func ifSynchronous(_ synchronous: (inout Kind.Synchronous) -> (), ifAsynchronous asynchronous: (inout Kind.Asynchronous) -> ())<\/Declaration>Helper method for accessing (and mutating) the state of each separate type of operation.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 278, - "key.doc.name" : "ifSynchronous(_:ifAsynchronous:)", - "key.doc.type" : "Function", - "key.doclength" : 105, - "key.docoffset" : 11012, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> ifSynchronous<\/decl.name>(_<\/decl.var.parameter.argument_label> synchronous<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Kind<\/ref.enum>.Synchronous<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, ifAsynchronous<\/decl.var.parameter.argument_label> asynchronous<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Kind<\/ref.enum>.Asynchronous<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 504, - "key.line" : 278, - "key.modulename" : "ListableUI", - "key.name" : "ifSynchronous(_:ifAsynchronous:)", - "key.namelength" : 158, - "key.nameoffset" : 11130, - "key.offset" : 11125, - "key.parsed_declaration" : "func ifSynchronous(\n _ synchronous : (inout Kind.Synchronous) -> (),\n ifAsynchronous asynchronous : (inout Kind.Asynchronous) -> ()\n)", - "key.parsed_scope.end" : 291, - "key.parsed_scope.start" : 278, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue.Operation) -> ((inout ListChangesQueue.Operation.Kind.Synchronous) -> (), (inout ListChangesQueue.Operation.Kind.Asynchronous) -> ()) -> ()", - "key.typeusr" : "$s_14ifAsynchronousyy10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousOzXE_yAI0B0OzXEtcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC13ifSynchronous_0M12AsynchronousyyAF4KindO0N0OzXE_yAJ0O0OzXEtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum ListChangesQueue<\/Type>.Operation<\/Type>.Kind<\/Declaration>", - "key.bodylength" : 1378, - "key.bodyoffset" : 11841, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The kind of operation, sync or async. Note that\nthe synchronous operation has to track less state,\nand thus has fewer cases and stored properties.", - "key.doc.column" : 14, - "key.doc.comment" : "The kind of operation, sync or async. Note that\nthe synchronous operation has to track less state,\nand thus has fewer cases and stored properties.", - "key.doc.declaration" : "enum ListableUI.ListChangesQueue.Operation.Kind", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.doc.full_as_xml" : "Kind<\/Name>s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO<\/USR>enum ListableUI.ListChangesQueue.Operation.Kind<\/Declaration>The kind of operation, sync or async. Note that the synchronous operation has to track less state, and thus has fewer cases and stored properties.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 296, - "key.doc.name" : "Kind", - "key.doc.type" : "Other", - "key.doclength" : 175, - "key.docoffset" : 11647, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> ListChangesQueue<\/ref.class>.Operation<\/ref.class>.Kind<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1390, - "key.line" : 296, - "key.modulename" : "ListableUI", - "key.name" : "Kind", - "key.namelength" : 4, - "key.nameoffset" : 11835, - "key.offset" : 11830, - "key.parsed_declaration" : "enum Kind", - "key.parsed_scope.end" : 340, - "key.parsed_scope.start" : 296, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 29, - "key.offset" : 11854, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case synchronous(Synchronous<\/Type>)<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> synchronous<\/decl.name>(Synchronous<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 24, - "key.line" : 297, - "key.modulename" : "ListableUI", - "key.name" : "synchronous(_:)", - "key.namelength" : 24, - "key.nameoffset" : 11859, - "key.offset" : 11859, - "key.parsed_declaration" : "case synchronous(Synchronous)", - "key.parsed_scope.end" : 297, - "key.parsed_scope.start" : 297, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue.Operation.Kind.Type) -> (ListChangesQueue.Operation.Kind.Synchronous) -> ListChangesQueue.Operation.Kind", - "key.typeusr" : "$sy10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindOAH11SynchronousOcAHmcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11synchronousyA2H11SynchronousOcAHmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 31, - "key.offset" : 11896, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case asynchronous(Asynchronous<\/Type>)<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> asynchronous<\/decl.name>(Asynchronous<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 26, - "key.line" : 298, - "key.modulename" : "ListableUI", - "key.name" : "asynchronous(_:)", - "key.namelength" : 26, - "key.nameoffset" : 11901, - "key.offset" : 11901, - "key.parsed_declaration" : "case asynchronous(Asynchronous)", - "key.parsed_scope.end" : 298, - "key.parsed_scope.start" : 298, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue.Operation.Kind.Type) -> (ListChangesQueue.Operation.Kind.Asynchronous) -> ListChangesQueue.Operation.Kind", - "key.typeusr" : "$sy10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindOAH12AsynchronousOcAHmcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12asynchronousyA2H12AsynchronousOcAHmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isCompleted: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 202, - "key.bodyoffset" : 11977, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isCompleted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 227, - "key.line" : 300, - "key.modulename" : "ListableUI", - "key.name" : "isCompleted", - "key.namelength" : 11, - "key.nameoffset" : 11957, - "key.offset" : 11953, - "key.parsed_declaration" : "var isCompleted : Bool", - "key.parsed_scope.end" : 305, - "key.parsed_scope.start" : 300, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11isCompletedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum ListChangesQueue<\/Type>.Operation<\/Type>.Kind<\/Type>.Synchronous<\/Declaration>", - "key.bodylength" : 411, - "key.bodyoffset" : 12224, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> ListChangesQueue<\/ref.class>.Operation<\/ref.class>.Kind<\/ref.enum>.Synchronous<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 430, - "key.line" : 307, - "key.modulename" : "ListableUI", - "key.name" : "Synchronous", - "key.namelength" : 11, - "key.nameoffset" : 12211, - "key.offset" : 12206, - "key.parsed_declaration" : "enum Synchronous", - "key.parsed_scope.end" : 321, - "key.parsed_scope.start" : 307, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 12241, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case new(Content<\/Type>)<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> new<\/decl.name>(Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 308, - "key.modulename" : "ListableUI", - "key.name" : "new(_:)", - "key.namelength" : 12, - "key.nameoffset" : 12246, - "key.offset" : 12246, - "key.parsed_declaration" : "case new(Content)", - "key.parsed_scope.end" : 308, - "key.parsed_scope.start" : 308, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue.Operation.Kind.Synchronous.Type) -> (ListChangesQueue.Operation.Kind.Synchronous.Content) -> ListChangesQueue.Operation.Kind.Synchronous", - "key.typeusr" : "$sy10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousOAJ7ContentVcAJmcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousO3newyA2J7ContentVcAJmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 14, - "key.offset" : 12275, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case completed<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> completed<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 9, - "key.line" : 309, - "key.modulename" : "ListableUI", - "key.name" : "completed", - "key.namelength" : 9, - "key.nameoffset" : 12280, - "key.offset" : 12280, - "key.parsed_declaration" : "case completed", - "key.parsed_scope.end" : 309, - "key.parsed_scope.start" : 309, - "key.reusingastcontext" : false, - "key.typename" : "(ListChangesQueue.Operation.Kind.Synchronous.Type) -> ListChangesQueue.Operation.Kind.Synchronous", - "key.typeusr" : "$sy10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousOAJmcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousO9completedyA2JmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isCompleted: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 166, - "key.bodyoffset" : 12347, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isCompleted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 191, - "key.line" : 311, - "key.modulename" : "ListableUI", - "key.name" : "isCompleted", - "key.namelength" : 11, - "key.nameoffset" : 12327, - "key.offset" : 12323, - "key.parsed_declaration" : "var isCompleted : Bool", - "key.parsed_scope.end" : 316, - "key.parsed_scope.start" : 311, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousO11isCompletedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ListChangesQueue<\/Type>.Operation<\/Type>.Kind<\/Type>.Synchronous<\/Type>.Content<\/Declaration>", - "key.bodylength" : 57, - "key.bodyoffset" : 12564, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListChangesQueue<\/ref.class>.Operation<\/ref.class>.Kind<\/ref.enum>.Synchronous<\/ref.enum>.Content<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 74, - "key.line" : 318, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 12555, - "key.offset" : 12548, - "key.parsed_declaration" : "struct Content", - "key.parsed_scope.end" : 320, - "key.parsed_scope.start" : 318, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let body: () -> ()<\/Declaration>", - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> body<\/decl.name>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 319, - "key.modulename" : "ListableUI", - "key.name" : "body", - "key.namelength" : 4, - "key.nameoffset" : 12589, - "key.offset" : 12585, - "key.parsed_declaration" : "let body : () -> ()", - "key.parsed_scope.end" : 319, - "key.parsed_scope.start" : 319, - "key.reusingastcontext" : false, - "key.typename" : "() -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousO7ContentV4bodyyycvp" - } - ], - "key.typename" : "ListChangesQueue.Operation.Kind.Synchronous.Content.Type", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousO7ContentVmD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousO7ContentV" - } - ], - "key.typename" : "ListChangesQueue.Operation.Kind.Synchronous.Type", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousOmD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO11SynchronousO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum ListChangesQueue<\/Type>.Operation<\/Type>.Kind<\/Type>.Asynchronous<\/Declaration>", - "key.bodylength" : 528, - "key.bodyoffset" : 12681, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> ListChangesQueue<\/ref.class>.Operation<\/ref.class>.Kind<\/ref.enum>.Asynchronous<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 548, - "key.line" : 323, - "key.modulename" : "ListableUI", - "key.name" : "Asynchronous", - "key.namelength" : 12, - "key.nameoffset" : 12667, - "key.offset" : 12662, - "key.parsed_declaration" : "enum Asynchronous", - "key.parsed_scope.end" : 339, - "key.parsed_scope.start" : 323, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 12698, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case new(Content<\/Type>)<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> new<\/decl.name>(Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 324, - "key.modulename" : "ListableUI", - "key.name" : "new(_:)", - "key.namelength" : 12, - "key.nameoffset" : 12703, - "key.offset" : 12703, - "key.parsed_declaration" : "case new(Content)", - "key.parsed_scope.end" : 324, - "key.parsed_scope.start" : 324, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue.Operation.Kind.Asynchronous.Type) -> (ListChangesQueue.Operation.Kind.Asynchronous.Content) -> ListChangesQueue.Operation.Kind.Asynchronous", - "key.typeusr" : "$sy10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousOAJ7ContentVcAJmcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousO3newyA2J7ContentVcAJmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 21, - "key.offset" : 12732, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case running(Content<\/Type>)<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> running<\/decl.name>(Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 16, - "key.line" : 325, - "key.modulename" : "ListableUI", - "key.name" : "running(_:)", - "key.namelength" : 16, - "key.nameoffset" : 12737, - "key.offset" : 12737, - "key.parsed_declaration" : "case running(Content)", - "key.parsed_scope.end" : 325, - "key.parsed_scope.start" : 325, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListChangesQueue.Operation.Kind.Asynchronous.Type) -> (ListChangesQueue.Operation.Kind.Asynchronous.Content) -> ListChangesQueue.Operation.Kind.Asynchronous", - "key.typeusr" : "$sy10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousOAJ7ContentVcAJmcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousO7runningyA2J7ContentVcAJmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 14, - "key.offset" : 12770, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case completed<\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> completed<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 9, - "key.line" : 326, - "key.modulename" : "ListableUI", - "key.name" : "completed", - "key.namelength" : 9, - "key.nameoffset" : 12775, - "key.offset" : 12775, - "key.parsed_declaration" : "case completed", - "key.parsed_scope.end" : 326, - "key.parsed_scope.start" : 326, - "key.reusingastcontext" : false, - "key.typename" : "(ListChangesQueue.Operation.Kind.Asynchronous.Type) -> ListChangesQueue.Operation.Kind.Asynchronous", - "key.typeusr" : "$sy10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousOAJmcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousO9completedyA2JmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var isCompleted: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 176, - "key.bodyoffset" : 12842, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isCompleted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 201, - "key.line" : 328, - "key.modulename" : "ListableUI", - "key.name" : "isCompleted", - "key.namelength" : 11, - "key.nameoffset" : 12822, - "key.offset" : 12818, - "key.parsed_declaration" : "var isCompleted : Bool", - "key.parsed_scope.end" : 333, - "key.parsed_scope.start" : 328, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousO11isCompletedSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ListChangesQueue<\/Type>.Operation<\/Type>.Kind<\/Type>.Asynchronous<\/Type>.Content<\/Declaration>", - "key.bodylength" : 126, - "key.bodyoffset" : 13069, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListChangesQueue<\/ref.class>.Operation<\/ref.class>.Kind<\/ref.enum>.Asynchronous<\/ref.enum>.Content<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 143, - "key.line" : 335, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 13060, - "key.offset" : 13053, - "key.parsed_declaration" : "struct Content", - "key.parsed_scope.end" : 338, - "key.parsed_scope.start" : 335, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let completion: Completion<\/Type><\/Declaration>", - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> completion<\/decl.name>: Completion<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 336, - "key.modulename" : "ListableUI", - "key.name" : "completion", - "key.namelength" : 10, - "key.nameoffset" : 13094, - "key.offset" : 13090, - "key.parsed_declaration" : "let completion : Completion", - "key.parsed_scope.end" : 336, - "key.parsed_scope.start" : 336, - "key.reusingastcontext" : false, - "key.typename" : "ListChangesQueue.Completion", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC10CompletionCD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousO7ContentV10completionAC10CompletionCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let body: (Operation<\/Type>, Completion<\/Type>) -> ()<\/Declaration>", - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListChangesQueue.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> body<\/decl.name>: (Operation<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, Completion<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 337, - "key.modulename" : "ListableUI", - "key.name" : "body", - "key.namelength" : 4, - "key.nameoffset" : 13142, - "key.offset" : 13138, - "key.parsed_declaration" : "let body : (Operation, Completion) -> ()", - "key.parsed_scope.end" : 337, - "key.parsed_scope.start" : 337, - "key.reusingastcontext" : false, - "key.typename" : "(ListChangesQueue.Operation, ListChangesQueue.Completion) -> ()", - "key.typeusr" : "$syy10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC_AC10CompletionCtcD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousO7ContentV4bodyyyAF_AC10CompletionCtcvp" - } - ], - "key.typename" : "ListChangesQueue.Operation.Kind.Asynchronous.Content.Type", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousO7ContentVmD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousO7ContentV" - } - ], - "key.typename" : "ListChangesQueue.Operation.Kind.Asynchronous.Type", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousOmD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO12AsynchronousO" - } - ], - "key.typename" : "ListChangesQueue.Operation.Kind.Type", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindOmD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC4KindO" - } - ], - "key.typename" : "ListChangesQueue.Operation.Type", - "key.typeusr" : "$s10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLCmD", - "key.usr" : "s:10ListableUI16ListChangesQueueC9Operation33_475391DF0214734EF1AB295B7E69CF9FLLC" - } - ], - "key.typename" : "ListChangesQueue.Type", - "key.typeusr" : "$s10ListableUI16ListChangesQueueCmD", - "key.usr" : "s:10ListableUI16ListChangesQueueC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3971, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 2936, - "key.bodyoffset" : 133, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2957, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 123, - "key.offset" : 113, - "key.parsed_declaration" : "extension ListView", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 21, - "key.name" : "MARK: Measuring Lists", - "key.offset" : 148 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public static let defaultContentSizeItemLimit: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 186 - } - ], - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> defaultContentSizeItemLimit<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 43, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "defaultContentSizeItemLimit", - "key.namelength" : 27, - "key.nameoffset" : 204, - "key.offset" : 193, - "key.parsed_declaration" : "public static let defaultContentSizeItemLimit = 50", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI8ListViewC27defaultContentSizeItemLimitSivpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public static func contentSize(in fittingSize: CGSize<\/Type>, for properties: ListProperties<\/Type>, safeAreaInsets: UIEdgeInsets<\/Type>, itemLimit: Int<\/Type>? = ListView.defaultContentSizeItemLimit) -> MeasuredListSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1945 - } - ], - "key.bodylength" : 882, - "key.bodyoffset" : 2185, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the size that a list with the provided properties would be, within the given `fittingSize`.\n\nThis method works similarly to `sizeThatFits(_:)` on a `UIView`, returning the size of the\ncontent within the given `fittingSize`.\n\n- parameters:\n - fittingSize: The size that the content should be measured in. This is the maximum\n size that will be returned from this method.\n - properties: The `ListProperties` which describe the content of the list.\n - safeAreaInsets: The safe area to include when performing the layout.\n - itemLimit: How many items from the content should be measured. The lower this number\n (if lower then the count of items in the content), the faster this call will be, at the expense of a smaller\n measurement size. If you know your `fittingSize` is constrained to, eg, the height of a device,\n then relying on the default value of 50 is usually fine.\n\n### Note\nThis method attempts to be efficient – it does not allocate a `ListView` – instead it creates a layout,\nand presentation state – a subset of a usual list. It also re-uses measurement views across method calls\n(via static view caching) to further reduce allocations and improve speed and efficiency. Nevertheless,\nmeasuring the vertical or horizontal height of an entire list, especially large ones, can just be slow. You are\nencouraged to provide an `itemLimit` to reduce the amount of measurement that has to occur to\ncalculate a height – especially if the `fittingSize` is known and finite.\n", - "key.doc.column" : 24, - "key.doc.comment" : "\nReturns the size that a list with the provided properties would be, within the given `fittingSize`.\n\nThis method works similarly to `sizeThatFits(_:)` on a `UIView`, returning the size of the\ncontent within the given `fittingSize`.\n\n- parameters:\n - fittingSize: The size that the content should be measured in. This is the maximum\n size that will be returned from this method.\n - properties: The `ListProperties` which describe the content of the list.\n - safeAreaInsets: The safe area to include when performing the layout.\n - itemLimit: How many items from the content should be measured. The lower this number\n (if lower then the count of items in the content), the faster this call will be, at the expense of a smaller\n measurement size. If you know your `fittingSize` is constrained to, eg, the height of a device,\n then relying on the default value of 50 is usually fine.\n\n### Note\nThis method attempts to be efficient – it does not allocate a `ListView` – instead it creates a layout,\nand presentation state – a subset of a usual list. It also re-uses measurement views across method calls\n(via static view caching) to further reduce allocations and improve speed and efficiency. Nevertheless,\nmeasuring the vertical or horizontal height of an entire list, especially large ones, can just be slow. You are\nencouraged to provide an `itemLimit` to reduce the amount of measurement that has to occur to\ncalculate a height – especially if the `fittingSize` is known and finite.", - "key.doc.declaration" : "@MainActor public static func contentSize(in fittingSize: CGSize, for properties: ListProperties, safeAreaInsets: UIEdgeInsets, itemLimit: Int? = ListView.defaultContentSizeItemLimit) -> MeasuredListSize", - "key.doc.discussion" : [ - { - "Para" : "This method works similarly to `sizeThatFits(_:)` on a `UIView`, returning the size of the content within the given `fittingSize`." - }, - { - "Para" : "This method attempts to be efficient – it does not allocate a `ListView` – instead it creates a layout, and presentation state – a subset of a usual list. It also re-uses measurement views across method calls (via static view caching) to further reduce allocations and improve speed and efficiency. Nevertheless, measuring the vertical or horizontal height of an entire list, especially large ones, can just be slow. You are encouraged to provide an `itemLimit` to reduce the amount of measurement that has to occur to calculate a height – especially if the `fittingSize` is known and finite." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.doc.full_as_xml" : "contentSize(in:for:safeAreaInsets:itemLimit:)<\/Name>s:10ListableUI8ListViewC11contentSize2in3for14safeAreaInsets9itemLimitAA08MeasuredcF0VSo6CGSizeV_AA0C10PropertiesVSo06UIEdgeK0VSiSgtFZ<\/USR>@MainActor public static func contentSize(in fittingSize: CGSize, for properties: ListProperties, safeAreaInsets: UIEdgeInsets, itemLimit: Int? = ListView.defaultContentSizeItemLimit) -> MeasuredListSize<\/Declaration>Returns the size that a list with the provided properties would be, within the given fittingSize<\/codeVoice>.<\/Para><\/Abstract>fittingSize<\/Name>in<\/Direction>The size that the content should be measured in. This is the maximum size that will be returned from this method.<\/Para><\/Discussion><\/Parameter>properties<\/Name>in<\/Direction>The ListProperties<\/codeVoice> which describe the content of the list.<\/Para><\/Discussion><\/Parameter>safeAreaInsets<\/Name>in<\/Direction>The safe area to include when performing the layout.<\/Para><\/Discussion><\/Parameter>itemLimit<\/Name>in<\/Direction>How many items from the content should be measured. The lower this number (if lower then the count of items in the content), the faster this call will be, at the expense of a smaller measurement size. If you know your fittingSize<\/codeVoice> is constrained to, eg, the height of a device, then relying on the default value of 50 is usually fine.<\/Para><\/Discussion><\/Parameter><\/Parameters>This method works similarly to sizeThatFits(_:)<\/codeVoice> on a UIView<\/codeVoice>, returning the size of the content within the given fittingSize<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This method attempts to be efficient – it does not allocate a ListView<\/codeVoice> – instead it creates a layout, and presentation state – a subset of a usual list. It also re-uses measurement views across method calls (via static view caching) to further reduce allocations and improve speed and efficiency. Nevertheless, measuring the vertical or horizontal height of an entire list, especially large ones, can just be slow. You are encouraged to provide an itemLimit<\/codeVoice> to reduce the amount of measurement that has to occur to calculate a height – especially if the fittingSize<\/codeVoice> is known and finite.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 43, - "key.doc.name" : "contentSize(in:for:safeAreaInsets:itemLimit:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The size that the content should be measured in. This is the maximum size that will be returned from this method." - } - ], - "name" : "fittingSize" - }, - { - "discussion" : [ - { - "Para" : "The `ListProperties` which describe the content of the list." - } - ], - "name" : "properties" - }, - { - "discussion" : [ - { - "Para" : "The safe area to include when performing the layout." - } - ], - "name" : "safeAreaInsets" - }, - { - "discussion" : [ - { - "Para" : "How many items from the content should be measured. The lower this number (if lower then the count of items in the content), the faster this call will be, at the expense of a smaller measurement size. If you know your `fittingSize` is constrained to, eg, the height of a device, then relying on the default value of 50 is usually fine." - } - ], - "name" : "itemLimit" - } - ], - "key.doc.type" : "Function", - "key.doclength" : 1695, - "key.docoffset" : 246, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> contentSize<\/decl.name>(in<\/decl.var.parameter.argument_label> fittingSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> properties<\/decl.var.parameter.name>: ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, safeAreaInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, itemLimit<\/decl.var.parameter.argument_label>: Int<\/ref.struct>?<\/decl.var.parameter.type> = ListView.defaultContentSizeItemLimit<\/decl.var.parameter>) -> MeasuredListSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 1116, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "contentSize(in:for:safeAreaInsets:itemLimit:)", - "key.namelength" : 195, - "key.nameoffset" : 1964, - "key.offset" : 1952, - "key.parsed_declaration" : "public static func contentSize(\n in fittingSize : CGSize,\n for properties : ListProperties,\n safeAreaInsets : UIEdgeInsets,\n itemLimit : Int? = ListView.defaultContentSizeItemLimit\n) -> MeasuredListSize", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 43, - "key.related_decls" : [ - { - "key.annotated_decl" : "contentSize<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let layout: any AnyListLayout<\/Type><\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: any AnyListLayout<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 168, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "layout", - "key.namelength" : 6, - "key.nameoffset" : 2199, - "key.offset" : 2194, - "key.parsed_declaration" : "let (layout, layoutContext) = properties.makeLayout(\n in: fittingSize,\n safeAreaInsets: safeAreaInsets,\n itemLimit: itemLimit\n)", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.typename" : "any AnyListLayout", - "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", - "key.usr" : "s:10ListableUI8ListViewC11contentSize2in3for14safeAreaInsets9itemLimitAA08MeasuredcF0VSo6CGSizeV_AA0C10PropertiesVSo06UIEdgeK0VSiSgtFZ6layoutL_AA03AnyC6Layout_pvp" - }, - { - "key.annotated_decl" : "let layoutContext: ListLayoutLayoutContext<\/Type><\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layoutContext<\/decl.name>: ListLayoutLayoutContext<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 168, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "layoutContext", - "key.namelength" : 13, - "key.nameoffset" : 2207, - "key.offset" : 2194, - "key.parsed_declaration" : "let (layout, layoutContext) = properties.makeLayout(\n in: fittingSize,\n safeAreaInsets: safeAreaInsets,\n itemLimit: itemLimit\n)", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.typename" : "ListLayoutLayoutContext", - "key.typeusr" : "$s10ListableUI010ListLayoutD7ContextVD", - "key.usr" : "s:10ListableUI8ListViewC11contentSize2in3for14safeAreaInsets9itemLimitAA08MeasuredcF0VSo6CGSizeV_AA0C10PropertiesVSo06UIEdgeK0VSiSgtFZ13layoutContextL_AA0c6LayouttS0Vvp" - }, - { - "key.annotated_decl" : "let contentSize: CGSize<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 44, - "key.line" : 56, - "key.modulename" : "ListableUI", - "key.name" : "contentSize", - "key.namelength" : 11, - "key.nameoffset" : 2384, - "key.offset" : 2380, - "key.parsed_declaration" : "let contentSize = layout.content.contentSize", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 56, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI8ListViewC11contentSize2in3for14safeAreaInsets9itemLimitAA08MeasuredcF0VSo6CGSizeV_AA0C10PropertiesVSo06UIEdgeK0VSiSgtFZADL_ALvp" - }, - { - "key.annotated_decl" : "let contentInset: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentInset<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 57, - "key.modulename" : "ListableUI", - "key.name" : "contentInset", - "key.namelength" : 12, - "key.nameoffset" : 2437, - "key.offset" : 2433, - "key.parsed_declaration" : "let contentInset = layoutContext.adjustedContentInset", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI8ListViewC11contentSize2in3for14safeAreaInsets9itemLimitAA08MeasuredcF0VSo6CGSizeV_AA0C10PropertiesVSo06UIEdgeK0VSiSgtFZ0E5InsetL_APvp" - }, - { - "key.annotated_decl" : "let totalSize: CGSize<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> totalSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 192, - "key.line" : 59, - "key.modulename" : "ListableUI", - "key.name" : "totalSize", - "key.namelength" : 9, - "key.nameoffset" : 2508, - "key.offset" : 2504, - "key.parsed_declaration" : "let totalSize = CGSize(\n width: contentSize.width + contentInset.left + contentInset.right,\n height: contentSize.height + contentInset.top + contentInset.bottom\n)", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 59, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI8ListViewC11contentSize2in3for14safeAreaInsets9itemLimitAA08MeasuredcF0VSo6CGSizeV_AA0C10PropertiesVSo06UIEdgeK0VSiSgtFZ05totalF0L_ALvp" - } - ], - "key.typename" : "(ListView.Type) -> (CGSize, ListProperties, UIEdgeInsets, Int?) -> MeasuredListSize", - "key.typeusr" : "$s2in3for14safeAreaInsets9itemLimit10ListableUI16MeasuredListSizeVSo6CGSizeV_AE0K10PropertiesVSo06UIEdgeE0VSiSgtcD", - "key.usr" : "s:10ListableUI8ListViewC11contentSize2in3for14safeAreaInsets9itemLimitAA08MeasuredcF0VSo6CGSizeV_AA0C10PropertiesVSo06UIEdgeK0VSiSgtFZ" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct MeasuredListSize : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3158 - } - ], - "key.bodylength" : 767, - "key.bodyoffset" : 3202, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides sizing and width information about the measurement of a list's content.", - "key.doc.column" : 15, - "key.doc.comment" : "Provides sizing and width information about the measurement of a list's content.", - "key.doc.declaration" : "public struct MeasuredListSize : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.doc.full_as_xml" : "MeasuredListSize<\/Name>s:10ListableUI16MeasuredListSizeV<\/USR>public struct MeasuredListSize : Equatable<\/Declaration>Provides sizing and width information about the measurement of a list’s content.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 76, - "key.doc.name" : "MeasuredListSize", - "key.doc.type" : "Class", - "key.doclength" : 85, - "key.docoffset" : 3073, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 3191 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> MeasuredListSize<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 805, - "key.line" : 76, - "key.modulename" : "ListableUI", - "key.name" : "MeasuredListSize", - "key.namelength" : 16, - "key.nameoffset" : 3172, - "key.offset" : 3165, - "key.parsed_declaration" : "public struct MeasuredListSize : Equatable", - "key.parsed_scope.end" : 97, - "key.parsed_scope.start" : 76, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var contentSize: CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3250 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content size of the list.", - "key.doc.column" : 16, - "key.doc.comment" : "The content size of the list.", - "key.doc.declaration" : "public var contentSize: CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.doc.full_as_xml" : "contentSize<\/Name>s:10ListableUI16MeasuredListSizeV07contentE0So6CGSizeVvp<\/USR>public var contentSize: CGSize<\/Declaration>The content size of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 79, - "key.doc.name" : "contentSize", - "key.doc.type" : "Other", - "key.doclength" : 34, - "key.docoffset" : 3212, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 79, - "key.modulename" : "ListableUI", - "key.name" : "contentSize", - "key.namelength" : 11, - "key.nameoffset" : 3261, - "key.offset" : 3257, - "key.parsed_declaration" : "public var contentSize : CGSize", - "key.parsed_scope.end" : 79, - "key.parsed_scope.start" : 79, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI16MeasuredListSizeV07contentE0So6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var naturalWidth: CGFloat<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3758 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If it supports it, this value will contain the \"natural\" width of the list's\ncontent. For example, if you give a table layout 1000pts of width to lay out, but\nits content only requires 200pts of width to lay out, this value will be 200pt.\n\n### Note\nNot all layouts support or provide a natural width. For example, a `.flow` layout\ncannot provide a natural width because it takes up as much space as it as given.", - "key.doc.column" : 16, - "key.doc.comment" : "If it supports it, this value will contain the \"natural\" width of the list's\ncontent. For example, if you give a table layout 1000pts of width to lay out, but\nits content only requires 200pts of width to lay out, this value will be 200pt.\n\n### Note\nNot all layouts support or provide a natural width. For example, a `.flow` layout\ncannot provide a natural width because it takes up as much space as it as given.", - "key.doc.declaration" : "public var naturalWidth: CGFloat?", - "key.doc.discussion" : [ - { - "Para" : "Not all layouts support or provide a natural width. For example, a `.flow` layout cannot provide a natural width because it takes up as much space as it as given." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.doc.full_as_xml" : "naturalWidth<\/Name>s:10ListableUI16MeasuredListSizeV12naturalWidth14CoreFoundation7CGFloatVSgvp<\/USR>public var naturalWidth: CGFloat?<\/Declaration>If it supports it, this value will contain the “natural” width of the list’s content. For example, if you give a table layout 1000pts of width to lay out, but its content only requires 200pts of width to lay out, this value will be 200pt.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Not all layouts support or provide a natural width. For example, a .flow<\/codeVoice> layout cannot provide a natural width because it takes up as much space as it as given.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 88, - "key.doc.name" : "naturalWidth", - "key.doc.type" : "Other", - "key.doclength" : 463, - "key.docoffset" : 3291, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> naturalWidth<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 88, - "key.modulename" : "ListableUI", - "key.name" : "naturalWidth", - "key.namelength" : 12, - "key.nameoffset" : 3769, - "key.offset" : 3765, - "key.parsed_declaration" : "public var naturalWidth : CGFloat?", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 88, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat?", - "key.typeusr" : "$s14CoreFoundation7CGFloatVSgD", - "key.usr" : "s:10ListableUI16MeasuredListSizeV12naturalWidth14CoreFoundation7CGFloatVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(contentSize: CGSize<\/Type>, naturalWidth: CGFloat<\/Type>?)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3802 - } - ], - "key.bodylength" : 85, - "key.bodyoffset" : 3882, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+ContentSize.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(contentSize<\/decl.var.parameter.argument_label>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, naturalWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 159, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "init(contentSize:naturalWidth:)", - "key.namelength" : 71, - "key.nameoffset" : 3809, - "key.offset" : 3809, - "key.parsed_declaration" : "public init(\n contentSize: CGSize,\n naturalWidth: CGFloat?\n)", - "key.parsed_scope.end" : 96, - "key.parsed_scope.start" : 90, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(MeasuredListSize.Type) -> (CGSize, CGFloat?) -> MeasuredListSize", - "key.typeusr" : "$s11contentSize12naturalWidth10ListableUI012MeasuredListB0VSo6CGSizeV_14CoreFoundation7CGFloatVSgtcD", - "key.usr" : "s:10ListableUI16MeasuredListSizeV07contentE012naturalWidthACSo6CGSizeV_14CoreFoundation7CGFloatVSgtcfc" - } - ], - "key.typename" : "MeasuredListSize.Type", - "key.typeusr" : "$s10ListableUI16MeasuredListSizeVmD", - "key.usr" : "s:10ListableUI16MeasuredListSizeV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 15830, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 10160, - "key.bodyoffset" : 5668, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "## ⚠️⚠️⚠️ Good Morning! iOS Bug Workaround Ahead ⚠️⚠️⚠️\n\niOS 16.4 introduced a regression (which was fixed in 16.5, then again broken in 17.0),\nwhere on every `performBatchUpdates` applied to a `UICollectionView`, it would resign\nthe first responder if it was within a supplementary (header, footer) view.\nThis is a common position for search bars. Regular cells are not affected.\n\nUpdate 06\/04\/2025:\nIt appears that the buggy behavior on iOS 17+ is triggered when there are _multiple_\n`performBatchUpdates` calls within a short interval. The workaround still appears to avoid the issue.\n\nSquare SEV: https:\/\/jira.sqprod.co\/browse\/ALERT-11928\n\n## Ok, how do we fix it?\n\nSome initial thoughts using clever public-only workarounds, that turned out to not work for various reasons:\n\n### Override canResignFirstResponder\/resignFirstResponder and return false\nThis would've been so easy! Alas, it triggers an assert within `UICollectionView`:\n```\n*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'The first responder contained inside of a deleted section or item refused to resign.\n```\n\n### Immediately re-becomeFirstResponder after collection view resigns it\nIn theory works, but for any screen that reloads the collection view as the result of a text field\nbecoming or resigning first responder, causes an infinite loop of updates. Not good!\n\n### Making `_resignOrRebaseFirstResponderViewWithIndexPathMapping` a no-op\nToo likely to break internal bits. As you can see in [this gist](https:\/\/gist.github.com\/kyleve\/56da14d0dea1849ec12f2ec28ab472c1),\nthere's a lot of state management happening within there. Not a good idea!\n\nOk, that leaves us with...\n\n## Digging into private bits...\n\nWe can see, examining the stack trace of an affected supplementary view, that a method named\n`_resignOrRebaseFirstResponderViewWithIndexPathMapping` is performing the first responder resigning:\n\n```\nTextFieldView.resignFirstResponder()\n@objc TextFieldView.resignFirstResponder() ()\n-[UICollectionView _resignOrRebaseFirstResponderViewWithIndexPathMapping:] ()\n-[UICollectionView _updateWithItems:tentativelyForReordering:propertyAnimator:collectionViewAnimator:] ()\n-[UICollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:animator:collectionViewAnimator:] ()\n-[UICollectionView _performBatchUpdates:completion:invalidationContext:tentativelyForReordering:animator:animationHandler:] ()\n-[UICollectionView performBatchUpdates:completion:] ()\n```\n\nUnfortunately, overriding that method to inspect the singular argument does not bear much fruit,\nas the argument is a block:\n\n```\n(lldb) po arg1\n0 elements\n\n(lldb) po indexPathMapping\n<__NSMallocBlock__: 0x600003c80e70>\n signature: \"@\"NSIndexPath\"16@?0@\"NSIndexPath\"8\"\n invoke : 0x11d85d138 \/\/\/ (\/Applications\/Xcode_14_2.app\/Contents\/Developer\/Platforms\/iPhoneOS.platform\/Library\/Developer\/CoreSimulator\/Profiles\/Runtimes\/iOS\/\/\/ .simruntime\/Contents\/Resources\/RuntimeRoot\/System\/Library\/PrivateFrameworks\/UIKitCore.framework\/UIKitCore`__102-[UICollectionView \/\/\/ _updateWithItems:tentativelyForReordering:propertyAnimator:collectionViewAnimator:]_block_invoke)\n```\n\nOk, damn. Well we tried. Also of note, the arguments to this method changed between iOS 16.3 and 16.4:\n\n```\n\/\/ iOS 16.3\nfunc _resignOrRebaseFirstResponderViewWithUpdateItems(_ arg1 : Any, indexPathMapping: Any)\n\n\/\/ iOS 16.4\nfunc _resignOrRebaseFirstResponderViewWithIndexPathMapping(_ arg : Any)\n```\n\nIt does seem like we've found where to dig in, though. Let's decompile that method with Hopper (https:\/\/www.hopperapp.com\/),\na very useful app to have in your toolbox. It'll give you pseudocode-ish versions of various methods you want to inspect.\n\nDoing that, we get this (snipped for brevity):\n\n```\n-(void)_resignOrRebaseFirstResponderViewWithIndexPathMapping:(int)arg2 {\n rdx = arg2;\n rbx = arg1;\n r15 = arg0;\n r12 = [rdx retain];\n if ([r15 _isFirstResponderInDeletedSectionOrItem] != 0x0) {\n var_78 = rbx;\n var_98 = r12;\n r13 = *ivar_offset(_firstResponderView);\n var_38 = *ivar_offset(_firstResponderIndexPath);\n rbx = 0x0;\n var_48 = r15;\n var_40 = r13;\n do {\n ...\n```\n\nOk, that `_isFirstResponderInDeletedSectionOrItem` sure looks interesting. And it's a boolean\nmethod to boot, too, so in theory it shouldn't have (m)any side effects we need to re-implement if we were\nto override it and implement it ourselves. Lets try overriding it to see if that does what we want:\n\n```\nclass MyTestingCollectionView : UICollectionView {\n @objc var _isFirstResponderInDeletedSectionOrItem : Bool {\n false\n }\n}\n```\n\nHey, it works! Upon returning `false` from this method, the first responder remains\ndoing its first responder-y things. This means this is the way to go. Not great, but not awful.\n\nTo accomplish this, we'll re-implement the broken bits of `_isFirstResponderInDeletedSectionOrItem`\nourselves, and call back to the original implementation when we can.", - "key.doclength" : 5494, - "key.docoffset" : 154, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 10181, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 5658, - "key.offset" : 5648, - "key.parsed_declaration" : "extension ListView", - "key.parsed_scope.end" : 376, - "key.parsed_scope.start" : 125, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> class IOS16_4_First_Responder_Bug_CollectionView : UICollectionView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 176, - "key.offset" : 5815 - } - ], - "key.bodylength" : 9761, - "key.bodyoffset" : 6065, - "key.column" : 11, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 6047 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> IOS16_4_First_Responder_Bug_CollectionView<\/decl.name> : UICollectionView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UICollectionView" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 9831, - "key.line" : 130, - "key.modulename" : "ListableUI", - "key.name" : "IOS16_4_First_Responder_Bug_CollectionView", - "key.namelength" : 42, - "key.nameoffset" : 6002, - "key.offset" : 5996, - "key.parsed_declaration" : "class IOS16_4_First_Responder_Bug_CollectionView : UICollectionView", - "key.parsed_scope.end" : 375, - "key.parsed_scope.start" : 130, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override init(frame: CGRect<\/Type>, collectionViewLayout layout: UICollectionViewLayout<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 6083 - } - ], - "key.bodylength" : 76, - "key.bodyoffset" : 6200, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, collectionViewLayout<\/decl.var.parameter.argument_label> layout<\/decl.var.parameter.name>: UICollectionViewLayout<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 185, - "key.line" : 132, - "key.modulename" : "ListableUI", - "key.name" : "init(frame:collectionViewLayout:)", - "key.namelength" : 106, - "key.nameoffset" : 6092, - "key.offset" : 6092, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionView(im)initWithFrame:collectionViewLayout:" - } - ], - "key.parsed_declaration" : "override init(\n frame: CGRect,\n collectionViewLayout layout: UICollectionViewLayout\n)", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 132, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "init(coder:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(frame:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.IOS16_4_First_Responder_Bug_CollectionView.Type) -> (CGRect, UICollectionViewLayout) -> ListView.IOS16_4_First_Responder_Bug_CollectionView", - "key.typeusr" : "$s5frame20collectionViewLayout10ListableUI04ListC0C038IOS16_4_First_Responder_Bug_CollectionC0CSo6CGRectV_So012UICollectioncD0CtcD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C5frame010collectionD6LayoutAESo6CGRectV_So012UICollectiondL0Ctcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> required init?(coder: NSCoder<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 6295 - } - ], - "key.bodylength" : 14, - "key.bodyoffset" : 6327, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> required<\/syntaxtype.keyword> init<\/syntaxtype.keyword>?(coder<\/decl.var.parameter.argument_label>: NSCoder<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 38, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 6304, - "key.offset" : 6304, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UICollectionView(im)initWithCoder:" - }, - { - "key.usr" : "c:objc(pl)NSCoding(im)initWithCoder:" - }, - { - "key.usr" : "c:objc(cs)UIView(im)initWithCoder:" - }, - { - "key.usr" : "c:objc(pl)NSCoding(im)initWithCoder:" - } - ], - "key.parsed_declaration" : "required init?(coder: NSCoder)", - "key.parsed_scope.end" : 139, - "key.parsed_scope.start" : 139, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "init(frame:collectionViewLayout:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(frame:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.IOS16_4_First_Responder_Bug_CollectionView.Type) -> (NSCoder) -> ListView.IOS16_4_First_Responder_Bug_CollectionView?", - "key.typeusr" : "$s5coder10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionE0CSgSo7NSCoderC_tcD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C5coderAESgSo7NSCoderC_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func performBatchUpdates(_ updates: @escaping () -> Void<\/Type>, changes: CollectionViewChanges<\/Type>, completion: @escaping (Bool<\/Type>) -> Void<\/Type>)<\/Declaration>", - "key.bodylength" : 738, - "key.bodyoffset" : 6536, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> performBatchUpdates<\/decl.name>(_<\/decl.var.parameter.argument_label> updates<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, changes<\/decl.var.parameter.argument_label>: CollectionViewChanges<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 915, - "key.line" : 141, - "key.modulename" : "ListableUI", - "key.name" : "performBatchUpdates(_:changes:completion:)", - "key.namelength" : 169, - "key.nameoffset" : 6365, - "key.offset" : 6360, - "key.parsed_declaration" : "func performBatchUpdates(\n _ updates: @escaping () -> Void,\n changes : CollectionViewChanges,\n completion: @escaping (Bool) -> Void\n)", - "key.parsed_scope.end" : 163, - "key.parsed_scope.start" : 141, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "performBatchUpdates(_:completion:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.IOS16_4_First_Responder_Bug_CollectionView) -> (@escaping () -> (), ListView.CollectionViewChanges, @escaping (Bool) -> ()) -> ()", - "key.typeusr" : "$s_7changes10completionyyyc_10ListableUI8ListViewC010CollectionF7ChangesVySbctcD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C19performBatchUpdates_7changes10completionyyyc_AC0iD7ChangesVySbctF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var enqueuedUpdatesCount: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 7293 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Because these `performBatchUpdates` calls can end up getting queued up,\nwe only want to clear out the changes if no other changes have come in\nbehind us. If they have, we'll let the last one handle clearing the changes.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> enqueuedUpdatesCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 165, - "key.modulename" : "ListableUI", - "key.name" : "enqueuedUpdatesCount", - "key.namelength" : 20, - "key.nameoffset" : 7305, - "key.offset" : 7301, - "key.parsed_declaration" : "private var enqueuedUpdatesCount : Int = 0", - "key.parsed_scope.end" : 165, - "key.parsed_scope.start" : 165, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C20enqueuedUpdatesCount33_ADB62FCF3A7E6744D33B68516F47759BLLSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var changes: CollectionViewChanges<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 7353 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> changes<\/decl.name>: CollectionViewChanges<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 167, - "key.modulename" : "ListableUI", - "key.name" : "changes", - "key.namelength" : 7, - "key.nameoffset" : 7365, - "key.offset" : 7361, - "key.parsed_declaration" : "private var changes : CollectionViewChanges?", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 167, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ListView.CollectionViewChanges?", - "key.typeusr" : "$s10ListableUI8ListViewC010CollectionD7ChangesVSgD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C7changes33_ADB62FCF3A7E6744D33B68516F47759BLLAC0iD7ChangesVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@objc @MainActor<\/Type> var _isFirstResponderInDeletedSectionOrItem: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 9756 - } - ], - "key.bodylength" : 4358, - "key.bodyoffset" : 9814, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "### 🚨 This Overrides A Private Method\n\nThis method wholesale re-implements a private method from `UICollectionView`,\nwhich broke in iOS 16.4 and again in iOS 17-18. We have the diff, so we can figure this out ourselves.\n\nFor reference, here's the decompiled original impl:\n\n```\nint -[UICollectionView _isFirstResponderInDeletedSectionOrItem](int arg0) {\n rdi = arg0;\n if (rdi->_firstResponderView == 0x0) goto loc_36d628;\n\nloc_36d5dd:\n rbx = rdi;\n r15 = *ivar_offset(_firstResponderIndexPath);\n rdx = *(rdi + r15);\n if (rdx == 0x0) goto loc_36d628;\n\nloc_36d5f0:\n r14 = *ivar_offset(_currentUpdate);\n rdi = *(rbx + r14);\n if (rdi == 0x0) goto loc_36d628;\n\nloc_36d600:\n if (rbx->_firstResponderViewType != 0x1) goto loc_36d62f;\n\nloc_36d60e:\n rax = [rdi finalIndexPathForInitialIndexPath:rdx];\n rax = [rax retain];\n goto loc_36d6bf;\n\nloc_36d6bf:\n r14 = rax;\n rbx = rax == 0x0 ? 0x1 : 0x0;\n goto loc_36d6c8;\n\nloc_36d6c8:\n [r14 release];\n goto loc_36d6d1;\n\nloc_36d6d1:\n rax = rbx;\n return rax;\n\nloc_36d62f:\n rax = [rdx length];\n rdi = *(rbx + r14);\n if (rax != 0x1) goto loc_36d69b;\n\nloc_36d649:\n r14 = [[*(rdi + 0x80) objectForKeyedSubscript:rbx->_firstResponderViewKind] retain];\n rbx = [r14 containsIndex:[*(rbx + r15) indexAtPosition:0x0]];\n goto loc_36d6c8;\n\nloc_36d69b:\n rax = [rdi validatedNewIndexPathForSupplementaryElementOfKind:rbx->_firstResponderViewKind oldIndexPath:*(rbx + r15)];\n rax = [rax retain];\n goto loc_36d6bf;\n\nloc_36d628:\n rbx = 0x0;\n goto loc_36d6d1;\n}\n\n```", - "key.doc.column" : 19, - "key.doc.comment" : "### 🚨 This Overrides A Private Method\n\nThis method wholesale re-implements a private method from `UICollectionView`,\nwhich broke in iOS 16.4 and again in iOS 17-18. We have the diff, so we can figure this out ourselves.\n\nFor reference, here's the decompiled original impl:\n\n```\nint -[UICollectionView _isFirstResponderInDeletedSectionOrItem](int arg0) {\n rdi = arg0;\n if (rdi->_firstResponderView == 0x0) goto loc_36d628;\n\nloc_36d5dd:\n rbx = rdi;\n r15 = *ivar_offset(_firstResponderIndexPath);\n rdx = *(rdi + r15);\n if (rdx == 0x0) goto loc_36d628;\n\nloc_36d5f0:\n r14 = *ivar_offset(_currentUpdate);\n rdi = *(rbx + r14);\n if (rdi == 0x0) goto loc_36d628;\n\nloc_36d600:\n if (rbx->_firstResponderViewType != 0x1) goto loc_36d62f;\n\nloc_36d60e:\n rax = [rdi finalIndexPathForInitialIndexPath:rdx];\n rax = [rax retain];\n goto loc_36d6bf;\n\nloc_36d6bf:\n r14 = rax;\n rbx = rax == 0x0 ? 0x1 : 0x0;\n goto loc_36d6c8;\n\nloc_36d6c8:\n [r14 release];\n goto loc_36d6d1;\n\nloc_36d6d1:\n rax = rbx;\n return rax;\n\nloc_36d62f:\n rax = [rdx length];\n rdi = *(rbx + r14);\n if (rax != 0x1) goto loc_36d69b;\n\nloc_36d649:\n r14 = [[*(rdi + 0x80) objectForKeyedSubscript:rbx->_firstResponderViewKind] retain];\n rbx = [r14 containsIndex:[*(rbx + r15) indexAtPosition:0x0]];\n goto loc_36d6c8;\n\nloc_36d69b:\n rax = [rdi validatedNewIndexPathForSupplementaryElementOfKind:rbx->_firstResponderViewKind oldIndexPath:*(rbx + r15)];\n rax = [rax retain];\n goto loc_36d6bf;\n\nloc_36d628:\n rbx = 0x0;\n goto loc_36d6d1;\n}\n\n```", - "key.doc.declaration" : "@objc @MainActor var _isFirstResponderInDeletedSectionOrItem: Bool { get }", - "key.doc.discussion" : [ - { - "Para" : "This method wholesale re-implements a private method from `UICollectionView`, which broke in iOS 16.4 and again in iOS 17-18. We have the diff, so we can figure this out ourselves." - }, - { - "Para" : "For reference, here’s the decompiled original impl:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.doc.full_as_xml" : "_isFirstResponderInDeletedSectionOrItem<\/Name>s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvp<\/USR>@objc @MainActor var _isFirstResponderInDeletedSectionOrItem: Bool { get }<\/Declaration>]]><\/rawHTML>🚨 This Overrides A Private Method]]><\/rawHTML>This method wholesale re-implements a private method from UICollectionView<\/codeVoice>, which broke in iOS 16.4 and again in iOS 17-18. We have the diff, so we can figure this out ourselves.<\/Para>For reference, here’s the decompiled original impl:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered>_firstResponderView == 0x0) goto loc_36d628;]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>_firstResponderViewType != 0x1) goto loc_36d62f;]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>_firstResponderViewKind] retain];]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>_firstResponderViewKind oldIndexPath:*(rbx + r15)];]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 234, - "key.doc.name" : "_isFirstResponderInDeletedSectionOrItem", - "key.doc.type" : "Other", - "key.doclength" : 2333, - "key.docoffset" : 7415, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> _isFirstResponderInDeletedSectionOrItem<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 4411, - "key.line" : 234, - "key.modulename" : "ListableUI", - "key.name" : "_isFirstResponderInDeletedSectionOrItem", - "key.namelength" : 39, - "key.nameoffset" : 9766, - "key.offset" : 9762, - "key.parsed_declaration" : "@objc var _isFirstResponderInDeletedSectionOrItem : Bool", - "key.parsed_scope.end" : 322, - "key.parsed_scope.start" : 234, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvp" - }, - { - "key.annotated_decl" : "let selector: Selector<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> selector<\/decl.name>: Selector<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 78, - "key.line" : 240, - "key.modulename" : "ListableUI", - "key.name" : "selector", - "key.namelength" : 8, - "key.nameoffset" : 9908, - "key.offset" : 9904, - "key.parsed_declaration" : "let selector = #selector(getter: self._isFirstResponderInDeletedSectionOrItem)", - "key.parsed_scope.end" : 240, - "key.parsed_scope.start" : 240, - "key.reusingastcontext" : false, - "key.typename" : "Selector", - "key.typeusr" : "$s10ObjectiveC8SelectorVD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvg8selectorL_10ObjectiveC8SelectorVvp" - }, - { - "key.annotated_decl" : "let super_impl: IMP<\/Type>?<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This gets the (private) implementation from `UICollectionView`.", - "key.doc.column" : 17, - "key.doc.comment" : "This gets the (private) implementation from `UICollectionView`.", - "key.doc.declaration" : "let super_impl: IMP?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.doc.full_as_xml" : "super_impl<\/Name>s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvg10super_implL_s13OpaquePointerVSgvp<\/USR>let super_impl: IMP?<\/Declaration>This gets the (private) implementation from UICollectionView<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 243, - "key.doc.name" : "super_impl", - "key.doc.type" : "Other", - "key.doclength" : 68, - "key.docoffset" : 10008, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> super_impl<\/decl.name>: IMP<\/ref.typealias>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 79, - "key.line" : 243, - "key.modulename" : "ListableUI", - "key.name" : "super_impl", - "key.namelength" : 10, - "key.nameoffset" : 10092, - "key.offset" : 10088, - "key.parsed_declaration" : "let super_impl = class_getMethodImplementation(UICollectionView.self, selector)", - "key.parsed_scope.end" : 243, - "key.parsed_scope.start" : 243, - "key.reusingastcontext" : false, - "key.typename" : "OpaquePointer?", - "key.typeusr" : "$ss13OpaquePointerVSgD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvg10super_implL_s13OpaquePointerVSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "typealias SuperFunction = @convention(c) (AnyObject<\/Type>, Selector<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This is the Swift prototype of the function. There's no arguments, but ObjC\nmethods (when converted to their final C representation) have two implicit arguments,\n`self`, the object, and `SEL`, the selector.", - "key.doc.column" : 23, - "key.doc.comment" : "This is the Swift prototype of the function. There's no arguments, but ObjC\nmethods (when converted to their final C representation) have two implicit arguments,\n`self`, the object, and `SEL`, the selector.", - "key.doc.declaration" : "typealias SuperFunction = @convention(c) (AnyObject, Selector) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.doc.full_as_xml" : "SuperFunction<\/Name>s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvg13SuperFunctionL_a<\/USR>typealias SuperFunction = @convention(c) (AnyObject, Selector) -> Bool<\/Declaration>This is the Swift prototype of the function. There’s no arguments, but ObjC methods (when converted to their final C representation) have two implicit arguments, self<\/codeVoice>, the object, and SEL<\/codeVoice>, the selector.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 256, - "key.doc.name" : "SuperFunction", - "key.doc.type" : "Other", - "key.doclength" : 243, - "key.docoffset" : 10631, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> SuperFunction<\/decl.name> = @convention<\/syntaxtype.attribute.name>(c)<\/syntaxtype.attribute.builtin> (AnyObject<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, Selector<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 70, - "key.line" : 256, - "key.modulename" : "ListableUI", - "key.name" : "SuperFunction", - "key.namelength" : 13, - "key.nameoffset" : 10896, - "key.offset" : 10886, - "key.parsed_declaration" : "typealias SuperFunction = @convention(c) (AnyObject, Selector) -> Bool", - "key.parsed_scope.end" : 256, - "key.parsed_scope.start" : 256, - "key.reusingastcontext" : false, - "key.typename" : "(@convention(c) (AnyObject, Selector) -> Bool).Type", - "key.typeusr" : "$sSbyXl_10ObjectiveC8SelectorVtXCmD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvg13SuperFunctionL_a" - }, - { - "key.annotated_decl" : "let super_function: SuperFunction<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Make the pointer we got back into a Swift-callable function.", - "key.doc.column" : 17, - "key.doc.comment" : "Make the pointer we got back into a Swift-callable function.", - "key.doc.declaration" : "let super_function: ListableUI.SuperFunction", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.doc.full_as_xml" : "super_function<\/Name>s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvg14super_functionL_ySbyXl_10ObjectiveC8SelectorVtXCvp<\/USR>let super_function: ListableUI.SuperFunction<\/Declaration>Make the pointer we got back into a Swift-callable function.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 259, - "key.doc.name" : "super_function", - "key.doc.type" : "Other", - "key.doclength" : 65, - "key.docoffset" : 10982, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> super_function<\/decl.name>: SuperFunction<\/ref.typealias><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 70, - "key.line" : 259, - "key.modulename" : "ListableUI", - "key.name" : "super_function", - "key.namelength" : 14, - "key.nameoffset" : 11063, - "key.offset" : 11059, - "key.parsed_declaration" : "let super_function = unsafeBitCast(super_impl, to: SuperFunction.self)", - "key.parsed_scope.end" : 259, - "key.parsed_scope.start" : 259, - "key.reusingastcontext" : false, - "key.typename" : "@convention(c) (AnyObject, Selector) -> Bool", - "key.typeusr" : "$sySbyXl_10ObjectiveC8SelectorVtXCD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvg14super_functionL_ySbyXl_10ObjectiveC8SelectorVtXCvp" - }, - { - "key.annotated_decl" : "let isRemoving: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Ok so beyond this, we need to get it right; otherwise we'll hit this internal assert:\n```\n'The first responder contained inside of a deleted section or item refused to resign.\n```", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isRemoving<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 117, - "key.line" : 317, - "key.modulename" : "ListableUI", - "key.name" : "isRemoving", - "key.namelength" : 10, - "key.nameoffset" : 14007, - "key.offset" : 14003, - "key.parsed_declaration" : "let isRemoving = changes.deletedSections.contains {\n $0.oldIndex == oldIndexPath.section\n}", - "key.parsed_scope.end" : 317, - "key.parsed_scope.start" : 317, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C03_isfG22InDeletedSectionOrItemSbvg0J8RemovingL_Sbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private static let isAffectedIOSVersion: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 14191 - } - ], - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> isAffectedIOSVersion<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 953, - "key.line" : 324, - "key.modulename" : "ListableUI", - "key.name" : "isAffectedIOSVersion", - "key.namelength" : 20, - "key.nameoffset" : 14210, - "key.offset" : 14199, - "key.parsed_declaration" : "private static let isAffectedIOSVersion : Bool = {\n \n \/\/\/ First regressed in 16.4.\n \n let isIOS16_4 = ProcessInfo\n .processInfo\n .isOperatingSystemAtLeast(\n .init(majorVersion: 16, minorVersion: 4, patchVersion: 0)\n )\n \n \/\/\/ Fixed in 16.5.\n \n let isIOS16_5 = ProcessInfo\n .processInfo\n .isOperatingSystemAtLeast(\n .init(majorVersion: 16, minorVersion: 5, patchVersion: 0)\n )\n \n \/\/\/ ...But is broken again iOS 17.0 - 18.4 (at least)\n \n let isIOS17_0 = ProcessInfo\n .processInfo\n .isOperatingSystemAtLeast(\n .init(majorVersion: 17, minorVersion: 0, patchVersion: 0)\n )\n\n return (isIOS16_4 && !isIOS16_5) || isIOS17_0\n}()", - "key.parsed_scope.end" : 324, - "key.parsed_scope.start" : 324, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C20isAffectedIOSVersion33_ADB62FCF3A7E6744D33B68516F47759BLLSbvpZ" - }, - { - "key.annotated_decl" : "let isIOS16_4: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "First regressed in 16.4.", - "key.doc.column" : 17, - "key.doc.comment" : "First regressed in 16.4.", - "key.doc.declaration" : "let isIOS16_4: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.doc.full_as_xml" : "isIOS16_4<\/Name>s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C20isAffectedIOSVersion33_ADB62FCF3A7E6744D33B68516F47759BLLSbvpZfiSbyXEfU_0jE2_4L_Sbvp<\/USR>let isIOS16_4: Bool<\/Declaration>First regressed in 16.4.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 328, - "key.doc.name" : "isIOS16_4", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isIOS16_4<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 9, - "key.line" : 328, - "key.modulename" : "ListableUI", - "key.name" : "isIOS16_4", - "key.offset" : 14325, - "key.parsed_declaration" : "let isIOS16_4", - "key.parsed_scope.end" : 328, - "key.parsed_scope.start" : 328, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C20isAffectedIOSVersion33_ADB62FCF3A7E6744D33B68516F47759BLLSbvpZfiSbyXEfU_0jE2_4L_Sbvp" - }, - { - "key.annotated_decl" : "let isIOS16_5: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Fixed in 16.5.", - "key.doc.column" : 17, - "key.doc.comment" : "Fixed in 16.5.", - "key.doc.declaration" : "let isIOS16_5: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.doc.full_as_xml" : "isIOS16_5<\/Name>s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C20isAffectedIOSVersion33_ADB62FCF3A7E6744D33B68516F47759BLLSbvpZfiSbyXEfU_0jE2_5L_Sbvp<\/USR>let isIOS16_5: Bool<\/Declaration>Fixed in 16.5.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 336, - "key.doc.name" : "isIOS16_5", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isIOS16_5<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 9, - "key.line" : 336, - "key.modulename" : "ListableUI", - "key.name" : "isIOS16_5", - "key.offset" : 14590, - "key.parsed_declaration" : "let isIOS16_5", - "key.parsed_scope.end" : 336, - "key.parsed_scope.start" : 336, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C20isAffectedIOSVersion33_ADB62FCF3A7E6744D33B68516F47759BLLSbvpZfiSbyXEfU_0jE2_5L_Sbvp" - }, - { - "key.annotated_decl" : "let isIOS17_0: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "...But is broken again iOS 17.0 - 18.4 (at least)", - "key.doc.column" : 17, - "key.doc.comment" : "...But is broken again iOS 17.0 - 18.4 (at least)", - "key.doc.declaration" : "let isIOS17_0: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.doc.full_as_xml" : "isIOS17_0<\/Name>s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C20isAffectedIOSVersion33_ADB62FCF3A7E6744D33B68516F47759BLLSbvpZfiSbyXEfU_0J7IOS17_0L_Sbvp<\/USR>let isIOS17_0: Bool<\/Declaration>…But is broken again iOS 17.0 - 18.4 (at least)<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 344, - "key.doc.name" : "isIOS17_0", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isIOS17_0<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 9, - "key.line" : 344, - "key.modulename" : "ListableUI", - "key.name" : "isIOS17_0", - "key.offset" : 14890, - "key.parsed_declaration" : "let isIOS17_0", - "key.parsed_scope.end" : 344, - "key.parsed_scope.start" : 344, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC038IOS16_4_First_Responder_Bug_CollectionD0C20isAffectedIOSVersion33_ADB62FCF3A7E6744D33B68516F47759BLLSbvpZfiSbyXEfU_0J7IOS17_0L_Sbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private static let hasFirstResponderViewProperty: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 15170 - } - ], - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView+iOS16.4Workaround.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> hasFirstResponderViewProperty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 643, - "key.line" : 353, - "key.modulename" : "ListableUI", - "key.name" : "hasFirstResponderViewProperty", - "key.namelength" : 29, - "key.nameoffset" : 15189, - "key.offset" : 15178, - "key.parsed_declaration" : "private static let hasFirstResponderViewProperty : Bool = {\n \n var ivarCount : UInt32 = 0\n \n let ivars = class_copyIvarList(UICollectionView.self, &ivarCount)\n \n guard let ivars else {\n return false\n }\n \n defer {\n free(ivars)\n }\n \n return (0..public final class ListView : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 128 - } - ], - "key.bodylength" : 2836, - "key.bodyoffset" : 157, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2857, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 147, - "key.offset" : 137, - "key.parsed_declaration" : "internal extension ListView", - "key.parsed_scope.end" : 97, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct CollectionViewChanges<\/Declaration>", - "key.bodylength" : 2795, - "key.bodyoffset" : 196, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CollectionViewChanges<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2830, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "CollectionViewChanges", - "key.namelength" : 21, - "key.nameoffset" : 169, - "key.offset" : 162, - "key.parsed_declaration" : "struct CollectionViewChanges", - "key.parsed_scope.end" : 96, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias ListView<\/Type>.CollectionViewChanges<\/Type>.SectionChanges = SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>.SectionChanges<\/Type><\/Declaration>", - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ListView<\/ref.class>.CollectionViewChanges<\/ref.struct>.SectionChanges<\/decl.name> = SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>>.SectionChanges<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 103, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "SectionChanges", - "key.namelength" : 14, - "key.nameoffset" : 215, - "key.offset" : 205, - "key.parsed_declaration" : "typealias SectionChanges = SectionedDiff.SectionChanges", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.SectionChanges.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesVyAA0E0VAA13AnyIdentifierCAA0G4Item_pAI_GmD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV07SectionF0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias ListView<\/Type>.CollectionViewChanges<\/Type>.ItemChanges = SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>.ItemChanges<\/Type><\/Declaration>", - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ListView<\/ref.class>.CollectionViewChanges<\/ref.struct>.ItemChanges<\/decl.name> = SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>>.ItemChanges<\/ref.struct><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 97, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "ItemChanges", - "key.namelength" : 11, - "key.nameoffset" : 327, - "key.offset" : 317, - "key.parsed_declaration" : "typealias ItemChanges = SectionedDiff.ItemChanges", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "SectionedDiff.ItemChanges.Type", - "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyAA7SectionVAA13AnyIdentifierCAA0hE0_pAI_GmD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV04ItemF0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var deletedSections: [SectionChanges<\/Type>.Removed<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> deletedSections<\/decl.name>: [SectionChanges<\/ref.typealias>.Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "deletedSections", - "key.namelength" : 15, - "key.nameoffset" : 436, - "key.offset" : 432, - "key.parsed_declaration" : "var deletedSections : [SectionChanges.Removed] = []", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.SectionChanges.Removed]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV7RemovedVyAA0E0VAA13AnyIdentifierCAA0H4Item_pAK__GGD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV15deletedSectionsSayAA13SectionedDiffV07SectionF0V7RemovedVyAA0K0VAA13AnyIdentifierCAA0M4Item_pAP__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var insertedSections: [SectionChanges<\/Type>.Added<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertedSections<\/decl.name>: [SectionChanges<\/ref.typealias>.Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 50, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "insertedSections", - "key.namelength" : 16, - "key.nameoffset" : 496, - "key.offset" : 492, - "key.parsed_declaration" : "var insertedSections : [SectionChanges.Added] = []", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.SectionChanges.Added]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV5AddedVyAA0E0VAA13AnyIdentifierCAA0H4Item_pAK__GGD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV16insertedSectionsSayAA13SectionedDiffV07SectionF0V5AddedVyAA0K0VAA13AnyIdentifierCAA0M4Item_pAP__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var movedSections: [SectionChanges<\/Type>.Moved<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> movedSections<\/decl.name>: [SectionChanges<\/ref.typealias>.Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "movedSections", - "key.namelength" : 13, - "key.nameoffset" : 555, - "key.offset" : 551, - "key.parsed_declaration" : "var movedSections : [SectionChanges.Moved] = []", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.SectionChanges.Moved]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV5MovedVyAA0E0VAA13AnyIdentifierCAA0H4Item_pAK__GGD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV13movedSectionsSayAA13SectionedDiffV07SectionF0V5MovedVyAA0K0VAA13AnyIdentifierCAA0M4Item_pAP__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var deletedItems: [ItemChanges<\/Type>.Removed<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> deletedItems<\/decl.name>: [ItemChanges<\/ref.typealias>.Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "deletedItems", - "key.namelength" : 12, - "key.nameoffset" : 620, - "key.offset" : 616, - "key.parsed_declaration" : "var deletedItems : [ItemChanges.Removed] = []", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.ItemChanges.Removed]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7RemovedVyAA7SectionVAA13AnyIdentifierCAA0iE0_pAK__GGD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV12deletedItemsSayAA13SectionedDiffV04ItemF0V7RemovedVyAA7SectionVAA13AnyIdentifierCAA0nK0_pAP__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var insertedItems: [ItemChanges<\/Type>.Added<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertedItems<\/decl.name>: [ItemChanges<\/ref.typealias>.Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "insertedItems", - "key.namelength" : 13, - "key.nameoffset" : 674, - "key.offset" : 670, - "key.parsed_declaration" : "var insertedItems : [ItemChanges.Added] = []", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.ItemChanges.Added]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV5AddedVyAA7SectionVAA13AnyIdentifierCAA0iE0_pAK__GGD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV13insertedItemsSayAA13SectionedDiffV04ItemF0V5AddedVyAA7SectionVAA13AnyIdentifierCAA0nK0_pAP__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var updatedItems: [ItemChanges<\/Type>.Updated<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updatedItems<\/decl.name>: [ItemChanges<\/ref.typealias>.Updated<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "updatedItems", - "key.namelength" : 12, - "key.nameoffset" : 727, - "key.offset" : 723, - "key.parsed_declaration" : "var updatedItems : [ItemChanges.Updated] = []", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.ItemChanges.Updated]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7UpdatedVyAA7SectionVAA13AnyIdentifierCAA0iE0_pAK__GGD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV12updatedItemsSayAA13SectionedDiffV04ItemF0V7UpdatedVyAA7SectionVAA13AnyIdentifierCAA0nK0_pAP__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var movedItems: [ItemChanges<\/Type>.Moved<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> movedItems<\/decl.name>: [ItemChanges<\/ref.typealias>.Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "movedItems", - "key.namelength" : 10, - "key.nameoffset" : 781, - "key.offset" : 777, - "key.parsed_declaration" : "var movedItems : [ItemChanges.Moved] = []", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[SectionedDiff.ItemChanges.Moved]", - "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV5MovedVyAA7SectionVAA13AnyIdentifierCAA0iE0_pAK__GGD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV10movedItemsSayAA13SectionedDiffV04ItemF0V5MovedVyAA7SectionVAA13AnyIdentifierCAA0nK0_pAP__GGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var hasIndexAffectingChanges: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 373, - "key.bodyoffset" : 881, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> hasIndexAffectingChanges<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 411, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "hasIndexAffectingChanges", - "key.namelength" : 24, - "key.nameoffset" : 848, - "key.offset" : 844, - "key.parsed_declaration" : "var hasIndexAffectingChanges : Bool", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV017hasIndexAffectingF0Sbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(sectionChanges changes: SectionChanges<\/Type>)<\/Declaration>", - "key.bodylength" : 1435, - "key.bodyoffset" : 1328, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(sectionChanges<\/decl.var.parameter.argument_label> changes<\/decl.var.parameter.name>: SectionChanges<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1491, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "init(sectionChanges:)", - "key.namelength" : 45, - "key.nameoffset" : 1273, - "key.offset" : 1273, - "key.parsed_declaration" : "init(sectionChanges changes : SectionChanges)", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 37, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.CollectionViewChanges.Type) -> (SectionedDiff.SectionChanges) -> ListView.CollectionViewChanges", - "key.typeusr" : "$s14sectionChanges10ListableUI8ListViewC010CollectionfB0VAB13SectionedDiffV07SectionB0VyAB0J0VAB13AnyIdentifierCAB0K4Item_pAN_G_tcD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV07sectionF0AeA13SectionedDiffV07SectionF0VyAA0J0VAA13AnyIdentifierCAA0K4Item_pAN_G_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 2782 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 2798, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 9, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 2790, - "key.offset" : 2790, - "key.parsed_declaration" : "private init()", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 90, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(sectionChanges:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "(ListView.CollectionViewChanges.Type) -> () -> ListView.CollectionViewChanges", - "key.typeusr" : "$s10ListableUI8ListViewC010CollectionD7ChangesVycD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesVAEyc33_5EC4437E59A561DEDB0899E8ECD6647ALlfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static var empty: CollectionViewChanges<\/Type> { get }<\/Declaration>", - "key.bodylength" : 45, - "key.bodyoffset" : 2940, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns an instance of `CollectionViewChanges` containing no changes.", - "key.doc.column" : 20, - "key.doc.comment" : "Returns an instance of `CollectionViewChanges` containing no changes.", - "key.doc.declaration" : "static var empty: CollectionViewChanges { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.doc.full_as_xml" : "empty<\/Name>s:10ListableUI8ListViewC010CollectionD7ChangesV5emptyAEvpZ<\/USR>static var empty: CollectionViewChanges { get }<\/Declaration>Returns an instance of CollectionViewChanges<\/codeVoice> containing no changes.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 93, - "key.doc.name" : "empty", - "key.doc.type" : "Other", - "key.doclength" : 74, - "key.docoffset" : 2817, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> empty<\/decl.name>: CollectionViewChanges<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 87, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "empty", - "key.namelength" : 5, - "key.nameoffset" : 2910, - "key.offset" : 2899, - "key.parsed_declaration" : "static var empty: CollectionViewChanges", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.typename" : "ListView.CollectionViewChanges", - "key.typeusr" : "$s10ListableUI8ListViewC010CollectionD7ChangesVD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV5emptyAEvpZ" - } - ], - "key.typename" : "ListView.CollectionViewChanges.Type", - "key.typeusr" : "$s10ListableUI8ListViewC010CollectionD7ChangesVmD", - "key.usr" : "s:10ListableUI8ListViewC010CollectionD7ChangesV" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 9108, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 113 - } - ], - "key.bodylength" : 8964, - "key.bodyoffset" : 142, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 8985, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 132, - "key.offset" : 122, - "key.parsed_declaration" : "internal extension ListView", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> final class DataSource : NSObject<\/Type>, UICollectionViewDataSource<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 147 - } - ], - "key.bodylength" : 8890, - "key.bodyoffset" : 214, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 172 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 26, - "key.offset" : 182 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DataSource<\/decl.name> : NSObject<\/ref.class>, UICollectionViewDataSource<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "NSObject" - }, - { - "key.name" : "UICollectionViewDataSource" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 8952, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "DataSource", - "key.namelength" : 10, - "key.nameoffset" : 159, - "key.offset" : 153, - "key.parsed_declaration" : "final class DataSource : NSObject, UICollectionViewDataSource", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> unowned var view: ListView<\/Type>!<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 7, - "key.offset" : 223 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> view<\/decl.name>: ListView<\/ref.class>!<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 235, - "key.offset" : 231, - "key.parsed_declaration" : "unowned var view : ListView!", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListView?", - "key.typeusr" : "$s10ListableUI8ListViewCSgD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC4viewACSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> unowned var presentationState: PresentationState<\/Type>!<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 7, - "key.offset" : 260 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> presentationState<\/decl.name>: PresentationState<\/ref.class>!<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "presentationState", - "key.namelength" : 17, - "key.nameoffset" : 272, - "key.offset" : 268, - "key.parsed_declaration" : "unowned var presentationState : PresentationState!", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "PresentationState?", - "key.typeusr" : "$s10ListableUI17PresentationStateCSgD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC17presentationStateAA012PresentationH0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> unowned var storage: ListView<\/Type>.Storage<\/Type>!<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 7, - "key.offset" : 319 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> storage<\/decl.name>: ListView<\/ref.class>.Storage<\/ref.class>!<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "storage", - "key.namelength" : 7, - "key.nameoffset" : 331, - "key.offset" : 327, - "key.parsed_declaration" : "unowned var storage : ListView.Storage!", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListView.Storage?", - "key.typeusr" : "$s10ListableUI8ListViewC7StorageCSgD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC7storageAC7StorageCSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> unowned var liveCells: LiveCells<\/Type>!<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 7, - "key.offset" : 367 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> liveCells<\/decl.name>: LiveCells<\/ref.class>!<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "liveCells", - "key.namelength" : 9, - "key.nameoffset" : 379, - "key.offset" : 375, - "key.parsed_declaration" : "unowned var liveCells : LiveCells!", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "LiveCells?", - "key.typeusr" : "$s10ListableUI9LiveCellsCSgD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC9liveCellsAA04LiveH0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func numberOfSections(in collectionView: UICollectionView<\/Type>) -> Int<\/Type><\/Declaration>", - "key.bodylength" : 66, - "key.bodyoffset" : 486, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> numberOfSections<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 142, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "numberOfSections(in:)", - "key.namelength" : 53, - "key.nameoffset" : 416, - "key.offset" : 411, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDataSource(im)numberOfSectionsInCollectionView:" - } - ], - "key.parsed_declaration" : "func numberOfSections(in collectionView: UICollectionView) -> Int", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.DataSource) -> (UICollectionView) -> Int", - "key.typeusr" : "$s2inSiSo16UICollectionViewC_tcD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC16numberOfSections2inSiSo012UICollectionD0C_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, numberOfItemsInSection section: Int<\/Type>) -> Int<\/Type><\/Declaration>", - "key.bodylength" : 128, - "key.bodyoffset" : 680, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, numberOfItemsInSection<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 238, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:numberOfItemsInSection:)", - "key.namelength" : 87, - "key.nameoffset" : 576, - "key.offset" : 571, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDataSource(im)collectionView:numberOfItemsInSection:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int", - "key.parsed_scope.end" : 30, - "key.parsed_scope.start" : 25, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:cellForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:viewForSupplementaryElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canMoveItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:moveItemAt:to:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let section: PresentationState<\/Type>.SectionState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 54, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "section", - "key.namelength" : 7, - "key.nameoffset" : 697, - "key.offset" : 693, - "key.parsed_declaration" : "let section = self.presentationState.sections[section]", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.SectionState", - "key.typeusr" : "$s10ListableUI17PresentationStateC07SectionD0CD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_22numberOfItemsInSectionSiSo012UICollectionD0C_SitF7sectionL0_AA17PresentationStateC0lP0Cvp" - } - ], - "key.typename" : "(ListView.DataSource) -> (UICollectionView, Int) -> Int", - "key.typeusr" : "$s_22numberOfItemsInSectionSiSo16UICollectionViewC_SitcD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_22numberOfItemsInSectionSiSo012UICollectionD0C_SitF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, cellForItemAt indexPath: IndexPath<\/Type>) -> UICollectionViewCell<\/Type><\/Declaration>", - "key.bodylength" : 479, - "key.bodyoffset" : 986, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, cellForItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewCell<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 639, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:cellForItemAt:)", - "key.namelength" : 120, - "key.nameoffset" : 832, - "key.offset" : 827, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDataSource(im)collectionView:cellForItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(\n _ collectionView: UICollectionView,\n cellForItemAt indexPath: IndexPath\n) -> UICollectionViewCell", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 32, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:numberOfItemsInSection:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:viewForSupplementaryElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canMoveItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:moveItemAt:to:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 1003, - "key.offset" : 999, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_13cellForItemAtSo012UICollectionD4CellCSo0lD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationJ5State_pvp" - }, - { - "key.annotated_decl" : "let cell: any AnyItemCell<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: any AnyItemCell<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 185, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "cell", - "key.namelength" : 4, - "key.nameoffset" : 1174, - "key.offset" : 1170, - "key.parsed_declaration" : "let cell = item.dequeueAndPrepareCollectionViewCell(\n in: collectionView,\n for: indexPath,\n environment: self.view.environment\n)", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 41, - "key.reusingastcontext" : false, - "key.typename" : "any AnyItemCell", - "key.typeusr" : "$s10ListableUI11AnyItemCell_pD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_13cellForItemAtSo012UICollectionD4CellCSo0lD0C_10Foundation9IndexPathVtF0H0L_AA03AnyjM0_pvp" - } - ], - "key.typename" : "(ListView.DataSource) -> (UICollectionView, IndexPath) -> UICollectionViewCell", - "key.typeusr" : "$s_13cellForItemAtSo20UICollectionViewCellCSo0eF0C_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_13cellForItemAtSo012UICollectionD4CellCSo0lD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private let headerFooterReuseCache: ReusableViewCache<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1484 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> headerFooterReuseCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 52, - "key.modulename" : "ListableUI", - "key.name" : "headerFooterReuseCache", - "key.namelength" : 22, - "key.nameoffset" : 1496, - "key.offset" : 1492, - "key.parsed_declaration" : "private let headerFooterReuseCache = ReusableViewCache()", - "key.parsed_scope.end" : 52, - "key.parsed_scope.start" : 52, - "key.reusingastcontext" : false, - "key.typename" : "ReusableViewCache", - "key.typeusr" : "$s10ListableUI17ReusableViewCacheCD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC22headerFooterReuseCache33_8C8B9AF714C0959B5711D40AD9D209DBLLAA08ReusabledJ0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, viewForSupplementaryElementOfKind kind: String<\/Type>, at indexPath: IndexPath<\/Type>) -> UICollectionReusableView<\/Type><\/Declaration>", - "key.bodylength" : 3902, - "key.bodyoffset" : 1774, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, viewForSupplementaryElementOfKind<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionReusableView<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 4119, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:viewForSupplementaryElementOfKind:at:)", - "key.namelength" : 173, - "key.nameoffset" : 1563, - "key.offset" : 1558, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDataSource(im)collectionView:viewForSupplementaryElementOfKind:atIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(\n _ collectionView: UICollectionView,\n viewForSupplementaryElementOfKind kind: String,\n at indexPath: IndexPath\n ) -> UICollectionReusableView", - "key.parsed_scope.end" : 126, - "key.parsed_scope.start" : 54, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:numberOfItemsInSection:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:cellForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canMoveItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:moveItemAt:to:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let statePair: PresentationState<\/Type>.HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> statePair<\/decl.name>: PresentationState<\/ref.class>.HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 679, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "statePair", - "key.namelength" : 9, - "key.nameoffset" : 1791, - "key.offset" : 1787, - "key.parsed_declaration" : "let statePair : PresentationState.HeaderFooterViewStatePair = {\n switch SupplementaryKind(rawValue: kind)! {\n case .listContainerHeader: return self.presentationState.containerHeader\n case .listHeader: return self.presentationState.header\n case .listFooter: return self.presentationState.footer\n case .sectionHeader: return self.presentationState.sections[indexPath.section].header\n case .sectionFooter: return self.presentationState.sections[indexPath.section].footer\n case .overscrollFooter: return self.presentationState.overscrollFooter\n }\n}()", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_33viewForSupplementaryElementOfKind2atSo020UICollectionReusableD0CSo0oD0C_SS10Foundation9IndexPathVtF9statePairL_AA17PresentationStateC012HeaderFooterdwU0Cvp" - }, - { - "key.annotated_decl" : "let headerFooter: (any AnyPresentationHeaderFooterState<\/Type>)?<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> headerFooter<\/decl.name>: (any AnyPresentationHeaderFooterState<\/ref.protocol>)?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 34, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "headerFooter", - "key.namelength" : 12, - "key.nameoffset" : 2496, - "key.offset" : 2492, - "key.parsed_declaration" : "let headerFooter = statePair.state", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 71, - "key.reusingastcontext" : false, - "key.typename" : "(any AnyPresentationHeaderFooterState)?", - "key.typeusr" : "$s10ListableUI32AnyPresentationHeaderFooterState_pSgD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_33viewForSupplementaryElementOfKind2atSo020UICollectionReusableD0CSo0oD0C_SS10Foundation9IndexPathVtF12headerFooterL_AA021AnyPresentationHeaderU5State_pSgvp" - }, - { - "key.annotated_decl" : "let container: SupplementaryContainerView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> container<\/decl.name>: SupplementaryContainerView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 2991, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "container", - "key.namelength" : 9, - "key.nameoffset" : 2556, - "key.offset" : 2552, - "key.parsed_declaration" : "let container : SupplementaryContainerView = {\n \n \/\/\/ The below works around a (seeming?) bug or odd behavior in `UICollectionView`,\n \/\/\/ where it tries to be smart about recycling supplementary views that contain a\n \/\/\/ first responder such as a text field. Specifically, it holds onto a supplementary view\n \/\/\/ that contains a first responder, not immediately recycling it when it is scrolled out\n \/\/\/ of view. That ensures that the keyboard isn't immediately dismissed, which would\n \/\/\/ be jarring.\n \/\/\/\n \/\/\/ ...Unfortunately, this doesn't seem to actually work in practice very well. When the\n \/\/\/ supplementary view is scrolled back _into_ view, and we're asked to dequeue\n \/\/\/ a view, the collection view hands us back a _different_ view, leading to double\n \/\/\/ views that get stacked on top of each other in the layout, leading to a bunch\n \/\/\/ of weirdness.\n \/\/\/\n \/\/\/ So, to work around this, we do a few things:\n \/\/\/\n \/\/\/ 1) We begin tracking which supplementary views currently contain a first responder.\n \/\/\/ For practicality of implementation, we only track text fields right now. This could\n \/\/\/ change, but is harder, given there's no generic \"first responder changed\" notification.\n \/\/\/ This code lives in `ListView`.\n \/\/\/\n \/\/\/ 2) We update `ListLayoutContent.content(in: ...)` to _always_ return\n \/\/\/ supplementary info when a supplementary view contains a first responder,\n \/\/\/ even when out of frame. This ensures the supplementary view\n \/\/\/ instance is kept alive by the collection view.\n \/\/\/\n \/\/\/ 3) Within this method, we check to see if there's a live, existing `visibleContainer`\n \/\/\/ (aka the supplementary view) view with a first responder in it,\n \/\/\/ and if there is, we return _that_, instead of just dequeuing a new, wrong view.\n \/\/\/\n \/\/\/ After all that, the correct thing happens.\n \/\/\/\n \/\/\/ PR with more info and screenshots, etc:\n \/\/\/ https:\/\/github.com\/square\/Listable\/pull\/507\n \/\/\/\n \n if let view = statePair.visibleContainer, let state = statePair.state, state.containsFirstResponder {\n return view\n } else {\n return SupplementaryContainerView.dequeue(\n in: collectionView,\n for: kind,\n at: indexPath,\n reuseCache: self.headerFooterReuseCache,\n environment: self.view.environment\n )\n }\n}()", - "key.parsed_scope.end" : 73, - "key.parsed_scope.start" : 73, - "key.reusingastcontext" : false, - "key.typename" : "SupplementaryContainerView", - "key.typeusr" : "$s10ListableUI26SupplementaryContainerViewCD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_33viewForSupplementaryElementOfKind2atSo020UICollectionReusableD0CSo0oD0C_SS10Foundation9IndexPathVtF9containerL_AA0j9ContainerD0Cvp" - }, - { - "key.annotated_decl" : "let view: SupplementaryContainerView<\/Type><\/Declaration>", - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "The below works around a (seeming?) bug or odd behavior in `UICollectionView`,\nwhere it tries to be smart about recycling supplementary views that contain a\nfirst responder such as a text field. Specifically, it holds onto a supplementary view\nthat contains a first responder, not immediately recycling it when it is scrolled out\nof view. That ensures that the keyboard isn't immediately dismissed, which would\nbe jarring.\n\n...Unfortunately, this doesn't seem to actually work in practice very well. When the\nsupplementary view is scrolled back _into_ view, and we're asked to dequeue\na view, the collection view hands us back a _different_ view, leading to double\nviews that get stacked on top of each other in the layout, leading to a bunch\nof weirdness.\n\nSo, to work around this, we do a few things:\n\n1) We begin tracking which supplementary views currently contain a first responder.\nFor practicality of implementation, we only track text fields right now. This could\nchange, but is harder, given there's no generic \"first responder changed\" notification.\nThis code lives in `ListView`.\n\n2) We update `ListLayoutContent.content(in: ...)` to _always_ return\nsupplementary info when a supplementary view contains a first responder,\neven when out of frame. This ensures the supplementary view\ninstance is kept alive by the collection view.\n\n3) Within this method, we check to see if there's a live, existing `visibleContainer`\n(aka the supplementary view) view with a first responder in it,\nand if there is, we return _that_, instead of just dequeuing a new, wrong view.\n\nAfter all that, the correct thing happens.\n\nPR with more info and screenshots, etc:\nhttps:\/\/github.com\/square\/Listable\/pull\/507", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: SupplementaryContainerView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 4, - "key.line" : 110, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.offset" : 5031, - "key.parsed_declaration" : "if let view", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 110, - "key.reusingastcontext" : false, - "key.typename" : "SupplementaryContainerView", - "key.typeusr" : "$s10ListableUI26SupplementaryContainerViewCD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_33viewForSupplementaryElementOfKind2atSo020UICollectionReusableD0CSo0oD0C_SS10Foundation9IndexPathVtFAA0j9ContainerD0CyXEfU0_0H0L_AQvp" - } - ], - "key.typename" : "(ListView.DataSource) -> (UICollectionView, String, IndexPath) -> UICollectionReusableView", - "key.typeusr" : "$s_33viewForSupplementaryElementOfKind2atSo24UICollectionReusableViewCSo0hJ0C_SS10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_33viewForSupplementaryElementOfKind2atSo020UICollectionReusableD0CSo0oD0C_SS10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, canMoveItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 151, - "key.bodyoffset" : 5838, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, canMoveItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 295, - "key.line" : 128, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:canMoveItemAt:)", - "key.namelength" : 120, - "key.nameoffset" : 5700, - "key.offset" : 5695, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDataSource(im)collectionView:canMoveItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(\n _ collectionView: UICollectionView,\n canMoveItemAt indexPath: IndexPath\n) -> Bool", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 128, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:numberOfItemsInSection:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:cellForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:viewForSupplementaryElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:moveItemAt:to:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 133, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 5867, - "key.offset" : 5863, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 133, - "key.parsed_scope.start" : 133, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_13canMoveItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationJ5State_pvp" - } - ], - "key.typename" : "(ListView.DataSource) -> (UICollectionView, IndexPath) -> Bool", - "key.typeusr" : "$s_13canMoveItemAtSbSo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_13canMoveItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, moveItemAt from: IndexPath<\/Type>, to: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 2944, - "key.bodyoffset" : 6154, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, moveItemAt<\/decl.var.parameter.argument_label> from<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3091, - "key.line" : 138, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:moveItemAt:to:)", - "key.namelength" : 139, - "key.nameoffset" : 6013, - "key.offset" : 6008, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDataSource(im)collectionView:moveItemAtIndexPath:toIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(\n _ collectionView: UICollectionView,\n moveItemAt from: IndexPath,\n to: IndexPath\n)", - "key.parsed_scope.end" : 203, - "key.parsed_scope.start" : 138, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:numberOfItemsInSection:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:cellForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:viewForSupplementaryElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canMoveItemAt:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let result: ItemReordering<\/Type>.Result<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Notify our observers about the change.", - "key.doc.column" : 17, - "key.doc.comment" : "Notify our observers about the change.", - "key.doc.declaration" : "let result: ListableUI.ItemReordering.Result", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.doc.full_as_xml" : "result<\/Name>s:10ListableUI8ListViewC10DataSourceC010collectionD0_10moveItemAt2toySo012UICollectionD0C_10Foundation9IndexPathVAMtF6resultL_AA0I10ReorderingV6ResultVvp<\/USR>let result: ListableUI.ItemReordering.Result<\/Declaration>Notify our observers about the change.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 163, - "key.doc.name" : "result", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 6895, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> result<\/decl.name>: ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 260, - "key.line" : 163, - "key.modulename" : "ListableUI", - "key.name" : "result", - "key.namelength" : 6, - "key.nameoffset" : 6955, - "key.offset" : 6951, - "key.parsed_declaration" : "let result = ItemReordering.Result(\n from: from,\n fromSection: self.presentationState.sections[from.section].model,\n to: to,\n toSection: self.presentationState.sections[to.section].model\n)", - "key.parsed_scope.end" : 163, - "key.parsed_scope.start" : 163, - "key.reusingastcontext" : false, - "key.typename" : "ItemReordering.Result", - "key.typeusr" : "$s10ListableUI14ItemReorderingV6ResultVD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_10moveItemAt2toySo012UICollectionD0C_10Foundation9IndexPathVAMtF6resultL_AA0I10ReorderingV6ResultVvp" - }, - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 46, - "key.line" : 170, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 7241, - "key.offset" : 7237, - "key.parsed_declaration" : "let item = self.presentationState.item(at: to)", - "key.parsed_scope.end" : 170, - "key.parsed_scope.start" : 170, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_10moveItemAt2toySo012UICollectionD0C_10Foundation9IndexPathVAMtF4itemL_AA015AnyPresentationI5State_pvp" - }, - { - "key.annotated_decl" : "let itemHadCallback: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemHadCallback<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 58, - "key.line" : 172, - "key.modulename" : "ListableUI", - "key.name" : "itemHadCallback", - "key.namelength" : 15, - "key.nameoffset" : 7313, - "key.offset" : 7309, - "key.parsed_declaration" : "let itemHadCallback = item.performDidReorder(with: result)", - "key.parsed_scope.end" : 172, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_10moveItemAt2toySo012UICollectionD0C_10Foundation9IndexPathVAMtF15itemHadCallbackL_Sbvp" - }, - { - "key.annotated_decl" : "let hasStateObservers: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> hasStateObservers<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 80, - "key.line" : 173, - "key.modulename" : "ListableUI", - "key.name" : "hasStateObservers", - "key.namelength" : 17, - "key.nameoffset" : 7384, - "key.offset" : 7380, - "key.parsed_declaration" : "let hasStateObservers = self.view.stateObserver.onItemReordered.isEmpty == false", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 173, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_10moveItemAt2toySo012UICollectionD0C_10Foundation9IndexPathVAMtF17hasStateObserversL_Sbvp" - } - ], - "key.typename" : "(ListView.DataSource) -> (UICollectionView, IndexPath, IndexPath) -> ()", - "key.typeusr" : "$s_10moveItemAt2toySo16UICollectionViewC_10Foundation9IndexPathVAGtcD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC010collectionD0_10moveItemAt2toySo012UICollectionD0C_10Foundation9IndexPathVAMtF" - } - ], - "key.typename" : "ListView.DataSource.Type", - "key.typeusr" : "$s10ListableUI8ListViewC10DataSourceCmD", - "key.usr" : "s:10ListableUI8ListViewC10DataSourceC" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 16037, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 15904, - "key.bodyoffset" : 131, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 15925, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 121, - "key.offset" : 111, - "key.parsed_declaration" : "extension ListView", - "key.parsed_scope.end" : 414, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> final class Delegate : NSObject<\/Type>, UICollectionViewDelegate<\/Type>, CollectionViewLayoutDelegate<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 136 - } - ], - "key.bodylength" : 15804, - "key.bodyoffset" : 229, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 159 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 24, - "key.offset" : 169 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 28, - "key.offset" : 195 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Delegate<\/decl.name> : NSObject<\/ref.class>, UICollectionViewDelegate<\/ref.protocol>, CollectionViewLayoutDelegate<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "NSObject" - }, - { - "key.name" : "UICollectionViewDelegate" - }, - { - "key.name" : "CollectionViewLayoutDelegate" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 15892, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "Delegate", - "key.namelength" : 8, - "key.nameoffset" : 148, - "key.offset" : 142, - "key.parsed_declaration" : "final class Delegate : NSObject, UICollectionViewDelegate, CollectionViewLayoutDelegate", - "key.parsed_scope.end" : 413, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> unowned var view: ListView<\/Type>!<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 7, - "key.offset" : 238 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> view<\/decl.name>: ListView<\/ref.class>!<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 250, - "key.offset" : 246, - "key.parsed_declaration" : "unowned var view : ListView!", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListView?", - "key.typeusr" : "$s10ListableUI8ListViewCSgD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC4viewACSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> unowned var presentationState: PresentationState<\/Type>!<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 7, - "key.offset" : 275 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> presentationState<\/decl.name>: PresentationState<\/ref.class>!<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "presentationState", - "key.namelength" : 17, - "key.nameoffset" : 287, - "key.offset" : 283, - "key.parsed_declaration" : "unowned var presentationState : PresentationState!", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "PresentationState?", - "key.typeusr" : "$s10ListableUI17PresentationStateCSgD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC17presentationStateAA012PresentationG0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> unowned var layoutManager: LayoutManager<\/Type>!<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 7, - "key.offset" : 334 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layoutManager<\/decl.name>: LayoutManager<\/ref.class>!<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "layoutManager", - "key.namelength" : 13, - "key.nameoffset" : 346, - "key.offset" : 342, - "key.parsed_declaration" : "unowned var layoutManager : LayoutManager!", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ListView.LayoutManager?", - "key.typeusr" : "$s10ListableUI8ListViewC13LayoutManagerCSgD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC13layoutManagerAC06LayoutG0CSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 30, - "key.name" : "MARK: UICollectionViewDelegate", - "key.offset" : 397 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, shouldHighlightItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 239, - "key.bodyoffset" : 562, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, shouldHighlightItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 357, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:shouldHighlightItemAt:)", - "key.namelength" : 94, - "key.nameoffset" : 450, - "key.offset" : 445, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:shouldHighlightItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, shouldHighlightItemAt indexPath: IndexPath) -> Bool", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 21, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 669, - "key.offset" : 665, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_21shouldHighlightItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath) -> Bool", - "key.typeusr" : "$s_21shouldHighlightItemAtSbSo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_21shouldHighlightItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, didHighlightItemAt indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 153, - "key.bodyoffset" : 926, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didHighlightItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 260, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:didHighlightItemAt:)", - "key.namelength" : 91, - "key.nameoffset" : 825, - "key.offset" : 820, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:didHighlightItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath)", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 30, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 943, - "key.offset" : 939, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 32, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_18didHighlightItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath) -> ()", - "key.typeusr" : "$s_18didHighlightItemAtySo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_18didHighlightItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, didUnhighlightItemAt indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 153, - "key.bodyoffset" : 1206, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didUnhighlightItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 262, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:didUnhighlightItemAt:)", - "key.namelength" : 93, - "key.nameoffset" : 1103, - "key.offset" : 1098, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:didUnhighlightItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, didUnhighlightItemAt indexPath: IndexPath)", - "key.parsed_scope.end" : 42, - "key.parsed_scope.start" : 37, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 1223, - "key.offset" : 1219, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 39, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_20didUnhighlightItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath) -> ()", - "key.typeusr" : "$s_20didUnhighlightItemAtySo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_20didUnhighlightItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, shouldSelectItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 819, - "key.bodyoffset" : 1492, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, shouldSelectItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 934, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:shouldSelectItemAt:)", - "key.namelength" : 91, - "key.nameoffset" : 1383, - "key.offset" : 1378, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:shouldSelectItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 44, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 1599, - "key.offset" : 1595, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 48, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_18shouldSelectItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath) -> Bool", - "key.typeusr" : "$s_18shouldSelectItemAtSbSo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_18shouldSelectItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, shouldDeselectItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 33, - "key.bodyoffset" : 2446, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, shouldDeselectItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 150, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:shouldDeselectItemAt:)", - "key.namelength" : 93, - "key.nameoffset" : 2335, - "key.offset" : 2330, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:shouldDeselectItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, shouldDeselectItemAt indexPath: IndexPath) -> Bool", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 68, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath) -> Bool", - "key.typeusr" : "$s_20shouldDeselectItemAtSbSo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_20shouldDeselectItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, didSelectItemAt indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 632, - "key.bodyoffset" : 2601, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didSelectItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 736, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:didSelectItemAt:)", - "key.namelength" : 88, - "key.nameoffset" : 2503, - "key.offset" : 2498, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:didSelectItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)", - "key.parsed_scope.end" : 89, - "key.parsed_scope.start" : 73, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 2618, - "key.offset" : 2614, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 75, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_15didSelectItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath) -> ()", - "key.typeusr" : "$s_15didSelectItemAtySo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_15didSelectItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, didDeselectItemAt indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 272, - "key.bodyoffset" : 3357, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didDeselectItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 378, - "key.line" : 91, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:didDeselectItemAt:)", - "key.namelength" : 90, - "key.nameoffset" : 3257, - "key.offset" : 3252, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:didDeselectItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath)", - "key.parsed_scope.end" : 99, - "key.parsed_scope.start" : 91, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 3374, - "key.offset" : 3370, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_17didDeselectItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath) -> ()", - "key.typeusr" : "$s_17didDeselectItemAtySo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_17didDeselectItemAtySo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView<\/Type>)<\/Declaration>", - "key.bodylength" : 419, - "key.bodyoffset" : 3717, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> scrollViewDidEndScrollingAnimation<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 497, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewDidEndScrollingAnimation(_:)", - "key.namelength" : 62, - "key.nameoffset" : 3645, - "key.offset" : 3640, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UIScrollViewDelegate(im)scrollViewDidEndScrollingAnimation:" - } - ], - "key.parsed_declaration" : "func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView)", - "key.parsed_scope.end" : 111, - "key.parsed_scope.start" : 101, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (UIScrollView) -> ()", - "key.typeusr" : "$syySo12UIScrollViewCcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC06scrollD24DidEndScrollingAnimationyySo08UIScrollD0CF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var oldSelectedItems: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4147 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> oldSelectedItems<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 113, - "key.modulename" : "ListableUI", - "key.name" : "oldSelectedItems", - "key.namelength" : 16, - "key.nameoffset" : 4159, - "key.offset" : 4155, - "key.parsed_declaration" : "private var oldSelectedItems : Set = []", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 113, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC16oldSelectedItems33_F1C23E5D52219C5540E9793E7A7E0D46LLShyAA13AnyIdentifierCGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func performOnSelectChanged()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4219 - } - ], - "key.bodylength" : 687, - "key.bodyoffset" : 4258, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performOnSelectChanged<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 719, - "key.line" : 115, - "key.modulename" : "ListableUI", - "key.name" : "performOnSelectChanged()", - "key.namelength" : 24, - "key.nameoffset" : 4232, - "key.offset" : 4227, - "key.parsed_declaration" : "private func performOnSelectChanged()", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 115, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let old: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 31, - "key.line" : 117, - "key.modulename" : "ListableUI", - "key.name" : "old", - "key.namelength" : 3, - "key.nameoffset" : 4288, - "key.offset" : 4284, - "key.parsed_declaration" : "let old = self.oldSelectedItems", - "key.parsed_scope.end" : 117, - "key.parsed_scope.start" : 117, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC22performOnSelectChanged33_F1C23E5D52219C5540E9793E7A7E0D46LLyyF3oldL_ShyAA13AnyIdentifierCGvp" - }, - { - "key.annotated_decl" : "let new: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 81, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 4345, - "key.offset" : 4341, - "key.parsed_declaration" : "let new = Set(self.presentationState.selectedItems.map(\\.anyModel.anyIdentifier))", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC22performOnSelectChanged33_F1C23E5D52219C5540E9793E7A7E0D46LLyyF3newL_ShyAA13AnyIdentifierCGvp" - } - ], - "key.typename" : "(ListView.Delegate) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC22performOnSelectChanged33_F1C23E5D52219C5540E9793E7A7E0D46LLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var displayedItems: [ObjectIdentifier<\/Type> : AnyPresentationItemState<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4964 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> displayedItems<\/decl.name>: [ObjectIdentifier<\/ref.struct> : AnyPresentationItemState<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 70, - "key.line" : 137, - "key.modulename" : "ListableUI", - "key.name" : "displayedItems", - "key.namelength" : 14, - "key.nameoffset" : 4976, - "key.offset" : 4972, - "key.parsed_declaration" : "private var displayedItems : [ObjectIdentifier:AnyPresentationItemState] = [:]", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 137, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[ObjectIdentifier : any AnyPresentationItemState]", - "key.typeusr" : "$sSDySO10ListableUI24AnyPresentationItemState_pGD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC14displayedItems33_F1C23E5D52219C5540E9793E7A7E0D46LLSDySOAA24AnyPresentationItemState_pGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, willDisplay cell: UICollectionViewCell<\/Type>, forItemAt indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 728, - "key.bodyoffset" : 5247, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, willDisplay<\/decl.var.parameter.argument_label> cell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, forItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 916, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:willDisplay:forItemAt:)", - "key.namelength" : 172, - "key.nameoffset" : 5065, - "key.offset" : 5060, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:willDisplayCell:forItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(\n _ collectionView: UICollectionView,\n willDisplay cell: UICollectionViewCell,\n forItemAt indexPath: IndexPath\n )", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 139, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 145, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 5264, - "key.offset" : 5260, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 145, - "key.parsed_scope.start" : 145, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_11willDisplay9forItemAtySo012UICollectionD0C_So0lD4CellC10Foundation9IndexPathVtF4itemL_AA015AnyPresentationJ5State_pvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, UICollectionViewCell, IndexPath) -> ()", - "key.typeusr" : "$s_11willDisplay9forItemAtySo16UICollectionViewC_So0fG4CellC10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_11willDisplay9forItemAtySo012UICollectionD0C_So0lD4CellC10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, didEndDisplaying cell: UICollectionViewCell<\/Type>, forItemAt indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 192, - "key.bodyoffset" : 6186, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Force a layout of the cell before it is displayed, so that any implicit animations\nare avoided. This ensures that cases like toggling a switch on and off are\nnot animated as the cell comes into view.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didEndDisplaying<\/decl.var.parameter.argument_label> cell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, forItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 385, - "key.line" : 161, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:didEndDisplaying:forItemAt:)", - "key.namelength" : 177, - "key.nameoffset" : 5999, - "key.offset" : 5994, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:didEndDisplayingCell:forItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(\n _ collectionView: UICollectionView,\n didEndDisplaying cell: UICollectionViewCell,\n forItemAt indexPath: IndexPath\n )", - "key.parsed_scope.end" : 172, - "key.parsed_scope.start" : 161, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, UICollectionViewCell, IndexPath) -> ()", - "key.typeusr" : "$s_16didEndDisplaying9forItemAtySo16UICollectionViewC_So0gH4CellC10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_16didEndDisplaying9forItemAtySo012UICollectionD0C_So0mD4CellC10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var displayedSupplementaryItems: [ObjectIdentifier<\/Type> : PresentationState<\/Type>.HeaderFooterViewStatePair<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6405 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> displayedSupplementaryItems<\/decl.name>: [ObjectIdentifier<\/ref.struct> : PresentationState<\/ref.class>.HeaderFooterViewStatePair<\/ref.class>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 102, - "key.line" : 174, - "key.modulename" : "ListableUI", - "key.name" : "displayedSupplementaryItems", - "key.namelength" : 27, - "key.nameoffset" : 6417, - "key.offset" : 6413, - "key.parsed_declaration" : "private var displayedSupplementaryItems : [ObjectIdentifier:PresentationState.HeaderFooterViewStatePair] = [:]", - "key.parsed_scope.end" : 174, - "key.parsed_scope.start" : 174, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[ObjectIdentifier : PresentationState.HeaderFooterViewStatePair]", - "key.typeusr" : "$sSDySO10ListableUI17PresentationStateC016HeaderFooterViewD4PairCGD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC27displayedSupplementaryItems33_F1C23E5D52219C5540E9793E7A7E0D46LLSDySOAA17PresentationStateC012HeaderFooterdT4PairCGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, willDisplaySupplementaryView anyView: UICollectionReusableView<\/Type>, forElementKind kindString: String<\/Type>, at indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 857, - "key.bodyoffset" : 6784, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, willDisplaySupplementaryView<\/decl.var.parameter.argument_label> anyView<\/decl.var.parameter.name>: UICollectionReusableView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, forElementKind<\/decl.var.parameter.argument_label> kindString<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1109, - "key.line" : 176, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)", - "key.namelength" : 236, - "key.nameoffset" : 6538, - "key.offset" : 6533, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:willDisplaySupplementaryView:forElementKind:atIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(\n _ collectionView: UICollectionView,\n willDisplaySupplementaryView anyView: UICollectionReusableView,\n forElementKind kindString: String,\n at indexPath: IndexPath\n )", - "key.parsed_scope.end" : 201, - "key.parsed_scope.start" : 176, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let container: SupplementaryContainerView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> container<\/decl.name>: SupplementaryContainerView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 54, - "key.line" : 183, - "key.modulename" : "ListableUI", - "key.name" : "container", - "key.namelength" : 9, - "key.nameoffset" : 6801, - "key.offset" : 6797, - "key.parsed_declaration" : "let container = anyView as! SupplementaryContainerView", - "key.parsed_scope.end" : 183, - "key.parsed_scope.start" : 183, - "key.reusingastcontext" : false, - "key.typename" : "SupplementaryContainerView", - "key.typeusr" : "$s10ListableUI26SupplementaryContainerViewCD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_024willDisplaySupplementaryD014forElementKind2atySo012UICollectionD0C_So0n8ReusableD0CSS10Foundation9IndexPathVtF9containerL_AA0i9ContainerD0Cvp" - }, - { - "key.annotated_decl" : "let kind: SupplementaryKind<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 51, - "key.line" : 184, - "key.modulename" : "ListableUI", - "key.name" : "kind", - "key.namelength" : 4, - "key.nameoffset" : 6868, - "key.offset" : 6864, - "key.parsed_declaration" : "let kind = SupplementaryKind(rawValue: kindString)!", - "key.parsed_scope.end" : 184, - "key.parsed_scope.start" : 184, - "key.reusingastcontext" : false, - "key.typename" : "SupplementaryKind", - "key.typeusr" : "$s10ListableUI17SupplementaryKindOD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_024willDisplaySupplementaryD014forElementKind2atySo012UICollectionD0C_So0n8ReusableD0CSS10Foundation9IndexPathVtF4kindL_AA0iL0Ovp" - }, - { - "key.annotated_decl" : "let headerFooter: PresentationState<\/Type>.HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> headerFooter<\/decl.name>: PresentationState<\/ref.class>.HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 133, - "key.line" : 186, - "key.modulename" : "ListableUI", - "key.name" : "headerFooter", - "key.namelength" : 12, - "key.nameoffset" : 6945, - "key.offset" : 6941, - "key.parsed_declaration" : "let headerFooter = self.presentationState.headerFooter(\n of: kind,\n in: indexPath.section\n)", - "key.parsed_scope.end" : 186, - "key.parsed_scope.start" : 186, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_024willDisplaySupplementaryD014forElementKind2atySo012UICollectionD0C_So0n8ReusableD0CSS10Foundation9IndexPathVtF12headerFooterL_AA17PresentationStateC06HeadertdV4PairCvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, UICollectionReusableView, String, IndexPath) -> ()", - "key.typeusr" : "$s_28willDisplaySupplementaryView14forElementKind2atySo012UICollectionD0C_So0i8ReusableD0CSS10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_024willDisplaySupplementaryD014forElementKind2atySo012UICollectionD0C_So0n8ReusableD0CSS10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, didEndDisplayingSupplementaryView anyView: UICollectionReusableView<\/Type>, forElementOfKind kindString: String<\/Type>, at indexPath: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 345, - "key.bodyoffset" : 7918, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Force a layout of the cell before it is displayed, so that any implicit animations\nare avoided. This ensures that cases like toggling a switch on and off are\nnot animated as the cell comes into view.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didEndDisplayingSupplementaryView<\/decl.var.parameter.argument_label> anyView<\/decl.var.parameter.name>: UICollectionReusableView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, forElementOfKind<\/decl.var.parameter.argument_label> kindString<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 604, - "key.line" : 203, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)", - "key.namelength" : 243, - "key.nameoffset" : 7665, - "key.offset" : 7660, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:didEndDisplayingSupplementaryView:forElementOfKind:atIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(\n _ collectionView: UICollectionView,\n didEndDisplayingSupplementaryView anyView: UICollectionReusableView,\n forElementOfKind kindString: String,\n at indexPath: IndexPath\n )", - "key.parsed_scope.end" : 217, - "key.parsed_scope.start" : 203, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let container: SupplementaryContainerView<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> container<\/decl.name>: SupplementaryContainerView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 54, - "key.line" : 210, - "key.modulename" : "ListableUI", - "key.name" : "container", - "key.namelength" : 9, - "key.nameoffset" : 7935, - "key.offset" : 7931, - "key.parsed_declaration" : "let container = anyView as! SupplementaryContainerView", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 210, - "key.reusingastcontext" : false, - "key.typename" : "SupplementaryContainerView", - "key.typeusr" : "$s10ListableUI26SupplementaryContainerViewCD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_029didEndDisplayingSupplementaryD016forElementOfKind2atySo012UICollectionD0C_So0p8ReusableD0CSS10Foundation9IndexPathVtF9containerL_AA0j9ContainerD0Cvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, UICollectionReusableView, String, IndexPath) -> ()", - "key.typeusr" : "$s_33didEndDisplayingSupplementaryView16forElementOfKind2atySo012UICollectionE0C_So0k8ReusableE0CSS10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_029didEndDisplayingSupplementaryD016forElementOfKind2atySo012UICollectionD0C_So0p8ReusableD0CSS10Foundation9IndexPathVtF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 46, - "key.name" : "MARK: UICollectionViewDelegate - Focus Support", - "key.offset" : 8285 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, canFocusItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 208, - "key.bodyoffset" : 8451, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, canFocusItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 311, - "key.line" : 221, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:canFocusItemAt:)", - "key.namelength" : 87, - "key.nameoffset" : 8354, - "key.offset" : 8349, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:canFocusItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, canFocusItemAt indexPath: IndexPath) -> Bool", - "key.parsed_scope.end" : 225, - "key.parsed_scope.start" : 221, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 223, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 8540, - "key.offset" : 8536, - "key.parsed_declaration" : "let item = self.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 223, - "key.parsed_scope.start" : 223, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_14canFocusItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF4itemL_AA015AnyPresentationI5State_pvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath) -> Bool", - "key.typeusr" : "$s_14canFocusItemAtSbSo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_14canFocusItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, selectionFollowsFocusForItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 70, - "key.bodyoffset" : 8796, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, selectionFollowsFocusForItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 189, - "key.line" : 227, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:selectionFollowsFocusForItemAt:)", - "key.namelength" : 103, - "key.nameoffset" : 8683, - "key.offset" : 8678, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:selectionFollowsFocusForItemAtIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(_ collectionView: UICollectionView, selectionFollowsFocusForItemAt indexPath: IndexPath) -> Bool", - "key.parsed_scope.end" : 229, - "key.parsed_scope.start" : 227, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath) -> Bool", - "key.typeusr" : "$s_30selectionFollowsFocusForItemAtSbSo16UICollectionViewC_10Foundation9IndexPathVtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_30selectionFollowsFocusForItemAtSbSo012UICollectionD0C_10Foundation9IndexPathVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func collectionView(_ collectionView: UICollectionView<\/Type>, targetIndexPathForMoveFromItemAt from: IndexPath<\/Type>, toProposedIndexPath to: IndexPath<\/Type>) -> IndexPath<\/Type><\/Declaration>", - "key.bodylength" : 2386, - "key.bodyoffset" : 9094, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, targetIndexPathForMoveFromItemAt<\/decl.var.parameter.argument_label> from<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, toProposedIndexPath<\/decl.var.parameter.argument_label> to<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2596, - "key.line" : 231, - "key.modulename" : "ListableUI", - "key.name" : "collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:)", - "key.namelength" : 181, - "key.nameoffset" : 8890, - "key.offset" : 8885, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UICollectionViewDelegate(im)collectionView:targetIndexPathForMoveFromItemAtIndexPath:toProposedIndexPath:" - } - ], - "key.parsed_declaration" : "func collectionView(\n _ collectionView: UICollectionView,\n targetIndexPathForMoveFromItemAt from: IndexPath,\n toProposedIndexPath to: IndexPath\n) -> IndexPath", - "key.parsed_scope.end" : 288, - "key.parsed_scope.start" : 231, - "key.related_decls" : [ - { - "key.annotated_decl" : "collectionView(_:shouldHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didHighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didUnhighlightItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:shouldDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didSelectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didDeselectItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplay:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplaying:forItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:willDisplaySupplementaryView:forElementKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:canFocusItemAt:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "collectionView(_:selectionFollowsFocusForItemAt:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "\n**Note**: We do not use either `from` or `to` index paths passed to this method to\nindex into the `presentationState`'s content – it has not yet been updated\nto reflect the move, because the move has not yet been committed. The `from` parameter\nis instead reflecting the current `UICollectionViewLayout`'s state – which will not match\nthe data source \/ `presentationState`.\n\nInstead, read the `stateForItem(at:)` off of the `layoutManager`. This will reflect\nthe right index path.\n\niOS 15 resolves this issue, by introducing\n```\nfunc collectionView(\n _ collectionView: UICollectionView,\n targetIndexPathForMoveOfItemFromOriginalIndexPath originalIndexPath: IndexPath,\n atCurrentIndexPath currentIndexPath: IndexPath,\n toProposedIndexPath proposedIndexPath: IndexPath\n) -> IndexPath\n```\nWhich passes the **original** index path, allowing a direct index into your data source.\nAlas, we do not yet support only iOS 15 and later, so, here we are.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 52, - "key.line" : 264, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 10524, - "key.offset" : 10520, - "key.parsed_declaration" : "let item = self.layoutManager.stateForItem(at: from)", - "key.parsed_scope.end" : 264, - "key.parsed_scope.start" : 264, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_32targetIndexPathForMoveFromItemAt010toProposedhI010Foundation0hI0VSo012UICollectionD0C_A2KtF4itemL_AA015AnyPresentationM5State_pvp" - }, - { - "key.annotated_decl" : "let fromSection: PresentationState<\/Type>.SectionState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> fromSection<\/decl.name>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 63, - "key.line" : 279, - "key.modulename" : "ListableUI", - "key.name" : "fromSection", - "key.namelength" : 11, - "key.nameoffset" : 11139, - "key.offset" : 11135, - "key.parsed_declaration" : "let fromSection = self.presentationState.sections[from.section]", - "key.parsed_scope.end" : 279, - "key.parsed_scope.start" : 279, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.SectionState", - "key.typeusr" : "$s10ListableUI17PresentationStateC07SectionD0CD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_32targetIndexPathForMoveFromItemAt010toProposedhI010Foundation0hI0VSo012UICollectionD0C_A2KtF11fromSectionL_AA17PresentationStateC0tV0Cvp" - }, - { - "key.annotated_decl" : "let toSection: PresentationState<\/Type>.SectionState<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> toSection<\/decl.name>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 59, - "key.line" : 280, - "key.modulename" : "ListableUI", - "key.name" : "toSection", - "key.namelength" : 9, - "key.nameoffset" : 11215, - "key.offset" : 11211, - "key.parsed_declaration" : "let toSection = self.presentationState.sections[to.section]", - "key.parsed_scope.end" : 280, - "key.parsed_scope.start" : 280, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.SectionState", - "key.typeusr" : "$s10ListableUI17PresentationStateC07SectionD0CD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_32targetIndexPathForMoveFromItemAt010toProposedhI010Foundation0hI0VSo012UICollectionD0C_A2KtF0O7SectionL_AA17PresentationStateC0sU0Cvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UICollectionView, IndexPath, IndexPath) -> IndexPath", - "key.typeusr" : "$s_32targetIndexPathForMoveFromItemAt010toProposedbC010Foundation0bC0VSo16UICollectionViewC_A2EtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC010collectionD0_32targetIndexPathForMoveFromItemAt010toProposedhI010Foundation0hI0VSo012UICollectionD0C_A2KtF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 34, - "key.name" : "MARK: CollectionViewLayoutDelegate", - "key.offset" : 11502 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func listViewLayoutUpdatedItemPositions()<\/Declaration>", - "key.bodylength" : 370, - "key.bodyoffset" : 11605, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> listViewLayoutUpdatedItemPositions<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 422, - "key.line" : 292, - "key.modulename" : "ListableUI", - "key.name" : "listViewLayoutUpdatedItemPositions()", - "key.namelength" : 36, - "key.nameoffset" : 11559, - "key.offset" : 11554, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listdE20UpdatedItemPositionsyyF" - } - ], - "key.parsed_declaration" : "func listViewLayoutUpdatedItemPositions()", - "key.parsed_scope.end" : 301, - "key.parsed_scope.start" : 292, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC04listD26LayoutUpdatedItemPositionsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func listLayoutContent(defaults: ListLayoutDefaults<\/Type>) -> ListLayoutContent<\/Type><\/Declaration>", - "key.bodylength" : 166, - "key.bodyoffset" : 12099, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "During reordering; our index paths will not match the index paths of the collection view;\nour index paths are not updated until the move is committed.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> listLayoutContent<\/decl.name>(defaults<\/decl.var.parameter.argument_label>: ListLayoutDefaults<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 272, - "key.line" : 303, - "key.modulename" : "ListableUI", - "key.name" : "listLayoutContent(defaults:)", - "key.namelength" : 69, - "key.nameoffset" : 11999, - "key.offset" : 11994, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listE7Content8defaultsAA04ListeH0CAA0jE8DefaultsV_tF" - } - ], - "key.parsed_declaration" : "func listLayoutContent(\n defaults: ListLayoutDefaults\n) -> ListLayoutContent", - "key.parsed_scope.end" : 311, - "key.parsed_scope.start" : 303, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (ListLayoutDefaults) -> ListLayoutContent", - "key.typeusr" : "$s8defaults10ListableUI17ListLayoutContentCAB0dE8DefaultsV_tcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC17listLayoutContent8defaultsAA0cgH0CAA0cG8DefaultsV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func listViewLayoutCurrentEnvironment() -> ListEnvironment<\/Type><\/Declaration>", - "key.bodylength" : 43, - "key.bodyoffset" : 12344, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> listViewLayoutCurrentEnvironment<\/decl.name>() -> ListEnvironment<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 104, - "key.line" : 313, - "key.modulename" : "ListableUI", - "key.name" : "listViewLayoutCurrentEnvironment()", - "key.namelength" : 34, - "key.nameoffset" : 12289, - "key.offset" : 12284, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listdE18CurrentEnvironmentAA04ListI0VyF" - } - ], - "key.parsed_declaration" : "func listViewLayoutCurrentEnvironment() -> ListEnvironment", - "key.parsed_scope.end" : 315, - "key.parsed_scope.start" : 313, - "key.reusingastcontext" : false, - "key.typename" : "(ListView.Delegate) -> () -> ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVycD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC04listD24LayoutCurrentEnvironmentAA0cI0VyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func listViewLayoutDidLayoutContents()<\/Declaration>", - "key.bodylength" : 70, - "key.bodyoffset" : 12446, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> listViewLayoutDidLayoutContents<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 111, - "key.line" : 317, - "key.modulename" : "ListableUI", - "key.name" : "listViewLayoutDidLayoutContents()", - "key.namelength" : 33, - "key.nameoffset" : 12411, - "key.offset" : 12406, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listde3DidE8ContentsyyF" - } - ], - "key.parsed_declaration" : "func listViewLayoutDidLayoutContents()", - "key.parsed_scope.end" : 319, - "key.parsed_scope.start" : 317, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC04listd9LayoutDidG8ContentsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func listViewShouldEndQueueingEditsForReorder()<\/Declaration>", - "key.bodylength" : 80, - "key.bodyoffset" : 12584, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> listViewShouldEndQueueingEditsForReorder<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 130, - "key.line" : 321, - "key.modulename" : "ListableUI", - "key.name" : "listViewShouldEndQueueingEditsForReorder()", - "key.namelength" : 42, - "key.nameoffset" : 12540, - "key.offset" : 12535, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI28CollectionViewLayoutDelegateP04listD32ShouldEndQueueingEditsForReorderyyF" - } - ], - "key.parsed_declaration" : "func listViewShouldEndQueueingEditsForReorder()", - "key.parsed_scope.end" : 323, - "key.parsed_scope.start" : 321, - "key.reusingastcontext" : false, - "key.typename" : "(ListView.Delegate) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC04listD32ShouldEndQueueingEditsForReorderyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 26, - "key.name" : "MARK: UIScrollViewDelegate", - "key.offset" : 12678 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func scrollViewWillBeginDragging(_ scrollView: UIScrollView<\/Type>)<\/Declaration>", - "key.bodylength" : 375, - "key.bodyoffset" : 12792, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> scrollViewWillBeginDragging<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 446, - "key.line" : 327, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewWillBeginDragging(_:)", - "key.namelength" : 55, - "key.nameoffset" : 12727, - "key.offset" : 12722, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UIScrollViewDelegate(im)scrollViewWillBeginDragging:" - } - ], - "key.parsed_declaration" : "func scrollViewWillBeginDragging(_ scrollView: UIScrollView)", - "key.parsed_scope.end" : 338, - "key.parsed_scope.start" : 327, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (UIScrollView) -> ()", - "key.typeusr" : "$syySo12UIScrollViewCcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC06scrollD17WillBeginDraggingyySo08UIScrollD0CF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func scrollViewDidEndDecelerating(_ scrollView: UIScrollView<\/Type>)<\/Declaration>", - "key.bodylength" : 375, - "key.bodyoffset" : 13257, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> scrollViewDidEndDecelerating<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 447, - "key.line" : 340, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewDidEndDecelerating(_:)", - "key.namelength" : 56, - "key.nameoffset" : 13191, - "key.offset" : 13186, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UIScrollViewDelegate(im)scrollViewDidEndDecelerating:" - } - ], - "key.parsed_declaration" : "func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)", - "key.parsed_scope.end" : 349, - "key.parsed_scope.start" : 340, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (UIScrollView) -> ()", - "key.typeusr" : "$syySo12UIScrollViewCcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC06scrollD18DidEndDeceleratingyySo08UIScrollD0CF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func scrollViewShouldScrollToTop(_ scrollView: UIScrollView<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 151, - "key.bodyoffset" : 13737, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> scrollViewShouldScrollToTop<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 230, - "key.line" : 351, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewShouldScrollToTop(_:)", - "key.namelength" : 55, - "key.nameoffset" : 13664, - "key.offset" : 13659, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UIScrollViewDelegate(im)scrollViewShouldScrollToTop:" - } - ], - "key.parsed_declaration" : "func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool", - "key.parsed_scope.end" : 357, - "key.parsed_scope.start" : 351, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (UIScrollView) -> Bool", - "key.typeusr" : "$sySbSo12UIScrollViewCcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC06scrollD17ShouldScrollToTopySbSo08UIScrollD0CF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func scrollViewDidScrollToTop(_ scrollView: UIScrollView<\/Type>)<\/Declaration>", - "key.bodylength" : 76, - "key.bodyoffset" : 13974, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> scrollViewDidScrollToTop<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 144, - "key.line" : 359, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewDidScrollToTop(_:)", - "key.namelength" : 52, - "key.nameoffset" : 13912, - "key.offset" : 13907, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UIScrollViewDelegate(im)scrollViewDidScrollToTop:" - } - ], - "key.parsed_declaration" : "func scrollViewDidScrollToTop(_ scrollView: UIScrollView)", - "key.parsed_scope.end" : 362, - "key.parsed_scope.start" : 359, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (UIScrollView) -> ()", - "key.typeusr" : "$syySo12UIScrollViewCcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC06scrollD14DidScrollToTopyySo08UIScrollD0CF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var lastPosition: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 14069 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastPosition<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 364, - "key.modulename" : "ListableUI", - "key.name" : "lastPosition", - "key.namelength" : 12, - "key.nameoffset" : 14081, - "key.offset" : 14077, - "key.parsed_declaration" : "private var lastPosition : CGFloat = 0.0", - "key.parsed_scope.end" : 364, - "key.parsed_scope.start" : 364, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC12lastPosition33_F1C23E5D52219C5540E9793E7A7E0D46LL14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func scrollViewDidScroll(_ scrollView: UIScrollView<\/Type>)<\/Declaration>", - "key.bodylength" : 992, - "key.bodyoffset" : 14189, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> scrollViewDidScroll<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1055, - "key.line" : 366, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewDidScroll(_:)", - "key.namelength" : 47, - "key.nameoffset" : 14132, - "key.offset" : 14127, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UIScrollViewDelegate(im)scrollViewDidScroll:" - } - ], - "key.parsed_declaration" : "func scrollViewDidScroll(_ scrollView: UIScrollView)", - "key.parsed_scope.end" : 392, - "key.parsed_scope.start" : 366, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let scrollingDown: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> scrollingDown<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 66, - "key.line" : 378, - "key.modulename" : "ListableUI", - "key.name" : "scrollingDown", - "key.namelength" : 13, - "key.nameoffset" : 14616, - "key.offset" : 14612, - "key.parsed_declaration" : "let scrollingDown = self.lastPosition < scrollView.contentOffset.y", - "key.parsed_scope.end" : 378, - "key.parsed_scope.start" : 378, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC06scrollD9DidScrollyySo08UIScrollD0CF13scrollingDownL_Sbvp" - } - ], - "key.typename" : "(ListView.Delegate) -> (UIScrollView) -> ()", - "key.typeusr" : "$syySo12UIScrollViewCcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC06scrollD9DidScrollyySo08UIScrollD0CF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func scrollViewWillEndDragging(_ scrollView: UIScrollView<\/Type>, withVelocity velocity: CGPoint<\/Type>, targetContentOffset: UnsafeMutablePointer<\/Type><CGPoint<\/Type>>)<\/Declaration>", - "key.bodylength" : 637, - "key.bodyoffset" : 15390, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> scrollViewWillEndDragging<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, withVelocity<\/decl.var.parameter.argument_label> velocity<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, targetContentOffset<\/decl.var.parameter.argument_label>: UnsafeMutablePointer<\/ref.struct><CGPoint<\/ref.struct>><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 828, - "key.line" : 394, - "key.modulename" : "ListableUI", - "key.name" : "scrollViewWillEndDragging(_:withVelocity:targetContentOffset:)", - "key.namelength" : 183, - "key.nameoffset" : 15205, - "key.offset" : 15200, - "key.overrides" : [ - { - "key.usr" : "c:objc(pl)UIScrollViewDelegate(im)scrollViewWillEndDragging:withVelocity:targetContentOffset:" - } - ], - "key.parsed_declaration" : "func scrollViewWillEndDragging(\n _ scrollView: UIScrollView,\n withVelocity velocity: CGPoint,\n targetContentOffset: UnsafeMutablePointer\n)", - "key.parsed_scope.end" : 412, - "key.parsed_scope.start" : 394, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Delegate) -> (UIScrollView, CGPoint, UnsafeMutablePointer) -> ()", - "key.typeusr" : "$s_12withVelocity19targetContentOffsetySo12UIScrollViewC_So7CGPointVSpyAFGtcD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC06scrollD15WillEndDragging_12withVelocity19targetContentOffsetySo08UIScrollD0C_So7CGPointVSpyALGtF" - } - ], - "key.typename" : "ListView.Delegate.Type", - "key.typeusr" : "$s10ListableUI8ListViewC8DelegateCmD", - "key.usr" : "s:10ListableUI8ListViewC8DelegateC" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2101, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 1947, - "key.bodyoffset" : 152, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1968, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 142, - "key.offset" : 132, - "key.parsed_declaration" : "extension ListView", - "key.parsed_scope.end" : 61, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "final class LayoutManager<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 157 - } - ], - "key.bodylength" : 1909, - "key.bodyoffset" : 188, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> LayoutManager<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1935, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "LayoutManager", - "key.namelength" : 13, - "key.nameoffset" : 169, - "key.offset" : 163, - "key.parsed_declaration" : "final class LayoutManager", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "unowned let collectionView: UICollectionView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 7, - "key.offset" : 197 - } - ], - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift", - "key.fully_annotated_decl" : "unowned<\/syntaxtype.keyword> let<\/syntaxtype.keyword> collectionView<\/decl.name>: UICollectionView<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "collectionView", - "key.namelength" : 14, - "key.nameoffset" : 209, - "key.offset" : 205, - "key.parsed_declaration" : "unowned let collectionView : UICollectionView", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "UICollectionView", - "key.typeusr" : "$sSo16UICollectionViewCD", - "key.usr" : "s:10ListableUI8ListViewC13LayoutManagerC010collectionD0So012UICollectionD0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var collectionViewLayout: CollectionViewLayout<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 252 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> collectionViewLayout<\/decl.name>: CollectionViewLayout<\/ref.class><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 47, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "collectionViewLayout", - "key.namelength" : 20, - "key.nameoffset" : 269, - "key.offset" : 265, - "key.parsed_declaration" : "private(set) var collectionViewLayout : CollectionViewLayout", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CollectionViewLayout", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutCD", - "key.usr" : "s:10ListableUI8ListViewC13LayoutManagerC010collectiondE0AA010CollectiondE0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var layout: AnyListLayout<\/Type> { get }<\/Declaration>", - "key.bodylength" : 49, - "key.bodyoffset" : 350, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layout<\/decl.name>: AnyListLayout<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 78, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "layout", - "key.namelength" : 6, - "key.nameoffset" : 326, - "key.offset" : 322, - "key.parsed_declaration" : "var layout : AnyListLayout", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "any AnyListLayout", - "key.typeusr" : "$s10ListableUI13AnyListLayout_pD", - "key.usr" : "s:10ListableUI8ListViewC13LayoutManagerC6layoutAA03AnycE0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(layout collectionViewLayout: CollectionViewLayout<\/Type>, collectionView: UICollectionView<\/Type>)<\/Declaration>", - "key.bodylength" : 119, - "key.bodyoffset" : 511, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layout<\/decl.var.parameter.argument_label> collectionViewLayout<\/decl.var.parameter.name>: CollectionViewLayout<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, collectionView<\/decl.var.parameter.argument_label>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 221, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "init(layout:collectionView:)", - "key.namelength" : 91, - "key.nameoffset" : 410, - "key.offset" : 410, - "key.parsed_declaration" : "init(layout collectionViewLayout : CollectionViewLayout, collectionView : UICollectionView)", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.LayoutManager.Type) -> (CollectionViewLayout, UICollectionView) -> ListView.LayoutManager", - "key.typeusr" : "$s6layout14collectionView10ListableUI04ListC0C13LayoutManagerCAC010CollectioncG0C_So012UICollectionC0CtcD", - "key.usr" : "s:10ListableUI8ListViewC13LayoutManagerC6layout010collectionD0AeA010CollectiondE0C_So012UICollectionD0Ctcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func stateForItem(at indexPath: IndexPath<\/Type>) -> AnyPresentationItemState<\/Type><\/Declaration>", - "key.bodylength" : 88, - "key.bodyoffset" : 713, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> stateForItem<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyPresentationItemState<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 161, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "stateForItem(at:)", - "key.namelength" : 37, - "key.nameoffset" : 646, - "key.offset" : 641, - "key.parsed_declaration" : "func stateForItem(at indexPath: IndexPath) -> AnyPresentationItemState", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.LayoutManager) -> (IndexPath) -> any AnyPresentationItemState", - "key.typeusr" : "$s2at10ListableUI24AnyPresentationItemState_p10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI8ListViewC13LayoutManagerC12stateForItem2atAA015AnyPresentationI5State_p10Foundation9IndexPathV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func set(layout: LayoutDescription<\/Type>, animated: Bool<\/Type>, completion: @escaping () -> ())<\/Declaration>", - "key.bodylength" : 1183, - "key.bodyoffset" : 908, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(layout<\/decl.var.parameter.argument_label>: LayoutDescription<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1280, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "set(layout:animated:completion:)", - "key.namelength" : 81, - "key.nameoffset" : 817, - "key.offset" : 812, - "key.parsed_declaration" : "func set(layout : LayoutDescription, animated : Bool, completion : @escaping () -> ())", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 34, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.LayoutManager) -> (LayoutDescription, Bool, @escaping () -> ()) -> ()", - "key.typeusr" : "$s6layout8animated10completiony10ListableUI17LayoutDescriptionV_SbyyctcD", - "key.usr" : "s:10ListableUI8ListViewC13LayoutManagerC3set6layout8animated10completionyAA0E11DescriptionV_SbyyctF" - } - ], - "key.typename" : "ListView.LayoutManager.Type", - "key.typeusr" : "$s10ListableUI8ListViewC13LayoutManagerCmD", - "key.usr" : "s:10ListableUI8ListViewC13LayoutManagerC" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Storage.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 851, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "public final class ListView : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 110 - } - ], - "key.bodylength" : 710, - "key.bodyoffset" : 139, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 731, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 129, - "key.offset" : 119, - "key.parsed_declaration" : "internal extension ListView", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "final class Storage<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 144 - } - ], - "key.bodylength" : 678, - "key.bodyoffset" : 169, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Storage.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Storage<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 698, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "Storage", - "key.namelength" : 7, - "key.nameoffset" : 156, - "key.offset" : 150, - "key.parsed_declaration" : "final class Storage", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var allContent: Content<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Storage.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> allContent<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "allContent", - "key.namelength" : 10, - "key.nameoffset" : 182, - "key.offset" : 178, - "key.parsed_declaration" : "var allContent : Content = Content()", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Content", - "key.typeusr" : "$s10ListableUI7ContentVD", - "key.usr" : "s:10ListableUI8ListViewC7StorageC10allContentAA0G0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let presentationState: PresentationState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Storage.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationState<\/decl.name>: PresentationState<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 63, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "presentationState", - "key.namelength" : 17, - "key.nameoffset" : 236, - "key.offset" : 232, - "key.parsed_declaration" : "let presentationState : PresentationState = PresentationState()", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState", - "key.typeusr" : "$s10ListableUI17PresentationStateCD", - "key.usr" : "s:10ListableUI8ListViewC7StorageC17presentationStateAA012PresentationG0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func moveItem(from: IndexPath<\/Type>, to: IndexPath<\/Type>)<\/Declaration>", - "key.bodylength" : 130, - "key.bodyoffset" : 370, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Storage.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> moveItem<\/decl.name>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 188, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "moveItem(from:to:)", - "key.namelength" : 42, - "key.nameoffset" : 318, - "key.offset" : 313, - "key.parsed_declaration" : "func moveItem(from : IndexPath, to : IndexPath)", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Storage) -> (IndexPath, IndexPath) -> ()", - "key.typeusr" : "$s4from2toy10Foundation9IndexPathV_AEtcD", - "key.usr" : "s:10ListableUI8ListViewC7StorageC8moveItem4from2toy10Foundation9IndexPathV_AKtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func remove(item itemToRemove: AnyPresentationItemState<\/Type>) -> IndexPath<\/Type>?<\/Declaration>", - "key.bodylength" : 241, - "key.bodyoffset" : 600, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.Storage.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> remove<\/decl.name>(item<\/decl.var.parameter.argument_label> itemToRemove<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 323, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "remove(item:)", - "key.namelength" : 52, - "key.nameoffset" : 524, - "key.offset" : 519, - "key.parsed_declaration" : "func remove(item itemToRemove : AnyPresentationItemState) -> IndexPath?", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Storage) -> (any AnyPresentationItemState) -> IndexPath?", - "key.typeusr" : "$s4item10Foundation9IndexPathVSg10ListableUI24AnyPresentationItemState_p_tcD", - "key.usr" : "s:10ListableUI8ListViewC7StorageC6remove4item10Foundation9IndexPathVSgAA24AnyPresentationItemState_p_tF" - } - ], - "key.typename" : "ListView.Storage.Type", - "key.typeusr" : "$s10ListableUI8ListViewC7StorageCmD", - "key.usr" : "s:10ListableUI8ListViewC7StorageC" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 6104, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 4217, - "key.bodyoffset" : 141, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 4238, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 131, - "key.offset" : 121, - "key.parsed_declaration" : "extension ListView", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "final class VisibleContent<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 146 - } - ], - "key.bodylength" : 4178, - "key.bodyoffset" : 178, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> VisibleContent<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 4205, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "VisibleContent", - "key.namelength" : 14, - "key.nameoffset" : 158, - "key.offset" : 152, - "key.parsed_declaration" : "final class VisibleContent", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var headerFooters: Set<\/Type><HeaderFooter<\/Type>> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 187 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> headerFooters<\/decl.name>: Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 45, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "headerFooters", - "key.namelength" : 13, - "key.nameoffset" : 204, - "key.offset" : 200, - "key.parsed_declaration" : "private(set) var headerFooters : Set = Set()", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC12HeaderFooterVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC13headerFootersShyAE12HeaderFooterVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var items: Set<\/Type><Item<\/Type>> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 254 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> items<\/decl.name>: Set<\/ref.struct><Item<\/ref.struct>><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 271, - "key.offset" : 267, - "key.parsed_declaration" : "private(set) var items : Set = Set()", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC4ItemVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC5itemsShyAE4ItemVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func update(with view: ListView<\/Type>)<\/Declaration>", - "key.bodylength" : 2095, - "key.bodyoffset" : 357, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: ListView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2139, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "update(with:)", - "key.namelength" : 28, - "key.nameoffset" : 319, - "key.offset" : 314, - "key.parsed_declaration" : "func update(with view : ListView)", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let newItems: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.Item<\/Type>><\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newItems<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.Item<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 73, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "newItems", - "key.namelength" : 8, - "key.nameoffset" : 375, - "key.offset" : 370, - "key.parsed_declaration" : "let (newItems, newHeaderFooters) = self.calculateVisibleContent(in: view)", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC4ItemVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC6update4withyAC_tF8newItemsL_ShyAE4ItemVGvp" - }, - { - "key.annotated_decl" : "let newHeaderFooters: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.HeaderFooter<\/Type>><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newHeaderFooters<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 73, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "newHeaderFooters", - "key.namelength" : 16, - "key.nameoffset" : 385, - "key.offset" : 370, - "key.parsed_declaration" : "let (newItems, newHeaderFooters) = self.calculateVisibleContent(in: view)", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC12HeaderFooterVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC6update4withyAC_tF16newHeaderFootersL_ShyAE0J6FooterVGvp" - }, - { - "key.annotated_decl" : "let removedItems: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.Item<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removedItems<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.Item<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 51, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "removedItems", - "key.namelength" : 12, - "key.nameoffset" : 564, - "key.offset" : 560, - "key.parsed_declaration" : "let removedItems = self.items.subtracting(newItems)", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC4ItemVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC6update4withyAC_tF12removedItemsL_ShyAE4ItemVGvp" - }, - { - "key.annotated_decl" : "let addedItems: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.Item<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> addedItems<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.Item<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 49, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "addedItems", - "key.namelength" : 10, - "key.nameoffset" : 628, - "key.offset" : 624, - "key.parsed_declaration" : "let addedItems = newItems.subtracting(self.items)", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC4ItemVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC6update4withyAC_tF10addedItemsL_ShyAE4ItemVGvp" - }, - { - "key.annotated_decl" : "let removedHeaderFooters: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.HeaderFooter<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removedHeaderFooters<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 75, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "removedHeaderFooters", - "key.namelength" : 20, - "key.nameoffset" : 703, - "key.offset" : 699, - "key.parsed_declaration" : "let removedHeaderFooters = self.headerFooters.subtracting(newHeaderFooters)", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC12HeaderFooterVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC6update4withyAC_tF20removedHeaderFootersL_ShyAE0J6FooterVGvp" - }, - { - "key.annotated_decl" : "let addedHeaderFooters: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.HeaderFooter<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> addedHeaderFooters<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 73, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "addedHeaderFooters", - "key.namelength" : 18, - "key.nameoffset" : 791, - "key.offset" : 787, - "key.parsed_declaration" : "let addedHeaderFooters = newHeaderFooters.subtracting(self.headerFooters)", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC12HeaderFooterVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC6update4withyAC_tF18addedHeaderFootersL_ShyAE0J6FooterVGvp" - }, - { - "key.annotated_decl" : "let callStateReader: Bool<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> callStateReader<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 82, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "callStateReader", - "key.namelength" : 15, - "key.nameoffset" : 1826, - "key.offset" : 1822, - "key.parsed_declaration" : "let callStateReader = removedItems.isEmpty == false || addedItems.isEmpty == false", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC6update4withyAC_tF15callStateReaderL_Sbvp" - } - ], - "key.typename" : "(ListView.VisibleContent) -> (ListView) -> ()", - "key.typeusr" : "$s4withy10ListableUI8ListViewC_tcD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC6update4withyAC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var info: Info<\/Type> { get }<\/Declaration>", - "key.bodylength" : 361, - "key.bodyoffset" : 2488, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> info<\/decl.name>: Info<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 379, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "info", - "key.namelength" : 4, - "key.nameoffset" : 2475, - "key.offset" : 2471, - "key.parsed_declaration" : "var info : Info", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 69, - "key.reusingastcontext" : false, - "key.typename" : "ListView.VisibleContent.Info", - "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentC4InfoVD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4infoAE4InfoVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func calculateVisibleContent(in view: ListView<\/Type>) -> (Set<\/Type><Item<\/Type>>, Set<\/Type><HeaderFooter<\/Type>>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 2868 - } - ], - "key.bodylength" : 1382, - "key.bodyoffset" : 2968, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> calculateVisibleContent<\/decl.name>(in<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: ListView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> (Set<\/ref.struct><Item<\/ref.struct>><\/tuple.element.type><\/tuple.element>, Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1475, - "key.line" : 80, - "key.modulename" : "ListableUI", - "key.name" : "calculateVisibleContent(in:)", - "key.namelength" : 43, - "key.nameoffset" : 2881, - "key.offset" : 2876, - "key.parsed_declaration" : "private func calculateVisibleContent(in view : ListView) -> (Set, Set)", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 80, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let visibleFrame: CGRect<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 45, - "key.line" : 82, - "key.modulename" : "ListableUI", - "key.name" : "visibleFrame", - "key.namelength" : 12, - "key.nameoffset" : 2985, - "key.offset" : 2981, - "key.parsed_declaration" : "let visibleFrame = view.collectionView.bounds", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 82, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC09calculateeF033_DFFC5B147C8F02DCA4E6BFCAAF0CFBC1LL2inShyAE4ItemVG_ShyAE12HeaderFooterVGtAC_tF12visibleFrameL_So6CGRectVvp" - }, - { - "key.annotated_decl" : "let visibleAttributes: [UICollectionViewLayoutAttributes<\/Type>]<\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleAttributes<\/decl.name>: [UICollectionViewLayoutAttributes<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 108, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "visibleAttributes", - "key.namelength" : 17, - "key.nameoffset" : 3056, - "key.offset" : 3052, - "key.parsed_declaration" : "let visibleAttributes = view.collectionViewLayout.visibleLayoutAttributesForElements(in: visibleFrame) ?? []", - "key.parsed_scope.end" : 84, - "key.parsed_scope.start" : 84, - "key.reusingastcontext" : false, - "key.typename" : "[UICollectionViewLayoutAttributes]", - "key.typeusr" : "$sSaySo32UICollectionViewLayoutAttributesCGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC09calculateeF033_DFFC5B147C8F02DCA4E6BFCAAF0CFBC1LL2inShyAE4ItemVG_ShyAE12HeaderFooterVGtAC_tF17visibleAttributesL_SaySo012UICollectiond6LayoutU0CGvp" - }, - { - "key.annotated_decl" : "var items: Set<\/Type><Item<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: Set<\/ref.struct><Item<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 26, - "key.line" : 86, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 3190, - "key.offset" : 3186, - "key.parsed_declaration" : "var items : Set = []", - "key.parsed_scope.end" : 86, - "key.parsed_scope.start" : 86, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC4ItemVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC09calculateeF033_DFFC5B147C8F02DCA4E6BFCAAF0CFBC1LL2inShyAE4ItemVG_ShyAE12HeaderFooterVGtAC_tF5itemsL_AKvp" - }, - { - "key.annotated_decl" : "var headerFooters: Set<\/Type><HeaderFooter<\/Type>><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> headerFooters<\/decl.name>: Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 42, - "key.line" : 87, - "key.modulename" : "ListableUI", - "key.name" : "headerFooters", - "key.namelength" : 13, - "key.nameoffset" : 3229, - "key.offset" : 3225, - "key.parsed_declaration" : "var headerFooters : Set = []", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 87, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC12HeaderFooterVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC09calculateeF033_DFFC5B147C8F02DCA4E6BFCAAF0CFBC1LL2inShyAE4ItemVG_ShyAE12HeaderFooterVGtAC_tF13headerFootersL_ANvp" - } - ], - "key.typename" : "(ListView.VisibleContent) -> (ListView) -> (Set, Set)", - "key.typeusr" : "$s2inShy10ListableUI8ListViewC14VisibleContentC4ItemVG_ShyAF12HeaderFooterVGtAD_tcD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC09calculateeF033_DFFC5B147C8F02DCA4E6BFCAAF0CFBC1LL2inShyAE4ItemVG_ShyAE12HeaderFooterVGtAC_tF" - } - ], - "key.typename" : "ListView.VisibleContent.Type", - "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentCmD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - }, - { - "key.annotated_decl" : "final class VisibleContent<\/Declaration>", - "key.bodylength" : 1706, - "key.bodyoffset" : 4396, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> VisibleContent<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1742, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "ListView.VisibleContent", - "key.namelength" : 23, - "key.nameoffset" : 4371, - "key.offset" : 4361, - "key.parsed_declaration" : "extension ListView.VisibleContent", - "key.parsed_scope.end" : 176, - "key.parsed_scope.start" : 117, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "struct HeaderFooter : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 568, - "key.bodyoffset" : 4437, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 4423 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> HeaderFooter<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 605, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooter", - "key.namelength" : 12, - "key.nameoffset" : 4408, - "key.offset" : 4401, - "key.parsed_declaration" : "struct HeaderFooter : Hashable", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let kind: SupplementaryKind<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "kind", - "key.namelength" : 4, - "key.nameoffset" : 4450, - "key.offset" : 4446, - "key.parsed_declaration" : "let kind : SupplementaryKind", - "key.parsed_scope.end" : 121, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.typename" : "SupplementaryKind", - "key.typeusr" : "$s10ListableUI17SupplementaryKindOD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC12HeaderFooterV4kindAA17SupplementaryKindOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let indexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 122, - "key.modulename" : "ListableUI", - "key.name" : "indexPath", - "key.namelength" : 9, - "key.nameoffset" : 4487, - "key.offset" : 4483, - "key.parsed_declaration" : "let indexPath : IndexPath", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 122, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC12HeaderFooterV9indexPath10Foundation05IndexJ0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let headerFooter: PresentationState<\/Type>.HeaderFooterViewStatePair<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> headerFooter<\/decl.name>: PresentationState<\/ref.class>.HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 62, - "key.line" : 124, - "key.modulename" : "ListableUI", - "key.name" : "headerFooter", - "key.namelength" : 12, - "key.nameoffset" : 4530, - "key.offset" : 4526, - "key.parsed_declaration" : "let headerFooter : PresentationState.HeaderFooterViewStatePair", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 124, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState.HeaderFooterViewStatePair", - "key.typeusr" : "$s10ListableUI17PresentationStateC016HeaderFooterViewD4PairCD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC12HeaderFooterV06headerH0AA17PresentationStateC0ghdK4PairCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func == (lhs: `Self`, rhs: `Self`) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 117, - "key.bodyoffset" : 4663, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns a Boolean value indicating whether two values are equal.\n\nEquality is the inverse of inequality. For any values `a` and `b`,\n`a == b` implies that `a != b` is `false`.\n\n- Parameters:\n - lhs: A value to compare.\n - rhs: Another value to compare.", - "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "Equality is the inverse of inequality. For any values `a` and `b`, `a == b` implies that `a != b` is `false`." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "==(_:_:)<\/Name>s:SQ2eeoiySbx_xtFZ<\/USR>static func == (lhs: Self, rhs: Self) -> Bool<\/Declaration>Returns a Boolean value indicating whether two values are equal.<\/Para><\/Abstract>lhs<\/Name>in<\/Direction>A value to compare.<\/Para><\/Discussion><\/Parameter>rhs<\/Name>in<\/Direction>Another value to compare.<\/Para><\/Discussion><\/Parameter><\/Parameters>Equality is the inverse of inequality. For any values a<\/codeVoice> and b<\/codeVoice>, a == b<\/codeVoice> implies that a != b<\/codeVoice> is false<\/codeVoice>.<\/Para>This documentation comment was inherited from Equatable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "==(_:_:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A value to compare." - } - ], - "name" : "lhs" - }, - { - "discussion" : [ - { - "Para" : "Another value to compare." - } - ], - "name" : "rhs" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 175, - "key.line" : 126, - "key.modulename" : "ListableUI", - "key.name" : "==(_:_:)", - "key.namelength" : 27, - "key.nameoffset" : 4618, - "key.offset" : 4606, - "key.overrides" : [ - { - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.parsed_declaration" : "static func == (lhs : Self, rhs : Self) -> Bool", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 126, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.VisibleContent.HeaderFooter.Type) -> (ListView.VisibleContent.HeaderFooter, ListView.VisibleContent.HeaderFooter) -> Bool", - "key.typeusr" : "$sySb10ListableUI8ListViewC14VisibleContentC12HeaderFooterV_AGtcD", - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func hash(into hasher: inout Hasher<\/Type>)<\/Declaration>", - "key.bodylength" : 154, - "key.bodyoffset" : 4845, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Hashes the essential components of this value by feeding them into the\ngiven hasher.\n\nImplement this method to conform to the `Hashable` protocol. The\ncomponents used for hashing must be the same as the components compared\nin your type's `==` operator implementation. Call `hasher.combine(_:)`\nwith each of these components.\n\n- Important: In your implementation of `hash(into:)`,\n don't call `finalize()` on the `hasher` instance provided,\n or replace it with a different instance.\n Doing so may become a compile-time error in the future.\n\n- Parameter hasher: The hasher to use when combining the components\n of this instance.", - "key.doc.declaration" : "func hash(into hasher: inout Hasher)", - "key.doc.discussion" : [ - { - "Para" : "Implement this method to conform to the `Hashable` protocol. The components used for hashing must be the same as the components compared in your type’s `==` operator implementation. Call `hasher.combine(_:)` with each of these components." - }, - { - "Important" : "" - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "hash(into:)<\/Name>s:SH4hash4intoys6HasherVz_tF<\/USR>func hash(into hasher: inout Hasher)<\/Declaration>Hashes the essential components of this value by feeding them into the given hasher.<\/Para><\/Abstract>hasher<\/Name>in<\/Direction>The hasher to use when combining the components of this instance.<\/Para><\/Discussion><\/Parameter><\/Parameters>Implement this method to conform to the Hashable<\/codeVoice> protocol. The components used for hashing must be the same as the components compared in your type’s ==<\/codeVoice> operator implementation. Call hasher.combine(_:)<\/codeVoice> with each of these components.<\/Para>In your implementation of hash(into:)<\/codeVoice>, don’t call finalize()<\/codeVoice> on the hasher<\/codeVoice> instance provided, or replace it with a different instance. Doing so may become a compile-time error in the future.<\/Para><\/Important>This documentation comment was inherited from Hashable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "hash(into:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The hasher to use when combining the components of this instance." - } - ], - "name" : "hasher" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 201, - "key.line" : 131, - "key.modulename" : "ListableUI", - "key.name" : "hash(into:)", - "key.namelength" : 31, - "key.nameoffset" : 4804, - "key.offset" : 4799, - "key.overrides" : [ - { - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - } - ], - "key.parsed_declaration" : "func hash(into hasher: inout Hasher)", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.VisibleContent.HeaderFooter) -> (inout Hasher) -> ()", - "key.typeusr" : "$s4intoys6HasherVz_tcD", - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - } - ], - "key.typename" : "ListView.VisibleContent.HeaderFooter.Type", - "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentC12HeaderFooterVmD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC12HeaderFooterV" - }, - { - "key.annotated_decl" : "struct Item : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 409, - "key.bodyoffset" : 5044, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 5030 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Item<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 438, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 5023, - "key.offset" : 5016, - "key.parsed_declaration" : "struct Item : Hashable", - "key.parsed_scope.end" : 154, - "key.parsed_scope.start" : 139, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let indexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 141, - "key.modulename" : "ListableUI", - "key.name" : "indexPath", - "key.namelength" : 9, - "key.nameoffset" : 5057, - "key.offset" : 5053, - "key.parsed_declaration" : "let indexPath : IndexPath", - "key.parsed_scope.end" : 141, - "key.parsed_scope.start" : 141, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4ItemV9indexPath10Foundation05IndexI0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 5091, - "key.offset" : 5087, - "key.parsed_declaration" : "let item : AnyPresentationItemState", - "key.parsed_scope.end" : 142, - "key.parsed_scope.start" : 142, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4ItemV4itemAA015AnyPresentationG5State_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func == (lhs: `Self`, rhs: `Self`) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 77, - "key.bodyoffset" : 5197, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns a Boolean value indicating whether two values are equal.\n\nEquality is the inverse of inequality. For any values `a` and `b`,\n`a == b` implies that `a != b` is `false`.\n\n- Parameters:\n - lhs: A value to compare.\n - rhs: Another value to compare.", - "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "Equality is the inverse of inequality. For any values `a` and `b`, `a == b` implies that `a != b` is `false`." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "==(_:_:)<\/Name>s:SQ2eeoiySbx_xtFZ<\/USR>static func == (lhs: Self, rhs: Self) -> Bool<\/Declaration>Returns a Boolean value indicating whether two values are equal.<\/Para><\/Abstract>lhs<\/Name>in<\/Direction>A value to compare.<\/Para><\/Discussion><\/Parameter>rhs<\/Name>in<\/Direction>Another value to compare.<\/Para><\/Discussion><\/Parameter><\/Parameters>Equality is the inverse of inequality. For any values a<\/codeVoice> and b<\/codeVoice>, a == b<\/codeVoice> implies that a != b<\/codeVoice> is false<\/codeVoice>.<\/Para>This documentation comment was inherited from Equatable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "==(_:_:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A value to compare." - } - ], - "name" : "lhs" - }, - { - "discussion" : [ - { - "Para" : "Another value to compare." - } - ], - "name" : "rhs" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 135, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "==(_:_:)", - "key.namelength" : 27, - "key.nameoffset" : 5152, - "key.offset" : 5140, - "key.overrides" : [ - { - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - } - ], - "key.parsed_declaration" : "static func == (lhs : Self, rhs : Self) -> Bool", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.VisibleContent.Item.Type) -> (ListView.VisibleContent.Item, ListView.VisibleContent.Item) -> Bool", - "key.typeusr" : "$sySb10ListableUI8ListViewC14VisibleContentC4ItemV_AGtcD", - "key.usr" : "s:SQ2eeoiySbx_xtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func hash(into hasher: inout Hasher<\/Type>)<\/Declaration>", - "key.bodylength" : 108, - "key.bodyoffset" : 5339, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Hashes the essential components of this value by feeding them into the\ngiven hasher.\n\nImplement this method to conform to the `Hashable` protocol. The\ncomponents used for hashing must be the same as the components compared\nin your type's `==` operator implementation. Call `hasher.combine(_:)`\nwith each of these components.\n\n- Important: In your implementation of `hash(into:)`,\n don't call `finalize()` on the `hasher` instance provided,\n or replace it with a different instance.\n Doing so may become a compile-time error in the future.\n\n- Parameter hasher: The hasher to use when combining the components\n of this instance.", - "key.doc.declaration" : "func hash(into hasher: inout Hasher)", - "key.doc.discussion" : [ - { - "Para" : "Implement this method to conform to the `Hashable` protocol. The components used for hashing must be the same as the components compared in your type’s `==` operator implementation. Call `hasher.combine(_:)` with each of these components." - }, - { - "Important" : "" - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "hash(into:)<\/Name>s:SH4hash4intoys6HasherVz_tF<\/USR>func hash(into hasher: inout Hasher)<\/Declaration>Hashes the essential components of this value by feeding them into the given hasher.<\/Para><\/Abstract>hasher<\/Name>in<\/Direction>The hasher to use when combining the components of this instance.<\/Para><\/Discussion><\/Parameter><\/Parameters>Implement this method to conform to the Hashable<\/codeVoice> protocol. The components used for hashing must be the same as the components compared in your type’s ==<\/codeVoice> operator implementation. Call hasher.combine(_:)<\/codeVoice> with each of these components.<\/Para>In your implementation of hash(into:)<\/codeVoice>, don’t call finalize()<\/codeVoice> on the hasher<\/codeVoice> instance provided, or replace it with a different instance. Doing so may become a compile-time error in the future.<\/Para><\/Important>This documentation comment was inherited from Hashable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "hash(into:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The hasher to use when combining the components of this instance." - } - ], - "name" : "hasher" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 155, - "key.line" : 149, - "key.modulename" : "ListableUI", - "key.name" : "hash(into:)", - "key.namelength" : 31, - "key.nameoffset" : 5298, - "key.offset" : 5293, - "key.overrides" : [ - { - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - } - ], - "key.parsed_declaration" : "func hash(into hasher: inout Hasher)", - "key.parsed_scope.end" : 153, - "key.parsed_scope.start" : 149, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.VisibleContent.Item) -> (inout Hasher) -> ()", - "key.typeusr" : "$s4intoys6HasherVz_tcD", - "key.usr" : "s:SH4hash4intoys6HasherVz_tF" - } - ], - "key.typename" : "ListView.VisibleContent.Item.Type", - "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentC4ItemVmD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4ItemV" - }, - { - "key.annotated_decl" : "struct Info : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 369, - "key.bodyoffset" : 5731, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Note: Because this type exposes index paths and the internal `SupplementaryKind`,\nit is intended for internal usage or unit testing purposes only.\nPublic consumers and APIs should utilize `ListScrollPositionInfo`.", - "key.doc.column" : 12, - "key.doc.comment" : "Note: Because this type exposes index paths and the internal `SupplementaryKind`,\nit is intended for internal usage or unit testing purposes only.\nPublic consumers and APIs should utilize `ListScrollPositionInfo`.", - "key.doc.declaration" : "struct Info : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.doc.full_as_xml" : "Info<\/Name>s:10ListableUI8ListViewC14VisibleContentC4InfoV<\/USR>struct Info : Equatable<\/Declaration>Note: Because this type exposes index paths and the internal SupplementaryKind<\/codeVoice>, it is intended for internal usage or unit testing purposes only. Public consumers and APIs should utilize ListScrollPositionInfo<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 159, - "key.doc.name" : "Info", - "key.doc.type" : "Class", - "key.doclength" : 234, - "key.docoffset" : 5464, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 5716 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Info<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 399, - "key.line" : 159, - "key.modulename" : "ListableUI", - "key.name" : "Info", - "key.namelength" : 4, - "key.nameoffset" : 5709, - "key.offset" : 5702, - "key.parsed_declaration" : "struct Info : Equatable", - "key.parsed_scope.end" : 175, - "key.parsed_scope.start" : 159, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var headerFooters: Set<\/Type><HeaderFooter<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> headerFooters<\/decl.name>: Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 161, - "key.modulename" : "ListableUI", - "key.name" : "headerFooters", - "key.namelength" : 13, - "key.nameoffset" : 5744, - "key.offset" : 5740, - "key.parsed_declaration" : "var headerFooters : Set", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 161, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC4InfoV12HeaderFooterVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4InfoV13headerFootersShyAG12HeaderFooterVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var items: Set<\/Type><Item<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: Set<\/ref.struct><Item<\/ref.struct>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 162, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 5790, - "key.offset" : 5786, - "key.parsed_declaration" : "var items : Set", - "key.parsed_scope.end" : 162, - "key.parsed_scope.start" : 162, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI8ListViewC14VisibleContentC4InfoV4ItemVGD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4InfoV5itemsShyAG4ItemVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ListView<\/Type>.VisibleContent<\/Type>.Info<\/Type>.HeaderFooter : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 88, - "key.bodyoffset" : 5865, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 5847 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListView<\/ref.class>.VisibleContent<\/ref.class>.Info<\/ref.struct>.HeaderFooter<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 129, - "key.line" : 164, - "key.modulename" : "ListableUI", - "key.name" : "HeaderFooter", - "key.namelength" : 12, - "key.nameoffset" : 5832, - "key.offset" : 5825, - "key.parsed_declaration" : "struct HeaderFooter : Hashable", - "key.parsed_scope.end" : 168, - "key.parsed_scope.start" : 164, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var kind: SupplementaryKind<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 166, - "key.modulename" : "ListableUI", - "key.name" : "kind", - "key.namelength" : 4, - "key.nameoffset" : 5882, - "key.offset" : 5878, - "key.parsed_declaration" : "var kind : SupplementaryKind", - "key.parsed_scope.end" : 166, - "key.parsed_scope.start" : 166, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "SupplementaryKind", - "key.typeusr" : "$s10ListableUI17SupplementaryKindOD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4InfoV12HeaderFooterV4kindAA17SupplementaryKindOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var indexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 167, - "key.modulename" : "ListableUI", - "key.name" : "indexPath", - "key.namelength" : 9, - "key.nameoffset" : 5923, - "key.offset" : 5919, - "key.parsed_declaration" : "var indexPath : IndexPath", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 167, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4InfoV12HeaderFooterV9indexPath10Foundation05IndexK0Vvp" - } - ], - "key.typename" : "ListView.VisibleContent.Info.HeaderFooter.Type", - "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentC4InfoV12HeaderFooterVmD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4InfoV12HeaderFooterV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct ListView<\/Type>.VisibleContent<\/Type>.Info<\/Type>.Item : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 90, - "key.bodyoffset" : 6004, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 5986 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListView<\/ref.class>.VisibleContent<\/ref.class>.Info<\/ref.struct>.Item<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 123, - "key.line" : 170, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 5979, - "key.offset" : 5972, - "key.parsed_declaration" : "struct Item : Hashable", - "key.parsed_scope.end" : 174, - "key.parsed_scope.start" : 170, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var identifier: AnyIdentifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 172, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 6021, - "key.offset" : 6017, - "key.parsed_declaration" : "var identifier : AnyIdentifier", - "key.parsed_scope.end" : 172, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "AnyIdentifier", - "key.typeusr" : "$s10ListableUI13AnyIdentifierCD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4InfoV4ItemV10identifierAA13AnyIdentifierCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var indexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 173, - "key.modulename" : "ListableUI", - "key.name" : "indexPath", - "key.namelength" : 9, - "key.nameoffset" : 6064, - "key.offset" : 6060, - "key.parsed_declaration" : "var indexPath : IndexPath", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 173, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4InfoV4ItemV9indexPath10Foundation05IndexJ0Vvp" - } - ], - "key.typename" : "ListView.VisibleContent.Info.Item.Type", - "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentC4InfoV4ItemVmD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4InfoV4ItemV" - } - ], - "key.typename" : "ListView.VisibleContent.Info.Type", - "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentC4InfoVmD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC4InfoV" - } - ], - "key.typename" : "ListView.VisibleContent.Type", - "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentCmD", - "key.usr" : "s:10ListableUI8ListViewC14VisibleContentC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 76515, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 132 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 125 - } - ], - "key.bodylength" : 64940, - "key.bodyoffset" : 163, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 155 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIView" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 64966, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 144, - "key.offset" : 138, - "key.parsed_declaration" : "public final class ListView : UIView", - "key.parsed_scope.end" : 1723, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 178 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public init(frame: CGRect<\/Type> = .zero, appearance: Appearance<\/Type> = Appearance())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 215 - } - ], - "key.bodylength" : 3990, - "key.bodyoffset" : 295, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type> = Appearance()<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 4064, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "init(frame:appearance:)", - "key.namelength" : 67, - "key.nameoffset" : 222, - "key.offset" : 222, - "key.parsed_declaration" : "public init(frame: CGRect = .zero, appearance : Appearance = Appearance())", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let initialLayout: CollectionViewLayout<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> initialLayout<\/decl.name>: CollectionViewLayout<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 206, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "initialLayout", - "key.namelength" : 13, - "key.nameoffset" : 885, - "key.offset" : 881, - "key.parsed_declaration" : "let initialLayout = CollectionViewLayout(\n delegate: self.delegate,\n layoutDescription: .table(),\n appearance: self.appearance,\n behavior: self.behavior\n)", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.typename" : "CollectionViewLayout", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutCD", - "key.usr" : "s:10ListableUI8ListViewC5frame10appearanceACSo6CGRectV_AA10AppearanceVtcfc13initialLayoutL_AA010CollectiondJ0Cvp" - }, - { - "key.annotated_decl" : "weak var `self`: ListView<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 2808 - } - ], - "key.column" : 65, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `self`<\/decl.name>: ListView<\/ref.class>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 4, - "key.line" : 95, - "key.modulename" : "ListableUI", - "key.name" : "self", - "key.namelength" : 4, - "key.nameoffset" : 2813, - "key.offset" : 2813, - "key.parsed_declaration" : "self.closeActiveSwipesGesture.shouldRecognize = { [weak self", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 95, - "key.reusingastcontext" : false, - "key.secondary_symbols" : [ - { - "key.annotated_decl" : "let `self`: ListView<\/Type><\/Declaration>", - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> `self`<\/decl.var.parameter.name>: ListView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>", - "key.is_synthesized" : true, - "key.kind" : "source.lang.swift.ref.var.local", - "key.length" : 4, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "self", - "key.offset" : 222, - "key.parent_loc" : 222, - "key.typename" : "ListView", - "key.typeusr" : "$s10ListableUI8ListViewCD", - "key.usr" : "s:10ListableUI8ListViewC5frame10appearanceACSo6CGRectV_AA10AppearanceVtcfc4selfL_ACvp" - } - ], - "key.typename" : "ListView?", - "key.typeusr" : "$s10ListableUI8ListViewCSgD", - "key.usr" : "s:10ListableUI8ListViewC5frame10appearanceACSo6CGRectV_AA10AppearanceVtcfc4selfL0_ACSgvp" - }, - { - "key.annotated_decl" : "weak var collectionView: CollectionView<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 2975 - } - ], - "key.column" : 69, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> collectionView<\/decl.name>: CollectionView<\/ref.class>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 14, - "key.line" : 99, - "key.modulename" : "ListableUI", - "key.name" : "collectionView", - "key.namelength" : 14, - "key.nameoffset" : 2980, - "key.offset" : 2980, - "key.parsed_declaration" : "self.updateQueue.listHasUncommittedReorderUpdates = { [weak collectionView", - "key.parsed_scope.end" : 99, - "key.parsed_scope.start" : 99, - "key.reusingastcontext" : false, - "key.secondary_symbols" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> let collectionView: CollectionView<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> collectionView<\/decl.name>: CollectionView<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.ref.var.instance", - "key.length" : 14, - "key.line" : 164, - "key.modulename" : "ListableUI", - "key.name" : "collectionView", - "key.offset" : 5079, - "key.typename" : "CollectionView", - "key.typeusr" : "$s10ListableUI14CollectionViewCD", - "key.usr" : "s:10ListableUI8ListViewC010collectionD0AA010CollectionD0Cvp" - } - ], - "key.typename" : "CollectionView?", - "key.typeusr" : "$s10ListableUI14CollectionViewCSgD", - "key.usr" : "s:10ListableUI8ListViewC5frame10appearanceACSo6CGRectV_AA10AppearanceVtcfc010collectionD0L_AA010CollectionD0CSgvp" - } - ], - "key.typename" : "(ListView.Type) -> (CGRect, Appearance) -> ListView", - "key.typeusr" : "$s5frame10appearance10ListableUI8ListViewCSo6CGRectV_AC10AppearanceVtcD", - "key.usr" : "s:10ListableUI8ListViewC5frame10appearanceACSo6CGRectV_AA10AppearanceVtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "deinit<\/Declaration>", - "key.bodylength" : 579, - "key.bodyoffset" : 4308, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "We track first responder status in supplementary views\nto fix a view recycling issue.\n\nSee the comment in `collectionView(_:viewForSupplementaryElementOfKind:at:)\nwithin `ListView.DataSource.swift` for more.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "deinit<\/syntaxtype.keyword><\/decl.function.destructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 592, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "deinit", - "key.namelength" : 6, - "key.nameoffset" : 4296, - "key.offset" : 4296, - "key.parsed_declaration" : "deinit", - "key.parsed_scope.end" : 154, - "key.parsed_scope.start" : 139, - "key.related_decls" : [ - { - "key.annotated_decl" : "deinit<\/RelatedName>" - }, - { - "key.annotated_decl" : "deinit<\/RelatedName>" - }, - { - "key.annotated_decl" : "deinit<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView(im)dealloc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 4929 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 4898 - } - ], - "key.bodylength" : 25, - "key.bodyoffset" : 4961, - "key.doc.comment" : "Even though these are zeroing weak references in UIKIt as of iOS 9.0,\n\nWe still want to nil these out, because _our_ `delegate` and `dataSource`\nobjects have unowned references back to us (`ListView`). We do not want\nany `delegate` or `dataSource` callbacks to trigger referencing\nthat unowned reference (eg, in `scrollViewDidScroll:`).", - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 49, - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 4938, - "key.offset" : 4938, - "key.substructure" : [ - - ] - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 25, - "key.name" : "MARK: Internal Properties", - "key.offset" : 5007 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let storage: Storage<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> storage<\/decl.name>: Storage<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 163, - "key.modulename" : "ListableUI", - "key.name" : "storage", - "key.namelength" : 7, - "key.nameoffset" : 5053, - "key.offset" : 5049, - "key.parsed_declaration" : "let storage : Storage", - "key.parsed_scope.end" : 163, - "key.parsed_scope.start" : 163, - "key.reusingastcontext" : false, - "key.typename" : "ListView.Storage", - "key.typeusr" : "$s10ListableUI8ListViewC7StorageCD", - "key.usr" : "s:10ListableUI8ListViewC7storageAC7StorageCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let collectionView: CollectionView<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> collectionView<\/decl.name>: CollectionView<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 164, - "key.modulename" : "ListableUI", - "key.name" : "collectionView", - "key.namelength" : 14, - "key.nameoffset" : 5079, - "key.offset" : 5075, - "key.parsed_declaration" : "let collectionView : CollectionView", - "key.parsed_scope.end" : 164, - "key.parsed_scope.start" : 164, - "key.reusingastcontext" : false, - "key.typename" : "CollectionView", - "key.typeusr" : "$s10ListableUI14CollectionViewCD", - "key.usr" : "s:10ListableUI8ListViewC010collectionD0AA010CollectionD0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let delegate: Delegate<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> delegate<\/decl.name>: Delegate<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 165, - "key.modulename" : "ListableUI", - "key.name" : "delegate", - "key.namelength" : 8, - "key.nameoffset" : 5119, - "key.offset" : 5115, - "key.parsed_declaration" : "let delegate : Delegate", - "key.parsed_scope.end" : 165, - "key.parsed_scope.start" : 165, - "key.reusingastcontext" : false, - "key.typename" : "ListView.Delegate", - "key.typeusr" : "$s10ListableUI8ListViewC8DelegateCD", - "key.usr" : "s:10ListableUI8ListViewC8delegateAC8DelegateCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let layoutManager: LayoutManager<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> layoutManager<\/decl.name>: LayoutManager<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 166, - "key.modulename" : "ListableUI", - "key.name" : "layoutManager", - "key.namelength" : 13, - "key.nameoffset" : 5147, - "key.offset" : 5143, - "key.parsed_declaration" : "let layoutManager : LayoutManager", - "key.parsed_scope.end" : 166, - "key.parsed_scope.start" : 166, - "key.reusingastcontext" : false, - "key.typename" : "ListView.LayoutManager", - "key.typeusr" : "$s10ListableUI8ListViewC13LayoutManagerCD", - "key.usr" : "s:10ListableUI8ListViewC13layoutManagerAC06LayoutF0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let liveCells: LiveCells<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> liveCells<\/decl.name>: LiveCells<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 167, - "key.modulename" : "ListableUI", - "key.name" : "liveCells", - "key.namelength" : 9, - "key.nameoffset" : 5185, - "key.offset" : 5181, - "key.parsed_declaration" : "let liveCells : LiveCells", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 167, - "key.reusingastcontext" : false, - "key.typename" : "LiveCells", - "key.typeusr" : "$s10ListableUI9LiveCellsCD", - "key.usr" : "s:10ListableUI8ListViewC9liveCellsAA04LiveF0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var collectionViewLayout: CollectionViewLayout<\/Type> { get }<\/Declaration>", - "key.bodylength" : 53, - "key.bodyoffset" : 5265, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> collectionViewLayout<\/decl.name>: CollectionViewLayout<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 103, - "key.line" : 169, - "key.modulename" : "ListableUI", - "key.name" : "collectionViewLayout", - "key.namelength" : 20, - "key.nameoffset" : 5220, - "key.offset" : 5216, - "key.parsed_declaration" : "var collectionViewLayout : CollectionViewLayout", - "key.parsed_scope.end" : 171, - "key.parsed_scope.start" : 169, - "key.reusingastcontext" : false, - "key.typename" : "CollectionViewLayout", - "key.typeusr" : "$s10ListableUI20CollectionViewLayoutCD", - "key.usr" : "s:10ListableUI8ListViewC010collectionD6LayoutAA010CollectiondF0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var performsContentCallbacks: Bool<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 132, - "key.bodyoffset" : 5373, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 177, - "key.line" : 173, - "key.modulename" : "ListableUI", - "key.name" : "performsContentCallbacks", - "key.namelength" : 24, - "key.nameoffset" : 5333, - "key.offset" : 5329, - "key.parsed_declaration" : "var performsContentCallbacks : Bool = true", - "key.parsed_scope.end" : 177, - "key.parsed_scope.start" : 173, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC24performsContentCallbacksSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> private(set) var visibleContent: VisibleContent<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 5516 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> visibleContent<\/decl.name>: VisibleContent<\/ref.class><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 179, - "key.modulename" : "ListableUI", - "key.name" : "visibleContent", - "key.namelength" : 14, - "key.nameoffset" : 5533, - "key.offset" : 5529, - "key.parsed_declaration" : "private(set) var visibleContent : VisibleContent", - "key.parsed_scope.end" : 179, - "key.parsed_scope.start" : 179, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ListView.VisibleContent", - "key.typeusr" : "$s10ListableUI8ListViewC14VisibleContentCD", - "key.usr" : "s:10ListableUI8ListViewC14visibleContentAC07VisibleF0Cvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 24, - "key.name" : "MARK: Private Properties", - "key.offset" : 5584 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var sourcePresenter: AnySourcePresenter<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5633 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sourcePresenter<\/decl.name>: AnySourcePresenter<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 185, - "key.modulename" : "ListableUI", - "key.name" : "sourcePresenter", - "key.namelength" : 15, - "key.nameoffset" : 5645, - "key.offset" : 5641, - "key.parsed_declaration" : "private var sourcePresenter : AnySourcePresenter", - "key.parsed_scope.end" : 185, - "key.parsed_scope.start" : 185, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "any AnySourcePresenter", - "key.typeusr" : "$s10ListableUI18AnySourcePresenter_pD", - "key.usr" : "s:10ListableUI8ListViewC15sourcePresenter33_A65B53D10B0C487915F0C0C4684244E8LLAA09AnySourceF0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var autoScrollAction: AutoScrollAction<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5687 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> autoScrollAction<\/decl.name>: AutoScrollAction<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 187, - "key.modulename" : "ListableUI", - "key.name" : "autoScrollAction", - "key.namelength" : 16, - "key.nameoffset" : 5699, - "key.offset" : 5695, - "key.parsed_declaration" : "private var autoScrollAction : AutoScrollAction", - "key.parsed_scope.end" : 187, - "key.parsed_scope.start" : 187, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "AutoScrollAction", - "key.typeusr" : "$s10ListableUI16AutoScrollActionOD", - "key.usr" : "s:10ListableUI8ListViewC16autoScrollAction33_A65B53D10B0C487915F0C0C4684244E8LLAA04AutofG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private let dataSource: DataSource<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5744 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> dataSource<\/decl.name>: DataSource<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 189, - "key.modulename" : "ListableUI", - "key.name" : "dataSource", - "key.namelength" : 10, - "key.nameoffset" : 5756, - "key.offset" : 5752, - "key.parsed_declaration" : "private let dataSource : DataSource", - "key.parsed_scope.end" : 189, - "key.parsed_scope.start" : 189, - "key.reusingastcontext" : false, - "key.typename" : "ListView.DataSource", - "key.typeusr" : "$s10ListableUI8ListViewC10DataSourceCD", - "key.usr" : "s:10ListableUI8ListViewC10dataSource33_A65B53D10B0C487915F0C0C4684244E8LLAC04DataF0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private let keyboardObserver: KeyboardObserver<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5789 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> keyboardObserver<\/decl.name>: KeyboardObserver<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 191, - "key.modulename" : "ListableUI", - "key.name" : "keyboardObserver", - "key.namelength" : 16, - "key.nameoffset" : 5801, - "key.offset" : 5797, - "key.parsed_declaration" : "private let keyboardObserver : KeyboardObserver", - "key.parsed_scope.end" : 191, - "key.parsed_scope.start" : 191, - "key.reusingastcontext" : false, - "key.typename" : "KeyboardObserver", - "key.typeusr" : "$s16KeyboardObserverAACD", - "key.usr" : "s:10ListableUI8ListViewC16keyboardObserver33_A65B53D10B0C487915F0C0C4684244E8LL08KeyboardF0AFCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var lastKeyboardFrame: KeyboardFrame<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5842 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastKeyboardFrame<\/decl.name>: KeyboardFrame<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 44, - "key.line" : 193, - "key.modulename" : "ListableUI", - "key.name" : "lastKeyboardFrame", - "key.namelength" : 17, - "key.nameoffset" : 5854, - "key.offset" : 5850, - "key.parsed_declaration" : "private var lastKeyboardFrame : KeyboardFrame? = nil", - "key.parsed_scope.end" : 193, - "key.parsed_scope.start" : 193, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "KeyboardFrame?", - "key.typeusr" : "$s16KeyboardObserver0A5FrameOSgD", - "key.usr" : "s:10ListableUI8ListViewC17lastKeyboardFrame33_A65B53D10B0C487915F0C0C4684244E8LL0F8Observer0fG0OSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 15, - "key.name" : "MARK: Debugging", - "key.offset" : 5914 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var debuggingIdentifier: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5946 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 199, - "key.modulename" : "ListableUI", - "key.name" : "debuggingIdentifier", - "key.namelength" : 19, - "key.nameoffset" : 5957, - "key.offset" : 5953, - "key.parsed_declaration" : "public var debuggingIdentifier : String? = nil", - "key.parsed_scope.end" : 199, - "key.parsed_scope.start" : 199, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI8ListViewC19debuggingIdentifierSSSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 16, - "key.name" : "MARK: Appearance", - "key.offset" : 6012 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var animation: ListAnimation<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6045 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> animation<\/decl.name>: ListAnimation<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 205, - "key.modulename" : "ListableUI", - "key.name" : "animation", - "key.namelength" : 9, - "key.nameoffset" : 6056, - "key.offset" : 6052, - "key.parsed_declaration" : "public var animation : ListAnimation", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 205, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListAnimation", - "key.typeusr" : "$s10ListableUI13ListAnimationVD", - "key.usr" : "s:10ListableUI8ListViewC9animationAA0C9AnimationVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var appearance: Appearance<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6091 - } - ], - "key.bodylength" : 170, - "key.bodyoffset" : 6127, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 200, - "key.line" : 207, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 6102, - "key.offset" : 6098, - "key.parsed_declaration" : "public var appearance : Appearance", - "key.parsed_scope.end" : 215, - "key.parsed_scope.start" : 207, - "key.related_decls" : [ - { - "key.annotated_decl" : "appearance()<\/RelatedName>" - }, - { - "key.annotated_decl" : "appearance(whenContainedInInstancesOf:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "appearance(for:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "appearance(for:whenContainedInInstancesOf:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Appearance", - "key.typeusr" : "$s10ListableUI10AppearanceVD", - "key.usr" : "s:10ListableUI8ListViewC10appearanceAA10AppearanceVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func applyAppearance()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 6308 - } - ], - "key.bodylength" : 266, - "key.bodyoffset" : 6344, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> applyAppearance<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 295, - "key.line" : 217, - "key.modulename" : "ListableUI", - "key.name" : "applyAppearance()", - "key.namelength" : 17, - "key.nameoffset" : 6321, - "key.offset" : 6316, - "key.parsed_declaration" : "private func applyAppearance()", - "key.parsed_scope.end" : 227, - "key.parsed_scope.start" : 217, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC15applyAppearance33_A65B53D10B0C487915F0C0C4684244E8LLyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 12, - "key.name" : "MARK: Layout", - "key.offset" : 6631 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var scrollPositionInfo: ListScrollPositionInfo<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6664 - } - ], - "key.bodylength" : 977, - "key.bodyoffset" : 6720, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollPositionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 1027, - "key.line" : 233, - "key.modulename" : "ListableUI", - "key.name" : "scrollPositionInfo", - "key.namelength" : 18, - "key.nameoffset" : 6675, - "key.offset" : 6671, - "key.parsed_declaration" : "public var scrollPositionInfo : ListScrollPositionInfo", - "key.parsed_scope.end" : 253, - "key.parsed_scope.start" : 233, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI8ListViewC18scrollPositionInfoAA0c6ScrollfG0Vvp" - }, - { - "key.annotated_decl" : "let visibleItems: Set<\/Type><ListScrollPositionInfo<\/Type>.VisibleItem<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleItems<\/decl.name>: Set<\/ref.struct><ListScrollPositionInfo<\/ref.struct>.VisibleItem<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 447, - "key.line" : 234, - "key.modulename" : "ListableUI", - "key.name" : "visibleItems", - "key.namelength" : 12, - "key.nameoffset" : 6733, - "key.offset" : 6729, - "key.parsed_declaration" : "let visibleItems = Set(self.visibleContent.items.map { item in\n let itemFrame = self.collectionViewLayout.frameForItem(at: item.indexPath)\n let visibleFrame = self.collectionView.visibleContentFrame\n return ListScrollPositionInfo.VisibleItem(\n identifier: item.item.anyModel.anyIdentifier,\n percentageVisible: itemFrame.percentageVisible(inside: visibleFrame)\n )\n})", - "key.parsed_scope.end" : 234, - "key.parsed_scope.start" : 234, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI22ListScrollPositionInfoV11VisibleItemVGD", - "key.usr" : "s:10ListableUI8ListViewC18scrollPositionInfoAA0c6ScrollfG0Vvg12visibleItemsL_ShyAF11VisibleItemVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var layout: LayoutDescription<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7708 - } - ], - "key.bodylength" : 125, - "key.bodyoffset" : 7747, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: LayoutDescription<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 158, - "key.line" : 255, - "key.modulename" : "ListableUI", - "key.name" : "layout", - "key.namelength" : 6, - "key.nameoffset" : 7719, - "key.offset" : 7715, - "key.parsed_declaration" : "public var layout : LayoutDescription", - "key.parsed_scope.end" : 258, - "key.parsed_scope.start" : 255, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "LayoutDescription", - "key.typeusr" : "$s10ListableUI17LayoutDescriptionVD", - "key.usr" : "s:10ListableUI8ListViewC6layoutAA17LayoutDescriptionVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func set(layout new: LayoutDescription<\/Type>, animated: Bool<\/Type> = false, completion: @escaping () -> () = {})<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7879 - } - ], - "key.bodylength" : 272, - "key.bodyoffset" : 7995, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(layout<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: LayoutDescription<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = {}<\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 382, - "key.line" : 260, - "key.modulename" : "ListableUI", - "key.name" : "set(layout:animated:completion:)", - "key.namelength" : 98, - "key.nameoffset" : 7891, - "key.offset" : 7886, - "key.parsed_declaration" : "public func set(layout new : LayoutDescription, animated : Bool = false, completion : @escaping () -> () = {})", - "key.parsed_scope.end" : 269, - "key.parsed_scope.start" : 260, - "key.related_decls" : [ - { - "key.annotated_decl" : "set(source:initial:animated:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let needsInsetUpdate: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> needsInsetUpdate<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 70, - "key.line" : 262, - "key.modulename" : "ListableUI", - "key.name" : "needsInsetUpdate", - "key.namelength" : 16, - "key.nameoffset" : 8008, - "key.offset" : 8004, - "key.parsed_declaration" : "let needsInsetUpdate = layout.needsCollectionViewInsetUpdate(for: new)", - "key.parsed_scope.end" : 262, - "key.parsed_scope.start" : 262, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC3set6layout8animated10completionyAA17LayoutDescriptionV_SbyyctF16needsInsetUpdateL_Sbvp" - } - ], - "key.typename" : "(ListView) -> (LayoutDescription, Bool, @escaping () -> ()) -> ()", - "key.typeusr" : "$s6layout8animated10completiony10ListableUI17LayoutDescriptionV_SbyyctcD", - "key.usr" : "s:10ListableUI8ListViewC3set6layout8animated10completionyAA17LayoutDescriptionV_SbyyctF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var contentSize: CGSize<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8278 - } - ], - "key.bodylength" : 73, - "key.bodyoffset" : 8311, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 100, - "key.line" : 271, - "key.modulename" : "ListableUI", - "key.name" : "contentSize", - "key.namelength" : 11, - "key.nameoffset" : 8289, - "key.offset" : 8285, - "key.parsed_declaration" : "public var contentSize : CGSize", - "key.parsed_scope.end" : 273, - "key.parsed_scope.start" : 271, - "key.related_decls" : [ - { - "key.annotated_decl" : "contentSize(in:for:safeAreaInsets:itemLimit:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI8ListViewC11contentSizeSo6CGSizeVvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 14, - "key.name" : "MARK: Behavior", - "key.offset" : 8405 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var behavior: Behavior<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8436 - } - ], - "key.bodylength" : 166, - "key.bodyoffset" : 8468, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 192, - "key.line" : 279, - "key.modulename" : "ListableUI", - "key.name" : "behavior", - "key.namelength" : 8, - "key.nameoffset" : 8447, - "key.offset" : 8443, - "key.parsed_declaration" : "public var behavior : Behavior", - "key.parsed_scope.end" : 287, - "key.parsed_scope.start" : 279, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Behavior", - "key.typeusr" : "$s10ListableUI8BehaviorVD", - "key.usr" : "s:10ListableUI8ListViewC8behaviorAA8BehaviorVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func applyBehavior()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 8645 - } - ], - "key.bodylength" : 1463, - "key.bodyoffset" : 8679, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> applyBehavior<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1490, - "key.line" : 289, - "key.modulename" : "ListableUI", - "key.name" : "applyBehavior()", - "key.namelength" : 15, - "key.nameoffset" : 8658, - "key.offset" : 8653, - "key.parsed_declaration" : "private func applyBehavior()", - "key.parsed_scope.end" : 323, - "key.parsed_scope.start" : 289, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let newDecelerationRate: UIScrollView<\/Type>.DecelerationRate<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newDecelerationRate<\/decl.name>: UIScrollView<\/ref.class>.DecelerationRate<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 106, - "key.line" : 301, - "key.modulename" : "ListableUI", - "key.name" : "newDecelerationRate", - "key.namelength" : 19, - "key.nameoffset" : 9218, - "key.offset" : 9214, - "key.parsed_declaration" : "let newDecelerationRate = UICollectionView.DecelerationRate(behaviorValue: self.behavior.decelerationRate)", - "key.parsed_scope.end" : 301, - "key.parsed_scope.start" : 301, - "key.reusingastcontext" : false, - "key.typename" : "UIScrollView.DecelerationRate", - "key.typeusr" : "$sSo28UIScrollViewDecelerationRateaD", - "key.usr" : "s:10ListableUI8ListViewC13applyBehavior33_A65B53D10B0C487915F0C0C4684244E8LLyyF19newDecelerationRateL_So08UIScrolldqR0avp" - } - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC13applyBehavior33_A65B53D10B0C487915F0C0C4684244E8LLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func updateCollectionViewWithCurrentLayoutProperties()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 10153 - } - ], - "key.bodylength" : 298, - "key.bodyoffset" : 10221, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateCollectionViewWithCurrentLayoutProperties<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 359, - "key.line" : 325, - "key.modulename" : "ListableUI", - "key.name" : "updateCollectionViewWithCurrentLayoutProperties()", - "key.namelength" : 49, - "key.nameoffset" : 10166, - "key.offset" : 10161, - "key.parsed_declaration" : "private func updateCollectionViewWithCurrentLayoutProperties()", - "key.parsed_scope.end" : 333, - "key.parsed_scope.start" : 325, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD27WithCurrentLayoutProperties33_A65B53D10B0C487915F0C0C4684244E8LLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func updateCollectionViewSelectionMode()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 10530 - } - ], - "key.bodylength" : 467, - "key.bodyoffset" : 10584, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateCollectionViewSelectionMode<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 514, - "key.line" : 335, - "key.modulename" : "ListableUI", - "key.name" : "updateCollectionViewSelectionMode()", - "key.namelength" : 35, - "key.nameoffset" : 10543, - "key.offset" : 10538, - "key.parsed_declaration" : "private func updateCollectionViewSelectionMode()", - "key.parsed_scope.end" : 352, - "key.parsed_scope.start" : 335, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let view: CollectionView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: CollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 30, - "key.line" : 337, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 10597, - "key.offset" : 10593, - "key.parsed_declaration" : "let view = self.collectionView", - "key.parsed_scope.end" : 337, - "key.parsed_scope.start" : 337, - "key.reusingastcontext" : false, - "key.typename" : "CollectionView", - "key.typeusr" : "$s10ListableUI14CollectionViewCD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD13SelectionMode33_A65B53D10B0C487915F0C0C4684244E8LLyyF4viewL_AA0fD0Cvp" - } - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD13SelectionMode33_A65B53D10B0C487915F0C0C4684244E8LLyyF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 19, - "key.name" : "MARK: Scroll Insets", - "key.offset" : 11072 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var isContentScrollable: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11190 - } - ], - "key.bodylength" : 48, - "key.bodyoffset" : 11228, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns true when the content size is large enough that scrolling is possible", - "key.doc.column" : 16, - "key.doc.comment" : "Returns true when the content size is large enough that scrolling is possible", - "key.doc.declaration" : "@MainActor public var isContentScrollable: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "isContentScrollable<\/Name>s:10ListableUI8ListViewC19isContentScrollableSbvp<\/USR>@MainActor public var isContentScrollable: Bool { get }<\/Declaration>Returns true when the content size is large enough that scrolling is possible<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 359, - "key.doc.name" : "isContentScrollable", - "key.doc.type" : "Other", - "key.doclength" : 82, - "key.docoffset" : 11104, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isContentScrollable<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 80, - "key.line" : 359, - "key.modulename" : "ListableUI", - "key.name" : "isContentScrollable", - "key.namelength" : 19, - "key.nameoffset" : 11201, - "key.offset" : 11197, - "key.parsed_declaration" : "public var isContentScrollable: Bool", - "key.parsed_scope.end" : 361, - "key.parsed_scope.start" : 359, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC19isContentScrollableSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var scrollIndicatorInsets: UIEdgeInsets<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11284 - } - ], - "key.bodylength" : 188, - "key.bodyoffset" : 11333, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollIndicatorInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 231, - "key.line" : 364, - "key.modulename" : "ListableUI", - "key.name" : "scrollIndicatorInsets", - "key.namelength" : 21, - "key.nameoffset" : 11295, - "key.offset" : 11291, - "key.parsed_declaration" : "public var scrollIndicatorInsets : UIEdgeInsets", - "key.parsed_scope.end" : 372, - "key.parsed_scope.start" : 364, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI8ListViewC21scrollIndicatorInsetsSo06UIEdgeG0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListView<\/Type>.KeyboardFrameWillChangeCallback = (KeyboardCurrentFrameProvider<\/Type>, (animationDuration: Double<\/Type>, animationCurve: UIView<\/Type>.AnimationCurve<\/Type>)) -> Void<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11583 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Callback for when the keyboard changes", - "key.doc.column" : 22, - "key.doc.comment" : "Callback for when the keyboard changes", - "key.doc.declaration" : "public typealias ListableUI.ListView.KeyboardFrameWillChangeCallback = (KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> Void", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "KeyboardFrameWillChangeCallback<\/Name>s:10ListableUI8ListViewC31KeyboardFrameWillChangeCallbacka<\/USR>public typealias ListableUI.ListView.KeyboardFrameWillChangeCallback = (KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> Void<\/Declaration>Callback for when the keyboard changes<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 375, - "key.doc.name" : "KeyboardFrameWillChangeCallback", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 11536, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListView<\/ref.class>.KeyboardFrameWillChangeCallback<\/decl.name> = (KeyboardCurrentFrameProvider<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, (animationDuration<\/tuple.element.argument_label>: Double<\/ref.struct><\/tuple.element.type><\/tuple.element>, animationCurve<\/tuple.element.argument_label>: UIView<\/ref.class>.AnimationCurve<\/ref.enum><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.var.parameter.type><\/decl.var.parameter>) -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 172, - "key.line" : 375, - "key.modulename" : "ListableUI", - "key.name" : "KeyboardFrameWillChangeCallback", - "key.namelength" : 31, - "key.nameoffset" : 11600, - "key.offset" : 11590, - "key.parsed_declaration" : "public typealias KeyboardFrameWillChangeCallback = (\n KeyboardCurrentFrameProvider,\n (animationDuration: Double, animationCurve: UIView.AnimationCurve)\n) -> Void", - "key.parsed_scope.end" : 375, - "key.parsed_scope.start" : 375, - "key.reusingastcontext" : false, - "key.typename" : "((any KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ()).Type", - "key.typeusr" : "$sy16KeyboardObserver0A20CurrentFrameProvider_p_Sd17animationDuration_So20UIViewAnimationCurveV0fJ0ttcmD", - "key.usr" : "s:10ListableUI8ListViewC31KeyboardFrameWillChangeCallbacka" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var onKeyboardFrameWillChange: KeyboardFrameWillChangeCallback<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11822 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Called whenever a keyboard change is detected", - "key.doc.column" : 16, - "key.doc.comment" : "Called whenever a keyboard change is detected", - "key.doc.declaration" : "@MainActor public var onKeyboardFrameWillChange: KeyboardFrameWillChangeCallback?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "onKeyboardFrameWillChange<\/Name>s:10ListableUI8ListViewC25onKeyboardFrameWillChangey0F8Observer0f7CurrentG8Provider_p_Sd17animationDuration_So20UIViewAnimationCurveV0mQ0ttcSgvp<\/USR>@MainActor public var onKeyboardFrameWillChange: KeyboardFrameWillChangeCallback?<\/Declaration>Called whenever a keyboard change is detected<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 381, - "key.doc.name" : "onKeyboardFrameWillChange", - "key.doc.type" : "Other", - "key.doclength" : 50, - "key.docoffset" : 11768, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onKeyboardFrameWillChange<\/decl.name>: KeyboardFrameWillChangeCallback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 63, - "key.line" : 381, - "key.modulename" : "ListableUI", - "key.name" : "onKeyboardFrameWillChange", - "key.namelength" : 25, - "key.nameoffset" : 11833, - "key.offset" : 11829, - "key.parsed_declaration" : "public var onKeyboardFrameWillChange: KeyboardFrameWillChangeCallback?", - "key.parsed_scope.end" : 381, - "key.parsed_scope.start" : 381, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((any KeyboardCurrentFrameProvider, (animationDuration: Double, animationCurve: UIView.AnimationCurve)) -> ())?", - "key.typeusr" : "$sy16KeyboardObserver0A20CurrentFrameProvider_p_Sd17animationDuration_So20UIViewAnimationCurveV0fJ0ttcSgD", - "key.usr" : "s:10ListableUI8ListViewC25onKeyboardFrameWillChangey0F8Observer0f7CurrentG8Provider_p_Sd17animationDuration_So20UIViewAnimationCurveV0mQ0ttcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListView<\/Type>.ScrollViewInsets<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11898 - } - ], - "key.bodylength" : 892, - "key.bodyoffset" : 11930, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListView<\/ref.class>.ScrollViewInsets<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 918, - "key.line" : 383, - "key.modulename" : "ListableUI", - "key.name" : "ScrollViewInsets", - "key.namelength" : 16, - "key.nameoffset" : 11912, - "key.offset" : 11905, - "key.parsed_declaration" : "public struct ScrollViewInsets", - "key.parsed_scope.end" : 407, - "key.parsed_scope.start" : 383, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let content: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11979 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Insets for the content view", - "key.doc.column" : 20, - "key.doc.comment" : "Insets for the content view", - "key.doc.declaration" : "public let content: UIEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI8ListViewC06ScrollD6InsetsV7contentSo06UIEdgeF0Vvp<\/USR>public let content: UIEdgeInsets<\/Declaration>Insets for the content view<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 385, - "key.doc.name" : "content", - "key.doc.type" : "Other", - "key.doclength" : 32, - "key.docoffset" : 11939, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> content<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 385, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 11990, - "key.offset" : 11986, - "key.parsed_declaration" : "public let content: UIEdgeInsets", - "key.parsed_scope.end" : 385, - "key.parsed_scope.start" : 385, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI8ListViewC06ScrollD6InsetsV7contentSo06UIEdgeF0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let horizontalScroll: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12070 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Insets for the horizontal scroll bar", - "key.doc.column" : 20, - "key.doc.comment" : "Insets for the horizontal scroll bar", - "key.doc.declaration" : "public let horizontalScroll: UIEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "horizontalScroll<\/Name>s:10ListableUI8ListViewC06ScrollD6InsetsV010horizontalE0So06UIEdgeF0Vvp<\/USR>public let horizontalScroll: UIEdgeInsets<\/Declaration>Insets for the horizontal scroll bar<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 388, - "key.doc.name" : "horizontalScroll", - "key.doc.type" : "Other", - "key.doclength" : 41, - "key.docoffset" : 12021, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> horizontalScroll<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 388, - "key.modulename" : "ListableUI", - "key.name" : "horizontalScroll", - "key.namelength" : 16, - "key.nameoffset" : 12081, - "key.offset" : 12077, - "key.parsed_declaration" : "public let horizontalScroll: UIEdgeInsets", - "key.parsed_scope.end" : 388, - "key.parsed_scope.start" : 388, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI8ListViewC06ScrollD6InsetsV010horizontalE0So06UIEdgeF0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let verticalScroll: UIEdgeInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12168 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Insets for the vertical scroll bar", - "key.doc.column" : 20, - "key.doc.comment" : "Insets for the vertical scroll bar", - "key.doc.declaration" : "public let verticalScroll: UIEdgeInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "verticalScroll<\/Name>s:10ListableUI8ListViewC06ScrollD6InsetsV08verticalE0So06UIEdgeF0Vvp<\/USR>public let verticalScroll: UIEdgeInsets<\/Declaration>Insets for the vertical scroll bar<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 391, - "key.doc.name" : "verticalScroll", - "key.doc.type" : "Other", - "key.doclength" : 39, - "key.docoffset" : 12121, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> verticalScroll<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 391, - "key.modulename" : "ListableUI", - "key.name" : "verticalScroll", - "key.namelength" : 14, - "key.nameoffset" : 12179, - "key.offset" : 12175, - "key.parsed_declaration" : "public let verticalScroll: UIEdgeInsets", - "key.parsed_scope.end" : 391, - "key.parsed_scope.start" : 391, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI8ListViewC06ScrollD6InsetsV08verticalE0So06UIEdgeF0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(content: UIEdgeInsets<\/Type> = .zero, horizontalScroll: UIEdgeInsets<\/Type> = .zero, verticalScroll: UIEdgeInsets<\/Type> = .zero)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12502 - } - ], - "key.bodylength" : 146, - "key.bodyoffset" : 12670, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "All values are optional, and default to `.zero`\n- Parameters:\n - content: Insets for the content view\n - horizontalScroll: Insets for the horizontal scroll bar\n - verticalScroll: Insets for the vertical scroll bar", - "key.doc.column" : 16, - "key.doc.comment" : "All values are optional, and default to `.zero`\n- Parameters:\n - content: Insets for the content view\n - horizontalScroll: Insets for the horizontal scroll bar\n - verticalScroll: Insets for the vertical scroll bar", - "key.doc.declaration" : "public init(content: UIEdgeInsets = .zero, horizontalScroll: UIEdgeInsets = .zero, verticalScroll: UIEdgeInsets = .zero)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "init(content:horizontalScroll:verticalScroll:)<\/Name>s:10ListableUI8ListViewC06ScrollD6InsetsV7content010horizontalE008verticalE0AESo06UIEdgeF0V_A2Jtcfc<\/USR>public init(content: UIEdgeInsets = .zero, horizontalScroll: UIEdgeInsets = .zero, verticalScroll: UIEdgeInsets = .zero)<\/Declaration>All values are optional, and default to .zero<\/codeVoice><\/Para><\/Abstract>content<\/Name>in<\/Direction>Insets for the content view<\/Para><\/Discussion><\/Parameter>horizontalScroll<\/Name>in<\/Direction>Insets for the horizontal scroll bar<\/Para><\/Discussion><\/Parameter>verticalScroll<\/Name>in<\/Direction>Insets for the vertical scroll bar<\/Para><\/Discussion><\/Parameter><\/Parameters><\/CommentParts><\/Function>", - "key.doc.line" : 398, - "key.doc.name" : "init(content:horizontalScroll:verticalScroll:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "Insets for the content view" - } - ], - "name" : "content" - }, - { - "discussion" : [ - { - "Para" : "Insets for the horizontal scroll bar" - } - ], - "name" : "horizontalScroll" - }, - { - "discussion" : [ - { - "Para" : "Insets for the vertical scroll bar" - } - ], - "name" : "verticalScroll" - } - ], - "key.doc.type" : "Function", - "key.doclength" : 269, - "key.docoffset" : 12225, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(content<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, horizontalScroll<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, verticalScroll<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 308, - "key.line" : 398, - "key.modulename" : "ListableUI", - "key.name" : "init(content:horizontalScroll:verticalScroll:)", - "key.namelength" : 159, - "key.nameoffset" : 12509, - "key.offset" : 12509, - "key.parsed_declaration" : "public init(\n content: UIEdgeInsets = .zero,\n horizontalScroll: UIEdgeInsets = .zero,\n verticalScroll: UIEdgeInsets = .zero\n)", - "key.parsed_scope.end" : 406, - "key.parsed_scope.start" : 398, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.ScrollViewInsets.Type) -> (UIEdgeInsets, UIEdgeInsets, UIEdgeInsets) -> ListView.ScrollViewInsets", - "key.typeusr" : "$s7content16horizontalScroll08verticalC010ListableUI8ListViewC0cH6InsetsVSo06UIEdgeI0V_A2JtcD", - "key.usr" : "s:10ListableUI8ListViewC06ScrollD6InsetsV7content010horizontalE008verticalE0AESo06UIEdgeF0V_A2Jtcfc" - } - ], - "key.typename" : "ListView.ScrollViewInsets.Type", - "key.typeusr" : "$s10ListableUI8ListViewC06ScrollD6InsetsVmD", - "key.usr" : "s:10ListableUI8ListViewC06ScrollD6InsetsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var customScrollViewInsets: () -> ScrollViewInsets<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12952 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This callback determines the scroll view's insets only when\n`behavior.keyboardAdjustmentMode` is `.custom`", - "key.doc.column" : 16, - "key.doc.comment" : "This callback determines the scroll view's insets only when\n`behavior.keyboardAdjustmentMode` is `.custom`", - "key.doc.declaration" : "@MainActor public var customScrollViewInsets: () -> ScrollViewInsets", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "customScrollViewInsets<\/Name>s:10ListableUI8ListViewC012customScrollD6InsetsAC0fdG0Vycvp<\/USR>@MainActor public var customScrollViewInsets: () -> ScrollViewInsets<\/Declaration>This callback determines the scroll view’s insets only when behavior.keyboardAdjustmentMode<\/codeVoice> is .custom<\/codeVoice><\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 411, - "key.doc.name" : "customScrollViewInsets", - "key.doc.type" : "Other", - "key.doclength" : 119, - "key.docoffset" : 12829, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> customScrollViewInsets<\/decl.name>: () -> ScrollViewInsets<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 64, - "key.line" : 411, - "key.modulename" : "ListableUI", - "key.name" : "customScrollViewInsets", - "key.namelength" : 22, - "key.nameoffset" : 12963, - "key.offset" : 12959, - "key.parsed_declaration" : "public var customScrollViewInsets: () -> ScrollViewInsets = { .init() }", - "key.parsed_scope.end" : 411, - "key.parsed_scope.start" : 411, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "() -> ListView.ScrollViewInsets", - "key.typeusr" : "$s10ListableUI8ListViewC06ScrollD6InsetsVycD", - "key.usr" : "s:10ListableUI8ListViewC012customScrollD6InsetsAC0fdG0Vycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func updateScrollViewInsets()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13260 - } - ], - "key.bodylength" : 842, - "key.bodyoffset" : 13302, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Call this to trigger an insets update.\nWhen the `keyboardAdjustmentMode` is `.custom`, you should set\na `customScrollViewInsets` callback and then call this method\nwhenever insets require an update.", - "key.doc.column" : 17, - "key.doc.comment" : "Call this to trigger an insets update.\nWhen the `keyboardAdjustmentMode` is `.custom`, you should set\na `customScrollViewInsets` callback and then call this method\nwhenever insets require an update.", - "key.doc.declaration" : "@MainActor public func updateScrollViewInsets()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "updateScrollViewInsets()<\/Name>s:10ListableUI8ListViewC012updateScrollD6InsetsyyF<\/USR>@MainActor public func updateScrollViewInsets()<\/Declaration>Call this to trigger an insets update. When the keyboardAdjustmentMode<\/codeVoice> is .custom<\/codeVoice>, you should set a customScrollViewInsets<\/codeVoice> callback and then call this method whenever insets require an update.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 417, - "key.doc.name" : "updateScrollViewInsets()", - "key.doc.type" : "Function", - "key.doclength" : 227, - "key.docoffset" : 13029, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateScrollViewInsets<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 878, - "key.line" : 417, - "key.modulename" : "ListableUI", - "key.name" : "updateScrollViewInsets()", - "key.namelength" : 24, - "key.nameoffset" : 13272, - "key.offset" : 13267, - "key.parsed_declaration" : "public func updateScrollViewInsets()", - "key.parsed_scope.end" : 439, - "key.parsed_scope.start" : 417, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let insets: ScrollViewInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insets<\/decl.name>: ScrollViewInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 28, - "key.line" : 419, - "key.modulename" : "ListableUI", - "key.name" : "insets", - "key.namelength" : 6, - "key.nameoffset" : 13315, - "key.offset" : 13311, - "key.parsed_declaration" : "let insets: ScrollViewInsets", - "key.parsed_scope.end" : 419, - "key.parsed_scope.start" : 419, - "key.reusingastcontext" : false, - "key.typename" : "ListView.ScrollViewInsets", - "key.typeusr" : "$s10ListableUI8ListViewC06ScrollD6InsetsVD", - "key.usr" : "s:10ListableUI8ListViewC012updateScrollD6InsetsyyF6insetsL_AC0fdG0Vvp" - } - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC012updateScrollD6InsetsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func calculateScrollViewInsets(with keyboardFrame: KeyboardFrame<\/Type>?) -> ScrollViewInsets<\/Type><\/Declaration>", - "key.bodylength" : 1621, - "key.bodyoffset" : 14243, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> calculateScrollViewInsets<\/decl.name>(with<\/decl.var.parameter.argument_label> keyboardFrame<\/decl.var.parameter.name>: KeyboardFrame<\/ref.enum>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> ScrollViewInsets<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1714, - "key.line" : 441, - "key.modulename" : "ListableUI", - "key.name" : "calculateScrollViewInsets(with:)", - "key.namelength" : 62, - "key.nameoffset" : 14156, - "key.offset" : 14151, - "key.parsed_declaration" : "func calculateScrollViewInsets(with keyboardFrame : KeyboardFrame?) -> ScrollViewInsets", - "key.parsed_scope.end" : 493, - "key.parsed_scope.start" : 441, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let keyboardBottomInset: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> keyboardBottomInset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 874, - "key.line" : 442, - "key.modulename" : "ListableUI", - "key.name" : "keyboardBottomInset", - "key.namelength" : 19, - "key.nameoffset" : 14256, - "key.offset" : 14252, - "key.parsed_declaration" : "let keyboardBottomInset : CGFloat = {\n \n guard let keyboardFrame = keyboardFrame else {\n return 0.0\n }\n \n guard layout.wantsKeyboardInsetAdjustment else {\n return 0.0\n }\n \n switch self.behavior.keyboardAdjustmentMode {\n case .none:\n return 0.0\n \n case .adjustsWhenVisible:\n switch keyboardFrame {\n case .nonOverlapping:\n return 0.0\n \n case .overlapping(let frame):\n return (self.bounds.size.height - frame.origin.y) - self.safeAreaInsets.bottom\n }\n\n case .custom:\n fatalError(\"Shouldn't call calculateScrollViewInsets for custom case\")\n }\n}()", - "key.parsed_scope.end" : 442, - "key.parsed_scope.start" : 442, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ListViewC015calculateScrollD6Insets4withAC0fdG0V16KeyboardObserver0I5FrameOSg_tF19keyboardBottomInsetL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let scrollInsets: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> scrollInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 127, - "key.line" : 470, - "key.modulename" : "ListableUI", - "key.name" : "scrollInsets", - "key.namelength" : 12, - "key.nameoffset" : 15140, - "key.offset" : 15136, - "key.parsed_declaration" : "let scrollInsets = modified(self.scrollIndicatorInsets) {\n $0.bottom = max($0.bottom, keyboardBottomInset)\n}", - "key.parsed_scope.end" : 470, - "key.parsed_scope.start" : 470, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI8ListViewC015calculateScrollD6Insets4withAC0fdG0V16KeyboardObserver0I5FrameOSg_tF06scrollG0L_So06UIEdgeG0Vvp" - }, - { - "key.annotated_decl" : "let contentInsets: UIEdgeInsets<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 118, - "key.line" : 474, - "key.modulename" : "ListableUI", - "key.name" : "contentInsets", - "key.namelength" : 13, - "key.nameoffset" : 15285, - "key.offset" : 15281, - "key.parsed_declaration" : "let contentInsets = modified(self.collectionView.contentInset) {\n $0.bottom = keyboardBottomInset\n}", - "key.parsed_scope.end" : 474, - "key.parsed_scope.start" : 474, - "key.reusingastcontext" : false, - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "s:10ListableUI8ListViewC015calculateScrollD6Insets4withAC0fdG0V16KeyboardObserver0I5FrameOSg_tF07contentG0L_So06UIEdgeG0Vvp" - } - ], - "key.typename" : "(ListView) -> (KeyboardFrame?) -> ListView.ScrollViewInsets", - "key.typeusr" : "$s4with10ListableUI8ListViewC06ScrollE6InsetsV16KeyboardObserver0H5FrameOSg_tcD", - "key.usr" : "s:10ListableUI8ListViewC015calculateScrollD6Insets4withAC0fdG0V16KeyboardObserver0I5FrameOSg_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 28, - "key.name" : "MARK: List State Observation", - "key.offset" : 15886 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var stateObserver: ListStateObserver<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16219 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A state observer allows you to receive callbacks when varying types\nof changes occur within the list's state, such as scroll events,\ncontent change events, frame change events, or item visibility changes.\n\nSee the `ListStateObserver` for more info.", - "key.doc.column" : 16, - "key.doc.comment" : "A state observer allows you to receive callbacks when varying types\nof changes occur within the list's state, such as scroll events,\ncontent change events, frame change events, or item visibility changes.\n\nSee the `ListStateObserver` for more info.", - "key.doc.declaration" : "@MainActor public var stateObserver: ListStateObserver", - "key.doc.discussion" : [ - { - "Para" : "See the `ListStateObserver` for more info." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "stateObserver<\/Name>s:10ListableUI8ListViewC13stateObserverAA0c5StateF0Vvp<\/USR>@MainActor public var stateObserver: ListStateObserver<\/Declaration>A state observer allows you to receive callbacks when varying types of changes occur within the list’s state, such as scroll events, content change events, frame change events, or item visibility changes.<\/Para><\/Abstract>See the ListStateObserver<\/codeVoice> for more info.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 505, - "key.doc.name" : "stateObserver", - "key.doc.type" : "Other", - "key.doclength" : 284, - "key.docoffset" : 15931, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stateObserver<\/decl.name>: ListStateObserver<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 505, - "key.modulename" : "ListableUI", - "key.name" : "stateObserver", - "key.namelength" : 13, - "key.nameoffset" : 16230, - "key.offset" : 16226, - "key.parsed_declaration" : "public var stateObserver : ListStateObserver", - "key.parsed_scope.end" : 505, - "key.parsed_scope.start" : 505, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListStateObserver", - "key.typeusr" : "$s10ListableUI17ListStateObserverVD", - "key.usr" : "s:10ListableUI8ListViewC13stateObserverAA0c5StateF0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var actions: ListActions<\/Type>? { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 16476 - } - ], - "key.bodylength" : 124, - "key.bodyoffset" : 16512, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows registering a `ListActions` object associated\nwith the list view that allows you to perform actions such as scrolling to\nitems, or controlling view appearance transitions.", - "key.doc.column" : 17, - "key.doc.comment" : "Allows registering a `ListActions` object associated\nwith the list view that allows you to perform actions such as scrolling to\nitems, or controlling view appearance transitions.", - "key.doc.declaration" : "@MainActor private var actions: ListActions? { get set }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI8ListViewC7actions33_A65B53D10B0C487915F0C0C4684244E8LLAA0C7ActionsCSgvp<\/USR>@MainActor private var actions: ListActions? { get set }<\/Declaration>Allows registering a ListActions<\/codeVoice> object associated with the list view that allows you to perform actions such as scrolling to items, or controlling view appearance transitions.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 510, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.doclength" : 199, - "key.docoffset" : 16273, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 153, - "key.line" : 510, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 16488, - "key.offset" : 16484, - "key.parsed_declaration" : "private var actions : ListActions?", - "key.parsed_scope.end" : 516, - "key.parsed_scope.start" : 510, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ListActions?", - "key.typeusr" : "$s10ListableUI11ListActionsCSgD", - "key.usr" : "s:10ListableUI8ListViewC7actions33_A65B53D10B0C487915F0C0C4684244E8LLAA0C7ActionsCSgvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 44, - "key.name" : "MARK: Public - Scrolling To Sections & Items", - "key.offset" : 16657 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListView<\/Type>.ScrollCompletion = ListStateObserver<\/Type>.OnDidEndScrollingAnimation<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 16916 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "TODO: The below functions do not yet work for horizontal lists.\nA pass needs to be done to change math and offsets based on the `LayoutDirection`\nof the current layout.", - "key.doc.column" : 22, - "key.doc.comment" : "TODO: The below functions do not yet work for horizontal lists.\nA pass needs to be done to change math and offsets based on the `LayoutDirection`\nof the current layout.", - "key.doc.declaration" : "public typealias ListableUI.ListView.ScrollCompletion = ListStateObserver.OnDidEndScrollingAnimation", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "ScrollCompletion<\/Name>s:10ListableUI8ListViewC16ScrollCompletiona<\/USR>public typealias ListableUI.ListView.ScrollCompletion = ListStateObserver.OnDidEndScrollingAnimation<\/Declaration>TODO: The below functions do not yet work for horizontal lists. A pass needs to be done to change math and offsets based on the LayoutDirection<\/codeVoice> of the current layout.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 526, - "key.doc.name" : "ScrollCompletion", - "key.doc.type" : "Other", - "key.doclength" : 189, - "key.docoffset" : 16718, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListView<\/ref.class>.ScrollCompletion<\/decl.name> = ListStateObserver<\/ref.struct>.OnDidEndScrollingAnimation<\/ref.typealias><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 73, - "key.line" : 526, - "key.modulename" : "ListableUI", - "key.name" : "ScrollCompletion", - "key.namelength" : 16, - "key.nameoffset" : 16933, - "key.offset" : 16923, - "key.parsed_declaration" : "public typealias ScrollCompletion = ListStateObserver.OnDidEndScrollingAnimation", - "key.parsed_scope.end" : 526, - "key.parsed_scope.start" : 526, - "key.reusingastcontext" : false, - "key.typename" : "((ListStateObserver.DidEndScrollingAnimation) -> ()).Type", - "key.typeusr" : "$sy10ListableUI17ListStateObserverV24DidEndScrollingAnimationVcmD", - "key.usr" : "s:10ListableUI8ListViewC16ScrollCompletiona" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult @MainActor<\/Type> public func scrollTo(item: AnyItem<\/Type>, position: ScrollPosition<\/Type>, animated: Bool<\/Type> = false, completion: ScrollCompletion<\/Type>? = nil) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 17211 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 17188 - } - ], - "key.bodylength" : 175, - "key.bodyoffset" : 17388, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the provided item, with the provided positioning.\nIf the item is contained in the list, true is returned. If it is not, false is returned.\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nScrolls to the provided item, with the provided positioning.\nIf the item is contained in the list, true is returned. If it is not, false is returned.", - "key.doc.declaration" : "@discardableResult\n@MainActor public func scrollTo(item: AnyItem, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "scrollTo(item:position:animated:completion:)<\/Name>s:10ListableUI8ListViewC8scrollTo4item8position8animated10completionSbAA7AnyItem_p_AA14ScrollPositionVSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF<\/USR>@discardableResult\n@MainActor public func scrollTo(item: AnyItem, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/Declaration>Scrolls to the provided item, with the provided positioning. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 533, - "key.doc.name" : "scrollTo(item:position:animated:completion:)", - "key.doc.type" : "Function", - "key.doclength" : 178, - "key.docoffset" : 17006, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 346, - "key.line" : 533, - "key.modulename" : "ListableUI", - "key.name" : "scrollTo(item:position:animated:completion:)", - "key.namelength" : 151, - "key.nameoffset" : 17223, - "key.offset" : 17218, - "key.parsed_declaration" : "public func scrollTo(\n item : AnyItem,\n position : ScrollPosition,\n animated : Bool = false,\n completion: ScrollCompletion? = nil\n) -> Bool", - "key.parsed_scope.end" : 546, - "key.parsed_scope.start" : 533, - "key.related_decls" : [ - { - "key.annotated_decl" : "scrollTo(item: AnyIdentifier, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (any AnyItem, ScrollPosition, Bool, ((ListStateObserver.DidEndScrollingAnimation) -> ())?) -> Bool", - "key.typeusr" : "$s4item8position8animated10completionSb10ListableUI7AnyItem_p_AE14ScrollPositionVSbyAE17ListStateObserverV24DidEndScrollingAnimationVcSgtcD", - "key.usr" : "s:10ListableUI8ListViewC8scrollTo4item8position8animated10completionSbAA7AnyItem_p_AA14ScrollPositionVSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult @MainActor<\/Type> public func scrollTo(item: AnyIdentifier<\/Type>, position: ScrollPosition<\/Type>, animated: Bool<\/Type> = false, completion: ScrollCompletion<\/Type>? = nil) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 17899 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 17876 - } - ], - "key.bodylength" : 3510, - "key.bodyoffset" : 18082, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the item with the provided identifier, with the provided positioning.\nIf there is more than one item with the same identifier, the list scrolls to the first.\nIf the item is contained in the list, true is returned. If it is not, false is returned.\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nScrolls to the item with the provided identifier, with the provided positioning.\nIf there is more than one item with the same identifier, the list scrolls to the first.\nIf the item is contained in the list, true is returned. If it is not, false is returned.", - "key.doc.declaration" : "@discardableResult\n@MainActor public func scrollTo(item: AnyIdentifier, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "scrollTo(item:position:animated:completion:)<\/Name>s:10ListableUI8ListViewC8scrollTo4item8position8animated10completionSbAA13AnyIdentifierC_AA14ScrollPositionVSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF<\/USR>@discardableResult\n@MainActor public func scrollTo(item: AnyIdentifier, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/Declaration>Scrolls to the item with the provided identifier, with the provided positioning. If there is more than one item with the same identifier, the list scrolls to the first. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 554, - "key.doc.name" : "scrollTo(item:position:animated:completion:)", - "key.doc.type" : "Function", - "key.doclength" : 294, - "key.docoffset" : 17578, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3687, - "key.line" : 554, - "key.modulename" : "ListableUI", - "key.name" : "scrollTo(item:position:animated:completion:)", - "key.namelength" : 157, - "key.nameoffset" : 17911, - "key.offset" : 17906, - "key.parsed_declaration" : "public func scrollTo(\n item : AnyIdentifier,\n position : ScrollPosition,\n animated : Bool = false,\n completion: ScrollCompletion? = nil\n) -> Bool", - "key.parsed_scope.end" : 636, - "key.parsed_scope.start" : 554, - "key.related_decls" : [ - { - "key.annotated_decl" : "scrollTo(item: AnyItem, position: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let shouldAnimate: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> shouldAnimate<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 59, - "key.line" : 569, - "key.modulename" : "ListableUI", - "key.name" : "shouldAnimate", - "key.namelength" : 13, - "key.nameoffset" : 18523, - "key.offset" : 18519, - "key.parsed_declaration" : "let shouldAnimate = animated && UIView.areAnimationsEnabled", - "key.parsed_scope.end" : 569, - "key.parsed_scope.start" : 569, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC8scrollTo4item8position8animated10completionSbAA13AnyIdentifierC_AA14ScrollPositionVSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF13shouldAnimateL_Sbvp" - }, - { - "key.annotated_decl" : "let toIndexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "`preparePresentationStateForScroll(to:)` is asynchronous in some\ncases, we need to re-query our section index in case it changed or is no longer valid.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> toIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 11, - "key.line" : 576, - "key.modulename" : "ListableUI", - "key.name" : "toIndexPath", - "key.offset" : 18911, - "key.parsed_declaration" : "guard let toIndexPath", - "key.parsed_scope.end" : 576, - "key.parsed_scope.start" : 576, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI8ListViewC8scrollTo4item8position8animated10completionSbAA13AnyIdentifierC_AA14ScrollPositionVSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtFyycfU_11toIndexPathL_10Foundation0vW0Vvp" - } - ], - "key.typename" : "(ListView) -> (AnyIdentifier, ScrollPosition, Bool, ((ListStateObserver.DidEndScrollingAnimation) -> ())?) -> Bool", - "key.typeusr" : "$s4item8position8animated10completionSb10ListableUI13AnyIdentifierC_AE14ScrollPositionVSbyAE17ListStateObserverV24DidEndScrollingAnimationVcSgtcD", - "key.usr" : "s:10ListableUI8ListViewC8scrollTo4item8position8animated10completionSbAA13AnyIdentifierC_AA14ScrollPositionVSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult @MainActor<\/Type> public func scrollToSection(with identifier: AnyIdentifier<\/Type>, sectionPosition: SectionPosition<\/Type> = .top, scrollPosition: ScrollPosition<\/Type>, animated: Bool<\/Type> = false, completion: ScrollCompletion<\/Type>? = nil) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 22446 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 22423 - } - ], - "key.bodylength" : 3272, - "key.bodyoffset" : 22702, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the section with the given identifier, with the provided scroll and section positioning.\n\nIf there is more than one section with the same identifier, the list scrolls to the first.\nIf the section has any content and is contained in the list, true is returned. If not, false is returned.\n\nThe list will first attempt to scroll to the section's supplementary view\n(header for `SectionPosition.top`, footer for `SectionPosition.bottom`).\n\nIf not found, the list will scroll to the adjacent item instead\n(section's first item for `.top`, last item for `.bottom`).\n\nIf none of the above are present, the list will fallback to the remaining supplementary view\n(footer for `.top`, header for `.bottom`).\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nScrolls to the section with the given identifier, with the provided scroll and section positioning.\n\nIf there is more than one section with the same identifier, the list scrolls to the first.\nIf the section has any content and is contained in the list, true is returned. If not, false is returned.\n\nThe list will first attempt to scroll to the section's supplementary view\n(header for `SectionPosition.top`, footer for `SectionPosition.bottom`).\n\nIf not found, the list will scroll to the adjacent item instead\n(section's first item for `.top`, last item for `.bottom`).\n\nIf none of the above are present, the list will fallback to the remaining supplementary view\n(footer for `.top`, header for `.bottom`).", - "key.doc.declaration" : "@discardableResult\n@MainActor public func scrollToSection(with identifier: AnyIdentifier, sectionPosition: SectionPosition = .top, scrollPosition: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool", - "key.doc.discussion" : [ - { - "Para" : "If there is more than one section with the same identifier, the list scrolls to the first. If the section has any content and is contained in the list, true is returned. If not, false is returned." - }, - { - "Para" : "The list will first attempt to scroll to the section’s supplementary view (header for `SectionPosition.top`, footer for `SectionPosition.bottom`)." - }, - { - "Para" : "If not found, the list will scroll to the adjacent item instead (section’s first item for `.top`, last item for `.bottom`)." - }, - { - "Para" : "If none of the above are present, the list will fallback to the remaining supplementary view (footer for `.top`, header for `.bottom`)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "scrollToSection(with:sectionPosition:scrollPosition:animated:completion:)<\/Name>s:10ListableUI8ListViewC15scrollToSection4with15sectionPosition0eJ08animated10completionSbAA13AnyIdentifierC_AA0gJ0OAA06ScrollJ0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF<\/USR>@discardableResult\n@MainActor public func scrollToSection(with identifier: AnyIdentifier, sectionPosition: SectionPosition = .top, scrollPosition: ScrollPosition, animated: Bool = false, completion: ScrollCompletion? = nil) -> Bool<\/Declaration>Scrolls to the section with the given identifier, with the provided scroll and section positioning.<\/Para><\/Abstract>If there is more than one section with the same identifier, the list scrolls to the first. If the section has any content and is contained in the list, true is returned. If not, false is returned.<\/Para>The list will first attempt to scroll to the section’s supplementary view (header for SectionPosition.top<\/codeVoice>, footer for SectionPosition.bottom<\/codeVoice>).<\/Para>If not found, the list will scroll to the adjacent item instead (section’s first item for .top<\/codeVoice>, last item for .bottom<\/codeVoice>).<\/Para>If none of the above are present, the list will fallback to the remaining supplementary view (footer for .top<\/codeVoice>, header for .bottom<\/codeVoice>).<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 654, - "key.doc.name" : "scrollToSection(with:sectionPosition:scrollPosition:animated:completion:)", - "key.doc.type" : "Function", - "key.doclength" : 820, - "key.docoffset" : 21599, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToSection<\/decl.name>(with<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, sectionPosition<\/decl.var.parameter.argument_label>: SectionPosition<\/ref.enum><\/decl.var.parameter.type> = .top<\/decl.var.parameter>, scrollPosition<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3522, - "key.line" : 654, - "key.modulename" : "ListableUI", - "key.name" : "scrollToSection(with:sectionPosition:scrollPosition:animated:completion:)", - "key.namelength" : 230, - "key.nameoffset" : 22458, - "key.offset" : 22453, - "key.parsed_declaration" : "public func scrollToSection(\n with identifier : AnyIdentifier,\n sectionPosition : SectionPosition = .top,\n scrollPosition : ScrollPosition,\n animated: Bool = false,\n completion: ScrollCompletion? = nil\n) -> Bool", - "key.parsed_scope.end" : 739, - "key.parsed_scope.start" : 654, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let storageContent: Content<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> storageContent<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 39, - "key.line" : 663, - "key.modulename" : "ListableUI", - "key.name" : "storageContent", - "key.namelength" : 14, - "key.nameoffset" : 22716, - "key.offset" : 22712, - "key.parsed_declaration" : "let storageContent = storage.allContent", - "key.parsed_scope.end" : 663, - "key.parsed_scope.start" : 663, - "key.reusingastcontext" : false, - "key.typename" : "Content", - "key.typeusr" : "$s10ListableUI7ContentVD", - "key.usr" : "s:10ListableUI8ListViewC15scrollToSection4with15sectionPosition0eJ08animated10completionSbAA13AnyIdentifierC_AA0gJ0OAA06ScrollJ0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF14storageContentL_AA0W0Vvp" - }, - { - "key.annotated_decl" : "let sectionIndex: Int<\/Type><\/Declaration>", - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "`preparePresentationStateForScrollToSection` is asynchronous in some\ncases, we need to re-query our section index in case it changed or is no longer valid.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sectionIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 12, - "key.line" : 677, - "key.modulename" : "ListableUI", - "key.name" : "sectionIndex", - "key.offset" : 23373, - "key.parsed_declaration" : "guard let sectionIndex", - "key.parsed_scope.end" : 677, - "key.parsed_scope.start" : 677, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI8ListViewC15scrollToSection4with15sectionPosition0eJ08animated10completionSbAA13AnyIdentifierC_AA0gJ0OAA06ScrollJ0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtFyycfU_0I5IndexL_Sivp" - } - ], - "key.typename" : "(ListView) -> (AnyIdentifier, SectionPosition, ScrollPosition, Bool, ((ListStateObserver.DidEndScrollingAnimation) -> ())?) -> Bool", - "key.typeusr" : "$s4with15sectionPosition06scrollC08animated10completionSb10ListableUI13AnyIdentifierC_AF07SectionC0OAF06ScrollC0VSbyAF17ListStateObserverV24DidEndScrollingAnimationVcSgtcD", - "key.usr" : "s:10ListableUI8ListViewC15scrollToSection4with15sectionPosition0eJ08animated10completionSbAA13AnyIdentifierC_AA0gJ0OAA06ScrollJ0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult @MainActor<\/Type> public func scrollToTop(animated: Bool<\/Type> = false) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26096 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 26073 - } - ], - "key.bodylength" : 633, - "key.bodyoffset" : 26167, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the very top of the list, which includes displaying the list header.", - "key.doc.column" : 17, - "key.doc.comment" : "Scrolls to the very top of the list, which includes displaying the list header.", - "key.doc.declaration" : "@discardableResult\n@MainActor public func scrollToTop(animated: Bool = false) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "scrollToTop(animated:)<\/Name>s:10ListableUI8ListViewC11scrollToTop8animatedS2b_tF<\/USR>@discardableResult\n@MainActor public func scrollToTop(animated: Bool = false) -> Bool<\/Declaration>Scrolls to the very top of the list, which includes displaying the list header.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 743, - "key.doc.name" : "scrollToTop(animated:)", - "key.doc.type" : "Function", - "key.doclength" : 84, - "key.docoffset" : 25985, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToTop<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 698, - "key.line" : 743, - "key.modulename" : "ListableUI", - "key.name" : "scrollToTop(animated:)", - "key.namelength" : 49, - "key.nameoffset" : 26108, - "key.offset" : 26103, - "key.parsed_declaration" : "public func scrollToTop(\n animated: Bool = false\n) -> Bool", - "key.parsed_scope.end" : 756, - "key.parsed_scope.start" : 743, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let rect: CGRect<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rect<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 71, - "key.line" : 748, - "key.modulename" : "ListableUI", - "key.name" : "rect", - "key.namelength" : 4, - "key.nameoffset" : 26287, - "key.offset" : 26283, - "key.parsed_declaration" : "let rect = CGRect(origin: .zero, size: CGSize(width: 1.0, height: 1.0))", - "key.parsed_scope.end" : 748, - "key.parsed_scope.start" : 748, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI8ListViewC11scrollToTop8animatedS2b_tF4rectL_So6CGRectVvp" - }, - { - "key.annotated_decl" : "let shouldAnimate: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> shouldAnimate<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 59, - "key.line" : 751, - "key.modulename" : "ListableUI", - "key.name" : "shouldAnimate", - "key.namelength" : 13, - "key.nameoffset" : 26529, - "key.offset" : 26525, - "key.parsed_declaration" : "let shouldAnimate = animated && UIView.areAnimationsEnabled", - "key.parsed_scope.end" : 751, - "key.parsed_scope.start" : 751, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC11scrollToTop8animatedS2b_tF13shouldAnimateL_Sbvp" - } - ], - "key.typename" : "(ListView) -> (Bool) -> Bool", - "key.typeusr" : "$s8animatedS2b_tcD", - "key.usr" : "s:10ListableUI8ListViewC11scrollToTop8animatedS2b_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult @MainActor<\/Type> public func scrollToLastItem(animated: Bool<\/Type> = false) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 26931 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 26908 - } - ], - "key.bodylength" : 1135, - "key.bodyoffset" : 27007, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scrolls to the last item in the list. If the list contains no items, no action is performed.", - "key.doc.column" : 17, - "key.doc.comment" : "Scrolls to the last item in the list. If the list contains no items, no action is performed.", - "key.doc.declaration" : "@discardableResult\n@MainActor public func scrollToLastItem(animated: Bool = false) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "scrollToLastItem(animated:)<\/Name>s:10ListableUI8ListViewC16scrollToLastItem8animatedS2b_tF<\/USR>@discardableResult\n@MainActor public func scrollToLastItem(animated: Bool = false) -> Bool<\/Declaration>Scrolls to the last item in the list. If the list contains no items, no action is performed.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 760, - "key.doc.name" : "scrollToLastItem(animated:)", - "key.doc.type" : "Function", - "key.doclength" : 97, - "key.docoffset" : 26807, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToLastItem<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1205, - "key.line" : 760, - "key.modulename" : "ListableUI", - "key.name" : "scrollToLastItem(animated:)", - "key.namelength" : 54, - "key.nameoffset" : 26943, - "key.offset" : 26938, - "key.parsed_declaration" : "public func scrollToLastItem(\n animated: Bool = false\n) -> Bool", - "key.parsed_scope.end" : 788, - "key.parsed_scope.start" : 760, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let shouldAnimate: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> shouldAnimate<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 59, - "key.line" : 771, - "key.modulename" : "ListableUI", - "key.name" : "shouldAnimate", - "key.namelength" : 13, - "key.nameoffset" : 27352, - "key.offset" : 27348, - "key.parsed_declaration" : "let shouldAnimate = animated && UIView.areAnimationsEnabled", - "key.parsed_scope.end" : 771, - "key.parsed_scope.start" : 771, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC16scrollToLastItem8animatedS2b_tF13shouldAnimateL_Sbvp" - } - ], - "key.typename" : "(ListView) -> (Bool) -> Bool", - "key.typeusr" : "$s8animatedS2b_tcD", - "key.usr" : "s:10ListableUI8ListViewC16scrollToLastItem8animatedS2b_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 25, - "key.name" : "MARK: Private - Scrolling", - "key.offset" : 28163 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private enum ListView<\/Type>.ScrollCompletionReason<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 28205 - } - ], - "key.bodylength" : 69, - "key.bodyoffset" : 28242, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListView<\/ref.class>.ScrollCompletionReason<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 99, - "key.line" : 794, - "key.modulename" : "ListableUI", - "key.name" : "ScrollCompletionReason", - "key.namelength" : 22, - "key.nameoffset" : 28218, - "key.offset" : 28213, - "key.parsed_declaration" : "private enum ScrollCompletionReason", - "key.parsed_scope.end" : 797, - "key.parsed_scope.start" : 794, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 28251, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case cannotScroll<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> cannotScroll<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 795, - "key.modulename" : "ListableUI", - "key.name" : "cannotScroll", - "key.namelength" : 12, - "key.nameoffset" : 28256, - "key.offset" : 28256, - "key.parsed_declaration" : "case cannotScroll", - "key.parsed_scope.end" : 795, - "key.parsed_scope.start" : 795, - "key.reusingastcontext" : false, - "key.typename" : "(ListView.ScrollCompletionReason.Type) -> ListView.ScrollCompletionReason", - "key.typeusr" : "$sy10ListableUI8ListViewC22ScrollCompletionReason33_A65B53D10B0C487915F0C0C4684244E8LLOAFmcD", - "key.usr" : "s:10ListableUI8ListViewC22ScrollCompletionReason33_A65B53D10B0C487915F0C0C4684244E8LLO06cannotE0yA2FmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 29, - "key.offset" : 28277, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case scrolled(animated: Bool<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrolled<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 24, - "key.line" : 796, - "key.modulename" : "ListableUI", - "key.name" : "scrolled(animated:)", - "key.namelength" : 24, - "key.nameoffset" : 28282, - "key.offset" : 28282, - "key.parsed_declaration" : "case scrolled(animated: Bool)", - "key.parsed_scope.end" : 796, - "key.parsed_scope.start" : 796, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.ScrollCompletionReason.Type) -> (Bool) -> ListView.ScrollCompletionReason", - "key.typeusr" : "$sy10ListableUI8ListViewC22ScrollCompletionReason33_A65B53D10B0C487915F0C0C4684244E8LLOSb_tcAFmcD", - "key.usr" : "s:10ListableUI8ListViewC22ScrollCompletionReason33_A65B53D10B0C487915F0C0C4684244E8LLO8scrolledyAFSb_tcAFmF" - } - ] - } - ], - "key.typename" : "ListView.ScrollCompletionReason.Type", - "key.typeusr" : "$s10ListableUI8ListViewC22ScrollCompletionReason33_A65B53D10B0C487915F0C0C4684244E8LLOmD", - "key.usr" : "s:10ListableUI8ListViewC22ScrollCompletionReason33_A65B53D10B0C487915F0C0C4684244E8LLO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func handleScrollCompletion(reason: ScrollCompletionReason<\/Type>, completion: ScrollCompletion<\/Type>?)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 28612 - } - ], - "key.bodylength" : 1032, - "key.bodyoffset" : 28712, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This function is used by programmatic scrolling APIs that provide a scroll\ncompletion handler. This will execute the `completion` handler after scrolling\nis finished, or it will execute immediately if scrolling is not possible or if\nanimations are disabled.", - "key.doc.column" : 18, - "key.doc.comment" : "This function is used by programmatic scrolling APIs that provide a scroll\ncompletion handler. This will execute the `completion` handler after scrolling\nis finished, or it will execute immediately if scrolling is not possible or if\nanimations are disabled.", - "key.doc.declaration" : "@MainActor private func handleScrollCompletion(reason: ScrollCompletionReason, completion: ScrollCompletion?)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "handleScrollCompletion(reason:completion:)<\/Name>s:10ListableUI8ListViewC22handleScrollCompletion33_A65B53D10B0C487915F0C0C4684244E8LL6reason10completionyAC0fG6ReasonAELLO_yAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF<\/USR>@MainActor private func handleScrollCompletion(reason: ScrollCompletionReason, completion: ScrollCompletion?)<\/Declaration>This function is used by programmatic scrolling APIs that provide a scroll completion handler. This will execute the completion<\/codeVoice> handler after scrolling is finished, or it will execute immediately if scrolling is not possible or if animations are disabled.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 803, - "key.doc.name" : "handleScrollCompletion(reason:completion:)", - "key.doc.type" : "Function", - "key.doclength" : 286, - "key.docoffset" : 28322, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> handleScrollCompletion<\/decl.name>(reason<\/decl.var.parameter.argument_label>: ScrollCompletionReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1125, - "key.line" : 803, - "key.modulename" : "ListableUI", - "key.name" : "handleScrollCompletion(reason:completion:)", - "key.namelength" : 85, - "key.nameoffset" : 28625, - "key.offset" : 28620, - "key.parsed_declaration" : "private func handleScrollCompletion(reason: ScrollCompletionReason, completion: ScrollCompletion?)", - "key.parsed_scope.end" : 825, - "key.parsed_scope.start" : 803, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (ListView.ScrollCompletionReason, ((ListStateObserver.DidEndScrollingAnimation) -> ())?) -> ()", - "key.typeusr" : "$s6reason10completiony10ListableUI8ListViewC22ScrollCompletionReason33_A65B53D10B0C487915F0C0C4684244E8LLO_yAC0E13StateObserverV24DidEndScrollingAnimationVcSgtcD", - "key.usr" : "s:10ListableUI8ListViewC22handleScrollCompletion33_A65B53D10B0C487915F0C0C4684244E8LL6reason10completionyAC0fG6ReasonAELLO_yAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> internal var scrollCompletionHandlers: [ScrollCompletion<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 29914 - } - ], - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This is used to house the completion handlers of scrolling APIs. This is kept\ninternal and separate from `ListStateObserver` and its handlers.", - "key.doc.column" : 18, - "key.doc.comment" : "This is used to house the completion handlers of scrolling APIs. This is kept\ninternal and separate from `ListStateObserver` and its handlers.", - "key.doc.declaration" : "@MainActor internal var scrollCompletionHandlers: [ScrollCompletion]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "scrollCompletionHandlers<\/Name>s:10ListableUI8ListViewC24scrollCompletionHandlersSayyAA0C13StateObserverV24DidEndScrollingAnimationVcGvp<\/USR>@MainActor internal var scrollCompletionHandlers: [ScrollCompletion]<\/Declaration>This is used to house the completion handlers of scrolling APIs. This is kept internal and separate from ListStateObserver<\/codeVoice> and its handlers.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 829, - "key.doc.name" : "scrollCompletionHandlers", - "key.doc.type" : "Other", - "key.doclength" : 155, - "key.docoffset" : 29755, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> internal<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollCompletionHandlers<\/decl.name>: [ScrollCompletion<\/ref.typealias>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 53, - "key.line" : 829, - "key.modulename" : "ListableUI", - "key.name" : "scrollCompletionHandlers", - "key.namelength" : 24, - "key.nameoffset" : 29927, - "key.offset" : 29923, - "key.parsed_declaration" : "internal var scrollCompletionHandlers: [ScrollCompletion] = []", - "key.parsed_scope.end" : 829, - "key.parsed_scope.start" : 829, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "[(ListStateObserver.DidEndScrollingAnimation) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV24DidEndScrollingAnimationVcGD", - "key.usr" : "s:10ListableUI8ListViewC24scrollCompletionHandlersSayyAA0C13StateObserverV24DidEndScrollingAnimationVcGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> internal func didEndScrolling()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 30175 - } - ], - "key.bodylength" : 1115, - "key.bodyoffset" : 30208, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This is called by the `ListView.Delegate` and is used to notify the\n`scrollCompletionHandler` that scrolling finished. This does nothing if there is\nno handler set.", - "key.doc.column" : 19, - "key.doc.comment" : "This is called by the `ListView.Delegate` and is used to notify the\n`scrollCompletionHandler` that scrolling finished. This does nothing if there is\nno handler set.", - "key.doc.declaration" : "@MainActor internal func didEndScrolling()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "didEndScrolling()<\/Name>s:10ListableUI8ListViewC15didEndScrollingyyF<\/USR>@MainActor internal func didEndScrolling()<\/Declaration>This is called by the ListView.Delegate<\/codeVoice> and is used to notify the scrollCompletionHandler<\/codeVoice> that scrolling finished. This does nothing if there is no handler set.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 834, - "key.doc.name" : "didEndScrolling()", - "key.doc.type" : "Function", - "key.doclength" : 185, - "key.docoffset" : 29986, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> didEndScrolling<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1140, - "key.line" : 834, - "key.modulename" : "ListableUI", - "key.name" : "didEndScrolling()", - "key.namelength" : 17, - "key.nameoffset" : 30189, - "key.offset" : 30184, - "key.parsed_declaration" : "internal func didEndScrolling()", - "key.parsed_scope.end" : 857, - "key.parsed_scope.start" : 834, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let handlers: [ListView<\/Type>.ScrollCompletion<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> handlers<\/decl.name>: [ListView<\/ref.class>.ScrollCompletion<\/ref.typealias>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 39, - "key.line" : 837, - "key.modulename" : "ListableUI", - "key.name" : "handlers", - "key.namelength" : 8, - "key.nameoffset" : 30302, - "key.offset" : 30298, - "key.parsed_declaration" : "let handlers = scrollCompletionHandlers", - "key.parsed_scope.end" : 837, - "key.parsed_scope.start" : 837, - "key.reusingastcontext" : false, - "key.typename" : "[(ListStateObserver.DidEndScrollingAnimation) -> ()]", - "key.typeusr" : "$sSayy10ListableUI17ListStateObserverV24DidEndScrollingAnimationVcGD", - "key.usr" : "s:10ListableUI8ListViewC15didEndScrollingyyF8handlersL_SayyAA0C13StateObserverV03DidfG9AnimationVcGvp" - }, - { - "key.annotated_decl" : "let positionInfo: ListScrollPositionInfo<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 37, - "key.line" : 853, - "key.modulename" : "ListableUI", - "key.name" : "positionInfo", - "key.namelength" : 12, - "key.nameoffset" : 31145, - "key.offset" : 31141, - "key.parsed_declaration" : "let positionInfo = scrollPositionInfo", - "key.parsed_scope.end" : 853, - "key.parsed_scope.start" : 853, - "key.reusingastcontext" : false, - "key.typename" : "ListScrollPositionInfo", - "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD", - "key.usr" : "s:10ListableUI8ListViewC15didEndScrollingyyF12positionInfoL_AA0c14ScrollPositionI0Vvp" - } - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC15didEndScrollingyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> func willScroll(for scrollPosition: UICollectionView<\/Type>.ScrollPosition<\/Type>, itemFrame: CGRect<\/Type>, viewport: CGRect<\/Type>, contentSize: CGSize<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 1939, - "key.bodyoffset" : 31848, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This function will determine if a call to `collectionView.scrollToItem(...)`\nwill result in an adjusted content offset. This is necessary because when the\nitem is already at the expected position, `UICollectionView` will not scroll\nand will not execute its `scrollViewDidEndScrollingAnimation(_:)` delegate.", - "key.doc.column" : 10, - "key.doc.comment" : "This function will determine if a call to `collectionView.scrollToItem(...)`\nwill result in an adjusted content offset. This is necessary because when the\nitem is already at the expected position, `UICollectionView` will not scroll\nand will not execute its `scrollViewDidEndScrollingAnimation(_:)` delegate.", - "key.doc.declaration" : "@MainActor func willScroll(for scrollPosition: UICollectionView.ScrollPosition, itemFrame: CGRect, viewport: CGRect, contentSize: CGSize) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "willScroll(for:itemFrame:viewport:contentSize:)<\/Name>s:10ListableUI8ListViewC10willScroll3for9itemFrame8viewport11contentSizeSbSo012UICollectiondF8PositionV_So6CGRectVALSo6CGSizeVtF<\/USR>@MainActor func willScroll(for scrollPosition: UICollectionView.ScrollPosition, itemFrame: CGRect, viewport: CGRect, contentSize: CGSize) -> Bool<\/Declaration>This function will determine if a call to collectionView.scrollToItem(...)<\/codeVoice> will result in an adjusted content offset. This is necessary because when the item is already at the expected position, UICollectionView<\/codeVoice> will not scroll and will not execute its scrollViewDidEndScrollingAnimation(_:)<\/codeVoice> delegate.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 863, - "key.doc.name" : "willScroll(for:itemFrame:viewport:contentSize:)", - "key.doc.type" : "Function", - "key.doclength" : 336, - "key.docoffset" : 31334, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> willScroll<\/decl.name>(for<\/decl.var.parameter.argument_label> scrollPosition<\/decl.var.parameter.name>: UICollectionView<\/ref.class>.ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, itemFrame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, viewport<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentSize<\/decl.var.parameter.argument_label>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2114, - "key.line" : 863, - "key.modulename" : "ListableUI", - "key.name" : "willScroll(for:itemFrame:viewport:contentSize:)", - "key.namelength" : 159, - "key.nameoffset" : 31679, - "key.offset" : 31674, - "key.parsed_declaration" : "func willScroll(\n for scrollPosition: UICollectionView.ScrollPosition,\n itemFrame: CGRect,\n viewport: CGRect,\n contentSize: CGSize\n) -> Bool", - "key.parsed_scope.end" : 912, - "key.parsed_scope.start" : 863, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let distanceToScroll: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> distanceToScroll<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 29, - "key.line" : 869, - "key.modulename" : "ListableUI", - "key.name" : "distanceToScroll", - "key.namelength" : 16, - "key.nameoffset" : 31861, - "key.offset" : 31857, - "key.parsed_declaration" : "let distanceToScroll: CGFloat", - "key.parsed_scope.end" : 869, - "key.parsed_scope.start" : 869, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ListViewC10willScroll3for9itemFrame8viewport11contentSizeSbSo012UICollectiondF8PositionV_So6CGRectVALSo6CGSizeVtF010distanceToF0L_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let canScrollUp: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> canScrollUp<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 42, - "key.line" : 891, - "key.modulename" : "ListableUI", - "key.name" : "canScrollUp", - "key.namelength" : 11, - "key.nameoffset" : 32811, - "key.offset" : 32807, - "key.parsed_declaration" : "let canScrollUp = floor(viewport.minY) > 0", - "key.parsed_scope.end" : 891, - "key.parsed_scope.start" : 891, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC10willScroll3for9itemFrame8viewport11contentSizeSbSo012UICollectiondF8PositionV_So6CGRectVALSo6CGSizeVtF03canF2UpL_Sbvp" - }, - { - "key.annotated_decl" : "let canScrollLeft: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> canScrollLeft<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 44, - "key.line" : 892, - "key.modulename" : "ListableUI", - "key.name" : "canScrollLeft", - "key.namelength" : 13, - "key.nameoffset" : 32862, - "key.offset" : 32858, - "key.parsed_declaration" : "let canScrollLeft = floor(viewport.minX) > 0", - "key.parsed_scope.end" : 892, - "key.parsed_scope.start" : 892, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC10willScroll3for9itemFrame8viewport11contentSizeSbSo012UICollectiondF8PositionV_So6CGRectVALSo6CGSizeVtF03canF4LeftL_Sbvp" - }, - { - "key.annotated_decl" : "let canScrollDown: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> canScrollDown<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 64, - "key.line" : 893, - "key.modulename" : "ListableUI", - "key.name" : "canScrollDown", - "key.namelength" : 13, - "key.nameoffset" : 32915, - "key.offset" : 32911, - "key.parsed_declaration" : "let canScrollDown = ceil(viewport.maxY - contentSize.height) < 0", - "key.parsed_scope.end" : 893, - "key.parsed_scope.start" : 893, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC10willScroll3for9itemFrame8viewport11contentSizeSbSo012UICollectiondF8PositionV_So6CGRectVALSo6CGSizeVtF03canF4DownL_Sbvp" - }, - { - "key.annotated_decl" : "let canScrollRight: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> canScrollRight<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 64, - "key.line" : 894, - "key.modulename" : "ListableUI", - "key.name" : "canScrollRight", - "key.namelength" : 14, - "key.nameoffset" : 32988, - "key.offset" : 32984, - "key.parsed_declaration" : "let canScrollRight = ceil(viewport.maxX - contentSize.width) < 0", - "key.parsed_scope.end" : 894, - "key.parsed_scope.start" : 894, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC10willScroll3for9itemFrame8viewport11contentSizeSbSo012UICollectiondF8PositionV_So6CGRectVALSo6CGSizeVtF03canF5RightL_Sbvp" - } - ], - "key.typename" : "(ListView) -> (UICollectionView.ScrollPosition, CGRect, CGRect, CGSize) -> Bool", - "key.typeusr" : "$s3for9itemFrame8viewport11contentSizeSbSo30UICollectionViewScrollPositionV_So6CGRectVAHSo6CGSizeVtcD", - "key.usr" : "s:10ListableUI8ListViewC10willScroll3for9itemFrame8viewport11contentSizeSbSo012UICollectiondF8PositionV_So6CGRectVALSo6CGSizeVtF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 31, - "key.name" : "MARK: Setting & Getting Content", - "key.offset" : 33808 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var environment: ListEnvironment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 34329 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The environment associated with the list, which is used to pass data through to\nthe list's layout, or through to items, headers\/footers, etc.\n\nIf you have used SwiftUI's environment, Listable's environment is similar.\n\n### Note\nSetting the environment, or a property on the environment, does **not** force a re-layout\nof the list view. The newly provided environment values will be used during the next update.", - "key.doc.column" : 16, - "key.doc.comment" : "The environment associated with the list, which is used to pass data through to\nthe list's layout, or through to items, headers\/footers, etc.\n\nIf you have used SwiftUI's environment, Listable's environment is similar.\n\n### Note\nSetting the environment, or a property on the environment, does **not** force a re-layout\nof the list view. The newly provided environment values will be used during the next update.", - "key.doc.declaration" : "@MainActor public var environment: ListEnvironment", - "key.doc.discussion" : [ - { - "Para" : "If you have used SwiftUI’s environment, Listable’s environment is similar." - }, - { - "Para" : "Setting the environment, or a property on the environment, does force a re-layout of the list view. The newly provided environment values will be used during the next update." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI8ListViewC11environmentAA0C11EnvironmentVvp<\/USR>@MainActor public var environment: ListEnvironment<\/Declaration>The environment associated with the list, which is used to pass data through to the list’s layout, or through to items, headers\/footers, etc.<\/Para><\/Abstract>If you have used SwiftUI’s environment, Listable’s environment is similar.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Setting the environment, or a property on the environment, does not<\/bold> force a re-layout of the list view. The newly provided environment values will be used during the next update.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 926, - "key.doc.name" : "environment", - "key.doc.type" : "Other", - "key.doclength" : 469, - "key.docoffset" : 33856, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 926, - "key.modulename" : "ListableUI", - "key.name" : "environment", - "key.namelength" : 11, - "key.nameoffset" : 34340, - "key.offset" : 34336, - "key.parsed_declaration" : "public var environment : ListEnvironment", - "key.parsed_scope.end" : 926, - "key.parsed_scope.start" : 926, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ListEnvironment", - "key.typeusr" : "$s10ListableUI15ListEnvironmentVD", - "key.usr" : "s:10ListableUI8ListViewC11environmentAA0C11EnvironmentVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var content: Content<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 34379 - } - ], - "key.bodylength" : 111, - "key.bodyoffset" : 34409, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 135, - "key.line" : 928, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 34390, - "key.offset" : 34386, - "key.parsed_declaration" : "public var content : Content", - "key.parsed_scope.end" : 931, - "key.parsed_scope.start" : 928, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Content", - "key.typeusr" : "$s10ListableUI7ContentVD", - "key.usr" : "s:10ListableUI8ListViewC7contentAA7ContentVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func setContent(animated: Bool<\/Type> = false, _ content: Content<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 34531 - } - ], - "key.bodylength" : 156, - "key.bodyoffset" : 34605, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setContent<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 224, - "key.line" : 933, - "key.modulename" : "ListableUI", - "key.name" : "setContent(animated:_:)", - "key.namelength" : 56, - "key.nameoffset" : 34543, - "key.offset" : 34538, - "key.parsed_declaration" : "public func setContent(animated : Bool = false, _ content : Content)", - "key.parsed_scope.end" : 940, - "key.parsed_scope.start" : 933, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (Bool, Content) -> ()", - "key.typeusr" : "$s8animated_ySb_10ListableUI7ContentVtcD", - "key.usr" : "s:10ListableUI8ListViewC10setContent8animated_ySb_AA0F0VtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var sourceChangedTimer: ReloadTimer<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 34772 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sourceChangedTimer<\/decl.name>: ReloadTimer<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 942, - "key.modulename" : "ListableUI", - "key.name" : "sourceChangedTimer", - "key.namelength" : 18, - "key.nameoffset" : 34784, - "key.offset" : 34780, - "key.parsed_declaration" : "private var sourceChangedTimer : ReloadTimer? = nil", - "key.parsed_scope.end" : 942, - "key.parsed_scope.start" : 942, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ReloadTimer?", - "key.typeusr" : "$s10ListableUI11ReloadTimerCSgD", - "key.usr" : "s:10ListableUI8ListViewC18sourceChangedTimer33_A65B53D10B0C487915F0C0C4684244E8LLAA06ReloadG0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@discardableResult @MainActor<\/Type> public func set<Source>(source: Source<\/Type>, initial: Source<\/Type>.State<\/Type>, animated: Bool<\/Type> = false) -> StateAccessor<\/Type><Source<\/Type>.State<\/Type>> where Source<\/Type> : ListViewSource<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 34856 - }, - { - "key.attribute" : "source.decl.attribute.discardableResult", - "key.length" : 18, - "key.offset" : 34833 - } - ], - "key.bodylength" : 736, - "key.bodyoffset" : 34997, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name><Source<\/decl.generic_type_param.name><\/decl.generic_type_param>>(source<\/decl.var.parameter.argument_label>: Source<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, initial<\/decl.var.parameter.argument_label>: Source<\/ref.generic_type_param>.State<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>) -> StateAccessor<\/ref.class><Source<\/ref.generic_type_param>.State<\/ref.associatedtype>><\/decl.function.returntype> where<\/syntaxtype.keyword> Source<\/ref.generic_type_param> : ListViewSource<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 871, - "key.line" : 945, - "key.modulename" : "ListableUI", - "key.name" : "set(source:initial:animated:)", - "key.namelength" : 92, - "key.nameoffset" : 34868, - "key.offset" : 34863, - "key.parsed_declaration" : "public func set(source : Source, initial : Source.State, animated : Bool = false) -> StateAccessor", - "key.parsed_scope.end" : 968, - "key.parsed_scope.start" : 945, - "key.related_decls" : [ - { - "key.annotated_decl" : "set(layout:animated:completion:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Source : ListViewSource<\/Type><\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 14, - "key.offset" : 34879 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "Source<\/decl.generic_type_param.name> : ListViewSource<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ListViewSource" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 21, - "key.line" : 945, - "key.modulename" : "ListableUI", - "key.name" : "Source", - "key.namelength" : 6, - "key.nameoffset" : 34872, - "key.offset" : 34872, - "key.parsed_declaration" : "public func setlet sourcePresenter: SourcePresenter<\/Type><Source<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sourcePresenter<\/decl.name>: SourcePresenter<\/ref.class><Source<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 408, - "key.line" : 949, - "key.modulename" : "ListableUI", - "key.name" : "sourcePresenter", - "key.namelength" : 15, - "key.nameoffset" : 35058, - "key.offset" : 35054, - "key.parsed_declaration" : "let sourcePresenter = SourcePresenter(initial: initial, source: source, didChange: { [weak self] in\n guard let self = self else { return }\n guard self.sourceChangedTimer == nil else { return }\n \n self.sourceChangedTimer = ReloadTimer {\n self.sourceChangedTimer = nil\n self.setContentFromSource(animated: true)\n }\n})", - "key.parsed_scope.end" : 949, - "key.parsed_scope.start" : 949, - "key.reusingastcontext" : false, - "key.typename" : "SourcePresenter", - "key.typeusr" : "$s10ListableUI15SourcePresenterCyxGD", - "key.usr" : "s:10ListableUI8ListViewC3set6source7initial8animatedAA13StateAccessorCy0I0QzGx_AKSbtAA0cD6SourceRzlF0F9PresenterL_AA0kL0CyxGvp" - } - ], - "key.typename" : " (ListView) -> (Source, Source.State, Bool) -> StateAccessor", - "key.typeusr" : "$s6source7initial8animated10ListableUI13StateAccessorCy0F0QzGx_AHSbtcAD14ListViewSourceRzluD", - "key.usr" : "s:10ListableUI8ListViewC3set6source7initial8animatedAA13StateAccessorCy0I0QzGx_AKSbtAA0cD6SourceRzlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func configure(with configure: ListProperties<\/Type>.Configure<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 35744 - } - ], - "key.bodylength" : 654, - "key.bodyoffset" : 35814, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> configure<\/decl.name>(with<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: ListProperties<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 718, - "key.line" : 970, - "key.modulename" : "ListableUI", - "key.name" : "configure(with:)", - "key.namelength" : 52, - "key.nameoffset" : 35756, - "key.offset" : 35751, - "key.parsed_declaration" : "public func configure(with configure : ListProperties.Configure)", - "key.parsed_scope.end" : 987, - "key.parsed_scope.start" : 970, - "key.related_decls" : [ - { - "key.annotated_decl" : "configure(with: ListProperties)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let description: ListProperties<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> description<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 589, - "key.line" : 972, - "key.modulename" : "ListableUI", - "key.name" : "description", - "key.namelength" : 11, - "key.nameoffset" : 35827, - "key.offset" : 35823, - "key.parsed_declaration" : "let description = ListProperties(\n animatesChanges: true,\n animation: self.animation,\n layout: self.layout,\n appearance: self.appearance,\n scrollIndicatorInsets: self.scrollIndicatorInsets,\n behavior: self.behavior,\n autoScrollAction: self.autoScrollAction,\n onKeyboardFrameWillChange: self.onKeyboardFrameWillChange,\n accessibilityIdentifier: self.collectionView.accessibilityIdentifier,\n debuggingIdentifier: self.debuggingIdentifier,\n configure: configure\n)", - "key.parsed_scope.end" : 972, - "key.parsed_scope.start" : 972, - "key.reusingastcontext" : false, - "key.typename" : "ListProperties", - "key.typeusr" : "$s10ListableUI14ListPropertiesVD", - "key.usr" : "s:10ListableUI8ListViewC9configure4withyyAA0C10PropertiesVzXE_tF11descriptionL_AGvp" - } - ], - "key.typename" : "(ListView) -> ((inout ListProperties) -> ()) -> ()", - "key.typeusr" : "$s4withyy10ListableUI14ListPropertiesVzXE_tcD", - "key.usr" : "s:10ListableUI8ListViewC9configure4withyyAA0C10PropertiesVzXE_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> let updateQueue: ListChangesQueue<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> updateQueue<\/decl.name>: ListChangesQueue<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 989, - "key.modulename" : "ListableUI", - "key.name" : "updateQueue", - "key.namelength" : 11, - "key.nameoffset" : 36483, - "key.offset" : 36479, - "key.parsed_declaration" : "let updateQueue : ListChangesQueue", - "key.parsed_scope.end" : 989, - "key.parsed_scope.start" : 989, - "key.reusingastcontext" : false, - "key.typename" : "ListChangesQueue", - "key.typeusr" : "$s10ListableUI16ListChangesQueueCD", - "key.usr" : "s:10ListableUI8ListViewC11updateQueueAA0c7ChangesF0Cvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func configure(with properties: ListProperties<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 36523 - } - ], - "key.bodylength" : 1353, - "key.bodyoffset" : 36584, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> configure<\/decl.name>(with<\/decl.var.parameter.argument_label> properties<\/decl.var.parameter.name>: ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1408, - "key.line" : 991, - "key.modulename" : "ListableUI", - "key.name" : "configure(with:)", - "key.namelength" : 43, - "key.nameoffset" : 36535, - "key.offset" : 36530, - "key.parsed_declaration" : "public func configure(with properties : ListProperties)", - "key.parsed_scope.end" : 1021, - "key.parsed_scope.start" : 991, - "key.related_decls" : [ - { - "key.annotated_decl" : "configure(with: ListProperties.Configure)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (ListProperties) -> ()", - "key.typeusr" : "$s4withy10ListableUI14ListPropertiesV_tcD", - "key.usr" : "s:10ListableUI8ListViewC9configure4withyAA0C10PropertiesV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func setContentFromSource(animated: Bool<\/Type> = false)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 37948 - } - ], - "key.bodylength" : 499, - "key.bodyoffset" : 38012, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "We enqueue these changes into the update queue to ensure they are not applied\nbefore it is safe to do so. Currently, \"safe\" means \"during the application of a reorder\".\n\nSee `CollectionViewLayout.sendEndQueuingEditsAfterDelay()` for more.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setContentFromSource<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 556, - "key.line" : 1023, - "key.modulename" : "ListableUI", - "key.name" : "setContentFromSource(animated:)", - "key.namelength" : 45, - "key.nameoffset" : 37961, - "key.offset" : 37956, - "key.parsed_declaration" : "private func setContentFromSource(animated : Bool = false)", - "key.parsed_scope.end" : 1035, - "key.parsed_scope.start" : 1023, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let oldIdentifier: AnyHashable<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIdentifier<\/decl.name>: AnyHashable<\/ref.struct>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 54, - "key.line" : 1025, - "key.modulename" : "ListableUI", - "key.name" : "oldIdentifier", - "key.namelength" : 13, - "key.nameoffset" : 38025, - "key.offset" : 38021, - "key.parsed_declaration" : "let oldIdentifier = self.storage.allContent.identifier", - "key.parsed_scope.end" : 1025, - "key.parsed_scope.start" : 1025, - "key.reusingastcontext" : false, - "key.typename" : "AnyHashable?", - "key.typeusr" : "$ss11AnyHashableVSgD", - "key.usr" : "s:10ListableUI8ListViewC20setContentFromSource33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF13oldIdentifierL_s11AnyHashableVSgvp" - }, - { - "key.annotated_decl" : "let newIdentifier: AnyHashable<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIdentifier<\/decl.name>: AnyHashable<\/ref.struct>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 54, - "key.line" : 1029, - "key.modulename" : "ListableUI", - "key.name" : "newIdentifier", - "key.namelength" : 13, - "key.nameoffset" : 38177, - "key.offset" : 38173, - "key.parsed_declaration" : "let newIdentifier = self.storage.allContent.identifier", - "key.parsed_scope.end" : 1029, - "key.parsed_scope.start" : 1029, - "key.reusingastcontext" : false, - "key.typename" : "AnyHashable?", - "key.typeusr" : "$ss11AnyHashableVSgD", - "key.usr" : "s:10ListableUI8ListViewC20setContentFromSource33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF13newIdentifierL_s11AnyHashableVSgvp" - }, - { - "key.annotated_decl" : "let identifierChanged: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifierChanged<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 54, - "key.line" : 1030, - "key.modulename" : "ListableUI", - "key.name" : "identifierChanged", - "key.namelength" : 17, - "key.nameoffset" : 38240, - "key.offset" : 38236, - "key.parsed_declaration" : "let identifierChanged = oldIdentifier != newIdentifier", - "key.parsed_scope.end" : 1030, - "key.parsed_scope.start" : 1030, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC20setContentFromSource33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF17identifierChangedL_Sbvp" - } - ], - "key.typename" : "(ListView) -> (Bool) -> ()", - "key.typeusr" : "$s8animatedySb_tcD", - "key.usr" : "s:10ListableUI8ListViewC20setContentFromSource33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 12, - "key.name" : "MARK: UIView", - "key.offset" : 38532 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 38709 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 38702 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 136, - "key.offset" : 38561 - } - ], - "key.bodylength" : 38, - "key.bodyoffset" : 38763, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 84, - "key.name" : "sizeThatFits(_:)", - "key.namelength" : 28, - "key.nameoffset" : 38723, - "key.offset" : 38718, - "key.substructure" : [ - - ], - "key.typename" : "CGSize" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 38968 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 38961 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 144, - "key.offset" : 38812 - } - ], - "key.bodylength" : 40, - "key.bodyoffset" : 39011, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 75, - "key.name" : "intrinsicContentSize", - "key.namelength" : 20, - "key.nameoffset" : 38981, - "key.offset" : 38977, - "key.typename" : "CGSize" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override var frame: CGRect<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 39069 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 39062 - } - ], - "key.bodylength" : 96, - "key.bodyoffset" : 39097, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 116, - "key.line" : 1051, - "key.modulename" : "ListableUI", - "key.name" : "frame", - "key.namelength" : 5, - "key.nameoffset" : 39082, - "key.offset" : 39078, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(py)frame" - } - ], - "key.parsed_declaration" : "public override var frame: CGRect", - "key.parsed_scope.end" : 1055, - "key.parsed_scope.start" : 1051, - "key.related_decls" : [ - { - "key.annotated_decl" : "frame(forAlignmentRect:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView(py)frame" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override var bounds: CGRect<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 39211 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 39204 - } - ], - "key.bodylength" : 231, - "key.bodyoffset" : 39240, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 252, - "key.line" : 1057, - "key.modulename" : "ListableUI", - "key.name" : "bounds", - "key.namelength" : 6, - "key.nameoffset" : 39224, - "key.offset" : 39220, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(py)bounds" - } - ], - "key.parsed_declaration" : "public override var bounds: CGRect", - "key.parsed_scope.end" : 1067, - "key.parsed_scope.start" : 1057, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView(py)bounds" - }, - { - "key.annotated_decl" : "let oldValue: CGRect<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 25, - "key.line" : 1061, - "key.modulename" : "ListableUI", - "key.name" : "oldValue", - "key.namelength" : 8, - "key.nameoffset" : 39309, - "key.offset" : 39305, - "key.parsed_declaration" : "let oldValue = self.frame", - "key.parsed_scope.end" : 1061, - "key.parsed_scope.start" : 1061, - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:10ListableUI8ListViewC6boundsSo6CGRectVvs8oldValueL_AFvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func frameDidChange(from old: CGRect<\/Type>, to new: CGRect<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 39482 - } - ], - "key.bodylength" : 1401, - "key.bodyoffset" : 39547, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> frameDidChange<\/decl.name>(from<\/decl.var.parameter.argument_label> old<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1459, - "key.line" : 1069, - "key.modulename" : "ListableUI", - "key.name" : "frameDidChange(from:to:)", - "key.namelength" : 50, - "key.nameoffset" : 39495, - "key.offset" : 39490, - "key.parsed_declaration" : "private func frameDidChange(from old : CGRect, to new : CGRect)", - "key.parsed_scope.end" : 1103, - "key.parsed_scope.start" : 1069, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let fromEmpty: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Once the view actually has a size, we can provide content.\n\nThere's no value in having content with no view size, as we cannot size cells otherwise.", - "key.doc.column" : 13, - "key.doc.comment" : "Once the view actually has a size, we can provide content.\n\nThere's no value in having content with no view size, as we cannot size cells otherwise.", - "key.doc.declaration" : "let fromEmpty: Bool", - "key.doc.discussion" : [ - { - "Para" : "There’s no value in having content with no view size, as we cannot size cells otherwise." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "fromEmpty<\/Name>s:10ListableUI8ListViewC14frameDidChange33_A65B53D10B0C487915F0C0C4684244E8LL4from2toySo6CGRectV_AItF0Q5EmptyL_Sbvp<\/USR>let fromEmpty: Bool<\/Declaration>Once the view actually has a size, we can provide content.<\/Para><\/Abstract>There’s no value in having content with no view size, as we cannot size cells otherwise.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 1083, - "key.doc.name" : "fromEmpty", - "key.doc.type" : "Other", - "key.doclength" : 176, - "key.docoffset" : 39916, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> fromEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 61, - "key.line" : 1083, - "key.modulename" : "ListableUI", - "key.name" : "fromEmpty", - "key.namelength" : 9, - "key.nameoffset" : 40104, - "key.offset" : 40100, - "key.parsed_declaration" : "let fromEmpty = old.size.isEmpty && new.size.isEmpty == false", - "key.parsed_scope.end" : 1083, - "key.parsed_scope.start" : 1083, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC14frameDidChange33_A65B53D10B0C487915F0C0C4684244E8LL4from2toySo6CGRectV_AItF0Q5EmptyL_Sbvp" - }, - { - "key.annotated_decl" : "let toEmpty: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> toEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 59, - "key.line" : 1084, - "key.modulename" : "ListableUI", - "key.name" : "toEmpty", - "key.namelength" : 7, - "key.nameoffset" : 40174, - "key.offset" : 40170, - "key.parsed_declaration" : "let toEmpty = old.size.isEmpty == false && new.size.isEmpty", - "key.parsed_scope.end" : 1084, - "key.parsed_scope.start" : 1084, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC14frameDidChange33_A65B53D10B0C487915F0C0C4684244E8LL4from2toySo6CGRectV_AItF0R5EmptyL_Sbvp" - } - ], - "key.typename" : "(ListView) -> (CGRect, CGRect) -> ()", - "key.typeusr" : "$s4from2toySo6CGRectV_ADtcD", - "key.usr" : "s:10ListableUI8ListViewC14frameDidChange33_A65B53D10B0C487915F0C0C4684244E8LL4from2toySo6CGRectV_AItF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override var backgroundColor: UIColor<\/Type>? { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 40966 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 40959 - } - ], - "key.bodylength" : 103, - "key.bodyoffset" : 41006, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Our frame changed, update the keyboard inset in case the inset should now be different.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> backgroundColor<\/decl.name>: UIColor<\/ref.class>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 135, - "key.line" : 1105, - "key.modulename" : "ListableUI", - "key.name" : "backgroundColor", - "key.namelength" : 15, - "key.nameoffset" : 40979, - "key.offset" : 40975, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(py)backgroundColor" - } - ], - "key.parsed_declaration" : "public override var backgroundColor: UIColor?", - "key.parsed_scope.end" : 1109, - "key.parsed_scope.start" : 1105, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIColor?", - "key.typeusr" : "$sSo7UIColorCSgD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView(py)backgroundColor" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override func didMoveToWindow()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 41127 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 41120 - } - ], - "key.bodylength" : 130, - "key.bodyoffset" : 41164, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> didMoveToWindow<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 159, - "key.line" : 1111, - "key.modulename" : "ListableUI", - "key.name" : "didMoveToWindow()", - "key.namelength" : 17, - "key.nameoffset" : 41141, - "key.offset" : 41136, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)didMoveToWindow" - } - ], - "key.parsed_declaration" : "public override func didMoveToWindow()", - "key.parsed_scope.end" : 1118, - "key.parsed_scope.start" : 1111, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView(im)didMoveToWindow" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override func didMoveToSuperview()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 41312 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 41305 - } - ], - "key.bodylength" : 136, - "key.bodyoffset" : 41352, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> didMoveToSuperview<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 168, - "key.line" : 1120, - "key.modulename" : "ListableUI", - "key.name" : "didMoveToSuperview()", - "key.namelength" : 20, - "key.nameoffset" : 41326, - "key.offset" : 41321, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)didMoveToSuperview" - } - ], - "key.parsed_declaration" : "public override func didMoveToSuperview()", - "key.parsed_scope.end" : 1127, - "key.parsed_scope.start" : 1120, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView(im)didMoveToSuperview" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> override public func layoutSubviews()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 41508 - }, - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 41499 - } - ], - "key.bodylength" : 241, - "key.bodyoffset" : 41542, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 269, - "key.line" : 1129, - "key.modulename" : "ListableUI", - "key.name" : "layoutSubviews()", - "key.namelength" : 16, - "key.nameoffset" : 41520, - "key.offset" : 41515, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)layoutSubviews" - } - ], - "key.parsed_declaration" : "override public func layoutSubviews()", - "key.parsed_scope.end" : 1137, - "key.parsed_scope.start" : 1129, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView(im)layoutSubviews" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 43, - "key.name" : "MARK: Internal – First Responder Tracking", - "key.offset" : 41804 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func textDidBeginEditingNotification(_ notification: Notification<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 41870 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 41864 - } - ], - "key.bodylength" : 319, - "key.bodyoffset" : 41947, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Our layout changed, update the keyboard inset in case the inset should now be different.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> textDidBeginEditingNotification<\/decl.name>(_<\/decl.var.parameter.argument_label> notification<\/decl.var.parameter.name>: Notification<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 389, - "key.line" : 1143, - "key.modulename" : "ListableUI", - "key.name" : "textDidBeginEditingNotification(_:)", - "key.namelength" : 62, - "key.nameoffset" : 41883, - "key.offset" : 41878, - "key.parsed_declaration" : "@objc private func textDidBeginEditingNotification(_ notification : Notification)", - "key.parsed_scope.end" : 1152, - "key.parsed_scope.start" : 1143, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (Notification) -> ()", - "key.typeusr" : "$syy10Foundation12NotificationVcD", - "key.usr" : "s:10ListableUI8ListViewC31textDidBeginEditingNotification33_A65B53D10B0C487915F0C0C4684244E8LLyy10Foundation0I0VF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func textDidEndEditingNotification(_ notification: Notification<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 42283 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 42277 - } - ], - "key.bodylength" : 328, - "key.bodyoffset" : 42358, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> textDidEndEditingNotification<\/decl.name>(_<\/decl.var.parameter.argument_label> notification<\/decl.var.parameter.name>: Notification<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 396, - "key.line" : 1154, - "key.modulename" : "ListableUI", - "key.name" : "textDidEndEditingNotification(_:)", - "key.namelength" : 60, - "key.nameoffset" : 42296, - "key.offset" : 42291, - "key.parsed_declaration" : "@objc private func textDidEndEditingNotification(_ notification : Notification)", - "key.parsed_scope.end" : 1163, - "key.parsed_scope.start" : 1154, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (Notification) -> ()", - "key.typeusr" : "$syy10Foundation12NotificationVcD", - "key.usr" : "s:10ListableUI8ListViewC29textDidEndEditingNotification33_A65B53D10B0C487915F0C0C4684244E8LLyy10Foundation0I0VF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 34, - "key.name" : "MARK: Internal – Swipe To Delete", - "key.offset" : 42707 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private let closeActiveSwipesGesture: TouchDownGestureRecognizer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 42758 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> closeActiveSwipesGesture<\/decl.name>: TouchDownGestureRecognizer<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 57, - "key.line" : 1169, - "key.modulename" : "ListableUI", - "key.name" : "closeActiveSwipesGesture", - "key.namelength" : 24, - "key.nameoffset" : 42770, - "key.offset" : 42766, - "key.parsed_declaration" : "private let closeActiveSwipesGesture : TouchDownGestureRecognizer", - "key.parsed_scope.end" : 1169, - "key.parsed_scope.start" : 1169, - "key.reusingastcontext" : false, - "key.typename" : "TouchDownGestureRecognizer", - "key.typeusr" : "$s10ListableUI26TouchDownGestureRecognizerCD", - "key.usr" : "s:10ListableUI8ListViewC24closeActiveSwipesGesture33_A65B53D10B0C487915F0C0C4684244E8LLAA09TouchDownH10RecognizerCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func shouldRecognizeCloseSwipeTouch(_ touch: UITouch<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 42839 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 42833 - } - ], - "key.bodylength" : 265, - "key.bodyoffset" : 42911, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> shouldRecognizeCloseSwipeTouch<\/decl.name>(_<\/decl.var.parameter.argument_label> touch<\/decl.var.parameter.name>: UITouch<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 330, - "key.line" : 1171, - "key.modulename" : "ListableUI", - "key.name" : "shouldRecognizeCloseSwipeTouch(_:)", - "key.namelength" : 49, - "key.nameoffset" : 42852, - "key.offset" : 42847, - "key.parsed_declaration" : "@objc private func shouldRecognizeCloseSwipeTouch(_ touch : UITouch) -> Bool", - "key.parsed_scope.end" : 1177, - "key.parsed_scope.start" : 1171, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (UITouch) -> Bool", - "key.typeusr" : "$sySbSo7UITouchCcD", - "key.usr" : "s:10ListableUI8ListViewC30shouldRecognizeCloseSwipeTouch33_A65B53D10B0C487915F0C0C4684244E8LLySbSo7UITouchCF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@objc @MainActor<\/Type> private func closeActiveSwipeGestureIfNeeded(with recognizer: UIGestureRecognizer<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 43193 - }, - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 43187 - } - ], - "key.bodylength" : 128, - "key.bodyoffset" : 43278, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> closeActiveSwipeGestureIfNeeded<\/decl.name>(with<\/decl.var.parameter.argument_label> recognizer<\/decl.var.parameter.name>: UIGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 206, - "key.line" : 1179, - "key.modulename" : "ListableUI", - "key.name" : "closeActiveSwipeGestureIfNeeded(with:)", - "key.namelength" : 70, - "key.nameoffset" : 43206, - "key.offset" : 43201, - "key.parsed_declaration" : "@objc private func closeActiveSwipeGestureIfNeeded(with recognizer : UIGestureRecognizer)", - "key.parsed_scope.end" : 1184, - "key.parsed_scope.start" : 1179, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (UIGestureRecognizer) -> ()", - "key.typeusr" : "$s4withySo19UIGestureRecognizerC_tcD", - "key.usr" : "s:10ListableUI8ListViewC31closeActiveSwipeGestureIfNeeded33_A65B53D10B0C487915F0C0C4684244E8LL4withySo19UIGestureRecognizerC_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 33, - "key.name" : "MARK: Internal - Updating Content", - "key.offset" : 43427 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> internal func setPresentationStateItemPositions()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 43477 - } - ], - "key.bodylength" : 184, - "key.bodyoffset" : 43532, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setPresentationStateItemPositions<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 231, - "key.line" : 1190, - "key.modulename" : "ListableUI", - "key.name" : "setPresentationStateItemPositions()", - "key.namelength" : 35, - "key.nameoffset" : 43491, - "key.offset" : 43486, - "key.parsed_declaration" : "internal func setPresentationStateItemPositions()", - "key.parsed_scope.end" : 1195, - "key.parsed_scope.start" : 1190, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC33setPresentationStateItemPositionsyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func updateCollectionViewSelections(animated: Bool<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 43727 - } - ], - "key.bodylength" : 854, - "key.bodyoffset" : 43793, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateCollectionViewSelections<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 913, - "key.line" : 1197, - "key.modulename" : "ListableUI", - "key.name" : "updateCollectionViewSelections(animated:)", - "key.namelength" : 47, - "key.nameoffset" : 43740, - "key.offset" : 43735, - "key.parsed_declaration" : "private func updateCollectionViewSelections(animated : Bool)", - "key.parsed_scope.end" : 1219, - "key.parsed_scope.start" : 1197, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let oldSelected: Set<\/Type><IndexPath<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldSelected<\/decl.name>: Set<\/ref.struct><IndexPath<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 92, - "key.line" : 1199, - "key.modulename" : "ListableUI", - "key.name" : "oldSelected", - "key.namelength" : 11, - "key.nameoffset" : 43806, - "key.offset" : 43802, - "key.parsed_declaration" : "let oldSelected : Set = Set(self.collectionView.indexPathsForSelectedItems ?? [])", - "key.parsed_scope.end" : 1199, - "key.parsed_scope.start" : 1199, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD10Selections33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF11oldSelectedL_Shy10Foundation9IndexPathVGvp" - }, - { - "key.annotated_decl" : "let newSelected: Set<\/Type><IndexPath<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newSelected<\/decl.name>: Set<\/ref.struct><IndexPath<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 89, - "key.line" : 1200, - "key.modulename" : "ListableUI", - "key.name" : "newSelected", - "key.namelength" : 11, - "key.nameoffset" : 43907, - "key.offset" : 43903, - "key.parsed_declaration" : "let newSelected : Set = Set(self.storage.presentationState.selectedIndexPaths)", - "key.parsed_scope.end" : 1200, - "key.parsed_scope.start" : 1200, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD10Selections33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF11newSelectedL_Shy10Foundation9IndexPathVGvp" - }, - { - "key.annotated_decl" : "let removed: Set<\/Type><IndexPath<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: Set<\/ref.struct><IndexPath<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 50, - "key.line" : 1202, - "key.modulename" : "ListableUI", - "key.name" : "removed", - "key.namelength" : 7, - "key.nameoffset" : 44014, - "key.offset" : 44010, - "key.parsed_declaration" : "let removed = oldSelected.subtracting(newSelected)", - "key.parsed_scope.end" : 1202, - "key.parsed_scope.start" : 1202, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD10Selections33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF7removedL_Shy10Foundation9IndexPathVGvp" - }, - { - "key.annotated_decl" : "let added: Set<\/Type><IndexPath<\/Type>><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> added<\/decl.name>: Set<\/ref.struct><IndexPath<\/ref.struct>><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 48, - "key.line" : 1203, - "key.modulename" : "ListableUI", - "key.name" : "added", - "key.namelength" : 5, - "key.nameoffset" : 44073, - "key.offset" : 44069, - "key.parsed_declaration" : "let added = newSelected.subtracting(oldSelected)", - "key.parsed_scope.end" : 1203, - "key.parsed_scope.start" : 1203, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD10Selections33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF5addedL_Shy10Foundation9IndexPathVGvp" - }, - { - "key.annotated_decl" : "let view: CollectionView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: CollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 30, - "key.line" : 1205, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 44139, - "key.offset" : 44135, - "key.parsed_declaration" : "let view = self.collectionView", - "key.parsed_scope.end" : 1205, - "key.parsed_scope.start" : 1205, - "key.reusingastcontext" : false, - "key.typename" : "CollectionView", - "key.typeusr" : "$s10ListableUI14CollectionViewCD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD10Selections33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF4viewL_AA0fD0Cvp" - }, - { - "key.annotated_decl" : "let state: PresentationState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> state<\/decl.name>: PresentationState<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 42, - "key.line" : 1206, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 44178, - "key.offset" : 44174, - "key.parsed_declaration" : "let state = self.storage.presentationState", - "key.parsed_scope.end" : 1206, - "key.parsed_scope.start" : 1206, - "key.reusingastcontext" : false, - "key.typename" : "PresentationState", - "key.typeusr" : "$s10ListableUI17PresentationStateCD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD10Selections33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF5stateL_AA17PresentationStateCvp" - } - ], - "key.typename" : "(ListView) -> (Bool) -> ()", - "key.typeusr" : "$s8animatedySb_tcD", - "key.usr" : "s:10ListableUI8ListViewC016updateCollectionD10Selections33_A65B53D10B0C487915F0C0C4684244E8LL8animatedySb_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 44, - "key.name" : "MARK: Internal - Updating Presentation State", - "key.offset" : 44668 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var updateOverrideIndexPath: IndexPath<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 45001 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An index path we store in order to ensure if multiple updates are processed in quick succession, we do not\nend up overriding a previous attempt to programmatically trigger a scroll event.\n\nhttps:\/\/github.com\/square\/Listable\/pull\/557\n", - "key.doc.column" : 17, - "key.doc.comment" : "An index path we store in order to ensure if multiple updates are processed in quick succession, we do not\nend up overriding a previous attempt to programmatically trigger a scroll event.\n\nhttps:\/\/github.com\/square\/Listable\/pull\/557", - "key.doc.declaration" : "@MainActor private var updateOverrideIndexPath: IndexPath?", - "key.doc.discussion" : [ - { - "Para" : "https:\/\/github.com\/square\/Listable\/pull\/557" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "updateOverrideIndexPath<\/Name>s:10ListableUI8ListViewC23updateOverrideIndexPath33_A65B53D10B0C487915F0C0C4684244E8LL10Foundation0gH0VSgvp<\/USR>@MainActor private var updateOverrideIndexPath: IndexPath?<\/Declaration>An index path we store in order to ensure if multiple updates are processed in quick succession, we do not end up overriding a previous attempt to programmatically trigger a scroll event.<\/Para><\/Abstract>https:\/\/github.com\/square\/Listable\/pull\/557<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 1230, - "key.doc.name" : "updateOverrideIndexPath", - "key.doc.type" : "Other", - "key.doclength" : 268, - "key.docoffset" : 44729, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> updateOverrideIndexPath<\/decl.name>: IndexPath<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 1230, - "key.modulename" : "ListableUI", - "key.name" : "updateOverrideIndexPath", - "key.namelength" : 23, - "key.nameoffset" : 45013, - "key.offset" : 45009, - "key.parsed_declaration" : "private var updateOverrideIndexPath : IndexPath? = nil", - "key.parsed_scope.end" : 1230, - "key.parsed_scope.start" : 1230, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "IndexPath?", - "key.typeusr" : "$s10Foundation9IndexPathVSgD", - "key.usr" : "s:10ListableUI8ListViewC23updateOverrideIndexPath33_A65B53D10B0C487915F0C0C4684244E8LL10Foundation0gH0VSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var firstVisibleIndexPath: IndexPath<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 45065 - } - ], - "key.bodylength" : 388, - "key.bodyoffset" : 45113, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> firstVisibleIndexPath<\/decl.name>: IndexPath<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 429, - "key.line" : 1232, - "key.modulename" : "ListableUI", - "key.name" : "firstVisibleIndexPath", - "key.namelength" : 21, - "key.nameoffset" : 45077, - "key.offset" : 45073, - "key.parsed_declaration" : "private var firstVisibleIndexPath : IndexPath?", - "key.parsed_scope.end" : 1247, - "key.parsed_scope.start" : 1232, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath?", - "key.typeusr" : "$s10Foundation9IndexPathVSgD", - "key.usr" : "s:10ListableUI8ListViewC21firstVisibleIndexPath33_A65B53D10B0C487915F0C0C4684244E8LL10Foundation0gH0VSgvp" - }, - { - "key.annotated_decl" : "let visibleIndexPaths: [IndexPath<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "1) Get the first visible index path.", - "key.doc.column" : 13, - "key.doc.comment" : "1) Get the first visible index path.", - "key.doc.declaration" : "let visibleIndexPaths: [IndexPath]", - "key.doc.discussion" : [ - { - "List-Number" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "visibleIndexPaths<\/Name>s:10ListableUI8ListViewC21firstVisibleIndexPath33_A65B53D10B0C487915F0C0C4684244E8LL10Foundation0gH0VSgvg07visibleG5PathsL_SayAHGvp<\/USR>let visibleIndexPaths: [IndexPath]<\/Declaration>Get the first visible index path.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 1236, - "key.doc.name" : "visibleIndexPaths", - "key.doc.type" : "Other", - "key.doclength" : 41, - "key.docoffset" : 45123, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleIndexPaths<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 83, - "key.line" : 1236, - "key.modulename" : "ListableUI", - "key.name" : "visibleIndexPaths", - "key.namelength" : 17, - "key.nameoffset" : 45177, - "key.offset" : 45173, - "key.parsed_declaration" : "let visibleIndexPaths = self.collectionView.indexPathsForVisibleItems.sorted(by: <)", - "key.parsed_scope.end" : 1236, - "key.parsed_scope.start" : 1236, - "key.reusingastcontext" : false, - "key.typename" : "[IndexPath]", - "key.typeusr" : "$sSay10Foundation9IndexPathVGD", - "key.usr" : "s:10ListableUI8ListViewC21firstVisibleIndexPath33_A65B53D10B0C487915F0C0C4684244E8LL10Foundation0gH0VSgvg07visibleG5PathsL_SayAHGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> internal func updatePresentationState(for reason: PresentationState<\/Type>.UpdateReason<\/Type>, completion callerCompletion: @escaping (Bool<\/Type>) -> () = { _ in })<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 45508 - } - ], - "key.bodylength" : 2483, - "key.bodyoffset" : 45679, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "2) Pick the largest index path of two to return.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updatePresentationState<\/decl.name>(for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: PresentationState<\/ref.class>.UpdateReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label> callerCompletion<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2646, - "key.line" : 1249, - "key.modulename" : "ListableUI", - "key.name" : "updatePresentationState(for:completion:)", - "key.namelength" : 155, - "key.nameoffset" : 45522, - "key.offset" : 45517, - "key.parsed_declaration" : "internal func updatePresentationState(\n for reason : PresentationState.UpdateReason,\n completion callerCompletion : @escaping (Bool) -> () = { _ in }\n)", - "key.parsed_scope.end" : 1310, - "key.parsed_scope.start" : 1249, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let completion: (_ completed: Bool<\/Type>) -> ()<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> completion<\/decl.name>: (_ completed<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 180, - "key.line" : 1255, - "key.modulename" : "ListableUI", - "key.name" : "completion", - "key.namelength" : 10, - "key.nameoffset" : 45789, - "key.offset" : 45785, - "key.parsed_declaration" : "let completion = { (completed : Bool) in\n callerCompletion(completed)\n SignpostLogger.log(.end, log: .updateContent, name: \"List Update\", for: self)\n}", - "key.parsed_scope.end" : 1255, - "key.parsed_scope.start" : 1255, - "key.reusingastcontext" : false, - "key.typename" : "(Bool) -> ()", - "key.typeusr" : "$syySbcD", - "key.usr" : "s:10ListableUI8ListViewC23updatePresentationState3for10completionyAA0fG0C12UpdateReasonO_ySbctFAFL_yySbcvp" - }, - { - "key.annotated_decl" : "let indexPath: IndexPath<\/Type>?<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct>?<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 37, - "key.line" : 1260, - "key.modulename" : "ListableUI", - "key.name" : "indexPath", - "key.namelength" : 9, - "key.nameoffset" : 45995, - "key.offset" : 45991, - "key.parsed_declaration" : "let indexPath = firstVisibleIndexPath", - "key.parsed_scope.end" : 1260, - "key.parsed_scope.start" : 1260, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath?", - "key.typeusr" : "$s10Foundation9IndexPathVSgD", - "key.usr" : "s:10ListableUI8ListViewC23updatePresentationState3for10completionyAA0fG0C12UpdateReasonO_ySbctF9indexPathL_10Foundation05IndexM0VSgvp" - }, - { - "key.annotated_decl" : "let presentationStateTruncated: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationStateTruncated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 89, - "key.line" : 1262, - "key.modulename" : "ListableUI", - "key.name" : "presentationStateTruncated", - "key.namelength" : 26, - "key.nameoffset" : 46050, - "key.offset" : 46046, - "key.parsed_declaration" : "let presentationStateTruncated = self.storage.presentationState.containsAllItems == false", - "key.parsed_scope.end" : 1262, - "key.parsed_scope.start" : 1262, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC23updatePresentationState3for10completionyAA0fG0C12UpdateReasonO_ySbctF012presentationG9TruncatedL_Sbvp" - } - ], - "key.typename" : "(ListView) -> (PresentationState.UpdateReason, @escaping (Bool) -> ()) -> ()", - "key.typeusr" : "$s3for10completiony10ListableUI17PresentationStateC12UpdateReasonO_ySbctcD", - "key.usr" : "s:10ListableUI8ListViewC23updatePresentationState3for10completionyAA0fG0C12UpdateReasonO_ySbctF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func updatePresentationStateWith(firstVisibleIndexPath indexPath: IndexPath<\/Type>?, for reason: PresentationState<\/Type>.UpdateReason<\/Type>, completion callerCompletion: @escaping (Bool<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 48177 - } - ], - "key.bodylength" : 4486, - "key.bodyoffset" : 48393, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Verify this is the same as inputted index path – if it's not, that means\n_another_ `programaticScrollDownTo` has occurred and thus has\noverridden this value, so we shouldn't clear it out.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updatePresentationStateWith<\/decl.name>(firstVisibleIndexPath<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: PresentationState<\/ref.class>.UpdateReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label> callerCompletion<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 4695, - "key.line" : 1312, - "key.modulename" : "ListableUI", - "key.name" : "updatePresentationStateWith(firstVisibleIndexPath:for:completion:)", - "key.namelength" : 201, - "key.nameoffset" : 48190, - "key.offset" : 48185, - "key.parsed_declaration" : "private func updatePresentationStateWith(\n firstVisibleIndexPath indexPath: IndexPath?,\n for reason : PresentationState.UpdateReason,\n completion callerCompletion : @escaping (Bool) -> ()\n)", - "key.parsed_scope.end" : 1419, - "key.parsed_scope.start" : 1312, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (IndexPath?, PresentationState.UpdateReason, @escaping (Bool) -> ()) -> ()", - "key.typeusr" : "$s21firstVisibleIndexPath3for10completiony10Foundation0cD0VSg_10ListableUI17PresentationStateC12UpdateReasonOySbctcD", - "key.usr" : "s:10ListableUI8ListViewC27updatePresentationStateWith33_A65B53D10B0C487915F0C0C4684244E8LL21firstVisibleIndexPath3for10completiony10Foundation0tU0VSg_AA0fG0C12UpdateReasonOySbctF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func newVisibleSlice(to indexPath: IndexPath<\/Type>) -> Content<\/Type>.Slice<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 52890 - } - ], - "key.bodylength" : 719, - "key.bodyoffset" : 52967, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Update Refresh Control\n\nNote: Must be called *OUTSIDE* of CollectionView's `performBatchUpdates:`, otherwise\nwe trigger a bug where updated indexes are calculated incorrectly.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newVisibleSlice<\/decl.name>(to<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Content<\/ref.struct>.Slice<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 789, - "key.line" : 1421, - "key.modulename" : "ListableUI", - "key.name" : "newVisibleSlice(to:)", - "key.namelength" : 41, - "key.nameoffset" : 52903, - "key.offset" : 52898, - "key.parsed_declaration" : "private func newVisibleSlice(to indexPath : IndexPath) -> Content.Slice", - "key.parsed_scope.end" : 1442, - "key.parsed_scope.start" : 1421, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (IndexPath) -> Content.Slice", - "key.typeusr" : "$s2to10ListableUI7ContentV5SliceV10Foundation9IndexPathV_tcD", - "key.usr" : "s:10ListableUI8ListViewC15newVisibleSlice33_A65B53D10B0C487915F0C0C4684244E8LL2toAA7ContentV0G0V10Foundation9IndexPathV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func updateContentOffset(for reason: PresentationState<\/Type>.UpdateReason<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 53693 - } - ], - "key.bodylength" : 354, - "key.bodyoffset" : 53771, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateContentOffset<\/decl.name>(for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: PresentationState<\/ref.class>.UpdateReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 425, - "key.line" : 1444, - "key.modulename" : "ListableUI", - "key.name" : "updateContentOffset(for:)", - "key.namelength" : 63, - "key.nameoffset" : 53706, - "key.offset" : 53701, - "key.parsed_declaration" : "private func updateContentOffset(for reason: PresentationState.UpdateReason)", - "key.parsed_scope.end" : 1454, - "key.parsed_scope.start" : 1444, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (PresentationState.UpdateReason) -> ()", - "key.typeusr" : "$s3fory10ListableUI17PresentationStateC12UpdateReasonO_tcD", - "key.usr" : "s:10ListableUI8ListViewC19updateContentOffset33_A65B53D10B0C487915F0C0C4684244E8LL3foryAA17PresentationStateC12UpdateReasonO_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func performAutoScrollAction(with addedItems: Set<\/Type><AnyIdentifier<\/Type>>, animated: Bool<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 54132 - } - ], - "key.bodylength" : 3085, - "key.bodyoffset" : 54229, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performAutoScrollAction<\/decl.name>(with<\/decl.var.parameter.argument_label> addedItems<\/decl.var.parameter.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 3175, - "key.line" : 1456, - "key.modulename" : "ListableUI", - "key.name" : "performAutoScrollAction(with:animated:)", - "key.namelength" : 78, - "key.nameoffset" : 54145, - "key.offset" : 54140, - "key.parsed_declaration" : "private func performAutoScrollAction(with addedItems : Set, animated : Bool)", - "key.parsed_scope.end" : 1515, - "key.parsed_scope.start" : 1456, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> func autoScroll(with info: AutoScrollAction<\/Type>.Configuration<\/Type>)<\/Declaration>", - "key.bodylength" : 2643, - "key.bodyoffset" : 54665, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> autoScroll<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: AutoScrollAction<\/ref.enum>.Configuration<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.free>", - "key.kind" : "source.lang.swift.decl.function.free", - "key.length" : 2704, - "key.line" : 1471, - "key.modulename" : "ListableUI", - "key.name" : "autoScroll(with:)", - "key.namelength" : 53, - "key.nameoffset" : 54610, - "key.offset" : 54605, - "key.parsed_declaration" : "func autoScroll(with info: AutoScrollAction.Configuration)", - "key.parsed_scope.end" : 1514, - "key.parsed_scope.start" : 1471, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let animated: Bool<\/Type><\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Only animate the scroll if both the update **and** the scroll action are animated.", - "key.doc.column" : 21, - "key.doc.comment" : "Only animate the scroll if both the update **and** the scroll action are animated.", - "key.doc.declaration" : "let animated: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "animated<\/Name>s:10ListableUI8ListViewC23performAutoScrollAction33_A65B53D10B0C487915F0C0C4684244E8LL4with8animatedyShyAA13AnyIdentifierCG_SbtF04autoG0L_AFyAA0fgH0O13Configuration_p_tFAGL_Sbvp<\/USR>let animated: Bool<\/Declaration>Only animate the scroll if both the update and<\/bold> the scroll action are animated.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 1475, - "key.doc.name" : "animated", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> animated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 8, - "key.line" : 1475, - "key.modulename" : "ListableUI", - "key.name" : "animated", - "key.offset" : 54867, - "key.parsed_declaration" : "let animated", - "key.parsed_scope.end" : 1475, - "key.parsed_scope.start" : 1475, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC23performAutoScrollAction33_A65B53D10B0C487915F0C0C4684244E8LL4with8animatedyShyAA13AnyIdentifierCG_SbtF04autoG0L_AFyAA0fgH0O13Configuration_p_tFAGL_Sbvp" - } - ], - "key.typename" : "(any AutoScrollAction.Configuration) -> ()", - "key.typeusr" : "$s4withy10ListableUI16AutoScrollActionO13Configuration_p_tcD", - "key.usr" : "s:10ListableUI8ListViewC23performAutoScrollAction33_A65B53D10B0C487915F0C0C4684244E8LL4with8animatedyShyAA13AnyIdentifierCG_SbtF04autoG0L_AFyAA0fgH0O13Configuration_p_tF" - } - ], - "key.typename" : "(ListView) -> (Set, Bool) -> ()", - "key.typeusr" : "$s4with8animatedyShy10ListableUI13AnyIdentifierCG_SbtcD", - "key.usr" : "s:10ListableUI8ListViewC23performAutoScrollAction33_A65B53D10B0C487915F0C0C4684244E8LL4with8animatedyShyAA13AnyIdentifierCG_SbtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func performScroll(to targetFrame: CGRect<\/Type>, scrollPosition: ScrollPosition<\/Type>, animated: Bool<\/Type> = false, completion: ScrollCompletion<\/Type>? = nil)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 57321 - } - ], - "key.bodylength" : 2197, - "key.bodyoffset" : 57506, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "Perform an update after an animationless scroll so that `CollectionViewLayout`'s\n`prepare()` function will synchronously execute before calling `didPerform`. Otherwise,\nthe list's `visibleContent` and the resulting `scrollPositionInfo.visibleItems` will\nbe stale.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performScroll<\/decl.name>(to<\/decl.var.parameter.argument_label> targetFrame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, scrollPosition<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2375, - "key.line" : 1517, - "key.modulename" : "ListableUI", - "key.name" : "performScroll(to:scrollPosition:animated:completion:)", - "key.namelength" : 170, - "key.nameoffset" : 57334, - "key.offset" : 57329, - "key.parsed_declaration" : "private func performScroll(\n to targetFrame : CGRect,\n scrollPosition : ScrollPosition,\n animated: Bool = false,\n completion: ScrollCompletion? = nil\n)", - "key.parsed_scope.end" : 1572, - "key.parsed_scope.start" : 1517, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let isAlreadyVisible: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isAlreadyVisible<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 79, - "key.line" : 1525, - "key.modulename" : "ListableUI", - "key.name" : "isAlreadyVisible", - "key.namelength" : 16, - "key.nameoffset" : 57594, - "key.offset" : 57590, - "key.parsed_declaration" : "let isAlreadyVisible = collectionView.visibleContentFrame.contains(targetFrame)", - "key.parsed_scope.end" : 1525, - "key.parsed_scope.start" : 1525, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF16isAlreadyVisibleL_Sbvp" - }, - { - "key.annotated_decl" : "let shouldAnimate: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> shouldAnimate<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 59, - "key.line" : 1532, - "key.modulename" : "ListableUI", - "key.name" : "shouldAnimate", - "key.namelength" : 13, - "key.nameoffset" : 58034, - "key.offset" : 58030, - "key.parsed_declaration" : "let shouldAnimate = animated && UIView.areAnimationsEnabled", - "key.parsed_scope.end" : 1532, - "key.parsed_scope.start" : 1532, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF13shouldAnimateL_Sbvp" - }, - { - "key.annotated_decl" : "let topInset: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> topInset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 54, - "key.line" : 1534, - "key.modulename" : "ListableUI", - "key.name" : "topInset", - "key.namelength" : 8, - "key.nameoffset" : 58103, - "key.offset" : 58099, - "key.parsed_declaration" : "let topInset = collectionView.adjustedContentInset.top", - "key.parsed_scope.end" : 1534, - "key.parsed_scope.start" : 1534, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF8topInsetL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let contentFrameHeight: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentFrameHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 66, - "key.line" : 1535, - "key.modulename" : "ListableUI", - "key.name" : "contentFrameHeight", - "key.namelength" : 18, - "key.nameoffset" : 58166, - "key.offset" : 58162, - "key.parsed_declaration" : "let contentFrameHeight = collectionView.visibleContentFrame.height", - "key.parsed_scope.end" : 1535, - "key.parsed_scope.start" : 1535, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF18contentFrameHeightL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let adjustedOriginY: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> adjustedOriginY<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 1536, - "key.modulename" : "ListableUI", - "key.name" : "adjustedOriginY", - "key.namelength" : 15, - "key.nameoffset" : 58241, - "key.offset" : 58237, - "key.parsed_declaration" : "let adjustedOriginY = targetFrame.origin.y - topInset", - "key.parsed_scope.end" : 1536, - "key.parsed_scope.start" : 1536, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF15adjustedOriginYL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "var resultOffset: CGPoint<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> resultOffset<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 47, - "key.line" : 1538, - "key.modulename" : "ListableUI", - "key.name" : "resultOffset", - "key.namelength" : 12, - "key.nameoffset" : 58304, - "key.offset" : 58300, - "key.parsed_declaration" : "var resultOffset = collectionView.contentOffset", - "key.parsed_scope.end" : 1538, - "key.parsed_scope.start" : 1538, - "key.reusingastcontext" : false, - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF12resultOffsetL_So7CGPointVvp" - }, - { - "key.annotated_decl" : "let maxOffsetHeight: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> maxOffsetHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 107, - "key.line" : 1551, - "key.modulename" : "ListableUI", - "key.name" : "maxOffsetHeight", - "key.namelength" : 15, - "key.nameoffset" : 58773, - "key.offset" : 58769, - "key.parsed_declaration" : "let maxOffsetHeight = collectionViewLayout.collectionViewContentSize.height - contentFrameHeight - topInset", - "key.parsed_scope.end" : 1551, - "key.parsed_scope.start" : 1551, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF15maxOffsetHeightL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let roundedResultOffset: CGPoint<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> roundedResultOffset<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 119, - "key.line" : 1558, - "key.modulename" : "ListableUI", - "key.name" : "roundedResultOffset", - "key.namelength" : 19, - "key.nameoffset" : 59070, - "key.offset" : 59066, - "key.parsed_declaration" : "let roundedResultOffset = CGPoint(\n x: round(resultOffset.x),\n y: round(resultOffset.y)\n)", - "key.parsed_scope.end" : 1558, - "key.parsed_scope.start" : 1558, - "key.reusingastcontext" : false, - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF19roundedResultOffsetL_So7CGPointVvp" - }, - { - "key.annotated_decl" : "let roundedCurrentOffset: CGPoint<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> roundedCurrentOffset<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 152, - "key.line" : 1562, - "key.modulename" : "ListableUI", - "key.name" : "roundedCurrentOffset", - "key.namelength" : 20, - "key.nameoffset" : 59198, - "key.offset" : 59194, - "key.parsed_declaration" : "let roundedCurrentOffset = CGPoint(\n x: round(collectionView.contentOffset.x),\n y: round(collectionView.contentOffset.y)\n)", - "key.parsed_scope.end" : 1562, - "key.parsed_scope.start" : 1562, - "key.reusingastcontext" : false, - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF20roundedCurrentOffsetL_So7CGPointVvp" - } - ], - "key.typename" : "(ListView) -> (CGRect, ScrollPosition, Bool, ((ListStateObserver.DidEndScrollingAnimation) -> ())?) -> ()", - "key.typeusr" : "$s2to14scrollPosition8animated10completionySo6CGRectV_10ListableUI06ScrollC0VSbyAG17ListStateObserverV24DidEndScrollingAnimationVcSgtcD", - "key.usr" : "s:10ListableUI8ListViewC13performScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to14scrollPosition8animated10completionySo6CGRectV_AA0fR0VSbyAA0C13StateObserverV24DidEndScrollingAnimationVcSgtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func preparePresentationStateForScroll(to toIndexPath: IndexPath<\/Type>, handlerWhenFailed: ScrollCompletion<\/Type>?, scroll: @escaping () -> Void<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 59710 - } - ], - "key.bodylength" : 588, - "key.bodyoffset" : 59861, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preparePresentationStateForScroll<\/decl.name>(to<\/decl.var.parameter.argument_label> toIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, handlerWhenFailed<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type><\/decl.var.parameter>, scroll<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 732, - "key.line" : 1574, - "key.modulename" : "ListableUI", - "key.name" : "preparePresentationStateForScroll(to:handlerWhenFailed:scroll:)", - "key.namelength" : 128, - "key.nameoffset" : 59723, - "key.offset" : 59718, - "key.parsed_declaration" : "private func preparePresentationStateForScroll(to toIndexPath: IndexPath, handlerWhenFailed: ScrollCompletion?, scroll: @escaping () -> Void) -> Bool", - "key.parsed_scope.end" : 1594, - "key.parsed_scope.start" : 1574, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (IndexPath, ((ListStateObserver.DidEndScrollingAnimation) -> ())?, @escaping () -> ()) -> Bool", - "key.typeusr" : "$s2to17handlerWhenFailed6scrollSb10Foundation9IndexPathV_y10ListableUI17ListStateObserverV24DidEndScrollingAnimationVcSgyyctcD", - "key.usr" : "s:10ListableUI8ListViewC33preparePresentationStateForScroll33_A65B53D10B0C487915F0C0C4684244E8LL2to17handlerWhenFailed6scrollSb10Foundation9IndexPathV_yAA0cG8ObserverV24DidEndScrollingAnimationVcSgyyctF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func preparePresentationStateForScrollToSection(index: Int<\/Type>, handlerWhenFailed: ScrollCompletion<\/Type>?, scroll: @escaping () -> Void<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 60456 - } - ], - "key.bodylength" : 647, - "key.bodyoffset" : 60601, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preparePresentationStateForScrollToSection<\/decl.name>(index<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, handlerWhenFailed<\/decl.var.parameter.argument_label>: ScrollCompletion<\/ref.typealias>?<\/decl.var.parameter.type><\/decl.var.parameter>, scroll<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 785, - "key.line" : 1596, - "key.modulename" : "ListableUI", - "key.name" : "preparePresentationStateForScrollToSection(index:handlerWhenFailed:scroll:)", - "key.namelength" : 122, - "key.nameoffset" : 60469, - "key.offset" : 60464, - "key.parsed_declaration" : "private func preparePresentationStateForScrollToSection(index: Int, handlerWhenFailed: ScrollCompletion?, scroll: @escaping () -> Void) -> Bool", - "key.parsed_scope.end" : 1617, - "key.parsed_scope.start" : 1596, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (Int, ((ListStateObserver.DidEndScrollingAnimation) -> ())?, @escaping () -> ()) -> Bool", - "key.typeusr" : "$s5index17handlerWhenFailed6scrollSbSi_y10ListableUI17ListStateObserverV24DidEndScrollingAnimationVcSgyyctcD", - "key.usr" : "s:10ListableUI8ListViewC42preparePresentationStateForScrollToSection33_A65B53D10B0C487915F0C0C4684244E8LL5index17handlerWhenFailed6scrollSbSi_yAA0cG8ObserverV24DidEndScrollingAnimationVcSgyyctF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func performEmptyBatchUpdates()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 61425 - } - ], - "key.bodylength" : 158, - "key.bodyoffset" : 61466, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "This is similar to calling `collectionView.performBatchUpdates(nil)`, but\nit also includes workarounds for first responder bugs on iOS 16.4 and 17.0.", - "key.doc.column" : 18, - "key.doc.comment" : "This is similar to calling `collectionView.performBatchUpdates(nil)`, but\nit also includes workarounds for first responder bugs on iOS 16.4 and 17.0.", - "key.doc.declaration" : "@MainActor private func performEmptyBatchUpdates()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "performEmptyBatchUpdates()<\/Name>s:10ListableUI8ListViewC24performEmptyBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LLyyF<\/USR>@MainActor private func performEmptyBatchUpdates()<\/Declaration>This is similar to calling collectionView.performBatchUpdates(nil)<\/codeVoice>, but it also includes workarounds for first responder bugs on iOS 16.4 and 17.0.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 1621, - "key.doc.name" : "performEmptyBatchUpdates()", - "key.doc.type" : "Function", - "key.doclength" : 162, - "key.docoffset" : 61259, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performEmptyBatchUpdates<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 192, - "key.line" : 1621, - "key.modulename" : "ListableUI", - "key.name" : "performEmptyBatchUpdates()", - "key.namelength" : 26, - "key.nameoffset" : 61438, - "key.offset" : 61433, - "key.parsed_declaration" : "private func performEmptyBatchUpdates()", - "key.parsed_scope.end" : 1627, - "key.parsed_scope.start" : 1621, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC24performEmptyBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LLyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private func performBatchUpdates(with diff: SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>, animated: Bool<\/Type>, updateBackingData: @escaping () -> (), collectionViewUpdateCompletion callerCollectionViewUpdateCompletion: @escaping () -> (), animationCompletion callerAnimationCompletion: @escaping (Bool<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 61635 - } - ], - "key.bodylength" : 2340, - "key.bodyoffset" : 62012, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performBatchUpdates<\/decl.name>(with<\/decl.var.parameter.argument_label> diff<\/decl.var.parameter.name>: SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateBackingData<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, collectionViewUpdateCompletion<\/decl.var.parameter.argument_label> callerCollectionViewUpdateCompletion<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, animationCompletion<\/decl.var.parameter.argument_label> callerAnimationCompletion<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2710, - "key.line" : 1629, - "key.modulename" : "ListableUI", - "key.name" : "performBatchUpdates(with:animated:updateBackingData:collectionViewUpdateCompletion:animationCompletion:)", - "key.namelength" : 358, - "key.nameoffset" : 61648, - "key.offset" : 61643, - "key.parsed_declaration" : "private func performBatchUpdates(\n with diff : SectionedDiff,\n animated: Bool,\n updateBackingData : @escaping () -> (),\n collectionViewUpdateCompletion callerCollectionViewUpdateCompletion : @escaping () -> (),\n animationCompletion callerAnimationCompletion : @escaping (Bool) -> ()\n)", - "key.parsed_scope.end" : 1702, - "key.parsed_scope.start" : 1629, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let animationCompletion: (_ completed: Bool<\/Type>) -> ()<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> animationCompletion<\/decl.name>: (_ completed<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 210, - "key.line" : 1639, - "key.modulename" : "ListableUI", - "key.name" : "animationCompletion", - "key.namelength" : 19, - "key.nameoffset" : 62134, - "key.offset" : 62130, - "key.parsed_declaration" : "let animationCompletion = { (completed : Bool) in\n callerAnimationCompletion(completed)\n SignpostLogger.log(.end, log: .updateContent, name: \"Update UICollectionView\", for: self)\n}", - "key.parsed_scope.end" : 1639, - "key.parsed_scope.start" : 1639, - "key.reusingastcontext" : false, - "key.typename" : "(Bool) -> ()", - "key.typeusr" : "$syySbcD", - "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData010collectionD16UpdateCompletion09animationX0yAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA7AnyItem_pAPG_SbyycyycySbctFAJL_yySbcvp" - }, - { - "key.annotated_decl" : "let view: CollectionView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: CollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 30, - "key.line" : 1644, - "key.modulename" : "ListableUI", - "key.name" : "view", - "key.namelength" : 4, - "key.nameoffset" : 62362, - "key.offset" : 62358, - "key.parsed_declaration" : "let view = self.collectionView", - "key.parsed_scope.end" : 1644, - "key.parsed_scope.start" : 1644, - "key.reusingastcontext" : false, - "key.typename" : "CollectionView", - "key.typeusr" : "$s10ListableUI14CollectionViewCD", - "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData010collectionD16UpdateCompletion09animationX0yAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA7AnyItem_pAPG_SbyycyycySbctF4viewL_AA010CollectionD0Cvp" - }, - { - "key.annotated_decl" : "let changes: ListView<\/Type>.CollectionViewChanges<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> changes<\/decl.name>: ListView<\/ref.class>.CollectionViewChanges<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 65, - "key.line" : 1646, - "key.modulename" : "ListableUI", - "key.name" : "changes", - "key.namelength" : 7, - "key.nameoffset" : 62410, - "key.offset" : 62406, - "key.parsed_declaration" : "let changes = CollectionViewChanges(sectionChanges: diff.changes)", - "key.parsed_scope.end" : 1646, - "key.parsed_scope.start" : 1646, - "key.reusingastcontext" : false, - "key.typename" : "ListView.CollectionViewChanges", - "key.typeusr" : "$s10ListableUI8ListViewC010CollectionD7ChangesVD", - "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData010collectionD16UpdateCompletion09animationX0yAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA7AnyItem_pAPG_SbyycyycySbctF7changesL_AC010CollectionD7ChangesVvp" - }, - { - "key.annotated_decl" : "let batchUpdates: () -> ()<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> batchUpdates<\/decl.name>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 798, - "key.line" : 1648, - "key.modulename" : "ListableUI", - "key.name" : "batchUpdates", - "key.namelength" : 12, - "key.nameoffset" : 62497, - "key.offset" : 62493, - "key.parsed_declaration" : "let batchUpdates = {\n updateBackingData()\n \n \/\/ Sections\n\n view.deleteSections(IndexSet(changes.deletedSections.map { $0.oldIndex }))\n view.insertSections(IndexSet(changes.insertedSections.map { $0.newIndex }))\n \n changes.movedSections.forEach {\n view.moveSection($0.oldIndex, toSection: $0.newIndex)\n }\n\n \/\/ Items\n \n view.deleteItems(at: changes.deletedItems.map { $0.oldIndex })\n view.insertItems(at: changes.insertedItems.map { $0.newIndex })\n \n changes.movedItems.forEach {\n view.moveItem(at: $0.oldIndex, to: $0.newIndex)\n }\n \n callerCollectionViewUpdateCompletion()\n}", - "key.parsed_scope.end" : 1648, - "key.parsed_scope.start" : 1648, - "key.reusingastcontext" : false, - "key.typename" : "() -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData010collectionD16UpdateCompletion09animationX0yAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA7AnyItem_pAPG_SbyycyycySbctF05batchG0L_yycvp" - }, - { - "key.annotated_decl" : "let performUpdates: () -> ()<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> performUpdates<\/decl.name>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 196, - "key.line" : 1689, - "key.modulename" : "ListableUI", - "key.name" : "performUpdates", - "key.namelength" : 14, - "key.nameoffset" : 63987, - "key.offset" : 63983, - "key.parsed_declaration" : "let performUpdates = {\n view.performBatchUpdates(\n batchUpdates,\n changes: changes,\n completion: animationCompletion\n )\n}", - "key.parsed_scope.end" : 1689, - "key.parsed_scope.start" : 1689, - "key.reusingastcontext" : false, - "key.typename" : "() -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData010collectionD16UpdateCompletion09animationX0yAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA7AnyItem_pAPG_SbyycyycySbctF0eG0L_yycvp" - } - ], - "key.typename" : "(ListView) -> (SectionedDiff, Bool, @escaping () -> (), @escaping () -> (), @escaping (Bool) -> ()) -> ()", - "key.typeusr" : "$s4with8animated17updateBackingData30collectionViewUpdateCompletion09animationI0y10ListableUI13SectionedDiffVyAF7SectionVAF13AnyIdentifierCAF0P4Item_pALG_SbyycyycySbctcD", - "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData010collectionD16UpdateCompletion09animationX0yAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA7AnyItem_pAPG_SbyycyycySbctF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private static func diffWith(old: [Section<\/Type>], new: [Section<\/Type>]) -> SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 64363 - } - ], - "key.bodylength" : 605, - "key.bodyoffset" : 64496, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> diffWith<\/decl.name>(old<\/decl.var.parameter.argument_label>: [Section<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Section<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 731, - "key.line" : 1704, - "key.modulename" : "ListableUI", - "key.name" : "diffWith(old:new:)", - "key.namelength" : 42, - "key.nameoffset" : 64383, - "key.offset" : 64371, - "key.parsed_declaration" : "private static func diffWith(old : [Section], new : [Section]) -> SectionedDiff", - "key.parsed_scope.end" : 1722, - "key.parsed_scope.start" : 1704, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView.Type) -> ([Section], [Section]) -> SectionedDiff", - "key.typeusr" : "$s3old3new10ListableUI13SectionedDiffVyAC7SectionVAC13AnyIdentifierCAC0H4Item_pAIGSayAGG_ALtcD", - "key.usr" : "s:10ListableUI8ListViewC8diffWith33_A65B53D10B0C487915F0C0C4684244E8LL3old3newAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0U4Item_pAMGSayAKG_APtFZ" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 65107 - } - ], - "key.bodylength" : 698, - "key.bodyoffset" : 65134, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 719, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 65124, - "key.offset" : 65114, - "key.parsed_declaration" : "public extension ListView", - "key.parsed_scope.end" : 1744, - "key.parsed_scope.start" : 1726, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> func testing_forceLayoutUpdateNow()<\/Declaration>", - "key.bodylength" : 232, - "key.bodyoffset" : 65598, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Call this method to force an immediate, synchronous re-render of the list\nand its content when writing unit or snapshot tests. This avoids needing to\nspin the runloop or needing to use test expectations to wait for content\nto be rendered asynchronously.\n\n**WARNING**: You must **not** call this method outside of tests. Doing so will cause a fatal error.\n", - "key.doc.column" : 10, - "key.doc.comment" : "\nCall this method to force an immediate, synchronous re-render of the list\nand its content when writing unit or snapshot tests. This avoids needing to\nspin the runloop or needing to use test expectations to wait for content\nto be rendered asynchronously.\n\n**WARNING**: You must **not** call this method outside of tests. Doing so will cause a fatal error.", - "key.doc.declaration" : "@MainActor func testing_forceLayoutUpdateNow()", - "key.doc.discussion" : [ - { - "Para" : ": You must call this method outside of tests. Doing so will cause a fatal error." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "testing_forceLayoutUpdateNow()<\/Name>s:10ListableUI8ListViewC28testing_forceLayoutUpdateNowyyF<\/USR>@MainActor func testing_forceLayoutUpdateNow()<\/Declaration>Call this method to force an immediate, synchronous re-render of the list and its content when writing unit or snapshot tests. This avoids needing to spin the runloop or needing to use test expectations to wait for content to be rendered asynchronously.<\/Para><\/Abstract>WARNING<\/bold>: You must not<\/bold> call this method outside of tests. Doing so will cause a fatal error.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 1736, - "key.doc.name" : "testing_forceLayoutUpdateNow()", - "key.doc.type" : "Function", - "key.doclength" : 414, - "key.docoffset" : 65139, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> testing_forceLayoutUpdateNow<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 274, - "key.line" : 1736, - "key.modulename" : "ListableUI", - "key.name" : "testing_forceLayoutUpdateNow()", - "key.namelength" : 30, - "key.nameoffset" : 65562, - "key.offset" : 65557, - "key.parsed_declaration" : "func testing_forceLayoutUpdateNow()", - "key.parsed_scope.end" : 1743, - "key.parsed_scope.start" : 1736, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC28testing_forceLayoutUpdateNowyyF" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 802, - "key.bodyoffset" : 65883, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 24, - "key.offset" : 65857 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "KeyboardObserverDelegate" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 850, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 65846, - "key.offset" : 65836, - "key.parsed_declaration" : "extension ListView : KeyboardObserverDelegate", - "key.parsed_scope.end" : 1773, - "key.parsed_scope.start" : 1747, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func keyboardFrameWillChange(for observer: KeyboardObserver<\/Type>, animationDuration: Double<\/Type>, animationCurve: UIView<\/Type>.AnimationCurve<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 65888 - } - ], - "key.bodylength" : 660, - "key.bodyoffset" : 66023, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> keyboardFrameWillChange<\/decl.name>(for<\/decl.var.parameter.argument_label> observer<\/decl.var.parameter.name>: KeyboardObserver<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, animationDuration<\/decl.var.parameter.argument_label>: Double<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animationCurve<\/decl.var.parameter.argument_label>: UIView<\/ref.class>.AnimationCurve<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 789, - "key.line" : 1749, - "key.modulename" : "ListableUI", - "key.name" : "keyboardFrameWillChange(for:animationDuration:animationCurve:)", - "key.namelength" : 121, - "key.nameoffset" : 65900, - "key.offset" : 65895, - "key.overrides" : [ - { - "key.usr" : "s:16KeyboardObserver0aB8DelegateP23keyboardFrameWillChange3for17animationDuration0I5CurveyA2AC_SdSo015UIViewAnimationK0VtF" - } - ], - "key.parsed_declaration" : "public func keyboardFrameWillChange(for observer: KeyboardObserver, animationDuration: Double, animationCurve: UIView.AnimationCurve)", - "key.parsed_scope.end" : 1772, - "key.parsed_scope.start" : 1749, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (KeyboardObserver, Double, UIView.AnimationCurve) -> ()", - "key.typeusr" : "$s3for17animationDuration0B5Curvey16KeyboardObserverADC_SdSo015UIViewAnimationD0VtcD", - "key.usr" : "s:10ListableUI8ListViewC23keyboardFrameWillChange3for17animationDuration0J5Curvey16KeyboardObserverAHC_SdSo015UIViewAnimationL0VtF" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 154, - "key.bodyoffset" : 66742, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 30, - "key.offset" : 66710 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContentCoordinatorDelegate" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 208, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 66699, - "key.offset" : 66689, - "key.parsed_declaration" : "extension ListView : ItemContentCoordinatorDelegate", - "key.parsed_scope.end" : 1783, - "key.parsed_scope.start" : 1776, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> func coordinatorUpdated(for: AnyItem<\/Type>)<\/Declaration>", - "key.bodylength" : 103, - "key.bodyoffset" : 66791, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> coordinatorUpdated<\/decl.name>(for<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 148, - "key.line" : 1778, - "key.modulename" : "ListableUI", - "key.name" : "coordinatorUpdated(for:)", - "key.namelength" : 33, - "key.nameoffset" : 66752, - "key.offset" : 66747, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI30ItemContentCoordinatorDelegateP18coordinatorUpdated3foryAA03AnyC0_p_tF" - } - ], - "key.parsed_declaration" : "func coordinatorUpdated(for : AnyItem)", - "key.parsed_scope.end" : 1782, - "key.parsed_scope.start" : 1778, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (any AnyItem) -> ()", - "key.typeusr" : "$s3fory10ListableUI7AnyItem_p_tcD", - "key.usr" : "s:10ListableUI8ListViewC18coordinatorUpdated3foryAA7AnyItem_p_tF" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 4827, - "key.bodyoffset" : 66948, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 25, - "key.offset" : 66921 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ReorderingActionsDelegate" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 4876, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 66910, - "key.offset" : 66900, - "key.parsed_declaration" : "extension ListView : ReorderingActionsDelegate", - "key.parsed_scope.end" : 1907, - "key.parsed_scope.start" : 1786, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 29, - "key.name" : "MARK: Internal - Moving Items", - "key.offset" : 66963 - }, - { - "key.annotated_decl" : "@MainActor<\/Type> func beginReorder(for item: AnyPresentationItemState<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 378, - "key.bodyoffset" : 67077, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> beginReorder<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 447, - "key.line" : 1792, - "key.modulename" : "ListableUI", - "key.name" : "beginReorder(for:)", - "key.namelength" : 49, - "key.nameoffset" : 67014, - "key.offset" : 67009, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP12beginReorder3forSbAA24AnyPresentationItemState_p_tF" - } - ], - "key.parsed_declaration" : "func beginReorder(for item : AnyPresentationItemState) -> Bool", - "key.parsed_scope.end" : 1805, - "key.parsed_scope.start" : 1792, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (any AnyPresentationItemState) -> Bool", - "key.typeusr" : "$s3forSb10ListableUI24AnyPresentationItemState_p_tcD", - "key.usr" : "s:10ListableUI8ListViewC12beginReorder3forSbAA24AnyPresentationItemState_p_tF" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> func updateReorderTargetPosition(with recognizer: ItemReordering<\/Type>.GestureRecognizer<\/Type>, for item: AnyPresentationItemState<\/Type>)<\/Declaration>", - "key.bodylength" : 209, - "key.bodyoffset" : 67615, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> updateReorderTargetPosition<\/decl.name>(with<\/decl.var.parameter.argument_label> recognizer<\/decl.var.parameter.name>: ItemReordering<\/ref.struct>.GestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 359, - "key.line" : 1807, - "key.modulename" : "ListableUI", - "key.name" : "updateReorderTargetPosition(with:for:)", - "key.namelength" : 138, - "key.nameoffset" : 67471, - "key.offset" : 67466, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP27updateReorderTargetPosition4with3foryAA04ItemC0V17GestureRecognizerC_AA015AnyPresentationL5State_ptF" - } - ], - "key.parsed_declaration" : "func updateReorderTargetPosition(\n with recognizer : ItemReordering.GestureRecognizer,\n for item : AnyPresentationItemState\n)", - "key.parsed_scope.end" : 1817, - "key.parsed_scope.start" : 1807, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (ItemReordering.GestureRecognizer, any AnyPresentationItemState) -> ()", - "key.typeusr" : "$s4with3fory10ListableUI14ItemReorderingV17GestureRecognizerC_AC015AnyPresentationE5State_ptcD", - "key.usr" : "s:10ListableUI8ListViewC27updateReorderTargetPosition4with3foryAA14ItemReorderingV17GestureRecognizerC_AA015AnyPresentationK5State_ptF" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> func endReorder(for item: AnyPresentationItemState<\/Type>, with result: ReorderingActions<\/Type>.Result<\/Type>)<\/Declaration>", - "key.bodylength" : 278, - "key.bodyoffset" : 67933, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> endReorder<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> result<\/decl.var.parameter.name>: ReorderingActions<\/ref.class>.Result<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 377, - "key.line" : 1819, - "key.modulename" : "ListableUI", - "key.name" : "endReorder(for:with:)", - "key.namelength" : 87, - "key.nameoffset" : 67840, - "key.offset" : 67835, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP10endReorder3for4withyAA24AnyPresentationItemState_p_AA0cD0C6ResultOtF" - } - ], - "key.parsed_declaration" : "func endReorder(for item : AnyPresentationItemState, with result : ReorderingActions.Result)", - "key.parsed_scope.end" : 1829, - "key.parsed_scope.start" : 1819, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> (any AnyPresentationItemState, ReorderingActions.Result) -> ()", - "key.typeusr" : "$s3for4withy10ListableUI24AnyPresentationItemState_p_AC17ReorderingActionsC6ResultOtcD", - "key.usr" : "s:10ListableUI8ListViewC10endReorder3for4withyAA24AnyPresentationItemState_p_AA17ReorderingActionsC6ResultOtF" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> func accessibilityMove(item: AnyPresentationItemState<\/Type>, direction: ReorderingActions<\/Type>.AccessibilityMoveDirection<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 2843, - "key.bodyoffset" : 68343, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> accessibilityMove<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: ReorderingActions<\/ref.class>.AccessibilityMoveDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 2965, - "key.line" : 1831, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityMove(item:direction:)", - "key.namelength" : 106, - "key.nameoffset" : 68227, - "key.offset" : 68222, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP17accessibilityMove4item9directionSbAA24AnyPresentationItemState_p_AA0cD0C013AccessibilityG9DirectionOtF" - } - ], - "key.parsed_declaration" : "func accessibilityMove(item: AnyPresentationItemState, direction: ReorderingActions.AccessibilityMoveDirection) -> Bool", - "key.parsed_scope.end" : 1884, - "key.parsed_scope.start" : 1831, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let destinationPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> destinationPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 31, - "key.line" : 1837, - "key.modulename" : "ListableUI", - "key.name" : "destinationPath", - "key.namelength" : 15, - "key.nameoffset" : 68568, - "key.offset" : 68564, - "key.parsed_declaration" : "let destinationPath : IndexPath", - "key.parsed_scope.end" : 1837, - "key.parsed_scope.start" : 1837, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI8ListViewC17accessibilityMove4item9directionSbAA24AnyPresentationItemState_p_AA17ReorderingActionsC013AccessibilityF9DirectionOtF15destinationPathL_10Foundation05IndexR0Vvp" - }, - { - "key.annotated_decl" : "let targetPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> targetPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 149, - "key.line" : 1871, - "key.modulename" : "ListableUI", - "key.name" : "targetPath", - "key.namelength" : 10, - "key.nameoffset" : 70175, - "key.offset" : 70171, - "key.parsed_declaration" : "let targetPath = self.delegate.collectionView(self.collectionView, targetIndexPathForMoveFromItemAt: indexPath, toProposedIndexPath: destinationPath)", - "key.parsed_scope.end" : 1871, - "key.parsed_scope.start" : 1871, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI8ListViewC17accessibilityMove4item9directionSbAA24AnyPresentationItemState_p_AA17ReorderingActionsC013AccessibilityF9DirectionOtF10targetPathL_10Foundation05IndexR0Vvp" - } - ], - "key.typename" : "(ListView) -> (any AnyPresentationItemState, ReorderingActions.AccessibilityMoveDirection) -> Bool", - "key.typeusr" : "$s4item9directionSb10ListableUI24AnyPresentationItemState_p_AC17ReorderingActionsC26AccessibilityMoveDirectionOtcD", - "key.usr" : "s:10ListableUI8ListViewC17accessibilityMove4item9directionSbAA24AnyPresentationItemState_p_AA17ReorderingActionsC013AccessibilityF9DirectionOtF" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> func cancelAllInProgressReorders()<\/Declaration>", - "key.bodylength" : 225, - "key.bodyoffset" : 71233, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> cancelAllInProgressReorders<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 262, - "key.line" : 1886, - "key.modulename" : "ListableUI", - "key.name" : "cancelAllInProgressReorders()", - "key.namelength" : 29, - "key.nameoffset" : 71202, - "key.offset" : 71197, - "key.parsed_declaration" : "func cancelAllInProgressReorders()", - "key.parsed_scope.end" : 1893, - "key.parsed_scope.start" : 1886, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI8ListViewC27cancelAllInProgressReordersyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var hasInProgressReorders: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 71469 - } - ], - "key.bodylength" : 262, - "key.bodyoffset" : 71511, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasInProgressReorders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 297, - "key.line" : 1895, - "key.modulename" : "ListableUI", - "key.name" : "hasInProgressReorders", - "key.namelength" : 21, - "key.nameoffset" : 71481, - "key.offset" : 71477, - "key.parsed_declaration" : "private var hasInProgressReorders : Bool", - "key.parsed_scope.end" : 1906, - "key.parsed_scope.start" : 1895, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI8ListViewC21hasInProgressReorders33_A65B53D10B0C487915F0C0C4684244E8LLSbvp" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - }, - { - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.bodylength" : 229, - "key.bodyoffset" : 71818, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 71800 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "SignpostLoggable" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 269, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 71789, - "key.offset" : 71779, - "key.parsed_declaration" : "extension ListView : SignpostLoggable", - "key.parsed_scope.end" : 1918, - "key.parsed_scope.start" : 1910, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> var signpostInfo: SignpostLoggingInfo<\/Type> { get }<\/Declaration>", - "key.bodylength" : 182, - "key.bodyoffset" : 71863, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> signpostInfo<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 223, - "key.line" : 1912, - "key.modulename" : "ListableUI", - "key.name" : "signpostInfo", - "key.namelength" : 12, - "key.nameoffset" : 71827, - "key.offset" : 71823, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI16SignpostLoggableP12signpostInfoAA0c7LoggingF0Vvp" - } - ], - "key.parsed_declaration" : "var signpostInfo : SignpostLoggingInfo", - "key.parsed_scope.end" : 1917, - "key.parsed_scope.start" : 1912, - "key.reusingastcontext" : false, - "key.typename" : "SignpostLoggingInfo", - "key.typeusr" : "$s10ListableUI19SignpostLoggingInfoVD", - "key.usr" : "s:10ListableUI8ListViewC12signpostInfoAA015SignpostLoggingF0Vvp" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@MainActor<\/Type> @_nonSendable(_assumed) class UIScrollView : UIView<\/Type>, NSCoding<\/Type>, UIFocusItemScrollableContainer<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 72051 - } - ], - "key.bodylength" : 273, - "key.bodyoffset" : 72087, - "key.column" : 12, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIScrollView<\/decl.name> : UIView<\/ref.class>, NSCoding<\/ref.protocol>, UIFocusItemScrollableContainer<\/ref.protocol><\/decl.class>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 298, - "key.line" : 87, - "key.modulename" : "UIKit.UIScrollView", - "key.name" : "UIScrollView", - "key.namelength" : 12, - "key.nameoffset" : 72073, - "key.offset" : 72063, - "key.parsed_declaration" : "fileprivate extension UIScrollView", - "key.parsed_scope.end" : 1931, - "key.parsed_scope.start" : 1921, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "@MainActor<\/Type> func isScrolledNearBottom() -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 224, - "key.bodyoffset" : 72134, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> isScrolledNearBottom<\/decl.name>() -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 266, - "key.line" : 1924, - "key.modulename" : "ListableUI", - "key.name" : "isScrolledNearBottom()", - "key.namelength" : 22, - "key.nameoffset" : 72098, - "key.offset" : 72093, - "key.parsed_declaration" : "func isScrolledNearBottom() -> Bool", - "key.parsed_scope.end" : 1930, - "key.parsed_scope.start" : 1924, - "key.receivers" : [ - { - "key.usr" : "c:objc(cs)UIScrollView" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let viewHeight: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 40, - "key.line" : 1926, - "key.modulename" : "ListableUI", - "key.name" : "viewHeight", - "key.namelength" : 10, - "key.nameoffset" : 72147, - "key.offset" : 72143, - "key.parsed_declaration" : "let viewHeight = self.bounds.size.height", - "key.parsed_scope.end" : 1926, - "key.parsed_scope.start" : 1926, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:So12UIScrollViewC10ListableUIE20isScrolledNearBottom33_A65B53D10B0C487915F0C0C4684244E8LLSbyF10viewHeightL_14CoreFoundation7CGFloatVvp" - } - ], - "key.typename" : "(UIScrollView) -> () -> Bool", - "key.typeusr" : "$sSbycD", - "key.usr" : "s:So12UIScrollViewC10ListableUIE20isScrolledNearBottom33_A65B53D10B0C487915F0C0C4684244E8LLSbyF" - } - ], - "key.typename" : "UIScrollView.Type", - "key.typeusr" : "$sSo12UIScrollViewCmD", - "key.usr" : "c:objc(cs)UIScrollView" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> final class CollectionView : ListView<\/Type>.IOS16_4_First_Responder_Bug_CollectionView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 72364 - } - ], - "key.bodylength" : 4067, - "key.bodyoffset" : 72446, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 51, - "key.offset" : 72393 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> CollectionView<\/decl.name> : ListView<\/ref.class>.IOS16_4_First_Responder_Bug_CollectionView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ListView.IOS16_4_First_Responder_Bug_CollectionView" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 4144, - "key.line" : 1934, - "key.modulename" : "ListableUI", - "key.name" : "CollectionView", - "key.namelength" : 14, - "key.nameoffset" : 72376, - "key.offset" : 72370, - "key.parsed_declaration" : "final class CollectionView : ListView.IOS16_4_First_Responder_Bug_CollectionView", - "key.parsed_scope.end" : 2030, - "key.parsed_scope.start" : 1934, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var verticalLayoutGravity: Behavior<\/Type>.VerticalLayoutGravity<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> verticalLayoutGravity<\/decl.name>: Behavior<\/ref.struct>.VerticalLayoutGravity<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 65, - "key.line" : 1936, - "key.modulename" : "ListableUI", - "key.name" : "verticalLayoutGravity", - "key.namelength" : 21, - "key.nameoffset" : 72460, - "key.offset" : 72456, - "key.parsed_declaration" : "var verticalLayoutGravity : Behavior.VerticalLayoutGravity = .top", - "key.parsed_scope.end" : 1936, - "key.parsed_scope.start" : 1936, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Behavior.VerticalLayoutGravity", - "key.typeusr" : "$s10ListableUI8BehaviorV21VerticalLayoutGravityOD", - "key.usr" : "s:10ListableUI14CollectionViewC21verticalLayoutGravityAA8BehaviorV08VerticalfG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var layoutDirection: LayoutDirection<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> layoutDirection<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 1937, - "key.modulename" : "ListableUI", - "key.name" : "layoutDirection", - "key.namelength" : 15, - "key.nameoffset" : 72530, - "key.offset" : 72526, - "key.parsed_declaration" : "var layoutDirection: LayoutDirection = .vertical", - "key.parsed_scope.end" : 1937, - "key.parsed_scope.start" : 1937, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI14CollectionViewC15layoutDirectionAA06LayoutF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var ignoreBottomGravityOffsetOverride: Bool<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Normally, using `VerticalLayoutGravity.bottom` will keep the viewport anchored at the bottom.\nThis happens in overrides of `contentSize`, `contentInset`, and `frame`. When this variable is\n`true`, the logic in those overrides is ignored. This can be used to ensure `AutoScrollAction`\nhas a chance to scroll to the desired item when mixing it with `VerticalLayoutGravity.bottom`.", - "key.doc.column" : 9, - "key.doc.comment" : "Normally, using `VerticalLayoutGravity.bottom` will keep the viewport anchored at the bottom.\nThis happens in overrides of `contentSize`, `contentInset`, and `frame`. When this variable is\n`true`, the logic in those overrides is ignored. This can be used to ensure `AutoScrollAction`\nhas a chance to scroll to the desired item when mixing it with `VerticalLayoutGravity.bottom`.", - "key.doc.declaration" : "@MainActor var ignoreBottomGravityOffsetOverride: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "ignoreBottomGravityOffsetOverride<\/Name>s:10ListableUI14CollectionViewC33ignoreBottomGravityOffsetOverrideSbvp<\/USR>@MainActor var ignoreBottomGravityOffsetOverride: Bool<\/Declaration>Normally, using VerticalLayoutGravity.bottom<\/codeVoice> will keep the viewport anchored at the bottom. This happens in overrides of contentSize<\/codeVoice>, contentInset<\/codeVoice>, and frame<\/codeVoice>. When this variable is true<\/codeVoice>, the logic in those overrides is ignored. This can be used to ensure AutoScrollAction<\/codeVoice> has a chance to scroll to the desired item when mixing it with VerticalLayoutGravity.bottom<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 1943, - "key.doc.name" : "ignoreBottomGravityOffsetOverride", - "key.doc.type" : "Other", - "key.doclength" : 407, - "key.docoffset" : 72584, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> ignoreBottomGravityOffsetOverride<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 51, - "key.line" : 1943, - "key.modulename" : "ListableUI", - "key.name" : "ignoreBottomGravityOffsetOverride", - "key.namelength" : 33, - "key.nameoffset" : 72999, - "key.offset" : 72995, - "key.parsed_declaration" : "var ignoreBottomGravityOffsetOverride: Bool = false", - "key.parsed_scope.end" : 1943, - "key.parsed_scope.start" : 1943, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI14CollectionViewC33ignoreBottomGravityOffsetOverrideSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override var contentSize: CGSize<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 73052 - } - ], - "key.bodylength" : 1178, - "key.bodyoffset" : 73086, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 1204, - "key.line" : 1945, - "key.modulename" : "ListableUI", - "key.name" : "contentSize", - "key.namelength" : 11, - "key.nameoffset" : 73065, - "key.offset" : 73061, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIScrollView(py)contentSize" - } - ], - "key.parsed_declaration" : "override var contentSize: CGSize", - "key.parsed_scope.end" : 1969, - "key.parsed_scope.start" : 1945, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionView(py)contentSize" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override var contentInset: UIEdgeInsets<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 74272 - } - ], - "key.bodylength" : 906, - "key.bodyoffset" : 74313, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentInset<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 939, - "key.line" : 1971, - "key.modulename" : "ListableUI", - "key.name" : "contentInset", - "key.namelength" : 12, - "key.nameoffset" : 74285, - "key.offset" : 74281, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIScrollView(py)contentInset" - } - ], - "key.parsed_declaration" : "override var contentInset: UIEdgeInsets", - "key.parsed_scope.end" : 1990, - "key.parsed_scope.start" : 1971, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "UIEdgeInsets", - "key.typeusr" : "$sSo12UIEdgeInsetsVD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionView(py)contentInset" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var previousContentOffset: CGPoint<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 75226 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> previousContentOffset<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 42, - "key.line" : 1992, - "key.modulename" : "ListableUI", - "key.name" : "previousContentOffset", - "key.namelength" : 21, - "key.nameoffset" : 75238, - "key.offset" : 75234, - "key.parsed_declaration" : "private var previousContentOffset: CGPoint = .zero", - "key.parsed_scope.end" : 1992, - "key.parsed_scope.start" : 1992, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "s:10ListableUI14CollectionViewC21previousContentOffset33_A65B53D10B0C487915F0C0C4684244E8LLSo7CGPointVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override var contentOffset: CGPoint<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 75281 - } - ], - "key.bodylength" : 77, - "key.bodyoffset" : 75318, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentOffset<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 106, - "key.line" : 1993, - "key.modulename" : "ListableUI", - "key.name" : "contentOffset", - "key.namelength" : 13, - "key.nameoffset" : 75294, - "key.offset" : 75290, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIScrollView(py)contentOffset" - } - ], - "key.parsed_declaration" : "override var contentOffset: CGPoint", - "key.parsed_scope.end" : 1997, - "key.parsed_scope.start" : 1993, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGPoint", - "key.typeusr" : "$sSo7CGPointVD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionView(py)contentOffset" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> var isContentScrollable: Bool<\/Type> { get }<\/Declaration>", - "key.bodylength" : 231, - "key.bodyoffset" : 75576, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns true when the content size is large enough that scrolling is possible\nwithout bouncing back to it's original position.", - "key.doc.column" : 9, - "key.doc.comment" : "Returns true when the content size is large enough that scrolling is possible\nwithout bouncing back to it's original position.", - "key.doc.declaration" : "@MainActor var isContentScrollable: Bool { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.doc.full_as_xml" : "isContentScrollable<\/Name>s:10ListableUI14CollectionViewC19isContentScrollableSbvp<\/USR>@MainActor var isContentScrollable: Bool { get }<\/Declaration>Returns true when the content size is large enough that scrolling is possible without bouncing back to it’s original position.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 2001, - "key.doc.name" : "isContentScrollable", - "key.doc.type" : "Other", - "key.doclength" : 139, - "key.docoffset" : 75402, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> isContentScrollable<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 263, - "key.line" : 2001, - "key.modulename" : "ListableUI", - "key.name" : "isContentScrollable", - "key.namelength" : 19, - "key.nameoffset" : 75549, - "key.offset" : 75545, - "key.parsed_declaration" : "var isContentScrollable: Bool", - "key.parsed_scope.end" : 2009, - "key.parsed_scope.start" : 2001, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI14CollectionViewC19isContentScrollableSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@MainActor<\/Type> override var frame: CGRect<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 75814 - } - ], - "key.bodylength" : 669, - "key.bodyoffset" : 75842, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 689, - "key.line" : 2011, - "key.modulename" : "ListableUI", - "key.name" : "frame", - "key.namelength" : 5, - "key.nameoffset" : 75827, - "key.offset" : 75823, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(py)frame" - } - ], - "key.parsed_declaration" : "override var frame: CGRect", - "key.parsed_scope.end" : 2029, - "key.parsed_scope.start" : 2011, - "key.related_decls" : [ - { - "key.annotated_decl" : "frame(forAlignmentRect:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionView(py)frame" - } - ], - "key.typename" : "CollectionView.Type", - "key.typeusr" : "$s10ListableUI14CollectionViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)CollectionView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1216, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class UpdateCallbacks<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 133 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 126 - } - ], - "key.bodylength" : 1052, - "key.bodyoffset" : 162, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> UpdateCallbacks<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1076, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "UpdateCallbacks", - "key.namelength" : 15, - "key.nameoffset" : 145, - "key.offset" : 139, - "key.parsed_declaration" : "public final class UpdateCallbacks", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let executionType: ExecutionType<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> executionType<\/decl.name>: ExecutionType<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 33, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "executionType", - "key.namelength" : 13, - "key.nameoffset" : 176, - "key.offset" : 172, - "key.parsed_declaration" : "let executionType : ExecutionType", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.typename" : "UpdateCallbacks.ExecutionType", - "key.typeusr" : "$s10ListableUI15UpdateCallbacksC13ExecutionTypeOD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC13executionTypeAC09ExecutionF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let wantsAnimations: Bool<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wantsAnimations<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "wantsAnimations", - "key.namelength" : 15, - "key.nameoffset" : 214, - "key.offset" : 210, - "key.parsed_declaration" : "let wantsAnimations : Bool", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC15wantsAnimationsSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(_ executionType: ExecutionType<\/Type>, wantsAnimations: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 95, - "key.bodyoffset" : 309, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> executionType<\/decl.var.parameter.name>: ExecutionType<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, wantsAnimations<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 159, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "init(_:wantsAnimations:)", - "key.namelength" : 61, - "key.nameoffset" : 246, - "key.offset" : 246, - "key.parsed_declaration" : "init(_ executionType : ExecutionType, wantsAnimations : Bool)", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UpdateCallbacks.Type) -> (UpdateCallbacks.ExecutionType, Bool) -> UpdateCallbacks", - "key.typeusr" : "$s_15wantsAnimations10ListableUI15UpdateCallbacksCAD13ExecutionTypeO_SbtcD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC_15wantsAnimationsA2C13ExecutionTypeO_Sbtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "deinit<\/Declaration>", - "key.bodylength" : 46, - "key.bodyoffset" : 423, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "deinit<\/syntaxtype.keyword><\/decl.function.destructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 55, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "deinit", - "key.namelength" : 6, - "key.nameoffset" : 415, - "key.offset" : 415, - "key.parsed_declaration" : "deinit", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UpdateCallbacks) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI15UpdateCallbacksCfd" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "private(set) var calls: [() -> ()] { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 476 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> calls<\/decl.name>: [() -> ()<\/tuple><\/decl.function.returntype>]<\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "calls", - "key.namelength" : 5, - "key.nameoffset" : 493, - "key.offset" : 489, - "key.parsed_declaration" : "private(set) var calls : [() -> ()] = []", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "[() -> ()]", - "key.typeusr" : "$sSayyycGD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC5callsSayyycGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func add(if performsCallbacks: Bool<\/Type>, _ call: @escaping () -> ())<\/Declaration>", - "key.bodylength" : 214, - "key.bodyoffset" : 598, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> add<\/decl.name>(if<\/decl.var.parameter.argument_label> performsCallbacks<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> call<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 283, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "add(if:_:)", - "key.namelength" : 61, - "key.nameoffset" : 535, - "key.offset" : 530, - "key.parsed_declaration" : "func add(if performsCallbacks : Bool, _ call : @escaping () -> ())", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UpdateCallbacks) -> (Bool, @escaping () -> ()) -> ()", - "key.typeusr" : "$s2if_ySb_yyctcD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC3add2if_ySb_yyctF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func performAnimation(_ animations: @escaping () -> ())<\/Declaration>", - "key.bodylength" : 161, - "key.bodyoffset" : 881, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> performAnimation<\/decl.name>(_<\/decl.var.parameter.argument_label> animations<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 220, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "performAnimation(_:)", - "key.namelength" : 51, - "key.nameoffset" : 828, - "key.offset" : 823, - "key.parsed_declaration" : "func performAnimation(_ animations : @escaping () -> ())", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UpdateCallbacks) -> (@escaping () -> ()) -> ()", - "key.typeusr" : "$syyyyccD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC16performAnimationyyyycF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func perform()<\/Declaration>", - "key.bodylength" : 65, - "key.bodyoffset" : 1069, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> perform<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 82, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "perform()", - "key.namelength" : 9, - "key.nameoffset" : 1058, - "key.offset" : 1053, - "key.parsed_declaration" : "func perform()", - "key.parsed_scope.end" : 51, - "key.parsed_scope.start" : 48, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(UpdateCallbacks) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC7performyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "enum UpdateCallbacks<\/Type>.ExecutionType<\/Declaration>", - "key.bodylength" : 47, - "key.bodyoffset" : 1165, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> UpdateCallbacks<\/ref.class>.ExecutionType<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 68, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "ExecutionType", - "key.namelength" : 13, - "key.nameoffset" : 1150, - "key.offset" : 1145, - "key.parsed_declaration" : "enum ExecutionType", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 53, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 14, - "key.offset" : 1174, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case immediate<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> immediate<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 9, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "immediate", - "key.namelength" : 9, - "key.nameoffset" : 1179, - "key.offset" : 1179, - "key.parsed_declaration" : "case immediate", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 54, - "key.reusingastcontext" : false, - "key.typename" : "(UpdateCallbacks.ExecutionType.Type) -> UpdateCallbacks.ExecutionType", - "key.typeusr" : "$sy10ListableUI15UpdateCallbacksC13ExecutionTypeOAEmcD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC13ExecutionTypeO9immediateyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 10, - "key.offset" : 1197, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "case queue<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> queue<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 5, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "queue", - "key.namelength" : 5, - "key.nameoffset" : 1202, - "key.offset" : 1202, - "key.parsed_declaration" : "case queue", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.typename" : "(UpdateCallbacks.ExecutionType.Type) -> UpdateCallbacks.ExecutionType", - "key.typeusr" : "$sy10ListableUI15UpdateCallbacksC13ExecutionTypeOAEmcD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC13ExecutionTypeO5queueyA2EmF" - } - ] - } - ], - "key.typename" : "UpdateCallbacks.ExecutionType.Type", - "key.typeusr" : "$s10ListableUI15UpdateCallbacksC13ExecutionTypeOmD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC13ExecutionTypeO" - } - ], - "key.typename" : "UpdateCallbacks.Type", - "key.typeusr" : "$s10ListableUI15UpdateCallbacksCmD", - "key.usr" : "s:10ListableUI15UpdateCallbacksC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 6108, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.open", - "key.annotated_decl" : "@MainActor<\/Type> open class ListViewController : UIViewController<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.open", - "key.length" : 4, - "key.offset" : 848 - } - ], - "key.bodylength" : 2993, - "key.bodyoffset" : 898, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A class which provides an easy way to set up and display a `ListView`,\nThe `ListViewController` itself manages setup and presentation of the `ListView`.\n\nAs a consumer of the API, all you need to do is override one method:\n```\nfunc configure(list : inout ListProperties) {\n ...\n}\n```\nIn which you set up and configure the list as needed.\n\nIn order to reload the list when content changes or other display changes are required, call\n```\nfunc reload(animated : Bool = false)\n```\nWhich will update the list with the new contents returned from your `configure` method.\nIf the `ListViewController`'s view is not loaded, this method has no effect.\n", - "key.doc.column" : 12, - "key.doc.comment" : "\nA class which provides an easy way to set up and display a `ListView`,\nThe `ListViewController` itself manages setup and presentation of the `ListView`.\n\nAs a consumer of the API, all you need to do is override one method:\n```\nfunc configure(list : inout ListProperties) {\n ...\n}\n```\nIn which you set up and configure the list as needed.\n\nIn order to reload the list when content changes or other display changes are required, call\n```\nfunc reload(animated : Bool = false)\n```\nWhich will update the list with the new contents returned from your `configure` method.\nIf the `ListViewController`'s view is not loaded, this method has no effect.", - "key.doc.declaration" : "@MainActor open class ListViewController : UIViewController", - "key.doc.discussion" : [ - { - "Para" : "As a consumer of the API, all you need to do is override one method:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "In which you set up and configure the list as needed." - }, - { - "Para" : "In order to reload the list when content changes or other display changes are required, call" - }, - { - "CodeListing" : "" - }, - { - "Para" : "Which will update the list with the new contents returned from your `configure` method. If the `ListViewController`’s view is not loaded, this method has no effect." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.doc.full_as_xml" : "ListViewController<\/Name>c:@M@ListableUI@objc(cs)ListViewController<\/USR>@MainActor open class ListViewController : UIViewController<\/Declaration>A class which provides an easy way to set up and display a ListView<\/codeVoice>, The ListViewController<\/codeVoice> itself manages setup and presentation of the ListView<\/codeVoice>.<\/Para><\/Abstract>As a consumer of the API, all you need to do is override one method:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In which you set up and configure the list as needed.<\/Para>In order to reload the list when content changes or other display changes are required, call<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which will update the list with the new contents returned from your configure<\/codeVoice> method. If the ListViewController<\/codeVoice>’s view is not loaded, this method has no effect.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 31, - "key.doc.name" : "ListViewController", - "key.doc.type" : "Class", - "key.doclength" : 719, - "key.docoffset" : 129, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 16, - "key.offset" : 880 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> open<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListViewController<\/decl.name> : UIViewController<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIViewController" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 3039, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "ListViewController", - "key.namelength" : 18, - "key.nameoffset" : 859, - "key.offset" : 853, - "key.parsed_declaration" : "open class ListViewController : UIViewController", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 19, - "key.name" : "MARK: Configuration", - "key.offset" : 913 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var clearsSelectionOnViewWillAppear: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1183 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value for `clearsSelectionOnViewWillAppear` is true.\nThis parameter allows mirroring the `clearsSelectionOnViewWillAppear`\nas available from `UITableViewController` or `UICollectionViewController`.", - "key.doc.column" : 16, - "key.doc.comment" : "The default value for `clearsSelectionOnViewWillAppear` is true.\nThis parameter allows mirroring the `clearsSelectionOnViewWillAppear`\nas available from `UITableViewController` or `UICollectionViewController`.", - "key.doc.declaration" : "@MainActor public var clearsSelectionOnViewWillAppear: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.doc.full_as_xml" : "clearsSelectionOnViewWillAppear<\/Name>s:10ListableUI18ListViewControllerC017clearsSelectionOnD10WillAppearSbvp<\/USR>@MainActor public var clearsSelectionOnViewWillAppear: Bool<\/Declaration>The default value for clearsSelectionOnViewWillAppear<\/codeVoice> is true. This parameter allows mirroring the clearsSelectionOnViewWillAppear<\/codeVoice> as available from UITableViewController<\/codeVoice> or UICollectionViewController<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 40, - "key.doc.name" : "clearsSelectionOnViewWillAppear", - "key.doc.type" : "Other", - "key.doclength" : 230, - "key.docoffset" : 949, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> clearsSelectionOnViewWillAppear<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 49, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "clearsSelectionOnViewWillAppear", - "key.namelength" : 31, - "key.nameoffset" : 1194, - "key.offset" : 1190, - "key.parsed_declaration" : "public var clearsSelectionOnViewWillAppear : Bool = true", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.receivers" : [ - { - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI18ListViewControllerC017clearsSelectionOnD10WillAppearSbvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 25, - "key.name" : "MARK: Methods To Override", - "key.offset" : 1259 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.open", - "key.annotated_decl" : "@MainActor<\/Type> open func configure(list: inout ListProperties<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.open", - "key.length" : 4, - "key.offset" : 2278 - } - ], - "key.bodylength" : 140, - "key.bodyoffset" : 2332, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Override this method to configure your list how you'd like to.\nThe properties on `ListProperties` closely mirror those on `ListView`\nitself, allowing you to fully configure and work with a list without needing to maintain\nand manage the view instance yourself.\n\nExample\n-------\n```\noverride func configure(list : inout ListProperties)\n{\n list.appearance = .myAppearance\n\n list.layout = .table { appearance in\n \/\/ Configure the appearance.\n }\n\n list.stateObserver.onContentChanged { info in\n MyLogger.log(...)\n }\n\n list(\"first-section\") { section in\n section += self.myPodcasts.map { podcast in\n PodcastItem(podcast)\n }\n }\n}\n```\nYou should not call super in your overridden implementation.\n", - "key.doc.column" : 15, - "key.doc.comment" : "Override this method to configure your list how you'd like to.\nThe properties on `ListProperties` closely mirror those on `ListView`\nitself, allowing you to fully configure and work with a list without needing to maintain\nand manage the view instance yourself.\n\nExample\n-------\n```\noverride func configure(list : inout ListProperties)\n{\n list.appearance = .myAppearance\n\n list.layout = .table { appearance in\n \/\/ Configure the appearance.\n }\n\n list.stateObserver.onContentChanged { info in\n MyLogger.log(...)\n }\n\n list(\"first-section\") { section in\n section += self.myPodcasts.map { podcast in\n PodcastItem(podcast)\n }\n }\n}\n```\nYou should not call super in your overridden implementation.", - "key.doc.declaration" : "@MainActor open func configure(list: inout ListProperties)", - "key.doc.discussion" : [ - { - "CodeListing" : "" - }, - { - "Para" : "You should not call super in your overridden implementation." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.doc.full_as_xml" : "configure(list:)<\/Name>s:10ListableUI18ListViewControllerC9configure4listyAA0C10PropertiesVz_tF<\/USR>@MainActor open func configure(list: inout ListProperties)<\/Declaration>Override this method to configure your list how you’d like to. The properties on ListProperties<\/codeVoice> closely mirror those on ListView<\/codeVoice> itself, allowing you to fully configure and work with a list without needing to maintain and manage the view instance yourself.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You should not call super in your overridden implementation.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 75, - "key.doc.name" : "configure(list:)", - "key.doc.type" : "Function", - "key.doclength" : 973, - "key.docoffset" : 1301, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> open<\/syntaxtype.keyword> func<\/syntaxtype.keyword> configure<\/decl.name>(list<\/decl.var.parameter.argument_label>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 190, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "configure(list:)", - "key.namelength" : 38, - "key.nameoffset" : 2288, - "key.offset" : 2283, - "key.parsed_declaration" : "open func configure(list : inout ListProperties)", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 75, - "key.receivers" : [ - { - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListViewController) -> (inout ListProperties) -> ()", - "key.typeusr" : "$s4listy10ListableUI14ListPropertiesVz_tcD", - "key.usr" : "s:10ListableUI18ListViewControllerC9configure4listyAA0C10PropertiesVz_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 22, - "key.name" : "MARK: Updating Content", - "key.offset" : 2493 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func reload(animated: Bool<\/Type> = false)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2532 - } - ], - "key.bodylength" : 216, - "key.bodyoffset" : 2581, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> reload<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 259, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "reload(animated:)", - "key.namelength" : 31, - "key.nameoffset" : 2544, - "key.offset" : 2539, - "key.parsed_declaration" : "public func reload(animated : Bool = false)", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 84, - "key.receivers" : [ - { - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListViewController) -> (Bool) -> ()", - "key.typeusr" : "$s8animatedySb_tcD", - "key.usr" : "s:10ListableUI18ListViewControllerC6reload8animatedySb_tF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 36, - "key.name" : "MARK: - Internal & Private Methods -", - "key.offset" : 2819 - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 2880 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override init(nibName nibNameOrNil: String<\/Type>?, bundle nibBundleOrNil: Bundle<\/Type>?)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 2917 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2910 - } - ], - "key.bodylength" : 51, - "key.bodyoffset" : 2999, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(nibName<\/decl.var.parameter.argument_label> nibNameOrNil<\/decl.var.parameter.name>: String<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, bundle<\/decl.var.parameter.argument_label> nibBundleOrNil<\/decl.var.parameter.name>: Bundle<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 125, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "init(nibName:bundle:)", - "key.namelength" : 67, - "key.nameoffset" : 2926, - "key.offset" : 2926, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIViewController(im)initWithNibName:bundle:" - } - ], - "key.parsed_declaration" : "public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)", - "key.parsed_scope.end" : 107, - "key.parsed_scope.start" : 104, - "key.receivers" : [ - { - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListViewController.Type) -> (String?, Bundle?) -> ListViewController", - "key.typeusr" : "$s7nibName6bundle10ListableUI18ListViewControllerCSSSg_So8NSBundleCSgtcD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController(im)initWithNibName:bundle:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3097 - }, - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 3088 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 3061 - } - ], - "key.bodylength" : 14, - "key.bodyoffset" : 3127, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 38, - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 3104, - "key.offset" : 3104, - "key.substructure" : [ - - ] - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 22, - "key.name" : "MARK: UIViewController", - "key.offset" : 3155 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var listView: ListView<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3187 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 113, - "key.modulename" : "ListableUI", - "key.name" : "listView", - "key.namelength" : 8, - "key.nameoffset" : 3199, - "key.offset" : 3195, - "key.parsed_declaration" : "private var listView : ListView?", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 113, - "key.receivers" : [ - { - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ListView?", - "key.typeusr" : "$s10ListableUI8ListViewCSgD", - "key.usr" : "s:10ListableUI18ListViewControllerC04listD033_DC99612B3D31C7F2F5DBD5D5F3AE042ELLAA0cD0CSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override func loadView()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 3236 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3229 - } - ], - "key.bodylength" : 110, - "key.bodyoffset" : 3262, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> loadView<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 128, - "key.line" : 115, - "key.modulename" : "ListableUI", - "key.name" : "loadView()", - "key.namelength" : 10, - "key.nameoffset" : 3250, - "key.offset" : 3245, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIViewController(im)loadView" - } - ], - "key.parsed_declaration" : "public override func loadView()", - "key.parsed_scope.end" : 120, - "key.parsed_scope.start" : 115, - "key.receivers" : [ - { - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let listView: ListView<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 25, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "listView", - "key.namelength" : 8, - "key.nameoffset" : 3275, - "key.offset" : 3271, - "key.parsed_declaration" : "let listView = ListView()", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.typename" : "ListView", - "key.typeusr" : "$s10ListableUI8ListViewCD", - "key.usr" : "s:10ListableUI18ListViewControllerC04loadD0yyF04listD0L_AA0cD0Cvp" - } - ], - "key.typename" : "(ListViewController) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController(im)loadView" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var hasViewAppeared: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3383 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasViewAppeared<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 122, - "key.modulename" : "ListableUI", - "key.name" : "hasViewAppeared", - "key.namelength" : 15, - "key.nameoffset" : 3395, - "key.offset" : 3391, - "key.parsed_declaration" : "private var hasViewAppeared : Bool = false", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 122, - "key.receivers" : [ - { - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI18ListViewControllerC03hasD8Appeared33_DC99612B3D31C7F2F5DBD5D5F3AE042ELLSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.open", - "key.annotated_decl" : "@MainActor<\/Type> open override func viewWillAppear(_ animated: Bool<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 3440 - }, - { - "key.attribute" : "source.decl.attribute.open", - "key.length" : 4, - "key.offset" : 3435 - } - ], - "key.bodylength" : 397, - "key.bodyoffset" : 3492, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> open<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> viewWillAppear<\/decl.name>(_<\/decl.var.parameter.argument_label> animated<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 441, - "key.line" : 124, - "key.modulename" : "ListableUI", - "key.name" : "viewWillAppear(_:)", - "key.namelength" : 32, - "key.nameoffset" : 3454, - "key.offset" : 3449, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIViewController(im)viewWillAppear:" - } - ], - "key.parsed_declaration" : "open override func viewWillAppear(_ animated: Bool)", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 124, - "key.receivers" : [ - { - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ListViewController) -> (Bool) -> ()", - "key.typeusr" : "$syySbcD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController(im)viewWillAppear:" - } - ], - "key.typename" : "ListViewController.Type", - "key.typeusr" : "$s10ListableUI18ListViewControllerCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListViewController" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public final class ListView : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3895 - } - ], - "key.bodylength" : 2184, - "key.bodyoffset" : 3922, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListView\/ListView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 2205, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ListView", - "key.namelength" : 8, - "key.nameoffset" : 3912, - "key.offset" : 3902, - "key.parsed_declaration" : "public extension ListView", - "key.parsed_scope.end" : 186, - "key.parsed_scope.start" : 140, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator<\/Type>?, animated: Bool<\/Type>)<\/Declaration>", - "key.bodylength" : 1301, - "key.bodyoffset" : 4803, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A method which provides `Behavior.SelectionMode.single`'s `clearsSelectionOnViewWillAppear` behaviour.\nBy default, this method is called by `ListViewController`. However if you are not using `ListViewController` you\nwill need to call this method yourself one of two ways:\n\n1) If subclassing `UIViewController`: within your view controller's `viewWillAppear` method.\n\n2) By invoking this same method on your `ListActions` that you have wired up to your list view. Use this\nin the case that you do not have access to your list view at all, such as when using `BlueprintUILists`.\n\n\/\/ Behaviour from UIKit Eng: https:\/\/twitter.com\/smileyborg\/status\/1279473615553982464\n", - "key.doc.column" : 10, - "key.doc.comment" : "A method which provides `Behavior.SelectionMode.single`'s `clearsSelectionOnViewWillAppear` behaviour.\nBy default, this method is called by `ListViewController`. However if you are not using `ListViewController` you\nwill need to call this method yourself one of two ways:\n\n1) If subclassing `UIViewController`: within your view controller's `viewWillAppear` method.\n\n2) By invoking this same method on your `ListActions` that you have wired up to your list view. Use this\nin the case that you do not have access to your list view at all, such as when using `BlueprintUILists`.\n\n\/\/ Behaviour from UIKit Eng: https:\/\/twitter.com\/smileyborg\/status\/1279473615553982464", - "key.doc.declaration" : "@MainActor func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator?, animated: Bool)", - "key.doc.discussion" : [ - { - "List-Number" : "" - }, - { - "Para" : "\/\/ Behaviour from UIKit Eng: https:\/\/twitter.com\/smileyborg\/status\/1279473615553982464" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.doc.full_as_xml" : "clearSelectionDuringViewWillAppear(alongside:animated:)<\/Name>s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF<\/USR>@MainActor func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator?, animated: Bool)<\/Declaration>A method which provides Behavior.SelectionMode.single<\/codeVoice>’s clearsSelectionOnViewWillAppear<\/codeVoice> behaviour. By default, this method is called by ListViewController<\/codeVoice>. However if you are not using ListViewController<\/codeVoice> you will need to call this method yourself one of two ways:<\/Para><\/Abstract>If subclassing UIViewController<\/codeVoice>: within your view controller’s viewWillAppear<\/codeVoice> method.<\/Para><\/Item>By invoking this same method on your ListActions<\/codeVoice> that you have wired up to your list view. Use this in the case that you do not have access to your list view at all, such as when using BlueprintUILists<\/codeVoice>.<\/Para><\/Item><\/List-Number>\/\/ Behaviour from UIKit Eng: https:\/\/twitter.com\/smileyborg\/status\/1279473615553982464<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 153, - "key.doc.name" : "clearSelectionDuringViewWillAppear(alongside:animated:)", - "key.doc.type" : "Function", - "key.doclength" : 746, - "key.docoffset" : 3932, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> clearSelectionDuringViewWillAppear<\/decl.name>(alongside<\/decl.var.parameter.argument_label> coordinator<\/decl.var.parameter.name>: UIViewControllerTransitionCoordinator<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1423, - "key.line" : 153, - "key.modulename" : "ListableUI", - "key.name" : "clearSelectionDuringViewWillAppear(alongside:animated:)", - "key.namelength" : 114, - "key.nameoffset" : 4687, - "key.offset" : 4682, - "key.parsed_declaration" : "func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator?, animated : Bool)", - "key.parsed_scope.end" : 185, - "key.parsed_scope.start" : 153, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let item: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewController.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 56, - "key.line" : 163, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 5062, - "key.offset" : 5058, - "key.parsed_declaration" : "let item = storage.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 163, - "key.parsed_scope.start" : 163, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF4itemL_AA24AnyPresentationItemState_pvp" - } - ], - "key.typename" : "(ListView) -> ((any UIViewControllerTransitionCoordinator)?, Bool) -> ()", - "key.typeusr" : "$s9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtcD", - "key.usr" : "s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF" - } - ], - "key.typename" : "ListView.Type", - "key.typeusr" : "$s10ListableUI8ListViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ListView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 4165, - "key.offset" : 0, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 41, - "key.name" : "TODO: Rename this all to ContentProvider?", - "key.offset" : 110 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ListViewSource<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 154 - } - ], - "key.bodylength" : 182, - "key.bodyoffset" : 186, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListViewSource<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 208, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "ListViewSource", - "key.namelength" : 14, - "key.nameoffset" : 170, - "key.offset" : 161, - "key.parsed_declaration" : "public protocol ListViewSource", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "associatedtype State : Equatable<\/Type><\/Declaration>", - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> State<\/decl.name> : Equatable<\/ref.protocol><\/decl.associatedtype>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.associatedtype", - "key.length" : 30, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "State", - "key.namelength" : 5, - "key.nameoffset" : 206, - "key.offset" : 191, - "key.parsed_declaration" : "associatedtype State:Equatable", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ListViewSourceP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self.State.Type", - "key.typeusr" : "$s5StateQzmD", - "key.usr" : "s:10ListableUI14ListViewSourceP5StateQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func content(with state: SourceState<\/Type><State<\/Type>>, content: inout Content<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><State<\/ref.associatedtype>><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 70, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "content(with:content:)", - "key.namelength" : 65, - "key.nameoffset" : 236, - "key.offset" : 231, - "key.parsed_declaration" : "func content(with state : SourceState, content : inout Content)", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ListViewSourceP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "content(with: SourceState<State>) -> Content<\/RelatedName>" - }, - { - "key.annotated_decl" : "content(with: SourceState<State>) -> Content<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (SourceState, inout Content) -> ()", - "key.typeusr" : "$s4with7contenty10ListableUI11SourceStateCy0F0QzG_AC7ContentVztcD", - "key.usr" : "s:10ListableUI14ListViewSourceP7content4withADyAA0E5StateCy0H0QzG_AA7ContentVztF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func content(with state: SourceState<\/Type><State<\/Type>>) -> Content<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><State<\/ref.associatedtype>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 56, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "content(with:)", - "key.namelength" : 40, - "key.nameoffset" : 316, - "key.offset" : 311, - "key.parsed_declaration" : "func content(with state : SourceState) -> Content", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ListViewSourceP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "content(with:content:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "content(with: SourceState<State>) -> Content<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (SourceState) -> Content", - "key.typeusr" : "$s4with10ListableUI7ContentVAB11SourceStateCy0F0QzG_tcD", - "key.usr" : "s:10ListableUI14ListViewSourceP7content4withAA7ContentVAA0E5StateCy0I0QzG_tF" - } - ], - "key.typename" : "ListViewSource.Type", - "key.typeusr" : "$s10ListableUI14ListViewSource_pmD", - "key.usr" : "s:10ListableUI14ListViewSourceP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol ListViewSource<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 372 - } - ], - "key.bodylength" : 179, - "key.bodyoffset" : 405, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListViewSource<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 206, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "ListViewSource", - "key.namelength" : 14, - "key.nameoffset" : 389, - "key.offset" : 379, - "key.parsed_declaration" : "public extension ListViewSource", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "func content(with state: SourceState<\/Type><State<\/Type>>) -> Content<\/Type><\/Declaration>", - "key.bodylength" : 110, - "key.bodyoffset" : 472, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><State<\/ref.associatedtype>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 173, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "content(with:)", - "key.namelength" : 40, - "key.nameoffset" : 415, - "key.offset" : 410, - "key.parsed_declaration" : "func content(with state : SourceState) -> Content", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 26, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI14ListViewSourceP" - } - ], - "key.related_decls" : [ - { - "key.annotated_decl" : "content(with:content:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "content(with: SourceState<State>) -> Content<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (SourceState) -> Content", - "key.typeusr" : "$s4with10ListableUI7ContentVAB11SourceStateCy0F0QzG_tcD", - "key.usr" : "s:10ListableUI14ListViewSourcePAAE7content4withAA7ContentVAA0E5StateCy0I0QzG_tF" - } - ], - "key.typename" : "ListViewSource.Type", - "key.typeusr" : "$s10ListableUI14ListViewSource_pmD", - "key.usr" : "s:10ListableUI14ListViewSourceP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal protocol AnySourcePresenter<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 588 - } - ], - "key.bodylength" : 61, - "key.bodyoffset" : 626, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnySourcePresenter<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 91, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "AnySourcePresenter", - "key.namelength" : 18, - "key.nameoffset" : 606, - "key.offset" : 597, - "key.parsed_declaration" : "internal protocol AnySourcePresenter", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func discard()<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> discard<\/decl.name>()<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 14, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "discard()", - "key.namelength" : 9, - "key.nameoffset" : 636, - "key.offset" : 631, - "key.parsed_declaration" : "func discard()", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI18AnySourcePresenterP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI18AnySourcePresenterP7discardyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func reloadContent() -> Content<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> reloadContent<\/decl.name>() -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 31, - "key.line" : 39, - "key.modulename" : "ListableUI", - "key.name" : "reloadContent()", - "key.namelength" : 15, - "key.nameoffset" : 660, - "key.offset" : 655, - "key.parsed_declaration" : "func reloadContent() -> Content", - "key.parsed_scope.end" : 39, - "key.parsed_scope.start" : 39, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI18AnySourcePresenterP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : " (Self) -> () -> Content", - "key.typeusr" : "$s10ListableUI7ContentVycD", - "key.usr" : "s:10ListableUI18AnySourcePresenterP13reloadContentAA0G0VyF" - } - ], - "key.typename" : "AnySourcePresenter.Type", - "key.typeusr" : "$s10ListableUI18AnySourcePresenter_pmD", - "key.usr" : "s:10ListableUI18AnySourcePresenterP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal final class SourcePresenter<Source> : AnySourcePresenter<\/Type> where Source<\/Type> : ListViewSource<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 700 - }, - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 691 - } - ], - "key.bodylength" : 681, - "key.bodyoffset" : 773, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 18, - "key.offset" : 753 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SourcePresenter<\/decl.name><Source<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnySourcePresenter<\/ref.protocol> where<\/syntaxtype.keyword> Source<\/ref.generic_type_param> : ListViewSource<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "AnySourcePresenter" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 749, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "SourcePresenter", - "key.namelength" : 15, - "key.nameoffset" : 712, - "key.offset" : 706, - "key.parsed_declaration" : "internal final class SourcePresenter : AnySourcePresenter", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Source : ListViewSource<\/Type><\/Declaration>", - "key.column" : 38, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 14, - "key.offset" : 735 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "Source<\/decl.generic_type_param.name> : ListViewSource<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ListViewSource" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 21, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "Source", - "key.namelength" : 6, - "key.nameoffset" : 728, - "key.offset" : 728, - "key.parsed_declaration" : "internal final class SourcePresenterlet source: Source<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> source<\/decl.name>: Source<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 45, - "key.modulename" : "ListableUI", - "key.name" : "source", - "key.namelength" : 6, - "key.nameoffset" : 782, - "key.offset" : 778, - "key.parsed_declaration" : "let source : Source", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 45, - "key.reusingastcontext" : false, - "key.typename" : "Source", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI15SourcePresenterC6sourcexvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var state: Source<\/Type>.State<\/Type> { get set }<\/Declaration>", - "key.bodylength" : 101, - "key.bodyoffset" : 833, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> state<\/decl.name>: Source<\/ref.generic_type_param>.State<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 128, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 811, - "key.offset" : 807, - "key.parsed_declaration" : "var state : Source.State", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Source.State", - "key.typeusr" : "$s5StateQzD", - "key.usr" : "s:10ListableUI15SourcePresenterC5state5StateQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var sourceState: SourceState<\/Type><Source<\/Type>.State<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 945 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sourceState<\/decl.name>: SourceState<\/ref.class><Source<\/ref.generic_type_param>.State<\/ref.associatedtype>><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 52, - "key.modulename" : "ListableUI", - "key.name" : "sourceState", - "key.namelength" : 11, - "key.nameoffset" : 957, - "key.offset" : 953, - "key.parsed_declaration" : "private var sourceState : SourceState", - "key.parsed_scope.end" : 52, - "key.parsed_scope.start" : 52, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "SourceState", - "key.typeusr" : "$s10ListableUI11SourceStateCy0D0QzGD", - "key.usr" : "s:10ListableUI15SourcePresenterC11sourceState33_CF25259F06308DE512677216FCD79C8DLLAA0cF0Cy0F0QzGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(initial: Source<\/Type>.State<\/Type>, source: Source<\/Type>, didChange: @escaping () -> () = {})<\/Declaration>", - "key.bodylength" : 122, - "key.bodyoffset" : 1094, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(initial<\/decl.var.parameter.argument_label>: Source<\/ref.generic_type_param>.State<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>, source<\/decl.var.parameter.argument_label>: Source<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, didChange<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = {}<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 211, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "init(initial:source:didChange:)", - "key.namelength" : 82, - "key.nameoffset" : 1006, - "key.offset" : 1006, - "key.parsed_declaration" : "init(initial : Source.State, source : Source, didChange : @escaping () -> () = {})", - "key.parsed_scope.end" : 59, - "key.parsed_scope.start" : 54, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SourcePresenter.Type) -> (Source.State, Source, @escaping () -> ()) -> SourcePresenter", - "key.typeusr" : "$s7initial6source9didChange10ListableUI15SourcePresenterCyxG5StateQz_xyyctcD", - "key.usr" : "s:10ListableUI15SourcePresenterC7initial6source9didChangeACyxG5StateQz_xyyctcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 31, - "key.name" : "MARK: TableViewSourceController", - "key.offset" : 1230 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func discard()<\/Declaration>", - "key.bodylength" : 40, - "key.bodyoffset" : 1291, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> discard<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 61, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "discard()", - "key.namelength" : 9, - "key.nameoffset" : 1276, - "key.offset" : 1271, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI18AnySourcePresenterP7discardyyF" - } - ], - "key.parsed_declaration" : "func discard()", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SourcePresenter) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI15SourcePresenterC7discardyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal func reloadContent() -> Content<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 1342 - } - ], - "key.bodylength" : 64, - "key.bodyoffset" : 1388, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> reloadContent<\/decl.name>() -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 102, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "reloadContent()", - "key.namelength" : 15, - "key.nameoffset" : 1356, - "key.offset" : 1351, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI18AnySourcePresenterP13reloadContentAA0G0VyF" - } - ], - "key.parsed_declaration" : "internal func reloadContent() -> Content", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 68, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SourcePresenter) -> () -> Content", - "key.typeusr" : "$s10ListableUI7ContentVycD", - "key.usr" : "s:10ListableUI15SourcePresenterC13reloadContentAA0F0VyF" - } - ], - "key.typename" : "SourcePresenter.Type", - "key.typeusr" : "$s10ListableUI15SourcePresenterCyxGmD", - "key.usr" : "s:10ListableUI15SourcePresenterC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class StateAccessor<State> where State<\/Type> : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 1465 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1458 - } - ], - "key.bodylength" : 323, - "key.bodyoffset" : 1509, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> StateAccessor<\/decl.name><State<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> State<\/ref.generic_type_param> : Equatable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 362, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "StateAccessor", - "key.namelength" : 13, - "key.nameoffset" : 1477, - "key.offset" : 1471, - "key.parsed_declaration" : "public final class StateAccessor", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 75, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "State : Equatable<\/Type><\/Declaration>", - "key.column" : 34, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1497 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "State<\/decl.generic_type_param.name> : Equatable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 15, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "State", - "key.namelength" : 5, - "key.nameoffset" : 1491, - "key.offset" : 1491, - "key.parsed_declaration" : "public final class StateAccessorpublic var value: State<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1514 - } - ], - "key.bodylength" : 74, - "key.bodyoffset" : 1540, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> value<\/decl.name>: State<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 94, - "key.line" : 77, - "key.modulename" : "ListableUI", - "key.name" : "value", - "key.namelength" : 5, - "key.nameoffset" : 1525, - "key.offset" : 1521, - "key.parsed_declaration" : "public var value : State", - "key.parsed_scope.end" : 80, - "key.parsed_scope.start" : 77, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "State", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI13StateAccessorC5valuexvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let get: () -> State<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1625 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> get<\/decl.name>: () -> State<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 82, - "key.modulename" : "ListableUI", - "key.name" : "get", - "key.namelength" : 3, - "key.nameoffset" : 1637, - "key.offset" : 1633, - "key.parsed_declaration" : "private let get : () -> State", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 82, - "key.reusingastcontext" : false, - "key.typename" : "() -> State", - "key.typeusr" : "$sxycD", - "key.usr" : "s:10ListableUI13StateAccessorC3get33_CF25259F06308DE512677216FCD79C8DLLxycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private let set: (State<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1659 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> set<\/decl.name>: (State<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 83, - "key.modulename" : "ListableUI", - "key.name" : "set", - "key.namelength" : 3, - "key.nameoffset" : 1671, - "key.offset" : 1667, - "key.parsed_declaration" : "private let set : (State) -> ()", - "key.parsed_scope.end" : 83, - "key.parsed_scope.start" : 83, - "key.reusingastcontext" : false, - "key.typename" : "(State) -> ()", - "key.typeusr" : "$syyxcD", - "key.usr" : "s:10ListableUI13StateAccessorC3set33_CF25259F06308DE512677216FCD79C8DLLyyxcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal init(get: @escaping () -> State<\/Type>, set: @escaping (State<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 1700 - } - ], - "key.bodylength" : 51, - "key.bodyoffset" : 1779, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(get<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> State<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, set<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (State<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 122, - "key.line" : 85, - "key.modulename" : "ListableUI", - "key.name" : "init(get:set:)", - "key.namelength" : 64, - "key.nameoffset" : 1709, - "key.offset" : 1709, - "key.parsed_declaration" : "internal init(get : @escaping () -> State, set : @escaping (State) -> ())", - "key.parsed_scope.end" : 89, - "key.parsed_scope.start" : 85, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (StateAccessor.Type) -> (@escaping () -> State, @escaping (State) -> ()) -> StateAccessor", - "key.typeusr" : "$s3get3set10ListableUI13StateAccessorCyxGxyc_yxctcD", - "key.usr" : "s:10ListableUI13StateAccessorC3get3setACyxGxyc_yxctcfc" - } - ], - "key.typename" : "StateAccessor.Type", - "key.typeusr" : "$s10ListableUI13StateAccessorCyxGmD", - "key.usr" : "s:10ListableUI13StateAccessorC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class SourceState<Value> where Value<\/Type> : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 1843 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1836 - } - ], - "key.bodylength" : 601, - "key.bodyoffset" : 1885, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SourceState<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Value<\/ref.generic_type_param> : Equatable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 638, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "SourceState", - "key.namelength" : 11, - "key.nameoffset" : 1855, - "key.offset" : 1849, - "key.parsed_declaration" : "public final class SourceState", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value : Equatable<\/Type><\/Declaration>", - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1873 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name> : Equatable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 15, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 1867, - "key.offset" : 1867, - "key.parsed_declaration" : "public final class SourceStatepublic var value: Value<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1890 - } - ], - "key.bodylength" : 132, - "key.bodyoffset" : 1916, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> value<\/decl.name>: Value<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 152, - "key.line" : 95, - "key.modulename" : "ListableUI", - "key.name" : "value", - "key.namelength" : 5, - "key.nameoffset" : 1901, - "key.offset" : 1897, - "key.parsed_declaration" : "public var value : Value", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 95, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Value", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI11SourceStateC5valuexvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func set(_ block: (inout Value<\/Type>) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2059 - } - ], - "key.bodylength" : 97, - "key.bodyoffset" : 2111, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 143, - "key.line" : 103, - "key.modulename" : "ListableUI", - "key.name" : "set(_:)", - "key.namelength" : 34, - "key.nameoffset" : 2071, - "key.offset" : 2066, - "key.parsed_declaration" : "public func set(_ block : (inout Value) -> ())", - "key.parsed_scope.end" : 110, - "key.parsed_scope.start" : 103, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "var new: Value<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: Value<\/ref.generic_type_param><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 20, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "new", - "key.namelength" : 3, - "key.nameoffset" : 2124, - "key.offset" : 2120, - "key.parsed_declaration" : "var new = self.value", - "key.parsed_scope.end" : 105, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.typename" : "Value", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI11SourceStateC3setyyyxzXEF3newL_xvp" - } - ], - "key.typename" : " (SourceState) -> ((inout Value) -> ()) -> ()", - "key.typeusr" : "$syyyxzXEcD", - "key.usr" : "s:10ListableUI11SourceStateC3setyyyxzXEF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(initial value: Value<\/Type>, didChange: @escaping () -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2219 - } - ], - "key.bodylength" : 76, - "key.bodyoffset" : 2291, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(initial<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, didChange<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 142, - "key.line" : 112, - "key.modulename" : "ListableUI", - "key.name" : "init(initial:didChange:)", - "key.namelength" : 59, - "key.nameoffset" : 2226, - "key.offset" : 2226, - "key.parsed_declaration" : "public init(initial value : Value, didChange : @escaping () -> ())", - "key.parsed_scope.end" : 117, - "key.parsed_scope.start" : 112, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (SourceState.Type) -> (Value, @escaping () -> ()) -> SourceState", - "key.typeusr" : "$s7initial9didChange10ListableUI11SourceStateCyxGx_yyctcD", - "key.usr" : "s:10ListableUI11SourceStateC7initial9didChangeACyxGx_yyctcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func discard()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2378 - } - ], - "key.bodylength" : 34, - "key.bodyoffset" : 2405, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> discard<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 55, - "key.line" : 119, - "key.modulename" : "ListableUI", - "key.name" : "discard()", - "key.namelength" : 9, - "key.nameoffset" : 2390, - "key.offset" : 2385, - "key.parsed_declaration" : "public func discard()", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 119, - "key.reusingastcontext" : false, - "key.typename" : " (SourceState) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI11SourceStateC7discardyyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var didChange: (() -> ())?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 2450 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didChange<\/decl.name>: (() -> ()<\/tuple><\/decl.function.returntype><\/tuple.element.type><\/tuple.element>)<\/tuple>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 124, - "key.modulename" : "ListableUI", - "key.name" : "didChange", - "key.namelength" : 9, - "key.nameoffset" : 2462, - "key.offset" : 2458, - "key.parsed_declaration" : "private var didChange : (() -> ())?", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 124, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "(() -> ())?", - "key.typeusr" : "$syycSgD", - "key.usr" : "s:10ListableUI11SourceStateC9didChange33_CF25259F06308DE512677216FCD79C8DLLyycSgvp" - } - ], - "key.typename" : "SourceState.Type", - "key.typeusr" : "$s10ListableUI11SourceStateCyxGmD", - "key.usr" : "s:10ListableUI11SourceStateC" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 26, - "key.name" : "MARK: Block-Driven Sources", - "key.offset" : 2496 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class DynamicSource<Input> : ListViewSource<\/Type> where Input<\/Type> : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 2535 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2528 - } - ], - "key.bodylength" : 338, - "key.bodyoffset" : 2596, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 14, - "key.offset" : 2580 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DynamicSource<\/decl.name><Input<\/decl.generic_type_param.name><\/decl.generic_type_param>> : ListViewSource<\/ref.protocol> where<\/syntaxtype.keyword> Input<\/ref.generic_type_param> : Equatable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ListViewSource" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 394, - "key.line" : 133, - "key.modulename" : "ListableUI", - "key.name" : "DynamicSource", - "key.namelength" : 13, - "key.nameoffset" : 2547, - "key.offset" : 2541, - "key.parsed_declaration" : "public final class DynamicSource : ListViewSource", - "key.parsed_scope.end" : 148, - "key.parsed_scope.start" : 133, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Input : Equatable<\/Type><\/Declaration>", - "key.column" : 34, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 2567 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "Input<\/decl.generic_type_param.name> : Equatable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 15, - "key.line" : 133, - "key.modulename" : "ListableUI", - "key.name" : "Input", - "key.namelength" : 5, - "key.nameoffset" : 2561, - "key.offset" : 2561, - "key.parsed_declaration" : "public final class DynamicSourcepublic typealias DynamicSource<\/Type><Input<\/Type>>.Builder = (SourceState<\/Type><Input<\/Type>>, inout Content<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2601 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> DynamicSource<\/ref.class><Input<\/ref.generic_type_param>>.Builder<\/decl.name> = (SourceState<\/ref.class><Input<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 61, - "key.line" : 135, - "key.modulename" : "ListableUI", - "key.name" : "Builder", - "key.namelength" : 7, - "key.nameoffset" : 2618, - "key.offset" : 2608, - "key.parsed_declaration" : "public typealias Builder = (SourceState, inout Content) -> ()", - "key.parsed_scope.end" : 135, - "key.parsed_scope.start" : 135, - "key.reusingastcontext" : false, - "key.typename" : "((SourceState, inout Content) -> ()).Type", - "key.typeusr" : "$sy10ListableUI11SourceStateCyxG_AA7ContentVztcmD", - "key.usr" : "s:10ListableUI13DynamicSourceC7Buildera" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let builder: Builder<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> builder<\/decl.name>: Builder<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 137, - "key.modulename" : "ListableUI", - "key.name" : "builder", - "key.namelength" : 7, - "key.nameoffset" : 2683, - "key.offset" : 2679, - "key.parsed_declaration" : "let builder : Builder", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 137, - "key.reusingastcontext" : false, - "key.typename" : "(SourceState, inout Content) -> ()", - "key.typeusr" : "$syy10ListableUI11SourceStateCyxG_AA7ContentVztcD", - "key.usr" : "s:10ListableUI13DynamicSourceC7builderyyAA0D5StateCyxG_AA7ContentVztcvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(with builder: @escaping Builder<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2710 - } - ], - "key.bodylength" : 36, - "key.bodyoffset" : 2761, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> builder<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Builder<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 81, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "init(with:)", - "key.namelength" : 38, - "key.nameoffset" : 2717, - "key.offset" : 2717, - "key.parsed_declaration" : "public init(with builder : @escaping Builder)", - "key.parsed_scope.end" : 142, - "key.parsed_scope.start" : 139, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DynamicSource.Type) -> (@escaping (SourceState, inout Content) -> ()) -> DynamicSource", - "key.typeusr" : "$s4with10ListableUI13DynamicSourceCyxGyAB0E5StateCyxG_AB7ContentVztc_tcD", - "key.usr" : "s:10ListableUI13DynamicSourceC4withACyxGyAA0D5StateCyxG_AA7ContentVztc_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func content(with state: SourceState<\/Type><Input<\/Type>>, content: inout Content<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2808 - } - ], - "key.bodylength" : 43, - "key.bodyoffset" : 2889, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><Input<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 118, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "content(with:content:)", - "key.namelength" : 63, - "key.nameoffset" : 2820, - "key.offset" : 2815, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI14ListViewSourceP7content4withADyAA0E5StateCy0H0QzG_AA7ContentVztF" - } - ], - "key.parsed_declaration" : "public func content(with state: SourceState, content: inout Content)", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (DynamicSource) -> (SourceState, inout Content) -> ()", - "key.typeusr" : "$s4with7contenty10ListableUI11SourceStateCyxG_AC7ContentVztcD", - "key.usr" : "s:10ListableUI13DynamicSourceC7content4withADyAA0D5StateCyxG_AA7ContentVztF" - } - ], - "key.typename" : "DynamicSource.Type", - "key.typeusr" : "$s10ListableUI13DynamicSourceCyxGmD", - "key.usr" : "s:10ListableUI13DynamicSourceC" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Immutable Sources", - "key.offset" : 2944 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class StaticSource : ListViewSource<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 2980 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2973 - } - ], - "key.bodylength" : 606, - "key.bodyoffset" : 3023, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 14, - "key.offset" : 3007 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> StaticSource<\/decl.name> : ListViewSource<\/ref.protocol><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "ListViewSource" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 644, - "key.line" : 156, - "key.modulename" : "ListableUI", - "key.name" : "StaticSource", - "key.namelength" : 12, - "key.nameoffset" : 2992, - "key.offset" : 2986, - "key.parsed_declaration" : "public final class StaticSource : ListViewSource", - "key.parsed_scope.end" : 184, - "key.parsed_scope.start" : 156, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct StaticSource<\/Type>.State : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3028 - } - ], - "key.bodylength" : 30, - "key.bodyoffset" : 3065, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 3050 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> StaticSource<\/ref.class>.State<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 61, - "key.line" : 158, - "key.modulename" : "ListableUI", - "key.name" : "State", - "key.namelength" : 5, - "key.nameoffset" : 3042, - "key.offset" : 3035, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI14ListViewSourceP5StateQa" - } - ], - "key.parsed_declaration" : "public struct State : Equatable", - "key.parsed_scope.end" : 161, - "key.parsed_scope.start" : 158, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3074 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 3089, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 9, - "key.line" : 160, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 3081, - "key.offset" : 3081, - "key.parsed_declaration" : "public init()", - "key.parsed_scope.end" : 160, - "key.parsed_scope.start" : 160, - "key.reusingastcontext" : false, - "key.typename" : "(StaticSource.State.Type) -> () -> StaticSource.State", - "key.typeusr" : "$s10ListableUI12StaticSourceC5StateVycD", - "key.usr" : "s:10ListableUI12StaticSourceC5StateVAEycfc" - } - ], - "key.typename" : "StaticSource.State.Type", - "key.typeusr" : "$s10ListableUI12StaticSourceC5StateVmD", - "key.usr" : "s:10ListableUI12StaticSourceC5StateV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let content: Content<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3106 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 163, - "key.modulename" : "ListableUI", - "key.name" : "content", - "key.namelength" : 7, - "key.nameoffset" : 3117, - "key.offset" : 3113, - "key.parsed_declaration" : "public let content : Content", - "key.parsed_scope.end" : 163, - "key.parsed_scope.start" : 163, - "key.related_decls" : [ - { - "key.annotated_decl" : "content(with:content:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "content(with:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content", - "key.typeusr" : "$s10ListableUI7ContentVD", - "key.usr" : "s:10ListableUI12StaticSourceC7contentAA7ContentVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(with content: Content<\/Type> = Content())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3144 - } - ], - "key.bodylength" : 36, - "key.bodyoffset" : 3197, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.struct><\/decl.var.parameter.type> = Content()<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 83, - "key.line" : 165, - "key.modulename" : "ListableUI", - "key.name" : "init(with:)", - "key.namelength" : 40, - "key.nameoffset" : 3151, - "key.offset" : 3151, - "key.parsed_declaration" : "public init(with content : Content = Content())", - "key.parsed_scope.end" : 168, - "key.parsed_scope.start" : 165, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(with: Content.Configure)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(StaticSource.Type) -> (Content) -> StaticSource", - "key.typeusr" : "$s4with10ListableUI12StaticSourceCAB7ContentV_tcD", - "key.usr" : "s:10ListableUI12StaticSourceC4withAcA7ContentV_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public convenience init(with builder: Content<\/Type>.Configure<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.convenience", - "key.length" : 11, - "key.offset" : 3251 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3244 - } - ], - "key.bodylength" : 53, - "key.bodyoffset" : 3307, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> convenience<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> builder<\/decl.var.parameter.name>: Content<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 98, - "key.line" : 170, - "key.modulename" : "ListableUI", - "key.name" : "init(with:)", - "key.namelength" : 38, - "key.nameoffset" : 3263, - "key.offset" : 3263, - "key.parsed_declaration" : "public convenience init(with builder : Content.Configure)", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 170, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(with: Content = Content())<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(StaticSource.Type) -> ((inout Content) -> ()) -> StaticSource", - "key.typeusr" : "$s4with10ListableUI12StaticSourceCyAB7ContentVzXE_tcD", - "key.usr" : "s:10ListableUI12StaticSourceC4withACyAA7ContentVzXE_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func content(with state: SourceState<\/Type><StaticSource<\/Type>.State<\/Type>>, content: inout Content<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3371 - } - ], - "key.bodylength" : 37, - "key.bodyoffset" : 3465, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><StaticSource<\/ref.class>.State<\/ref.struct>><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 125, - "key.line" : 175, - "key.modulename" : "ListableUI", - "key.name" : "content(with:content:)", - "key.namelength" : 76, - "key.nameoffset" : 3383, - "key.offset" : 3378, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI14ListViewSourceP7content4withADyAA0E5StateCy0H0QzG_AA7ContentVztF" - } - ], - "key.parsed_declaration" : "public func content(with state: SourceState, content: inout Content)", - "key.parsed_scope.end" : 178, - "key.parsed_scope.start" : 175, - "key.related_decls" : [ - { - "key.annotated_decl" : "content<\/RelatedName>" - }, - { - "key.annotated_decl" : "content(with:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(StaticSource) -> (SourceState, inout Content) -> ()", - "key.typeusr" : "$s4with7contenty10ListableUI11SourceStateCyAC06StaticE0C0F0VG_AC7ContentVztcD", - "key.usr" : "s:10ListableUI12StaticSourceC7content4withADyAA0D5StateCyAC0G0VG_AA7ContentVztF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func content(with state: SourceState<\/Type><StaticSource<\/Type>.State<\/Type>>) -> Content<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3513 - } - ], - "key.bodylength" : 33, - "key.bodyoffset" : 3594, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><StaticSource<\/ref.class>.State<\/ref.struct>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 108, - "key.line" : 180, - "key.modulename" : "ListableUI", - "key.name" : "content(with:)", - "key.namelength" : 52, - "key.nameoffset" : 3525, - "key.offset" : 3520, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI14ListViewSourceP7content4withAA7ContentVAA0E5StateCy0I0QzG_tF" - } - ], - "key.parsed_declaration" : "public func content(with state: SourceState) -> Content", - "key.parsed_scope.end" : 183, - "key.parsed_scope.start" : 180, - "key.related_decls" : [ - { - "key.annotated_decl" : "content<\/RelatedName>" - }, - { - "key.annotated_decl" : "content(with:content:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(StaticSource) -> (SourceState) -> Content", - "key.typeusr" : "$s4with10ListableUI7ContentVAB11SourceStateCyAB06StaticE0C0F0VG_tcD", - "key.usr" : "s:10ListableUI12StaticSourceC7content4withAA7ContentVAA0D5StateCyAC0H0VG_tF" - } - ], - "key.typename" : "StaticSource.Type", - "key.typeusr" : "$s10ListableUI12StaticSourceCmD", - "key.usr" : "s:10ListableUI12StaticSourceC" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 25, - "key.name" : "MARK: Timer For Reloading", - "key.offset" : 3639 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal final class ReloadTimer<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 3678 - }, - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 3669 - } - ], - "key.bodylength" : 460, - "key.bodyoffset" : 3703, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReloadTimer<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 480, - "key.line" : 191, - "key.modulename" : "ListableUI", - "key.name" : "ReloadTimer", - "key.namelength" : 11, - "key.nameoffset" : 3690, - "key.offset" : 3684, - "key.parsed_declaration" : "internal final class ReloadTimer", - "key.parsed_scope.end" : 212, - "key.parsed_scope.start" : 191, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var timer: Timer<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3708 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> timer<\/decl.name>: Timer<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 193, - "key.modulename" : "ListableUI", - "key.name" : "timer", - "key.namelength" : 5, - "key.nameoffset" : 3720, - "key.offset" : 3716, - "key.parsed_declaration" : "private var timer : Timer?", - "key.parsed_scope.end" : 193, - "key.parsed_scope.start" : 193, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Timer?", - "key.typeusr" : "$sSo7NSTimerCSgD", - "key.usr" : "s:10ListableUI11ReloadTimerC5timer33_CF25259F06308DE512677216FCD79C8DLLSo7NSTimerCSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "typealias ReloadTimer<\/Type>.OnFire = () -> ()<\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ReloadTimer<\/ref.class>.OnFire<\/decl.name> = () -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 27, - "key.line" : 195, - "key.modulename" : "ListableUI", - "key.name" : "OnFire", - "key.namelength" : 6, - "key.nameoffset" : 3754, - "key.offset" : 3744, - "key.parsed_declaration" : "typealias OnFire = () -> ()", - "key.parsed_scope.end" : 195, - "key.parsed_scope.start" : 195, - "key.reusingastcontext" : false, - "key.typename" : "(() -> ()).Type", - "key.typeusr" : "$syycmD", - "key.usr" : "s:10ListableUI11ReloadTimerC6OnFirea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var onFire: OnFire<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 3776 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onFire<\/decl.name>: OnFire<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 196, - "key.modulename" : "ListableUI", - "key.name" : "onFire", - "key.namelength" : 6, - "key.nameoffset" : 3788, - "key.offset" : 3784, - "key.parsed_declaration" : "private var onFire : OnFire?", - "key.parsed_scope.end" : 196, - "key.parsed_scope.start" : 196, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "(() -> ())?", - "key.typeusr" : "$syycSgD", - "key.usr" : "s:10ListableUI11ReloadTimerC6onFire33_CF25259F06308DE512677216FCD79C8DLLyycSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(onFire: @escaping OnFire<\/Type>)<\/Declaration>", - "key.bodylength" : 182, - "key.bodyoffset" : 3851, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(onFire<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnFire<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 220, - "key.line" : 198, - "key.modulename" : "ListableUI", - "key.name" : "init(onFire:)", - "key.namelength" : 31, - "key.nameoffset" : 3814, - "key.offset" : 3814, - "key.parsed_declaration" : "init(onFire : @escaping OnFire)", - "key.parsed_scope.end" : 203, - "key.parsed_scope.start" : 198, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ReloadTimer.Type) -> (@escaping () -> ()) -> ReloadTimer", - "key.typeusr" : "$s6onFire10ListableUI11ReloadTimerCyyc_tcD", - "key.usr" : "s:10ListableUI11ReloadTimerC6onFireACyyc_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@objc func timerFired()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 4044 - } - ], - "key.bodylength" : 88, - "key.bodyoffset" : 4073, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListViewSource.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> timerFired<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 112, - "key.line" : 205, - "key.modulename" : "ListableUI", - "key.name" : "timerFired()", - "key.namelength" : 12, - "key.nameoffset" : 4055, - "key.offset" : 4050, - "key.parsed_declaration" : "@objc func timerFired()", - "key.parsed_scope.end" : 211, - "key.parsed_scope.start" : 205, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ReloadTimer) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI11ReloadTimerC10timerFiredyyF" - } - ], - "key.typename" : "ReloadTimer.Type", - "key.typeusr" : "$s10ListableUI11ReloadTimerCmD", - "key.usr" : "s:10ListableUI11ReloadTimerC" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3439, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@resultBuilder public enum ListableBuilder<ContentType><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 849 - }, - { - "key.attribute" : "source.decl.attribute.resultBuilder", - "key.length" : 14, - "key.offset" : 834 - } - ], - "key.bodylength" : 2546, - "key.bodyoffset" : 891, - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A result builder which can be used to provide a SwiftUI-like DSL for building arrays of content.\n\nYou provide a result builder in an API by specifying it as a method parameter, like so:\n\n```\ninit(@ListableBuilder contents : () -> [SomeContent]) {\n self.contents = contents()\n}\n```\n\n## Links & Videos\nhttps:\/\/github.com\/apple\/swift-evolution\/blob\/main\/proposals\/0289-result-builders.md\nhttps:\/\/developer.apple.com\/videos\/play\/wwdc2021\/10253\/\nhttps:\/\/www.swiftbysundell.com\/articles\/deep-dive-into-swift-function-builders\/\nhttps:\/\/www.avanderlee.com\/swift\/result-builders\/\n\n### Note\nMost comments on methods come from the result builders SE proposal.\n", - "key.doc.column" : 28, - "key.doc.comment" : "\nA result builder which can be used to provide a SwiftUI-like DSL for building arrays of content.\n\nYou provide a result builder in an API by specifying it as a method parameter, like so:\n\n```\ninit(@ListableBuilder contents : () -> [SomeContent]) {\n self.contents = contents()\n}\n```\n\n## Links & Videos\nhttps:\/\/github.com\/apple\/swift-evolution\/blob\/main\/proposals\/0289-result-builders.md\nhttps:\/\/developer.apple.com\/videos\/play\/wwdc2021\/10253\/\nhttps:\/\/www.swiftbysundell.com\/articles\/deep-dive-into-swift-function-builders\/\nhttps:\/\/www.avanderlee.com\/swift\/result-builders\/\n\n### Note\nMost comments on methods come from the result builders SE proposal.", - "key.doc.declaration" : "@resultBuilder public enum ListableBuilder", - "key.doc.discussion" : [ - { - "Para" : "You provide a result builder in an API by specifying it as a method parameter, like so:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "https:\/\/github.com\/apple\/swift-evolution\/blob\/main\/proposals\/0289-result-builders.md https:\/\/developer.apple.com\/videos\/play\/wwdc2021\/10253\/ https:\/\/www.swiftbysundell.com\/articles\/deep-dive-into-swift-function-builders\/ https:\/\/www.avanderlee.com\/swift\/result-builders\/" - }, - { - "Para" : "Most comments on methods come from the result builders SE proposal." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "ListableBuilder<\/Name>s:10ListableUI0A7BuilderO<\/USR>@resultBuilder public enum ListableBuilder<ContentType><\/Declaration>A result builder which can be used to provide a SwiftUI-like DSL for building arrays of content.<\/Para><\/Abstract>You provide a result builder in an API by specifying it as a method parameter, like so:<\/Para> contents : () -> [SomeContent]) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Links & Videos]]><\/rawHTML>https:\/\/github.com\/apple\/swift-evolution\/blob\/main\/proposals\/0289-result-builders.md https:\/\/developer.apple.com\/videos\/play\/wwdc2021\/10253\/ https:\/\/www.swiftbysundell.com\/articles\/deep-dive-into-swift-function-builders\/ https:\/\/www.avanderlee.com\/swift\/result-builders\/<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Most comments on methods come from the result builders SE proposal.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "ListableBuilder", - "key.doc.type" : "Other", - "key.doclength" : 741, - "key.docoffset" : 93, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "@resultBuilder<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListableBuilder<\/decl.name><ContentType<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 2582, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "ListableBuilder", - "key.namelength" : 15, - "key.nameoffset" : 861, - "key.offset" : 856, - "key.parsed_declaration" : "@resultBuilder public enum ListableBuilder", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "ContentType<\/Declaration>", - "key.column" : 44, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "ContentType<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 11, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "ContentType", - "key.namelength" : 11, - "key.nameoffset" : 877, - "key.offset" : 877, - "key.parsed_declaration" : "@resultBuilder public enum ListableBuilderpublic typealias ListableBuilder<\/Type><ContentType<\/Type>>.Expression = ContentType<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 983 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The type of individual statement expressions in the transformed function.", - "key.doc.column" : 22, - "key.doc.comment" : "The type of individual statement expressions in the transformed function.", - "key.doc.declaration" : "public typealias ListableUI.ListableBuilder.Expression = ContentType", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "Expression<\/Name>s:10ListableUI0A7BuilderO10Expressiona<\/USR>public typealias ListableUI.ListableBuilder<ContentType>.Expression = ContentType<\/Declaration>The type of individual statement expressions in the transformed function.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 31, - "key.doc.name" : "Expression", - "key.doc.type" : "Other", - "key.doclength" : 78, - "key.docoffset" : 901, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListableBuilder<\/ref.enum><ContentType<\/ref.generic_type_param>>.Expression<\/decl.name> = ContentType<\/ref.generic_type_param><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 34, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "Expression", - "key.namelength" : 10, - "key.nameoffset" : 1000, - "key.offset" : 990, - "key.parsed_declaration" : "public typealias Expression = ContentType", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.typename" : "ContentType.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI0A7BuilderO10Expressiona" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListableBuilder<\/Type><ContentType<\/Type>>.Component = [ContentType<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1068 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The type of a partial result.", - "key.doc.column" : 22, - "key.doc.comment" : "The type of a partial result.", - "key.doc.declaration" : "public typealias ListableUI.ListableBuilder.Component = [ContentType]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "Component<\/Name>s:10ListableUI0A7BuilderO9Componenta<\/USR>public typealias ListableUI.ListableBuilder<ContentType>.Component = [ContentType]<\/Declaration>The type of a partial result.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 34, - "key.doc.name" : "Component", - "key.doc.type" : "Other", - "key.doclength" : 34, - "key.docoffset" : 1030, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListableBuilder<\/ref.enum><ContentType<\/ref.generic_type_param>>.Component<\/decl.name> = [ContentType<\/ref.generic_type_param>]<\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 35, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "Component", - "key.namelength" : 9, - "key.nameoffset" : 1085, - "key.offset" : 1075, - "key.parsed_declaration" : "public typealias Component = [ContentType]", - "key.parsed_scope.end" : 34, - "key.parsed_scope.start" : 34, - "key.reusingastcontext" : false, - "key.typename" : "[ContentType].Type", - "key.typeusr" : "$sSayxGmD", - "key.usr" : "s:10ListableUI0A7BuilderO9Componenta" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ListableBuilder<\/Type><ContentType<\/Type>>.FinalResult = [ContentType<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1163 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The type of the final returned result.", - "key.doc.column" : 22, - "key.doc.comment" : "The type of the final returned result.", - "key.doc.declaration" : "public typealias ListableUI.ListableBuilder.FinalResult = [ContentType]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "FinalResult<\/Name>s:10ListableUI0A7BuilderO11FinalResulta<\/USR>public typealias ListableUI.ListableBuilder<ContentType>.FinalResult = [ContentType]<\/Declaration>The type of the final returned result.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 37, - "key.doc.name" : "FinalResult", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 1116, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListableBuilder<\/ref.enum><ContentType<\/ref.generic_type_param>>.FinalResult<\/decl.name> = [ContentType<\/ref.generic_type_param>]<\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 37, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "FinalResult", - "key.namelength" : 11, - "key.nameoffset" : 1180, - "key.offset" : 1170, - "key.parsed_declaration" : "public typealias FinalResult = [ContentType]", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.typename" : "[ContentType].Type", - "key.typeusr" : "$sSayxGmD", - "key.usr" : "s:10ListableUI0A7BuilderO11FinalResulta" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildBlock() -> Component<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1282 - } - ], - "key.bodylength" : 16, - "key.bodyoffset" : 1328, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If an empty closure is provided, returns an empty array.", - "key.doc.column" : 24, - "key.doc.comment" : "If an empty closure is provided, returns an empty array.", - "key.doc.declaration" : "public static func buildBlock() -> Component", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildBlock()<\/Name>s:10ListableUI0A7BuilderO10buildBlockSayxGyFZ<\/USR>public static func buildBlock() -> Component<\/Declaration>If an empty closure is provided, returns an empty array.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 40, - "key.doc.name" : "buildBlock()", - "key.doc.type" : "Function", - "key.doclength" : 61, - "key.docoffset" : 1217, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildBlock<\/decl.name>() -> Component<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 56, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "buildBlock()", - "key.namelength" : 12, - "key.nameoffset" : 1301, - "key.offset" : 1289, - "key.parsed_declaration" : "public static func buildBlock() -> Component", - "key.parsed_scope.end" : 42, - "key.parsed_scope.start" : 40, - "key.related_decls" : [ - { - "key.annotated_decl" : "buildBlock(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> () -> [ContentType]", - "key.typeusr" : "$sSayxGycD", - "key.usr" : "s:10ListableUI0A7BuilderO10buildBlockSayxGyFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildBlock(_ components: Component<\/Type>...) -> Component<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1445 - } - ], - "key.bodylength" : 54, - "key.bodyoffset" : 1517, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Required by every result builder to build combined results from statement blocks.", - "key.doc.column" : 24, - "key.doc.comment" : "Required by every result builder to build combined results from statement blocks.", - "key.doc.declaration" : "public static func buildBlock(_ components: Component...) -> Component", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildBlock(_:)<\/Name>s:10ListableUI0A7BuilderO10buildBlockySayxGAEd_tFZ<\/USR>public static func buildBlock(_ components: Component...) -> Component<\/Declaration>Required by every result builder to build combined results from statement blocks.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 45, - "key.doc.name" : "buildBlock(_:)", - "key.doc.type" : "Function", - "key.doclength" : 86, - "key.docoffset" : 1355, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildBlock<\/decl.name>(_<\/decl.var.parameter.argument_label> components<\/decl.var.parameter.name>: Component<\/ref.typealias>...<\/decl.var.parameter.type><\/decl.var.parameter>) -> Component<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 120, - "key.line" : 45, - "key.modulename" : "ListableUI", - "key.name" : "buildBlock(_:)", - "key.namelength" : 38, - "key.nameoffset" : 1464, - "key.offset" : 1452, - "key.parsed_declaration" : "public static func buildBlock(_ components: Component...) -> Component", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 45, - "key.related_decls" : [ - { - "key.annotated_decl" : "buildBlock()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> ([ContentType]...) -> [ContentType]", - "key.typeusr" : "$sySayxGAAd_tcD", - "key.usr" : "s:10ListableUI0A7BuilderO10buildBlockySayxGAEd_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildExpression(_ expression: Expression<\/Type>) -> Component<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1702 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 1777, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If declared, provides contextual type information for statement expressions to translate them into partial results.", - "key.doc.column" : 24, - "key.doc.comment" : "If declared, provides contextual type information for statement expressions to translate them into partial results.", - "key.doc.declaration" : "public static func buildExpression(_ expression: Expression) -> Component", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildExpression(_:)<\/Name>s:10ListableUI0A7BuilderO15buildExpressionySayxGxFZ<\/USR>public static func buildExpression(_ expression: Expression) -> Component<\/Declaration>If declared, provides contextual type information for statement expressions to translate them into partial results.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 50, - "key.doc.name" : "buildExpression(_:)", - "key.doc.type" : "Function", - "key.doclength" : 120, - "key.docoffset" : 1578, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildExpression<\/decl.name>(_<\/decl.var.parameter.argument_label> expression<\/decl.var.parameter.name>: Expression<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Component<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 95, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "buildExpression(_:)", - "key.namelength" : 41, - "key.nameoffset" : 1721, - "key.offset" : 1709, - "key.parsed_declaration" : "public static func buildExpression(_ expression: Expression) -> Component", - "key.parsed_scope.end" : 52, - "key.parsed_scope.start" : 50, - "key.related_decls" : [ - { - "key.annotated_decl" : "buildExpression(_: [Expression]) -> Component<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> (ContentType) -> [ContentType]", - "key.typeusr" : "$sySayxGxcD", - "key.usr" : "s:10ListableUI0A7BuilderO15buildExpressionySayxGxFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildExpression(_ expression: [Expression<\/Type>]) -> Component<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1938 - } - ], - "key.bodylength" : 24, - "key.bodyoffset" : 2015, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If declared, provides contextual type information for statement expressions to translate them into partial results.", - "key.doc.column" : 24, - "key.doc.comment" : "If declared, provides contextual type information for statement expressions to translate them into partial results.", - "key.doc.declaration" : "public static func buildExpression(_ expression: [Expression]) -> Component", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildExpression(_:)<\/Name>s:10ListableUI0A7BuilderO15buildExpressionySayxGAEFZ<\/USR>public static func buildExpression(_ expression: [Expression]) -> Component<\/Declaration>If declared, provides contextual type information for statement expressions to translate them into partial results.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 55, - "key.doc.name" : "buildExpression(_:)", - "key.doc.type" : "Function", - "key.doclength" : 120, - "key.docoffset" : 1814, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildExpression<\/decl.name>(_<\/decl.var.parameter.argument_label> expression<\/decl.var.parameter.name>: [Expression<\/ref.typealias>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> Component<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 95, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "buildExpression(_:)", - "key.namelength" : 43, - "key.nameoffset" : 1957, - "key.offset" : 1945, - "key.parsed_declaration" : "public static func buildExpression(_ expression: [Expression]) -> Component", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 55, - "key.related_decls" : [ - { - "key.annotated_decl" : "buildExpression(_: Expression) -> Component<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> ([ContentType]) -> [ContentType]", - "key.typeusr" : "$sySayxGAAcD", - "key.usr" : "s:10ListableUI0A7BuilderO15buildExpressionySayxGAEFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildOptional(_ component: Component<\/Type>?) -> Component<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2118 - } - ], - "key.bodylength" : 29, - "key.bodyoffset" : 2190, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Enables support for `if` statements that do not have an `else`.", - "key.doc.column" : 24, - "key.doc.comment" : "Enables support for `if` statements that do not have an `else`.", - "key.doc.declaration" : "public static func buildOptional(_ component: Component?) -> Component", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildOptional(_:)<\/Name>s:10ListableUI0A7BuilderO13buildOptionalySayxGAESgFZ<\/USR>public static func buildOptional(_ component: Component?) -> Component<\/Declaration>Enables support for if<\/codeVoice> statements that do not have an else<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 60, - "key.doc.name" : "buildOptional(_:)", - "key.doc.type" : "Function", - "key.doclength" : 68, - "key.docoffset" : 2046, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildOptional<\/decl.name>(_<\/decl.var.parameter.argument_label> component<\/decl.var.parameter.name>: Component<\/ref.typealias>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> Component<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 95, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "buildOptional(_:)", - "key.namelength" : 38, - "key.nameoffset" : 2137, - "key.offset" : 2125, - "key.parsed_declaration" : "public static func buildOptional(_ component: Component?) -> Component", - "key.parsed_scope.end" : 62, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> ([ContentType]?) -> [ContentType]", - "key.typeusr" : "$sySayxGAASgcD", - "key.usr" : "s:10ListableUI0A7BuilderO13buildOptionalySayxGAESgFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildEither(first component: Component<\/Type>) -> Component<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2368 - } - ], - "key.bodylength" : 23, - "key.bodyoffset" : 2441, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "With buildEither(second:), enables support for 'if-else' and 'switch' statements by folding conditional results into a single result.", - "key.doc.column" : 24, - "key.doc.comment" : "With buildEither(second:), enables support for 'if-else' and 'switch' statements by folding conditional results into a single result.", - "key.doc.declaration" : "public static func buildEither(first component: Component) -> Component", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildEither(first:)<\/Name>s:10ListableUI0A7BuilderO11buildEither5firstSayxGAF_tFZ<\/USR>public static func buildEither(first component: Component) -> Component<\/Declaration>With buildEither(second:), enables support for ‘if-else’ and ‘switch’ statements by folding conditional results into a single result.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 65, - "key.doc.name" : "buildEither(first:)", - "key.doc.type" : "Function", - "key.doclength" : 138, - "key.docoffset" : 2226, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildEither<\/decl.name>(first<\/decl.var.parameter.argument_label> component<\/decl.var.parameter.name>: Component<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Component<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 90, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "buildEither(first:)", - "key.namelength" : 39, - "key.nameoffset" : 2387, - "key.offset" : 2375, - "key.parsed_declaration" : "public static func buildEither(first component: Component) -> Component", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 65, - "key.related_decls" : [ - { - "key.annotated_decl" : "buildEither(second:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> ([ContentType]) -> [ContentType]", - "key.typeusr" : "$s5firstSayxGAB_tcD", - "key.usr" : "s:10ListableUI0A7BuilderO11buildEither5firstSayxGAF_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildEither(second component: Component<\/Type>) -> Component<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2612 - } - ], - "key.bodylength" : 23, - "key.bodyoffset" : 2686, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "With buildEither(first:), enables support for 'if-else' and 'switch' statements by folding conditional results into a single result.", - "key.doc.column" : 24, - "key.doc.comment" : "With buildEither(first:), enables support for 'if-else' and 'switch' statements by folding conditional results into a single result.", - "key.doc.declaration" : "public static func buildEither(second component: Component) -> Component", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildEither(second:)<\/Name>s:10ListableUI0A7BuilderO11buildEither6secondSayxGAF_tFZ<\/USR>public static func buildEither(second component: Component) -> Component<\/Declaration>With buildEither(first:), enables support for ‘if-else’ and ‘switch’ statements by folding conditional results into a single result.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 70, - "key.doc.name" : "buildEither(second:)", - "key.doc.type" : "Function", - "key.doclength" : 137, - "key.docoffset" : 2471, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildEither<\/decl.name>(second<\/decl.var.parameter.argument_label> component<\/decl.var.parameter.name>: Component<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Component<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 91, - "key.line" : 70, - "key.modulename" : "ListableUI", - "key.name" : "buildEither(second:)", - "key.namelength" : 40, - "key.nameoffset" : 2631, - "key.offset" : 2619, - "key.parsed_declaration" : "public static func buildEither(second component: Component) -> Component", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 70, - "key.related_decls" : [ - { - "key.annotated_decl" : "buildEither(first:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> ([ContentType]) -> [ContentType]", - "key.typeusr" : "$s6secondSayxGAB_tcD", - "key.usr" : "s:10ListableUI0A7BuilderO11buildEither6secondSayxGAF_tFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildArray(_ components: [Component<\/Type>]) -> Component<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2825 - } - ], - "key.bodylength" : 39, - "key.bodyoffset" : 2896, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Enables support for 'for..in' loops by combining the results of all iterations into a single result.", - "key.doc.column" : 24, - "key.doc.comment" : "Enables support for 'for..in' loops by combining the results of all iterations into a single result.", - "key.doc.declaration" : "public static func buildArray(_ components: [Component]) -> Component", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildArray(_:)<\/Name>s:10ListableUI0A7BuilderO10buildArrayySayxGSayAEGFZ<\/USR>public static func buildArray(_ components: [Component]) -> Component<\/Declaration>Enables support for ‘for..in’ loops by combining the results of all iterations into a single result.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 75, - "key.doc.name" : "buildArray(_:)", - "key.doc.type" : "Function", - "key.doclength" : 105, - "key.docoffset" : 2716, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildArray<\/decl.name>(_<\/decl.var.parameter.argument_label> components<\/decl.var.parameter.name>: [Component<\/ref.typealias>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> Component<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 104, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "buildArray(_:)", - "key.namelength" : 37, - "key.nameoffset" : 2844, - "key.offset" : 2832, - "key.parsed_declaration" : "public static func buildArray(_ components: [Component]) -> Component", - "key.parsed_scope.end" : 77, - "key.parsed_scope.start" : 75, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> ([[ContentType]]) -> [ContentType]", - "key.typeusr" : "$sySayxGSayAAGcD", - "key.usr" : "s:10ListableUI0A7BuilderO10buildArrayySayxGSayAEGFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildLimitedAvailability(_ component: Component<\/Type>) -> Component<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3088 - } - ], - "key.bodylength" : 23, - "key.bodyoffset" : 3170, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If declared, this will be called on the partial result of an `if #available` block to allow the result builder to erase type information.", - "key.doc.column" : 24, - "key.doc.comment" : "If declared, this will be called on the partial result of an `if #available` block to allow the result builder to erase type information.", - "key.doc.declaration" : "public static func buildLimitedAvailability(_ component: Component) -> Component", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildLimitedAvailability(_:)<\/Name>s:10ListableUI0A7BuilderO24buildLimitedAvailabilityySayxGAEFZ<\/USR>public static func buildLimitedAvailability(_ component: Component) -> Component<\/Declaration>If declared, this will be called on the partial result of an if #available<\/codeVoice> block to allow the result builder to erase type information.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 80, - "key.doc.name" : "buildLimitedAvailability(_:)", - "key.doc.type" : "Function", - "key.doclength" : 142, - "key.docoffset" : 2942, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildLimitedAvailability<\/decl.name>(_<\/decl.var.parameter.argument_label> component<\/decl.var.parameter.name>: Component<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Component<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 99, - "key.line" : 80, - "key.modulename" : "ListableUI", - "key.name" : "buildLimitedAvailability(_:)", - "key.namelength" : 48, - "key.nameoffset" : 3107, - "key.offset" : 3095, - "key.parsed_declaration" : "public static func buildLimitedAvailability(_ component: Component) -> Component", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 80, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> ([ContentType]) -> [ContentType]", - "key.typeusr" : "$sySayxGAAcD", - "key.usr" : "s:10ListableUI0A7BuilderO24buildLimitedAvailabilityySayxGAEFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func buildFinalResult(_ component: Component<\/Type>) -> FinalResult<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3336 - } - ], - "key.bodylength" : 23, - "key.bodyoffset" : 3412, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If declared, this will be called on the partial result from the outermost block statement to produce the final returned result.", - "key.doc.column" : 24, - "key.doc.comment" : "If declared, this will be called on the partial result from the outermost block statement to produce the final returned result.", - "key.doc.declaration" : "public static func buildFinalResult(_ component: Component) -> FinalResult", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.doc.full_as_xml" : "buildFinalResult(_:)<\/Name>s:10ListableUI0A7BuilderO16buildFinalResultySayxGAEFZ<\/USR>public static func buildFinalResult(_ component: Component) -> FinalResult<\/Declaration>If declared, this will be called on the partial result from the outermost block statement to produce the final returned result.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 85, - "key.doc.name" : "buildFinalResult(_:)", - "key.doc.type" : "Function", - "key.doclength" : 132, - "key.docoffset" : 3200, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableBuilder.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> buildFinalResult<\/decl.name>(_<\/decl.var.parameter.argument_label> component<\/decl.var.parameter.name>: Component<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> FinalResult<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 93, - "key.line" : 85, - "key.modulename" : "ListableUI", - "key.name" : "buildFinalResult(_:)", - "key.namelength" : 40, - "key.nameoffset" : 3355, - "key.offset" : 3343, - "key.parsed_declaration" : "public static func buildFinalResult(_ component: Component) -> FinalResult", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 85, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (ListableBuilder.Type) -> ([ContentType]) -> [ContentType]", - "key.typeusr" : "$sySayxGAAcD", - "key.usr" : "s:10ListableUI0A7BuilderO16buildFinalResultySayxGAEFZ" - } - ], - "key.typename" : "ListableBuilder.Type", - "key.typeusr" : "$s10ListableUI0A7BuilderOyxGmD", - "key.usr" : "s:10ListableUI0A7BuilderO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableLocalizedStrings.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2375, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListableLocalizedStrings<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 119 - } - ], - "key.bodylength" : 2213, - "key.bodyoffset" : 159, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableLocalizedStrings.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListableLocalizedStrings<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2247, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "ListableLocalizedStrings", - "key.namelength" : 24, - "key.nameoffset" : 133, - "key.offset" : 126, - "key.parsed_declaration" : "public struct ListableLocalizedStrings", - "key.parsed_scope.end" : 42, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ListableLocalizedStrings<\/Type>.ReorderGesture<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 169 - } - ], - "key.bodylength" : 2167, - "key.bodyoffset" : 198, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableLocalizedStrings.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListableLocalizedStrings<\/ref.struct>.ReorderGesture<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2190, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "ReorderGesture", - "key.namelength" : 14, - "key.nameoffset" : 183, - "key.offset" : 176, - "key.parsed_declaration" : "public struct ReorderGesture", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let accessibilityLabel: String<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 210 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableLocalizedStrings.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> accessibilityLabel<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 471, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityLabel", - "key.namelength" : 18, - "key.nameoffset" : 228, - "key.offset" : 217, - "key.parsed_declaration" : "public static let accessibilityLabel = NSLocalizedString(\"reorder.AccessibilityLabel\",\n tableName: nil,\n bundle: .listableUIResources,\n value: \"Reorder\",\n comment: \"Accessibility label for the reorder control on an item\")", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI0A16LocalizedStringsV14ReorderGestureV18accessibilityLabelSSvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let accessibilityHint: String<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 714 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableLocalizedStrings.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> accessibilityHint<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 521, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityHint", - "key.namelength" : 17, - "key.nameoffset" : 732, - "key.offset" : 721, - "key.parsed_declaration" : "public static let accessibilityHint = NSLocalizedString(\"reorder.AccessibilityHint\",\n tableName: nil,\n bundle: .listableUIResources,\n value: \"Double tap and hold, wait for the sound, then drag to rearrange.\",\n comment: \"Accessibility hint for the reorder control in an item\")", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI0A16LocalizedStringsV14ReorderGestureV17accessibilityHintSSvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let accessibilityMoveUp: String<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1269 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableLocalizedStrings.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> accessibilityMoveUp<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 522, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityMoveUp", - "key.namelength" : 19, - "key.nameoffset" : 1287, - "key.offset" : 1276, - "key.parsed_declaration" : "public static let accessibilityMoveUp = NSLocalizedString(\"reorder.AccessibilityAction.MoveUp\",\n tableName: nil,\n bundle: .listableUIResources,\n value: \"Move up\",\n comment:\"title for an accessibility action that will move a selected cell up one position in the list.\")", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI0A16LocalizedStringsV14ReorderGestureV19accessibilityMoveUpSSvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let accessibilityMoveDown: String<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1816 - } - ], - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ListableLocalizedStrings.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> accessibilityMoveDown<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 537, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityMoveDown", - "key.namelength" : 21, - "key.nameoffset" : 1834, - "key.offset" : 1823, - "key.parsed_declaration" : "public static let accessibilityMoveDown = NSLocalizedString(\"reorder.AccessibilityAction.MoveDown\",\n tableName: nil,\n bundle: .listableUIResources,\n value:\"Move down\",\n comment:\"title for an accessibility action that will move a selected cell down one position in the list.\")", - "key.parsed_scope.end" : 35, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI0A16LocalizedStringsV14ReorderGestureV21accessibilityMoveDownSSvpZ" - } - ], - "key.typename" : "ListableLocalizedStrings.ReorderGesture.Type", - "key.typeusr" : "$s10ListableUI0A16LocalizedStringsV14ReorderGestureVmD", - "key.usr" : "s:10ListableUI0A16LocalizedStringsV14ReorderGestureV" - } - ], - "key.typename" : "ListableLocalizedStrings.Type", - "key.typeusr" : "$s10ListableUI0A16LocalizedStringsVmD", - "key.usr" : "s:10ListableUI0A16LocalizedStringsV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 7251, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol LocalizedCollatableItemContent : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 716 - } - ], - "key.bodylength" : 148, - "key.bodyoffset" : 778, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If you would like to make your `ItemContent` work with the `LocalizedItemCollator`,\nyou should make it conform to this protocol, and then return a `collationString` that\nrepresents the primary content of your `ItemContent`; usually a name or title.\n\nUpon collation, the `ItemContent` will then be grouped into sections according to its\nfirst \"character\" in a localized manner.\n```\nstruct MyContent : ItemContent, LocalizedCollatableItemContent {\n\n var title : String\n\n var collationString : String {\n self.title\n }\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "\nIf you would like to make your `ItemContent` work with the `LocalizedItemCollator`,\nyou should make it conform to this protocol, and then return a `collationString` that\nrepresents the primary content of your `ItemContent`; usually a name or title.\n\nUpon collation, the `ItemContent` will then be grouped into sections according to its\nfirst \"character\" in a localized manner.\n```\nstruct MyContent : ItemContent, LocalizedCollatableItemContent {\n\n var title : String\n\n var collationString : String {\n self.title\n }\n}\n```", - "key.doc.declaration" : "public protocol LocalizedCollatableItemContent : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "Upon collation, the `ItemContent` will then be grouped into sections according to its first “character” in a localized manner." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "LocalizedCollatableItemContent<\/Name>s:10ListableUI30LocalizedCollatableItemContentP<\/USR>public protocol LocalizedCollatableItemContent : ListableUI.ItemContent<\/Declaration>If you would like to make your ItemContent<\/codeVoice> work with the LocalizedItemCollator<\/codeVoice>, you should make it conform to this protocol, and then return a collationString<\/codeVoice> that represents the primary content of your ItemContent<\/codeVoice>; usually a name or title.<\/Para><\/Abstract>Upon collation, the ItemContent<\/codeVoice> will then be grouped into sections according to its first “character” in a localized manner.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 28, - "key.doc.name" : "LocalizedCollatableItemContent", - "key.doc.type" : "Class", - "key.doclength" : 602, - "key.docoffset" : 114, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 765 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> LocalizedCollatableItemContent<\/decl.name> : ItemContent<\/ref.protocol><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 204, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "LocalizedCollatableItemContent", - "key.namelength" : 30, - "key.nameoffset" : 732, - "key.offset" : 723, - "key.parsed_declaration" : "public protocol LocalizedCollatableItemContent : ItemContent", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var collationString: String<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 919, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A string that represents the primary content of your `ItemContent`; usually a name or title.", - "key.doc.column" : 9, - "key.doc.comment" : "A string that represents the primary content of your `ItemContent`; usually a name or title.", - "key.doc.declaration" : "var collationString: String { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "collationString<\/Name>s:10ListableUI30LocalizedCollatableItemContentP15collationStringSSvp<\/USR>var collationString: String { get }<\/Declaration>A string that represents the primary content of your ItemContent<\/codeVoice>; usually a name or title.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 31, - "key.doc.name" : "collationString", - "key.doc.type" : "Other", - "key.doclength" : 97, - "key.docoffset" : 788, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> collationString<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "collationString", - "key.namelength" : 15, - "key.nameoffset" : 893, - "key.offset" : 889, - "key.parsed_declaration" : "var collationString : String", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI30LocalizedCollatableItemContentP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI30LocalizedCollatableItemContentP15collationStringSSvp" - } - ], - "key.typename" : "LocalizedCollatableItemContent.Type", - "key.typeusr" : "$s10ListableUI30LocalizedCollatableItemContent_pmD", - "key.usr" : "s:10ListableUI30LocalizedCollatableItemContentP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol AnyLocalizedCollatableItem : AnyItem<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1245 - } - ], - "key.bodylength" : 42, - "key.bodyoffset" : 1299, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Represents an `AnyItem` which can be collated, via its vended `collationString`.\n\n`Item` (and by extension `AnyItem`) is conditionally conformed to this protocol\nwhen its `Content` conforms to `LocalizedCollatableItemContent`,\nto allow vending homogenous lists of content to be collated.\n", - "key.doc.column" : 17, - "key.doc.comment" : "\nRepresents an `AnyItem` which can be collated, via its vended `collationString`.\n\n`Item` (and by extension `AnyItem`) is conditionally conformed to this protocol\nwhen its `Content` conforms to `LocalizedCollatableItemContent`,\nto allow vending homogenous lists of content to be collated.", - "key.doc.declaration" : "public protocol AnyLocalizedCollatableItem : ListableUI.AnyItem", - "key.doc.discussion" : [ - { - "Para" : "`Item` (and by extension `AnyItem`) is conditionally conformed to this protocol when its `Content` conforms to `LocalizedCollatableItemContent`, to allow vending homogenous lists of content to be collated." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "AnyLocalizedCollatableItem<\/Name>s:10ListableUI26AnyLocalizedCollatableItemP<\/USR>public protocol AnyLocalizedCollatableItem : ListableUI.AnyItem<\/Declaration>Represents an AnyItem<\/codeVoice> which can be collated, via its vended collationString<\/codeVoice>.<\/Para><\/Abstract>Item<\/codeVoice> (and by extension AnyItem<\/codeVoice>) is conditionally conformed to this protocol when its Content<\/codeVoice> conforms to LocalizedCollatableItemContent<\/codeVoice>, to allow vending homogenous lists of content to be collated.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 42, - "key.doc.name" : "AnyLocalizedCollatableItem", - "key.doc.type" : "Class", - "key.doclength" : 315, - "key.docoffset" : 930, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 7, - "key.offset" : 1290 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyLocalizedCollatableItem<\/decl.name> : AnyItem<\/ref.protocol><\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyItem" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 90, - "key.line" : 42, - "key.modulename" : "ListableUI", - "key.name" : "AnyLocalizedCollatableItem", - "key.namelength" : 26, - "key.nameoffset" : 1261, - "key.offset" : 1252, - "key.parsed_declaration" : "public protocol AnyLocalizedCollatableItem : AnyItem", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 42, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var collationString: String<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 1334, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> collationString<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "collationString", - "key.namelength" : 15, - "key.nameoffset" : 1308, - "key.offset" : 1304, - "key.parsed_declaration" : "var collationString : String", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 43, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI26AnyLocalizedCollatableItemP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI26AnyLocalizedCollatableItemP15collationStringSSvp" - } - ], - "key.typename" : "AnyLocalizedCollatableItem.Type", - "key.typeusr" : "$s10ListableUI26AnyLocalizedCollatableItem_pmD", - "key.usr" : "s:10ListableUI26AnyLocalizedCollatableItemP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct LocalizedItemCollator<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2859 - } - ], - "key.bodylength" : 3442, - "key.bodyoffset" : 2896, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If you're looking for the equivalent of `UILocalizedIndexedCollation` for lists,\nyou have come to the right place.\n\n`LocalizedItemCollator` takes in a list of unsorted content, and sorts and then\npartitions the content into sections, returning you a list of collated sections for display.\n\nJust like `UILocalizedIndexedCollation`, `LocalizedItemCollator` takes\ninto account the localization settings of the device, using different collation for the various\nsupported iOS languages.\n\nExample\n-------\n```\nList { list in\n list += LocalizedItemCollator.sections(with: items) { collated, section in\n\n \/\/\/ You are passed a pre-populated section on which you may\n \/\/\/ customize the header and footer, or mutate the content.\n\n section.header = DemoHeader(title: collated.title)\n section.footer = DemoFooter(title: collated.title)\n }\n}\n\n```\nWarning\n-------\nSorting and partitioning thousands and thousands of `Items` each\ntime a list updates can be expensive, especially on slower devices.\n\nIf you have a list that you wish to collate that may contain thousands of items,\nit is recommended that you store the list pre-collated outside of Listable,\nso each recreation of the list's view model does not re-partake in an expensive sort operation.\nInstead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc).\n", - "key.doc.column" : 15, - "key.doc.comment" : "\nIf you're looking for the equivalent of `UILocalizedIndexedCollation` for lists,\nyou have come to the right place.\n\n`LocalizedItemCollator` takes in a list of unsorted content, and sorts and then\npartitions the content into sections, returning you a list of collated sections for display.\n\nJust like `UILocalizedIndexedCollation`, `LocalizedItemCollator` takes\ninto account the localization settings of the device, using different collation for the various\nsupported iOS languages.\n\nExample\n-------\n```\nList { list in\n list += LocalizedItemCollator.sections(with: items) { collated, section in\n\n \/\/\/ You are passed a pre-populated section on which you may\n \/\/\/ customize the header and footer, or mutate the content.\n\n section.header = DemoHeader(title: collated.title)\n section.footer = DemoFooter(title: collated.title)\n }\n}\n\n```\nWarning\n-------\nSorting and partitioning thousands and thousands of `Items` each\ntime a list updates can be expensive, especially on slower devices.\n\nIf you have a list that you wish to collate that may contain thousands of items,\nit is recommended that you store the list pre-collated outside of Listable,\nso each recreation of the list's view model does not re-partake in an expensive sort operation.\nInstead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc).", - "key.doc.declaration" : "public struct LocalizedItemCollator", - "key.doc.discussion" : [ - { - "Para" : "`LocalizedItemCollator` takes in a list of unsorted content, and sorts and then partitions the content into sections, returning you a list of collated sections for display." - }, - { - "Para" : "Just like `UILocalizedIndexedCollation`, `LocalizedItemCollator` takes into account the localization settings of the device, using different collation for the various supported iOS languages." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Sorting and partitioning thousands and thousands of `Items` each time a list updates can be expensive, especially on slower devices." - }, - { - "Para" : "If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "LocalizedItemCollator<\/Name>s:10ListableUI21LocalizedItemCollatorV<\/USR>public struct LocalizedItemCollator<\/Declaration>If you’re looking for the equivalent of UILocalizedIndexedCollation<\/codeVoice> for lists, you have come to the right place.<\/Para><\/Abstract>LocalizedItemCollator<\/codeVoice> takes in a list of unsorted content, and sorts and then partitions the content into sections, returning you a list of collated sections for display.<\/Para>Just like UILocalizedIndexedCollation<\/codeVoice>, LocalizedItemCollator<\/codeVoice> takes into account the localization settings of the device, using different collation for the various supported iOS languages.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Warning]]><\/rawHTML>Sorting and partitioning thousands and thousands of Items<\/codeVoice> each time a list updates can be expensive, especially on slower devices.<\/Para>If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc).<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 83, - "key.doc.name" : "LocalizedItemCollator", - "key.doc.type" : "Class", - "key.doclength" : 1514, - "key.docoffset" : 1345, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LocalizedItemCollator<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 3473, - "key.line" : 83, - "key.modulename" : "ListableUI", - "key.name" : "LocalizedItemCollator", - "key.namelength" : 21, - "key.nameoffset" : 2873, - "key.offset" : 2866, - "key.parsed_declaration" : "public struct LocalizedItemCollator", - "key.parsed_scope.end" : 187, - "key.parsed_scope.start" : 83, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 12, - "key.name" : "MARK: Public", - "key.offset" : 2916 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func sections(collation: UILocalizedIndexedCollation<\/Type> = .current(), with items: [AnyLocalizedCollatableItem<\/Type>], _ modify: (CollatedSection<\/Type>, inout Section<\/Type>) -> () = { _, _ in }) -> [Section<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3413 - } - ], - "key.bodylength" : 303, - "key.bodyoffset" : 3651, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Collates and returns the set of items into list `Sections`,\nallowing you to customize each `Section` via the provided `modify`\nclosure.\n\n```\nList { list in\n list += LocalizedItemCollator.sections(with: items) { collated, section in\n section.header = DemoHeader(title: collated.title)\n section.footer = DemoFooter(title: collated.title)\n }\n}\n\n```", - "key.doc.column" : 24, - "key.doc.comment" : "Collates and returns the set of items into list `Sections`,\nallowing you to customize each `Section` via the provided `modify`\nclosure.\n\n```\nList { list in\n list += LocalizedItemCollator.sections(with: items) { collated, section in\n section.header = DemoHeader(title: collated.title)\n section.footer = DemoFooter(title: collated.title)\n }\n}\n\n```", - "key.doc.declaration" : "public static func sections(collation: UILocalizedIndexedCollation = .current(), with items: [AnyLocalizedCollatableItem], _ modify: (CollatedSection, inout Section) -> () = { _, _ in }) -> [Section]", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "sections(collation:with:_:)<\/Name>s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ<\/USR>public static func sections(collation: UILocalizedIndexedCollation = .current(), with items: [AnyLocalizedCollatableItem], _ modify: (CollatedSection, inout Section) -> () = { _, _ in }) -> [Section]<\/Declaration>Collates and returns the set of items into list Sections<\/codeVoice>, allowing you to customize each Section<\/codeVoice> via the provided modify<\/codeVoice> closure.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 102, - "key.doc.name" : "sections(collation:with:_:)", - "key.doc.type" : "Function", - "key.doclength" : 464, - "key.docoffset" : 2945, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sections<\/decl.name>(collation<\/decl.var.parameter.argument_label>: UILocalizedIndexedCollation<\/ref.class><\/decl.var.parameter.type> = .current()<\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> items<\/decl.var.parameter.name>: [AnyLocalizedCollatableItem<\/ref.protocol>]<\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> modify<\/decl.var.parameter.name>: (CollatedSection<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in }<\/decl.var.parameter>) -> [Section<\/ref.struct>]<\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 535, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "sections(collation:with:_:)", - "key.namelength" : 200, - "key.nameoffset" : 3432, - "key.offset" : 3420, - "key.parsed_declaration" : "public static func sections(\n collation : UILocalizedIndexedCollation = .current(),\n with items : [AnyLocalizedCollatableItem],\n _ modify : (CollatedSection, inout Section) -> () = { _, _ in }\n) -> [Section]", - "key.parsed_scope.end" : 117, - "key.parsed_scope.start" : 102, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let collated: [LocalizedItemCollator<\/Type>.CollatedSection<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> collated<\/decl.name>: [LocalizedItemCollator<\/ref.struct>.CollatedSection<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 63, - "key.line" : 108, - "key.modulename" : "ListableUI", - "key.name" : "collated", - "key.namelength" : 8, - "key.nameoffset" : 3664, - "key.offset" : 3660, - "key.parsed_declaration" : "let collated = Self.collate(collation: collation, items: items)", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 108, - "key.reusingastcontext" : false, - "key.typename" : "[LocalizedItemCollator.CollatedSection]", - "key.typeusr" : "$sSay10ListableUI21LocalizedItemCollatorV15CollatedSectionVGD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ8collatedL_SayAOGvp" - } - ], - "key.typename" : "(LocalizedItemCollator.Type) -> (UILocalizedIndexedCollation, [any AnyLocalizedCollatableItem], (LocalizedItemCollator.CollatedSection, inout Section) -> ()) -> [Section]", - "key.typeusr" : "$s9collation4with_Say10ListableUI7SectionVGSo27UILocalizedIndexedCollationC_SayAC26AnyLocalizedCollatableItem_pGyAC0jL8CollatorV08CollatedE0V_AEztXEtcD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func collate(collation: UILocalizedIndexedCollation<\/Type> = .current(), items: [AnyLocalizedCollatableItem<\/Type>]) -> [CollatedSection<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4113 - } - ], - "key.bodylength" : 102, - "key.bodyoffset" : 4280, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Collates and returns the set of items into `CollatedSection`s.\nYou may then convert these into list `Section`s, or for another use.", - "key.doc.column" : 24, - "key.doc.comment" : "Collates and returns the set of items into `CollatedSection`s.\nYou may then convert these into list `Section`s, or for another use.", - "key.doc.declaration" : "public static func collate(collation: UILocalizedIndexedCollation = .current(), items: [AnyLocalizedCollatableItem]) -> [CollatedSection]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "collate(collation:items:)<\/Name>s:10ListableUI21LocalizedItemCollatorV7collate9collation5itemsSayAC15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtFZ<\/USR>public static func collate(collation: UILocalizedIndexedCollation = .current(), items: [AnyLocalizedCollatableItem]) -> [CollatedSection]<\/Declaration>Collates and returns the set of items into CollatedSection<\/codeVoice>s. You may then convert these into list Section<\/codeVoice>s, or for another use.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 121, - "key.doc.name" : "collate(collation:items:)", - "key.doc.type" : "Function", - "key.doclength" : 144, - "key.docoffset" : 3965, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> collate<\/decl.name>(collation<\/decl.var.parameter.argument_label>: UILocalizedIndexedCollation<\/ref.class><\/decl.var.parameter.type> = .current()<\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [AnyLocalizedCollatableItem<\/ref.protocol>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> [CollatedSection<\/ref.struct>]<\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 263, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "collate(collation:items:)", - "key.namelength" : 121, - "key.nameoffset" : 4132, - "key.offset" : 4120, - "key.parsed_declaration" : "public static func collate(\n collation : UILocalizedIndexedCollation = .current(),\n items : [AnyLocalizedCollatableItem]\n) -> [CollatedSection]", - "key.parsed_scope.end" : 130, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LocalizedItemCollator.Type) -> (UILocalizedIndexedCollation, [any AnyLocalizedCollatableItem]) -> [LocalizedItemCollator.CollatedSection]", - "key.typeusr" : "$s9collation5itemsSay10ListableUI21LocalizedItemCollatorV15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAC03Anye10CollatableF0_pGtcD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV7collate9collation5itemsSayAC15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 14, - "key.name" : "MARK: Internal", - "key.offset" : 4403 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let collated: [CollatedSection<\/Type>]<\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> collated<\/decl.name>: [CollatedSection<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 136, - "key.modulename" : "ListableUI", - "key.name" : "collated", - "key.namelength" : 8, - "key.nameoffset" : 4438, - "key.offset" : 4434, - "key.parsed_declaration" : "let collated : [CollatedSection]", - "key.parsed_scope.end" : 136, - "key.parsed_scope.start" : 136, - "key.reusingastcontext" : false, - "key.typename" : "[LocalizedItemCollator.CollatedSection]", - "key.typeusr" : "$sSay10ListableUI21LocalizedItemCollatorV15CollatedSectionVGD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8collatedSayAC15CollatedSectionVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(collation: UILocalizedIndexedCollation<\/Type> = .current(), items: [AnyLocalizedCollatableItem<\/Type>])<\/Declaration>", - "key.bodylength" : 1186, - "key.bodyoffset" : 4596, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(collation<\/decl.var.parameter.argument_label>: UILocalizedIndexedCollation<\/ref.class><\/decl.var.parameter.type> = .current()<\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [AnyLocalizedCollatableItem<\/ref.protocol>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1307, - "key.line" : 138, - "key.modulename" : "ListableUI", - "key.name" : "init(collation:items:)", - "key.namelength" : 118, - "key.nameoffset" : 4476, - "key.offset" : 4476, - "key.parsed_declaration" : "init(\n collation : UILocalizedIndexedCollation = .current(),\n items : [AnyLocalizedCollatableItem]\n)", - "key.parsed_scope.end" : 171, - "key.parsed_scope.start" : 138, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let providers: [LocalizedItemCollator<\/Type>.Provider<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "1) Convert to providers so we can leverage `collationStringSelector`, which is Objective-C only.", - "key.doc.column" : 13, - "key.doc.comment" : "1) Convert to providers so we can leverage `collationStringSelector`, which is Objective-C only.", - "key.doc.declaration" : "let providers: [ListableUI.LocalizedItemCollator.Provider]", - "key.doc.discussion" : [ - { - "List-Number" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "providers<\/Name>s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc9providersL_SayAC8Provider33_7EA791928592DFF016E56E231602D101LLCGvp<\/USR>let providers: [ListableUI.LocalizedItemCollator.Provider]<\/Declaration>Convert to providers so we can leverage collationStringSelector<\/codeVoice>, which is Objective-C only.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 144, - "key.doc.name" : "providers", - "key.doc.type" : "Other", - "key.doclength" : 101, - "key.docoffset" : 4605, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> providers<\/decl.name>: [LocalizedItemCollator<\/ref.struct>.Provider<\/ref.class>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 68, - "key.line" : 144, - "key.modulename" : "ListableUI", - "key.name" : "providers", - "key.namelength" : 9, - "key.nameoffset" : 4727, - "key.offset" : 4723, - "key.parsed_declaration" : "let providers = items.map {\n Provider(item: $0)\n}", - "key.parsed_scope.end" : 144, - "key.parsed_scope.start" : 144, - "key.reusingastcontext" : false, - "key.typename" : "[LocalizedItemCollator.Provider]", - "key.typeusr" : "$sSay10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLCGD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc9providersL_SayAC8Provider33_7EA791928592DFF016E56E231602D101LLCGvp" - }, - { - "key.annotated_decl" : "var collated: [LocalizedItemCollator<\/Type>.CollatedSection<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "2) Convert the titles from the collation into sections.", - "key.doc.column" : 13, - "key.doc.comment" : "2) Convert the titles from the collation into sections.", - "key.doc.declaration" : "var collated: [ListableUI.LocalizedItemCollator.CollatedSection]", - "key.doc.discussion" : [ - { - "List-Number" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "collated<\/Name>s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc8collatedL_SayAC15CollatedSectionVGvp<\/USR>var collated: [ListableUI.LocalizedItemCollator.CollatedSection]<\/Declaration>Convert the titles from the collation into sections.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 150, - "key.doc.name" : "collated", - "key.doc.type" : "Other", - "key.doclength" : 60, - "key.docoffset" : 4809, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> collated<\/decl.name>: [LocalizedItemCollator<\/ref.struct>.CollatedSection<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 105, - "key.line" : 150, - "key.modulename" : "ListableUI", - "key.name" : "collated", - "key.namelength" : 8, - "key.nameoffset" : 4890, - "key.offset" : 4886, - "key.parsed_declaration" : "var collated = collation.sectionTitles.map { title in\n CollatedSection(title: title)\n}", - "key.parsed_scope.end" : 150, - "key.parsed_scope.start" : 150, - "key.reusingastcontext" : false, - "key.typename" : "[LocalizedItemCollator.CollatedSection]", - "key.typeusr" : "$sSay10ListableUI21LocalizedItemCollatorV15CollatedSectionVGD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc8collatedL_SayAC15CollatedSectionVGvp" - }, - { - "key.annotated_decl" : "let sorted: [Any]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "3) Sort all of the provided content based on the `collationString`.", - "key.doc.column" : 13, - "key.doc.comment" : "3) Sort all of the provided content based on the `collationString`.", - "key.doc.declaration" : "let sorted: [Any]", - "key.doc.discussion" : [ - { - "List-Number" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "sorted<\/Name>s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc6sortedL_SayypGvp<\/USR>let sorted: [Any]<\/Declaration>Sort all of the provided content based on the collationString<\/codeVoice>.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 156, - "key.doc.name" : "sorted", - "key.doc.type" : "Other", - "key.doclength" : 72, - "key.docoffset" : 5009, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sorted<\/decl.name>: [Any<\/syntaxtype.keyword>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 121, - "key.line" : 156, - "key.modulename" : "ListableUI", - "key.name" : "sorted", - "key.namelength" : 6, - "key.nameoffset" : 5102, - "key.offset" : 5098, - "key.parsed_declaration" : "let sorted = collation.sortedArray(from: providers, collationStringSelector: #selector(getter: Provider.collationString))", - "key.parsed_scope.end" : 156, - "key.parsed_scope.start" : 156, - "key.reusingastcontext" : false, - "key.typename" : "[Any]", - "key.typeusr" : "$sSayypGD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc6sortedL_SayypGvp" - }, - { - "key.annotated_decl" : "let provider: Any<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc.comment" : "4) Insert the sorted content into the correct section's items.", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> provider<\/decl.name>: Any<\/syntaxtype.keyword><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 8, - "key.line" : 160, - "key.modulename" : "ListableUI", - "key.name" : "provider", - "key.offset" : 5325, - "key.parsed_declaration" : "for provider", - "key.parsed_scope.end" : 160, - "key.parsed_scope.start" : 160, - "key.reusingastcontext" : false, - "key.typename" : "Any", - "key.typeusr" : "$sypD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc8providerL_ypvp" - } - ], - "key.typename" : "(LocalizedItemCollator.Type) -> (UILocalizedIndexedCollation, [any AnyLocalizedCollatableItem]) -> LocalizedItemCollator", - "key.typeusr" : "$s9collation5items10ListableUI21LocalizedItemCollatorVSo27UILocalizedIndexedCollationC_SayAC03Anye10CollatableF0_pGtcD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private final class LocalizedItemCollator<\/Type>.Provider<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 5920 - }, - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5912 - } - ], - "key.bodylength" : 394, - "key.bodyoffset" : 5942, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A private wrapper that is used to ensure we have an Objective-C selector to vend to `collationStringSelector`.", - "key.doc.column" : 25, - "key.doc.comment" : "A private wrapper that is used to ensure we have an Objective-C selector to vend to `collationStringSelector`.", - "key.doc.declaration" : "private final class ListableUI.LocalizedItemCollator.Provider", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "Provider<\/Name>s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC<\/USR>private final class ListableUI.LocalizedItemCollator.Provider<\/Declaration>A private wrapper that is used to ensure we have an Objective-C selector to vend to collationStringSelector<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 174, - "key.doc.name" : "Provider", - "key.doc.type" : "Class", - "key.doclength" : 115, - "key.docoffset" : 5793, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> LocalizedItemCollator<\/ref.struct>.Provider<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 411, - "key.line" : 174, - "key.modulename" : "ListableUI", - "key.name" : "Provider", - "key.namelength" : 8, - "key.nameoffset" : 5932, - "key.offset" : 5926, - "key.parsed_declaration" : "private final class Provider", - "key.parsed_scope.end" : 186, - "key.parsed_scope.start" : 174, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "let item: AnyLocalizedCollatableItem<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item backing the provider, to vend the `collationString`.", - "key.doc.column" : 13, - "key.doc.comment" : "The item backing the provider, to vend the `collationString`.", - "key.doc.declaration" : "let item: AnyLocalizedCollatableItem", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "item<\/Name>s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC4itemAA03Anyc10CollatableD0_pvp<\/USR>let item: AnyLocalizedCollatableItem<\/Declaration>The item backing the provider, to vend the collationString<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 177, - "key.doc.name" : "item", - "key.doc.type" : "Other", - "key.doclength" : 66, - "key.docoffset" : 5960, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyLocalizedCollatableItem<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 37, - "key.line" : 177, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 6038, - "key.offset" : 6034, - "key.parsed_declaration" : "let item : AnyLocalizedCollatableItem", - "key.parsed_scope.end" : 177, - "key.parsed_scope.start" : 177, - "key.reusingastcontext" : false, - "key.typename" : "any AnyLocalizedCollatableItem", - "key.typeusr" : "$s10ListableUI26AnyLocalizedCollatableItem_pD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC4itemAA03Anyc10CollatableD0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "@objc let collationString: String<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.objc", - "key.length" : 5, - "key.offset" : 6139 - } - ], - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The string used to collate all items.", - "key.doc.column" : 19, - "key.doc.comment" : "The string used to collate all items.", - "key.doc.declaration" : "@objc let collationString: String", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "collationString<\/Name>s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC15collationStringSSvp<\/USR>@objc let collationString: String<\/Declaration>The string used to collate all items.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 180, - "key.doc.name" : "collationString", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 6089, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> collationString<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 180, - "key.modulename" : "ListableUI", - "key.name" : "collationString", - "key.namelength" : 15, - "key.nameoffset" : 6149, - "key.offset" : 6145, - "key.parsed_declaration" : "@objc let collationString : String", - "key.parsed_scope.end" : 180, - "key.parsed_scope.start" : 180, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC15collationStringSSvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init(item: AnyLocalizedCollatableItem<\/Type>)<\/Declaration>", - "key.bodylength" : 99, - "key.bodyoffset" : 6231, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(item<\/decl.var.parameter.argument_label>: AnyLocalizedCollatableItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 140, - "key.line" : 182, - "key.modulename" : "ListableUI", - "key.name" : "init(item:)", - "key.namelength" : 38, - "key.nameoffset" : 6191, - "key.offset" : 6191, - "key.parsed_declaration" : "init(item: AnyLocalizedCollatableItem)", - "key.parsed_scope.end" : 185, - "key.parsed_scope.start" : 182, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(LocalizedItemCollator.Provider.Type) -> (any AnyLocalizedCollatableItem) -> LocalizedItemCollator.Provider", - "key.typeusr" : "$s4item10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLCAB03Anyd10CollatableE0_p_tcD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC4itemAfA03Anyc10CollatableD0_p_tcfc" - } - ], - "key.typename" : "LocalizedItemCollator.Provider.Type", - "key.typeusr" : "$s10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLCmD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC" - } - ], - "key.typename" : "LocalizedItemCollator.Type", - "key.typeusr" : "$s10ListableUI21LocalizedItemCollatorVmD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV" - }, - { - "key.annotated_decl" : "public struct LocalizedItemCollator<\/Declaration>", - "key.bodylength" : 523, - "key.bodyoffset" : 6375, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If you're looking for the equivalent of `UILocalizedIndexedCollation` for lists,\nyou have come to the right place.\n\n`LocalizedItemCollator` takes in a list of unsorted content, and sorts and then\npartitions the content into sections, returning you a list of collated sections for display.\n\nJust like `UILocalizedIndexedCollation`, `LocalizedItemCollator` takes\ninto account the localization settings of the device, using different collation for the various\nsupported iOS languages.\n\nExample\n-------\n```\nList { list in\n list += LocalizedItemCollator.sections(with: items) { collated, section in\n\n \/\/\/ You are passed a pre-populated section on which you may\n \/\/\/ customize the header and footer, or mutate the content.\n\n section.header = DemoHeader(title: collated.title)\n section.footer = DemoFooter(title: collated.title)\n }\n}\n\n```\nWarning\n-------\nSorting and partitioning thousands and thousands of `Items` each\ntime a list updates can be expensive, especially on slower devices.\n\nIf you have a list that you wish to collate that may contain thousands of items,\nit is recommended that you store the list pre-collated outside of Listable,\nso each recreation of the list's view model does not re-partake in an expensive sort operation.\nInstead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc).\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct LocalizedItemCollator", - "key.doc.discussion" : [ - { - "Para" : "`LocalizedItemCollator` takes in a list of unsorted content, and sorts and then partitions the content into sections, returning you a list of collated sections for display." - }, - { - "Para" : "Just like `UILocalizedIndexedCollation`, `LocalizedItemCollator` takes into account the localization settings of the device, using different collation for the various supported iOS languages." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Sorting and partitioning thousands and thousands of `Items` each time a list updates can be expensive, especially on slower devices." - }, - { - "Para" : "If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "LocalizedItemCollator<\/Name>s:10ListableUI21LocalizedItemCollatorV<\/USR>public struct LocalizedItemCollator<\/Declaration>If you’re looking for the equivalent of UILocalizedIndexedCollation<\/codeVoice> for lists, you have come to the right place.<\/Para><\/Abstract>LocalizedItemCollator<\/codeVoice> takes in a list of unsorted content, and sorts and then partitions the content into sections, returning you a list of collated sections for display.<\/Para>Just like UILocalizedIndexedCollation<\/codeVoice>, LocalizedItemCollator<\/codeVoice> takes into account the localization settings of the device, using different collation for the various supported iOS languages.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Warning]]><\/rawHTML>Sorting and partitioning thousands and thousands of Items<\/codeVoice> each time a list updates can be expensive, especially on slower devices.<\/Para>If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc).<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 83, - "key.doc.name" : "LocalizedItemCollator", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LocalizedItemCollator<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 557, - "key.line" : 83, - "key.modulename" : "ListableUI", - "key.name" : "LocalizedItemCollator", - "key.namelength" : 21, - "key.nameoffset" : 6352, - "key.offset" : 6342, - "key.parsed_declaration" : "extension LocalizedItemCollator", - "key.parsed_scope.end" : 204, - "key.parsed_scope.start" : 190, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct CollatedSection<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6504 - } - ], - "key.bodylength" : 361, - "key.bodyoffset" : 6535, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The output of the collator, with the collated title and items\nthat should be added to a given section.", - "key.doc.column" : 19, - "key.doc.comment" : "The output of the collator, with the collated title and items\nthat should be added to a given section.", - "key.doc.declaration" : "public struct CollatedSection", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "CollatedSection<\/Name>s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV<\/USR>public struct CollatedSection<\/Declaration>The output of the collator, with the collated title and items that should be added to a given section.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 194, - "key.doc.name" : "CollatedSection", - "key.doc.type" : "Class", - "key.doclength" : 115, - "key.docoffset" : 6385, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> CollatedSection<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 386, - "key.line" : 194, - "key.modulename" : "ListableUI", - "key.name" : "CollatedSection", - "key.namelength" : 15, - "key.nameoffset" : 6518, - "key.offset" : 6511, - "key.parsed_declaration" : "public struct CollatedSection", - "key.parsed_scope.end" : 203, - "key.parsed_scope.start" : 194, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var title: String<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6760 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The title of section – a single letter like A, B, C, D, E, etc.\nLocalized depending on locale.\nSee https:\/\/nshipster.com\/uilocalizedindexedcollation\/ for more examples.", - "key.doc.column" : 20, - "key.doc.comment" : "The title of section – a single letter like A, B, C, D, E, etc.\nLocalized depending on locale.\nSee https:\/\/nshipster.com\/uilocalizedindexedcollation\/ for more examples.", - "key.doc.declaration" : "public var title: String", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "title<\/Name>s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5titleSSvp<\/USR>public var title: String<\/Declaration>The title of section – a single letter like A, B, C, D, E, etc. Localized depending on locale. See https:\/\/nshipster.com\/uilocalizedindexedcollation\/ for more examples.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 199, - "key.doc.name" : "title", - "key.doc.type" : "Other", - "key.doclength" : 199, - "key.docoffset" : 6553, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> title<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 199, - "key.modulename" : "ListableUI", - "key.name" : "title", - "key.namelength" : 5, - "key.nameoffset" : 6771, - "key.offset" : 6767, - "key.parsed_declaration" : "public var title : String", - "key.parsed_scope.end" : 199, - "key.parsed_scope.start" : 199, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5titleSSvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var items: [AnyItem<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6858 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The sorted items in the collated sections.", - "key.doc.column" : 20, - "key.doc.comment" : "The sorted items in the collated sections.", - "key.doc.declaration" : "public var items: [AnyItem]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5itemsSayAA03AnyD0_pGvp<\/USR>public var items: [AnyItem]<\/Declaration>The sorted items in the collated sections.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 202, - "key.doc.name" : "items", - "key.doc.type" : "Other", - "key.doclength" : 47, - "key.docoffset" : 6803, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> items<\/decl.name>: [AnyItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 26, - "key.line" : 202, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 6869, - "key.offset" : 6865, - "key.parsed_declaration" : "public var items : [AnyItem] = []", - "key.parsed_scope.end" : 202, - "key.parsed_scope.start" : 202, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "[any AnyItem]", - "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5itemsSayAA03AnyD0_pGvp" - } - ], - "key.typename" : "LocalizedItemCollator.CollatedSection.Type", - "key.typeusr" : "$s10ListableUI21LocalizedItemCollatorV15CollatedSectionVmD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV" - } - ], - "key.typename" : "LocalizedItemCollator.Type", - "key.typeusr" : "$s10ListableUI21LocalizedItemCollatorVmD", - "key.usr" : "s:10ListableUI21LocalizedItemCollatorV" - }, - { - "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type>, AnyItemConvertible<\/Type> where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.bodylength" : 90, - "key.bodyoffset" : 7159, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An `Item` is one of the core types deployed by Listable, allowing you to specify\nand control many of the behaviors, appearance options, and callbacks for interacting\nwith rows within a list.\n\n`Item` wraps an `ItemContent` struct (a protocol you implement to provide content),\nwhich drives the primary content of the row the `Item` displays.\n\nIf you are used to working with a collection view or table view, you can think of `ItemContent`\nas what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional\noptions of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.\n\nOnce added to a section, `Item` is type erased to`AnyItem`,\nto allow for mixed collections of content within a section.", - "key.doc.column" : 15, - "key.doc.comment" : "Ensures that `Item` (and by extension, `AnyItem`) will conform to `LocalizedCollatableItem`\nwhen its `content` conforms to `LocalizedCollatableItemContent`.", - "key.doc.declaration" : "public struct Item : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent", - "key.doc.discussion" : [ - { - "Para" : "`Item` wraps an `ItemContent` struct (a protocol you implement to provide content), which drives the primary content of the row the `Item` displays." - }, - { - "Para" : "If you are used to working with a collection view or table view, you can think of `ItemContent` as what you put in the `contentView` of your cell, and you can think of `Item` as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc." - }, - { - "Para" : "Once added to a section, `Item` is type erased to`AnyItem`, to allow for mixed collections of content within a section." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.doc.full_as_xml" : "Item<\/Name>s:10ListableUI4ItemV<\/USR>public struct Item<Content> : AnyItem, AnyItemConvertible where Content : ListableUI.ItemContent<\/Declaration>An Item<\/codeVoice> is one of the core types deployed by Listable, allowing you to specify and control many of the behaviors, appearance options, and callbacks for interacting with rows within a list.<\/Para><\/Abstract>Item<\/codeVoice> wraps an ItemContent<\/codeVoice> struct (a protocol you implement to provide content), which drives the primary content of the row the Item<\/codeVoice> displays.<\/Para>If you are used to working with a collection view or table view, you can think of ItemContent<\/codeVoice> as what you put in the contentView<\/codeVoice> of your cell, and you can think of Item<\/codeVoice> as all of the additional options of a row\/cell: sizing, swipe to delete actions, reordering controls, callbacks, etc.<\/Para>Once added to a section, Item<\/codeVoice> is type erased toAnyItem<\/codeVoice>, to allow for mixed collections of content within a section.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 22, - "key.doc.name" : "Item", - "key.doc.type" : "Class", - "key.doclength" : 165, - "key.docoffset" : 6902, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 26, - "key.offset" : 7084 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Item\/Item.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol>, AnyItemConvertible<\/ref.protocol> where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyLocalizedCollatableItem" - } - ], - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 183, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "Item", - "key.namelength" : 4, - "key.nameoffset" : 7077, - "key.offset" : 7067, - "key.parsed_declaration" : "extension Item : AnyLocalizedCollatableItem where Content : LocalizedCollatableItemContent", - "key.parsed_scope.end" : 214, - "key.parsed_scope.start" : 209, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var collationString: String<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7169 - } - ], - "key.bodylength" : 42, - "key.bodyoffset" : 7205, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/LocalizedItemCollator.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> collationString<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 72, - "key.line" : 211, - "key.modulename" : "ListableUI", - "key.name" : "collationString", - "key.namelength" : 15, - "key.nameoffset" : 7180, - "key.offset" : 7176, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI26AnyLocalizedCollatableItemP15collationStringSSvp" - } - ], - "key.parsed_declaration" : "public var collationString: String", - "key.parsed_scope.end" : 213, - "key.parsed_scope.start" : 211, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI4ItemVA2A019LocalizedCollatableC7ContentRzrlE15collationStringSSvp" - } - ], - "key.typename" : "Item.Type", - "key.typeusr" : "$s10ListableUI4ItemVyxGmD", - "key.usr" : "s:10ListableUI4ItemV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 5984, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public struct ItemPreview : View<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 705 - } - ], - "key.bodylength" : 5235, - "key.bodyoffset" : 739, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A SwiftUI view that you can use to preview your `Item` or `ItemContent`\nwith Xcode's built in preview functionality.\n\nPlace code similar to the below in your source file alongside your `ItemContent`,\nand then open the Xcode editor's canvas.\n\n```\nstruct ElementPreview : PreviewProvider {\n static var previews: some View {\n ItemPreview.withAllItemStates(\n for: Item(XcodePreviewDemoContent(\n text: \"Lorem ipsum dolor sit amet (...)\"\n ))\n )\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.comment" : "\n A SwiftUI view that you can use to preview your `Item` or `ItemContent`\n with Xcode's built in preview functionality.\n\n Place code similar to the below in your source file alongside your `ItemContent`,\n and then open the Xcode editor's canvas.\n\n```\n struct ElementPreview : PreviewProvider {\n static var previews: some View {\n ItemPreview.withAllItemStates(\n for: Item(XcodePreviewDemoContent(\n text: \"Lorem ipsum dolor sit amet (...)\"\n ))\n )\n }\n }\n ```", - "key.doc.declaration" : "@MainActor public struct ItemPreview : View", - "key.doc.discussion" : [ - { - "Para" : "Place code similar to the below in your source file alongside your `ItemContent`, and then open the Xcode editor’s canvas." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "ItemPreview<\/Name>s:10ListableUI11ItemPreviewV<\/USR>@MainActor public struct ItemPreview : View<\/Declaration>A SwiftUI view that you can use to preview your Item<\/codeVoice> or ItemContent<\/codeVoice> with Xcode’s built in preview functionality.<\/Para><\/Abstract>Place code similar to the below in your source file alongside your ItemContent<\/codeVoice>, and then open the Xcode editor’s canvas.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 34, - "key.doc.name" : "ItemPreview", - "key.doc.type" : "Class", - "key.doclength" : 574, - "key.docoffset" : 131, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 4, - "key.offset" : 733 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemPreview<\/decl.name> : View<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "View" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 5263, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "ItemPreview", - "key.namelength" : 11, - "key.nameoffset" : 719, - "key.offset" : 712, - "key.parsed_declaration" : "public struct ItemPreview : View", - "key.parsed_scope.end" : 192, - "key.parsed_scope.start" : 34, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var item: AnyItem<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 793 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The item being previewed by the preview.", - "key.doc.column" : 16, - "key.doc.comment" : "The item being previewed by the preview.", - "key.doc.declaration" : "@MainActor public var item: AnyItem", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "item<\/Name>s:10ListableUI11ItemPreviewV4itemAA03AnyC0_pvp<\/USR>@MainActor public var item: AnyItem<\/Declaration>The item being previewed by the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 37, - "key.doc.name" : "item", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 744, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 804, - "key.offset" : 800, - "key.parsed_declaration" : "public var item : AnyItem", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pD", - "key.usr" : "s:10ListableUI11ItemPreviewV4itemAA03AnyC0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var properties: Properties<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 875 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The properties of the current preview.", - "key.doc.column" : 16, - "key.doc.comment" : "The properties of the current preview.", - "key.doc.declaration" : "@MainActor public var properties: Properties", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "properties<\/Name>s:10ListableUI11ItemPreviewV10propertiesAC10PropertiesVvp<\/USR>@MainActor public var properties: Properties<\/Declaration>The properties of the current preview.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 40, - "key.doc.name" : "properties", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 828, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> properties<\/decl.name>: Properties<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "properties", - "key.namelength" : 10, - "key.nameoffset" : 886, - "key.offset" : 882, - "key.parsed_declaration" : "public var properties : Properties", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemPreview.Properties", - "key.typeusr" : "$s10ListableUI11ItemPreviewV10PropertiesVD", - "key.usr" : "s:10ListableUI11ItemPreviewV10propertiesAC10PropertiesVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemPreview<\/Type>.Properties<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 956 - } - ], - "key.bodylength" : 707, - "key.bodyoffset" : 986, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The properties of a preview.", - "key.doc.column" : 19, - "key.doc.comment" : "The properties of a preview.", - "key.doc.declaration" : "public struct ListableUI.ItemPreview.Properties", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "Properties<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV<\/USR>public struct ListableUI.ItemPreview.Properties<\/Declaration>The properties of a preview.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 43, - "key.doc.name" : "Properties", - "key.doc.type" : "Class", - "key.doclength" : 33, - "key.docoffset" : 919, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemPreview<\/ref.struct>.Properties<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 731, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "Properties", - "key.namelength" : 10, - "key.nameoffset" : 970, - "key.offset" : 963, - "key.parsed_declaration" : "public struct Properties", - "key.parsed_scope.end" : 62, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1033 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The width of the preview.", - "key.doc.column" : 20, - "key.doc.comment" : "The width of the preview.", - "key.doc.declaration" : "public var width: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV5width14CoreFoundation7CGFloatVvp<\/USR>public var width: CGFloat<\/Declaration>The width of the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 46, - "key.doc.name" : "width", - "key.doc.type" : "Other", - "key.doclength" : 30, - "key.docoffset" : 995, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 46, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 1044, - "key.offset" : 1040, - "key.parsed_declaration" : "public var width : CGFloat", - "key.parsed_scope.end" : 46, - "key.parsed_scope.start" : 46, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI11ItemPreviewV10PropertiesV5width14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var state: ItemState<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1119 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `ItemState` to use in the preview.", - "key.doc.column" : 20, - "key.doc.comment" : "The `ItemState` to use in the preview.", - "key.doc.declaration" : "public var state: ItemState", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "state<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV5stateAA0C5StateVvp<\/USR>public var state: ItemState<\/Declaration>The ItemState<\/codeVoice> to use in the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 48, - "key.doc.name" : "state", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 1068, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> state<\/decl.name>: ItemState<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "state", - "key.namelength" : 5, - "key.nameoffset" : 1130, - "key.offset" : 1126, - "key.parsed_declaration" : "public var state : ItemState", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 48, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemState", - "key.typeusr" : "$s10ListableUI9ItemStateVD", - "key.usr" : "s:10ListableUI11ItemPreviewV10PropertiesV5stateAA0C5StateVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var appearance: ItemPreviewAppearance<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1207 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The desired appearance of the preview.", - "key.doc.column" : 20, - "key.doc.comment" : "The desired appearance of the preview.", - "key.doc.declaration" : "public var appearance: ItemPreviewAppearance", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "appearance<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV10appearanceAA0cD10AppearanceVvp<\/USR>public var appearance: ItemPreviewAppearance<\/Declaration>The desired appearance of the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 50, - "key.doc.name" : "appearance", - "key.doc.type" : "Other", - "key.doclength" : 43, - "key.docoffset" : 1156, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> appearance<\/decl.name>: ItemPreviewAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "appearance", - "key.namelength" : 10, - "key.nameoffset" : 1218, - "key.offset" : 1214, - "key.parsed_declaration" : "public var appearance : ItemPreviewAppearance", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemPreviewAppearance", - "key.typeusr" : "$s10ListableUI21ItemPreviewAppearanceVD", - "key.usr" : "s:10ListableUI11ItemPreviewV10PropertiesV10appearanceAA0cD10AppearanceVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(with width: CGFloat<\/Type> = UIScreen.main.bounds.width, state: ItemState<\/Type> = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance<\/Type> = .init())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1330 - } - ], - "key.bodylength" : 112, - "key.bodyoffset" : 1575, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new preview with the desired options.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new preview with the desired options.", - "key.doc.declaration" : "public init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance = .init())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "init(with:state:appearance:)<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV4with5state10appearanceAE14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVtcfc<\/USR>public init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance = .init())<\/Declaration>Creates a new preview with the desired options.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 53, - "key.doc.name" : "init(with:state:appearance:)", - "key.doc.type" : "Function", - "key.doclength" : 52, - "key.docoffset" : 1270, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, state<\/decl.var.parameter.argument_label>: ItemState<\/ref.struct><\/decl.var.parameter.type> = .init(isSelected: false, isHighlighted: false, isReordering: false)<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 351, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "init(with:state:appearance:)", - "key.namelength" : 236, - "key.nameoffset" : 1337, - "key.offset" : 1337, - "key.parsed_declaration" : "public init(\n with width : CGFloat = UIScreen.main.bounds.width,\n state : ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false),\n appearance : ItemPreviewAppearance = .init()\n)", - "key.parsed_scope.end" : 61, - "key.parsed_scope.start" : 53, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreview.Properties.Type) -> (CGFloat, ItemState, ItemPreviewAppearance) -> ItemPreview.Properties", - "key.typeusr" : "$s4with5state10appearance10ListableUI11ItemPreviewV10PropertiesV14CoreFoundation7CGFloatV_AD0F5StateVAD0fG10AppearanceVtcD", - "key.usr" : "s:10ListableUI11ItemPreviewV10PropertiesV4with5state10appearanceAE14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVtcfc" - } - ], - "key.typename" : "ItemPreview.Properties.Type", - "key.typeusr" : "$s10ListableUI11ItemPreviewV10PropertiesVmD", - "key.usr" : "s:10ListableUI11ItemPreviewV10PropertiesV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public static func previews(for item: AnyItem<\/Type>, with properties: [Properties<\/Type>]) -> some View<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1908 - } - ], - "key.bodylength" : 705, - "key.bodyoffset" : 2006, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates and returns a SwiftUI view that contains individual previews for each of the provided\nproperties. Use this if you'd like to preview your `Item` across multiple sizes, states, etc.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates and returns a SwiftUI view that contains individual previews for each of the provided\nproperties. Use this if you'd like to preview your `Item` across multiple sizes, states, etc.", - "key.doc.declaration" : "@MainActor public static func previews(for item: AnyItem, with properties: [Properties]) -> some View", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "previews(for:with:)<\/Name>s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ<\/USR>@MainActor public static func previews(for item: AnyItem, with properties: [Properties]) -> some View<\/Declaration>Creates and returns a SwiftUI view that contains individual previews for each of the provided properties. Use this if you’d like to preview your Item<\/codeVoice> across multiple sizes, states, etc.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 66, - "key.doc.name" : "previews(for:with:)", - "key.doc.type" : "Function", - "key.doclength" : 200, - "key.docoffset" : 1704, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> previews<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> properties<\/decl.var.parameter.name>: [Properties<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> some<\/syntaxtype.keyword> View<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 797, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "previews(for:with:)", - "key.namelength" : 60, - "key.nameoffset" : 1927, - "key.offset" : 1915, - "key.parsed_declaration" : "public static func previews(for item : AnyItem, with properties : [Properties]) -> some View", - "key.parsed_scope.end" : 92, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "struct PreviewsItem<\/Declaration>", - "key.bodylength" : 269, - "key.bodyoffset" : 2044, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> PreviewsItem<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 299, - "key.line" : 68, - "key.modulename" : "ListableUI", - "key.name" : "PreviewsItem", - "key.namelength" : 12, - "key.nameoffset" : 2022, - "key.offset" : 2015, - "key.parsed_declaration" : "struct PreviewsItem", - "key.parsed_scope.end" : 79, - "key.parsed_scope.start" : 68, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var item: AnyItem<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 70, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 2061, - "key.offset" : 2057, - "key.parsed_declaration" : "var item : AnyItem", - "key.parsed_scope.end" : 70, - "key.parsed_scope.start" : 70, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pD", - "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V4itemAaG_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var properties: Properties<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> properties<\/decl.name>: Properties<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "properties", - "key.namelength" : 10, - "key.nameoffset" : 2092, - "key.offset" : 2088, - "key.parsed_declaration" : "var properties : Properties", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 71, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ItemPreview.Properties", - "key.typeusr" : "$s10ListableUI11ItemPreviewV10PropertiesVD", - "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V10propertiesAIvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var identifierValue: Identifier<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifierValue<\/decl.name>: Identifier<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 73, - "key.modulename" : "ListableUI", - "key.name" : "identifierValue", - "key.namelength" : 15, - "key.nameoffset" : 2137, - "key.offset" : 2133, - "key.parsed_declaration" : "var identifierValue : Identifier", - "key.parsed_scope.end" : 73, - "key.parsed_scope.start" : 73, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "PreviewsItem.Identifier", - "key.typeusr" : "$s10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V10IdentifierVD", - "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V15identifierValueAL10IdentifierVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "struct PreviewsItem<\/Type>.Identifier : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 82, - "key.bodyoffset" : 2221, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 2211 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> PreviewsItem<\/ref.struct>.Identifier<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 113, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 2198, - "key.offset" : 2191, - "key.parsed_declaration" : "struct Identifier : Hashable", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 75, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var index: Int<\/Type><\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 15, - "key.line" : 76, - "key.modulename" : "ListableUI", - "key.name" : "index", - "key.namelength" : 5, - "key.nameoffset" : 2242, - "key.offset" : 2238, - "key.parsed_declaration" : "var index : Int", - "key.parsed_scope.end" : 76, - "key.parsed_scope.start" : 76, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V10IdentifierV5indexSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var totalCount: Int<\/Type><\/Declaration>", - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> totalCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 77, - "key.modulename" : "ListableUI", - "key.name" : "totalCount", - "key.namelength" : 10, - "key.nameoffset" : 2274, - "key.offset" : 2270, - "key.parsed_declaration" : "var totalCount : Int", - "key.parsed_scope.end" : 77, - "key.parsed_scope.start" : 77, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V10IdentifierV10totalCountSivp" - } - ], - "key.typename" : "PreviewsItem.Identifier.Type", - "key.typeusr" : "$s10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V10IdentifierVmD", - "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V10IdentifierV" - } - ], - "key.typename" : "PreviewsItem.Type", - "key.typeusr" : "$s10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_VmD", - "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_V" - }, - { - "key.annotated_decl" : "let previewsItems: [PreviewsItem<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> previewsItems<\/decl.name>: [PreviewsItem<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 235, - "key.line" : 81, - "key.modulename" : "ListableUI", - "key.name" : "previewsItems", - "key.namelength" : 13, - "key.nameoffset" : 2336, - "key.offset" : 2332, - "key.parsed_declaration" : "let previewsItems = properties.mapWithIndex {\n PreviewsItem(\n item: item,\n properties: $2,\n identifierValue: .init(index: $0, totalCount: properties.count)\n )\n}", - "key.parsed_scope.end" : 81, - "key.parsed_scope.start" : 81, - "key.reusingastcontext" : false, - "key.typename" : "[PreviewsItem]", - "key.typeusr" : "$sSay10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ08PreviewsC0L_VGD", - "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ0E5ItemsL_SayAcdeFQrAaG_p_AJtFZ08PreviewsC0L_VGvp" - } - ], - "key.typename" : "(ItemPreview.Type) -> (any AnyItem, [ItemPreview.Properties]) -> some View", - "key.typeusr" : "$s3for4withQr10ListableUI7AnyItem_p_SayAC0F7PreviewV10PropertiesVGtcD", - "key.usr" : "s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public static func withAllItemStates(for item: AnyItem<\/Type>, width: CGFloat<\/Type> = UIScreen.main.bounds.width, appearance: ItemPreviewAppearance<\/Type> = .init()) -> some View<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3251 - } - ], - "key.bodylength" : 622, - "key.bodyoffset" : 3448, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates and returns a SwiftUI view that contains individual previews for all the possible\nstates of `ItemState`. This allows you to see your `Item` across the possible\nselected and highlighted states it can appear in:\n\n```\nisSelected: false, isHighlighted: false\nisSelected: false, isHighlighted: true\nisSelected: true, isHighlighted: false\nisSelected: true, isHighlighted: true\nisSelected: false, isHighlighted: true, isReordering: true\n```", - "key.doc.column" : 24, - "key.doc.comment" : "Creates and returns a SwiftUI view that contains individual previews for all the possible\nstates of `ItemState`. This allows you to see your `Item` across the possible\nselected and highlighted states it can appear in:\n\n```\nisSelected: false, isHighlighted: false\nisSelected: false, isHighlighted: true\nisSelected: true, isHighlighted: false\nisSelected: true, isHighlighted: true\nisSelected: false, isHighlighted: true, isReordering: true\n```", - "key.doc.declaration" : "@MainActor public static func withAllItemStates(for item: AnyItem, width: CGFloat = UIScreen.main.bounds.width, appearance: ItemPreviewAppearance = .init()) -> some View", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "withAllItemStates(for:width:appearance:)<\/Name>s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_14CoreFoundation7CGFloatVAA0cD10AppearanceVtFZ<\/USR>@MainActor public static func withAllItemStates(for item: AnyItem, width: CGFloat = UIScreen.main.bounds.width, appearance: ItemPreviewAppearance = .init()) -> some View<\/Declaration>Creates and returns a SwiftUI view that contains individual previews for all the possible states of ItemState<\/codeVoice>. This allows you to see your Item<\/codeVoice> across the possible selected and highlighted states it can appear in:<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 105, - "key.doc.name" : "withAllItemStates(for:width:appearance:)", - "key.doc.type" : "Function", - "key.doclength" : 525, - "key.docoffset" : 2722, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> withAllItemStates<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>) -> some<\/syntaxtype.keyword> View<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 813, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "withAllItemStates(for:width:appearance:)", - "key.namelength" : 159, - "key.nameoffset" : 3270, - "key.offset" : 3258, - "key.parsed_declaration" : "public static func withAllItemStates(\n for item : AnyItem,\n width : CGFloat = UIScreen.main.bounds.width,\n appearance : ItemPreviewAppearance = .init()\n) -> some View", - "key.parsed_scope.end" : 122, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let states: [ItemState<\/Type>]<\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> states<\/decl.name>: [ItemState<\/ref.struct>]<\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 458, - "key.line" : 111, - "key.modulename" : "ListableUI", - "key.name" : "states", - "key.namelength" : 6, - "key.nameoffset" : 3461, - "key.offset" : 3457, - "key.parsed_declaration" : "let states : [ItemState] = [\n ItemState(isSelected: false, isHighlighted: false, isReordering: false),\n ItemState(isSelected: false, isHighlighted: true, isReordering: false),\n ItemState(isSelected: true, isHighlighted: false, isReordering: false),\n ItemState(isSelected: true, isHighlighted: true, isReordering: false),\n ItemState(isSelected: false, isHighlighted: false, isReordering: true),\n]", - "key.parsed_scope.end" : 111, - "key.parsed_scope.start" : 111, - "key.reusingastcontext" : false, - "key.typename" : "[ItemState]", - "key.typeusr" : "$sSay10ListableUI9ItemStateVGD", - "key.usr" : "s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_14CoreFoundation7CGFloatVAA0cD10AppearanceVtFZ6statesL_SayAA0C5StateVGvp" - } - ], - "key.typename" : "(ItemPreview.Type) -> (any AnyItem, CGFloat, ItemPreviewAppearance) -> some View", - "key.typeusr" : "$s3for5width10appearanceQr10ListableUI7AnyItem_p_14CoreFoundation7CGFloatVAD0G17PreviewAppearanceVtcD", - "key.usr" : "s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_14CoreFoundation7CGFloatVAA0cD10AppearanceVtFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 4091 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public init(_ item: AnyItem<\/Type>, width: CGFloat<\/Type> = UIScreen.main.bounds.width, state: ItemState<\/Type> = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance<\/Type> = .init())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4188 - } - ], - "key.bodylength" : 200, - "key.bodyoffset" : 4438, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new preview with the provided properties.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new preview with the provided properties.", - "key.doc.declaration" : "@MainActor public init(_ item: AnyItem, width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance = .init())", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "init(_:width:state:appearance:)<\/Name>s:10ListableUI11ItemPreviewV_5width5state10appearanceAcA03AnyC0_p_14CoreFoundation7CGFloatVAA0C5StateVAA0cD10AppearanceVtcfc<\/USR>@MainActor public init(_ item: AnyItem, width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance = .init())<\/Declaration>Creates a new preview with the provided properties.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 129, - "key.doc.name" : "init(_:width:state:appearance:)", - "key.doc.type" : "Function", - "key.doclength" : 56, - "key.docoffset" : 4128, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, state<\/decl.var.parameter.argument_label>: ItemState<\/ref.struct><\/decl.var.parameter.type> = .init(isSelected: false, isHighlighted: false, isReordering: false)<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 444, - "key.line" : 129, - "key.modulename" : "ListableUI", - "key.name" : "init(_:width:state:appearance:)", - "key.namelength" : 241, - "key.nameoffset" : 4195, - "key.offset" : 4195, - "key.parsed_declaration" : "public init(\n _ item : AnyItem,\n width : CGFloat = UIScreen.main.bounds.width,\n state : ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false),\n appearance : ItemPreviewAppearance = .init()\n)", - "key.parsed_scope.end" : 143, - "key.parsed_scope.start" : 129, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:properties:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreview.Type) -> (any AnyItem, CGFloat, ItemState, ItemPreviewAppearance) -> ItemPreview", - "key.typeusr" : "$s_5width5state10appearance10ListableUI11ItemPreviewVAD03AnyF0_p_14CoreFoundation7CGFloatVAD0F5StateVAD0fG10AppearanceVtcD", - "key.usr" : "s:10ListableUI11ItemPreviewV_5width5state10appearanceAcA03AnyC0_p_14CoreFoundation7CGFloatVAA0C5StateVAA0cD10AppearanceVtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public init(_ item: AnyItem<\/Type>, properties: Properties<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4709 - } - ], - "key.bodylength" : 76, - "key.bodyoffset" : 4787, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new preview with the provided properties.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new preview with the provided properties.", - "key.doc.declaration" : "@MainActor public init(_ item: AnyItem, properties: Properties)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.doc.full_as_xml" : "init(_:properties:)<\/Name>s:10ListableUI11ItemPreviewV_10propertiesAcA03AnyC0_p_AC10PropertiesVtcfc<\/USR>@MainActor public init(_ item: AnyItem, properties: Properties)<\/Declaration>Creates a new preview with the provided properties.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 146, - "key.doc.name" : "init(_:properties:)", - "key.doc.type" : "Function", - "key.doclength" : 56, - "key.docoffset" : 4649, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, properties<\/decl.var.parameter.argument_label>: Properties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 148, - "key.line" : 146, - "key.modulename" : "ListableUI", - "key.name" : "init(_:properties:)", - "key.namelength" : 69, - "key.nameoffset" : 4716, - "key.offset" : 4716, - "key.parsed_declaration" : "public init(\n _ item : AnyItem,\n properties : Properties\n)", - "key.parsed_scope.end" : 153, - "key.parsed_scope.start" : 146, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:width:state:appearance:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreview.Type) -> (any AnyItem, ItemPreview.Properties) -> ItemPreview", - "key.typeusr" : "$s_10properties10ListableUI11ItemPreviewVAB03AnyD0_p_AD10PropertiesVtcD", - "key.usr" : "s:10ListableUI11ItemPreviewV_10propertiesAcA03AnyC0_p_AC10PropertiesVtcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 18, - "key.name" : "MARK: SwiftUI.View", - "key.offset" : 4884 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var body: some View<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4919 - } - ], - "key.bodylength" : 211, - "key.bodyoffset" : 4947, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The content and behavior of the view.\n\nWhen you implement a custom view, you must implement a computed\n`body` property to provide the content for your view. Return a view\nthat's composed of built-in views that SwiftUI provides, plus other\ncomposite views that you've already defined:\n\n struct MyView: View {\n var body: some View {\n Text(\"Hello, World!\")\n }\n }\n\nFor more information about composing views and a view hierarchy,\nsee .", - "key.doc.declaration" : "@ViewBuilder @MainActor @preconcurrency var body: Self.Body { get }", - "key.doc.discussion" : [ - { - "Para" : "When you implement a custom view, you must implement a computed `body` property to provide the content for your view. Return a view that’s composed of built-in views that SwiftUI provides, plus other composite views that you’ve already defined:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "For more information about composing views and a view hierarchy, see ." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "body<\/Name>s:7SwiftUI4ViewP4body4BodyQzvp<\/USR>@ViewBuilder @MainActor @preconcurrency var body: Self.Body { get }<\/Declaration>The content and behavior of the view.<\/Para><\/Abstract>When you implement a custom view, you must implement a computed body<\/codeVoice> property to provide the content for your view. Return a view that’s composed of built-in views that SwiftUI provides, plus other composite views that you’ve already defined:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>For more information about composing views and a view hierarchy, see doc:Declaring-a-Custom-View<\/Link>.<\/Para>This documentation comment was inherited from View<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.name" : "body", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> body<\/decl.name>: some<\/syntaxtype.keyword> View<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 233, - "key.line" : 159, - "key.modulename" : "ListableUI", - "key.name" : "body", - "key.namelength" : 4, - "key.nameoffset" : 4930, - "key.offset" : 4926, - "key.overrides" : [ - { - "key.usr" : "s:7SwiftUI4ViewP4body4BodyQzvp" - } - ], - "key.parsed_declaration" : "public var body: some View", - "key.parsed_scope.end" : 166, - "key.parsed_scope.start" : 159, - "key.reusingastcontext" : false, - "key.typename" : "some View", - "key.typeusr" : "$sQrD", - "key.usr" : "s:7SwiftUI4ViewP4body4BodyQzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private var previewDisplayName: String<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5169 - } - ], - "key.bodylength" : 114, - "key.bodyoffset" : 5210, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> previewDisplayName<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 148, - "key.line" : 168, - "key.modulename" : "ListableUI", - "key.name" : "previewDisplayName", - "key.namelength" : 18, - "key.nameoffset" : 5181, - "key.offset" : 5177, - "key.parsed_declaration" : "private var previewDisplayName : String", - "key.parsed_scope.end" : 170, - "key.parsed_scope.start" : 168, - "key.reusingastcontext" : false, - "key.typename" : "String", - "key.typeusr" : "$sSSD", - "key.usr" : "s:10ListableUI11ItemPreviewV18previewDisplayName33_F9C4BD5BF772FC170B515C3EF40454DBLLSSvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private struct ItemPreview<\/Type>.ItemPreviewWrapper : UIViewRepresentable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 5335 - } - ], - "key.bodylength" : 576, - "key.bodyoffset" : 5396, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 5371 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemPreview<\/ref.struct>.ItemPreviewWrapper<\/decl.name> : UIViewRepresentable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "UIViewRepresentable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 630, - "key.line" : 172, - "key.modulename" : "ListableUI", - "key.name" : "ItemPreviewWrapper", - "key.namelength" : 18, - "key.nameoffset" : 5350, - "key.offset" : 5343, - "key.parsed_declaration" : "private struct ItemPreviewWrapper : UIViewRepresentable", - "key.parsed_scope.end" : 191, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var item: AnyItem<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5405 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 174, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 5416, - "key.offset" : 5412, - "key.parsed_declaration" : "public var item : AnyItem", - "key.parsed_scope.end" : 174, - "key.parsed_scope.start" : 174, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "any AnyItem", - "key.typeusr" : "$s10ListableUI7AnyItem_pD", - "key.usr" : "s:10ListableUI11ItemPreviewV0cD7Wrapper33_F9C4BD5BF772FC170B515C3EF40454DBLLV4itemAA03AnyC0_pvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public var properties: Properties<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5439 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> properties<\/decl.name>: Properties<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 175, - "key.modulename" : "ListableUI", - "key.name" : "properties", - "key.namelength" : 10, - "key.nameoffset" : 5450, - "key.offset" : 5446, - "key.parsed_declaration" : "public var properties : Properties", - "key.parsed_scope.end" : 175, - "key.parsed_scope.start" : 175, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ItemPreview.Properties", - "key.typeusr" : "$s10ListableUI11ItemPreviewV10PropertiesVD", - "key.usr" : "s:10ListableUI11ItemPreviewV0cD7Wrapper33_F9C4BD5BF772FC170B515C3EF40454DBLLV10propertiesAC10PropertiesVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias ItemPreview<\/Type>.ItemPreviewWrapper<\/Type>.UIViewType = ItemPreviewView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5491 - } - ], - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The type of view to present.", - "key.doc.declaration" : "associatedtype UIViewType : UIView", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "UIViewType<\/Name>s:7SwiftUI19UIViewRepresentableP0C4TypeQa<\/USR>associatedtype UIViewType : UIView<\/Declaration>The type of view to present.<\/Para><\/Abstract>This documentation comment was inherited from UIViewRepresentable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.name" : "UIViewType", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ItemPreview<\/ref.struct>.ItemPreviewWrapper<\/ref.struct>.UIViewType<\/decl.name> = ItemPreviewView<\/ref.class><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 38, - "key.line" : 177, - "key.modulename" : "ListableUI", - "key.name" : "UIViewType", - "key.namelength" : 10, - "key.nameoffset" : 5508, - "key.offset" : 5498, - "key.overrides" : [ - { - "key.usr" : "s:7SwiftUI19UIViewRepresentableP0C4TypeQa" - } - ], - "key.parsed_declaration" : "public typealias UIViewType = ItemPreviewView", - "key.parsed_scope.end" : 177, - "key.parsed_scope.start" : 177, - "key.reusingastcontext" : false, - "key.typename" : "ItemPreviewView.Type", - "key.typeusr" : "$s10ListableUI15ItemPreviewViewCmD", - "key.usr" : "s:7SwiftUI19UIViewRepresentableP0C4TypeQa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func makeUIView(context: Context<\/Type>) -> UIViewType<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5554 - } - ], - "key.bodylength" : 46, - "key.bodyoffset" : 5610, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates the view object and configures its initial state.\n\nYou must implement this method and use it to create your view object.\nConfigure the view using your app's current data and contents of the\n`context` parameter. The system calls this method only once, when it\ncreates your view for the first time. For all subsequent updates, the\nsystem calls the ``UIViewRepresentable\/updateUIView(_:context:)``\nmethod.\n\n- Parameter context: A context structure containing information about\n the current state of the system.\n\n- Returns: Your UIKit view configured with the provided information.", - "key.doc.declaration" : "@MainActor @preconcurrency func makeUIView(context: Self.Context) -> Self.UIViewType", - "key.doc.discussion" : [ - { - "Para" : "You must implement this method and use it to create your view object. Configure the view using your app’s current data and contents of the `context` parameter. The system calls this method only once, when it creates your view for the first time. For all subsequent updates, the system calls the `UIViewRepresentable\/updateUIView(_:context:)` method." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "makeUIView(context:)<\/Name>s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF<\/USR>@MainActor @preconcurrency func makeUIView(context: Self.Context) -> Self.UIViewType<\/Declaration>Creates the view object and configures its initial state.<\/Para><\/Abstract>context<\/Name>in<\/Direction>A context structure containing information about the current state of the system.<\/Para><\/Discussion><\/Parameter><\/Parameters>Your UIKit view configured with the provided information.<\/Para><\/ResultDiscussion>You must implement this method and use it to create your view object. Configure the view using your app’s current data and contents of the context<\/codeVoice> parameter. The system calls this method only once, when it creates your view for the first time. For all subsequent updates, the system calls the UIViewRepresentable\/updateUIView(_:context:)<\/codeVoice> method.<\/Para>This documentation comment was inherited from UIViewRepresentable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "makeUIView(context:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "A context structure containing information about the current state of the system." - } - ], - "name" : "context" - } - ], - "key.doc.result_discussion" : [ - { - "Para" : "Your UIKit view configured with the provided information." - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> makeUIView<\/decl.name>(context<\/decl.var.parameter.argument_label>: Context<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIViewType<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 96, - "key.line" : 179, - "key.modulename" : "ListableUI", - "key.name" : "makeUIView(context:)", - "key.namelength" : 28, - "key.nameoffset" : 5566, - "key.offset" : 5561, - "key.overrides" : [ - { - "key.usr" : "s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF" - } - ], - "key.parsed_declaration" : "public func makeUIView(context: Context) -> UIViewType", - "key.parsed_scope.end" : 181, - "key.parsed_scope.start" : 179, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreview.ItemPreviewWrapper) -> (UIViewRepresentableContext) -> ItemPreviewView", - "key.typeusr" : "$s7context10ListableUI15ItemPreviewViewC05SwiftC026UIViewRepresentableContextVyAB0dE0V0dE7Wrapper33_F9C4BD5BF772FC170B515C3EF40454DBLLVG_tcD", - "key.usr" : "s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func updateUIView(_ view: UIViewType<\/Type>, context: Context<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5675 - } - ], - "key.bodylength" : 227, - "key.bodyoffset" : 5739, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Updates the state of the specified view with new information from\nSwiftUI.\n\nWhen the state of your app changes, SwiftUI updates the portions of your\ninterface affected by those changes. SwiftUI calls this method for any\nchanges affecting the corresponding UIKit view. Use this method to\nupdate the configuration of your view to match the new state information\nprovided in the `context` parameter.\n\n- Parameters:\n - uiView: Your custom view object.\n - context: A context structure containing information about the current\n state of the system.", - "key.doc.declaration" : "@MainActor @preconcurrency func updateUIView(_ uiView: Self.UIViewType, context: Self.Context)", - "key.doc.discussion" : [ - { - "Para" : "When the state of your app changes, SwiftUI updates the portions of your interface affected by those changes. SwiftUI calls this method for any changes affecting the corresponding UIKit view. Use this method to update the configuration of your view to match the new state information provided in the `context` parameter." - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "updateUIView(_:context:)<\/Name>s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF<\/USR>@MainActor @preconcurrency func updateUIView(_ uiView: Self.UIViewType, context: Self.Context)<\/Declaration>Updates the state of the specified view with new information from SwiftUI.<\/Para><\/Abstract>uiView<\/Name>in<\/Direction>Your custom view object.<\/Para><\/Discussion><\/Parameter>context<\/Name>in<\/Direction>A context structure containing information about the current state of the system.<\/Para><\/Discussion><\/Parameter><\/Parameters>When the state of your app changes, SwiftUI updates the portions of your interface affected by those changes. SwiftUI calls this method for any changes affecting the corresponding UIKit view. Use this method to update the configuration of your view to match the new state information provided in the context<\/codeVoice> parameter.<\/Para>This documentation comment was inherited from UIViewRepresentable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "updateUIView(_:context:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "Your custom view object." - } - ], - "name" : "uiView" - }, - { - "discussion" : [ - { - "Para" : "A context structure containing information about the current state of the system." - } - ], - "name" : "context" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreview.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateUIView<\/decl.name>(_<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIViewType<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, context<\/decl.var.parameter.argument_label>: Context<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 285, - "key.line" : 183, - "key.modulename" : "ListableUI", - "key.name" : "updateUIView(_:context:)", - "key.namelength" : 50, - "key.nameoffset" : 5687, - "key.offset" : 5682, - "key.overrides" : [ - { - "key.usr" : "s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF" - } - ], - "key.parsed_declaration" : "public func updateUIView(_ view: UIViewType, context: Context)", - "key.parsed_scope.end" : 190, - "key.parsed_scope.start" : 183, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreview.ItemPreviewWrapper) -> (ItemPreviewView, UIViewRepresentableContext) -> ()", - "key.typeusr" : "$s_7contexty10ListableUI15ItemPreviewViewC_05SwiftC026UIViewRepresentableContextVyAB0dE0V0dE7Wrapper33_F9C4BD5BF772FC170B515C3EF40454DBLLVGtcD", - "key.usr" : "s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF" - } - ], - "key.typename" : "ItemPreview.ItemPreviewWrapper.Type", - "key.typeusr" : "$s10ListableUI11ItemPreviewV0cD7Wrapper33_F9C4BD5BF772FC170B515C3EF40454DBLLVmD", - "key.usr" : "s:10ListableUI11ItemPreviewV0cD7Wrapper33_F9C4BD5BF772FC170B515C3EF40454DBLLV" - } - ], - "key.typename" : "ItemPreview.Type", - "key.typeusr" : "$s10ListableUI11ItemPreviewVmD", - "key.usr" : "s:10ListableUI11ItemPreviewV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1099, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ItemPreviewAppearance : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 161 - } - ], - "key.bodylength" : 887, - "key.bodyoffset" : 210, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The appearance options for a preview item.", - "key.doc.column" : 15, - "key.doc.comment" : "The appearance options for a preview item.", - "key.doc.declaration" : "public struct ItemPreviewAppearance : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift", - "key.doc.full_as_xml" : "ItemPreviewAppearance<\/Name>s:10ListableUI21ItemPreviewAppearanceV<\/USR>public struct ItemPreviewAppearance : Equatable<\/Declaration>The appearance options for a preview item.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 12, - "key.doc.name" : "ItemPreviewAppearance", - "key.doc.type" : "Class", - "key.doclength" : 47, - "key.docoffset" : 114, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 199 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemPreviewAppearance<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 930, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ItemPreviewAppearance", - "key.namelength" : 21, - "key.nameoffset" : 175, - "key.offset" : 168, - "key.parsed_declaration" : "public struct ItemPreviewAppearance : Equatable", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var padding: CGFloat<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The padding to show around an item.", - "key.doc.column" : 9, - "key.doc.comment" : "The padding to show around an item.", - "key.doc.declaration" : "var padding: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift", - "key.doc.full_as_xml" : "padding<\/Name>s:10ListableUI21ItemPreviewAppearanceV7padding14CoreFoundation7CGFloatVvp<\/USR>var padding: CGFloat<\/Declaration>The padding to show around an item.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 15, - "key.doc.name" : "padding", - "key.doc.type" : "Other", - "key.doclength" : 40, - "key.docoffset" : 215, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> padding<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "padding", - "key.namelength" : 7, - "key.nameoffset" : 263, - "key.offset" : 259, - "key.parsed_declaration" : "var padding : CGFloat", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI21ItemPreviewAppearanceV7padding14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var backgroundColor: UIColor<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The background color to show behind an item.\nDefaults to white.", - "key.doc.column" : 9, - "key.doc.comment" : "The background color to show behind an item.\nDefaults to white.", - "key.doc.declaration" : "var backgroundColor: UIColor", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift", - "key.doc.full_as_xml" : "backgroundColor<\/Name>s:10ListableUI21ItemPreviewAppearanceV15backgroundColorSo7UIColorCvp<\/USR>var backgroundColor: UIColor<\/Declaration>The background color to show behind an item. Defaults to white.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 19, - "key.doc.name" : "backgroundColor", - "key.doc.type" : "Other", - "key.doclength" : 76, - "key.docoffset" : 290, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> backgroundColor<\/decl.name>: UIColor<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "backgroundColor", - "key.namelength" : 15, - "key.nameoffset" : 374, - "key.offset" : 370, - "key.parsed_declaration" : "var backgroundColor : UIColor", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "UIColor", - "key.typeusr" : "$sSo7UIColorCD", - "key.usr" : "s:10ListableUI21ItemPreviewAppearanceV15backgroundColorSo7UIColorCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(padding: CGFloat<\/Type> = 20.0, backgroundColor: UIColor<\/Type> = .white)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 451 - } - ], - "key.bodylength" : 83, - "key.bodyoffset" : 548, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new preview appearance.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new preview appearance.", - "key.doc.declaration" : "public init(padding: CGFloat = 20.0, backgroundColor: UIColor = .white)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift", - "key.doc.full_as_xml" : "init(padding:backgroundColor:)<\/Name>s:10ListableUI21ItemPreviewAppearanceV7padding15backgroundColorAC14CoreFoundation7CGFloatV_So7UIColorCtcfc<\/USR>public init(padding: CGFloat = 20.0, backgroundColor: UIColor = .white)<\/Declaration>Creates a new preview appearance.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 22, - "key.doc.name" : "init(padding:backgroundColor:)", - "key.doc.type" : "Function", - "key.doclength" : 38, - "key.docoffset" : 409, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(padding<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 20.0<\/decl.var.parameter>, backgroundColor<\/decl.var.parameter.argument_label>: UIColor<\/ref.class><\/decl.var.parameter.type> = .white<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 174, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "init(padding:backgroundColor:)", - "key.namelength" : 88, - "key.nameoffset" : 458, - "key.offset" : 458, - "key.parsed_declaration" : "public init(\n padding : CGFloat = 20.0,\n backgroundColor : UIColor = .white\n)", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreviewAppearance.Type) -> (CGFloat, UIColor) -> ItemPreviewAppearance", - "key.typeusr" : "$s7padding15backgroundColor10ListableUI21ItemPreviewAppearanceV14CoreFoundation7CGFloatV_So7UIColorCtcD", - "key.usr" : "s:10ListableUI21ItemPreviewAppearanceV7padding15backgroundColorAC14CoreFoundation7CGFloatV_So7UIColorCtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func configure(list properties: inout ListProperties<\/Type>)<\/Declaration>", - "key.bodylength" : 393, - "key.bodyoffset" : 702, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> configure<\/decl.name>(list<\/decl.var.parameter.argument_label> properties<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 454, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "configure(list:)", - "key.namelength" : 49, - "key.nameoffset" : 647, - "key.offset" : 642, - "key.parsed_declaration" : "func configure(list properties : inout ListProperties)", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreviewAppearance) -> (inout ListProperties) -> ()", - "key.typeusr" : "$s4listy10ListableUI14ListPropertiesVz_tcD", - "key.usr" : "s:10ListableUI21ItemPreviewAppearanceV9configure4listyAA14ListPropertiesVz_tF" - } - ], - "key.typename" : "ItemPreviewAppearance.Type", - "key.typeusr" : "$s10ListableUI21ItemPreviewAppearanceVmD", - "key.usr" : "s:10ListableUI21ItemPreviewAppearanceV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 4180, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public final class ItemPreviewView : UIView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 718 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 711 - } - ], - "key.bodylength" : 3422, - "key.bodyoffset" : 756, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A view you can use to test the various possible states that your `ItemContent` can be in.\n\nThis view is usually used alongside snapshot tests, to capture your `ItemContent` in\nits selected or highlighted, or to see how it reacts to different sizing configuration.\n\nIf you'd like to use this view alongside Xcode previews, see `ItemPreview`.\n\nNote\n----\nThis view sizes itself to fit the provided `Item` when you call its `view.update(..)` method.\nYou do not need to call `layoutIfNeeded()` or `sizeToFit()`, etc, to properly size\nand lay out the view.\n", - "key.doc.column" : 20, - "key.doc.comment" : "\nA view you can use to test the various possible states that your `ItemContent` can be in.\n\nThis view is usually used alongside snapshot tests, to capture your `ItemContent` in\nits selected or highlighted, or to see how it reacts to different sizing configuration.\n\nIf you'd like to use this view alongside Xcode previews, see `ItemPreview`.\n\nNote\n----\nThis view sizes itself to fit the provided `Item` when you call its `view.update(..)` method.\nYou do not need to call `layoutIfNeeded()` or `sizeToFit()`, etc, to properly size\nand lay out the view.", - "key.doc.declaration" : "@MainActor public final class ItemPreviewView : UIView", - "key.doc.discussion" : [ - { - "Para" : "This view is usually used alongside snapshot tests, to capture your `ItemContent` in its selected or highlighted, or to see how it reacts to different sizing configuration." - }, - { - "Para" : "If you’d like to use this view alongside Xcode previews, see `ItemPreview`." - }, - { - "Para" : "This view sizes itself to fit the provided `Item` when you call its `view.update(..)` method. You do not need to call `layoutIfNeeded()` or `sizeToFit()`, etc, to properly size and lay out the view." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.doc.full_as_xml" : "ItemPreviewView<\/Name>c:@M@ListableUI@objc(cs)ItemPreviewView<\/USR>@MainActor public final class ItemPreviewView : UIView<\/Declaration>A view you can use to test the various possible states that your ItemContent<\/codeVoice> can be in.<\/Para><\/Abstract>This view is usually used alongside snapshot tests, to capture your ItemContent<\/codeVoice> in its selected or highlighted, or to see how it reacts to different sizing configuration.<\/Para>If you’d like to use this view alongside Xcode previews, see ItemPreview<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This view sizes itself to fit the provided Item<\/codeVoice> when you call its view.update(..)<\/codeVoice> method. You do not need to call layoutIfNeeded()<\/codeVoice> or sizeToFit()<\/codeVoice>, etc, to properly size and lay out the view.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 25, - "key.doc.name" : "ItemPreviewView", - "key.doc.type" : "Class", - "key.doclength" : 604, - "key.docoffset" : 107, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 6, - "key.offset" : 748 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemPreviewView<\/decl.name> : UIView<\/ref.class><\/decl.class>", - "key.inheritedtypes" : [ - { - "key.name" : "UIView" - } - ], - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 3455, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "ItemPreviewView", - "key.namelength" : 15, - "key.nameoffset" : 730, - "key.offset" : 724, - "key.parsed_declaration" : "public final class ItemPreviewView : UIView", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "@MainActor<\/Type> private let listView: ListView<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 813 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The list used to render the content.", - "key.doc.column" : 17, - "key.doc.comment" : "The list used to render the content.", - "key.doc.declaration" : "@MainActor private let listView: ListView", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.doc.full_as_xml" : "listView<\/Name>s:10ListableUI15ItemPreviewViewC04listE033_0518A7150E42BD8A8926F15465CA97DDLLAA04ListE0Cvp<\/USR>@MainActor private let listView: ListView<\/Declaration>The list used to render the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "listView", - "key.doc.type" : "Other", - "key.doclength" : 41, - "key.docoffset" : 768, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "listView", - "key.namelength" : 8, - "key.nameoffset" : 825, - "key.offset" : 821, - "key.parsed_declaration" : "private let listView : ListView", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.typename" : "ListView", - "key.typeusr" : "$s10ListableUI8ListViewCD", - "key.usr" : "s:10ListableUI15ItemPreviewViewC04listE033_0518A7150E42BD8A8926F15465CA97DDLLAA04ListE0Cvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 864 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 948 - } - ], - "key.bodylength" : 279, - "key.bodyoffset" : 967, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a preview for the given width.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a preview for the given width.", - "key.doc.declaration" : "@MainActor public init()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.doc.full_as_xml" : "init()<\/Name>c:@M@ListableUI@objc(cs)ItemPreviewView(im)init<\/USR>@MainActor public init()<\/Declaration>Creates a preview for the given width.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 35, - "key.doc.name" : "init()", - "key.doc.type" : "Function", - "key.doclength" : 43, - "key.docoffset" : 901, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 292, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 955, - "key.offset" : 955, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)init" - }, - { - "key.usr" : "c:objc(cs)NSObject(im)init" - } - ], - "key.parsed_declaration" : "public init()", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 35, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(with:state:appearance:item:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreviewView.Type) -> () -> ItemPreviewView", - "key.typeusr" : "$s10ListableUI15ItemPreviewViewCycD", - "key.usr" : "c:@M@ListableUI@objc(cs)ItemPreviewView(im)init" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public convenience init(with width: CGFloat<\/Type> = UIScreen.main.bounds.width, state: ItemState<\/Type> = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance<\/Type> = .init(), item: AnyItem<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.convenience", - "key.length" : 11, - "key.offset" : 1361 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1354 - } - ], - "key.bodylength" : 117, - "key.bodyoffset" : 1619, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a preview for the given item and parameters, and then lays out the preview view.", - "key.doc.column" : 24, - "key.doc.comment" : "Creates a preview for the given item and parameters, and then lays out the preview view.", - "key.doc.declaration" : "@MainActor public convenience init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.doc.full_as_xml" : "init(with:state:appearance:item:)<\/Name>s:10ListableUI15ItemPreviewViewC4with5state10appearance4itemAC14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptcfc<\/USR>@MainActor public convenience init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)<\/Declaration>Creates a preview for the given item and parameters, and then lays out the preview view.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 48, - "key.doc.name" : "init(with:state:appearance:item:)", - "key.doc.type" : "Function", - "key.doclength" : 93, - "key.docoffset" : 1257, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> convenience<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, state<\/decl.var.parameter.argument_label>: ItemState<\/ref.struct><\/decl.var.parameter.type> = .init(isSelected: false, isHighlighted: false, isReordering: false)<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 364, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "init(with:state:appearance:item:)", - "key.namelength" : 244, - "key.nameoffset" : 1373, - "key.offset" : 1373, - "key.parsed_declaration" : "public convenience init(\n with width : CGFloat = UIScreen.main.bounds.width,\n state : ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false),\n appearance : ItemPreviewAppearance = .init(),\n item : AnyItem\n)", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 48, - "key.related_decls" : [ - { - "key.annotated_decl" : "init()<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreviewView.Type) -> (CGFloat, ItemState, ItemPreviewAppearance, any AnyItem) -> ItemPreviewView", - "key.typeusr" : "$s4with5state10appearance4item10ListableUI15ItemPreviewViewC14CoreFoundation7CGFloatV_AE0G5StateVAE0gH10AppearanceVAE03AnyG0_ptcD", - "key.usr" : "s:10ListableUI15ItemPreviewViewC4with5state10appearance4itemAC14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptcfc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 21, - "key.name" : "MARK: Setting Content", - "key.offset" : 1757 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public func update(with width: CGFloat<\/Type> = UIScreen.main.bounds.width, state: ItemState<\/Type> = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance<\/Type> = .init(), item: AnyItem<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1947 - } - ], - "key.bodylength" : 1490, - "key.bodyoffset" : 2207, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Updates the item for the given parameters.\nThis method changes the view's size; you dont need to resize the view after setting an item.", - "key.doc.column" : 17, - "key.doc.comment" : "Updates the item for the given parameters.\nThis method changes the view's size; you dont need to resize the view after setting an item.", - "key.doc.declaration" : "@MainActor public func update(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.doc.full_as_xml" : "update(with:state:appearance:item:)<\/Name>s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF<\/USR>@MainActor public func update(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)<\/Declaration>Updates the item for the given parameters. This method changes the view’s size; you dont need to resize the view after setting an item.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 65, - "key.doc.name" : "update(with:state:appearance:item:)", - "key.doc.type" : "Function", - "key.doclength" : 148, - "key.docoffset" : 1795, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, state<\/decl.var.parameter.argument_label>: ItemState<\/ref.struct><\/decl.var.parameter.type> = .init(isSelected: false, isHighlighted: false, isReordering: false)<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1744, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "update(with:state:appearance:item:)", - "key.namelength" : 246, - "key.nameoffset" : 1959, - "key.offset" : 1954, - "key.parsed_declaration" : "public func update(\n with width : CGFloat = UIScreen.main.bounds.width,\n state : ItemState = .init(isSelected: false, isHighlighted: false, isReordering: false),\n appearance : ItemPreviewAppearance = .init(),\n item : AnyItem\n)", - "key.parsed_scope.end" : 108, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let indexPath: IndexPath<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Update the cell for the preview.", - "key.doc.column" : 13, - "key.doc.comment" : "Update the cell for the preview.", - "key.doc.declaration" : "let indexPath: IndexPath", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.doc.full_as_xml" : "indexPath<\/Name>s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF9indexPathL_0L005IndexR0Vvp<\/USR>let indexPath: IndexPath<\/Declaration>Update the cell for the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 96, - "key.doc.name" : "indexPath", - "key.doc.type" : "Other", - "key.doclength" : 37, - "key.docoffset" : 3056, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 46, - "key.line" : 96, - "key.modulename" : "ListableUI", - "key.name" : "indexPath", - "key.namelength" : 9, - "key.nameoffset" : 3114, - "key.offset" : 3110, - "key.parsed_declaration" : "let indexPath = IndexPath(item: 0, section: 0)", - "key.parsed_scope.end" : 96, - "key.parsed_scope.start" : 96, - "key.reusingastcontext" : false, - "key.typename" : "IndexPath", - "key.typeusr" : "$s10Foundation9IndexPathVD", - "key.usr" : "s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF9indexPathL_0L005IndexR0Vvp" - }, - { - "key.annotated_decl" : "let presentationState: any AnyPresentationItemState<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationState<\/decl.name>: any AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 83, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "presentationState", - "key.namelength" : 17, - "key.nameoffset" : 3396, - "key.offset" : 3392, - "key.parsed_declaration" : "let presentationState = self.listView.storage.presentationState.item(at: indexPath)", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 102, - "key.reusingastcontext" : false, - "key.typename" : "any AnyPresentationItemState", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pD", - "key.usr" : "s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF012presentationN0L_AA0p12PresentationcN0_pvp" - } - ], - "key.typename" : "(ItemPreviewView) -> (CGFloat, ItemState, ItemPreviewAppearance, any AnyItem) -> ()", - "key.typeusr" : "$s4with5state10appearance4itemy14CoreFoundation7CGFloatV_10ListableUI9ItemStateVAH0J17PreviewAppearanceVAH03AnyJ0_ptcD", - "key.usr" : "s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy14CoreFoundation7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.required", - "key.length" : 8, - "key.offset" : 3735 - }, - { - "key.attribute" : "source.decl.attribute.available", - "key.length" : 26, - "key.offset" : 3708 - } - ], - "key.bodylength" : 14, - "key.bodyoffset" : 3767, - "key.internal_diagnostic" : "Unavailable in the current compilation context.", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 38, - "key.name" : "init(coder:)", - "key.namelength" : 21, - "key.nameoffset" : 3744, - "key.offset" : 3744, - "key.substructure" : [ - - ] - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 12, - "key.name" : "MARK: UIView", - "key.offset" : 3802 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override func layoutSubviews()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 3838 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3831 - } - ], - "key.bodylength" : 95, - "key.bodyoffset" : 3870, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 119, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "layoutSubviews()", - "key.namelength" : 16, - "key.nameoffset" : 3852, - "key.offset" : 3847, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)layoutSubviews" - } - ], - "key.parsed_declaration" : "public override func layoutSubviews()", - "key.parsed_scope.end" : 120, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreviewView) -> () -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "c:@M@ListableUI@objc(cs)ItemPreviewView(im)layoutSubviews" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override func sizeThatFits(_ size: CGSize<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 3983 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3976 - } - ], - "key.bodylength" : 39, - "key.bodyoffset" : 4037, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sizeThatFits<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 85, - "key.line" : 122, - "key.modulename" : "ListableUI", - "key.name" : "sizeThatFits(_:)", - "key.namelength" : 28, - "key.nameoffset" : 3997, - "key.offset" : 3992, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(im)sizeThatFits:" - } - ], - "key.parsed_declaration" : "public override func sizeThatFits(_ size: CGSize) -> CGSize", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 122, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ItemPreviewView) -> (CGSize) -> CGSize", - "key.typeusr" : "$sySo6CGSizeVABcD", - "key.usr" : "c:@M@ListableUI@objc(cs)ItemPreviewView(im)sizeThatFits:" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "@MainActor<\/Type> public override var intrinsicContentSize: CGSize<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.override", - "key.length" : 8, - "key.offset" : 4094 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4087 - } - ], - "key.bodylength" : 39, - "key.bodyoffset" : 4137, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> intrinsicContentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 74, - "key.line" : 126, - "key.modulename" : "ListableUI", - "key.name" : "intrinsicContentSize", - "key.namelength" : 20, - "key.nameoffset" : 4107, - "key.offset" : 4103, - "key.overrides" : [ - { - "key.usr" : "c:objc(cs)UIView(py)intrinsicContentSize" - } - ], - "key.parsed_declaration" : "public override var intrinsicContentSize: CGSize", - "key.parsed_scope.end" : 128, - "key.parsed_scope.start" : 126, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "c:@M@ListableUI@objc(cs)ItemPreviewView(py)intrinsicContentSize" - } - ], - "key.typename" : "ItemPreviewView.Type", - "key.typeusr" : "$s10ListableUI15ItemPreviewViewCmD", - "key.usr" : "c:@M@ListableUI@objc(cs)ItemPreviewView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReappliesToVisibleView.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2845, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ReappliesToVisibleView<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2091 - } - ], - "key.bodylength" : 716, - "key.bodyoffset" : 2127, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A rule to determine when an ``ItemContent`` or ``HeaderFooterContent`` should be re-applied\nto the visible view currently representing the content on screen. If the content is not on\nscreen, then no application is done regardless of the rule (because there is no view).\n\nThe default value is ``ReappliesToVisibleView\/always``. You may want to change the value to\n``ReappliesToVisibleView\/ifNotEquivalent`` if applying your content is expensive. However,\nkeep in mind that your `isEquivalent(to:)` method will then need to check any potentially embedded references\nto objects, eg references in a callback closure, to ensure a reference does not become out of date:\n\n```\n struct MyContent : BlueprintItemContent {\n\n var theme : MyTheme\n var title : String\n var myController : MyController\n\n func element(with info : ApplyItemContentInfo) -> Element {\n MyLabel(text: self.title, style: theme.labelStyle)\n .inset(uniform: 20.0)\n .onLongPress {\n myController.didLongPress()\n }\n }\n\n func isEquivalent(to other : Self) -> Bool {\n theme == other.theme &&\n title == other.title &&\n myController === other.myController\n }\n }\n```\n\n### Note\nWhen using `.ifNotEquivalent` it is not recommended that your content holds onto closures\ndirectly – there is no way for you to check them for equivalency, and thus, only the `.always`\napplication method will be correct. Instead, model callbacks explicitly by taking in an object or\nclass-bound protocol that you can then perform callbacks on, so you can compare the identity of the object.\n\nFurther, for tappable items in a list, leverage ``Item\/onSelect-swift.property`` on your `Item`,\ninstead of implementing tappable items manually (which is a common source of callback closures in item content).\n", - "key.doc.column" : 13, - "key.doc.comment" : "A rule to determine when an ``ItemContent`` or ``HeaderFooterContent`` should be re-applied\nto the visible view currently representing the content on screen. If the content is not on\nscreen, then no application is done regardless of the rule (because there is no view).\n\nThe default value is ``ReappliesToVisibleView\/always``. You may want to change the value to\n``ReappliesToVisibleView\/ifNotEquivalent`` if applying your content is expensive. However,\nkeep in mind that your `isEquivalent(to:)` method will then need to check any potentially embedded references\nto objects, eg references in a callback closure, to ensure a reference does not become out of date:\n\n```\n struct MyContent : BlueprintItemContent {\n\n var theme : MyTheme\n var title : String\n var myController : MyController\n\n func element(with info : ApplyItemContentInfo) -> Element {\n MyLabel(text: self.title, style: theme.labelStyle)\n .inset(uniform: 20.0)\n .onLongPress {\n myController.didLongPress()\n }\n }\n\n func isEquivalent(to other : Self) -> Bool {\n theme == other.theme &&\n title == other.title &&\n myController === other.myController\n }\n }\n```\n\n### Note\nWhen using `.ifNotEquivalent` it is not recommended that your content holds onto closures\ndirectly – there is no way for you to check them for equivalency, and thus, only the `.always`\napplication method will be correct. Instead, model callbacks explicitly by taking in an object or\nclass-bound protocol that you can then perform callbacks on, so you can compare the identity of the object.\n\nFurther, for tappable items in a list, leverage ``Item\/onSelect-swift.property`` on your `Item`,\ninstead of implementing tappable items manually (which is a common source of callback closures in item content).", - "key.doc.declaration" : "public enum ReappliesToVisibleView", - "key.doc.discussion" : [ - { - "Para" : "The default value is `ReappliesToVisibleView\/always`. You may want to change the value to `ReappliesToVisibleView\/ifNotEquivalent` if applying your content is expensive. However, keep in mind that your `isEquivalent(to:)` method will then need to check any potentially embedded references to objects, eg references in a callback closure, to ensure a reference does not become out of date:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When using `.ifNotEquivalent` it is not recommended that your content holds onto closures directly – there is no way for you to check them for equivalency, and thus, only the `.always` application method will be correct. Instead, model callbacks explicitly by taking in an object or class-bound protocol that you can then perform callbacks on, so you can compare the identity of the object." - }, - { - "Para" : "Further, for tappable items in a list, leverage `Item\/onSelect-swift.property` on your `Item`, instead of implementing tappable items manually (which is a common source of callback closures in item content)." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReappliesToVisibleView.swift", - "key.doc.full_as_xml" : "ReappliesToVisibleView<\/Name>s:10ListableUI22ReappliesToVisibleViewO<\/USR>public enum ReappliesToVisibleView<\/Declaration>A rule to determine when an ItemContent<\/codeVoice> or HeaderFooterContent<\/codeVoice> should be re-applied to the visible view currently representing the content on screen. If the content is not on screen, then no application is done regardless of the rule (because there is no view).<\/Para><\/Abstract>The default value is ReappliesToVisibleView\/always<\/codeVoice>. You may want to change the value to ReappliesToVisibleView\/ifNotEquivalent<\/codeVoice> if applying your content is expensive. However, keep in mind that your isEquivalent(to:)<\/codeVoice> method will then need to check any potentially embedded references to objects, eg references in a callback closure, to ensure a reference does not become out of date:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Bool {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When using .ifNotEquivalent<\/codeVoice> it is not recommended that your content holds onto closures directly – there is no way for you to check them for equivalency, and thus, only the .always<\/codeVoice> application method will be correct. Instead, model callbacks explicitly by taking in an object or class-bound protocol that you can then perform callbacks on, so you can compare the identity of the object.<\/Para>Further, for tappable items in a list, leverage Item\/onSelect-swift.property<\/codeVoice> on your Item<\/codeVoice>, instead of implementing tappable items manually (which is a common source of callback closures in item content).<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 52, - "key.doc.name" : "ReappliesToVisibleView", - "key.doc.type" : "Other", - "key.doclength" : 1972, - "key.docoffset" : 119, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReappliesToVisibleView.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ReappliesToVisibleView<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 746, - "key.line" : 52, - "key.modulename" : "ListableUI", - "key.name" : "ReappliesToVisibleView", - "key.namelength" : 22, - "key.nameoffset" : 2103, - "key.offset" : 2098, - "key.parsed_declaration" : "public enum ReappliesToVisibleView", - "key.parsed_scope.end" : 75, - "key.parsed_scope.start" : 52, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 2267, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case always<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The visible view will always be re-applied during updates, regardless of the result of ``ItemContent\/isEquivalent(to:)``.", - "key.doc.column" : 10, - "key.doc.comment" : "The visible view will always be re-applied during updates, regardless of the result of ``ItemContent\/isEquivalent(to:)``.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReappliesToVisibleView.swift", - "key.doc.full_as_xml" : "always<\/Name>s:10ListableUI22ReappliesToVisibleViewO6alwaysyA2CmF<\/USR><\/Declaration>The visible view will always be re-applied during updates, regardless of the result of ItemContent\/isEquivalent(to:)<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 55, - "key.doc.name" : "always", - "key.doc.type" : "Other", - "key.doclength" : 126, - "key.docoffset" : 2137, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReappliesToVisibleView.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> always<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "always", - "key.namelength" : 6, - "key.nameoffset" : 2272, - "key.offset" : 2272, - "key.parsed_declaration" : "case always", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.typename" : "(ReappliesToVisibleView.Type) -> ReappliesToVisibleView", - "key.typeusr" : "$sy10ListableUI22ReappliesToVisibleViewOACmcD", - "key.usr" : "s:10ListableUI22ReappliesToVisibleViewO6alwaysyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 20, - "key.offset" : 2419, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case ifNotEquivalent<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The visible view will only have its contents re-applied during updates if ``ItemContent\/isEquivalent(to:)`` returns false.", - "key.doc.column" : 10, - "key.doc.comment" : "The visible view will only have its contents re-applied during updates if ``ItemContent\/isEquivalent(to:)`` returns false.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReappliesToVisibleView.swift", - "key.doc.full_as_xml" : "ifNotEquivalent<\/Name>s:10ListableUI22ReappliesToVisibleViewO15ifNotEquivalentyA2CmF<\/USR><\/Declaration>The visible view will only have its contents re-applied during updates if ItemContent\/isEquivalent(to:)<\/codeVoice> returns false.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 58, - "key.doc.name" : "ifNotEquivalent", - "key.doc.type" : "Other", - "key.doclength" : 127, - "key.docoffset" : 2288, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReappliesToVisibleView.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> ifNotEquivalent<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 15, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "ifNotEquivalent", - "key.namelength" : 15, - "key.nameoffset" : 2424, - "key.offset" : 2424, - "key.parsed_declaration" : "case ifNotEquivalent", - "key.parsed_scope.end" : 58, - "key.parsed_scope.start" : 58, - "key.reusingastcontext" : false, - "key.typename" : "(ReappliesToVisibleView.Type) -> ReappliesToVisibleView", - "key.typeusr" : "$sy10ListableUI22ReappliesToVisibleViewOACmcD", - "key.usr" : "s:10ListableUI22ReappliesToVisibleViewO15ifNotEquivalentyA2CmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func shouldReapply(comparing other: `Self`, isEquivalent: Bool<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 319, - "key.bodyoffset" : 2522, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReappliesToVisibleView.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> shouldReapply<\/decl.name>(comparing<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, isEquivalent<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 393, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "shouldReapply(comparing:isEquivalent:)", - "key.namelength" : 58, - "key.nameoffset" : 2454, - "key.offset" : 2449, - "key.parsed_declaration" : "func shouldReapply(comparing other : Self, isEquivalent : Bool) -> Bool", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ReappliesToVisibleView) -> (ReappliesToVisibleView, Bool) -> Bool", - "key.typeusr" : "$s9comparing12isEquivalentSb10ListableUI22ReappliesToVisibleViewO_SbtcD", - "key.usr" : "s:10ListableUI22ReappliesToVisibleViewO13shouldReapply9comparing12isEquivalentSbAC_SbtF" - } - ], - "key.typename" : "ReappliesToVisibleView.Type", - "key.typeusr" : "$s10ListableUI22ReappliesToVisibleViewOmD", - "key.usr" : "s:10ListableUI22ReappliesToVisibleViewO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 1955, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct RefreshControl<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 300 - } - ], - "key.bodylength" : 824, - "key.bodyoffset" : 330, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Represents a standard UIKit refresh control that is shown at the top\nof a list to indicate that the list is refreshing. If you've used Mail.app, you know what this is!", - "key.doc.column" : 15, - "key.doc.comment" : "Represents a standard UIKit refresh control that is shown at the top\nof a list to indicate that the list is refreshing. If you've used Mail.app, you know what this is!", - "key.doc.declaration" : "public struct RefreshControl", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "RefreshControl<\/Name>s:10ListableUI14RefreshControlV<\/USR>public struct RefreshControl<\/Declaration>Represents a standard UIKit refresh control that is shown at the top of a list to indicate that the list is refreshing. If you’ve used Mail.app, you know what this is!<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 14, - "key.doc.name" : "RefreshControl", - "key.doc.type" : "Class", - "key.doclength" : 176, - "key.docoffset" : 124, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> RefreshControl<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 848, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "RefreshControl", - "key.namelength" : 14, - "key.nameoffset" : 314, - "key.offset" : 307, - "key.parsed_declaration" : "public struct RefreshControl", - "key.parsed_scope.end" : 44, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isRefreshing: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 378 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the list is current refreshing.", - "key.doc.column" : 16, - "key.doc.comment" : "If the list is current refreshing.", - "key.doc.declaration" : "public var isRefreshing: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "isRefreshing<\/Name>s:10ListableUI14RefreshControlV12isRefreshingSbvp<\/USR>public var isRefreshing: Bool<\/Declaration>If the list is current refreshing.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "isRefreshing", - "key.doc.type" : "Other", - "key.doclength" : 39, - "key.docoffset" : 335, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isRefreshing<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "isRefreshing", - "key.namelength" : 12, - "key.nameoffset" : 389, - "key.offset" : 385, - "key.parsed_declaration" : "public var isRefreshing : Bool", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI14RefreshControlV12isRefreshingSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var offsetAdjustmentBehavior: OffsetAdjustmentBehavior<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 492 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls how the refresh control affects the list when it is visible.", - "key.doc.column" : 16, - "key.doc.comment" : "Controls how the refresh control affects the list when it is visible.", - "key.doc.declaration" : "public var offsetAdjustmentBehavior: OffsetAdjustmentBehavior", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "offsetAdjustmentBehavior<\/Name>s:10ListableUI14RefreshControlV24offsetAdjustmentBehaviorAC06OffsetfG0Ovp<\/USR>public var offsetAdjustmentBehavior: OffsetAdjustmentBehavior<\/Declaration>Controls how the refresh control affects the list when it is visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "offsetAdjustmentBehavior", - "key.doc.type" : "Other", - "key.doclength" : 74, - "key.docoffset" : 414, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> offsetAdjustmentBehavior<\/decl.name>: OffsetAdjustmentBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 54, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "offsetAdjustmentBehavior", - "key.namelength" : 24, - "key.nameoffset" : 503, - "key.offset" : 499, - "key.parsed_declaration" : "public var offsetAdjustmentBehavior: OffsetAdjustmentBehavior", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "RefreshControl.OffsetAdjustmentBehavior", - "key.typeusr" : "$s10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorOD", - "key.usr" : "s:10ListableUI14RefreshControlV24offsetAdjustmentBehaviorAC06OffsetfG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var title: Title<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 593 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The title of the control.", - "key.doc.column" : 16, - "key.doc.comment" : "The title of the control.", - "key.doc.declaration" : "public var title: Title?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "title<\/Name>s:10ListableUI14RefreshControlV5titleAC5TitleOSgvp<\/USR>public var title: Title?<\/Declaration>The title of the control.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 23, - "key.doc.name" : "title", - "key.doc.type" : "Other", - "key.doclength" : 30, - "key.docoffset" : 559, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> title<\/decl.name>: Title<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "title", - "key.namelength" : 5, - "key.nameoffset" : 604, - "key.offset" : 600, - "key.parsed_declaration" : "public var title : Title?", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "RefreshControl.Title?", - "key.typeusr" : "$s10ListableUI14RefreshControlV5TitleOSgD", - "key.usr" : "s:10ListableUI14RefreshControlV5titleAC5TitleOSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias RefreshControl<\/Type>.OnRefresh = () -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 628 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> RefreshControl<\/ref.struct>.OnRefresh<\/decl.name> = () -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 30, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "OnRefresh", - "key.namelength" : 9, - "key.nameoffset" : 645, - "key.offset" : 635, - "key.parsed_declaration" : "public typealias OnRefresh = () -> ()", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.typename" : "(() -> ()).Type", - "key.typeusr" : "$syycmD", - "key.usr" : "s:10ListableUI14RefreshControlV02OnC0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onRefresh: OnRefresh<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 733 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Invoked when a customer triggers a refresh event.", - "key.doc.column" : 16, - "key.doc.comment" : "Invoked when a customer triggers a refresh event.", - "key.doc.declaration" : "public var onRefresh: OnRefresh", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "onRefresh<\/Name>s:10ListableUI14RefreshControlV02onC0yycvp<\/USR>public var onRefresh: OnRefresh<\/Declaration>Invoked when a customer triggers a refresh event.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "onRefresh", - "key.doc.type" : "Other", - "key.doclength" : 54, - "key.docoffset" : 675, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onRefresh<\/decl.name>: OnRefresh<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "onRefresh", - "key.namelength" : 9, - "key.nameoffset" : 744, - "key.offset" : 740, - "key.parsed_declaration" : "public var onRefresh : OnRefresh", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "() -> ()", - "key.typeusr" : "$syycD", - "key.usr" : "s:10ListableUI14RefreshControlV02onC0yycvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(isRefreshing: Bool<\/Type>, offsetAdjustmentBehavior: OffsetAdjustmentBehavior<\/Type> = .none, title: Title<\/Type>? = nil, onRefresh: @escaping OnRefresh<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 775 - } - ], - "key.bodylength" : 183, - "key.bodyoffset" : 969, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isRefreshing<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, offsetAdjustmentBehavior<\/decl.var.parameter.argument_label>: OffsetAdjustmentBehavior<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, title<\/decl.var.parameter.argument_label>: Title<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onRefresh<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnRefresh<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 371, - "key.line" : 30, - "key.modulename" : "ListableUI", - "key.name" : "init(isRefreshing:offsetAdjustmentBehavior:title:onRefresh:)", - "key.namelength" : 181, - "key.nameoffset" : 782, - "key.offset" : 782, - "key.parsed_declaration" : "public init(\n isRefreshing: Bool,\n offsetAdjustmentBehavior: OffsetAdjustmentBehavior = .none,\n title : Title? = nil,\n onRefresh : @escaping OnRefresh\n )", - "key.parsed_scope.end" : 43, - "key.parsed_scope.start" : 30, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(RefreshControl.Type) -> (Bool, RefreshControl.OffsetAdjustmentBehavior, RefreshControl.Title?, @escaping () -> ()) -> RefreshControl", - "key.typeusr" : "$s12isRefreshing24offsetAdjustmentBehavior5title9onRefresh10ListableUI0H7ControlVSb_AG06OffsetdE0OAG5TitleOSgyyctcD", - "key.usr" : "s:10ListableUI14RefreshControlV12isRefreshing24offsetAdjustmentBehavior5title02onC0ACSb_AC06OffsethI0OAC5TitleOSgyyctcfc" - } - ], - "key.typename" : "RefreshControl.Type", - "key.typeusr" : "$s10ListableUI14RefreshControlVmD", - "key.usr" : "s:10ListableUI14RefreshControlV" - }, - { - "key.annotated_decl" : "public struct RefreshControl<\/Declaration>", - "key.bodylength" : 769, - "key.bodyoffset" : 1184, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Represents a standard UIKit refresh control that is shown at the top\nof a list to indicate that the list is refreshing. If you've used Mail.app, you know what this is!", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct RefreshControl", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "RefreshControl<\/Name>s:10ListableUI14RefreshControlV<\/USR>public struct RefreshControl<\/Declaration>Represents a standard UIKit refresh control that is shown at the top of a list to indicate that the list is refreshing. If you’ve used Mail.app, you know what this is!<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 14, - "key.doc.name" : "RefreshControl", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> RefreshControl<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 796, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "RefreshControl", - "key.namelength" : 14, - "key.nameoffset" : 1168, - "key.offset" : 1158, - "key.parsed_declaration" : "extension RefreshControl", - "key.parsed_scope.end" : 68, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum OffsetAdjustmentBehavior : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1258 - } - ], - "key.bodylength" : 287, - "key.bodyoffset" : 1312, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls the visibility and position of the refresh control.", - "key.doc.column" : 17, - "key.doc.comment" : "Controls the visibility and position of the refresh control.", - "key.doc.declaration" : "public enum OffsetAdjustmentBehavior : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "OffsetAdjustmentBehavior<\/Name>s:10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorO<\/USR>public enum OffsetAdjustmentBehavior : Equatable<\/Declaration>Controls the visibility and position of the refresh control.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 50, - "key.doc.name" : "OffsetAdjustmentBehavior", - "key.doc.type" : "Other", - "key.doclength" : 65, - "key.docoffset" : 1189, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1297 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> OffsetAdjustmentBehavior<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 335, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "OffsetAdjustmentBehavior", - "key.namelength" : 24, - "key.nameoffset" : 1270, - "key.offset" : 1265, - "key.parsed_declaration" : "public enum OffsetAdjustmentBehavior : Equatable", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 1404, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Does not apply any visibility or offset change to the refresh control.", - "key.doc.column" : 14, - "key.doc.comment" : "Does not apply any visibility or offset change to the refresh control.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorO4noneyA2EmF<\/USR><\/Declaration>Does not apply any visibility or offset change to the refresh control.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 53, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 75, - "key.docoffset" : 1321, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 1409, - "key.offset" : 1409, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 53, - "key.reusingastcontext" : false, - "key.typename" : "(RefreshControl.OffsetAdjustmentBehavior.Type) -> RefreshControl.OffsetAdjustmentBehavior", - "key.typeusr" : "$sy10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorOAEmcD", - "key.usr" : "s:10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorO4noneyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 60, - "key.offset" : 1534, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case displayWhenRefreshing(animate: Bool<\/Type>, scrollToTop: Bool<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If a refresh starts, the list will be scrolled to the top to reveal the refresh indicator.", - "key.doc.column" : 14, - "key.doc.comment" : "If a refresh starts, the list will be scrolled to the top to reveal the refresh indicator.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "displayWhenRefreshing(animate:scrollToTop:)<\/Name>s:10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorO21displayWhenRefreshingyAESb_SbtcAEmF<\/USR><\/Declaration>If a refresh starts, the list will be scrolled to the top to reveal the refresh indicator.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 56, - "key.doc.name" : "displayWhenRefreshing(animate:scrollToTop:)", - "key.doc.type" : "Other", - "key.doclength" : 95, - "key.docoffset" : 1431, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> displayWhenRefreshing<\/decl.name>(animate<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, scrollToTop<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 55, - "key.line" : 56, - "key.modulename" : "ListableUI", - "key.name" : "displayWhenRefreshing(animate:scrollToTop:)", - "key.namelength" : 55, - "key.nameoffset" : 1539, - "key.offset" : 1539, - "key.parsed_declaration" : "case displayWhenRefreshing(animate: Bool, scrollToTop: Bool)", - "key.parsed_scope.end" : 56, - "key.parsed_scope.start" : 56, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(RefreshControl.OffsetAdjustmentBehavior.Type) -> (Bool, Bool) -> RefreshControl.OffsetAdjustmentBehavior", - "key.typeusr" : "$sy10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorOSb_SbtcAEmcD", - "key.usr" : "s:10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorO21displayWhenRefreshingyAESb_SbtcAEmF" - } - ] - } - ], - "key.typename" : "RefreshControl.OffsetAdjustmentBehavior.Type", - "key.typeusr" : "$s10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorOmD", - "key.usr" : "s:10ListableUI14RefreshControlV24OffsetAdjustmentBehaviorO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum Title : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1665 - } - ], - "key.bodylength" : 252, - "key.bodyoffset" : 1699, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the title of the refresh control is displayed.", - "key.doc.column" : 17, - "key.doc.comment" : "How the title of the refresh control is displayed.", - "key.doc.declaration" : "public enum Title : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "Title<\/Name>s:10ListableUI14RefreshControlV5TitleO<\/USR>public enum Title : Hashable<\/Declaration>How the title of the refresh control is displayed.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 60, - "key.doc.name" : "Title", - "key.doc.type" : "Other", - "key.doclength" : 55, - "key.docoffset" : 1606, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 1685 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Title<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 280, - "key.line" : 60, - "key.modulename" : "ListableUI", - "key.name" : "Title", - "key.namelength" : 5, - "key.nameoffset" : 1677, - "key.offset" : 1672, - "key.parsed_declaration" : "public enum Title : Hashable", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 60, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 1786, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case string(String<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A standard string is displayed according to iOS appearance rules.", - "key.doc.column" : 14, - "key.doc.comment" : "A standard string is displayed according to iOS appearance rules.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "string(_:)<\/Name>s:10ListableUI14RefreshControlV5TitleO6stringyAESScAEmF<\/USR><\/Declaration>A standard string is displayed according to iOS appearance rules.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 63, - "key.doc.name" : "string(_:)", - "key.doc.type" : "Other", - "key.doclength" : 70, - "key.docoffset" : 1708, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> string<\/decl.name>(String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "string(_:)", - "key.namelength" : 14, - "key.nameoffset" : 1791, - "key.offset" : 1791, - "key.parsed_declaration" : "case string(String)", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(RefreshControl.Title.Type) -> (String) -> RefreshControl.Title", - "key.typeusr" : "$sy10ListableUI14RefreshControlV5TitleOSScAEmcD", - "key.usr" : "s:10ListableUI14RefreshControlV5TitleO6stringyAESScAEmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 35, - "key.offset" : 1911, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case attributed(NSAttributedString<\/Type>)<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An attributed string is displayed which provides specific appearance rules.", - "key.doc.column" : 14, - "key.doc.comment" : "An attributed string is displayed which provides specific appearance rules.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.doc.full_as_xml" : "attributed(_:)<\/Name>s:10ListableUI14RefreshControlV5TitleO10attributedyAESo18NSAttributedStringCcAEmF<\/USR><\/Declaration>An attributed string is displayed which provides specific appearance rules.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 66, - "key.doc.name" : "attributed(_:)", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 1823, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/RefreshControl.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> attributed<\/decl.name>(NSAttributedString<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 30, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "attributed(_:)", - "key.namelength" : 30, - "key.nameoffset" : 1916, - "key.offset" : 1916, - "key.parsed_declaration" : "case attributed(NSAttributedString)", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(RefreshControl.Title.Type) -> (NSAttributedString) -> RefreshControl.Title", - "key.typeusr" : "$sy10ListableUI14RefreshControlV5TitleOSo18NSAttributedStringCcAEmcD", - "key.usr" : "s:10ListableUI14RefreshControlV5TitleO10attributedyAESo18NSAttributedStringCcAEmF" - } - ] - } - ], - "key.typename" : "RefreshControl.Title.Type", - "key.typeusr" : "$s10ListableUI14RefreshControlV5TitleOmD", - "key.usr" : "s:10ListableUI14RefreshControlV5TitleO" - } - ], - "key.typename" : "RefreshControl.Type", - "key.typeusr" : "$s10ListableUI14RefreshControlVmD", - "key.usr" : "s:10ListableUI14RefreshControlV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2880, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public final class ReorderingActions<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.final", - "key.length" : 5, - "key.offset" : 104 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 97 - } - ], - "key.bodylength" : 1602, - "key.bodyoffset" : 135, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReorderingActions<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.class", - "key.length" : 1628, - "key.line" : 9, - "key.modulename" : "ListableUI", - "key.name" : "ReorderingActions", - "key.namelength" : 17, - "key.nameoffset" : 116, - "key.offset" : 110, - "key.parsed_declaration" : "public final class ReorderingActions", - "key.parsed_scope.end" : 79, - "key.parsed_scope.start" : 9, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public private(set) var isMoving: Bool<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.setter_access.private", - "key.length" : 12, - "key.offset" : 147 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 140 - } - ], - "key.column" : 29, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> isMoving<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 11, - "key.modulename" : "ListableUI", - "key.name" : "isMoving", - "key.namelength" : 8, - "key.nameoffset" : 164, - "key.offset" : 160, - "key.parsed_declaration" : "public private(set) var isMoving : Bool", - "key.parsed_scope.end" : 11, - "key.parsed_scope.start" : 11, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI17ReorderingActionsC8isMovingSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "weak var item: AnyPresentationItemState<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 189 - } - ], - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 36, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "item", - "key.namelength" : 4, - "key.nameoffset" : 198, - "key.offset" : 194, - "key.parsed_declaration" : "weak var item : AnyPresentationItemState?", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(any AnyPresentationItemState)?", - "key.typeusr" : "$s10ListableUI24AnyPresentationItemState_pSgD", - "key.usr" : "s:10ListableUI17ReorderingActionsC4itemAA24AnyPresentationItemState_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "weak var delegate: ReorderingActionsDelegate<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.weak", - "key.length" : 4, - "key.offset" : 235 - } - ], - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> delegate<\/decl.name>: ReorderingActionsDelegate<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 41, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "delegate", - "key.namelength" : 8, - "key.nameoffset" : 244, - "key.offset" : 240, - "key.parsed_declaration" : "weak var delegate : ReorderingActionsDelegate?", - "key.parsed_scope.end" : 14, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "(any ReorderingActionsDelegate)?", - "key.typeusr" : "$s10ListableUI25ReorderingActionsDelegate_pSgD", - "key.usr" : "s:10ListableUI17ReorderingActionsC8delegateAA0cD8Delegate_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "init()<\/Declaration>", - "key.bodylength" : 35, - "key.bodyoffset" : 303, - "key.column" : 5, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 48, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 291, - "key.offset" : 291, - "key.parsed_declaration" : "init()", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "(ReorderingActions.Type) -> () -> ReorderingActions", - "key.typeusr" : "$s10ListableUI17ReorderingActionsCycD", - "key.usr" : "s:10ListableUI17ReorderingActionsCACycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func start() -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 349 - } - ], - "key.bodylength" : 440, - "key.bodyoffset" : 382, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> start<\/decl.name>() -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 467, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "start()", - "key.namelength" : 7, - "key.nameoffset" : 361, - "key.offset" : 356, - "key.parsed_declaration" : "public func start() -> Bool", - "key.parsed_scope.end" : 42, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ReorderingActions) -> () -> Bool", - "key.typeusr" : "$sSbycD", - "key.usr" : "s:10ListableUI17ReorderingActionsC5startSbyF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func moved(with recognizer: ItemReordering<\/Type>.GestureRecognizer<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 833 - } - ], - "key.bodylength" : 238, - "key.bodyoffset" : 908, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> moved<\/decl.name>(with<\/decl.var.parameter.argument_label> recognizer<\/decl.var.parameter.name>: ItemReordering<\/ref.struct>.GestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 307, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "moved(with:)", - "key.namelength" : 57, - "key.nameoffset" : 845, - "key.offset" : 840, - "key.parsed_declaration" : "public func moved(with recognizer : ItemReordering.GestureRecognizer)", - "key.parsed_scope.end" : 55, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ReorderingActions) -> (ItemReordering.GestureRecognizer) -> ()", - "key.typeusr" : "$s4withy10ListableUI14ItemReorderingV17GestureRecognizerC_tcD", - "key.usr" : "s:10ListableUI17ReorderingActionsC5moved4withyAA04ItemC0V17GestureRecognizerC_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func end(_ result: Result<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1157 - } - ], - "key.bodylength" : 256, - "key.bodyoffset" : 1197, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> end<\/decl.name>(_<\/decl.var.parameter.argument_label> result<\/decl.var.parameter.name>: Result<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 290, - "key.line" : 57, - "key.modulename" : "ListableUI", - "key.name" : "end(_:)", - "key.namelength" : 22, - "key.nameoffset" : 1169, - "key.offset" : 1164, - "key.parsed_declaration" : "public func end(_ result : Result)", - "key.parsed_scope.end" : 70, - "key.parsed_scope.start" : 57, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ReorderingActions) -> (ReorderingActions.Result) -> ()", - "key.typeusr" : "$syy10ListableUI17ReorderingActionsC6ResultOcD", - "key.usr" : "s:10ListableUI17ReorderingActionsC3endyyAC6ResultOF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func accessibilityMove(direction: AccessibilityMoveDirection<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1464 - } - ], - "key.bodylength" : 188, - "key.bodyoffset" : 1542, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> accessibilityMove<\/decl.name>(direction<\/decl.var.parameter.argument_label>: AccessibilityMoveDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 260, - "key.line" : 72, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityMove(direction:)", - "key.namelength" : 56, - "key.nameoffset" : 1476, - "key.offset" : 1471, - "key.parsed_declaration" : "public func accessibilityMove(direction: AccessibilityMoveDirection) -> Bool", - "key.parsed_scope.end" : 77, - "key.parsed_scope.start" : 72, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ReorderingActions) -> (ReorderingActions.AccessibilityMoveDirection) -> Bool", - "key.typeusr" : "$s9directionSb10ListableUI17ReorderingActionsC26AccessibilityMoveDirectionO_tcD", - "key.usr" : "s:10ListableUI17ReorderingActionsC17accessibilityMove9directionSbAC013AccessibilityF9DirectionO_tF" - } - ], - "key.typename" : "ReorderingActions.Type", - "key.typeusr" : "$s10ListableUI17ReorderingActionsCmD", - "key.usr" : "s:10ListableUI17ReorderingActionsC" - }, - { - "key.annotated_decl" : "public final class ReorderingActions<\/Declaration>", - "key.bodylength" : 94, - "key.bodyoffset" : 1770, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReorderingActions<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 124, - "key.line" : 9, - "key.modulename" : "ListableUI", - "key.name" : "ReorderingActions", - "key.namelength" : 17, - "key.nameoffset" : 1751, - "key.offset" : 1741, - "key.parsed_declaration" : "extension ReorderingActions", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 82, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum Result : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1780 - } - ], - "key.bodylength" : 50, - "key.bodyoffset" : 1812, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1801 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Result<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 76, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "Result", - "key.namelength" : 6, - "key.nameoffset" : 1792, - "key.offset" : 1787, - "key.parsed_declaration" : "public enum Result : Equatable", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 84, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 1821, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case finished<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> finished<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 85, - "key.modulename" : "ListableUI", - "key.name" : "finished", - "key.namelength" : 8, - "key.nameoffset" : 1826, - "key.offset" : 1826, - "key.parsed_declaration" : "case finished", - "key.parsed_scope.end" : 85, - "key.parsed_scope.start" : 85, - "key.reusingastcontext" : false, - "key.typename" : "(ReorderingActions.Result.Type) -> ReorderingActions.Result", - "key.typeusr" : "$sy10ListableUI17ReorderingActionsC6ResultOAEmcD", - "key.usr" : "s:10ListableUI17ReorderingActionsC6ResultO8finishedyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 14, - "key.offset" : 1843, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case cancelled<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> cancelled<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 9, - "key.line" : 86, - "key.modulename" : "ListableUI", - "key.name" : "cancelled", - "key.namelength" : 9, - "key.nameoffset" : 1848, - "key.offset" : 1848, - "key.parsed_declaration" : "case cancelled", - "key.parsed_scope.end" : 86, - "key.parsed_scope.start" : 86, - "key.reusingastcontext" : false, - "key.typename" : "(ReorderingActions.Result.Type) -> ReorderingActions.Result", - "key.typeusr" : "$sy10ListableUI17ReorderingActionsC6ResultOAEmcD", - "key.usr" : "s:10ListableUI17ReorderingActionsC6ResultO9cancelledyA2EmF" - } - ] - } - ], - "key.typename" : "ReorderingActions.Result.Type", - "key.typeusr" : "$s10ListableUI17ReorderingActionsC6ResultOmD", - "key.usr" : "s:10ListableUI17ReorderingActionsC6ResultO" - } - ], - "key.typename" : "ReorderingActions.Type", - "key.typeusr" : "$s10ListableUI17ReorderingActionsCmD", - "key.usr" : "s:10ListableUI17ReorderingActionsC" - }, - { - "key.annotated_decl" : "public final class ReorderingActions<\/Declaration>", - "key.bodylength" : 242, - "key.bodyoffset" : 1896, - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReorderingActions<\/decl.name><\/decl.class>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 272, - "key.line" : 9, - "key.modulename" : "ListableUI", - "key.name" : "ReorderingActions", - "key.namelength" : 17, - "key.nameoffset" : 1877, - "key.offset" : 1867, - "key.parsed_declaration" : "extension ReorderingActions", - "key.parsed_scope.end" : 96, - "key.parsed_scope.start" : 90, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum AccessibilityMoveDirection<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2057 - } - ], - "key.bodylength" : 39, - "key.bodyoffset" : 2097, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Used with the accessibilityMove(item: direction:) delegate method to indicate the direction a selected item should be moved in the collection view.", - "key.doc.column" : 17, - "key.doc.comment" : "Used with the accessibilityMove(item: direction:) delegate method to indicate the direction a selected item should be moved in the collection view.", - "key.doc.declaration" : "public enum AccessibilityMoveDirection", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.doc.full_as_xml" : "AccessibilityMoveDirection<\/Name>s:10ListableUI17ReorderingActionsC26AccessibilityMoveDirectionO<\/USR>public enum AccessibilityMoveDirection<\/Declaration>Used with the accessibilityMove(item: direction:) delegate method to indicate the direction a selected item should be moved in the collection view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 92, - "key.doc.name" : "AccessibilityMoveDirection", - "key.doc.type" : "Other", - "key.doclength" : 152, - "key.docoffset" : 1901, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> AccessibilityMoveDirection<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 73, - "key.line" : 92, - "key.modulename" : "ListableUI", - "key.name" : "AccessibilityMoveDirection", - "key.namelength" : 26, - "key.nameoffset" : 2069, - "key.offset" : 2064, - "key.parsed_declaration" : "public enum AccessibilityMoveDirection", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 92, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 7, - "key.offset" : 2106, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case up<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> up<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 2, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "up", - "key.namelength" : 2, - "key.nameoffset" : 2111, - "key.offset" : 2111, - "key.parsed_declaration" : "case up", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.typename" : "(ReorderingActions.AccessibilityMoveDirection.Type) -> ReorderingActions.AccessibilityMoveDirection", - "key.typeusr" : "$sy10ListableUI17ReorderingActionsC26AccessibilityMoveDirectionOAEmcD", - "key.usr" : "s:10ListableUI17ReorderingActionsC26AccessibilityMoveDirectionO2upyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 2122, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case down<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> down<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 94, - "key.modulename" : "ListableUI", - "key.name" : "down", - "key.namelength" : 4, - "key.nameoffset" : 2127, - "key.offset" : 2127, - "key.parsed_declaration" : "case down", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 94, - "key.reusingastcontext" : false, - "key.typename" : "(ReorderingActions.AccessibilityMoveDirection.Type) -> ReorderingActions.AccessibilityMoveDirection", - "key.typeusr" : "$sy10ListableUI17ReorderingActionsC26AccessibilityMoveDirectionOAEmcD", - "key.usr" : "s:10ListableUI17ReorderingActionsC26AccessibilityMoveDirectionO4downyA2EmF" - } - ] - } - ], - "key.typename" : "ReorderingActions.AccessibilityMoveDirection.Type", - "key.typeusr" : "$s10ListableUI17ReorderingActionsC26AccessibilityMoveDirectionOmD", - "key.usr" : "s:10ListableUI17ReorderingActionsC26AccessibilityMoveDirectionO" - } - ], - "key.typename" : "ReorderingActions.Type", - "key.typeusr" : "$s10ListableUI17ReorderingActionsCmD", - "key.usr" : "s:10ListableUI17ReorderingActionsC" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "protocol ReorderingActionsDelegate : AnyObject<\/Declaration>", - "key.bodylength" : 689, - "key.bodyoffset" : 2189, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 2178 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> ReorderingActionsDelegate<\/decl.name> : AnyObject<\/decl.protocol>", - "key.inheritedtypes" : [ - { - "key.name" : "AnyObject" - } - ], - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 738, - "key.line" : 98, - "key.modulename" : "ListableUI", - "key.name" : "ReorderingActionsDelegate", - "key.namelength" : 25, - "key.nameoffset" : 2150, - "key.offset" : 2141, - "key.parsed_declaration" : "protocol ReorderingActionsDelegate : AnyObject", - "key.parsed_scope.end" : 106, - "key.parsed_scope.start" : 98, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func beginReorder(for item: AnyPresentationItemState<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> beginReorder<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 62, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "beginReorder(for:)", - "key.namelength" : 49, - "key.nameoffset" : 2199, - "key.offset" : 2194, - "key.parsed_declaration" : "func beginReorder(for item : AnyPresentationItemState) -> Bool", - "key.parsed_scope.end" : 100, - "key.parsed_scope.start" : 100, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyPresentationItemState) -> Bool", - "key.typeusr" : "$s3forSb10ListableUI24AnyPresentationItemState_p_tcD", - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP12beginReorder3forSbAA24AnyPresentationItemState_p_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func updateReorderTargetPosition(with recognizer: ItemReordering<\/Type>.GestureRecognizer<\/Type>, for item: AnyPresentationItemState<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateReorderTargetPosition<\/decl.name>(with<\/decl.var.parameter.argument_label> recognizer<\/decl.var.parameter.name>: ItemReordering<\/ref.struct>.GestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 121, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "updateReorderTargetPosition(with:for:)", - "key.namelength" : 116, - "key.nameoffset" : 2266, - "key.offset" : 2261, - "key.parsed_declaration" : "func updateReorderTargetPosition(with recognizer : ItemReordering.GestureRecognizer, for item : AnyPresentationItemState)", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 101, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (ItemReordering.GestureRecognizer, any AnyPresentationItemState) -> ()", - "key.typeusr" : "$s4with3fory10ListableUI14ItemReorderingV17GestureRecognizerC_AC015AnyPresentationE5State_ptcD", - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP27updateReorderTargetPosition4with3foryAA04ItemC0V17GestureRecognizerC_AA015AnyPresentationL5State_ptF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func endReorder(for item: AnyPresentationItemState<\/Type>, with result: ReorderingActions<\/Type>.Result<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> endReorder<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> result<\/decl.var.parameter.name>: ReorderingActions<\/ref.class>.Result<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 92, - "key.line" : 102, - "key.modulename" : "ListableUI", - "key.name" : "endReorder(for:with:)", - "key.namelength" : 87, - "key.nameoffset" : 2392, - "key.offset" : 2387, - "key.parsed_declaration" : "func endReorder(for item : AnyPresentationItemState, with result : ReorderingActions.Result)", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 102, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyPresentationItemState, ReorderingActions.Result) -> ()", - "key.typeusr" : "$s3for4withy10ListableUI24AnyPresentationItemState_p_AC17ReorderingActionsC6ResultOtcD", - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP10endReorder3for4withyAA24AnyPresentationItemState_p_AA0cD0C6ResultOtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func accessibilityMove(item: AnyPresentationItemState<\/Type>, direction: ReorderingActions<\/Type>.AccessibilityMoveDirection<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ReorderingActions.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> accessibilityMove<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: ReorderingActions<\/ref.class>.AccessibilityMoveDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 119, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityMove(item:direction:)", - "key.namelength" : 106, - "key.nameoffset" : 2763, - "key.offset" : 2758, - "key.parsed_declaration" : "func accessibilityMove(item: AnyPresentationItemState, direction: ReorderingActions.AccessibilityMoveDirection) -> Bool", - "key.parsed_scope.end" : 105, - "key.parsed_scope.start" : 105, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : " (Self) -> (any AnyPresentationItemState, ReorderingActions.AccessibilityMoveDirection) -> Bool", - "key.typeusr" : "$s4item9directionSb10ListableUI24AnyPresentationItemState_p_AC17ReorderingActionsC26AccessibilityMoveDirectionOtcD", - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP17accessibilityMove4item9directionSbAA24AnyPresentationItemState_p_AA0cD0C013AccessibilityG9DirectionOtF" - } - ], - "key.typename" : "ReorderingActionsDelegate.Type", - "key.typeusr" : "$s10ListableUI25ReorderingActionsDelegate_pmD", - "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2460, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ScrollPosition : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 381 - } - ], - "key.bodylength" : 639, - "key.bodyoffset" : 423, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Specifies how to position an item in a list when requesting the list scrolls to it.\n\nYou can specify a position (top, center, bottom), what to do if the\nitem is already visible on screen, and any additional custom offset\nto apply to the scroll event.\n", - "key.doc.column" : 15, - "key.doc.comment" : "Specifies how to position an item in a list when requesting the list scrolls to it.\n\nYou can specify a position (top, center, bottom), what to do if the\nitem is already visible on screen, and any additional custom offset\nto apply to the scroll event.", - "key.doc.declaration" : "public struct ScrollPosition : Equatable", - "key.doc.discussion" : [ - { - "Para" : "You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "ScrollPosition<\/Name>s:10ListableUI14ScrollPositionV<\/USR>public struct ScrollPosition : Equatable<\/Declaration>Specifies how to position an item in a list when requesting the list scrolls to it.<\/Para><\/Abstract>You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 17, - "key.doc.name" : "ScrollPosition", - "key.doc.type" : "Class", - "key.doclength" : 274, - "key.docoffset" : 107, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 412 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ScrollPosition<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 675, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "ScrollPosition", - "key.namelength" : 14, - "key.nameoffset" : 395, - "key.offset" : 388, - "key.parsed_declaration" : "public struct ScrollPosition : Equatable", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var position: Position<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The position to scroll to within the list.", - "key.doc.column" : 9, - "key.doc.comment" : "The position to scroll to within the list.", - "key.doc.declaration" : "var position: Position", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI14ScrollPositionV8positionAC0D0Ovp<\/USR>var position: Position<\/Declaration>The position to scroll to within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "position", - "key.doc.type" : "Other", - "key.doclength" : 47, - "key.docoffset" : 428, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> position<\/decl.name>: Position<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "position", - "key.namelength" : 8, - "key.nameoffset" : 483, - "key.offset" : 479, - "key.parsed_declaration" : "var position : Position", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ScrollPosition.Position", - "key.typeusr" : "$s10ListableUI14ScrollPositionV0D0OD", - "key.usr" : "s:10ListableUI14ScrollPositionV8positionAC0D0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var ifAlreadyVisible: IfAlreadyVisible<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The rule to apply if the item is already partially visible within the list.", - "key.doc.column" : 9, - "key.doc.comment" : "The rule to apply if the item is already partially visible within the list.", - "key.doc.declaration" : "var ifAlreadyVisible: IfAlreadyVisible", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "ifAlreadyVisible<\/Name>s:10ListableUI14ScrollPositionV16ifAlreadyVisibleAC02IffG0Ovp<\/USR>var ifAlreadyVisible: IfAlreadyVisible<\/Declaration>The rule to apply if the item is already partially visible within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 23, - "key.doc.name" : "ifAlreadyVisible", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 512, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> ifAlreadyVisible<\/decl.name>: IfAlreadyVisible<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 39, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "ifAlreadyVisible", - "key.namelength" : 16, - "key.nameoffset" : 600, - "key.offset" : 596, - "key.parsed_declaration" : "var ifAlreadyVisible : IfAlreadyVisible", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "ScrollPosition.IfAlreadyVisible", - "key.typeusr" : "$s10ListableUI14ScrollPositionV16IfAlreadyVisibleOD", - "key.usr" : "s:10ListableUI14ScrollPositionV16ifAlreadyVisibleAC02IffG0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var offset: CGFloat<\/Type><\/Declaration>", - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The offset to apply when scrolling to the item in the list.", - "key.doc.column" : 9, - "key.doc.comment" : "The offset to apply when scrolling to the item in the list.", - "key.doc.declaration" : "var offset: CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "offset<\/Name>s:10ListableUI14ScrollPositionV6offset14CoreFoundation7CGFloatVvp<\/USR>var offset: CGFloat<\/Declaration>The offset to apply when scrolling to the item in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 26, - "key.doc.name" : "offset", - "key.doc.type" : "Other", - "key.doclength" : 64, - "key.docoffset" : 644, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> offset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 26, - "key.modulename" : "ListableUI", - "key.name" : "offset", - "key.namelength" : 6, - "key.nameoffset" : 716, - "key.offset" : 712, - "key.parsed_declaration" : "var offset : CGFloat", - "key.parsed_scope.end" : 26, - "key.parsed_scope.start" : 26, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.internal", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14ScrollPositionV6offset14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(position: Position<\/Type>, ifAlreadyVisible: IfAlreadyVisible<\/Type> = .doNothing, offset: CGFloat<\/Type> = 0.0)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 806 - } - ], - "key.bodylength" : 116, - "key.bodyoffset" : 944, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new scroll position with the provided values.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new scroll position with the provided values.", - "key.doc.declaration" : "public init(position: Position, ifAlreadyVisible: IfAlreadyVisible = .doNothing, offset: CGFloat = 0.0)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "init(position:ifAlreadyVisible:offset:)<\/Name>s:10ListableUI14ScrollPositionV8position16ifAlreadyVisible6offsetA2C0D0O_AC02IfgH0O14CoreFoundation7CGFloatVtcfc<\/USR>public init(position: Position, ifAlreadyVisible: IfAlreadyVisible = .doNothing, offset: CGFloat = 0.0)<\/Declaration>Creates a new scroll position with the provided values.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 29, - "key.doc.name" : "init(position:ifAlreadyVisible:offset:)", - "key.doc.type" : "Function", - "key.doclength" : 60, - "key.docoffset" : 742, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(position<\/decl.var.parameter.argument_label>: Position<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, ifAlreadyVisible<\/decl.var.parameter.argument_label>: IfAlreadyVisible<\/ref.enum><\/decl.var.parameter.type> = .doNothing<\/decl.var.parameter>, offset<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 248, - "key.line" : 29, - "key.modulename" : "ListableUI", - "key.name" : "init(position:ifAlreadyVisible:offset:)", - "key.namelength" : 129, - "key.nameoffset" : 813, - "key.offset" : 813, - "key.parsed_declaration" : "public init(\n position : Position,\n ifAlreadyVisible : IfAlreadyVisible = .doNothing,\n offset : CGFloat = 0.0\n)", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 29, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ScrollPosition.Type) -> (ScrollPosition.Position, ScrollPosition.IfAlreadyVisible, CGFloat) -> ScrollPosition", - "key.typeusr" : "$s8position16ifAlreadyVisible6offset10ListableUI14ScrollPositionVAF0I0O_AF02IfcD0O14CoreFoundation7CGFloatVtcD", - "key.usr" : "s:10ListableUI14ScrollPositionV8position16ifAlreadyVisible6offsetA2C0D0O_AC02IfgH0O14CoreFoundation7CGFloatVtcfc" - } - ], - "key.typename" : "ScrollPosition.Type", - "key.typeusr" : "$s10ListableUI14ScrollPositionVmD", - "key.usr" : "s:10ListableUI14ScrollPositionV" - }, - { - "key.annotated_decl" : "public struct ScrollPosition : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 1366, - "key.bodyoffset" : 1092, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Specifies how to position an item in a list when requesting the list scrolls to it.\n\nYou can specify a position (top, center, bottom), what to do if the\nitem is already visible on screen, and any additional custom offset\nto apply to the scroll event.\n", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ScrollPosition : Equatable", - "key.doc.discussion" : [ - { - "Para" : "You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "ScrollPosition<\/Name>s:10ListableUI14ScrollPositionV<\/USR>public struct ScrollPosition : Equatable<\/Declaration>Specifies how to position an item in a list when requesting the list scrolls to it.<\/Para><\/Abstract>You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 17, - "key.doc.name" : "ScrollPosition", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ScrollPosition<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1393, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "ScrollPosition", - "key.namelength" : 14, - "key.nameoffset" : 1076, - "key.offset" : 1066, - "key.parsed_declaration" : "extension ScrollPosition", - "key.parsed_scope.end" : 83, - "key.parsed_scope.start" : 41, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum Position : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1156 - } - ], - "key.bodylength" : 866, - "key.bodyoffset" : 1194, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How the item should be positioned within the list.", - "key.doc.column" : 17, - "key.doc.comment" : "How the item should be positioned within the list.", - "key.doc.declaration" : "public enum Position : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "Position<\/Name>s:10ListableUI14ScrollPositionV0D0O<\/USR>public enum Position : Equatable<\/Declaration>How the item should be positioned within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 44, - "key.doc.name" : "Position", - "key.doc.type" : "Other", - "key.doclength" : 55, - "key.docoffset" : 1097, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1179 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Position<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 898, - "key.line" : 44, - "key.modulename" : "ListableUI", - "key.name" : "Position", - "key.namelength" : 8, - "key.nameoffset" : 1168, - "key.offset" : 1163, - "key.parsed_declaration" : "public enum Position : Equatable", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 44, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 8, - "key.offset" : 1255, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case top<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scroll the item to the top of the list.", - "key.doc.column" : 14, - "key.doc.comment" : "Scroll the item to the top of the list.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI14ScrollPositionV0D0O3topyA2EmF<\/USR><\/Declaration>Scroll the item to the top of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 47, - "key.doc.name" : "top", - "key.doc.type" : "Other", - "key.doclength" : 44, - "key.docoffset" : 1203, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> top<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 3, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "top", - "key.namelength" : 3, - "key.nameoffset" : 1260, - "key.offset" : 1260, - "key.parsed_declaration" : "case top", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 47, - "key.reusingastcontext" : false, - "key.typename" : "(ScrollPosition.Position.Type) -> ScrollPosition.Position", - "key.typeusr" : "$sy10ListableUI14ScrollPositionV0D0OAEmcD", - "key.usr" : "s:10ListableUI14ScrollPositionV0D0O3topyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 1336, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case centered<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scroll the item to the middle of the list.", - "key.doc.column" : 14, - "key.doc.comment" : "Scroll the item to the middle of the list.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "centered<\/Name>s:10ListableUI14ScrollPositionV0D0O8centeredyA2EmF<\/USR><\/Declaration>Scroll the item to the middle of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 50, - "key.doc.name" : "centered", - "key.doc.type" : "Other", - "key.doclength" : 47, - "key.docoffset" : 1281, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> centered<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 50, - "key.modulename" : "ListableUI", - "key.name" : "centered", - "key.namelength" : 8, - "key.nameoffset" : 1341, - "key.offset" : 1341, - "key.parsed_declaration" : "case centered", - "key.parsed_scope.end" : 50, - "key.parsed_scope.start" : 50, - "key.reusingastcontext" : false, - "key.typename" : "(ScrollPosition.Position.Type) -> ScrollPosition.Position", - "key.typeusr" : "$sy10ListableUI14ScrollPositionV0D0OAEmcD", - "key.usr" : "s:10ListableUI14ScrollPositionV0D0O8centeredyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 1422, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case bottom<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scroll the item to the bottom of the list.", - "key.doc.column" : 14, - "key.doc.comment" : "Scroll the item to the bottom of the list.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI14ScrollPositionV0D0O6bottomyA2EmF<\/USR><\/Declaration>Scroll the item to the bottom of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 53, - "key.doc.name" : "bottom", - "key.doc.type" : "Other", - "key.doclength" : 47, - "key.docoffset" : 1367, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> bottom<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 53, - "key.modulename" : "ListableUI", - "key.name" : "bottom", - "key.namelength" : 6, - "key.nameoffset" : 1427, - "key.offset" : 1427, - "key.parsed_declaration" : "case bottom", - "key.parsed_scope.end" : 53, - "key.parsed_scope.start" : 53, - "key.reusingastcontext" : false, - "key.typename" : "(ScrollPosition.Position.Type) -> ScrollPosition.Position", - "key.typeusr" : "$sy10ListableUI14ScrollPositionV0D0OAEmcD", - "key.usr" : "s:10ListableUI14ScrollPositionV0D0O6bottomyA2EmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func toUICollectionViewScrollPosition(for direction: LayoutDirection<\/Type>) -> UICollectionView<\/Type>.ScrollPosition<\/Type><\/Declaration>", - "key.bodylength" : 496, - "key.bodyoffset" : 1558, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> toUICollectionViewScrollPosition<\/decl.name>(for<\/decl.var.parameter.argument_label> direction<\/decl.var.parameter.name>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionView<\/ref.class>.ScrollPosition<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 604, - "key.line" : 55, - "key.modulename" : "ListableUI", - "key.name" : "toUICollectionViewScrollPosition(for:)", - "key.namelength" : 65, - "key.nameoffset" : 1456, - "key.offset" : 1451, - "key.parsed_declaration" : "func toUICollectionViewScrollPosition(for direction : LayoutDirection) -> UICollectionView.ScrollPosition", - "key.parsed_scope.end" : 70, - "key.parsed_scope.start" : 55, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ScrollPosition.Position) -> (LayoutDirection) -> UICollectionView.ScrollPosition", - "key.typeusr" : "$s3forSo30UICollectionViewScrollPositionV10ListableUI15LayoutDirectionO_tcD", - "key.usr" : "s:10ListableUI14ScrollPositionV0D0O018toUICollectionViewcD03forSo0fgcD0VAA15LayoutDirectionO_tF" - } - ], - "key.typename" : "ScrollPosition.Position.Type", - "key.typeusr" : "$s10ListableUI14ScrollPositionV0D0OmD", - "key.usr" : "s:10ListableUI14ScrollPositionV0D0O" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum IfAlreadyVisible : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2167 - } - ], - "key.bodylength" : 243, - "key.bodyoffset" : 2213, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "What action should be taken if an item is already partially visible within a list.", - "key.doc.column" : 17, - "key.doc.comment" : "What action should be taken if an item is already partially visible within a list.", - "key.doc.declaration" : "public enum IfAlreadyVisible : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "IfAlreadyVisible<\/Name>s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO<\/USR>public enum IfAlreadyVisible : Equatable<\/Declaration>What action should be taken if an item is already partially visible within a list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 75, - "key.doc.name" : "IfAlreadyVisible", - "key.doc.type" : "Other", - "key.doclength" : 87, - "key.docoffset" : 2076, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 2198 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> IfAlreadyVisible<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 283, - "key.line" : 75, - "key.modulename" : "ListableUI", - "key.name" : "IfAlreadyVisible", - "key.namelength" : 16, - "key.nameoffset" : 2179, - "key.offset" : 2174, - "key.parsed_declaration" : "public enum IfAlreadyVisible : Equatable", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 75, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 14, - "key.offset" : 2302, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case doNothing<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Do not perform any action if the item is already partially visible.", - "key.doc.column" : 14, - "key.doc.comment" : "Do not perform any action if the item is already partially visible.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "doNothing<\/Name>s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO9doNothingyA2EmF<\/USR><\/Declaration>Do not perform any action if the item is already partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 78, - "key.doc.name" : "doNothing", - "key.doc.type" : "Other", - "key.doclength" : 72, - "key.docoffset" : 2222, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> doNothing<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 9, - "key.line" : 78, - "key.modulename" : "ListableUI", - "key.name" : "doNothing", - "key.namelength" : 9, - "key.nameoffset" : 2307, - "key.offset" : 2307, - "key.parsed_declaration" : "case doNothing", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 78, - "key.reusingastcontext" : false, - "key.typename" : "(ScrollPosition.IfAlreadyVisible.Type) -> ScrollPosition.IfAlreadyVisible", - "key.typeusr" : "$sy10ListableUI14ScrollPositionV16IfAlreadyVisibleOAEmcD", - "key.usr" : "s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO9doNothingyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 21, - "key.offset" : 2430, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case scrollToPosition<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Scroll the item to the desired `Position`, even if it is already partially visible.", - "key.doc.column" : 14, - "key.doc.comment" : "Scroll the item to the desired `Position`, even if it is already partially visible.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.doc.full_as_xml" : "scrollToPosition<\/Name>s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO08scrollToD0yA2EmF<\/USR><\/Declaration>Scroll the item to the desired Position<\/codeVoice>, even if it is already partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 81, - "key.doc.name" : "scrollToPosition", - "key.doc.type" : "Other", - "key.doclength" : 88, - "key.docoffset" : 2334, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ScrollPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrollToPosition<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 16, - "key.line" : 81, - "key.modulename" : "ListableUI", - "key.name" : "scrollToPosition", - "key.namelength" : 16, - "key.nameoffset" : 2435, - "key.offset" : 2435, - "key.parsed_declaration" : "case scrollToPosition", - "key.parsed_scope.end" : 81, - "key.parsed_scope.start" : 81, - "key.reusingastcontext" : false, - "key.typename" : "(ScrollPosition.IfAlreadyVisible.Type) -> ScrollPosition.IfAlreadyVisible", - "key.typeusr" : "$sy10ListableUI14ScrollPositionV16IfAlreadyVisibleOAEmcD", - "key.usr" : "s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO08scrollToD0yA2EmF" - } - ] - } - ], - "key.typename" : "ScrollPosition.IfAlreadyVisible.Type", - "key.typeusr" : "$s10ListableUI14ScrollPositionV16IfAlreadyVisibleOmD", - "key.usr" : "s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO" - } - ], - "key.typename" : "ScrollPosition.Type", - "key.typeusr" : "$s10ListableUI14ScrollPositionVmD", - "key.usr" : "s:10ListableUI14ScrollPositionV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 8242, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Section<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 86 - } - ], - "key.bodylength" : 7898, - "key.bodyoffset" : 109, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Section<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 7915, - "key.line" : 9, - "key.modulename" : "ListableUI", - "key.name" : "Section", - "key.namelength" : 7, - "key.nameoffset" : 100, - "key.offset" : 93, - "key.parsed_declaration" : "public struct Section", - "key.parsed_scope.end" : 265, - "key.parsed_scope.start" : 9, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 23, - "key.name" : "MARK: Public Properties", - "key.offset" : 124 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Section<\/Type>.Identifier = ListableUI.Identifier<\/Type><Section<\/Type>, AnyHashable<\/Type>><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 216 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `Identifier` type used for a `Section`.", - "key.doc.column" : 22, - "key.doc.comment" : "The `Identifier` type used for a `Section`.", - "key.doc.declaration" : "public typealias ListableUI.Section.Identifier = ListableUI.Identifier", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "Identifier<\/Name>s:10ListableUI7SectionV10Identifiera<\/USR>public typealias ListableUI.Section.Identifier = ListableUI.Identifier<Section, AnyHashable><\/Declaration>The Identifier<\/codeVoice> type used for a Section<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 16, - "key.doc.name" : "Identifier", - "key.doc.type" : "Other", - "key.doclength" : 48, - "key.docoffset" : 164, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Section<\/ref.struct>.Identifier<\/decl.name> = ListableUI.Identifier<\/ref.class><Section<\/ref.struct>, AnyHashable<\/ref.struct>><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 66, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "Identifier", - "key.namelength" : 10, - "key.nameoffset" : 233, - "key.offset" : 223, - "key.parsed_declaration" : "public typealias Identifier = ListableUI.Identifier", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "Identifier.Type", - "key.typeusr" : "$s10ListableUI10IdentifierCyAA7SectionVs11AnyHashableVGmD", - "key.usr" : "s:10ListableUI7SectionV10Identifiera" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var identifier: Identifier<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 370 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The value which uniquely identifies the section within a list.", - "key.doc.column" : 16, - "key.doc.comment" : "The value which uniquely identifies the section within a list.", - "key.doc.declaration" : "public var identifier: Identifier", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI7SectionV10identifierAA10IdentifierCyACs11AnyHashableVGvp<\/USR>public var identifier: Identifier<\/Declaration>The value which uniquely identifies the section within a list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 19, - "key.doc.name" : "identifier", - "key.doc.type" : "Other", - "key.doclength" : 67, - "key.docoffset" : 299, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "identifier", - "key.namelength" : 10, - "key.nameoffset" : 381, - "key.offset" : 377, - "key.parsed_declaration" : "public var identifier : Identifier", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.related_decls" : [ - { - "key.annotated_decl" : "identifier(with:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Identifier", - "key.typeusr" : "$s10ListableUI10IdentifierCyAA7SectionVs11AnyHashableVGD", - "key.usr" : "s:10ListableUI7SectionV10identifierAA10IdentifierCyACs11AnyHashableVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var header: AnyHeaderFooterConvertible<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 471 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The header, if any, associated with the section.", - "key.doc.column" : 16, - "key.doc.comment" : "The header, if any, associated with the section.", - "key.doc.declaration" : "public var header: AnyHeaderFooterConvertible?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "header<\/Name>s:10ListableUI7SectionV6headerAA26AnyHeaderFooterConvertible_pSgvp<\/USR>public var header: AnyHeaderFooterConvertible?<\/Declaration>The header, if any, associated with the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 22, - "key.doc.name" : "header", - "key.doc.type" : "Other", - "key.doclength" : 53, - "key.docoffset" : 414, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> header<\/decl.name>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "header", - "key.namelength" : 6, - "key.nameoffset" : 482, - "key.offset" : 478, - "key.parsed_declaration" : "public var header : AnyHeaderFooterConvertible?", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(any AnyHeaderFooterConvertible)?", - "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", - "key.usr" : "s:10ListableUI7SectionV6headerAA26AnyHeaderFooterConvertible_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var footer: AnyHeaderFooterConvertible<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 585 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The footer, if any, associated with the section.", - "key.doc.column" : 16, - "key.doc.comment" : "The footer, if any, associated with the section.", - "key.doc.declaration" : "public var footer: AnyHeaderFooterConvertible?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "footer<\/Name>s:10ListableUI7SectionV6footerAA26AnyHeaderFooterConvertible_pSgvp<\/USR>public var footer: AnyHeaderFooterConvertible?<\/Declaration>The footer, if any, associated with the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 25, - "key.doc.name" : "footer", - "key.doc.type" : "Other", - "key.doclength" : 53, - "key.docoffset" : 528, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> footer<\/decl.name>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 40, - "key.line" : 25, - "key.modulename" : "ListableUI", - "key.name" : "footer", - "key.namelength" : 6, - "key.nameoffset" : 596, - "key.offset" : 592, - "key.parsed_declaration" : "public var footer : AnyHeaderFooterConvertible?", - "key.parsed_scope.end" : 25, - "key.parsed_scope.start" : 25, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(any AnyHeaderFooterConvertible)?", - "key.typeusr" : "$s10ListableUI26AnyHeaderFooterConvertible_pSgD", - "key.usr" : "s:10ListableUI7SectionV6footerAA26AnyHeaderFooterConvertible_pSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var items: [AnyItem<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 698 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The items, if any, associated with the section.", - "key.doc.column" : 16, - "key.doc.comment" : "The items, if any, associated with the section.", - "key.doc.declaration" : "public var items: [AnyItem]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI7SectionV5itemsSayAA7AnyItem_pGvp<\/USR>public var items: [AnyItem]<\/Declaration>The items, if any, associated with the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "items", - "key.doc.type" : "Other", - "key.doclength" : 52, - "key.docoffset" : 642, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> items<\/decl.name>: [AnyItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "items", - "key.namelength" : 5, - "key.nameoffset" : 709, - "key.offset" : 705, - "key.parsed_declaration" : "public var items : [AnyItem]", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "[any AnyItem]", - "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD", - "key.usr" : "s:10ListableUI7SectionV5itemsSayAA7AnyItem_pGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var reordering: SectionReordering<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 820 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls re-ordering options when items are moved in or out of the section.", - "key.doc.column" : 16, - "key.doc.comment" : "Controls re-ordering options when items are moved in or out of the section.", - "key.doc.declaration" : "public var reordering: SectionReordering", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "reordering<\/Name>s:10ListableUI7SectionV10reorderingAA0C10ReorderingVvp<\/USR>public var reordering: SectionReordering<\/Declaration>Controls re-ordering options when items are moved in or out of the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 31, - "key.doc.name" : "reordering", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 736, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> reordering<\/decl.name>: SectionReordering<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "reordering", - "key.namelength" : 10, - "key.nameoffset" : 831, - "key.offset" : 827, - "key.parsed_declaration" : "public var reordering : SectionReordering", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SectionReordering", - "key.typeusr" : "$s10ListableUI17SectionReorderingVD", - "key.usr" : "s:10ListableUI7SectionV10reorderingAA0C10ReorderingVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func contains(any filters: Set<\/Type><ContentFilters<\/Type>> = [.items]) -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1053 - } - ], - "key.bodylength" : 671, - "key.bodyoffset" : 1129, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Check if the section contains any of the given types, which you specify via the `filters`\nparameter. If you do not specify a `filters` parameter, `[.items]` is used.", - "key.doc.column" : 17, - "key.doc.comment" : "Check if the section contains any of the given types, which you specify via the `filters`\nparameter. If you do not specify a `filters` parameter, `[.items]` is used.", - "key.doc.declaration" : "public func contains(any filters: Set = [.items]) -> Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "contains(any:)<\/Name>s:10ListableUI7SectionV8contains3anySbShyAA14ContentFiltersOG_tF<\/USR>public func contains(any filters: Set<ContentFilters> = [.items]) -> Bool<\/Declaration>Check if the section contains any of the given types, which you specify via the filters<\/codeVoice> parameter. If you do not specify a filters<\/codeVoice> parameter, [.items]<\/codeVoice> is used.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 35, - "key.doc.name" : "contains(any:)", - "key.doc.type" : "Function", - "key.doclength" : 178, - "key.docoffset" : 871, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> contains<\/decl.name>(any<\/decl.var.parameter.argument_label> filters<\/decl.var.parameter.name>: Set<\/ref.struct><ContentFilters<\/ref.enum>><\/decl.var.parameter.type> = [.items]<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 741, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "contains(any:)", - "key.namelength" : 54, - "key.nameoffset" : 1065, - "key.offset" : 1060, - "key.parsed_declaration" : "public func contains(any filters : Set = [.items]) -> Bool", - "key.parsed_scope.end" : 60, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Section) -> (Set) -> Bool", - "key.typeusr" : "$s3anySbShy10ListableUI14ContentFiltersOG_tcD", - "key.usr" : "s:10ListableUI7SectionV8contains3anySbShyAA14ContentFiltersOG_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var count: Int<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1863 - } - ], - "key.bodylength" : 30, - "key.bodyoffset" : 1887, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The number of ``Item``s within the section.", - "key.doc.column" : 16, - "key.doc.comment" : "The number of ``Item``s within the section.", - "key.doc.declaration" : "public var count: Int { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "count<\/Name>s:10ListableUI7SectionV5countSivp<\/USR>public var count: Int { get }<\/Declaration>The number of Item<\/codeVoice>s within the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 63, - "key.doc.name" : "count", - "key.doc.type" : "Other", - "key.doclength" : 48, - "key.docoffset" : 1811, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 48, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "count", - "key.namelength" : 5, - "key.nameoffset" : 1874, - "key.offset" : 1870, - "key.parsed_declaration" : "public var count : Int", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI7SectionV5countSivp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 32, - "key.name" : "MARK: Layout Specific Parameters", - "key.offset" : 1938 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var layouts: SectionLayouts<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1987 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: SectionLayouts<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 38, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "layouts", - "key.namelength" : 7, - "key.nameoffset" : 1998, - "key.offset" : 1994, - "key.parsed_declaration" : "public var layouts : SectionLayouts = .init()", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 71, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "SectionLayouts", - "key.typeusr" : "$s10ListableUI14SectionLayoutsVD", - "key.usr" : "s:10ListableUI7SectionV7layoutsAA0C7LayoutsVvp" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 20, - "key.name" : "MARK: Initialization", - "key.offset" : 2052 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias Section<\/Type>.Configure = (inout Section<\/Type>) -> ()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2158 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a mutable section for editing in an inline closure.", - "key.doc.column" : 22, - "key.doc.comment" : "Provides a mutable section for editing in an inline closure.", - "key.doc.declaration" : "public typealias ListableUI.Section.Configure = (inout Section) -> ()", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "Configure<\/Name>s:10ListableUI7SectionV9Configurea<\/USR>public typealias ListableUI.Section.Configure = (inout Section) -> ()<\/Declaration>Provides a mutable section for editing in an inline closure.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 78, - "key.doc.name" : "Configure", - "key.doc.type" : "Other", - "key.doclength" : 65, - "key.docoffset" : 2089, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Section<\/ref.struct>.Configure<\/decl.name> = (inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 43, - "key.line" : 78, - "key.modulename" : "ListableUI", - "key.name" : "Configure", - "key.namelength" : 9, - "key.nameoffset" : 2175, - "key.offset" : 2165, - "key.parsed_declaration" : "public typealias Configure = (inout Section) -> ()", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 78, - "key.reusingastcontext" : false, - "key.typename" : "((inout Section) -> ()).Type", - "key.typeusr" : "$sy10ListableUI7SectionVzcmD", - "key.usr" : "s:10ListableUI7SectionV9Configurea" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<IdentifierValue>(_ identifier: IdentifierValue<\/Type>, layouts: SectionLayouts<\/Type> = .init(), header: AnyHeaderFooterConvertible<\/Type>? = nil, footer: AnyHeaderFooterConvertible<\/Type>? = nil, reordering: SectionReordering<\/Type> = .init(), items: [AnyItemConvertible<\/Type>] = [], configure: Configure<\/Type> = { _ in }) where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2356 - } - ], - "key.bodylength" : 300, - "key.bodyoffset" : 2724, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new section with all of the provided values, plus an optional\ntrailing closure to configure the section inline.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new section with all of the provided values, plus an optional\ntrailing closure to configure the section inline.", - "key.doc.declaration" : "public init(_ identifier: IdentifierValue, layouts: SectionLayouts = .init(), header: AnyHeaderFooterConvertible? = nil, footer: AnyHeaderFooterConvertible? = nil, reordering: SectionReordering = .init(), items: [AnyItemConvertible] = [], configure: Configure = { _ in }) where IdentifierValue : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "init(_:layouts:header:footer:reordering:items:configure:)<\/Name>s:10ListableUI7SectionV_7layouts6header6footer10reordering5items9configureACx_AA0C7LayoutsVAA26AnyHeaderFooterConvertible_pSgAmA0C10ReorderingVSayAA0k4ItemN0_pGyACzXEtcSHRzlufc<\/USR>public init<IdentifierValue>(_ identifier: IdentifierValue, layouts: SectionLayouts = .init(), header: AnyHeaderFooterConvertible? = nil, footer: AnyHeaderFooterConvertible? = nil, reordering: SectionReordering = .init(), items: [AnyItemConvertible] = [], configure: Configure = { _ in }) where IdentifierValue : Hashable<\/Declaration>Creates a new section with all of the provided values, plus an optional trailing closure to configure the section inline.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 82, - "key.doc.name" : "init(_:layouts:header:footer:reordering:items:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 134, - "key.docoffset" : 2218, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: IdentifierValue<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: SectionLayouts<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, reordering<\/decl.var.parameter.argument_label>: SectionReordering<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [AnyItemConvertible<\/ref.protocol>]<\/decl.var.parameter.type> = []<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Configure<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 662, - "key.line" : 82, - "key.modulename" : "ListableUI", - "key.name" : "init(_:layouts:header:footer:reordering:items:configure:)", - "key.namelength" : 359, - "key.nameoffset" : 2363, - "key.offset" : 2363, - "key.parsed_declaration" : "public init(\n _ identifier : IdentifierValue,\n layouts : SectionLayouts = .init(),\n header : AnyHeaderFooterConvertible? = nil,\n footer : AnyHeaderFooterConvertible? = nil,\n reordering : SectionReordering = .init(),\n items : [AnyItemConvertible] = [],\n configure : Configure = { _ in }\n)", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 82, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:configure:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(_:layouts:reordering:items:header:footer:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(_:items:header:footer:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "IdentifierValue : Hashable<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 2384 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "IdentifierValue<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 24, - "key.line" : 82, - "key.modulename" : "ListableUI", - "key.name" : "IdentifierValue", - "key.namelength" : 15, - "key.nameoffset" : 2368, - "key.offset" : 2368, - "key.parsed_declaration" : "public init (Section.Type) -> (IdentifierValue, SectionLayouts, (any AnyHeaderFooterConvertible)?, (any AnyHeaderFooterConvertible)?, SectionReordering, [any AnyItemConvertible], (inout Section) -> ()) -> Section", - "key.typeusr" : "$s_7layouts6header6footer10reordering5items9configure10ListableUI7SectionVx_AG0I7LayoutsVAG26AnyHeaderFooterConvertible_pSgAmG0I10ReorderingVSayAG0k4ItemN0_pGyAIzXEtcSHRzluD", - "key.usr" : "s:10ListableUI7SectionV_7layouts6header6footer10reordering5items9configureACx_AA0C7LayoutsVAA26AnyHeaderFooterConvertible_pSgAmA0C10ReorderingVSayAA0k4ItemN0_pGyACzXEtcSHRzlufc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<IdentifierValue>(_ identifier: IdentifierValue<\/Type>, configure: Configure<\/Type>) where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3122 - } - ], - "key.bodylength" : 238, - "key.bodyoffset" : 3238, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new section with a trailing closure to configure the section inline.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new section with a trailing closure to configure the section inline.", - "key.doc.declaration" : "public init(_ identifier: IdentifierValue, configure: Configure) where IdentifierValue : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "init(_:configure:)<\/Name>s:10ListableUI7SectionV_9configureACx_yACzXEtcSHRzlufc<\/USR>public init<IdentifierValue>(_ identifier: IdentifierValue, configure: Configure) where IdentifierValue : Hashable<\/Declaration>Creates a new section with a trailing closure to configure the section inline.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 106, - "key.doc.name" : "init(_:configure:)", - "key.doc.type" : "Function", - "key.doclength" : 83, - "key.docoffset" : 3035, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: IdentifierValue<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 348, - "key.line" : 106, - "key.modulename" : "ListableUI", - "key.name" : "init(_:configure:)", - "key.namelength" : 107, - "key.nameoffset" : 3129, - "key.offset" : 3129, - "key.parsed_declaration" : "public init(\n _ identifier : IdentifierValue,\n configure : Configure\n)", - "key.parsed_scope.end" : 119, - "key.parsed_scope.start" : 106, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:layouts:header:footer:reordering:items:configure:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(_:layouts:reordering:items:header:footer:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(_:items:header:footer:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "IdentifierValue : Hashable<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 3150 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "IdentifierValue<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 24, - "key.line" : 106, - "key.modulename" : "ListableUI", - "key.name" : "IdentifierValue", - "key.namelength" : 15, - "key.nameoffset" : 3134, - "key.offset" : 3134, - "key.parsed_declaration" : "public init (Section.Type) -> (IdentifierValue, (inout Section) -> ()) -> Section", - "key.typeusr" : "$s_9configure10ListableUI7SectionVx_yADzXEtcSHRzluD", - "key.usr" : "s:10ListableUI7SectionV_9configureACx_yACzXEtcSHRzlufc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<IdentifierValue>(_ identifier: IdentifierValue<\/Type>, layouts: SectionLayouts<\/Type> = .init(), reordering: SectionReordering<\/Type> = .init(), @ListableBuilder<\/Type><any AnyItemConvertible<\/Type>> items: () -> [AnyItemConvertible<\/Type>], header: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }, footer: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }) where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3549 - } - ], - "key.bodylength" : 263, - "key.bodyoffset" : 3933, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new section with result builder-style APIs.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new section with result builder-style APIs.", - "key.doc.declaration" : "public init(_ identifier: IdentifierValue, layouts: SectionLayouts = .init(), reordering: SectionReordering = .init(), @ListableUI.ListableBuilder items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "init(_:layouts:reordering:items:header:footer:)<\/Name>s:10ListableUI7SectionV_7layouts10reordering5items6header6footerACx_AA0C7LayoutsVAA0C10ReorderingVSayAA18AnyItemConvertible_pGyXEAA0k12HeaderFooterM0_pSgyXEAPyXEtcSHRzlufc<\/USR>public init<IdentifierValue>(_ identifier: IdentifierValue, layouts: SectionLayouts = .init(), reordering: SectionReordering = .init(), @ListableUI.ListableBuilder<any ListableUI.AnyItemConvertible> items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable<\/Declaration>Creates a new section with result builder-style APIs.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 122, - "key.doc.name" : "init(_:layouts:reordering:items:header:footer:)", - "key.doc.type" : "Function", - "key.doclength" : 58, - "key.docoffset" : 3487, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: IdentifierValue<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: SectionLayouts<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, reordering<\/decl.var.parameter.argument_label>: SectionReordering<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, @ListableBuilder<\/ref.enum><any AnyItemConvertible<\/ref.protocol>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> items<\/decl.var.parameter.argument_label>: () -> [AnyItemConvertible<\/ref.protocol>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>) where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 641, - "key.line" : 122, - "key.modulename" : "ListableUI", - "key.name" : "init(_:layouts:reordering:items:header:footer:)", - "key.namelength" : 375, - "key.nameoffset" : 3556, - "key.offset" : 3556, - "key.parsed_declaration" : "public init(\n _ identifier : IdentifierValue,\n layouts : SectionLayouts = .init(),\n reordering : SectionReordering = .init(),\n @ListableBuilder items : () -> [AnyItemConvertible],\n header : () -> AnyHeaderFooterConvertible? = { nil },\n footer : () -> AnyHeaderFooterConvertible? = { nil }\n)", - "key.parsed_scope.end" : 139, - "key.parsed_scope.start" : 122, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:layouts:header:footer:reordering:items:configure:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(_:configure:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(_:items:header:footer:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "IdentifierValue : Hashable<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 3577 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "IdentifierValue<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 24, - "key.line" : 122, - "key.modulename" : "ListableUI", - "key.name" : "IdentifierValue", - "key.namelength" : 15, - "key.nameoffset" : 3561, - "key.offset" : 3561, - "key.parsed_declaration" : "public init (Section.Type) -> (IdentifierValue, SectionLayouts, SectionReordering, () -> [any AnyItemConvertible], () -> (any AnyHeaderFooterConvertible)?, () -> (any AnyHeaderFooterConvertible)?) -> Section", - "key.typeusr" : "$s_7layouts10reordering5items6header6footer10ListableUI7SectionVx_AF0H7LayoutsVAF0H10ReorderingVSayAF18AnyItemConvertible_pGyXEAF0k12HeaderFooterM0_pSgyXEAPyXEtcSHRzluD", - "key.usr" : "s:10ListableUI7SectionV_7layouts10reordering5items6header6footerACx_AA0C7LayoutsVAA0C10ReorderingVSayAA18AnyItemConvertible_pGyXEAA0k12HeaderFooterM0_pSgyXEAPyXEtcSHRzlufc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init<IdentifierValue>(_ identifier: IdentifierValue<\/Type>, @ListableBuilder<\/Type><any AnyItemConvertible<\/Type>> items: () -> [AnyItemConvertible<\/Type>], header: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }, footer: () -> AnyHeaderFooterConvertible<\/Type>? = { nil }) where IdentifierValue<\/Type> : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 4269 - } - ], - "key.bodylength" : 260, - "key.bodyoffset" : 4559, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new section with result builder-style APIs.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new section with result builder-style APIs.", - "key.doc.declaration" : "public init(_ identifier: IdentifierValue, @ListableUI.ListableBuilder items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "init(_:items:header:footer:)<\/Name>s:10ListableUI7SectionV_5items6header6footerACx_SayAA18AnyItemConvertible_pGyXEAA0g12HeaderFooterI0_pSgyXEAJyXEtcSHRzlufc<\/USR>public init<IdentifierValue>(_ identifier: IdentifierValue, @ListableUI.ListableBuilder<any ListableUI.AnyItemConvertible> items: () -> [AnyItemConvertible], header: () -> AnyHeaderFooterConvertible? = { nil }, footer: () -> AnyHeaderFooterConvertible? = { nil }) where IdentifierValue : Hashable<\/Declaration>Creates a new section with result builder-style APIs.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 142, - "key.doc.name" : "init(_:items:header:footer:)", - "key.doc.type" : "Function", - "key.doclength" : 58, - "key.docoffset" : 4207, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><IdentifierValue<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: IdentifierValue<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, @ListableBuilder<\/ref.enum><any AnyItemConvertible<\/ref.protocol>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> items<\/decl.var.parameter.argument_label>: () -> [AnyItemConvertible<\/ref.protocol>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: () -> AnyHeaderFooterConvertible<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { nil }<\/decl.var.parameter>) where<\/syntaxtype.keyword> IdentifierValue<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 544, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "init(_:items:header:footer:)", - "key.namelength" : 281, - "key.nameoffset" : 4276, - "key.offset" : 4276, - "key.parsed_declaration" : "public init(\n _ identifier : IdentifierValue,\n @ListableBuilder items : () -> [AnyItemConvertible],\n header : () -> AnyHeaderFooterConvertible? = { nil },\n footer : () -> AnyHeaderFooterConvertible? = { nil }\n)", - "key.parsed_scope.end" : 157, - "key.parsed_scope.start" : 142, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:layouts:header:footer:reordering:items:configure:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(_:configure:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(_:layouts:reordering:items:header:footer:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "IdentifierValue : Hashable<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 4297 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "IdentifierValue<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 24, - "key.line" : 142, - "key.modulename" : "ListableUI", - "key.name" : "IdentifierValue", - "key.namelength" : 15, - "key.nameoffset" : 4281, - "key.offset" : 4281, - "key.parsed_declaration" : "public init (Section.Type) -> (IdentifierValue, () -> [any AnyItemConvertible], () -> (any AnyHeaderFooterConvertible)?, () -> (any AnyHeaderFooterConvertible)?) -> Section", - "key.typeusr" : "$s_5items6header6footer10ListableUI7SectionVx_SayAD18AnyItemConvertible_pGyXEAD0g12HeaderFooterI0_pSgyXEAJyXEtcSHRzluD", - "key.usr" : "s:10ListableUI7SectionV_5items6header6footerACx_SayAA18AnyItemConvertible_pGyXEAA0g12HeaderFooterI0_pSgyXEAJyXEtcSHRzlufc" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 19, - "key.name" : "MARK: Reading Items", - "key.offset" : 4840 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func filtered<Content>(to: Content<\/Type>.Type) -> [Content<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 5497 - } - ], - "key.bodylength" : 102, - "key.bodyoffset" : 5559, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Returns the content of the section, converted back to the provided type,\nstripping any content which does not conform to the given type.\n\nYou usually use this method as part of committing a reorder event, in order to read\nthe identifiers (or other properties), off of your items in order to commit the reorder\nevent to your backing data store.\n```swift\nitem.onWasReordered = { item, reorder in\n let items = reorder.toSection.filtered(to: MyContent.self)\n controller.setItemOrders(with: items.map(\\.content.model))\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "Returns the content of the section, converted back to the provided type,\nstripping any content which does not conform to the given type.\n\nYou usually use this method as part of committing a reorder event, in order to read\nthe identifiers (or other properties), off of your items in order to commit the reorder\nevent to your backing data store.\n```swift\nitem.onWasReordered = { item, reorder in\n let items = reorder.toSection.filtered(to: MyContent.self)\n controller.setItemOrders(with: items.map(\\.content.model))\n}\n```", - "key.doc.declaration" : "public func filtered(to: Content.Type) -> [Content]", - "key.doc.discussion" : [ - { - "Para" : "You usually use this method as part of committing a reorder event, in order to read the identifiers (or other properties), off of your items in order to commit the reorder event to your backing data store." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "filtered(to:)<\/Name>s:10ListableUI7SectionV8filtered2toSayxGxm_tlF<\/USR>public func filtered<Content>(to: Content.Type) -> [Content]<\/Declaration>Returns the content of the section, converted back to the provided type, stripping any content which does not conform to the given type.<\/Para><\/Abstract>You usually use this method as part of committing a reorder event, in order to read the identifiers (or other properties), off of your items in order to commit the reorder event to your backing data store.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 175, - "key.doc.name" : "filtered(to:)", - "key.doc.type" : "Function", - "key.doclength" : 617, - "key.docoffset" : 4876, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> filtered<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(to<\/decl.var.parameter.argument_label>: Content<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> [Content<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 158, - "key.line" : 175, - "key.modulename" : "ListableUI", - "key.name" : "filtered(to:)", - "key.namelength" : 35, - "key.nameoffset" : 5509, - "key.offset" : 5504, - "key.parsed_declaration" : "public func filtered(to: Content.Type) -> [Content]", - "key.parsed_scope.end" : 179, - "key.parsed_scope.start" : 175, - "key.related_decls" : [ - { - "key.annotated_decl" : "filtered(to:_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content<\/Declaration>", - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 175, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 5518, - "key.offset" : 5518, - "key.parsed_declaration" : "public func filteredContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI7SectionV8filtered2toSayxGxm_tlF7ContentL_xmfp" - } - ], - "key.typename" : " (Section) -> (Content.Type) -> [Content]", - "key.typeusr" : "$s2toSayxGxm_tcluD", - "key.usr" : "s:10ListableUI7SectionV8filtered2toSayxGxm_tlF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func filtered<Content>(to: Content<\/Type>.Type, _ read: ([Content<\/Type>]) -> ())<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6311 - } - ], - "key.bodylength" : 51, - "key.bodyoffset" : 6388, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides the content of the section, converted back to the provided type,\nstripping any content which does not conform to the given type.\n\nYou usually use this method as part of committing a reorder event, in order to read\nthe identifiers (or other properties), off of your items in order to commit the reorder\nevent to your backing data store.\n```swift\nitem.onWasReordered = { item, reorder in\n reorder.toSection.filtered(to: MyContent.self) { items in\n controller.setItemOrders(with: items.map(\\.content.model))\n }\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "Provides the content of the section, converted back to the provided type,\nstripping any content which does not conform to the given type.\n\nYou usually use this method as part of committing a reorder event, in order to read\nthe identifiers (or other properties), off of your items in order to commit the reorder\nevent to your backing data store.\n```swift\nitem.onWasReordered = { item, reorder in\n reorder.toSection.filtered(to: MyContent.self) { items in\n controller.setItemOrders(with: items.map(\\.content.model))\n }\n}\n```", - "key.doc.declaration" : "public func filtered(to: Content.Type, _ read: ([Content]) -> ())", - "key.doc.discussion" : [ - { - "Para" : "You usually use this method as part of committing a reorder event, in order to read the identifiers (or other properties), off of your items in order to commit the reorder event to your backing data store." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "filtered(to:_:)<\/Name>s:10ListableUI7SectionV8filtered2to_yxm_ySayxGXEtlF<\/USR>public func filtered<Content>(to: Content.Type, _ read: ([Content]) -> ())<\/Declaration>Provides the content of the section, converted back to the provided type, stripping any content which does not conform to the given type.<\/Para><\/Abstract>You usually use this method as part of committing a reorder event, in order to read the identifiers (or other properties), off of your items in order to commit the reorder event to your backing data store.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 194, - "key.doc.name" : "filtered(to:_:)", - "key.doc.type" : "Function", - "key.doclength" : 635, - "key.docoffset" : 5672, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> filtered<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(to<\/decl.var.parameter.argument_label>: Content<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> read<\/decl.var.parameter.name>: ([Content<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 122, - "key.line" : 194, - "key.modulename" : "ListableUI", - "key.name" : "filtered(to:_:)", - "key.namelength" : 63, - "key.nameoffset" : 6323, - "key.offset" : 6318, - "key.parsed_declaration" : "public func filtered(to: Content.Type, _ read : ([Content]) -> ())", - "key.parsed_scope.end" : 196, - "key.parsed_scope.start" : 194, - "key.related_decls" : [ - { - "key.annotated_decl" : "filtered(to:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content<\/Declaration>", - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>", - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 7, - "key.line" : 194, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 6332, - "key.offset" : 6332, - "key.parsed_declaration" : "public func filteredContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI7SectionV8filtered2to_yxm_ySayxGXEtlF7ContentL_xmfp" - } - ], - "key.typename" : " (Section) -> (Content.Type, ([Content]) -> ()) -> ()", - "key.typeusr" : "$s2to_yxm_ySayxGXEtcluD", - "key.usr" : "s:10ListableUI7SectionV8filtered2to_yxm_ySayxGXEtlF" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 36, - "key.name" : "MARK: Adding & Removing Single Items", - "key.offset" : 6460 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func add(_ item: AnyItem<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 6520 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6513 - } - ], - "key.bodylength" : 37, - "key.bodyoffset" : 6561, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(_<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 70, - "key.line" : 202, - "key.modulename" : "ListableUI", - "key.name" : "add(_:)", - "key.namelength" : 21, - "key.nameoffset" : 6534, - "key.offset" : 6529, - "key.parsed_declaration" : "public mutating func add(_ item : AnyItem)", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 202, - "key.related_decls" : [ - { - "key.annotated_decl" : "add(items:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout Section) -> (any AnyItem) -> ()", - "key.typeusr" : "$syy10ListableUI7AnyItem_pcD", - "key.usr" : "s:10ListableUI7SectionV3addyyAA7AnyItem_pF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += (lhs: inout Section<\/Type>, rhs: AnyItem<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6609 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 6673, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 84, - "key.line" : 207, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 39, - "key.nameoffset" : 6628, - "key.offset" : 6616, - "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : AnyItem)", - "key.parsed_scope.end" : 210, - "key.parsed_scope.start" : 207, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Item<Content>) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Content) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= (_: inout Section, _: [AnyItem])<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Item<Content>]) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Content]) where Content : ItemContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Section.Type) -> (inout Section, any AnyItem) -> ()", - "key.typeusr" : "$syy10ListableUI7SectionVz_AA7AnyItem_ptcD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_AA7AnyItem_ptFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += <Content>(lhs: inout Section<\/Type>, rhs: Item<\/Type><Content<\/Type>>) where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6710 - } - ], - "key.bodylength" : 26, - "key.bodyoffset" : 6801, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 111, - "key.line" : 212, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 66, - "key.nameoffset" : 6729, - "key.offset" : 6717, - "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : Item)", - "key.parsed_scope.end" : 215, - "key.parsed_scope.start" : 212, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= (_: inout Section, _: AnyItem)<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Content) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= (_: inout Section, _: [AnyItem])<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Item<Content>]) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Content]) where Content : ItemContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 6741 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 212, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 6733, - "key.offset" : 6733, - "key.parsed_declaration" : "public static func += Content<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_AA4ItemVyxGtAA0E7ContentRzlFZ0F0L_xmfp" - } - ], - "key.typename" : " (Section.Type) -> (inout Section, Item) -> ()", - "key.typeusr" : "$syy10ListableUI7SectionVz_AA4ItemVyxGtcAA0D7ContentRzluD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_AA4ItemVyxGtAA0E7ContentRzlFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += <Content>(lhs: inout Section<\/Type>, rhs: Content<\/Type>) where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6838 - } - ], - "key.bodylength" : 30, - "key.bodyoffset" : 6923, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 109, - "key.line" : 217, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 60, - "key.nameoffset" : 6857, - "key.offset" : 6845, - "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : Content)", - "key.parsed_scope.end" : 220, - "key.parsed_scope.start" : 217, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= (_: inout Section, _: AnyItem)<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Item<Content>) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= (_: inout Section, _: [AnyItem])<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Item<Content>]) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Content]) where Content : ItemContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 6869 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 217, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 6861, - "key.offset" : 6861, - "key.parsed_declaration" : "public static func += Content<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_xtAA11ItemContentRzlFZ0F0L_xmfp" - } - ], - "key.typename" : " (Section.Type) -> (inout Section, Content) -> ()", - "key.typeusr" : "$syy10ListableUI7SectionVz_xtcAA11ItemContentRzluD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_xtAA11ItemContentRzlFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 38, - "key.name" : "MARK: Adding & Removing Multiple Items", - "key.offset" : 6974 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public mutating func add(@ListableBuilder<\/Type><any AnyItemConvertible<\/Type>> items: () -> [AnyItemConvertible<\/Type>])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.mutating", - "key.length" : 8, - "key.offset" : 7246 - }, - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7239 - } - ], - "key.bodylength" : 58, - "key.bodyoffset" : 7352, - "key.column" : 26, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Adds the provided items with the provided result builder.\n\n```\nsection.add {\n MyContent(text: \"Person 1\")\n MyContent(text: \"Person 2\")\n}\n```", - "key.doc.column" : 26, - "key.doc.comment" : "Adds the provided items with the provided result builder.\n\n```\nsection.add {\n MyContent(text: \"Person 1\")\n MyContent(text: \"Person 2\")\n}\n```", - "key.doc.declaration" : "public mutating func add(@ListableUI.ListableBuilder items: () -> [AnyItemConvertible])", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "add(items:)<\/Name>s:10ListableUI7SectionV3add5itemsySayAA18AnyItemConvertible_pGyXE_tF<\/USR>public mutating func add(@ListableUI.ListableBuilder<any ListableUI.AnyItemConvertible> items: () -> [AnyItemConvertible])<\/Declaration>Adds the provided items with the provided result builder.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 234, - "key.doc.name" : "add(items:)", - "key.doc.type" : "Function", - "key.doclength" : 206, - "key.docoffset" : 7029, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(@ListableBuilder<\/ref.enum><any AnyItemConvertible<\/ref.protocol>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> items<\/decl.var.parameter.argument_label>: () -> [AnyItemConvertible<\/ref.protocol>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 156, - "key.line" : 234, - "key.modulename" : "ListableUI", - "key.name" : "add(items:)", - "key.namelength" : 90, - "key.nameoffset" : 7260, - "key.offset" : 7255, - "key.parsed_declaration" : "public mutating func add(\n @ListableBuilder items : () -> [AnyItemConvertible]\n)", - "key.parsed_scope.end" : 238, - "key.parsed_scope.start" : 234, - "key.related_decls" : [ - { - "key.annotated_decl" : "add(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(inout Section) -> (() -> [any AnyItemConvertible]) -> ()", - "key.typeusr" : "$s5itemsySay10ListableUI18AnyItemConvertible_pGyXE_tcD", - "key.usr" : "s:10ListableUI7SectionV3add5itemsySayAA18AnyItemConvertible_pGyXE_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += (lhs: inout Section<\/Type>, rhs: [AnyItem<\/Type>])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7421 - } - ], - "key.bodylength" : 30, - "key.bodyoffset" : 7487, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [AnyItem<\/ref.protocol>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 90, - "key.line" : 240, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 41, - "key.nameoffset" : 7440, - "key.offset" : 7428, - "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : [AnyItem])", - "key.parsed_scope.end" : 243, - "key.parsed_scope.start" : 240, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= (_: inout Section, _: AnyItem)<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Item<Content>) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Content) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Item<Content>]) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Content]) where Content : ItemContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Section.Type) -> (inout Section, [any AnyItem]) -> ()", - "key.typeusr" : "$syy10ListableUI7SectionVz_SayAA7AnyItem_pGtcD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_SayAA7AnyItem_pGtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += <Content>(lhs: inout Section<\/Type>, rhs: [Item<\/Type><Content<\/Type>>]) where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7528 - } - ], - "key.bodylength" : 30, - "key.bodyoffset" : 7621, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [Item<\/ref.struct><Content<\/ref.generic_type_param>>]<\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 117, - "key.line" : 245, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 68, - "key.nameoffset" : 7547, - "key.offset" : 7535, - "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : [Item])", - "key.parsed_scope.end" : 248, - "key.parsed_scope.start" : 245, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= (_: inout Section, _: AnyItem)<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Item<Content>) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Content) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= (_: inout Section, _: [AnyItem])<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Content]) where Content : ItemContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 7559 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 245, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 7551, - "key.offset" : 7551, - "key.parsed_declaration" : "public static func += Content<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_SayAA4ItemVyxGGtAA0E7ContentRzlFZ0F0L_xmfp" - } - ], - "key.typename" : " (Section.Type) -> (inout Section, [Item]) -> ()", - "key.typeusr" : "$syy10ListableUI7SectionVz_SayAA4ItemVyxGGtcAA0D7ContentRzluD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_SayAA4ItemVyxGGtAA0E7ContentRzlFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static func += <Content>(lhs: inout Section<\/Type>, rhs: [Content<\/Type>]) where Content<\/Type> : ItemContent<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7662 - } - ], - "key.bodylength" : 47, - "key.bodyoffset" : 7749, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [Content<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Content<\/ref.generic_type_param> : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.operator.infix>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 128, - "key.line" : 250, - "key.modulename" : "ListableUI", - "key.name" : "+=(_:_:)", - "key.namelength" : 62, - "key.nameoffset" : 7681, - "key.offset" : 7669, - "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : [Content])", - "key.parsed_scope.end" : 253, - "key.parsed_scope.start" : 250, - "key.related_decls" : [ - { - "key.annotated_decl" : "+= (_: inout Section, _: AnyItem)<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Item<Content>) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: Content) where Content : ItemContent<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= (_: inout Section, _: [AnyItem])<\/RelatedName>" - }, - { - "key.annotated_decl" : "+= <Content>(_: inout Section, _: [Item<Content>]) where Content : ItemContent<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 11, - "key.offset" : 7693 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "ItemContent" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 19, - "key.line" : 250, - "key.modulename" : "ListableUI", - "key.name" : "Content", - "key.namelength" : 7, - "key.nameoffset" : 7685, - "key.offset" : 7685, - "key.parsed_declaration" : "public static func += Content<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Content.Type", - "key.typeusr" : "$sxmD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_SayxGtAA11ItemContentRzlFZ0F0L_xmfp" - } - ], - "key.typename" : " (Section.Type) -> (inout Section, [Content]) -> ()", - "key.typeusr" : "$syy10ListableUI7SectionVz_SayxGtcAA11ItemContentRzluD", - "key.usr" : "s:10ListableUI7SectionV2peoiyyACz_SayxGtAA11ItemContentRzlFZ" - }, - { - "key.kind" : "source.lang.swift.syntaxtype.comment.mark", - "key.length" : 13, - "key.name" : "MARK: Slicing", - "key.offset" : 7817 - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "internal func itemsUpTo(limit: Int<\/Type>) -> [AnyItem<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.internal", - "key.length" : 8, - "key.offset" : 7847 - } - ], - "key.bodylength" : 103, - "key.bodyoffset" : 7902, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> itemsUpTo<\/decl.name>(limit<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [AnyItem<\/ref.protocol>]<\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 150, - "key.line" : 259, - "key.modulename" : "ListableUI", - "key.name" : "itemsUpTo(limit:)", - "key.namelength" : 22, - "key.nameoffset" : 7861, - "key.offset" : 7856, - "key.parsed_declaration" : "internal func itemsUpTo(limit : Int) -> [AnyItem]", - "key.parsed_scope.end" : 264, - "key.parsed_scope.start" : 259, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let end: Int<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> end<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 38, - "key.line" : 261, - "key.modulename" : "ListableUI", - "key.name" : "end", - "key.namelength" : 3, - "key.nameoffset" : 7915, - "key.offset" : 7911, - "key.parsed_declaration" : "let end = min(self.items.count, limit)", - "key.parsed_scope.end" : 261, - "key.parsed_scope.start" : 261, - "key.reusingastcontext" : false, - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI7SectionV9itemsUpTo5limitSayAA7AnyItem_pGSi_tF3endL_Sivp" - } - ], - "key.typename" : "(Section) -> (Int) -> [any AnyItem]", - "key.typeusr" : "$s5limitSay10ListableUI7AnyItem_pGSi_tcD", - "key.usr" : "s:10ListableUI7SectionV9itemsUpTo5limitSayAA7AnyItem_pGSi_tF" - } - ], - "key.typename" : "Section.Type", - "key.typeusr" : "$s10ListableUI7SectionVmD", - "key.usr" : "s:10ListableUI7SectionV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Section<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8011 - } - ], - "key.bodylength" : 203, - "key.bodyoffset" : 8037, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Section<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 223, - "key.line" : 9, - "key.modulename" : "ListableUI", - "key.name" : "Section", - "key.namelength" : 7, - "key.nameoffset" : 8028, - "key.offset" : 8018, - "key.parsed_declaration" : "public extension Section", - "key.parsed_scope.end" : 274, - "key.parsed_scope.start" : 268, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static func identifier<Value>(with value: Value<\/Type>) -> Identifier<\/Type> where Value<\/Type> : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 31, - "key.bodyoffset" : 8207, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a new identifier for a ``Section``, with the given underlying value.", - "key.doc.column" : 17, - "key.doc.comment" : "Provides a new identifier for a ``Section``, with the given underlying value.", - "key.doc.declaration" : "static func identifier(with value: Value) -> Identifier where Value : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.doc.full_as_xml" : "identifier(with:)<\/Name>s:10ListableUI7SectionV10identifier4withAA10IdentifierCyACs11AnyHashableVGx_tSHRzlFZ<\/USR>static func identifier<Value>(with value: Value) -> Identifier where Value : Hashable<\/Declaration>Provides a new identifier for a Section<\/codeVoice>, with the given underlying value.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 271, - "key.doc.name" : "identifier(with:)", - "key.doc.type" : "Function", - "key.doclength" : 82, - "key.docoffset" : 8047, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> identifier<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(with<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.typealias><\/decl.function.returntype> where<\/syntaxtype.keyword> Value<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 106, - "key.line" : 271, - "key.modulename" : "ListableUI", - "key.name" : "identifier(with:)", - "key.namelength" : 46, - "key.nameoffset" : 8145, - "key.offset" : 8133, - "key.parsed_declaration" : "static func identifier(with value : Value) -> Identifier", - "key.parsed_scope.end" : 273, - "key.parsed_scope.start" : 271, - "key.related_decls" : [ - { - "key.annotated_decl" : "identifier<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "Value : Hashable<\/Type><\/Declaration>", - "key.column" : 28, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 8162 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/Section.swift", - "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 14, - "key.line" : 271, - "key.modulename" : "ListableUI", - "key.name" : "Value", - "key.namelength" : 5, - "key.nameoffset" : 8156, - "key.offset" : 8156, - "key.parsed_declaration" : "static func identifier (Section.Type) -> (Value) -> Identifier", - "key.typeusr" : "$s4with10ListableUI10IdentifierCyAB7SectionVs11AnyHashableVGx_tcSHRzluD", - "key.usr" : "s:10ListableUI7SectionV10identifier4withAA10IdentifierCyACs11AnyHashableVGx_tSHRzlFZ" - } - ], - "key.typename" : "Section.Type", - "key.typeusr" : "$s10ListableUI7SectionVmD", - "key.usr" : "s:10ListableUI7SectionV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3977, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct SectionLayouts<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1472 - } - ], - "key.bodylength" : 1268, - "key.bodyoffset" : 1502, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "`SectionLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your section:\n\n```\nmySection.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `Section` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmySection.layouts.table = .init(\n width: .fill\n)\n\nmySection.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `SectionLayouts`,\nto provide easier access to your layout-specific `SectionLayoutsValue` type, like so:\n\n```\nextension SectionLayouts {\n public var table : TableAppearance.Section.Layout {\n get { self[TableAppearance.Section.Layout.self] }\n set { self[TableAppearance.Section.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 15, - "key.doc.comment" : "\n`SectionLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your section:\n\n```\nmySection.layouts.table = .init(\n width: .fill\n)\n```\n\nAnd then, when the `Section` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmySection.layouts.table = .init(\n width: .fill\n)\n\nmySection.layouts.otherLayout = .init(\n width: 300,\n alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `SectionLayouts`,\nto provide easier access to your layout-specific `SectionLayoutsValue` type, like so:\n\n```\nextension SectionLayouts {\n public var table : TableAppearance.Section.Layout {\n get { self[TableAppearance.Section.Layout.self] }\n set { self[TableAppearance.Section.Layout.self] = newValue }\n }\n}\n```", - "key.doc.declaration" : "public struct SectionLayouts", - "key.doc.discussion" : [ - { - "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your section:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "And then, when the `Section` is used within a `.table` style list layout, the provided layout will be used." - }, - { - "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:" - }, - { - "CodeListing" : "" - }, - { - "Para" : "When implementing your own custom layout, you should add an extension to `SectionLayouts`, to provide easier access to your layout-specific `SectionLayoutsValue` type, like so:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "SectionLayouts<\/Name>s:10ListableUI14SectionLayoutsV<\/USR>public struct SectionLayouts<\/Declaration>SectionLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your section:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Section<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to SectionLayouts<\/codeVoice>, to provide easier access to your layout-specific SectionLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 54, - "key.doc.name" : "SectionLayouts", - "key.doc.type" : "Class", - "key.doclength" : 1360, - "key.docoffset" : 112, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayouts<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1292, - "key.line" : 54, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayouts", - "key.namelength" : 14, - "key.nameoffset" : 1486, - "key.offset" : 1479, - "key.parsed_declaration" : "public struct SectionLayouts", - "key.parsed_scope.end" : 88, - "key.parsed_scope.start" : 54, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1648 - } - ], - "key.bodylength" : 70, - "key.bodyoffset" : 1720, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new instance of the layouts, with an optional `configure`\nclosure, to allow you to set up styling inline.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new instance of the layouts, with an optional `configure`\nclosure, to allow you to set up styling inline.", - "key.doc.declaration" : "public init(_ configure: (inout `Self`) -> () = { _ in })", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI14SectionLayoutsVyACyACzXEcfc<\/USR>public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>Creates a new instance of the layouts, with an optional configure<\/codeVoice> closure, to allow you to set up styling inline.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 58, - "key.doc.name" : "init(_:)", - "key.doc.type" : "Function", - "key.doclength" : 128, - "key.docoffset" : 1516, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 136, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 63, - "key.nameoffset" : 1655, - "key.offset" : 1655, - "key.parsed_declaration" : "public init(\n _ configure : (inout Self) -> () = { _ in }\n)", - "key.parsed_scope.end" : 64, - "key.parsed_scope.start" : 58, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SectionLayouts.Type) -> ((inout SectionLayouts) -> ()) -> SectionLayouts", - "key.typeusr" : "$sy10ListableUI14SectionLayoutsVyACzXEcD", - "key.usr" : "s:10ListableUI14SectionLayoutsVyACyACzXEcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private var storage: ContentLayoutsStorage<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 1801 - } - ], - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> storage<\/decl.name>: ContentLayoutsStorage<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 35, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "storage", - "key.namelength" : 7, - "key.nameoffset" : 1813, - "key.offset" : 1809, - "key.parsed_declaration" : "private var storage : ContentLayoutsStorage", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.private", - "key.typename" : "ContentLayoutsStorage", - "key.typeusr" : "$s10ListableUI21ContentLayoutsStorageVD", - "key.usr" : "s:10ListableUI14SectionLayoutsV7storage33_0ABDCA340DBDD359496A50C3AD6DC411LLAA07ContentD7StorageVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public subscript<ValueType>(valueType: ValueType<\/Type>.Type) -> ValueType<\/Type> where ValueType<\/Type> : SectionLayoutsValue<\/Type> { get set }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2535 - } - ], - "key.bodylength" : 141, - "key.bodyoffset" : 2627, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Allows accessing the various `SectionLayoutsValue`s stored within the object.\nThis method will return the `defaultValue` for a value if none is set.\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `SectionLayouts`,\nto provide easier access to your layout-specific `SectionLayoutsValue` type.\n\n```\nextension SectionLayouts {\n public var table : TableAppearance.Section.Layout {\n get { self[TableAppearance.Section.Layout.self] }\n set { self[TableAppearance.Section.Layout.self] = newValue }\n }\n}\n```", - "key.doc.column" : 12, - "key.doc.comment" : "Allows accessing the various `SectionLayoutsValue`s stored within the object.\nThis method will return the `defaultValue` for a value if none is set.\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `SectionLayouts`,\nto provide easier access to your layout-specific `SectionLayoutsValue` type.\n\n```\nextension SectionLayouts {\n public var table : TableAppearance.Section.Layout {\n get { self[TableAppearance.Section.Layout.self] }\n set { self[TableAppearance.Section.Layout.self] = newValue }\n }\n}\n```", - "key.doc.declaration" : "public subscript(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.SectionLayoutsValue { get set }", - "key.doc.discussion" : [ - { - "Para" : "When implementing your own custom layout, you should add an extension to `SectionLayouts`, to provide easier access to your layout-specific `SectionLayoutsValue` type." - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:10ListableUI14SectionLayoutsVyxxmcAA0cD5ValueRzluip<\/USR>public subscript<ValueType>(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.SectionLayoutsValue { get set }<\/Declaration>Allows accessing the various SectionLayoutsValue<\/codeVoice>s stored within the object. This method will return the defaultValue<\/codeVoice> for a value if none is set.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to SectionLayouts<\/codeVoice>, to provide easier access to your layout-specific SectionLayoutsValue<\/codeVoice> type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 84, - "key.doc.name" : "subscript(_:)", - "key.doc.type" : "Other", - "key.doclength" : 677, - "key.docoffset" : 1854, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ValueType<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> ValueType<\/ref.generic_type_param> : SectionLayoutsValue<\/ref.protocol><\/decl.generic_type_requirement> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>", - "key.kind" : "source.lang.swift.decl.function.subscript", - "key.length" : 227, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "subscript(_:)", - "key.namelength" : 70, - "key.nameoffset" : 2542, - "key.offset" : 2542, - "key.parsed_declaration" : "public subscript(_ valueType : ValueType.Type) -> ValueType", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 84, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.substructure" : [ - { - "key.annotated_decl" : "ValueType : SectionLayoutsValue<\/Type><\/Declaration>", - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 2562 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name> : SectionLayoutsValue<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>", - "key.inheritedtypes" : [ - { - "key.name" : "SectionLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.generic_type_param", - "key.length" : 29, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "ValueType", - "key.namelength" : 9, - "key.nameoffset" : 2552, - "key.offset" : 2552, - "key.parsed_declaration" : "public subscript (ValueType.Type) -> ValueType", - "key.typeusr" : "$syxxmc10ListableUI19SectionLayoutsValueRzluD", - "key.usr" : "s:10ListableUI14SectionLayoutsVyxxmcAA0cD5ValueRzluip" - } - ], - "key.typename" : "SectionLayouts.Type", - "key.typeusr" : "$s10ListableUI14SectionLayoutsVmD", - "key.usr" : "s:10ListableUI14SectionLayoutsV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public protocol SectionLayoutsValue<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3307 - } - ], - "key.bodylength" : 313, - "key.bodyoffset" : 3344, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The `SectionLayoutsValue` protocol provides a default value for the different layouts stored\nwithin `SectionLayouts`. Provide a `defaultValue` with reasonable defaults, as the\ndeveloper should not need to set these values at all times when using your layout.\n\n```\npublic struct Layout : Equatable, SectionLayoutsValue\n{\n public var width : CGFloat\n public var minHeight : CGFloat\n\n ...\n\n public static var defaultValue : Self {\n ...\n }\n}\n```", - "key.doc.column" : 17, - "key.doc.comment" : "\nThe `SectionLayoutsValue` protocol provides a default value for the different layouts stored\nwithin `SectionLayouts`. Provide a `defaultValue` with reasonable defaults, as the\ndeveloper should not need to set these values at all times when using your layout.\n\n```\npublic struct Layout : Equatable, SectionLayoutsValue\n{\n public var width : CGFloat\n public var minHeight : CGFloat\n\n ...\n\n public static var defaultValue : Self {\n ...\n }\n}\n```", - "key.doc.declaration" : "public protocol SectionLayoutsValue", - "key.doc.discussion" : [ - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "SectionLayoutsValue<\/Name>s:10ListableUI19SectionLayoutsValueP<\/USR>public protocol SectionLayoutsValue<\/Declaration>The SectionLayoutsValue<\/codeVoice> protocol provides a default value for the different layouts stored within SectionLayouts<\/codeVoice>. Provide a defaultValue<\/codeVoice> with reasonable defaults, as the developer should not need to set these values at all times when using your layout.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 109, - "key.doc.name" : "SectionLayoutsValue", - "key.doc.type" : "Class", - "key.doclength" : 533, - "key.docoffset" : 2774, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> SectionLayoutsValue<\/decl.name><\/decl.protocol>", - "key.kind" : "source.lang.swift.decl.protocol", - "key.length" : 344, - "key.line" : 109, - "key.modulename" : "ListableUI", - "key.name" : "SectionLayoutsValue", - "key.namelength" : 19, - "key.nameoffset" : 3323, - "key.offset" : 3314, - "key.parsed_declaration" : "public protocol SectionLayoutsValue", - "key.parsed_scope.end" : 117, - "key.parsed_scope.start" : 109, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "static var defaultValue: Self<\/Type> { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3455, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.comment" : "The default value used when accessing the value, if none is set.", - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.doclength" : 69, - "key.docoffset" : 3350, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 38, - "key.line" : 112, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 3434, - "key.offset" : 3423, - "key.parsed_declaration" : "static var defaultValue : Self", - "key.parsed_scope.end" : 112, - "key.parsed_scope.start" : 112, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19SectionLayoutsValueP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Self", - "key.typeusr" : "$sxD", - "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "var isHeaderSticky: Bool<\/Type>? { get }<\/Declaration>", - "key.bodylength" : 5, - "key.bodyoffset" : 3650, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Indicates if the header for the section will be sticky.\nSetting this value explicitly overrides the list-level stickiness for headers.", - "key.doc.column" : 9, - "key.doc.comment" : "Indicates if the header for the section will be sticky.\nSetting this value explicitly overrides the list-level stickiness for headers.", - "key.doc.declaration" : "var isHeaderSticky: Bool? { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "isHeaderSticky<\/Name>s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp<\/USR>var isHeaderSticky: Bool? { get }<\/Declaration>Indicates if the header for the section will be sticky. Setting this value explicitly overrides the list-level stickiness for headers.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 116, - "key.doc.name" : "isHeaderSticky", - "key.doc.type" : "Other", - "key.doclength" : 147, - "key.docoffset" : 3471, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isHeaderSticky<\/decl.name>: Bool<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 34, - "key.line" : 116, - "key.modulename" : "ListableUI", - "key.name" : "isHeaderSticky", - "key.namelength" : 14, - "key.nameoffset" : 3626, - "key.offset" : 3622, - "key.parsed_declaration" : "var isHeaderSticky : Bool?", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 116, - "key.receivers" : [ - { - "key.usr" : "s:10ListableUI19SectionLayoutsValueP" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "Bool?", - "key.typeusr" : "$sSbSgD", - "key.usr" : "s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp" - } - ], - "key.typename" : "SectionLayoutsValue.Type", - "key.typeusr" : "$s10ListableUI19SectionLayoutsValue_pmD", - "key.usr" : "s:10ListableUI19SectionLayoutsValueP" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct EmptySectionLayoutsValue : SectionLayoutsValue<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3733 - } - ], - "key.bodylength" : 180, - "key.bodyoffset" : 3795, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Use this type if you have no `SectionLayout` for your `ListLayout`.", - "key.doc.column" : 15, - "key.doc.comment" : "Use this type if you have no `SectionLayout` for your `ListLayout`.", - "key.doc.declaration" : "public struct EmptySectionLayoutsValue : SectionLayoutsValue", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "EmptySectionLayoutsValue<\/Name>s:10ListableUI24EmptySectionLayoutsValueV<\/USR>public struct EmptySectionLayoutsValue : SectionLayoutsValue<\/Declaration>Use this type if you have no SectionLayout<\/codeVoice> for your ListLayout<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 121, - "key.doc.name" : "EmptySectionLayoutsValue", - "key.doc.type" : "Class", - "key.doclength" : 72, - "key.docoffset" : 3661, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 19, - "key.offset" : 3774 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> EmptySectionLayoutsValue<\/decl.name> : SectionLayoutsValue<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "SectionLayoutsValue" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 236, - "key.line" : 121, - "key.modulename" : "ListableUI", - "key.name" : "EmptySectionLayoutsValue", - "key.namelength" : 24, - "key.nameoffset" : 3747, - "key.offset" : 3740, - "key.parsed_declaration" : "public struct EmptySectionLayoutsValue : SectionLayoutsValue", - "key.parsed_scope.end" : 132, - "key.parsed_scope.start" : 121, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init()<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3805 - } - ], - "key.bodylength" : 0, - "key.bodyoffset" : 3820, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 9, - "key.line" : 123, - "key.modulename" : "ListableUI", - "key.name" : "init()", - "key.namelength" : 6, - "key.nameoffset" : 3812, - "key.offset" : 3812, - "key.parsed_declaration" : "public init()", - "key.parsed_scope.end" : 123, - "key.parsed_scope.start" : 123, - "key.reusingastcontext" : false, - "key.typename" : "(EmptySectionLayoutsValue.Type) -> () -> EmptySectionLayoutsValue", - "key.typeusr" : "$s10ListableUI24EmptySectionLayoutsValueVycD", - "key.usr" : "s:10ListableUI24EmptySectionLayoutsValueVACycfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var defaultValue: EmptySectionLayoutsValue<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3831 - } - ], - "key.bodylength" : 21, - "key.bodyoffset" : 3889, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default value used when accessing the value, if none is set.", - "key.doc.column" : 16, - "key.doc.declaration" : "static var defaultValue: Self { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from SectionLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 112, - "key.doc.name" : "defaultValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: EmptySectionLayoutsValue<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 73, - "key.line" : 125, - "key.modulename" : "ListableUI", - "key.name" : "defaultValue", - "key.namelength" : 12, - "key.nameoffset" : 3849, - "key.offset" : 3838, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ" - } - ], - "key.parsed_declaration" : "public static var defaultValue: EmptySectionLayoutsValue", - "key.parsed_scope.end" : 127, - "key.parsed_scope.start" : 125, - "key.reusingastcontext" : false, - "key.typename" : "EmptySectionLayoutsValue", - "key.typeusr" : "$s10ListableUI24EmptySectionLayoutsValueVD", - "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var isHeaderSticky: Bool<\/Type>? { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3921 - } - ], - "key.bodylength" : 17, - "key.bodyoffset" : 3956, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Indicates if the header for the section will be sticky.\nSetting this value explicitly overrides the list-level stickiness for headers.", - "key.doc.column" : 9, - "key.doc.declaration" : "var isHeaderSticky: Bool? { get }", - "key.doc.discussion" : [ - { - "Note" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.doc.full_as_xml" : "isHeaderSticky<\/Name>s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp<\/USR>var isHeaderSticky: Bool? { get }<\/Declaration>Indicates if the header for the section will be sticky. Setting this value explicitly overrides the list-level stickiness for headers.<\/Para><\/Abstract>This documentation comment was inherited from SectionLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 116, - "key.doc.name" : "isHeaderSticky", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionLayouts.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isHeaderSticky<\/decl.name>: Bool<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 46, - "key.line" : 129, - "key.modulename" : "ListableUI", - "key.name" : "isHeaderSticky", - "key.namelength" : 14, - "key.nameoffset" : 3932, - "key.offset" : 3928, - "key.overrides" : [ - { - "key.usr" : "s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp" - } - ], - "key.parsed_declaration" : "public var isHeaderSticky : Bool?", - "key.parsed_scope.end" : 131, - "key.parsed_scope.start" : 129, - "key.reusingastcontext" : false, - "key.typename" : "Bool?", - "key.typeusr" : "$sSbSgD", - "key.usr" : "s:10ListableUI19SectionLayoutsValueP14isHeaderStickySbSgvp" - } - ], - "key.typename" : "EmptySectionLayoutsValue.Type", - "key.typeusr" : "$s10ListableUI24EmptySectionLayoutsValueVmD", - "key.usr" : "s:10ListableUI24EmptySectionLayoutsValueV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionPosition.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 396, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum SectionPosition : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 181 - } - ], - "key.bodylength" : 172, - "key.bodyoffset" : 222, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Specifies the supplementary views and \/ or items based on position within a `Section`.\n", - "key.doc.column" : 13, - "key.doc.comment" : "Specifies the supplementary views and \/ or items based on position within a `Section`.", - "key.doc.declaration" : "public enum SectionPosition : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionPosition.swift", - "key.doc.full_as_xml" : "SectionPosition<\/Name>s:10ListableUI15SectionPositionO<\/USR>public enum SectionPosition : Equatable<\/Declaration>Specifies the supplementary views and \/ or items based on position within a Section<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 10, - "key.doc.name" : "SectionPosition", - "key.doc.type" : "Other", - "key.doclength" : 95, - "key.docoffset" : 86, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 211 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionPosition.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SectionPosition<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 207, - "key.line" : 10, - "key.modulename" : "ListableUI", - "key.name" : "SectionPosition", - "key.namelength" : 15, - "key.nameoffset" : 193, - "key.offset" : 188, - "key.parsed_declaration" : "public enum SectionPosition : Equatable", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 10, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 8, - "key.offset" : 298, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case top<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Represents the header and \/ or first item(s) within a section.", - "key.doc.column" : 10, - "key.doc.comment" : "Represents the header and \/ or first item(s) within a section.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionPosition.swift", - "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI15SectionPositionO3topyA2CmF<\/USR><\/Declaration>Represents the header and \/ or first item(s) within a section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 13, - "key.doc.name" : "top", - "key.doc.type" : "Other", - "key.doclength" : 67, - "key.docoffset" : 227, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> top<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 3, - "key.line" : 13, - "key.modulename" : "ListableUI", - "key.name" : "top", - "key.namelength" : 3, - "key.nameoffset" : 303, - "key.offset" : 303, - "key.parsed_declaration" : "case top", - "key.parsed_scope.end" : 13, - "key.parsed_scope.start" : 13, - "key.reusingastcontext" : false, - "key.typename" : "(SectionPosition.Type) -> SectionPosition", - "key.typeusr" : "$sy10ListableUI15SectionPositionOACmcD", - "key.usr" : "s:10ListableUI15SectionPositionO3topyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 382, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case bottom<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Represents the footer and \/ or last item(s) within a section.", - "key.doc.column" : 10, - "key.doc.comment" : "Represents the footer and \/ or last item(s) within a section.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionPosition.swift", - "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI15SectionPositionO6bottomyA2CmF<\/USR><\/Declaration>Represents the footer and \/ or last item(s) within a section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 16, - "key.doc.name" : "bottom", - "key.doc.type" : "Other", - "key.doclength" : 66, - "key.docoffset" : 312, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionPosition.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> bottom<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "bottom", - "key.namelength" : 6, - "key.nameoffset" : 387, - "key.offset" : 387, - "key.parsed_declaration" : "case bottom", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.typename" : "(SectionPosition.Type) -> SectionPosition", - "key.typeusr" : "$sy10ListableUI15SectionPositionOACmcD", - "key.usr" : "s:10ListableUI15SectionPositionO6bottomyA2CmF" - } - ] - } - ], - "key.typename" : "SectionPosition.Type", - "key.typeusr" : "$s10ListableUI15SectionPositionOmD", - "key.usr" : "s:10ListableUI15SectionPositionO" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 2127, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct SectionReordering<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 469 - } - ], - "key.bodylength" : 1623, - "key.bodyoffset" : 502, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides additional validation when an ``Item`` is being reordered into, or out of a section.\n\nBy setting the ``Section\/reordering`` property on your ``Section``, you can control\nthe minimum number of items, the maximum number of items, or provide\nmore specific validation by providing either of the `canReorderIn` or `canReorderOut` predicates.\n", - "key.doc.column" : 15, - "key.doc.comment" : "\nProvides additional validation when an ``Item`` is being reordered into, or out of a section.\n\nBy setting the ``Section\/reordering`` property on your ``Section``, you can control\nthe minimum number of items, the maximum number of items, or provide\nmore specific validation by providing either of the `canReorderIn` or `canReorderOut` predicates.", - "key.doc.declaration" : "public struct SectionReordering", - "key.doc.discussion" : [ - { - "Para" : "By setting the `Section\/reordering` property on your `Section`, you can control the minimum number of items, the maximum number of items, or provide more specific validation by providing either of the `canReorderIn` or `canReorderOut` predicates." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.doc.full_as_xml" : "SectionReordering<\/Name>s:10ListableUI17SectionReorderingV<\/USR>public struct SectionReordering<\/Declaration>Provides additional validation when an Item<\/codeVoice> is being reordered into, or out of a section.<\/Para><\/Abstract>By setting the Section\/reordering<\/codeVoice> property on your Section<\/codeVoice>, you can control the minimum number of items, the maximum number of items, or provide more specific validation by providing either of the canReorderIn<\/codeVoice> or canReorderOut<\/codeVoice> predicates.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 16, - "key.doc.name" : "SectionReordering", - "key.doc.type" : "Class", - "key.doclength" : 373, - "key.docoffset" : 96, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionReordering<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1650, - "key.line" : 16, - "key.modulename" : "ListableUI", - "key.name" : "SectionReordering", - "key.namelength" : 17, - "key.nameoffset" : 483, - "key.offset" : 476, - "key.parsed_declaration" : "public struct SectionReordering", - "key.parsed_scope.end" : 64, - "key.parsed_scope.start" : 16, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var minItemCount: Int<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 579 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The minimum number of items within the section. Defaults to 1.", - "key.doc.column" : 16, - "key.doc.comment" : "The minimum number of items within the section. Defaults to 1.", - "key.doc.declaration" : "public var minItemCount: Int", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.doc.full_as_xml" : "minItemCount<\/Name>s:10ListableUI17SectionReorderingV12minItemCountSivp<\/USR>public var minItemCount: Int<\/Declaration>The minimum number of items within the section. Defaults to 1.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 19, - "key.doc.name" : "minItemCount", - "key.doc.type" : "Other", - "key.doclength" : 67, - "key.docoffset" : 508, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> minItemCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 19, - "key.modulename" : "ListableUI", - "key.name" : "minItemCount", - "key.namelength" : 12, - "key.nameoffset" : 590, - "key.offset" : 586, - "key.parsed_declaration" : "public var minItemCount : Int", - "key.parsed_scope.end" : 19, - "key.parsed_scope.start" : 19, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Int", - "key.typeusr" : "$sSiD", - "key.usr" : "s:10ListableUI17SectionReorderingV12minItemCountSivp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var maxItemCount: Int<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 694 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The maximum number of items in the section. Has no default setting.", - "key.doc.column" : 16, - "key.doc.comment" : "The maximum number of items in the section. Has no default setting.", - "key.doc.declaration" : "public var maxItemCount: Int?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.doc.full_as_xml" : "maxItemCount<\/Name>s:10ListableUI17SectionReorderingV12maxItemCountSiSgvp<\/USR>public var maxItemCount: Int?<\/Declaration>The maximum number of items in the section. Has no default setting.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 22, - "key.doc.name" : "maxItemCount", - "key.doc.type" : "Other", - "key.doclength" : 72, - "key.docoffset" : 618, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> maxItemCount<\/decl.name>: Int<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 23, - "key.line" : 22, - "key.modulename" : "ListableUI", - "key.name" : "maxItemCount", - "key.namelength" : 12, - "key.nameoffset" : 705, - "key.offset" : 701, - "key.parsed_declaration" : "public var maxItemCount : Int?", - "key.parsed_scope.end" : 22, - "key.parsed_scope.start" : 22, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Int?", - "key.typeusr" : "$sSiSgD", - "key.usr" : "s:10ListableUI17SectionReorderingV12maxItemCountSiSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias SectionReordering<\/Type>.CanReorder = (ItemReordering<\/Type>.Result<\/Type>) throws -> Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 734 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> SectionReordering<\/ref.struct>.CanReorder<\/decl.name> = (ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) throws<\/syntaxtype.keyword> -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 61, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "CanReorder", - "key.namelength" : 10, - "key.nameoffset" : 751, - "key.offset" : 741, - "key.parsed_declaration" : "public typealias CanReorder = (ItemReordering.Result) throws -> Bool", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.typename" : "((ItemReordering.Result) throws -> Bool).Type", - "key.typeusr" : "$sSb10ListableUI14ItemReorderingV6ResultVKcmD", - "key.usr" : "s:10ListableUI17SectionReorderingV10CanReordera" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var canReorderIn: CanReorder<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 966 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A predicate that you can provide which allows more intricate validation when\nwhen determining if an item can be added to the section.", - "key.doc.column" : 16, - "key.doc.comment" : "A predicate that you can provide which allows more intricate validation when\nwhen determining if an item can be added to the section.", - "key.doc.declaration" : "public var canReorderIn: CanReorder?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.doc.full_as_xml" : "canReorderIn<\/Name>s:10ListableUI17SectionReorderingV12canReorderInSbAA04ItemD0V6ResultVKcSgvp<\/USR>public var canReorderIn: CanReorder?<\/Declaration>A predicate that you can provide which allows more intricate validation when when determining if an item can be added to the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 28, - "key.doc.name" : "canReorderIn", - "key.doc.type" : "Other", - "key.doclength" : 146, - "key.docoffset" : 816, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> canReorderIn<\/decl.name>: CanReorder<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 30, - "key.line" : 28, - "key.modulename" : "ListableUI", - "key.name" : "canReorderIn", - "key.namelength" : 12, - "key.nameoffset" : 977, - "key.offset" : 973, - "key.parsed_declaration" : "public var canReorderIn : CanReorder?", - "key.parsed_scope.end" : 28, - "key.parsed_scope.start" : 28, - "key.related_decls" : [ - { - "key.annotated_decl" : "canReorderIn(with:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((ItemReordering.Result) throws -> Bool)?", - "key.typeusr" : "$sSb10ListableUI14ItemReorderingV6ResultVKcSgD", - "key.usr" : "s:10ListableUI17SectionReorderingV12canReorderInSbAA04ItemD0V6ResultVKcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var canReorderOut: CanReorder<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1167 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A predicate that you can provide which allows more intricate validation when\nwhen determining if an item can be removed from the section.", - "key.doc.column" : 16, - "key.doc.comment" : "A predicate that you can provide which allows more intricate validation when\nwhen determining if an item can be removed from the section.", - "key.doc.declaration" : "public var canReorderOut: CanReorder?", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.doc.full_as_xml" : "canReorderOut<\/Name>s:10ListableUI17SectionReorderingV13canReorderOutSbAA04ItemD0V6ResultVKcSgvp<\/USR>public var canReorderOut: CanReorder?<\/Declaration>A predicate that you can provide which allows more intricate validation when when determining if an item can be removed from the section.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 32, - "key.doc.name" : "canReorderOut", - "key.doc.type" : "Other", - "key.doclength" : 150, - "key.docoffset" : 1013, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> canReorderOut<\/decl.name>: CanReorder<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "canReorderOut", - "key.namelength" : 13, - "key.nameoffset" : 1178, - "key.offset" : 1174, - "key.parsed_declaration" : "public var canReorderOut : CanReorder?", - "key.parsed_scope.end" : 32, - "key.parsed_scope.start" : 32, - "key.related_decls" : [ - { - "key.annotated_decl" : "canReorderOut(with:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "((ItemReordering.Result) throws -> Bool)?", - "key.typeusr" : "$sSb10ListableUI14ItemReorderingV6ResultVKcSgD", - "key.usr" : "s:10ListableUI17SectionReorderingV13canReorderOutSbAA04ItemD0V6ResultVKcSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(minItemCount: Int<\/Type> = 1, maxItemCount: Int<\/Type>? = nil, canReorderIn: CanReorder<\/Type>? = nil, canReorderOut: CanReorder<\/Type>? = nil)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1269 - } - ], - "key.bodylength" : 171, - "key.bodyoffset" : 1436, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new reordering validation instance.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new reordering validation instance.", - "key.doc.declaration" : "public init(minItemCount: Int = 1, maxItemCount: Int? = nil, canReorderIn: CanReorder? = nil, canReorderOut: CanReorder? = nil)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.doc.full_as_xml" : "init(minItemCount:maxItemCount:canReorderIn:canReorderOut:)<\/Name>s:10ListableUI17SectionReorderingV12minItemCount03maxfG012canReorderIn0iJ3OutACSi_SiSgSbAA0fD0V6ResultVKcSgAMtcfc<\/USR>public init(minItemCount: Int = 1, maxItemCount: Int? = nil, canReorderIn: CanReorder? = nil, canReorderOut: CanReorder? = nil)<\/Declaration>Creates a new reordering validation instance.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 35, - "key.doc.name" : "init(minItemCount:maxItemCount:canReorderIn:canReorderOut:)", - "key.doc.type" : "Function", - "key.doclength" : 50, - "key.docoffset" : 1215, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(minItemCount<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type> = 1<\/decl.var.parameter>, maxItemCount<\/decl.var.parameter.argument_label>: Int<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, canReorderIn<\/decl.var.parameter.argument_label>: CanReorder<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, canReorderOut<\/decl.var.parameter.argument_label>: CanReorder<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 332, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "init(minItemCount:maxItemCount:canReorderIn:canReorderOut:)", - "key.namelength" : 158, - "key.nameoffset" : 1276, - "key.offset" : 1276, - "key.parsed_declaration" : "public init(\n minItemCount: Int = 1,\n maxItemCount: Int? = nil,\n canReorderIn: CanReorder? = nil,\n canReorderOut: CanReorder? = nil\n)", - "key.parsed_scope.end" : 45, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SectionReordering.Type) -> (Int, Int?, ((ItemReordering.Result) throws -> Bool)?, ((ItemReordering.Result) throws -> Bool)?) -> SectionReordering", - "key.typeusr" : "$s12minItemCount03maxbC012canReorderIn0eF3Out10ListableUI17SectionReorderingVSi_SiSgSbAE0bL0V6ResultVKcSgAMtcD", - "key.usr" : "s:10ListableUI17SectionReorderingV12minItemCount03maxfG012canReorderIn0iJ3OutACSi_SiSgSbAA0fD0V6ResultVKcSgAMtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func canReorderIn(with result: ItemReordering<\/Type>.Result<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 190, - "key.bodyoffset" : 1682, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> canReorderIn<\/decl.name>(with<\/decl.var.parameter.argument_label> result<\/decl.var.parameter.name>: ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 255, - "key.line" : 47, - "key.modulename" : "ListableUI", - "key.name" : "canReorderIn(with:)", - "key.namelength" : 49, - "key.nameoffset" : 1623, - "key.offset" : 1618, - "key.parsed_declaration" : "func canReorderIn(with result : ItemReordering.Result) -> Bool", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 47, - "key.related_decls" : [ - { - "key.annotated_decl" : "canReorderIn<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SectionReordering) -> (ItemReordering.Result) -> Bool", - "key.typeusr" : "$s4withSb10ListableUI14ItemReorderingV6ResultV_tcD", - "key.usr" : "s:10ListableUI17SectionReorderingV12canReorderIn4withSbAA04ItemD0V6ResultV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func canReorderOut(with result: ItemReordering<\/Type>.Result<\/Type>) -> Bool<\/Type><\/Declaration>", - "key.bodylength" : 175, - "key.bodyoffset" : 1948, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Section\/SectionReordering.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> canReorderOut<\/decl.name>(with<\/decl.var.parameter.argument_label> result<\/decl.var.parameter.name>: ItemReordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 241, - "key.line" : 56, - "key.modulename" : "ListableUI", - "key.name" : "canReorderOut(with:)", - "key.namelength" : 50, - "key.nameoffset" : 1888, - "key.offset" : 1883, - "key.parsed_declaration" : "func canReorderOut(with result : ItemReordering.Result) -> Bool", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 56, - "key.related_decls" : [ - { - "key.annotated_decl" : "canReorderOut<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SectionReordering) -> (ItemReordering.Result) -> Bool", - "key.typeusr" : "$s4withSb10ListableUI14ItemReorderingV6ResultV_tcD", - "key.usr" : "s:10ListableUI17SectionReorderingV13canReorderOut4withSbAA04ItemD0V6ResultV_tF" - } - ], - "key.typename" : "SectionReordering.Type", - "key.typeusr" : "$s10ListableUI17SectionReorderingVmD", - "key.usr" : "s:10ListableUI17SectionReorderingV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 13992, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum Sizing : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 194 - } - ], - "key.bodylength" : 6038, - "key.bodyoffset" : 225, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls how a header, footer, or item in a list view is sized.\n", - "key.doc.column" : 13, - "key.doc.comment" : "\nControls how a header, footer, or item in a list view is sized.", - "key.doc.declaration" : "public enum Sizing : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI6SizingO<\/USR>public enum Sizing : Hashable<\/Declaration>Controls how a header, footer, or item in a list view is sized.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 15, - "key.doc.name" : "Sizing", - "key.doc.type" : "Other", - "key.doclength" : 76, - "key.docoffset" : 118, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 215 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sizing<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 6063, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "Sizing", - "key.namelength" : 6, - "key.nameoffset" : 206, - "key.offset" : 201, - "key.parsed_declaration" : "public enum Sizing : Hashable", - "key.parsed_scope.end" : 159, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 57, - "key.offset" : 566, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fixed(width: CGFloat<\/Type> = 0.0, height: CGFloat<\/Type> = 0.0)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Fixes the size to the absolute value passed in.\n\n### Note\nThis option takes in both a size and a width. However, for standard list views,\nonly the height is used. The width is provided for when custom layouts are used,\nwhich may allow sizing for other types of layouts, eg, grids.\n", - "key.doc.column" : 10, - "key.doc.comment" : "Fixes the size to the absolute value passed in.\n\n### Note\nThis option takes in both a size and a width. However, for standard list views,\nonly the height is used. The width is provided for when custom layouts are used,\nwhich may allow sizing for other types of layouts, eg, grids.", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "This option takes in both a size and a width. However, for standard list views, only the height is used. The width is provided for when custom layouts are used, which may allow sizing for other types of layouts, eg, grids." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "fixed(width:height:)<\/Name>s:10ListableUI6SizingO5fixedyAC14CoreFoundation7CGFloatV_AGtcACmF<\/USR><\/Declaration>Fixes the size to the absolute value passed in.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>This option takes in both a size and a width. However, for standard list views, only the height is used. The width is provided for when custom layouts are used, which may allow sizing for other types of layouts, eg, grids.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 24, - "key.doc.name" : "fixed(width:height:)", - "key.doc.type" : "Other", - "key.doclength" : 332, - "key.docoffset" : 230, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 52, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "fixed(width:height:)", - "key.namelength" : 52, - "key.nameoffset" : 571, - "key.offset" : 571, - "key.parsed_declaration" : "case fixed(width : CGFloat = 0.0, height : CGFloat = 0.0)", - "key.parsed_scope.end" : 24, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Type) -> (CGFloat, CGFloat) -> Sizing", - "key.typeusr" : "$sy10ListableUI6SizingO14CoreFoundation7CGFloatV_AFtcACmcD", - "key.usr" : "s:10ListableUI6SizingO5fixedyAC14CoreFoundation7CGFloatV_AGtcACmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 41, - "key.offset" : 1330, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case thatFits(_: Constraint<\/Type> = .noConstraint)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Sizes the item by calling `sizeThatFits` on its underlying view type.\nThe passed in constraint is used to clamp the size to a minimum, maximum, or range.\nIf you do not specify a constraint, `.noConstraint` is used.\n\n### Example\nIf you would like to use `sizeThatFits` to size an item, but would like to enforce a minimum size,\nyou would do something similar to the following:\n\n```\n\/\/ Enforces that the size is at least the default size of the list.\n.thatFits(.init(.atLeast(.default)))\n\n \/\/ Enforces that the size is at least 50 points.\n.thatFits(.init(.atLeast(.fixed(50))))\n```", - "key.doc.column" : 10, - "key.doc.comment" : "Sizes the item by calling `sizeThatFits` on its underlying view type.\nThe passed in constraint is used to clamp the size to a minimum, maximum, or range.\nIf you do not specify a constraint, `.noConstraint` is used.\n\n### Example\nIf you would like to use `sizeThatFits` to size an item, but would like to enforce a minimum size,\nyou would do something similar to the following:\n\n```\n\/\/ Enforces that the size is at least the default size of the list.\n.thatFits(.init(.atLeast(.default)))\n\n \/\/ Enforces that the size is at least 50 points.\n.thatFits(.init(.atLeast(.fixed(50))))\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "If you would like to use `sizeThatFits` to size an item, but would like to enforce a minimum size, you would do something similar to the following:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "thatFits(_:)<\/Name>s:10ListableUI6SizingO8thatFitsyA2C10ConstraintVcACmF<\/USR><\/Declaration>Sizes the item by calling sizeThatFits<\/codeVoice> on its underlying view type. The passed in constraint is used to clamp the size to a minimum, maximum, or range. If you do not specify a constraint, .noConstraint<\/codeVoice> is used.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML>If you would like to use sizeThatFits<\/codeVoice> to size an item, but would like to enforce a minimum size, you would do something similar to the following:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 41, - "key.doc.name" : "thatFits(_:)", - "key.doc.type" : "Other", - "key.doclength" : 693, - "key.docoffset" : 633, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> thatFits<\/decl.name>(_<\/decl.var.parameter.argument_label>: Constraint<\/ref.struct><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 36, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "thatFits(_:)", - "key.namelength" : 36, - "key.nameoffset" : 1335, - "key.offset" : 1335, - "key.parsed_declaration" : "case thatFits(Constraint = .noConstraint)", - "key.parsed_scope.end" : 41, - "key.parsed_scope.start" : 41, - "key.related_decls" : [ - { - "key.annotated_decl" : "thatFits(width:height:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Type) -> (Sizing.Constraint) -> Sizing", - "key.typeusr" : "$sy10ListableUI6SizingOAC10ConstraintVcACmcD", - "key.usr" : "s:10ListableUI6SizingO8thatFitsyA2C10ConstraintVcACmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func thatFits(width: Constraint<\/Type>.Axis<\/Type> = .noConstraint, height: Constraint<\/Type>.Axis<\/Type> = .noConstraint) -> Sizing<\/Type><\/Declaration>", - "key.bodylength" : 60, - "key.bodyoffset" : 1846, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Sizes the item by calling `sizeThatFits` on its underlying view type.\nThe passed in constraints are used to clamp the size to a minimum, maximum, or range.\nIf you do not specify a constraint, `.noConstraint` is used.\n\nSee `case thatFits(Constraint = .noConstraint)` for a full discussion.", - "key.doc.column" : 17, - "key.doc.comment" : "Sizes the item by calling `sizeThatFits` on its underlying view type.\nThe passed in constraints are used to clamp the size to a minimum, maximum, or range.\nIf you do not specify a constraint, `.noConstraint` is used.\n\nSee `case thatFits(Constraint = .noConstraint)` for a full discussion.", - "key.doc.declaration" : "static func thatFits(width: Constraint.Axis = .noConstraint, height: Constraint.Axis = .noConstraint) -> ListableUI.Sizing", - "key.doc.discussion" : [ - { - "Para" : "See `case thatFits(Constraint = .noConstraint)` for a full discussion." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "thatFits(width:height:)<\/Name>s:10ListableUI6SizingO8thatFits5width6heightA2C10ConstraintV4AxisO_AJtFZ<\/USR>static func thatFits(width: Constraint.Axis = .noConstraint, height: Constraint.Axis = .noConstraint) -> ListableUI.Sizing<\/Declaration>Sizes the item by calling sizeThatFits<\/codeVoice> on its underlying view type. The passed in constraints are used to clamp the size to a minimum, maximum, or range. If you do not specify a constraint, .noConstraint<\/codeVoice> is used.<\/Para><\/Abstract>See case thatFits(Constraint = .noConstraint)<\/codeVoice> for a full discussion.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 48, - "key.doc.name" : "thatFits(width:height:)", - "key.doc.type" : "Function", - "key.doclength" : 324, - "key.docoffset" : 1381, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> thatFits<\/decl.name>(width<\/decl.var.parameter.argument_label>: Constraint<\/ref.struct>.Axis<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: Constraint<\/ref.struct>.Axis<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>) -> Sizing<\/ref.enum><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 198, - "key.line" : 48, - "key.modulename" : "ListableUI", - "key.name" : "thatFits(width:height:)", - "key.namelength" : 111, - "key.nameoffset" : 1721, - "key.offset" : 1709, - "key.parsed_declaration" : "static func thatFits(\n width: Constraint.Axis = .noConstraint,\n height: Constraint.Axis = .noConstraint\n) -> Self", - "key.parsed_scope.end" : 54, - "key.parsed_scope.start" : 48, - "key.related_decls" : [ - { - "key.annotated_decl" : "thatFits(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Type) -> (Sizing.Constraint.Axis, Sizing.Constraint.Axis) -> Sizing", - "key.typeusr" : "$s5width6height10ListableUI6SizingOAE10ConstraintV4AxisO_AItcD", - "key.usr" : "s:10ListableUI6SizingO8thatFits5width6heightA2C10ConstraintV4AxisO_AJtFZ" - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 43, - "key.offset" : 2640, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case autolayout(_: Constraint<\/Type> = .noConstraint)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Sizes the item by calling `systemLayoutSizeFitting` on its underlying view type.\nThe passed in constraint is used to clamp the size to a minimum, maximum, or range.\nIf you do not specify a constraint, `.noConstraint` is used.\n\n### Example\nIf you would like to use `systemLayoutSizeFitting` to size an item, but would like to enforce a minimum size,\nyou would do something similar to the following:\n\n```\n\/\/ Enforces that the size is at least the default size of the list.\n.autolayout(.init(.atLeast(.default)))\n\n \/\/ Enforces that the size is at least 50 points.\n.autolayout(.init(.atLeast(.fixed(50))))\n```", - "key.doc.column" : 10, - "key.doc.comment" : "Sizes the item by calling `systemLayoutSizeFitting` on its underlying view type.\nThe passed in constraint is used to clamp the size to a minimum, maximum, or range.\nIf you do not specify a constraint, `.noConstraint` is used.\n\n### Example\nIf you would like to use `systemLayoutSizeFitting` to size an item, but would like to enforce a minimum size,\nyou would do something similar to the following:\n\n```\n\/\/ Enforces that the size is at least the default size of the list.\n.autolayout(.init(.atLeast(.default)))\n\n \/\/ Enforces that the size is at least 50 points.\n.autolayout(.init(.atLeast(.fixed(50))))\n```", - "key.doc.declaration" : "", - "key.doc.discussion" : [ - { - "Para" : "If you would like to use `systemLayoutSizeFitting` to size an item, but would like to enforce a minimum size, you would do something similar to the following:" - }, - { - "CodeListing" : "" - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "autolayout(_:)<\/Name>s:10ListableUI6SizingO10autolayoutyA2C10ConstraintVcACmF<\/USR><\/Declaration>Sizes the item by calling systemLayoutSizeFitting<\/codeVoice> on its underlying view type. The passed in constraint is used to clamp the size to a minimum, maximum, or range. If you do not specify a constraint, .noConstraint<\/codeVoice> is used.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML>If you would like to use systemLayoutSizeFitting<\/codeVoice> to size an item, but would like to enforce a minimum size, you would do something similar to the following:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 71, - "key.doc.name" : "autolayout(_:)", - "key.doc.type" : "Other", - "key.doclength" : 719, - "key.docoffset" : 1917, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> autolayout<\/decl.name>(_<\/decl.var.parameter.argument_label>: Constraint<\/ref.struct><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 38, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "autolayout(_:)", - "key.namelength" : 38, - "key.nameoffset" : 2645, - "key.offset" : 2645, - "key.parsed_declaration" : "case autolayout(Constraint = .noConstraint)", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 71, - "key.related_decls" : [ - { - "key.annotated_decl" : "autolayout(width:height:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Type) -> (Sizing.Constraint) -> Sizing", - "key.typeusr" : "$sy10ListableUI6SizingOAC10ConstraintVcACmcD", - "key.usr" : "s:10ListableUI6SizingO10autolayoutyA2C10ConstraintVcACmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "static func autolayout(width: Constraint<\/Type>.Axis<\/Type> = .noConstraint, height: Constraint<\/Type>.Axis<\/Type> = .noConstraint) -> Sizing<\/Type><\/Declaration>", - "key.bodylength" : 60, - "key.bodyoffset" : 3173, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Sizes the item by calling `systemLayoutSizeFitting` on its underlying view type.\nThe passed in constraints are used to clamp the size to a minimum, maximum, or range.\nIf you do not specify a constraint, `.noConstraint` is used.\n\nSee `case autolayout(Constraint = .noConstraint)` for a full discussion.", - "key.doc.column" : 17, - "key.doc.comment" : "Sizes the item by calling `systemLayoutSizeFitting` on its underlying view type.\nThe passed in constraints are used to clamp the size to a minimum, maximum, or range.\nIf you do not specify a constraint, `.noConstraint` is used.\n\nSee `case autolayout(Constraint = .noConstraint)` for a full discussion.", - "key.doc.declaration" : "static func autolayout(width: Constraint.Axis = .noConstraint, height: Constraint.Axis = .noConstraint) -> ListableUI.Sizing", - "key.doc.discussion" : [ - { - "Para" : "See `case autolayout(Constraint = .noConstraint)` for a full discussion." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "autolayout(width:height:)<\/Name>s:10ListableUI6SizingO10autolayout5width6heightA2C10ConstraintV4AxisO_AJtFZ<\/USR>static func autolayout(width: Constraint.Axis = .noConstraint, height: Constraint.Axis = .noConstraint) -> ListableUI.Sizing<\/Declaration>Sizes the item by calling systemLayoutSizeFitting<\/codeVoice> on its underlying view type. The passed in constraints are used to clamp the size to a minimum, maximum, or range. If you do not specify a constraint, .noConstraint<\/codeVoice> is used.<\/Para><\/Abstract>See case autolayout(Constraint = .noConstraint)<\/codeVoice> for a full discussion.<\/Para><\/Discussion><\/CommentParts><\/Function>", - "key.doc.line" : 78, - "key.doc.name" : "autolayout(width:height:)", - "key.doc.type" : "Function", - "key.doclength" : 337, - "key.docoffset" : 2693, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> autolayout<\/decl.name>(width<\/decl.var.parameter.argument_label>: Constraint<\/ref.struct>.Axis<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: Constraint<\/ref.struct>.Axis<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>) -> Sizing<\/ref.enum><\/decl.function.returntype><\/decl.function.method.static>", - "key.kind" : "source.lang.swift.decl.function.method.static", - "key.length" : 200, - "key.line" : 78, - "key.modulename" : "ListableUI", - "key.name" : "autolayout(width:height:)", - "key.namelength" : 113, - "key.nameoffset" : 3046, - "key.offset" : 3034, - "key.parsed_declaration" : "static func autolayout(\n width: Constraint.Axis = .noConstraint,\n height: Constraint.Axis = .noConstraint\n) -> Self", - "key.parsed_scope.end" : 84, - "key.parsed_scope.start" : 78, - "key.related_decls" : [ - { - "key.annotated_decl" : "autolayout(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Type) -> (Sizing.Constraint.Axis, Sizing.Constraint.Axis) -> Sizing", - "key.typeusr" : "$s5width6height10ListableUI6SizingOAE10ConstraintV4AxisO_AItcD", - "key.usr" : "s:10ListableUI6SizingO10autolayout5width6heightA2C10ConstraintV4AxisO_AJtFZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "func measure(with view: UIView<\/Type>, info: MeasureInfo<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.bodylength" : 1505, - "key.bodyoffset" : 3456, - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Measures the given view with the provided options.\nThe returned value is `ceil()`'d to round up to the next full integer value.", - "key.doc.column" : 10, - "key.doc.comment" : "Measures the given view with the provided options.\nThe returned value is `ceil()`'d to round up to the next full integer value.", - "key.doc.declaration" : "func measure(with view: UIView, info: MeasureInfo) -> CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "measure(with:info:)<\/Name>s:10ListableUI6SizingO7measure4with4infoSo6CGSizeVSo6UIViewC_AC11MeasureInfoVtF<\/USR>func measure(with view: UIView, info: MeasureInfo) -> CGSize<\/Declaration>Measures the given view with the provided options. The returned value is ceil()<\/codeVoice>’d to round up to the next full integer value.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 88, - "key.doc.name" : "measure(with:info:)", - "key.doc.type" : "Function", - "key.doclength" : 140, - "key.docoffset" : 3244, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> measure<\/decl.name>(with<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1574, - "key.line" : 88, - "key.modulename" : "ListableUI", - "key.name" : "measure(with:info:)", - "key.namelength" : 47, - "key.nameoffset" : 3393, - "key.offset" : 3388, - "key.parsed_declaration" : "func measure(with view : UIView, info : MeasureInfo) -> CGSize", - "key.parsed_scope.end" : 129, - "key.parsed_scope.start" : 88, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let size: CGSize<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 1313, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "size", - "key.namelength" : 4, - "key.nameoffset" : 3469, - "key.offset" : 3465, - "key.parsed_declaration" : "let size : CGSize = {\n switch self {\n case .fixed(let width, let height):\n return CGSize(width: width, height: height)\n \n case .thatFits(let constraint):\n let size = view.sizeThatFits(info.sizeConstraint)\n \n return constraint.clamp(size)\n \n case .autolayout(let constraint):\n \n let size : CGSize = {\n switch info.direction {\n case .vertical:\n return view.systemLayoutSizeFitting(\n CGSize(width: info.sizeConstraint.width, height:0),\n withHorizontalFittingPriority: .required,\n verticalFittingPriority: .fittingSizeLevel\n )\n case .horizontal:\n return view.systemLayoutSizeFitting(\n CGSize(width: 0, height:info.sizeConstraint.height),\n withHorizontalFittingPriority: .fittingSizeLevel,\n verticalFittingPriority: .required\n )\n }\n }()\n\n return constraint.clamp(size)\n }\n}()", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 90, - "key.reusingastcontext" : false, - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI6SizingO7measure4with4infoSo6CGSizeVSo6UIViewC_AC11MeasureInfoVtF4sizeL_AHvp" - } - ], - "key.typename" : "(Sizing) -> (UIView, Sizing.MeasureInfo) -> CGSize", - "key.typeusr" : "$s4with4infoSo6CGSizeVSo6UIViewC_10ListableUI6SizingO11MeasureInfoVtcD", - "key.usr" : "s:10ListableUI6SizingO7measure4with4infoSo6CGSizeVSo6UIViewC_AC11MeasureInfoVtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.private", - "key.annotated_decl" : "private func validateMeasuredSize(_ size: CGSize<\/Type>, with info: MeasureInfo<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.private", - "key.length" : 7, - "key.offset" : 4972 - } - ], - "key.bodylength" : 1212, - "key.bodyoffset" : 5049, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> validateMeasuredSize<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1282, - "key.line" : 131, - "key.modulename" : "ListableUI", - "key.name" : "validateMeasuredSize(_:with:)", - "key.namelength" : 62, - "key.nameoffset" : 4985, - "key.offset" : 4980, - "key.parsed_declaration" : "private func validateMeasuredSize(_ size : CGSize, with info : MeasureInfo)", - "key.parsed_scope.end" : 158, - "key.parsed_scope.start" : 131, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing) -> (CGSize, Sizing.MeasureInfo) -> ()", - "key.typeusr" : "$s_4withySo6CGSizeV_10ListableUI6SizingO11MeasureInfoVtcD", - "key.usr" : "s:10ListableUI6SizingO20validateMeasuredSize33_228ECFE8FE4888F07CF28E5CD3C21E76LL_4withySo6CGSizeV_AC11MeasureInfoVtF" - } - ], - "key.typename" : "Sizing.Type", - "key.typeusr" : "$s10ListableUI6SizingOmD", - "key.usr" : "s:10ListableUI6SizingO" - }, - { - "key.annotated_decl" : "public enum Sizing : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 3459, - "key.bodyoffset" : 6285, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Controls how a header, footer, or item in a list view is sized.\n", - "key.doc.column" : 13, - "key.doc.declaration" : "public enum Sizing : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI6SizingO<\/USR>public enum Sizing : Hashable<\/Declaration>Controls how a header, footer, or item in a list view is sized.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 15, - "key.doc.name" : "Sizing", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sizing<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 3478, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "Sizing", - "key.namelength" : 6, - "key.nameoffset" : 6277, - "key.offset" : 6267, - "key.parsed_declaration" : "extension Sizing", - "key.parsed_scope.end" : 256, - "key.parsed_scope.start" : 162, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct MeasureInfo<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6290 - } - ], - "key.bodylength" : 310, - "key.bodyoffset" : 6321, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> MeasureInfo<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 335, - "key.line" : 164, - "key.modulename" : "ListableUI", - "key.name" : "MeasureInfo", - "key.namelength" : 11, - "key.nameoffset" : 6304, - "key.offset" : 6297, - "key.parsed_declaration" : "public struct MeasureInfo", - "key.parsed_scope.end" : 176, - "key.parsed_scope.start" : 164, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var sizeConstraint: CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6330 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizeConstraint<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 166, - "key.modulename" : "ListableUI", - "key.name" : "sizeConstraint", - "key.namelength" : 14, - "key.nameoffset" : 6341, - "key.offset" : 6337, - "key.parsed_declaration" : "public var sizeConstraint : CGSize", - "key.parsed_scope.end" : 166, - "key.parsed_scope.start" : 166, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGSize", - "key.typeusr" : "$sSo6CGSizeVD", - "key.usr" : "s:10ListableUI6SizingO11MeasureInfoV14sizeConstraintSo6CGSizeVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var direction: LayoutDirection<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6373 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 167, - "key.modulename" : "ListableUI", - "key.name" : "direction", - "key.namelength" : 9, - "key.nameoffset" : 6384, - "key.offset" : 6380, - "key.parsed_declaration" : "public var direction : LayoutDirection", - "key.parsed_scope.end" : 167, - "key.parsed_scope.start" : 167, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "LayoutDirection", - "key.typeusr" : "$s10ListableUI15LayoutDirectionOD", - "key.usr" : "s:10ListableUI6SizingO11MeasureInfoV9directionAA15LayoutDirectionOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(sizeConstraint: CGSize<\/Type>, direction: LayoutDirection<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6429 - } - ], - "key.bodylength" : 97, - "key.bodyoffset" : 6528, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(sizeConstraint<\/decl.var.parameter.argument_label>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 190, - "key.line" : 169, - "key.modulename" : "ListableUI", - "key.name" : "init(sizeConstraint:direction:)", - "key.namelength" : 90, - "key.nameoffset" : 6436, - "key.offset" : 6436, - "key.parsed_declaration" : "public init(\n sizeConstraint: CGSize,\n direction: LayoutDirection\n)", - "key.parsed_scope.end" : 175, - "key.parsed_scope.start" : 169, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.MeasureInfo.Type) -> (CGSize, LayoutDirection) -> Sizing.MeasureInfo", - "key.typeusr" : "$s14sizeConstraint9direction10ListableUI6SizingO11MeasureInfoVSo6CGSizeV_AC15LayoutDirectionOtcD", - "key.usr" : "s:10ListableUI6SizingO11MeasureInfoV14sizeConstraint9directionAESo6CGSizeV_AA15LayoutDirectionOtcfc" - } - ], - "key.typename" : "Sizing.MeasureInfo.Type", - "key.typeusr" : "$s10ListableUI6SizingO11MeasureInfoVmD", - "key.usr" : "s:10ListableUI6SizingO11MeasureInfoV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct Constraint : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 6994 - } - ], - "key.bodylength" : 2707, - "key.bodyoffset" : 7035, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the range of values that are acceptable for both\nthe width and the height of content within a list.\n\nUsually, for layouts like a table, only the axis that matches the current\n`LayoutDirection` will be used. Eg, if your table layout is laying out\nvertically, only the `height` axis will be used.", - "key.doc.column" : 19, - "key.doc.comment" : "Describes the range of values that are acceptable for both\nthe width and the height of content within a list.\n\nUsually, for layouts like a table, only the axis that matches the current\n`LayoutDirection` will be used. Eg, if your table layout is laying out\nvertically, only the `height` axis will be used.", - "key.doc.declaration" : "public struct Constraint : Hashable", - "key.doc.discussion" : [ - { - "Para" : "Usually, for layouts like a table, only the axis that matches the current `LayoutDirection` will be used. Eg, if your table layout is laying out vertically, only the `height` axis will be used." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "Constraint<\/Name>s:10ListableUI6SizingO10ConstraintV<\/USR>public struct Constraint : Hashable<\/Declaration>Describes the range of values that are acceptable for both the width and the height of content within a list.<\/Para><\/Abstract>Usually, for layouts like a table, only the axis that matches the current LayoutDirection<\/codeVoice> will be used. Eg, if your table layout is laying out vertically, only the height<\/codeVoice> axis will be used.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.line" : 184, - "key.doc.name" : "Constraint", - "key.doc.type" : "Class", - "key.doclength" : 348, - "key.docoffset" : 6642, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 7021 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Constraint<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2742, - "key.line" : 184, - "key.modulename" : "ListableUI", - "key.name" : "Constraint", - "key.namelength" : 10, - "key.nameoffset" : 7008, - "key.offset" : 7001, - "key.parsed_declaration" : "public struct Constraint : Hashable", - "key.parsed_scope.end" : 255, - "key.parsed_scope.start" : 184, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: Axis<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7104 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the range of acceptable width values.", - "key.doc.column" : 20, - "key.doc.comment" : "Describes the range of acceptable width values.", - "key.doc.declaration" : "public var width: Axis", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI6SizingO10ConstraintV5widthAE4AxisOvp<\/USR>public var width: Axis<\/Declaration>Describes the range of acceptable width values.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 187, - "key.doc.name" : "width", - "key.doc.type" : "Other", - "key.doclength" : 52, - "key.docoffset" : 7044, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: Axis<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 16, - "key.line" : 187, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 7115, - "key.offset" : 7111, - "key.parsed_declaration" : "public var width : Axis", - "key.parsed_scope.end" : 187, - "key.parsed_scope.start" : 187, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Sizing.Constraint.Axis", - "key.typeusr" : "$s10ListableUI6SizingO10ConstraintV4AxisOD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV5widthAE4AxisOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var height: Axis<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7206 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the range of acceptable height values.", - "key.doc.column" : 20, - "key.doc.comment" : "Describes the range of acceptable height values.", - "key.doc.declaration" : "public var height: Axis", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "height<\/Name>s:10ListableUI6SizingO10ConstraintV6heightAE4AxisOvp<\/USR>public var height: Axis<\/Declaration>Describes the range of acceptable height values.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 190, - "key.doc.name" : "height", - "key.doc.type" : "Other", - "key.doclength" : 53, - "key.docoffset" : 7145, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> height<\/decl.name>: Axis<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 17, - "key.line" : 190, - "key.modulename" : "ListableUI", - "key.name" : "height", - "key.namelength" : 6, - "key.nameoffset" : 7217, - "key.offset" : 7213, - "key.parsed_declaration" : "public var height : Axis", - "key.parsed_scope.end" : 190, - "key.parsed_scope.start" : 190, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Sizing.Constraint.Axis", - "key.typeusr" : "$s10ListableUI6SizingO10ConstraintV4AxisOD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV6heightAE4AxisOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var noConstraint: Constraint<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7318 - } - ], - "key.bodylength" : 123, - "key.bodyoffset" : 7363, - "key.column" : 27, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Applies no constraints to the measurement in either axis.", - "key.doc.column" : 27, - "key.doc.comment" : "Applies no constraints to the measurement in either axis.", - "key.doc.declaration" : "public static var noConstraint: Constraint { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "noConstraint<\/Name>s:10ListableUI6SizingO10ConstraintV02noD0AEvpZ<\/USR>public static var noConstraint: Constraint { get }<\/Declaration>Applies no constraints to the measurement in either axis.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 193, - "key.doc.name" : "noConstraint", - "key.doc.type" : "Other", - "key.doclength" : 62, - "key.docoffset" : 7248, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> noConstraint<\/decl.name>: Constraint<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 162, - "key.line" : 193, - "key.modulename" : "ListableUI", - "key.name" : "noConstraint", - "key.namelength" : 12, - "key.nameoffset" : 7336, - "key.offset" : 7325, - "key.parsed_declaration" : "public static var noConstraint : Constraint", - "key.parsed_scope.end" : 198, - "key.parsed_scope.start" : 193, - "key.reusingastcontext" : false, - "key.typename" : "Sizing.Constraint", - "key.typeusr" : "$s10ListableUI6SizingO10ConstraintVD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV02noD0AEvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(_ value: Axis<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7581 - } - ], - "key.bodylength" : 72, - "key.bodyoffset" : 7618, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new constraint with the provided value for both axes.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new constraint with the provided value for both axes.", - "key.doc.declaration" : "public init(_ value: Axis)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI6SizingO10ConstraintVyA2E4AxisOcfc<\/USR>public init(_ value: Axis)<\/Declaration>Creates a new constraint with the provided value for both axes.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 201, - "key.doc.name" : "init(_:)", - "key.doc.type" : "Function", - "key.doclength" : 68, - "key.docoffset" : 7505, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: Axis<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 103, - "key.line" : 201, - "key.modulename" : "ListableUI", - "key.name" : "init(_:)", - "key.namelength" : 20, - "key.nameoffset" : 7588, - "key.offset" : 7588, - "key.parsed_declaration" : "public init(_ value : Axis)", - "key.parsed_scope.end" : 205, - "key.parsed_scope.start" : 201, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(width:height:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Constraint.Type) -> (Sizing.Constraint.Axis) -> Sizing.Constraint", - "key.typeusr" : "$sy10ListableUI6SizingO10ConstraintVAE4AxisOcD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintVyA2E4AxisOcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(width: Axis<\/Type>, height: Axis<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 7787 - } - ], - "key.bodylength" : 73, - "key.bodyoffset" : 7863, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new constraint with the provided width and height axes.", - "key.doc.column" : 16, - "key.doc.comment" : "Creates a new constraint with the provided width and height axes.", - "key.doc.declaration" : "public init(width: Axis, height: Axis)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "init(width:height:)<\/Name>s:10ListableUI6SizingO10ConstraintV5width6heightA2E4AxisO_AItcfc<\/USR>public init(width: Axis, height: Axis)<\/Declaration>Creates a new constraint with the provided width and height axes.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 208, - "key.doc.name" : "init(width:height:)", - "key.doc.type" : "Function", - "key.doclength" : 70, - "key.docoffset" : 7709, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: Axis<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: Axis<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 143, - "key.line" : 208, - "key.modulename" : "ListableUI", - "key.name" : "init(width:height:)", - "key.namelength" : 67, - "key.nameoffset" : 7794, - "key.offset" : 7794, - "key.parsed_declaration" : "public init(\n width : Axis,\n height : Axis\n)", - "key.parsed_scope.end" : 214, - "key.parsed_scope.start" : 208, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(_:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Constraint.Type) -> (Sizing.Constraint.Axis, Sizing.Constraint.Axis) -> Sizing.Constraint", - "key.typeusr" : "$s5width6height10ListableUI6SizingO10ConstraintVAG4AxisO_AItcD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV5width6heightA2E4AxisO_AItcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func clamp(_ value: CGSize<\/Type>) -> CGSize<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8076 - } - ], - "key.bodylength" : 160, - "key.bodyoffset" : 8131, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Clamps the provided size, falling back to the provided default if the measurement calls for a default value.", - "key.doc.column" : 21, - "key.doc.comment" : "Clamps the provided size, falling back to the provided default if the measurement calls for a default value.", - "key.doc.declaration" : "public func clamp(_ value: CGSize) -> CGSize", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "clamp(_:)<\/Name>s:10ListableUI6SizingO10ConstraintV5clampySo6CGSizeVAHF<\/USR>public func clamp(_ value: CGSize) -> CGSize<\/Declaration>Clamps the provided size, falling back to the provided default if the measurement calls for a default value.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 217, - "key.doc.name" : "clamp(_:)", - "key.doc.type" : "Function", - "key.doclength" : 113, - "key.docoffset" : 7955, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> clamp<\/decl.name>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 209, - "key.line" : 217, - "key.modulename" : "ListableUI", - "key.name" : "clamp(_:)", - "key.namelength" : 23, - "key.nameoffset" : 8088, - "key.offset" : 8083, - "key.parsed_declaration" : "public func clamp(_ value : CGSize) -> CGSize", - "key.parsed_scope.end" : 223, - "key.parsed_scope.start" : 217, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Constraint) -> (CGSize) -> CGSize", - "key.typeusr" : "$sySo6CGSizeVABcD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV5clampySo6CGSizeVAHF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum Sizing<\/Type>.Constraint<\/Type>.Axis : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 8441 - } - ], - "key.bodylength" : 1258, - "key.bodyoffset" : 8478, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the range of values that are acceptable for one dimension\nin a `Constraint`, eg width or height.", - "key.doc.column" : 21, - "key.doc.comment" : "Describes the range of values that are acceptable for one dimension\nin a `Constraint`, eg width or height.", - "key.doc.declaration" : "public enum ListableUI.Sizing.Constraint.Axis : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "Axis<\/Name>s:10ListableUI6SizingO10ConstraintV4AxisO<\/USR>public enum ListableUI.Sizing.Constraint.Axis : Hashable<\/Declaration>Describes the range of values that are acceptable for one dimension in a Constraint<\/codeVoice>, eg width or height.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 227, - "key.doc.name" : "Axis", - "key.doc.type" : "Other", - "key.doclength" : 123, - "key.docoffset" : 8310, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 8460 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sizing<\/ref.enum>.Constraint<\/ref.struct>.Axis<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1289, - "key.line" : 227, - "key.modulename" : "ListableUI", - "key.name" : "Axis", - "key.namelength" : 4, - "key.nameoffset" : 8453, - "key.offset" : 8448, - "key.parsed_declaration" : "public enum Axis : Hashable", - "key.parsed_scope.end" : 254, - "key.parsed_scope.start" : 227, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 8552, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case noConstraint<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "No constraint is applied to any measurement.", - "key.doc.column" : 18, - "key.doc.comment" : "No constraint is applied to any measurement.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "noConstraint<\/Name>s:10ListableUI6SizingO10ConstraintV4AxisO02noD0yA2GmF<\/USR><\/Declaration>No constraint is applied to any measurement.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 230, - "key.doc.name" : "noConstraint", - "key.doc.type" : "Other", - "key.doclength" : 49, - "key.docoffset" : 8491, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> noConstraint<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 230, - "key.modulename" : "ListableUI", - "key.name" : "noConstraint", - "key.namelength" : 12, - "key.nameoffset" : 8557, - "key.offset" : 8557, - "key.parsed_declaration" : "case noConstraint", - "key.parsed_scope.end" : 230, - "key.parsed_scope.start" : 230, - "key.reusingastcontext" : false, - "key.typename" : "(Sizing.Constraint.Axis.Type) -> Sizing.Constraint.Axis", - "key.typeusr" : "$sy10ListableUI6SizingO10ConstraintV4AxisOAGmcD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV4AxisO02noD0yA2GmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 21, - "key.offset" : 8757, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case atLeast(CGFloat<\/Type>)<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Any returned measurement must be at least this value. If it is smaller than\nthis value, then this value will be returned instead.", - "key.doc.column" : 18, - "key.doc.comment" : "Any returned measurement must be at least this value. If it is smaller than\nthis value, then this value will be returned instead.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "atLeast(_:)<\/Name>s:10ListableUI6SizingO10ConstraintV4AxisO7atLeastyAG14CoreFoundation7CGFloatVcAGmF<\/USR><\/Declaration>Any returned measurement must be at least this value. If it is smaller than this value, then this value will be returned instead.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 234, - "key.doc.name" : "atLeast(_:)", - "key.doc.type" : "Other", - "key.doclength" : 150, - "key.docoffset" : 8595, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> atLeast<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 16, - "key.line" : 234, - "key.modulename" : "ListableUI", - "key.name" : "atLeast(_:)", - "key.namelength" : 16, - "key.nameoffset" : 8762, - "key.offset" : 8762, - "key.parsed_declaration" : "case atLeast(CGFloat)", - "key.parsed_scope.end" : 234, - "key.parsed_scope.start" : 234, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Constraint.Axis.Type) -> (CGFloat) -> Sizing.Constraint.Axis", - "key.typeusr" : "$sy10ListableUI6SizingO10ConstraintV4AxisO14CoreFoundation7CGFloatVcAGmcD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV4AxisO7atLeastyAG14CoreFoundation7CGFloatVcAGmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 20, - "key.offset" : 8959, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case atMost(CGFloat<\/Type>)<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Any returned measurement can be at least this large. If it is larger than\nthis value, then this value is returned instead.", - "key.doc.column" : 18, - "key.doc.comment" : "Any returned measurement can be at least this large. If it is larger than\nthis value, then this value is returned instead.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "atMost(_:)<\/Name>s:10ListableUI6SizingO10ConstraintV4AxisO6atMostyAG14CoreFoundation7CGFloatVcAGmF<\/USR><\/Declaration>Any returned measurement can be at least this large. If it is larger than this value, then this value is returned instead.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 238, - "key.doc.name" : "atMost(_:)", - "key.doc.type" : "Other", - "key.doclength" : 143, - "key.docoffset" : 8804, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> atMost<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 15, - "key.line" : 238, - "key.modulename" : "ListableUI", - "key.name" : "atMost(_:)", - "key.namelength" : 15, - "key.nameoffset" : 8964, - "key.offset" : 8964, - "key.parsed_declaration" : "case atMost(CGFloat)", - "key.parsed_scope.end" : 238, - "key.parsed_scope.start" : 238, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Constraint.Axis.Type) -> (CGFloat) -> Sizing.Constraint.Axis", - "key.typeusr" : "$sy10ListableUI6SizingO10ConstraintV4AxisO14CoreFoundation7CGFloatVcAGmcD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV4AxisO6atMostyAG14CoreFoundation7CGFloatVcAGmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 29, - "key.offset" : 9187, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case within(CGFloat<\/Type>, CGFloat<\/Type>)<\/Declaration>", - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Any returned measurement must be within the provided range. If it is smaller\nor larger than the provided range, the range is used to clamp the value.", - "key.doc.column" : 18, - "key.doc.comment" : "Any returned measurement must be within the provided range. If it is smaller\nor larger than the provided range, the range is used to clamp the value.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "within(_:_:)<\/Name>s:10ListableUI6SizingO10ConstraintV4AxisO6withinyAG14CoreFoundation7CGFloatV_AKtcAGmF<\/USR><\/Declaration>Any returned measurement must be within the provided range. If it is smaller or larger than the provided range, the range is used to clamp the value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 242, - "key.doc.name" : "within(_:_:)", - "key.doc.type" : "Other", - "key.doclength" : 170, - "key.docoffset" : 9005, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> within<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 24, - "key.line" : 242, - "key.modulename" : "ListableUI", - "key.name" : "within(_:_:)", - "key.namelength" : 24, - "key.nameoffset" : 9192, - "key.offset" : 9192, - "key.parsed_declaration" : "case within(CGFloat, CGFloat)", - "key.parsed_scope.end" : 242, - "key.parsed_scope.start" : 242, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Constraint.Axis.Type) -> (CGFloat, CGFloat) -> Sizing.Constraint.Axis", - "key.typeusr" : "$sy10ListableUI6SizingO10ConstraintV4AxisO14CoreFoundation7CGFloatV_AJtcAGmcD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV4AxisO6withinyAG14CoreFoundation7CGFloatV_AKtcAGmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func clamp(_ value: CGFloat<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9317 - } - ], - "key.bodylength" : 348, - "key.bodyoffset" : 9378, - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Clamps the provided value by the `Axis'` underlying value.", - "key.doc.column" : 25, - "key.doc.comment" : "Clamps the provided value by the `Axis'` underlying value.", - "key.doc.declaration" : "public func clamp(_ value: CGFloat) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "clamp(_:)<\/Name>s:10ListableUI6SizingO10ConstraintV4AxisO5clampy14CoreFoundation7CGFloatVAKF<\/USR>public func clamp(_ value: CGFloat) -> CGFloat<\/Declaration>Clamps the provided value by the Axis'<\/codeVoice> underlying value.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 245, - "key.doc.name" : "clamp(_:)", - "key.doc.type" : "Function", - "key.doclength" : 63, - "key.docoffset" : 9242, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> clamp<\/decl.name>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 403, - "key.line" : 245, - "key.modulename" : "ListableUI", - "key.name" : "clamp(_:)", - "key.namelength" : 24, - "key.nameoffset" : 9329, - "key.offset" : 9324, - "key.parsed_declaration" : "public func clamp(_ value : CGFloat) -> CGFloat", - "key.parsed_scope.end" : 253, - "key.parsed_scope.start" : 245, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(Sizing.Constraint.Axis) -> (CGFloat) -> CGFloat", - "key.typeusr" : "$sy14CoreFoundation7CGFloatVACcD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV4AxisO5clampy14CoreFoundation7CGFloatVAKF" - } - ], - "key.typename" : "Sizing.Constraint.Axis.Type", - "key.typeusr" : "$s10ListableUI6SizingO10ConstraintV4AxisOmD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV4AxisO" - } - ], - "key.typename" : "Sizing.Constraint.Type", - "key.typeusr" : "$s10ListableUI6SizingO10ConstraintVmD", - "key.usr" : "s:10ListableUI6SizingO10ConstraintV" - } - ], - "key.typename" : "Sizing.Type", - "key.typeusr" : "$s10ListableUI6SizingOmD", - "key.usr" : "s:10ListableUI6SizingO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum WidthConstraint : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 9806 - } - ], - "key.bodylength" : 591, - "key.bodyoffset" : 9847, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the range of acceptable values for a width.", - "key.doc.column" : 13, - "key.doc.comment" : "Describes the range of acceptable values for a width.", - "key.doc.declaration" : "public enum WidthConstraint : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "WidthConstraint<\/Name>s:10ListableUI15WidthConstraintO<\/USR>public enum WidthConstraint : Equatable<\/Declaration>Describes the range of acceptable values for a width.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 260, - "key.doc.name" : "WidthConstraint", - "key.doc.type" : "Other", - "key.doclength" : 58, - "key.docoffset" : 9748, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 9836 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> WidthConstraint<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 626, - "key.line" : 260, - "key.modulename" : "ListableUI", - "key.name" : "WidthConstraint", - "key.namelength" : 15, - "key.nameoffset" : 9818, - "key.offset" : 9813, - "key.parsed_declaration" : "public enum WidthConstraint : Equatable", - "key.parsed_scope.end" : 280, - "key.parsed_scope.start" : 260, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 9921, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case noConstraint<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "There is no limit to a width, it can be as wide as possible.", - "key.doc.column" : 10, - "key.doc.comment" : "There is no limit to a width, it can be as wide as possible.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "noConstraint<\/Name>s:10ListableUI15WidthConstraintO02noD0yA2CmF<\/USR><\/Declaration>There is no limit to a width, it can be as wide as possible.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 263, - "key.doc.name" : "noConstraint", - "key.doc.type" : "Other", - "key.doclength" : 65, - "key.docoffset" : 9852, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> noConstraint<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 263, - "key.modulename" : "ListableUI", - "key.name" : "noConstraint", - "key.namelength" : 12, - "key.nameoffset" : 9926, - "key.offset" : 9926, - "key.parsed_declaration" : "case noConstraint", - "key.parsed_scope.end" : 263, - "key.parsed_scope.start" : 263, - "key.reusingastcontext" : false, - "key.typename" : "(WidthConstraint.Type) -> WidthConstraint", - "key.typeusr" : "$sy10ListableUI15WidthConstraintOACmcD", - "key.usr" : "s:10ListableUI15WidthConstraintO02noD0yA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 9994, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fixed(CGFloat<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The width must be exactly this value.", - "key.doc.column" : 10, - "key.doc.comment" : "The width must be exactly this value.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "fixed(_:)<\/Name>s:10ListableUI15WidthConstraintO5fixedyAC14CoreFoundation7CGFloatVcACmF<\/USR><\/Declaration>The width must be exactly this value.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 266, - "key.doc.name" : "fixed(_:)", - "key.doc.type" : "Other", - "key.doclength" : 42, - "key.docoffset" : 9948, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 266, - "key.modulename" : "ListableUI", - "key.name" : "fixed(_:)", - "key.namelength" : 14, - "key.nameoffset" : 9999, - "key.offset" : 9999, - "key.parsed_declaration" : "case fixed(CGFloat)", - "key.parsed_scope.end" : 266, - "key.parsed_scope.start" : 266, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(WidthConstraint.Type) -> (CGFloat) -> WidthConstraint", - "key.typeusr" : "$sy10ListableUI15WidthConstraintO14CoreFoundation7CGFloatVcACmcD", - "key.usr" : "s:10ListableUI15WidthConstraintO5fixedyAC14CoreFoundation7CGFloatVcACmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 20, - "key.offset" : 10103, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case atMost(CGFloat<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The width can be at most, this value. Any value larger will be clamped.", - "key.doc.column" : 10, - "key.doc.comment" : "The width can be at most, this value. Any value larger will be clamped.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "atMost(_:)<\/Name>s:10ListableUI15WidthConstraintO6atMostyAC14CoreFoundation7CGFloatVcACmF<\/USR><\/Declaration>The width can be at most, this value. Any value larger will be clamped.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 269, - "key.doc.name" : "atMost(_:)", - "key.doc.type" : "Other", - "key.doclength" : 76, - "key.docoffset" : 10023, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> atMost<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 15, - "key.line" : 269, - "key.modulename" : "ListableUI", - "key.name" : "atMost(_:)", - "key.namelength" : 15, - "key.nameoffset" : 10108, - "key.offset" : 10108, - "key.parsed_declaration" : "case atMost(CGFloat)", - "key.parsed_scope.end" : 269, - "key.parsed_scope.start" : 269, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(WidthConstraint.Type) -> (CGFloat) -> WidthConstraint", - "key.typeusr" : "$sy10ListableUI15WidthConstraintO14CoreFoundation7CGFloatVcACmcD", - "key.usr" : "s:10ListableUI15WidthConstraintO6atMostyAC14CoreFoundation7CGFloatVcACmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func clamp(_ value: CGFloat<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10198 - } - ], - "key.bodylength" : 185, - "key.bodyoffset" : 10251, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Clamps the provided value based on our underlying value.", - "key.doc.column" : 17, - "key.doc.comment" : "Clamps the provided value based on our underlying value.", - "key.doc.declaration" : "public func clamp(_ value: CGFloat) -> CGFloat", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "clamp(_:)<\/Name>s:10ListableUI15WidthConstraintO5clampy14CoreFoundation7CGFloatVAGF<\/USR>public func clamp(_ value: CGFloat) -> CGFloat<\/Declaration>Clamps the provided value based on our underlying value.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 272, - "key.doc.name" : "clamp(_:)", - "key.doc.type" : "Function", - "key.doclength" : 61, - "key.docoffset" : 10133, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> clamp<\/decl.name>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 232, - "key.line" : 272, - "key.modulename" : "ListableUI", - "key.name" : "clamp(_:)", - "key.namelength" : 24, - "key.nameoffset" : 10210, - "key.offset" : 10205, - "key.parsed_declaration" : "public func clamp(_ value : CGFloat) -> CGFloat", - "key.parsed_scope.end" : 279, - "key.parsed_scope.start" : 272, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(WidthConstraint) -> (CGFloat) -> CGFloat", - "key.typeusr" : "$sy14CoreFoundation7CGFloatVACcD", - "key.usr" : "s:10ListableUI15WidthConstraintO5clampy14CoreFoundation7CGFloatVAGF" - } - ], - "key.typename" : "WidthConstraint.Type", - "key.typeusr" : "$s10ListableUI15WidthConstraintOmD", - "key.usr" : "s:10ListableUI15WidthConstraintO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum CustomWidth : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10504 - } - ], - "key.bodylength" : 2956, - "key.bodyoffset" : 10541, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Specifies a custom width for an item or header in a list.", - "key.doc.column" : 13, - "key.doc.comment" : "Specifies a custom width for an item or header in a list.", - "key.doc.declaration" : "public enum CustomWidth : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "CustomWidth<\/Name>s:10ListableUI11CustomWidthO<\/USR>public enum CustomWidth : Equatable<\/Declaration>Specifies a custom width for an item or header in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 284, - "key.doc.name" : "CustomWidth", - "key.doc.type" : "Other", - "key.doclength" : 62, - "key.docoffset" : 10442, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 10530 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> CustomWidth<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 2987, - "key.line" : 284, - "key.modulename" : "ListableUI", - "key.name" : "CustomWidth", - "key.namelength" : 11, - "key.nameoffset" : 10516, - "key.offset" : 10511, - "key.parsed_declaration" : "public enum CustomWidth : Equatable", - "key.parsed_scope.end" : 392, - "key.parsed_scope.start" : 284, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 14, - "key.offset" : 10597, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case `default`<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The default width from the layout is used.", - "key.doc.column" : 10, - "key.doc.comment" : "The default width from the layout is used.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI11CustomWidthO7defaultyA2CmF<\/USR><\/Declaration>The default width from the layout is used.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 287, - "key.doc.name" : "default", - "key.doc.type" : "Other", - "key.doclength" : 47, - "key.docoffset" : 10546, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> `default`<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 9, - "key.line" : 287, - "key.modulename" : "ListableUI", - "key.name" : "default", - "key.namelength" : 7, - "key.nameoffset" : 10602, - "key.offset" : 10602, - "key.parsed_declaration" : "case `default`", - "key.parsed_scope.end" : 287, - "key.parsed_scope.start" : 287, - "key.reusingastcontext" : false, - "key.typename" : "(CustomWidth.Type) -> CustomWidth", - "key.typeusr" : "$sy10ListableUI11CustomWidthOACmcD", - "key.usr" : "s:10ListableUI11CustomWidthO7defaultyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 10670, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case fill<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The width will fill all available space.", - "key.doc.column" : 10, - "key.doc.comment" : "The width will fill all available space.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "fill<\/Name>s:10ListableUI11CustomWidthO4fillyA2CmF<\/USR><\/Declaration>The width will fill all available space.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 290, - "key.doc.name" : "fill", - "key.doc.type" : "Other", - "key.doclength" : 45, - "key.docoffset" : 10621, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fill<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 290, - "key.modulename" : "ListableUI", - "key.name" : "fill", - "key.namelength" : 4, - "key.nameoffset" : 10675, - "key.offset" : 10675, - "key.parsed_declaration" : "case fill", - "key.parsed_scope.end" : 290, - "key.parsed_scope.start" : 290, - "key.reusingastcontext" : false, - "key.typename" : "(CustomWidth.Type) -> CustomWidth", - "key.typeusr" : "$sy10ListableUI11CustomWidthOACmcD", - "key.usr" : "s:10ListableUI11CustomWidthO4fillyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 10730, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case custom(Custom<\/Type>)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A custom width and\/or alignment.", - "key.doc.column" : 10, - "key.doc.comment" : "A custom width and\/or alignment.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.doc.full_as_xml" : "custom(_:)<\/Name>s:10ListableUI11CustomWidthO6customyA2C0C0VcACmF<\/USR><\/Declaration>A custom width and\/or alignment.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 293, - "key.doc.name" : "custom(_:)", - "key.doc.type" : "Other", - "key.doclength" : 37, - "key.docoffset" : 10689, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> custom<\/decl.name>(Custom<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 293, - "key.modulename" : "ListableUI", - "key.name" : "custom(_:)", - "key.namelength" : 14, - "key.nameoffset" : 10735, - "key.offset" : 10735, - "key.parsed_declaration" : "case custom(Custom)", - "key.parsed_scope.end" : 293, - "key.parsed_scope.start" : 293, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CustomWidth.Type) -> (CustomWidth.Custom) -> CustomWidth", - "key.typeusr" : "$sy10ListableUI11CustomWidthOAC0C0VcACmcD", - "key.usr" : "s:10ListableUI11CustomWidthO6customyA2C0C0VcACmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func merge(with parent: CustomWidth<\/Type>) -> CustomWidth<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10759 - } - ], - "key.bodylength" : 143, - "key.bodyoffset" : 10824, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> merge<\/decl.name>(with<\/decl.var.parameter.argument_label> parent<\/decl.var.parameter.name>: CustomWidth<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CustomWidth<\/ref.enum><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 202, - "key.line" : 295, - "key.modulename" : "ListableUI", - "key.name" : "merge(with:)", - "key.namelength" : 32, - "key.nameoffset" : 10771, - "key.offset" : 10766, - "key.parsed_declaration" : "public func merge(with parent : CustomWidth) -> CustomWidth", - "key.parsed_scope.end" : 302, - "key.parsed_scope.start" : 295, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CustomWidth) -> (CustomWidth) -> CustomWidth", - "key.typeusr" : "$s4with10ListableUI11CustomWidthOAD_tcD", - "key.usr" : "s:10ListableUI11CustomWidthO5merge4withA2C_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func position(with viewWidth: CGFloat<\/Type>, defaultWidth: CGFloat<\/Type>) -> Position<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 10978 - } - ], - "key.bodylength" : 471, - "key.bodyoffset" : 11066, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> position<\/decl.name>(with<\/decl.var.parameter.argument_label> viewWidth<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, defaultWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Position<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 553, - "key.line" : 304, - "key.modulename" : "ListableUI", - "key.name" : "position(with:defaultWidth:)", - "key.namelength" : 58, - "key.nameoffset" : 10990, - "key.offset" : 10985, - "key.parsed_declaration" : "public func position(with viewWidth : CGFloat, defaultWidth : CGFloat) -> Position", - "key.parsed_scope.end" : 324, - "key.parsed_scope.start" : 304, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CustomWidth) -> (CGFloat, CGFloat) -> CustomWidth.Position", - "key.typeusr" : "$s4with12defaultWidth10ListableUI06CustomC0O8PositionV14CoreFoundation7CGFloatV_AJtcD", - "key.usr" : "s:10ListableUI11CustomWidthO8position4with07defaultD0AC8PositionV14CoreFoundation7CGFloatV_AKtF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct CustomWidth<\/Type>.Custom : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11548 - } - ], - "key.bodylength" : 997, - "key.bodyoffset" : 11586, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 11571 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> CustomWidth<\/ref.enum>.Custom<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1029, - "key.line" : 326, - "key.modulename" : "ListableUI", - "key.name" : "Custom", - "key.namelength" : 6, - "key.nameoffset" : 11562, - "key.offset" : 11555, - "key.parsed_declaration" : "public struct Custom : Equatable", - "key.parsed_scope.end" : 360, - "key.parsed_scope.start" : 326, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var padding: HorizontalPadding<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11595 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> padding<\/decl.name>: HorizontalPadding<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 328, - "key.modulename" : "ListableUI", - "key.name" : "padding", - "key.namelength" : 7, - "key.nameoffset" : 11606, - "key.offset" : 11602, - "key.parsed_declaration" : "public var padding : HorizontalPadding", - "key.parsed_scope.end" : 328, - "key.parsed_scope.start" : 328, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "HorizontalPadding", - "key.typeusr" : "$s10ListableUI17HorizontalPaddingVD", - "key.usr" : "s:10ListableUI11CustomWidthO0C0V7paddingAA17HorizontalPaddingVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: WidthConstraint<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11642 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: WidthConstraint<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 329, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 11653, - "key.offset" : 11649, - "key.parsed_declaration" : "public var width : WidthConstraint", - "key.parsed_scope.end" : 329, - "key.parsed_scope.start" : 329, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "WidthConstraint", - "key.typeusr" : "$s10ListableUI15WidthConstraintOD", - "key.usr" : "s:10ListableUI11CustomWidthO0C0V5widthAA0D10ConstraintOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var alignment: Alignment<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11685 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alignment<\/decl.name>: Alignment<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 25, - "key.line" : 330, - "key.modulename" : "ListableUI", - "key.name" : "alignment", - "key.namelength" : 9, - "key.nameoffset" : 11696, - "key.offset" : 11692, - "key.parsed_declaration" : "public var alignment : Alignment", - "key.parsed_scope.end" : 330, - "key.parsed_scope.start" : 330, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CustomWidth.Alignment", - "key.typeusr" : "$s10ListableUI11CustomWidthO9AlignmentOD", - "key.usr" : "s:10ListableUI11CustomWidthO0C0V9alignmentAC9AlignmentOvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(padding: HorizontalPadding<\/Type> = .zero, width: WidthConstraint<\/Type> = .noConstraint, alignment: Alignment<\/Type> = .center)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 11735 - } - ], - "key.bodylength" : 114, - "key.bodyoffset" : 11913, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(padding<\/decl.var.parameter.argument_label>: HorizontalPadding<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>, alignment<\/decl.var.parameter.argument_label>: Alignment<\/ref.enum><\/decl.var.parameter.type> = .center<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 286, - "key.line" : 332, - "key.modulename" : "ListableUI", - "key.name" : "init(padding:width:alignment:)", - "key.namelength" : 161, - "key.nameoffset" : 11742, - "key.offset" : 11742, - "key.parsed_declaration" : "public init(\n padding : HorizontalPadding = .zero,\n width : WidthConstraint = .noConstraint,\n alignment : Alignment = .center\n)", - "key.parsed_scope.end" : 341, - "key.parsed_scope.start" : 332, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CustomWidth.Custom.Type) -> (HorizontalPadding, WidthConstraint, CustomWidth.Alignment) -> CustomWidth.Custom", - "key.typeusr" : "$s7padding5width9alignment10ListableUI11CustomWidthO0F0VAD17HorizontalPaddingV_AD0G10ConstraintOAF9AlignmentOtcD", - "key.usr" : "s:10ListableUI11CustomWidthO0C0V7padding5width9alignmentAeA17HorizontalPaddingV_AA0D10ConstraintOAC9AlignmentOtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func position(with viewWidth: CGFloat<\/Type>) -> Position<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12046 - } - ], - "key.bodylength" : 463, - "key.bodyoffset" : 12114, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> position<\/decl.name>(with<\/decl.var.parameter.argument_label> viewWidth<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Position<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 525, - "key.line" : 343, - "key.modulename" : "ListableUI", - "key.name" : "position(with:)", - "key.namelength" : 34, - "key.nameoffset" : 12058, - "key.offset" : 12053, - "key.parsed_declaration" : "public func position(with viewWidth : CGFloat) -> Position", - "key.parsed_scope.end" : 359, - "key.parsed_scope.start" : 343, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let width: CGFloat<\/Type><\/Declaration>", - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 166, - "key.line" : 345, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 12131, - "key.offset" : 12127, - "key.parsed_declaration" : "let width = TableAppearance.Layout.width(\n with: viewWidth,\n padding: self.padding,\n constraint: self.width\n)", - "key.parsed_scope.end" : 345, - "key.parsed_scope.start" : 345, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI11CustomWidthO0C0V8position4withAC8PositionV14CoreFoundation7CGFloatV_tF5widthL_ALvp" - } - ], - "key.typename" : "(CustomWidth.Custom) -> (CGFloat) -> CustomWidth.Position", - "key.typeusr" : "$s4with10ListableUI11CustomWidthO8PositionV14CoreFoundation7CGFloatV_tcD", - "key.usr" : "s:10ListableUI11CustomWidthO0C0V8position4withAC8PositionV14CoreFoundation7CGFloatV_tF" - } - ], - "key.typename" : "CustomWidth.Custom.Type", - "key.typeusr" : "$s10ListableUI11CustomWidthO0C0VmD", - "key.usr" : "s:10ListableUI11CustomWidthO0C0V" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum CustomWidth<\/Type>.Alignment : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12594 - } - ], - "key.bodylength" : 597, - "key.bodyoffset" : 12633, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 12618 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> CustomWidth<\/ref.enum>.Alignment<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 630, - "key.line" : 362, - "key.modulename" : "ListableUI", - "key.name" : "Alignment", - "key.namelength" : 9, - "key.nameoffset" : 12606, - "key.offset" : 12601, - "key.parsed_declaration" : "public enum Alignment : Equatable", - "key.parsed_scope.end" : 380, - "key.parsed_scope.start" : 362, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 12642, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case leading<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> leading<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 364, - "key.modulename" : "ListableUI", - "key.name" : "leading", - "key.namelength" : 7, - "key.nameoffset" : 12647, - "key.offset" : 12647, - "key.parsed_declaration" : "case leading", - "key.parsed_scope.end" : 364, - "key.parsed_scope.start" : 364, - "key.reusingastcontext" : false, - "key.typename" : "(CustomWidth.Alignment.Type) -> CustomWidth.Alignment", - "key.typeusr" : "$sy10ListableUI11CustomWidthO9AlignmentOAEmcD", - "key.usr" : "s:10ListableUI11CustomWidthO9AlignmentO7leadingyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 12663, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case center<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> center<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 365, - "key.modulename" : "ListableUI", - "key.name" : "center", - "key.namelength" : 6, - "key.nameoffset" : 12668, - "key.offset" : 12668, - "key.parsed_declaration" : "case center", - "key.parsed_scope.end" : 365, - "key.parsed_scope.start" : 365, - "key.reusingastcontext" : false, - "key.typename" : "(CustomWidth.Alignment.Type) -> CustomWidth.Alignment", - "key.typeusr" : "$sy10ListableUI11CustomWidthO9AlignmentOAEmcD", - "key.usr" : "s:10ListableUI11CustomWidthO9AlignmentO6centeryA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 12683, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case trailing<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> trailing<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 366, - "key.modulename" : "ListableUI", - "key.name" : "trailing", - "key.namelength" : 8, - "key.nameoffset" : 12688, - "key.offset" : 12688, - "key.parsed_declaration" : "case trailing", - "key.parsed_scope.end" : 366, - "key.parsed_scope.start" : 366, - "key.reusingastcontext" : false, - "key.typename" : "(CustomWidth.Alignment.Type) -> CustomWidth.Alignment", - "key.typeusr" : "$sy10ListableUI11CustomWidthO9AlignmentOAEmcD", - "key.usr" : "s:10ListableUI11CustomWidthO9AlignmentO8trailingyA2EmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func originWith(parentWidth: CGFloat<\/Type>, width: CGFloat<\/Type>, padding: HorizontalPadding<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 12714 - } - ], - "key.bodylength" : 398, - "key.bodyoffset" : 12826, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> originWith<\/decl.name>(parentWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, padding<\/decl.var.parameter.argument_label>: HorizontalPadding<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 504, - "key.line" : 368, - "key.modulename" : "ListableUI", - "key.name" : "originWith(parentWidth:width:padding:)", - "key.namelength" : 79, - "key.nameoffset" : 12726, - "key.offset" : 12721, - "key.parsed_declaration" : "public func originWith(parentWidth : CGFloat, width : CGFloat, padding : HorizontalPadding) -> CGFloat", - "key.parsed_scope.end" : 379, - "key.parsed_scope.start" : 368, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CustomWidth.Alignment) -> (CGFloat, CGFloat, HorizontalPadding) -> CGFloat", - "key.typeusr" : "$s11parentWidth5width7padding14CoreFoundation7CGFloatVAF_AF10ListableUI17HorizontalPaddingVtcD", - "key.usr" : "s:10ListableUI11CustomWidthO9AlignmentO10originWith06parentD05width7padding14CoreFoundation7CGFloatVAL_AlA17HorizontalPaddingVtF" - } - ], - "key.typename" : "CustomWidth.Alignment.Type", - "key.typeusr" : "$s10ListableUI11CustomWidthO9AlignmentOmD", - "key.usr" : "s:10ListableUI11CustomWidthO9AlignmentO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct CustomWidth<\/Type>.Position : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13241 - } - ], - "key.bodylength" : 214, - "key.bodyoffset" : 13281, - "key.column" : 19, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 13266 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> CustomWidth<\/ref.enum>.Position<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 248, - "key.line" : 382, - "key.modulename" : "ListableUI", - "key.name" : "Position", - "key.namelength" : 8, - "key.nameoffset" : 13255, - "key.offset" : 13248, - "key.parsed_declaration" : "public struct Position : Equatable", - "key.parsed_scope.end" : 391, - "key.parsed_scope.start" : 382, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var origin: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13290 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> origin<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 20, - "key.line" : 384, - "key.modulename" : "ListableUI", - "key.name" : "origin", - "key.namelength" : 6, - "key.nameoffset" : 13301, - "key.offset" : 13297, - "key.parsed_declaration" : "public var origin : CGFloat", - "key.parsed_scope.end" : 384, - "key.parsed_scope.start" : 384, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI11CustomWidthO8PositionV6origin14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var width: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13326 - } - ], - "key.column" : 20, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 385, - "key.modulename" : "ListableUI", - "key.name" : "width", - "key.namelength" : 5, - "key.nameoffset" : 13337, - "key.offset" : 13333, - "key.parsed_declaration" : "public var width : CGFloat", - "key.parsed_scope.end" : 385, - "key.parsed_scope.start" : 385, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI11CustomWidthO8PositionV5width14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(origin: CGFloat<\/Type>, width: CGFloat<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13370 - } - ], - "key.bodylength" : 73, - "key.bodyoffset" : 13416, - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(origin<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 113, - "key.line" : 387, - "key.modulename" : "ListableUI", - "key.name" : "init(origin:width:)", - "key.namelength" : 37, - "key.nameoffset" : 13377, - "key.offset" : 13377, - "key.parsed_declaration" : "public init(origin: CGFloat, width: CGFloat)", - "key.parsed_scope.end" : 390, - "key.parsed_scope.start" : 387, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(CustomWidth.Position.Type) -> (CGFloat, CGFloat) -> CustomWidth.Position", - "key.typeusr" : "$s6origin5width10ListableUI11CustomWidthO8PositionV14CoreFoundation7CGFloatV_AJtcD", - "key.usr" : "s:10ListableUI11CustomWidthO8PositionV6origin5widthAE14CoreFoundation7CGFloatV_AJtcfc" - } - ], - "key.typename" : "CustomWidth.Position.Type", - "key.typeusr" : "$s10ListableUI11CustomWidthO8PositionVmD", - "key.usr" : "s:10ListableUI11CustomWidthO8PositionV" - } - ], - "key.typename" : "CustomWidth.Type", - "key.typeusr" : "$s10ListableUI11CustomWidthOmD", - "key.usr" : "s:10ListableUI11CustomWidthO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct HorizontalPadding : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13501 - } - ], - "key.bodylength" : 444, - "key.bodyoffset" : 13546, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 13535 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HorizontalPadding<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 483, - "key.line" : 395, - "key.modulename" : "ListableUI", - "key.name" : "HorizontalPadding", - "key.namelength" : 17, - "key.nameoffset" : 13515, - "key.offset" : 13508, - "key.parsed_declaration" : "public struct HorizontalPadding : Equatable", - "key.parsed_scope.end" : 415, - "key.parsed_scope.start" : 395, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var leading: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13551 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> leading<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 21, - "key.line" : 397, - "key.modulename" : "ListableUI", - "key.name" : "leading", - "key.namelength" : 7, - "key.nameoffset" : 13562, - "key.offset" : 13558, - "key.parsed_declaration" : "public var leading : CGFloat", - "key.parsed_scope.end" : 397, - "key.parsed_scope.start" : 397, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI17HorizontalPaddingV7leading14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var trailing: CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13584 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> trailing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 398, - "key.modulename" : "ListableUI", - "key.name" : "trailing", - "key.namelength" : 8, - "key.nameoffset" : 13595, - "key.offset" : 13591, - "key.parsed_declaration" : "public var trailing : CGFloat", - "key.parsed_scope.end" : 398, - "key.parsed_scope.start" : 398, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI17HorizontalPaddingV8trailing14CoreFoundation7CGFloatVvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var zero: HorizontalPadding<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13623 - } - ], - "key.bodylength" : 52, - "key.bodyoffset" : 13667, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> zero<\/decl.name>: HorizontalPadding<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 90, - "key.line" : 400, - "key.modulename" : "ListableUI", - "key.name" : "zero", - "key.namelength" : 4, - "key.nameoffset" : 13641, - "key.offset" : 13630, - "key.parsed_declaration" : "public static var zero : HorizontalPadding", - "key.parsed_scope.end" : 402, - "key.parsed_scope.start" : 400, - "key.reusingastcontext" : false, - "key.typename" : "HorizontalPadding", - "key.typeusr" : "$s10ListableUI17HorizontalPaddingVD", - "key.usr" : "s:10ListableUI17HorizontalPaddingV4zeroACvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(leading: CGFloat<\/Type> = 0.0, trailing: CGFloat<\/Type> = 0.0)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13730 - } - ], - "key.bodylength" : 69, - "key.bodyoffset" : 13798, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(leading<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, trailing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 131, - "key.line" : 404, - "key.modulename" : "ListableUI", - "key.name" : "init(leading:trailing:)", - "key.namelength" : 55, - "key.nameoffset" : 13737, - "key.offset" : 13737, - "key.parsed_declaration" : "public init(leading : CGFloat = 0.0, trailing : CGFloat = 0.0)", - "key.parsed_scope.end" : 408, - "key.parsed_scope.start" : 404, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(uniform:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(HorizontalPadding.Type) -> (CGFloat, CGFloat) -> HorizontalPadding", - "key.typeusr" : "$s7leading8trailing10ListableUI17HorizontalPaddingV14CoreFoundation7CGFloatV_AHtcD", - "key.usr" : "s:10ListableUI17HorizontalPaddingV7leading8trailingAC14CoreFoundation7CGFloatV_AHtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(uniform: CGFloat<\/Type> = 0.0)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 13878 - } - ], - "key.bodylength" : 68, - "key.bodyoffset" : 13920, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/Sizing.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(uniform<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 104, - "key.line" : 410, - "key.modulename" : "ListableUI", - "key.name" : "init(uniform:)", - "key.namelength" : 29, - "key.nameoffset" : 13885, - "key.offset" : 13885, - "key.parsed_declaration" : "public init(uniform : CGFloat = 0.0)", - "key.parsed_scope.end" : 414, - "key.parsed_scope.start" : 410, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(leading:trailing:)<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(HorizontalPadding.Type) -> (CGFloat) -> HorizontalPadding", - "key.typeusr" : "$s7uniform10ListableUI17HorizontalPaddingV14CoreFoundation7CGFloatV_tcD", - "key.usr" : "s:10ListableUI17HorizontalPaddingV7uniformAC14CoreFoundation7CGFloatV_tcfc" - } - ], - "key.typename" : "HorizontalPadding.Type", - "key.typeusr" : "$s10ListableUI17HorizontalPaddingVmD", - "key.usr" : "s:10ListableUI17HorizontalPaddingV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3893, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct SwipeActionsConfiguration<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 263 - } - ], - "key.bodylength" : 1167, - "key.bodyoffset" : 304, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Use SwipeActionsConfiguration to configure an item with SwipeActions.\nThese are actions that are revealed when swiping on the cell.", - "key.doc.column" : 15, - "key.doc.comment" : "Use SwipeActionsConfiguration to configure an item with SwipeActions.\nThese are actions that are revealed when swiping on the cell.", - "key.doc.declaration" : "public struct SwipeActionsConfiguration", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "SwipeActionsConfiguration<\/Name>s:10ListableUI25SwipeActionsConfigurationV<\/USR>public struct SwipeActionsConfiguration<\/Declaration>Use SwipeActionsConfiguration to configure an item with SwipeActions. These are actions that are revealed when swiping on the cell.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 14, - "key.doc.name" : "SwipeActionsConfiguration", - "key.doc.type" : "Class", - "key.doclength" : 140, - "key.docoffset" : 123, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SwipeActionsConfiguration<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1202, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "SwipeActionsConfiguration", - "key.namelength" : 25, - "key.nameoffset" : 277, - "key.offset" : 270, - "key.parsed_declaration" : "public struct SwipeActionsConfiguration", - "key.parsed_scope.end" : 48, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var actions: [SwipeAction<\/Type>]<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 366 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The actions to display when the cell is swiped.", - "key.doc.column" : 16, - "key.doc.comment" : "The actions to display when the cell is swiped.", - "key.doc.declaration" : "public var actions: [SwipeAction]", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI25SwipeActionsConfigurationV7actionsSayAA0C6ActionVGvp<\/USR>public var actions: [SwipeAction]<\/Declaration>The actions to display when the cell is swiped.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "actions", - "key.doc.type" : "Other", - "key.doclength" : 52, - "key.docoffset" : 310, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> actions<\/decl.name>: [SwipeAction<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 27, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "actions", - "key.namelength" : 7, - "key.nameoffset" : 377, - "key.offset" : 373, - "key.parsed_declaration" : "public var actions : [SwipeAction]", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "[SwipeAction]", - "key.typeusr" : "$sSay10ListableUI11SwipeActionVGD", - "key.usr" : "s:10ListableUI25SwipeActionsConfigurationV7actionsSayAA0C6ActionVGvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var performsFirstActionWithFullSwipe: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 485 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Whether the first action is performed automatically with a full swipe.", - "key.doc.column" : 16, - "key.doc.comment" : "Whether the first action is performed automatically with a full swipe.", - "key.doc.declaration" : "public var performsFirstActionWithFullSwipe: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "performsFirstActionWithFullSwipe<\/Name>s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC0Sbvp<\/USR>public var performsFirstActionWithFullSwipe: Bool<\/Declaration>Whether the first action is performed automatically with a full swipe.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "performsFirstActionWithFullSwipe", - "key.doc.type" : "Other", - "key.doclength" : 75, - "key.docoffset" : 406, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> performsFirstActionWithFullSwipe<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 43, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "performsFirstActionWithFullSwipe", - "key.namelength" : 32, - "key.nameoffset" : 496, - "key.offset" : 492, - "key.parsed_declaration" : "public var performsFirstActionWithFullSwipe : Bool", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC0Sbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(performsFirstActionWithFullSwipe: Bool<\/Type> = false, action: SwipeAction<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 607 - } - ], - "key.bodylength" : 118, - "key.bodyoffset" : 713, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new configuration with the provided action.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new configuration with the provided action.", - "key.doc.declaration" : "public init(performsFirstActionWithFullSwipe: Bool = false, action: SwipeAction)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "init(performsFirstActionWithFullSwipe:action:)<\/Name>s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC06actionACSb_AA0cH0Vtcfc<\/USR>public init(performsFirstActionWithFullSwipe: Bool = false, action: SwipeAction)<\/Declaration>Creates a new configuration with the provided action.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 23, - "key.doc.name" : "init(performsFirstActionWithFullSwipe:action:)", - "key.doc.type" : "Function", - "key.doclength" : 58, - "key.docoffset" : 545, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(performsFirstActionWithFullSwipe<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, action<\/decl.var.parameter.argument_label>: SwipeAction<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 218, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "init(performsFirstActionWithFullSwipe:action:)", - "key.namelength" : 97, - "key.nameoffset" : 614, - "key.offset" : 614, - "key.parsed_declaration" : "public init(\n performsFirstActionWithFullSwipe : Bool = false,\n action : SwipeAction\n)", - "key.parsed_scope.end" : 29, - "key.parsed_scope.start" : 23, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(performsFirstActionWithFullSwipe: Bool = false, actions: [SwipeAction])<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(performsFirstActionWithFullSwipe: Bool = false, actions: () -> [SwipeAction])<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionsConfiguration.Type) -> (Bool, SwipeAction) -> SwipeActionsConfiguration", - "key.typeusr" : "$s32performsFirstActionWithFullSwipe6action10ListableUI0F20ActionsConfigurationVSb_AC0fC0VtcD", - "key.usr" : "s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC06actionACSb_AA0cH0Vtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(performsFirstActionWithFullSwipe: Bool<\/Type> = false, actions: [SwipeAction<\/Type>])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 905 - } - ], - "key.bodylength" : 117, - "key.bodyoffset" : 1014, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new configuration with the provided actions.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new configuration with the provided actions.", - "key.doc.declaration" : "public init(performsFirstActionWithFullSwipe: Bool = false, actions: [SwipeAction])", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "init(performsFirstActionWithFullSwipe:actions:)<\/Name>s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC07actionsACSb_SayAA0cH0VGtcfc<\/USR>public init(performsFirstActionWithFullSwipe: Bool = false, actions: [SwipeAction])<\/Declaration>Creates a new configuration with the provided actions.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 32, - "key.doc.name" : "init(performsFirstActionWithFullSwipe:actions:)", - "key.doc.type" : "Function", - "key.doclength" : 59, - "key.docoffset" : 842, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(performsFirstActionWithFullSwipe<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, actions<\/decl.var.parameter.argument_label>: [SwipeAction<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 220, - "key.line" : 32, - "key.modulename" : "ListableUI", - "key.name" : "init(performsFirstActionWithFullSwipe:actions:)", - "key.namelength" : 100, - "key.nameoffset" : 912, - "key.offset" : 912, - "key.parsed_declaration" : "public init(\n performsFirstActionWithFullSwipe : Bool = false,\n actions : [SwipeAction]\n)", - "key.parsed_scope.end" : 38, - "key.parsed_scope.start" : 32, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(performsFirstActionWithFullSwipe:action:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(performsFirstActionWithFullSwipe: Bool = false, actions: () -> [SwipeAction])<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionsConfiguration.Type) -> (Bool, [SwipeAction]) -> SwipeActionsConfiguration", - "key.typeusr" : "$s32performsFirstActionWithFullSwipe7actions10ListableUI0F20ActionsConfigurationVSb_SayAC0fC0VGtcD", - "key.usr" : "s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC07actionsACSb_SayAA0cH0VGtcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(performsFirstActionWithFullSwipe: Bool<\/Type> = false, @ListableBuilder<\/Type><SwipeAction<\/Type>> actions: () -> [SwipeAction<\/Type>])<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1205 - } - ], - "key.bodylength" : 119, - "key.bodyoffset" : 1350, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new configuration with the provided actions.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new configuration with the provided actions.", - "key.doc.declaration" : "public init(performsFirstActionWithFullSwipe: Bool = false, @ListableUI.ListableBuilder actions: () -> [SwipeAction])", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "init(performsFirstActionWithFullSwipe:actions:)<\/Name>s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC07actionsACSb_SayAA0cH0VGyXEtcfc<\/USR>public init(performsFirstActionWithFullSwipe: Bool = false, @ListableUI.ListableBuilder<ListableUI.SwipeAction> actions: () -> [SwipeAction])<\/Declaration>Creates a new configuration with the provided actions.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 41, - "key.doc.name" : "init(performsFirstActionWithFullSwipe:actions:)", - "key.doc.type" : "Function", - "key.doclength" : 59, - "key.docoffset" : 1142, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(performsFirstActionWithFullSwipe<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, @ListableBuilder<\/ref.enum><SwipeAction<\/ref.struct>><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> actions<\/decl.var.parameter.argument_label>: () -> [SwipeAction<\/ref.struct>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 258, - "key.line" : 41, - "key.modulename" : "ListableUI", - "key.name" : "init(performsFirstActionWithFullSwipe:actions:)", - "key.namelength" : 136, - "key.nameoffset" : 1212, - "key.offset" : 1212, - "key.parsed_declaration" : "public init(\n performsFirstActionWithFullSwipe : Bool = false,\n @ListableBuilder actions : () -> [SwipeAction]\n)", - "key.parsed_scope.end" : 47, - "key.parsed_scope.start" : 41, - "key.related_decls" : [ - { - "key.annotated_decl" : "init(performsFirstActionWithFullSwipe:action:)<\/RelatedName>" - }, - { - "key.annotated_decl" : "init(performsFirstActionWithFullSwipe: Bool = false, actions: [SwipeAction])<\/RelatedName>" - } - ], - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeActionsConfiguration.Type) -> (Bool, () -> [SwipeAction]) -> SwipeActionsConfiguration", - "key.typeusr" : "$s32performsFirstActionWithFullSwipe7actions10ListableUI0F20ActionsConfigurationVSb_SayAC0fC0VGyXEtcD", - "key.usr" : "s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC07actionsACSb_SayAA0cH0VGyXEtcfc" - } - ], - "key.typename" : "SwipeActionsConfiguration.Type", - "key.typeusr" : "$s10ListableUI25SwipeActionsConfigurationVmD", - "key.usr" : "s:10ListableUI25SwipeActionsConfigurationV" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct SwipeAction<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1571 - } - ], - "key.bodylength" : 2293, - "key.bodyoffset" : 1598, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.", - "key.doc.column" : 15, - "key.doc.comment" : "Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.", - "key.doc.declaration" : "public struct SwipeAction", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "SwipeAction<\/Name>s:10ListableUI11SwipeActionV<\/USR>public struct SwipeAction<\/Declaration>Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 52, - "key.doc.name" : "SwipeAction", - "key.doc.type" : "Class", - "key.doclength" : 96, - "key.docoffset" : 1475, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SwipeAction<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 2314, - "key.line" : 52, - "key.modulename" : "ListableUI", - "key.name" : "SwipeAction", - "key.namelength" : 11, - "key.nameoffset" : 1585, - "key.offset" : 1578, - "key.parsed_declaration" : "public struct SwipeAction", - "key.parsed_scope.end" : 116, - "key.parsed_scope.start" : 52, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias SwipeAction<\/Type>.OnDidPerformAction = (OnDidPerformActionAnimation<\/Type>) -> Void<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1812 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The completion handler to call after performing the swipe action.\n\nPass in `true` to expand the actions (typically only used when deleting the row)\nor `false` to collapse them.", - "key.doc.column" : 22, - "key.doc.comment" : "The completion handler to call after performing the swipe action.\n\nPass in `true` to expand the actions (typically only used when deleting the row)\nor `false` to collapse them.", - "key.doc.declaration" : "public typealias ListableUI.SwipeAction.OnDidPerformAction = (OnDidPerformActionAnimation) -> Void", - "key.doc.discussion" : [ - { - "Para" : "Pass in `true` to expand the actions (typically only used when deleting the row) or `false` to collapse them." - } - ], - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "OnDidPerformAction<\/Name>s:10ListableUI11SwipeActionV012OnDidPerformD0a<\/USR>public typealias ListableUI.SwipeAction.OnDidPerformAction = (OnDidPerformActionAnimation) -> Void<\/Declaration>The completion handler to call after performing the swipe action.<\/Para><\/Abstract>Pass in true<\/codeVoice> to expand the actions (typically only used when deleting the row) or false<\/codeVoice> to collapse them.<\/Para><\/Discussion><\/CommentParts><\/Other>", - "key.doc.line" : 58, - "key.doc.name" : "OnDidPerformAction", - "key.doc.type" : "Other", - "key.doclength" : 204, - "key.docoffset" : 1604, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> SwipeAction<\/ref.struct>.OnDidPerformAction<\/decl.name> = (OnDidPerformActionAnimation<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 68, - "key.line" : 58, - "key.modulename" : "ListableUI", - "key.name" : "OnDidPerformAction", - "key.namelength" : 18, - "key.nameoffset" : 1829, - "key.offset" : 1819, - "key.parsed_declaration" : "public typealias OnDidPerformAction = (OnDidPerformActionAnimation) -> Void", - "key.parsed_scope.end" : 58, - "key.parsed_scope.start" : 58, - "key.reusingastcontext" : false, - "key.typename" : "((SwipeAction.OnDidPerformActionAnimation) -> ()).Type", - "key.typeusr" : "$sy10ListableUI11SwipeActionV012OnDidPerformD9AnimationOcmD", - "key.usr" : "s:10ListableUI11SwipeActionV012OnDidPerformD0a" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public typealias SwipeAction<\/Type>.OnTap = (@escaping OnDidPerformAction<\/Type>) -> Void<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1958 - } - ], - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The completion handler called when the action is tapped.", - "key.doc.column" : 22, - "key.doc.comment" : "The completion handler called when the action is tapped.", - "key.doc.declaration" : "public typealias ListableUI.SwipeAction.OnTap = (@escaping OnDidPerformAction) -> Void", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "OnTap<\/Name>s:10ListableUI11SwipeActionV5OnTapa<\/USR>public typealias ListableUI.SwipeAction.OnTap = (@escaping OnDidPerformAction) -> Void<\/Declaration>The completion handler called when the action is tapped.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 61, - "key.doc.name" : "OnTap", - "key.doc.type" : "Other", - "key.doclength" : 61, - "key.docoffset" : 1893, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> SwipeAction<\/ref.struct>.OnTap<\/decl.name> = (@escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnDidPerformAction<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.typealias>", - "key.kind" : "source.lang.swift.decl.typealias", - "key.length" : 56, - "key.line" : 61, - "key.modulename" : "ListableUI", - "key.name" : "OnTap", - "key.namelength" : 5, - "key.nameoffset" : 1975, - "key.offset" : 1965, - "key.parsed_declaration" : "public typealias OnTap = (@escaping OnDidPerformAction) -> Void", - "key.parsed_scope.end" : 61, - "key.parsed_scope.start" : 61, - "key.reusingastcontext" : false, - "key.typename" : "((@escaping (SwipeAction.OnDidPerformActionAnimation) -> ()) -> ()).Type", - "key.typeusr" : "$syy10ListableUI11SwipeActionV012OnDidPerformD9AnimationOccmD", - "key.usr" : "s:10ListableUI11SwipeActionV5OnTapa" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var title: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2027 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> title<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 18, - "key.line" : 63, - "key.modulename" : "ListableUI", - "key.name" : "title", - "key.namelength" : 5, - "key.nameoffset" : 2038, - "key.offset" : 2034, - "key.parsed_declaration" : "public var title: String?", - "key.parsed_scope.end" : 63, - "key.parsed_scope.start" : 63, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI11SwipeActionV5titleSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var accessibilityLabel: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2062 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> accessibilityLabel<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 65, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityLabel", - "key.namelength" : 18, - "key.nameoffset" : 2073, - "key.offset" : 2069, - "key.parsed_declaration" : "public var accessibilityLabel : String?", - "key.parsed_scope.end" : 65, - "key.parsed_scope.start" : 65, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI11SwipeActionV18accessibilityLabelSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var accessibilityValue: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2106 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> accessibilityValue<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 32, - "key.line" : 66, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityValue", - "key.namelength" : 18, - "key.nameoffset" : 2117, - "key.offset" : 2113, - "key.parsed_declaration" : "public var accessibilityValue : String?", - "key.parsed_scope.end" : 66, - "key.parsed_scope.start" : 66, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI11SwipeActionV18accessibilityValueSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var accessibilityHint: String<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2150 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> accessibilityHint<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 31, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "accessibilityHint", - "key.namelength" : 17, - "key.nameoffset" : 2161, - "key.offset" : 2157, - "key.parsed_declaration" : "public var accessibilityHint : String?", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 67, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "String?", - "key.typeusr" : "$sSSSgD", - "key.usr" : "s:10ListableUI11SwipeActionV17accessibilityHintSSSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var backgroundColor: UIColor<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2198 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> backgroundColor<\/decl.name>: UIColor<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 29, - "key.line" : 69, - "key.modulename" : "ListableUI", - "key.name" : "backgroundColor", - "key.namelength" : 15, - "key.nameoffset" : 2209, - "key.offset" : 2205, - "key.parsed_declaration" : "public var backgroundColor: UIColor?", - "key.parsed_scope.end" : 69, - "key.parsed_scope.start" : 69, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIColor?", - "key.typeusr" : "$sSo7UIColorCSgD", - "key.usr" : "s:10ListableUI11SwipeActionV15backgroundColorSo7UIColorCSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var tintColor: UIColor<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2323 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Sets the text and image (image must use the template rendering mode) color.", - "key.doc.column" : 16, - "key.doc.comment" : "Sets the text and image (image must use the template rendering mode) color.", - "key.doc.declaration" : "public var tintColor: UIColor", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "tintColor<\/Name>s:10ListableUI11SwipeActionV9tintColorSo7UIColorCvp<\/USR>public var tintColor: UIColor<\/Declaration>Sets the text and image (image must use the template rendering mode) color.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 71, - "key.doc.name" : "tintColor", - "key.doc.type" : "Other", - "key.doclength" : 80, - "key.docoffset" : 2239, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> tintColor<\/decl.name>: UIColor<\/ref.class><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 22, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "tintColor", - "key.namelength" : 9, - "key.nameoffset" : 2334, - "key.offset" : 2330, - "key.parsed_declaration" : "public var tintColor: UIColor", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 71, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIColor", - "key.typeusr" : "$sSo7UIColorCD", - "key.usr" : "s:10ListableUI11SwipeActionV9tintColorSo7UIColorCvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var image: UIImage<\/Type>?<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2357 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> image<\/decl.name>: UIImage<\/ref.class>?<\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 72, - "key.modulename" : "ListableUI", - "key.name" : "image", - "key.namelength" : 5, - "key.nameoffset" : 2368, - "key.offset" : 2364, - "key.parsed_declaration" : "public var image: UIImage?", - "key.parsed_scope.end" : 72, - "key.parsed_scope.start" : 72, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "UIImage?", - "key.typeusr" : "$sSo7UIImageCSgD", - "key.usr" : "s:10ListableUI11SwipeActionV5imageSo7UIImageCSgvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var onTap: OnTap<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2389 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onTap<\/decl.name>: OnTap<\/ref.typealias><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 16, - "key.line" : 74, - "key.modulename" : "ListableUI", - "key.name" : "onTap", - "key.namelength" : 5, - "key.nameoffset" : 2400, - "key.offset" : 2396, - "key.parsed_declaration" : "public var onTap: OnTap", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 74, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "(@escaping (SwipeAction.OnDidPerformActionAnimation) -> ()) -> ()", - "key.typeusr" : "$syyy10ListableUI11SwipeActionV012OnDidPerformD9AnimationOccD", - "key.usr" : "s:10ListableUI11SwipeActionV5onTapyyyAC012OnDidPerformD9AnimationOccvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(title: String<\/Type>?, accessibilityLabel: String<\/Type>? = nil, accessibilityValue: String<\/Type>? = nil, accessibilityHint: String<\/Type>? = nil, backgroundColor: UIColor<\/Type>, tintColor: UIColor<\/Type> = .white, image: UIImage<\/Type>? = nil, onTap: @escaping OnTap<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2484 - } - ], - "key.bodylength" : 620, - "key.bodyoffset" : 2789, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new swipe action with the provided options.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates a new swipe action with the provided options.", - "key.doc.declaration" : "public init(title: String?, accessibilityLabel: String? = nil, accessibilityValue: String? = nil, accessibilityHint: String? = nil, backgroundColor: UIColor, tintColor: UIColor = .white, image: UIImage? = nil, onTap: @escaping OnTap)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "init(title:accessibilityLabel:accessibilityValue:accessibilityHint:backgroundColor:tintColor:image:onTap:)<\/Name>s:10ListableUI11SwipeActionV5title18accessibilityLabel0F5Value0F4Hint15backgroundColor04tintK05image5onTapACSSSg_A3LSo7UIColorCANSo7UIImageCSgyyAC012OnDidPerformD9AnimationOcctcfc<\/USR>public init(title: String?, accessibilityLabel: String? = nil, accessibilityValue: String? = nil, accessibilityHint: String? = nil, backgroundColor: UIColor, tintColor: UIColor = .white, image: UIImage? = nil, onTap: @escaping OnTap)<\/Declaration>Creates a new swipe action with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 77, - "key.doc.name" : "init(title:accessibilityLabel:accessibilityValue:accessibilityHint:backgroundColor:tintColor:image:onTap:)", - "key.doc.type" : "Function", - "key.doclength" : 58, - "key.docoffset" : 2422, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(title<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, accessibilityLabel<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, accessibilityValue<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, accessibilityHint<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, backgroundColor<\/decl.var.parameter.argument_label>: UIColor<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, tintColor<\/decl.var.parameter.argument_label>: UIColor<\/ref.class><\/decl.var.parameter.type> = .white<\/decl.var.parameter>, image<\/decl.var.parameter.argument_label>: UIImage<\/ref.class>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onTap<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnTap<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 919, - "key.line" : 77, - "key.modulename" : "ListableUI", - "key.name" : "init(title:accessibilityLabel:accessibilityValue:accessibilityHint:backgroundColor:tintColor:image:onTap:)", - "key.namelength" : 296, - "key.nameoffset" : 2491, - "key.offset" : 2491, - "key.parsed_declaration" : "public init(\n title: String?,\n accessibilityLabel: String? = nil,\n accessibilityValue: String? = nil,\n accessibilityHint: String? = nil,\n backgroundColor: UIColor,\n tintColor: UIColor = .white,\n image: UIImage? = nil,\n onTap: @escaping OnTap\n)", - "key.parsed_scope.end" : 103, - "key.parsed_scope.start" : 77, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(SwipeAction.Type) -> (String?, String?, String?, String?, UIColor, UIColor, UIImage?, @escaping (@escaping (SwipeAction.OnDidPerformActionAnimation) -> ()) -> ()) -> SwipeAction", - "key.typeusr" : "$s5title18accessibilityLabel0B5Value0B4Hint15backgroundColor04tintG05image5onTap10ListableUI11SwipeActionVSSSg_A3LSo7UIColorCANSo7UIImageCSgyyAK012OnDidPerformO9AnimationOcctcD", - "key.usr" : "s:10ListableUI11SwipeActionV5title18accessibilityLabel0F5Value0F4Hint15backgroundColor04tintK05image5onTapACSSSg_A3LSo7UIColorCANSo7UIImageCSgyyAC012OnDidPerformD9AnimationOcctcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum SwipeAction<\/Type>.OnDidPerformActionAnimation : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3483 - } - ], - "key.bodylength" : 353, - "key.bodyoffset" : 3536, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The animation to perform when the action is completed.", - "key.doc.column" : 17, - "key.doc.comment" : "The animation to perform when the action is completed.", - "key.doc.declaration" : "public enum ListableUI.SwipeAction.OnDidPerformActionAnimation : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "OnDidPerformActionAnimation<\/Name>s:10ListableUI11SwipeActionV012OnDidPerformD9AnimationO<\/USR>public enum ListableUI.SwipeAction.OnDidPerformActionAnimation : Equatable<\/Declaration>The animation to perform when the action is completed.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 106, - "key.doc.name" : "OnDidPerformActionAnimation", - "key.doc.type" : "Other", - "key.doclength" : 59, - "key.docoffset" : 3420, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 3525 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SwipeAction<\/ref.struct>.OnDidPerformActionAnimation<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 400, - "key.line" : 106, - "key.modulename" : "ListableUI", - "key.name" : "OnDidPerformActionAnimation", - "key.namelength" : 27, - "key.nameoffset" : 3495, - "key.offset" : 3490, - "key.parsed_declaration" : "public enum OnDidPerformActionAnimation : Equatable", - "key.parsed_scope.end" : 115, - "key.parsed_scope.start" : 106, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 3600, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case closeActions<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The swipe actions will be closed.", - "key.doc.column" : 14, - "key.doc.comment" : "The swipe actions will be closed.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "closeActions<\/Name>s:10ListableUI11SwipeActionV012OnDidPerformD9AnimationO12closeActionsyA2EmF<\/USR><\/Declaration>The swipe actions will be closed.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 109, - "key.doc.name" : "closeActions", - "key.doc.type" : "Other", - "key.doclength" : 38, - "key.docoffset" : 3554, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> closeActions<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 109, - "key.modulename" : "ListableUI", - "key.name" : "closeActions", - "key.namelength" : 12, - "key.nameoffset" : 3605, - "key.offset" : 3605, - "key.parsed_declaration" : "case closeActions", - "key.parsed_scope.end" : 109, - "key.parsed_scope.start" : 109, - "key.reusingastcontext" : false, - "key.typename" : "(SwipeAction.OnDidPerformActionAnimation.Type) -> SwipeAction.OnDidPerformActionAnimation", - "key.typeusr" : "$sy10ListableUI11SwipeActionV012OnDidPerformD9AnimationOAEmcD", - "key.usr" : "s:10ListableUI11SwipeActionV012OnDidPerformD9AnimationO12closeActionsyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 18, - "key.offset" : 3866, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case expandActions<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The swipe actions will be expanded, revealing the last swipe action.\nYou usually use this option when performing the action will remove the\nrow from the list, eg during a deletion, archive, etc.", - "key.doc.column" : 14, - "key.doc.comment" : "The swipe actions will be expanded, revealing the last swipe action.\nYou usually use this option when performing the action will remove the\nrow from the list, eg during a deletion, archive, etc.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.doc.full_as_xml" : "expandActions<\/Name>s:10ListableUI11SwipeActionV012OnDidPerformD9AnimationO13expandActionsyA2EmF<\/USR><\/Declaration>The swipe actions will be expanded, revealing the last swipe action. You usually use this option when performing the action will remove the row from the list, eg during a deletion, archive, etc.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 114, - "key.doc.name" : "expandActions", - "key.doc.type" : "Other", - "key.doclength" : 223, - "key.docoffset" : 3635, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/SwipeActionsConfiguration.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> expandActions<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 13, - "key.line" : 114, - "key.modulename" : "ListableUI", - "key.name" : "expandActions", - "key.namelength" : 13, - "key.nameoffset" : 3871, - "key.offset" : 3871, - "key.parsed_declaration" : "case expandActions", - "key.parsed_scope.end" : 114, - "key.parsed_scope.start" : 114, - "key.reusingastcontext" : false, - "key.typename" : "(SwipeAction.OnDidPerformActionAnimation.Type) -> SwipeAction.OnDidPerformActionAnimation", - "key.typeusr" : "$sy10ListableUI11SwipeActionV012OnDidPerformD9AnimationOAEmcD", - "key.usr" : "s:10ListableUI11SwipeActionV012OnDidPerformD9AnimationO13expandActionsyA2EmF" - } - ] - } - ], - "key.typename" : "SwipeAction.OnDidPerformActionAnimation.Type", - "key.typeusr" : "$s10ListableUI11SwipeActionV012OnDidPerformD9AnimationOmD", - "key.usr" : "s:10ListableUI11SwipeActionV012OnDidPerformD9AnimationO" - } - ], - "key.typename" : "SwipeAction.Type", - "key.typeusr" : "$s10ListableUI11SwipeActionVmD", - "key.usr" : "s:10ListableUI11SwipeActionV" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/UIScrollView+Extensions.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 375, - "key.offset" : 0, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> @_nonSendable(_assumed) class UIScrollView : UIView<\/Type>, NSCoding<\/Type>, UIFocusItemScrollableContainer<\/Type><\/Declaration>", - "key.bodylength" : 236, - "key.bodyoffset" : 137, - "key.column" : 12, - "key.decl_lang" : "source.lang.objc", - "key.filepath" : "\/Applications\/Xcode262.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator26.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_nonSendable(_assumed)<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> class<\/syntaxtype.keyword> UIScrollView<\/decl.name> : UIView<\/ref.class>, NSCoding<\/ref.protocol>, UIFocusItemScrollableContainer<\/ref.protocol><\/decl.class>", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 261, - "key.line" : 87, - "key.modulename" : "UIKit.UIScrollView", - "key.name" : "UIScrollView", - "key.namelength" : 12, - "key.nameoffset" : 123, - "key.offset" : 113, - "key.parsed_declaration" : "extension UIScrollView", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 10, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "@MainActor<\/Type> var visibleContentFrame: CGRect<\/Type> { get }<\/Declaration>", - "key.bodylength" : 69, - "key.bodyoffset" : 302, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The frame of the collection view inset by the adjusted content inset,\ni.e., the visible frame of the content.", - "key.doc.column" : 9, - "key.doc.comment" : "The frame of the collection view inset by the adjusted content inset,\ni.e., the visible frame of the content.", - "key.doc.declaration" : "@MainActor var visibleContentFrame: CGRect { get }", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/UIScrollView+Extensions.swift", - "key.doc.full_as_xml" : "visibleContentFrame<\/Name>s:So12UIScrollViewC10ListableUIE19visibleContentFrameSo6CGRectVvp<\/USR>@MainActor var visibleContentFrame: CGRect { get }<\/Declaration>The frame of the collection view inset by the adjusted content inset, i.e., the visible frame of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 14, - "key.doc.name" : "visibleContentFrame", - "key.doc.type" : "Other", - "key.doclength" : 122, - "key.docoffset" : 143, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/UIScrollView+Extensions.swift", - "key.fully_annotated_decl" : "@MainActor<\/ref.class><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> var<\/syntaxtype.keyword> visibleContentFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.is_dynamic" : true, - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 103, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "visibleContentFrame", - "key.namelength" : 19, - "key.nameoffset" : 273, - "key.offset" : 269, - "key.parsed_declaration" : "var visibleContentFrame: CGRect", - "key.parsed_scope.end" : 16, - "key.parsed_scope.start" : 14, - "key.receivers" : [ - { - "key.usr" : "c:objc(cs)UIScrollView" - } - ], - "key.reusingastcontext" : false, - "key.typename" : "CGRect", - "key.typeusr" : "$sSo6CGRectVD", - "key.usr" : "s:So12UIScrollViewC10ListableUIE19visibleContentFrameSo6CGRectVvp" - } - ], - "key.typename" : "UIScrollView.Type", - "key.typeusr" : "$sSo12UIScrollViewCmD", - "key.usr" : "c:objc(cs)UIScrollView" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 3437, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum ViewAnimation<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 270 - } - ], - "key.bodylength" : 2172, - "key.bodyoffset" : 297, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Specifies the kind of animation to use when updating various parts of a list,\nsuch as updating an item or scrolling to a given position.", - "key.doc.column" : 13, - "key.doc.comment" : "Specifies the kind of animation to use when updating various parts of a list,\nsuch as updating an item or scrolling to a given position.", - "key.doc.declaration" : "public enum ViewAnimation", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "ViewAnimation<\/Name>s:10ListableUI13ViewAnimationO<\/USR>public enum ViewAnimation<\/Declaration>Specifies the kind of animation to use when updating various parts of a list, such as updating an item or scrolling to a given position.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 14, - "key.doc.name" : "ViewAnimation", - "key.doc.type" : "Other", - "key.doclength" : 145, - "key.docoffset" : 125, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ViewAnimation<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 2193, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "ViewAnimation", - "key.namelength" : 13, - "key.nameoffset" : 282, - "key.offset" : 277, - "key.parsed_declaration" : "public enum ViewAnimation", - "key.parsed_scope.end" : 83, - "key.parsed_scope.start" : 14, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 9, - "key.offset" : 342, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case none<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "No animation is performed.", - "key.doc.column" : 10, - "key.doc.comment" : "No animation is performed.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI13ViewAnimationO4noneyA2CmF<\/USR><\/Declaration>No animation is performed.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 17, - "key.doc.name" : "none", - "key.doc.type" : "Other", - "key.doclength" : 31, - "key.docoffset" : 307, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 4, - "key.line" : 17, - "key.modulename" : "ListableUI", - "key.name" : "none", - "key.namelength" : 4, - "key.nameoffset" : 347, - "key.offset" : 347, - "key.parsed_declaration" : "case none", - "key.parsed_scope.end" : 17, - "key.parsed_scope.start" : 17, - "key.reusingastcontext" : false, - "key.typename" : "(ViewAnimation.Type) -> ViewAnimation", - "key.typeusr" : "$sy10ListableUI13ViewAnimationOACmcD", - "key.usr" : "s:10ListableUI13ViewAnimationO4noneyA2CmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 14, - "key.offset" : 440, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case inherited<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The current animation is inherited from the superview's animation context.", - "key.doc.column" : 10, - "key.doc.comment" : "The current animation is inherited from the superview's animation context.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "inherited<\/Name>s:10ListableUI13ViewAnimationO9inheritedyA2CmF<\/USR><\/Declaration>The current animation is inherited from the superview’s animation context.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 20, - "key.doc.name" : "inherited", - "key.doc.type" : "Other", - "key.doclength" : 79, - "key.docoffset" : 357, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> inherited<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 9, - "key.line" : 20, - "key.modulename" : "ListableUI", - "key.name" : "inherited", - "key.namelength" : 9, - "key.nameoffset" : 445, - "key.offset" : 445, - "key.parsed_declaration" : "case inherited", - "key.parsed_scope.end" : 20, - "key.parsed_scope.start" : 20, - "key.reusingastcontext" : false, - "key.typename" : "(ViewAnimation.Type) -> ViewAnimation", - "key.typeusr" : "$sy10ListableUI13ViewAnimationOACmcD", - "key.usr" : "s:10ListableUI13ViewAnimationO9inheritedyA2CmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var `default`: `Self`<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 541 - } - ], - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A default animation is performed. This is the same as `.animated()`.", - "key.doc.column" : 23, - "key.doc.comment" : "A default animation is performed. This is the same as `.animated()`.", - "key.doc.declaration" : "public static var `default`: `Self`", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI13ViewAnimationO7defaultACvpZ<\/USR>public static var `default`: `Self`<\/Declaration>A default animation is performed. This is the same as .animated()<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 23, - "key.doc.name" : "default", - "key.doc.type" : "Other", - "key.doclength" : 73, - "key.docoffset" : 464, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: `Self`<\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 41, - "key.line" : 23, - "key.modulename" : "ListableUI", - "key.name" : "default", - "key.namelength" : 7, - "key.nameoffset" : 559, - "key.offset" : 548, - "key.parsed_declaration" : "public static var `default` : Self = .animated()", - "key.parsed_scope.end" : 23, - "key.parsed_scope.start" : 23, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ViewAnimation", - "key.typeusr" : "$s10ListableUI13ViewAnimationOD", - "key.usr" : "s:10ListableUI13ViewAnimationO7defaultACvpZ" - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 78, - "key.offset" : 742, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case animated(_: TimeInterval<\/Type> = 0.25, options: Set<\/Type><AnimationOptions<\/Type>> = .default)<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A `UIView.animate(...)` animation is performed.\nThe default parameters are 0.25 seconds and `.curveEaseInOut` animation curve.", - "key.doc.column" : 10, - "key.doc.comment" : "A `UIView.animate(...)` animation is performed.\nThe default parameters are 0.25 seconds and `.curveEaseInOut` animation curve.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "animated(_:options:)<\/Name>s:10ListableUI13ViewAnimationO8animatedyACSd_ShyAC0D7OptionsOGtcACmF<\/USR><\/Declaration>A UIView.animate(...)<\/codeVoice> animation is performed. The default parameters are 0.25 seconds and .curveEaseInOut<\/codeVoice> animation curve.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 27, - "key.doc.name" : "animated(_:options:)", - "key.doc.type" : "Other", - "key.doclength" : 139, - "key.docoffset" : 599, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> animated<\/decl.name>(_<\/decl.var.parameter.argument_label>: TimeInterval<\/ref.typealias><\/decl.var.parameter.type> = 0.25<\/decl.var.parameter>, options<\/decl.var.parameter.argument_label>: Set<\/ref.struct><AnimationOptions<\/ref.enum>><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 73, - "key.line" : 27, - "key.modulename" : "ListableUI", - "key.name" : "animated(_:options:)", - "key.namelength" : 73, - "key.nameoffset" : 747, - "key.offset" : 747, - "key.parsed_declaration" : "case animated(TimeInterval = 0.25, options : Set = .default)", - "key.parsed_scope.end" : 27, - "key.parsed_scope.start" : 27, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ViewAnimation.Type) -> (Double, Set) -> ViewAnimation", - "key.typeusr" : "$sy10ListableUI13ViewAnimationOSd_ShyAC0D7OptionsOGtcACmcD", - "key.usr" : "s:10ListableUI13ViewAnimationO8animatedyACSd_ShyAC0D7OptionsOGtcACmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 47, - "key.offset" : 936, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case spring(_: UISpringTimingParameters<\/Type> = .init())<\/Declaration>", - "key.column" : 10, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "A spring based animation is performed.\nThe default value is `UISpringTimingParameters()`.", - "key.doc.column" : 10, - "key.doc.comment" : "A spring based animation is performed.\nThe default value is `UISpringTimingParameters()`.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "spring(_:)<\/Name>s:10ListableUI13ViewAnimationO6springyACSo24UISpringTimingParametersCcACmF<\/USR><\/Declaration>A spring based animation is performed. The default value is UISpringTimingParameters()<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 31, - "key.doc.name" : "spring(_:)", - "key.doc.type" : "Other", - "key.doclength" : 102, - "key.docoffset" : 830, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> spring<\/decl.name>(_<\/decl.var.parameter.argument_label>: UISpringTimingParameters<\/ref.class><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 42, - "key.line" : 31, - "key.modulename" : "ListableUI", - "key.name" : "spring(_:)", - "key.namelength" : 42, - "key.nameoffset" : 941, - "key.offset" : 941, - "key.parsed_declaration" : "case spring(UISpringTimingParameters = .init())", - "key.parsed_scope.end" : 31, - "key.parsed_scope.start" : 31, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ViewAnimation.Type) -> (UISpringTimingParameters) -> ViewAnimation", - "key.typeusr" : "$sy10ListableUI13ViewAnimationOSo24UISpringTimingParametersCcACmcD", - "key.usr" : "s:10ListableUI13ViewAnimationO6springyACSo24UISpringTimingParametersCcACmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func and(with animated: Bool<\/Type>) -> ViewAnimation<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1099 - } - ], - "key.bodylength" : 103, - "key.bodyoffset" : 1155, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Ands the animation with the provided bool, returning the animation if true, and `.none` if false.", - "key.doc.column" : 17, - "key.doc.comment" : "Ands the animation with the provided bool, returning the animation if true, and `.none` if false.", - "key.doc.declaration" : "public func and(with animated: Bool) -> ViewAnimation", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "and(with:)<\/Name>s:10ListableUI13ViewAnimationO3and4withACSb_tF<\/USR>public func and(with animated: Bool) -> ViewAnimation<\/Declaration>Ands the animation with the provided bool, returning the animation if true, and .none<\/codeVoice> if false.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 34, - "key.doc.name" : "and(with:)", - "key.doc.type" : "Function", - "key.doclength" : 102, - "key.docoffset" : 993, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> and<\/decl.name>(with<\/decl.var.parameter.argument_label> animated<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewAnimation<\/ref.enum><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 153, - "key.line" : 34, - "key.modulename" : "ListableUI", - "key.name" : "and(with:)", - "key.namelength" : 25, - "key.nameoffset" : 1111, - "key.offset" : 1106, - "key.parsed_declaration" : "public func and(with animated : Bool) -> ViewAnimation", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 34, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ViewAnimation) -> (Bool) -> ViewAnimation", - "key.typeusr" : "$s4with10ListableUI13ViewAnimationOSb_tcD", - "key.usr" : "s:10ListableUI13ViewAnimationO3and4withACSb_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func perform(animations: @escaping () -> (), completion: @escaping (Bool<\/Type>) -> () = { _ in })<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1335 - } - ], - "key.bodylength" : 1008, - "key.bodyoffset" : 1459, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Performs the provided animations for the `ViewAnimation`.", - "key.doc.column" : 17, - "key.doc.comment" : "Performs the provided animations for the `ViewAnimation`.", - "key.doc.declaration" : "public func perform(animations: @escaping () -> (), completion: @escaping (Bool) -> () = { _ in })", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "perform(animations:completion:)<\/Name>s:10ListableUI13ViewAnimationO7perform10animations10completionyyyc_ySbctF<\/USR>public func perform(animations: @escaping () -> (), completion: @escaping (Bool) -> () = { _ in })<\/Declaration>Performs the provided animations for the ViewAnimation<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 43, - "key.doc.name" : "perform(animations:completion:)", - "key.doc.type" : "Function", - "key.doclength" : 62, - "key.docoffset" : 1269, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> perform<\/decl.name>(animations<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 1126, - "key.line" : 43, - "key.modulename" : "ListableUI", - "key.name" : "perform(animations:completion:)", - "key.namelength" : 110, - "key.nameoffset" : 1347, - "key.offset" : 1342, - "key.parsed_declaration" : "public func perform(\n animations : @escaping () -> (),\n completion : @escaping (Bool) -> () = { _ in }\n)", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 43, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ViewAnimation) -> (@escaping () -> (), @escaping (Bool) -> ()) -> ()", - "key.typeusr" : "$s10animations10completionyyyc_ySbctcD", - "key.usr" : "s:10ListableUI13ViewAnimationO7perform10animations10completionyyyc_ySbctF" - } - ], - "key.typename" : "ViewAnimation.Type", - "key.typeusr" : "$s10ListableUI13ViewAnimationOmD", - "key.usr" : "s:10ListableUI13ViewAnimationO" - }, - { - "key.annotated_decl" : "public enum ViewAnimation<\/Declaration>", - "key.bodylength" : 228, - "key.bodyoffset" : 2498, - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Specifies the kind of animation to use when updating various parts of a list,\nsuch as updating an item or scrolling to a given position.", - "key.doc.column" : 13, - "key.doc.declaration" : "public enum ViewAnimation", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "ViewAnimation<\/Name>s:10ListableUI13ViewAnimationO<\/USR>public enum ViewAnimation<\/Declaration>Specifies the kind of animation to use when updating various parts of a list, such as updating an item or scrolling to a given position.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 14, - "key.doc.name" : "ViewAnimation", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ViewAnimation<\/decl.name><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 254, - "key.line" : 14, - "key.modulename" : "ListableUI", - "key.name" : "ViewAnimation", - "key.namelength" : 13, - "key.nameoffset" : 2483, - "key.offset" : 2473, - "key.parsed_declaration" : "extension ViewAnimation", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 86, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum AnimationOptions : Hashable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2574 - } - ], - "key.bodylength" : 109, - "key.bodyoffset" : 2615, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The animations options available for the `ViewAnimation`.", - "key.doc.column" : 17, - "key.doc.comment" : "The animations options available for the `ViewAnimation`.", - "key.doc.declaration" : "public enum AnimationOptions : Hashable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.doc.full_as_xml" : "AnimationOptions<\/Name>s:10ListableUI13ViewAnimationO0D7OptionsO<\/USR>public enum AnimationOptions : Hashable<\/Declaration>The animations options available for the ViewAnimation<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 89, - "key.doc.name" : "AnimationOptions", - "key.doc.type" : "Other", - "key.doclength" : 62, - "key.docoffset" : 2508, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 8, - "key.offset" : 2605 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> AnimationOptions<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Hashable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 144, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "AnimationOptions", - "key.namelength" : 16, - "key.nameoffset" : 2586, - "key.offset" : 2581, - "key.parsed_declaration" : "public enum AnimationOptions : Hashable", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 89, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 19, - "key.offset" : 2624, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case curveEaseInOut<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> curveEaseInOut<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 14, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "curveEaseInOut", - "key.namelength" : 14, - "key.nameoffset" : 2629, - "key.offset" : 2629, - "key.parsed_declaration" : "case curveEaseInOut", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 90, - "key.reusingastcontext" : false, - "key.typename" : "(ViewAnimation.AnimationOptions.Type) -> ViewAnimation.AnimationOptions", - "key.typeusr" : "$sy10ListableUI13ViewAnimationO0D7OptionsOAEmcD", - "key.usr" : "s:10ListableUI13ViewAnimationO0D7OptionsO14curveEaseInOutyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 2652, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case curveEaseIn<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> curveEaseIn<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 91, - "key.modulename" : "ListableUI", - "key.name" : "curveEaseIn", - "key.namelength" : 11, - "key.nameoffset" : 2657, - "key.offset" : 2657, - "key.parsed_declaration" : "case curveEaseIn", - "key.parsed_scope.end" : 91, - "key.parsed_scope.start" : 91, - "key.reusingastcontext" : false, - "key.typename" : "(ViewAnimation.AnimationOptions.Type) -> ViewAnimation.AnimationOptions", - "key.typeusr" : "$sy10ListableUI13ViewAnimationO0D7OptionsOAEmcD", - "key.usr" : "s:10ListableUI13ViewAnimationO0D7OptionsO11curveEaseInyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 17, - "key.offset" : 2677, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case curveEaseOut<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> curveEaseOut<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 12, - "key.line" : 92, - "key.modulename" : "ListableUI", - "key.name" : "curveEaseOut", - "key.namelength" : 12, - "key.nameoffset" : 2682, - "key.offset" : 2682, - "key.parsed_declaration" : "case curveEaseOut", - "key.parsed_scope.end" : 92, - "key.parsed_scope.start" : 92, - "key.reusingastcontext" : false, - "key.typename" : "(ViewAnimation.AnimationOptions.Type) -> ViewAnimation.AnimationOptions", - "key.typeusr" : "$sy10ListableUI13ViewAnimationO0D7OptionsOAEmcD", - "key.usr" : "s:10ListableUI13ViewAnimationO0D7OptionsO12curveEaseOutyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 16, - "key.offset" : 2703, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case curveLinear<\/Declaration>", - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> curveLinear<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 11, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "curveLinear", - "key.namelength" : 11, - "key.nameoffset" : 2708, - "key.offset" : 2708, - "key.parsed_declaration" : "case curveLinear", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.typename" : "(ViewAnimation.AnimationOptions.Type) -> ViewAnimation.AnimationOptions", - "key.typeusr" : "$sy10ListableUI13ViewAnimationO0D7OptionsOAEmcD", - "key.usr" : "s:10ListableUI13ViewAnimationO0D7OptionsO11curveLinearyA2EmF" - } - ] - } - ], - "key.typename" : "ViewAnimation.AnimationOptions.Type", - "key.typeusr" : "$s10ListableUI13ViewAnimationO0D7OptionsOmD", - "key.usr" : "s:10ListableUI13ViewAnimationO0D7OptionsO" - } - ], - "key.typename" : "ViewAnimation.Type", - "key.typeusr" : "$s10ListableUI13ViewAnimationOmD", - "key.usr" : "s:10ListableUI13ViewAnimationO" - }, - { - "key.annotated_decl" : "@frozen @_eagerMove struct Set<Element> where Element<\/Type> : Hashable<\/Type><\/Declaration>", - "key.bodylength" : 642, - "key.bodyoffset" : 2793, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "An unordered collection of unique elements.\n\nYou use a set instead of an array when you need to test efficiently for\nmembership and you aren't concerned with the order of the elements in the\ncollection, or when you need to ensure that each element appears only once\nin a collection.\n\nYou can create a set with any element type that conforms to the `Hashable`\nprotocol. By default, most types in the standard library are hashable,\nincluding strings, numeric and Boolean types, enumeration cases without\nassociated values, and even sets themselves.\n\nSwift makes it as easy to create a new set as to create a new array. Simply\nassign an array literal to a variable or constant with the `Set` type\nspecified.\n\n let ingredients: Set = [\"cocoa beans\", \"sugar\", \"cocoa butter\", \"salt\"]\n if ingredients.contains(\"sugar\") {\n print(\"No thanks, too sweet.\")\n }\n \/\/ Prints \"No thanks, too sweet.\"\n\nSet Operations\n==============\n\nSets provide a suite of mathematical set operations. For example, you can\nefficiently test a set for membership of an element or check its\nintersection with another set:\n\n- Use the `contains(_:)` method to test whether a set contains a specific\n element.\n- Use the \"equal to\" operator (`==`) to test whether two sets contain the\n same elements.\n- Use the `isSubset(of:)` method to test whether a set contains all the\n elements of another set or sequence.\n- Use the `isSuperset(of:)` method to test whether all elements of a set\n are contained in another set or sequence.\n- Use the `isStrictSubset(of:)` and `isStrictSuperset(of:)` methods to test\n whether a set is a subset or superset of, but not equal to, another set.\n- Use the `isDisjoint(with:)` method to test whether a set has any elements\n in common with another set.\n\nYou can also combine, exclude, or subtract the elements of two sets:\n\n- Use the `union(_:)` method to create a new set with the elements of a set\n and another set or sequence.\n- Use the `intersection(_:)` method to create a new set with only the\n elements common to a set and another set or sequence.\n- Use the `symmetricDifference(_:)` method to create a new set with the\n elements that are in either a set or another set or sequence, but not in\n both.\n- Use the `subtracting(_:)` method to create a new set with the elements of\n a set that are not also in another set or sequence.\n\nYou can modify a set in place by using these methods' mutating\ncounterparts: `formUnion(_:)`, `formIntersection(_:)`,\n`formSymmetricDifference(_:)`, and `subtract(_:)`.\n\nSet operations are not limited to use with other sets. Instead, you can\nperform set operations with another set, an array, or any other sequence\ntype.\n\n var primes: Set = [2, 3, 5, 7]\n\n \/\/ Tests whether primes is a subset of a Range\n print(primes.isSubset(of: 0..<10))\n \/\/ Prints \"true\"\n\n \/\/ Performs an intersection with an Array\n let favoriteNumbers = [5, 7, 15, 21]\n print(primes.intersection(favoriteNumbers))\n \/\/ Prints \"[5, 7]\"\n\nSequence and Collection Operations\n==================================\n\nIn addition to the `Set` type's set operations, you can use any nonmutating\nsequence or collection methods with a set.\n\n if primes.isEmpty {\n print(\"No primes!\")\n } else {\n print(\"We have \\(primes.count) primes.\")\n }\n \/\/ Prints \"We have 4 primes.\"\n\n let primesSum = primes.reduce(0, +)\n \/\/ 'primesSum' == 17\n\n let primeStrings = primes.sorted().map(String.init)\n \/\/ 'primeStrings' == [\"2\", \"3\", \"5\", \"7\"]\n\nYou can iterate through a set's unordered elements with a `for`-`in` loop.\n\n for number in primes {\n print(number)\n }\n \/\/ Prints \"5\"\n \/\/ Prints \"7\"\n \/\/ Prints \"2\"\n \/\/ Prints \"3\"\n\nMany sequence and collection operations return an array or a type-erasing\ncollection wrapper instead of a set. To restore efficient set operations,\ncreate a new set from the result.\n\n let primesStrings = primes.map(String.init)\n \/\/ 'primesStrings' is of type Array\n let primesStringsSet = Set(primes.map(String.init))\n \/\/ 'primesStringsSet' is of type Set\n\nBridging Between Set and NSSet\n==============================\n\nYou can bridge between `Set` and `NSSet` using the `as` operator. For\nbridging to be possible, the `Element` type of a set must be a class, an\n`@objc` protocol (a protocol imported from Objective-C or marked with the\n`@objc` attribute), or a type that bridges to a Foundation type.\n\nBridging from `Set` to `NSSet` always takes O(1) time and space. When the\nset's `Element` type is neither a class nor an `@objc` protocol, any\nrequired bridging of elements occurs at the first access of each element,\nso the first operation that uses the contents of the set (for example, a\nmembership test) can take O(*n*).\n\nBridging from `NSSet` to `Set` first calls the `copy(with:)` method\n(`- copyWithZone:` in Objective-C) on the set to get an immutable copy and\nthen performs additional Swift bookkeeping work that takes O(1) time. For\ninstances of `NSSet` that are already immutable, `copy(with:)` returns the\nsame set in constant time; otherwise, the copying performance is\nunspecified. The instances of `NSSet` and `Set` share buffer using the\nsame copy-on-write optimization that is used when two instances of `Set`\nshare buffer.", - "key.doc.declaration" : "@frozen struct Set where Element : Hashable", - "key.doc.discussion" : [ - { - "Para" : "You use a set instead of an array when you need to test efficiently for membership and you aren’t concerned with the order of the elements in the collection, or when you need to ensure that each element appears only once in a collection." - }, - { - "Para" : "You can create a set with any element type that conforms to the `Hashable` protocol. By default, most types in the standard library are hashable, including strings, numeric and Boolean types, enumeration cases without associated values, and even sets themselves." - }, - { - "Para" : "Swift makes it as easy to create a new set as to create a new array. Simply assign an array literal to a variable or constant with the `Set` type specified." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Sets provide a suite of mathematical set operations. For example, you can efficiently test a set for membership of an element or check its intersection with another set:" - }, - { - "List-Bullet" : "" - }, - { - "Para" : "You can also combine, exclude, or subtract the elements of two sets:" - }, - { - "List-Bullet" : "" - }, - { - "Para" : "You can modify a set in place by using these methods’ mutating counterparts: `formUnion(_:)`, `formIntersection(_:)`, `formSymmetricDifference(_:)`, and `subtract(_:)`." - }, - { - "Para" : "Set operations are not limited to use with other sets. Instead, you can perform set operations with another set, an array, or any other sequence type." - }, - { - "CodeListing" : "" - }, - { - "Para" : "In addition to the `Set` type’s set operations, you can use any nonmutating sequence or collection methods with a set." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can iterate through a set’s unordered elements with a `for`-`in` loop." - }, - { - "CodeListing" : "" - }, - { - "Para" : "Many sequence and collection operations return an array or a type-erasing collection wrapper instead of a set. To restore efficient set operations, create a new set from the result." - }, - { - "CodeListing" : "" - }, - { - "Para" : "You can bridge between `Set` and `NSSet` using the `as` operator. For bridging to be possible, the `Element` type of a set must be a class, an `@objc` protocol (a protocol imported from Objective-C or marked with the `@objc` attribute), or a type that bridges to a Foundation type." - }, - { - "Para" : "Bridging from `Set` to `NSSet` always takes O(1) time and space. When the set’s `Element` type is neither a class nor an `@objc` protocol, any required bridging of elements occurs at the first access of each element, so the first operation that uses the contents of the set (for example, a membership test) can take O()." - }, - { - "Para" : "Bridging from `NSSet` to `Set` first calls the `copy(with:)` method (`- copyWithZone:` in Objective-C) on the set to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of `NSSet` that are already immutable, `copy(with:)` returns the same set in constant time; otherwise, the copying performance is unspecified. The instances of `NSSet` and `Set` share buffer using the same copy-on-write optimization that is used when two instances of `Set` share buffer." - } - ], - "key.doc.full_as_xml" : "Set<\/Name>s:Sh<\/USR>@frozen struct Set<Element> where Element : Hashable<\/Declaration>An unordered collection of unique elements.<\/Para><\/Abstract>You use a set instead of an array when you need to test efficiently for membership and you aren’t concerned with the order of the elements in the collection, or when you need to ensure that each element appears only once in a collection.<\/Para>You can create a set with any element type that conforms to the Hashable<\/codeVoice> protocol. By default, most types in the standard library are hashable, including strings, numeric and Boolean types, enumeration cases without associated values, and even sets themselves.<\/Para>Swift makes it as easy to create a new set as to create a new array. Simply assign an array literal to a variable or constant with the Set<\/codeVoice> type specified.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Set Operations]]><\/rawHTML>Sets provide a suite of mathematical set operations. For example, you can efficiently test a set for membership of an element or check its intersection with another set:<\/Para>Use the contains(_:)<\/codeVoice> method to test whether a set contains a specific element.<\/Para><\/Item>Use the “equal to” operator (==<\/codeVoice>) to test whether two sets contain the same elements.<\/Para><\/Item>Use the isSubset(of:)<\/codeVoice> method to test whether a set contains all the elements of another set or sequence.<\/Para><\/Item>Use the isSuperset(of:)<\/codeVoice> method to test whether all elements of a set are contained in another set or sequence.<\/Para><\/Item>Use the isStrictSubset(of:)<\/codeVoice> and isStrictSuperset(of:)<\/codeVoice> methods to test whether a set is a subset or superset of, but not equal to, another set.<\/Para><\/Item>Use the isDisjoint(with:)<\/codeVoice> method to test whether a set has any elements in common with another set.<\/Para><\/Item><\/List-Bullet>You can also combine, exclude, or subtract the elements of two sets:<\/Para>Use the union(_:)<\/codeVoice> method to create a new set with the elements of a set and another set or sequence.<\/Para><\/Item>Use the intersection(_:)<\/codeVoice> method to create a new set with only the elements common to a set and another set or sequence.<\/Para><\/Item>Use the symmetricDifference(_:)<\/codeVoice> method to create a new set with the elements that are in either a set or another set or sequence, but not in both.<\/Para><\/Item>Use the subtracting(_:)<\/codeVoice> method to create a new set with the elements of a set that are not also in another set or sequence.<\/Para><\/Item><\/List-Bullet>You can modify a set in place by using these methods’ mutating counterparts: formUnion(_:)<\/codeVoice>, formIntersection(_:)<\/codeVoice>, formSymmetricDifference(_:)<\/codeVoice>, and subtract(_:)<\/codeVoice>.<\/Para>Set operations are not limited to use with other sets. Instead, you can perform set operations with another set, an array, or any other sequence type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered>]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Sequence and Collection Operations]]><\/rawHTML>In addition to the Set<\/codeVoice> type’s set operations, you can use any nonmutating sequence or collection methods with a set.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can iterate through a set’s unordered elements with a for<\/codeVoice>-in<\/codeVoice> loop.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Many sequence and collection operations return an array or a type-erasing collection wrapper instead of a set. To restore efficient set operations, create a new set from the result.<\/Para><\/zCodeLineNumbered>]]><\/zCodeLineNumbered><\/zCodeLineNumbered>]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Set and NSSet]]><\/rawHTML>You can bridge between Set<\/codeVoice> and NSSet<\/codeVoice> using the as<\/codeVoice> operator. For bridging to be possible, the Element<\/codeVoice> type of a set must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>Bridging from Set<\/codeVoice> to NSSet<\/codeVoice> always takes O(1) time and space. When the set’s Element<\/codeVoice> type is neither a class nor an @objc<\/codeVoice> protocol, any required bridging of elements occurs at the first access of each element, so the first operation that uses the contents of the set (for example, a membership test) can take O(n<\/emphasis>).<\/Para>Bridging from NSSet<\/codeVoice> to Set<\/codeVoice> first calls the copy(with:)<\/codeVoice> method (- copyWithZone:<\/codeVoice> in Objective-C) on the set to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSSet<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> returns the same set in constant time; otherwise, the copying performance is unspecified. The instances of NSSet<\/codeVoice> and Set<\/codeVoice> share buffer using the same copy-on-write optimization that is used when two instances of Set<\/codeVoice> share buffer.<\/Para><\/Discussion><\/CommentParts><\/Class>", - "key.doc.name" : "Set", - "key.doc.type" : "Class", - "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> @_eagerMove<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Set<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Element<\/ref.generic_type_param> : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>", - "key.groupname" : "Collection\/HashedCollections", - "key.is_system" : true, - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 706, - "key.modulename" : "Swift", - "key.name" : "Set", - "key.namelength" : 3, - "key.nameoffset" : 2740, - "key.offset" : 2730, - "key.parsed_declaration" : "extension Set where Element == ViewAnimation.AnimationOptions", - "key.parsed_scope.end" : 125, - "key.parsed_scope.start" : 98, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static var `default`: `Self` { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2803 - } - ], - "key.bodylength" : 31, - "key.bodyoffset" : 2839, - "key.column" : 23, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 61, - "key.line" : 100, - "key.modulename" : "ListableUI", - "key.name" : "default", - "key.namelength" : 7, - "key.nameoffset" : 2821, - "key.offset" : 2810, - "key.parsed_declaration" : "public static var `default` : Self", - "key.parsed_scope.end" : 102, - "key.parsed_scope.start" : 100, - "key.reusingastcontext" : false, - "key.typename" : "Set", - "key.typeusr" : "$sShy10ListableUI13ViewAnimationO0D7OptionsOGD", - "key.usr" : "s:Sh10ListableUIAA13ViewAnimationO0D7OptionsORszrlE7defaultShyAEGvpZ" - }, - { - "key.annotated_decl" : "var toSystem: UIView<\/Type>.AnimationOptions<\/Type> { get }<\/Declaration>", - "key.bodylength" : 512, - "key.bodyoffset" : 2921, - "key.column" : 9, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toSystem<\/decl.name>: UIView<\/ref.class>.AnimationOptions<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 553, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "toSystem", - "key.namelength" : 8, - "key.nameoffset" : 2885, - "key.offset" : 2881, - "key.parsed_declaration" : "var toSystem : UIView.AnimationOptions", - "key.parsed_scope.end" : 124, - "key.parsed_scope.start" : 104, - "key.reusingastcontext" : false, - "key.typename" : "UIView.AnimationOptions", - "key.typeusr" : "$sSo22UIViewAnimationOptionsVD", - "key.usr" : "s:Sh10ListableUIAA13ViewAnimationO0D7OptionsORszrlE8toSystemSo06UIViewdE0Vvp" - }, - { - "key.annotated_decl" : "var options: UIView<\/Type>.AnimationOptions<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewAnimation.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> options<\/decl.name>: UIView<\/ref.class>.AnimationOptions<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 42, - "key.line" : 105, - "key.modulename" : "ListableUI", - "key.name" : "options", - "key.namelength" : 7, - "key.nameoffset" : 2934, - "key.offset" : 2930, - "key.parsed_declaration" : "var options : UIView.AnimationOptions = []", - "key.parsed_scope.end" : 105, - "key.parsed_scope.start" : 105, - "key.reusingastcontext" : false, - "key.typename" : "UIView.AnimationOptions", - "key.typeusr" : "$sSo22UIViewAnimationOptionsVD", - "key.usr" : "s:Sh10ListableUIAA13ViewAnimationO0D7OptionsORszrlE8toSystemSo06UIViewdE0Vvg7optionsL_AHvp" - } - ], - "key.typename" : "Set.Type", - "key.typeusr" : "$sShyxGmD", - "key.usr" : "s:Sh" - } - ] - } -}, { - "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift" : { - "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse", - "key.length" : 5707, - "key.offset" : 0, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ViewProperties<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 201 - } - ], - "key.bodylength" : 1498, - "key.bodyoffset" : 231, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the properties to apply to a view for an `ItemContent` or `HeaderFooterContent`", - "key.doc.column" : 15, - "key.doc.comment" : "Describes the properties to apply to a view for an `ItemContent` or `HeaderFooterContent`", - "key.doc.declaration" : "public struct ViewProperties", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "ViewProperties<\/Name>s:10ListableUI14ViewPropertiesV<\/USR>public struct ViewProperties<\/Declaration>Describes the properties to apply to a view for an ItemContent<\/codeVoice> or HeaderFooterContent<\/codeVoice><\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 12, - "key.doc.name" : "ViewProperties", - "key.doc.type" : "Class", - "key.doclength" : 94, - "key.docoffset" : 107, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ViewProperties<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 1522, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ViewProperties", - "key.namelength" : 14, - "key.nameoffset" : 215, - "key.offset" : 208, - "key.parsed_declaration" : "public struct ViewProperties", - "key.parsed_scope.end" : 58, - "key.parsed_scope.start" : 12, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var clipsToBounds: Bool<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 290 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "If the view should clip its contents or not.", - "key.doc.column" : 16, - "key.doc.comment" : "If the view should clip its contents or not.", - "key.doc.declaration" : "public var clipsToBounds: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "clipsToBounds<\/Name>s:10ListableUI14ViewPropertiesV13clipsToBoundsSbvp<\/USR>public var clipsToBounds: Bool<\/Declaration>If the view should clip its contents or not.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 15, - "key.doc.name" : "clipsToBounds", - "key.doc.type" : "Other", - "key.doclength" : 49, - "key.docoffset" : 237, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> clipsToBounds<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 24, - "key.line" : 15, - "key.modulename" : "ListableUI", - "key.name" : "clipsToBounds", - "key.namelength" : 13, - "key.nameoffset" : 301, - "key.offset" : 297, - "key.parsed_declaration" : "public var clipsToBounds : Bool", - "key.parsed_scope.end" : 15, - "key.parsed_scope.start" : 15, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI14ViewPropertiesV13clipsToBoundsSbvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var cornerStyle: CornerStyle<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 414 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The corner style to apply, eg rounded, capsule, or normal, square corners.", - "key.doc.column" : 16, - "key.doc.comment" : "The corner style to apply, eg rounded, capsule, or normal, square corners.", - "key.doc.declaration" : "public var cornerStyle: CornerStyle", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "cornerStyle<\/Name>s:10ListableUI14ViewPropertiesV11cornerStyleAC06CornerF0Ovp<\/USR>public var cornerStyle: CornerStyle<\/Declaration>The corner style to apply, eg rounded, capsule, or normal, square corners.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 18, - "key.doc.name" : "cornerStyle", - "key.doc.type" : "Other", - "key.doclength" : 79, - "key.docoffset" : 331, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> cornerStyle<\/decl.name>: CornerStyle<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 18, - "key.modulename" : "ListableUI", - "key.name" : "cornerStyle", - "key.namelength" : 11, - "key.nameoffset" : 425, - "key.offset" : 421, - "key.parsed_declaration" : "public var cornerStyle: CornerStyle", - "key.parsed_scope.end" : 18, - "key.parsed_scope.start" : 18, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ViewProperties.CornerStyle", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleOD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11cornerStyleAC06CornerF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public var cornerCurve: CornerCurve<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 521 - } - ], - "key.column" : 16, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "How to style the curves when `cornerStyle` is non-square.", - "key.doc.column" : 16, - "key.doc.comment" : "How to style the curves when `cornerStyle` is non-square.", - "key.doc.declaration" : "public var cornerCurve: CornerCurve", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "cornerCurve<\/Name>s:10ListableUI14ViewPropertiesV11cornerCurveAC06CornerF0Ovp<\/USR>public var cornerCurve: CornerCurve<\/Declaration>How to style the curves when cornerStyle<\/codeVoice> is non-square.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 21, - "key.doc.name" : "cornerCurve", - "key.doc.type" : "Other", - "key.doclength" : 62, - "key.docoffset" : 455, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> cornerCurve<\/decl.name>: CornerCurve<\/ref.enum><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 28, - "key.line" : 21, - "key.modulename" : "ListableUI", - "key.name" : "cornerCurve", - "key.namelength" : 11, - "key.nameoffset" : 532, - "key.offset" : 528, - "key.parsed_declaration" : "public var cornerCurve: CornerCurve", - "key.parsed_scope.end" : 21, - "key.parsed_scope.start" : 21, - "key.reusingastcontext" : false, - "key.setter_accessibility" : "source.lang.swift.accessibility.public", - "key.typename" : "ViewProperties.CornerCurve", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerCurveOD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11cornerCurveAC06CornerF0Ovp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(clipsToBounds: Bool<\/Type> = false, cornerStyle: CornerStyle<\/Type> = .square, cornerCurve: CornerCurve<\/Type> = .continuous)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 603 - } - ], - "key.bodylength" : 135, - "key.bodyoffset" : 751, - "key.column" : 12, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates new view properties.", - "key.doc.column" : 12, - "key.doc.comment" : "Creates new view properties.", - "key.doc.declaration" : "public init(clipsToBounds: Bool = false, cornerStyle: CornerStyle = .square, cornerCurve: CornerCurve = .continuous)", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "init(clipsToBounds:cornerStyle:cornerCurve:)<\/Name>s:10ListableUI14ViewPropertiesV13clipsToBounds11cornerStyle0H5CurveACSb_AC06CornerI0OAC0kJ0Otcfc<\/USR>public init(clipsToBounds: Bool = false, cornerStyle: CornerStyle = .square, cornerCurve: CornerCurve = .continuous)<\/Declaration>Creates new view properties.<\/Para><\/Abstract><\/CommentParts><\/Function>", - "key.doc.line" : 24, - "key.doc.name" : "init(clipsToBounds:cornerStyle:cornerCurve:)", - "key.doc.type" : "Function", - "key.doclength" : 33, - "key.docoffset" : 566, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(clipsToBounds<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, cornerStyle<\/decl.var.parameter.argument_label>: CornerStyle<\/ref.enum><\/decl.var.parameter.type> = .square<\/decl.var.parameter>, cornerCurve<\/decl.var.parameter.argument_label>: CornerCurve<\/ref.enum><\/decl.var.parameter.type> = .continuous<\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 277, - "key.line" : 24, - "key.modulename" : "ListableUI", - "key.name" : "init(clipsToBounds:cornerStyle:cornerCurve:)", - "key.namelength" : 139, - "key.nameoffset" : 610, - "key.offset" : 610, - "key.parsed_declaration" : "public init(\n clipsToBounds: Bool = false,\n cornerStyle: CornerStyle = .square,\n cornerCurve: CornerCurve = .continuous\n)", - "key.parsed_scope.end" : 33, - "key.parsed_scope.start" : 24, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ViewProperties.Type) -> (Bool, ViewProperties.CornerStyle, ViewProperties.CornerCurve) -> ViewProperties", - "key.typeusr" : "$s13clipsToBounds11cornerStyle0D5Curve10ListableUI14ViewPropertiesVSb_AF06CornerE0OAF0kF0OtcD", - "key.usr" : "s:10ListableUI14ViewPropertiesV13clipsToBounds11cornerStyle0H5CurveACSb_AC06CornerI0OAC0kJ0Otcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public func apply(to view: UIView<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 897 - } - ], - "key.bodylength" : 793, - "key.bodyoffset" : 934, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 824, - "key.line" : 35, - "key.modulename" : "ListableUI", - "key.name" : "apply(to:)", - "key.namelength" : 23, - "key.nameoffset" : 909, - "key.offset" : 904, - "key.parsed_declaration" : "public func apply(to view : UIView)", - "key.parsed_scope.end" : 57, - "key.parsed_scope.start" : 35, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.annotated_decl" : "let cornerRadius: CGFloat<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cornerRadius<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 55, - "key.line" : 37, - "key.modulename" : "ListableUI", - "key.name" : "cornerRadius", - "key.namelength" : 12, - "key.nameoffset" : 956, - "key.offset" : 952, - "key.parsed_declaration" : "let cornerRadius = cornerStyle.radius(for: view.bounds)", - "key.parsed_scope.end" : 37, - "key.parsed_scope.start" : 37, - "key.reusingastcontext" : false, - "key.typename" : "CGFloat", - "key.typeusr" : "$s14CoreFoundation7CGFloatVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV5apply2toySo6UIViewC_tF12cornerRadiusL_14CoreFoundation7CGFloatVvp" - }, - { - "key.annotated_decl" : "let clipsToBounds: Bool<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "We check `cornerRadius`, because clipping is required for corner radii to affect view content.", - "key.doc.column" : 13, - "key.doc.comment" : "We check `cornerRadius`, because clipping is required for corner radii to affect view content.", - "key.doc.declaration" : "let clipsToBounds: Bool", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "clipsToBounds<\/Name>s:10ListableUI14ViewPropertiesV5apply2toySo6UIViewC_tF13clipsToBoundsL_Sbvp<\/USR>let clipsToBounds: Bool<\/Declaration>We check cornerRadius<\/codeVoice>, because clipping is required for corner radii to affect view content.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 40, - "key.doc.name" : "clipsToBounds", - "key.doc.type" : "Other", - "key.doclength" : 99, - "key.docoffset" : 1025, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> clipsToBounds<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 53, - "key.line" : 40, - "key.modulename" : "ListableUI", - "key.name" : "clipsToBounds", - "key.namelength" : 13, - "key.nameoffset" : 1136, - "key.offset" : 1132, - "key.parsed_declaration" : "let clipsToBounds = clipsToBounds || cornerRadius > 0", - "key.parsed_scope.end" : 40, - "key.parsed_scope.start" : 40, - "key.reusingastcontext" : false, - "key.typename" : "Bool", - "key.typeusr" : "$sSbD", - "key.usr" : "s:10ListableUI14ViewPropertiesV5apply2toySo6UIViewC_tF13clipsToBoundsL_Sbvp" - } - ], - "key.typename" : "(ViewProperties) -> (UIView) -> ()", - "key.typeusr" : "$s2toySo6UIViewC_tcD", - "key.usr" : "s:10ListableUI14ViewPropertiesV5apply2toySo6UIViewC_tF" - } - ], - "key.typename" : "ViewProperties.Type", - "key.typeusr" : "$s10ListableUI14ViewPropertiesVmD", - "key.usr" : "s:10ListableUI14ViewPropertiesV" - }, - { - "key.annotated_decl" : "public struct ViewProperties<\/Declaration>", - "key.bodylength" : 1950, - "key.bodyoffset" : 1759, - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the properties to apply to a view for an `ItemContent` or `HeaderFooterContent`", - "key.doc.column" : 15, - "key.doc.declaration" : "public struct ViewProperties", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "ViewProperties<\/Name>s:10ListableUI14ViewPropertiesV<\/USR>public struct ViewProperties<\/Declaration>Describes the properties to apply to a view for an ItemContent<\/codeVoice> or HeaderFooterContent<\/codeVoice><\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 12, - "key.doc.name" : "ViewProperties", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ViewProperties<\/decl.name><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1977, - "key.line" : 12, - "key.modulename" : "ListableUI", - "key.name" : "ViewProperties", - "key.namelength" : 14, - "key.nameoffset" : 1743, - "key.offset" : 1733, - "key.parsed_declaration" : "extension ViewProperties", - "key.parsed_scope.end" : 113, - "key.parsed_scope.start" : 61, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum CornerStyle : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 1819 - } - ], - "key.bodylength" : 1319, - "key.bodyoffset" : 1855, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The style of corners to draw on the view.", - "key.doc.column" : 17, - "key.doc.comment" : "The style of corners to draw on the view.", - "key.doc.declaration" : "public enum CornerStyle : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "CornerStyle<\/Name>s:10ListableUI14ViewPropertiesV11CornerStyleO<\/USR>public enum CornerStyle : Equatable<\/Declaration>The style of corners to draw on the view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 64, - "key.doc.name" : "CornerStyle", - "key.doc.type" : "Other", - "key.doclength" : 46, - "key.docoffset" : 1769, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 1844 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> CornerStyle<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 1349, - "key.line" : 64, - "key.modulename" : "ListableUI", - "key.name" : "CornerStyle", - "key.namelength" : 11, - "key.nameoffset" : 1831, - "key.offset" : 1826, - "key.parsed_declaration" : "public enum CornerStyle: Equatable", - "key.parsed_scope.end" : 95, - "key.parsed_scope.start" : 64, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 11, - "key.offset" : 1916, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case square<\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Regular, non-rounded corners.", - "key.doc.column" : 15, - "key.doc.comment" : "Regular, non-rounded corners.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "square<\/Name>s:10ListableUI14ViewPropertiesV11CornerStyleO6squareyA2EmF<\/USR><\/Declaration>Regular, non-rounded corners.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 67, - "key.doc.name" : "square", - "key.doc.type" : "Other", - "key.doclength" : 34, - "key.docoffset" : 1873, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> square<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 6, - "key.line" : 67, - "key.modulename" : "ListableUI", - "key.name" : "square", - "key.namelength" : 6, - "key.nameoffset" : 1921, - "key.offset" : 1921, - "key.parsed_declaration" : "case square", - "key.parsed_scope.end" : 67, - "key.parsed_scope.start" : 67, - "key.reusingastcontext" : false, - "key.typename" : "(ViewProperties.CornerStyle.Type) -> ViewProperties.CornerStyle", - "key.typeusr" : "$sy10ListableUI14ViewPropertiesV11CornerStyleOAEmcD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO6squareyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 12, - "key.offset" : 2091, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case capsule<\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Capsule-style corners will be rendered. Eg, the corner radii is the same\nas the view height or width, whichever is less.", - "key.doc.column" : 15, - "key.doc.comment" : "Capsule-style corners will be rendered. Eg, the corner radii is the same\nas the view height or width, whichever is less.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "capsule<\/Name>s:10ListableUI14ViewPropertiesV11CornerStyleO7capsuleyA2EmF<\/USR><\/Declaration>Capsule-style corners will be rendered. Eg, the corner radii is the same as the view height or width, whichever is less.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 71, - "key.doc.name" : "capsule", - "key.doc.type" : "Other", - "key.doclength" : 137, - "key.docoffset" : 1945, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> capsule<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 7, - "key.line" : 71, - "key.modulename" : "ListableUI", - "key.name" : "capsule", - "key.namelength" : 7, - "key.nameoffset" : 2096, - "key.offset" : 2096, - "key.parsed_declaration" : "case capsule", - "key.parsed_scope.end" : 71, - "key.parsed_scope.start" : 71, - "key.reusingastcontext" : false, - "key.typename" : "(ViewProperties.CornerStyle.Type) -> ViewProperties.CornerStyle", - "key.typeusr" : "$sy10ListableUI14ViewPropertiesV11CornerStyleOAEmcD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7capsuleyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 54, - "key.offset" : 2190, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case rounded(radius: CGFloat<\/Type>, corners: Corners<\/Type> = .all)<\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The provided radii is applied to the specified corners.", - "key.doc.column" : 15, - "key.doc.comment" : "The provided radii is applied to the specified corners.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "rounded(radius:corners:)<\/Name>s:10ListableUI14ViewPropertiesV11CornerStyleO7roundedyAE14CoreFoundation7CGFloatV_AE7CornersVtcAEmF<\/USR><\/Declaration>The provided radii is applied to the specified corners.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 74, - "key.doc.name" : "rounded(radius:corners:)", - "key.doc.type" : "Other", - "key.doclength" : 60, - "key.docoffset" : 2121, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> rounded<\/decl.name>(radius<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, corners<\/decl.var.parameter.argument_label>: Corners<\/ref.struct><\/decl.var.parameter.type> = .all<\/decl.var.parameter>)<\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 49, - "key.line" : 74, - "key.modulename" : "ListableUI", - "key.name" : "rounded(radius:corners:)", - "key.namelength" : 49, - "key.nameoffset" : 2195, - "key.offset" : 2195, - "key.parsed_declaration" : "case rounded(radius: CGFloat, corners: Corners = .all)", - "key.parsed_scope.end" : 74, - "key.parsed_scope.start" : 74, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ViewProperties.CornerStyle.Type) -> (CGFloat, ViewProperties.CornerStyle.Corners) -> ViewProperties.CornerStyle", - "key.typeusr" : "$sy10ListableUI14ViewPropertiesV11CornerStyleO14CoreFoundation7CGFloatV_AE7CornersVtcAEmcD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7roundedyAE14CoreFoundation7CGFloatV_AE7CornersVtcAEmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public struct ViewProperties<\/Type>.CornerStyle<\/Type>.Corners : OptionSet<\/Type>, Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2312 - } - ], - "key.bodylength" : 810, - "key.bodyoffset" : 2357, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the corners to apply the style to.", - "key.doc.column" : 24, - "key.doc.comment" : "Describes the corners to apply the style to.", - "key.doc.declaration" : "public struct ListableUI.ViewProperties.CornerStyle.Corners : OptionSet, Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "Corners<\/Name>s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV<\/USR>public struct ListableUI.ViewProperties.CornerStyle.Corners : OptionSet, Equatable<\/Declaration>Describes the corners to apply the style to.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 77, - "key.doc.name" : "Corners", - "key.doc.type" : "Class", - "key.doclength" : 49, - "key.docoffset" : 2254, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 2335 - }, - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 2346 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ViewProperties<\/ref.struct>.CornerStyle<\/ref.enum>.Corners<\/decl.name> : OptionSet<\/ref.protocol>, Equatable<\/ref.protocol><\/decl.struct>", - "key.inheritedtypes" : [ - { - "key.name" : "OptionSet" - }, - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.struct", - "key.length" : 849, - "key.line" : 77, - "key.modulename" : "ListableUI", - "key.name" : "Corners", - "key.namelength" : 7, - "key.nameoffset" : 2326, - "key.offset" : 2319, - "key.parsed_declaration" : "public struct Corners: OptionSet, Equatable", - "key.parsed_scope.end" : 94, - "key.parsed_scope.start" : 77, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public let rawValue: UInt8<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2371 - } - ], - "key.column" : 25, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The corresponding value of the raw type.\n\nA new instance initialized with `rawValue` will be equivalent to this\ninstance. For example:\n\n enum PaperSize: String {\n case A4, A5, Letter, Legal\n }\n\n let selectedSize = PaperSize.Letter\n print(selectedSize.rawValue)\n \/\/ Prints \"Letter\"\n\n print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)\n \/\/ Prints \"true\"", - "key.doc.declaration" : "var rawValue: Self.RawValue { get }", - "key.doc.discussion" : [ - { - "Para" : "A new instance initialized with `rawValue` will be equivalent to this instance. For example:" - }, - { - "CodeListing" : "" - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "rawValue<\/Name>s:SY8rawValue03RawB0Qzvp<\/USR>var rawValue: Self.RawValue { get }<\/Declaration>The corresponding value of the raw type.<\/Para><\/Abstract>A new instance initialized with rawValue<\/codeVoice> will be equivalent to this instance. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>This documentation comment was inherited from RawRepresentable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>", - "key.doc.name" : "rawValue", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> rawValue<\/decl.name>: UInt8<\/ref.struct><\/decl.var.type><\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 19, - "key.line" : 78, - "key.modulename" : "ListableUI", - "key.name" : "rawValue", - "key.namelength" : 8, - "key.nameoffset" : 2382, - "key.offset" : 2378, - "key.overrides" : [ - { - "key.usr" : "s:SY8rawValue03RawB0Qzvp" - } - ], - "key.parsed_declaration" : "public let rawValue: UInt8", - "key.parsed_scope.end" : 78, - "key.parsed_scope.start" : 78, - "key.reusingastcontext" : false, - "key.typename" : "UInt8", - "key.typeusr" : "$ss5UInt8VD", - "key.usr" : "s:SY8rawValue03RawB0Qzvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public init(rawValue: UInt8<\/Type>)<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2412 - } - ], - "key.bodylength" : 56, - "key.bodyoffset" : 2442, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Creates a new option set from the given raw value.\n\nThis initializer always succeeds, even if the value passed as `rawValue`\nexceeds the static properties declared as part of the option set. This\nexample creates an instance of `ShippingOptions` with a raw value beyond\nthe highest element, with a bit mask that effectively contains all the\ndeclared static members.\n\n let extraOptions = ShippingOptions(rawValue: 255)\n print(extraOptions.isStrictSuperset(of: .all))\n \/\/ Prints \"true\"\n\n- Parameter rawValue: The raw value of the option set to create. Each bit\n of `rawValue` potentially represents an element of the option set,\n though raw values may include bits that are not defined as distinct\n values of the `OptionSet` type.", - "key.doc.declaration" : "init(rawValue: Self.RawValue)", - "key.doc.discussion" : [ - { - "Para" : "This initializer always succeeds, even if the value passed as `rawValue` exceeds the static properties declared as part of the option set. This example creates an instance of `ShippingOptions` with a raw value beyond the highest element, with a bit mask that effectively contains all the declared static members." - }, - { - "CodeListing" : "" - }, - { - "Note" : "" - } - ], - "key.doc.full_as_xml" : "init(rawValue:)<\/Name>s:s9OptionSetP8rawValuex03RawD0Qz_tcfc<\/USR>init(rawValue: Self.RawValue)<\/Declaration>Creates a new option set from the given raw value.<\/Para><\/Abstract>rawValue<\/Name>in<\/Direction>The raw value of the option set to create. Each bit of rawValue<\/codeVoice> potentially represents an element of the option set, though raw values may include bits that are not defined as distinct values of the OptionSet<\/codeVoice> type.<\/Para><\/Discussion><\/Parameter><\/Parameters>This initializer always succeeds, even if the value passed as rawValue<\/codeVoice> exceeds the static properties declared as part of the option set. This example creates an instance of ShippingOptions<\/codeVoice> with a raw value beyond the highest element, with a bit mask that effectively contains all the declared static members.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>This documentation comment was inherited from OptionSet<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>", - "key.doc.name" : "init(rawValue:)", - "key.doc.parameters" : [ - { - "discussion" : [ - { - "Para" : "The raw value of the option set to create. Each bit of `rawValue` potentially represents an element of the option set, though raw values may include bits that are not defined as distinct values of the `OptionSet` type." - } - ], - "name" : "rawValue" - } - ], - "key.doc.type" : "Function", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(rawValue<\/decl.var.parameter.argument_label>: UInt8<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 80, - "key.line" : 80, - "key.modulename" : "ListableUI", - "key.name" : "init(rawValue:)", - "key.namelength" : 21, - "key.nameoffset" : 2419, - "key.offset" : 2419, - "key.overrides" : [ - { - "key.usr" : "s:s9OptionSetP8rawValuex03RawD0Qz_tcfc" - }, - { - "key.usr" : "s:SY8rawValuexSg03RawB0Qz_tcfc" - } - ], - "key.parsed_declaration" : "public init(rawValue: UInt8)", - "key.parsed_scope.end" : 82, - "key.parsed_scope.start" : 80, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ViewProperties.CornerStyle.Corners.Type) -> (UInt8) -> ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s8rawValue10ListableUI14ViewPropertiesV11CornerStyleO7CornersVs5UInt8V_tcD", - "key.usr" : "s:s9OptionSetP8rawValuex03RawD0Qz_tcfc" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let topLeft: ViewProperties<\/Type>.CornerStyle<\/Type>.Corners<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2514 - } - ], - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> topLeft<\/decl.name>: ViewProperties<\/ref.struct>.CornerStyle<\/ref.enum>.Corners<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 41, - "key.line" : 84, - "key.modulename" : "ListableUI", - "key.name" : "topLeft", - "key.namelength" : 7, - "key.nameoffset" : 2532, - "key.offset" : 2521, - "key.parsed_declaration" : "public static let topLeft = Corners(rawValue: 1)", - "key.parsed_scope.end" : 84, - "key.parsed_scope.start" : 84, - "key.reusingastcontext" : false, - "key.typename" : "ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV7topLeftAGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let topRight: ViewProperties<\/Type>.CornerStyle<\/Type>.Corners<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2576 - } - ], - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> topRight<\/decl.name>: ViewProperties<\/ref.struct>.CornerStyle<\/ref.enum>.Corners<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 47, - "key.line" : 85, - "key.modulename" : "ListableUI", - "key.name" : "topRight", - "key.namelength" : 8, - "key.nameoffset" : 2594, - "key.offset" : 2583, - "key.parsed_declaration" : "public static let topRight = Corners(rawValue: 1 << 1)", - "key.parsed_scope.end" : 85, - "key.parsed_scope.start" : 85, - "key.reusingastcontext" : false, - "key.typename" : "ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV8topRightAGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let bottomLeft: ViewProperties<\/Type>.CornerStyle<\/Type>.Corners<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2644 - } - ], - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> bottomLeft<\/decl.name>: ViewProperties<\/ref.struct>.CornerStyle<\/ref.enum>.Corners<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 49, - "key.line" : 86, - "key.modulename" : "ListableUI", - "key.name" : "bottomLeft", - "key.namelength" : 10, - "key.nameoffset" : 2662, - "key.offset" : 2651, - "key.parsed_declaration" : "public static let bottomLeft = Corners(rawValue: 1 << 2)", - "key.parsed_scope.end" : 86, - "key.parsed_scope.start" : 86, - "key.reusingastcontext" : false, - "key.typename" : "ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV10bottomLeftAGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let bottomRight: ViewProperties<\/Type>.CornerStyle<\/Type>.Corners<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2714 - } - ], - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> bottomRight<\/decl.name>: ViewProperties<\/ref.struct>.CornerStyle<\/ref.enum>.Corners<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 50, - "key.line" : 87, - "key.modulename" : "ListableUI", - "key.name" : "bottomRight", - "key.namelength" : 11, - "key.nameoffset" : 2732, - "key.offset" : 2721, - "key.parsed_declaration" : "public static let bottomRight = Corners(rawValue: 1 << 3)", - "key.parsed_scope.end" : 87, - "key.parsed_scope.start" : 87, - "key.reusingastcontext" : false, - "key.typename" : "ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV11bottomRightAGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let all: Corners<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2786 - } - ], - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> all<\/decl.name>: Corners<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 74, - "key.line" : 89, - "key.modulename" : "ListableUI", - "key.name" : "all", - "key.namelength" : 3, - "key.nameoffset" : 2804, - "key.offset" : 2793, - "key.parsed_declaration" : "public static let all: Corners = [.topLeft, .topRight, .bottomLeft, .bottomRight]", - "key.parsed_scope.end" : 89, - "key.parsed_scope.start" : 89, - "key.reusingastcontext" : false, - "key.typename" : "ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV3allAGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let top: Corners<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2881 - } - ], - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> top<\/decl.name>: Corners<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 47, - "key.line" : 90, - "key.modulename" : "ListableUI", - "key.name" : "top", - "key.namelength" : 3, - "key.nameoffset" : 2899, - "key.offset" : 2888, - "key.parsed_declaration" : "public static let top: Corners = [.topRight, .topLeft]", - "key.parsed_scope.end" : 90, - "key.parsed_scope.start" : 90, - "key.reusingastcontext" : false, - "key.typename" : "ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV3topAGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let left: Corners<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 2949 - } - ], - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> left<\/decl.name>: Corners<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 50, - "key.line" : 91, - "key.modulename" : "ListableUI", - "key.name" : "left", - "key.namelength" : 4, - "key.nameoffset" : 2967, - "key.offset" : 2956, - "key.parsed_declaration" : "public static let left: Corners = [.topLeft, .bottomLeft]", - "key.parsed_scope.end" : 91, - "key.parsed_scope.start" : 91, - "key.reusingastcontext" : false, - "key.typename" : "ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV4leftAGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let bottom: Corners<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3020 - } - ], - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> bottom<\/decl.name>: Corners<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 56, - "key.line" : 92, - "key.modulename" : "ListableUI", - "key.name" : "bottom", - "key.namelength" : 6, - "key.nameoffset" : 3038, - "key.offset" : 3027, - "key.parsed_declaration" : "public static let bottom: Corners = [.bottomLeft, .bottomRight]", - "key.parsed_scope.end" : 92, - "key.parsed_scope.start" : 92, - "key.reusingastcontext" : false, - "key.typename" : "ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV6bottomAGvpZ" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public static let right: Corners<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3097 - } - ], - "key.column" : 32, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> right<\/decl.name>: Corners<\/ref.struct><\/decl.var.type><\/decl.var.static>", - "key.kind" : "source.lang.swift.decl.var.static", - "key.length" : 53, - "key.line" : 93, - "key.modulename" : "ListableUI", - "key.name" : "right", - "key.namelength" : 5, - "key.nameoffset" : 3115, - "key.offset" : 3104, - "key.parsed_declaration" : "public static let right: Corners = [.topRight, .bottomRight]", - "key.parsed_scope.end" : 93, - "key.parsed_scope.start" : 93, - "key.reusingastcontext" : false, - "key.typename" : "ViewProperties.CornerStyle.Corners", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV5rightAGvpZ" - } - ], - "key.typename" : "ViewProperties.CornerStyle.Corners.Type", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVmD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV" - } - ], - "key.typename" : "ViewProperties.CornerStyle.Type", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleOmD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "public enum CornerCurve : Equatable<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.public", - "key.length" : 6, - "key.offset" : 3258 - } - ], - "key.bodylength" : 413, - "key.bodyoffset" : 3294, - "key.column" : 18, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Specifies the curve style when showing rounded corners on a `Box`.", - "key.doc.column" : 18, - "key.doc.comment" : "Specifies the curve style when showing rounded corners on a `Box`.", - "key.doc.declaration" : "public enum CornerCurve : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "CornerCurve<\/Name>s:10ListableUI14ViewPropertiesV11CornerCurveO<\/USR>public enum CornerCurve : Equatable<\/Declaration>Specifies the curve style when showing rounded corners on a Box<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 98, - "key.doc.name" : "CornerCurve", - "key.doc.type" : "Other", - "key.doclength" : 71, - "key.docoffset" : 3182, - "key.elements" : [ - { - "key.kind" : "source.lang.swift.structure.elem.typeref", - "key.length" : 9, - "key.offset" : 3283 - } - ], - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> CornerCurve<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.inheritedtypes" : [ - { - "key.name" : "Equatable" - } - ], - "key.kind" : "source.lang.swift.decl.enum", - "key.length" : 443, - "key.line" : 98, - "key.modulename" : "ListableUI", - "key.name" : "CornerCurve", - "key.namelength" : 11, - "key.nameoffset" : 3270, - "key.offset" : 3265, - "key.parsed_declaration" : "public enum CornerCurve: Equatable", - "key.parsed_scope.end" : 112, - "key.parsed_scope.start" : 98, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 13, - "key.offset" : 3403, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case circular<\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides a standard-style corner radius as you would see in design tools like Figma.", - "key.doc.column" : 15, - "key.doc.comment" : "Provides a standard-style corner radius as you would see in design tools like Figma.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "circular<\/Name>s:10ListableUI14ViewPropertiesV11CornerCurveO8circularyA2EmF<\/USR><\/Declaration>Provides a standard-style corner radius as you would see in design tools like Figma.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 101, - "key.doc.name" : "circular", - "key.doc.type" : "Other", - "key.doclength" : 89, - "key.docoffset" : 3305, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> circular<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 8, - "key.line" : 101, - "key.modulename" : "ListableUI", - "key.name" : "circular", - "key.namelength" : 8, - "key.nameoffset" : 3408, - "key.offset" : 3408, - "key.parsed_declaration" : "case circular", - "key.parsed_scope.end" : 101, - "key.parsed_scope.start" : 101, - "key.reusingastcontext" : false, - "key.typename" : "(ViewProperties.CornerCurve.Type) -> ViewProperties.CornerCurve", - "key.typeusr" : "$sy10ListableUI14ViewPropertiesV11CornerCurveOAEmcD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerCurveO8circularyA2EmF" - } - ] - }, - { - "key.kind" : "source.lang.swift.decl.enumcase", - "key.length" : 15, - "key.offset" : 3482, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.public", - "key.annotated_decl" : "case continuous<\/Declaration>", - "key.column" : 15, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Provides an iOS icon-style corner radius.", - "key.doc.column" : 15, - "key.doc.comment" : "Provides an iOS icon-style corner radius.", - "key.doc.declaration" : "", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "continuous<\/Name>s:10ListableUI14ViewPropertiesV11CornerCurveO10continuousyA2EmF<\/USR><\/Declaration>Provides an iOS icon-style corner radius.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 104, - "key.doc.name" : "continuous", - "key.doc.type" : "Other", - "key.doclength" : 46, - "key.docoffset" : 3427, - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> continuous<\/decl.name><\/decl.enumelement>", - "key.kind" : "source.lang.swift.decl.enumelement", - "key.length" : 10, - "key.line" : 104, - "key.modulename" : "ListableUI", - "key.name" : "continuous", - "key.namelength" : 10, - "key.nameoffset" : 3487, - "key.offset" : 3487, - "key.parsed_declaration" : "case continuous", - "key.parsed_scope.end" : 104, - "key.parsed_scope.start" : 104, - "key.reusingastcontext" : false, - "key.typename" : "(ViewProperties.CornerCurve.Type) -> ViewProperties.CornerCurve", - "key.typeusr" : "$sy10ListableUI14ViewPropertiesV11CornerCurveOAEmcD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerCurveO10continuousyA2EmF" - } - ] - }, - { - "key.accessibility" : "source.lang.swift.accessibility.internal", - "key.annotated_decl" : "var toLayerCornerCurve: CALayerCornerCurve<\/Type> { get }<\/Declaration>", - "key.bodylength" : 148, - "key.bodyoffset" : 3552, - "key.column" : 14, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toLayerCornerCurve<\/decl.name>: CALayerCornerCurve<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 193, - "key.line" : 106, - "key.modulename" : "ListableUI", - "key.name" : "toLayerCornerCurve", - "key.namelength" : 18, - "key.nameoffset" : 3512, - "key.offset" : 3508, - "key.parsed_declaration" : "var toLayerCornerCurve: CALayerCornerCurve", - "key.parsed_scope.end" : 111, - "key.parsed_scope.start" : 106, - "key.reusingastcontext" : false, - "key.typename" : "CALayerCornerCurve", - "key.typeusr" : "$sSo18CALayerCornerCurveaD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerCurveO07toLayereF0So07CALayereF0avp" - } - ], - "key.typename" : "ViewProperties.CornerCurve.Type", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerCurveOmD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerCurveO" - } - ], - "key.typename" : "ViewProperties.Type", - "key.typeusr" : "$s10ListableUI14ViewPropertiesVmD", - "key.usr" : "s:10ListableUI14ViewPropertiesV" - }, - { - "key.annotated_decl" : "public enum CornerStyle : Equatable<\/Type><\/Declaration>", - "key.bodylength" : 884, - "key.bodyoffset" : 3751, - "key.column" : 17, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "The style of corners to draw on the view.", - "key.doc.column" : 17, - "key.doc.declaration" : "public enum CornerStyle : Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "CornerStyle<\/Name>s:10ListableUI14ViewPropertiesV11CornerStyleO<\/USR>public enum CornerStyle : Equatable<\/Declaration>The style of corners to draw on the view.<\/Para><\/Abstract><\/CommentParts><\/Other>", - "key.doc.line" : 64, - "key.doc.name" : "CornerStyle", - "key.doc.type" : "Other", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> CornerStyle<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 923, - "key.line" : 64, - "key.modulename" : "ListableUI", - "key.name" : "ViewProperties.CornerStyle", - "key.namelength" : 26, - "key.nameoffset" : 3723, - "key.offset" : 3713, - "key.parsed_declaration" : "extension ViewProperties.CornerStyle", - "key.parsed_scope.end" : 147, - "key.parsed_scope.start" : 116, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate func radius(for bounds: CGRect<\/Type>) -> CGFloat<\/Type><\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 3757 - } - ], - "key.bodylength" : 320, - "key.bodyoffset" : 3813, - "key.column" : 22, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> func<\/syntaxtype.keyword> radius<\/decl.name>(for<\/decl.var.parameter.argument_label> bounds<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>", - "key.kind" : "source.lang.swift.decl.function.method.instance", - "key.length" : 365, - "key.line" : 118, - "key.modulename" : "ListableUI", - "key.name" : "radius(for:)", - "key.namelength" : 26, - "key.nameoffset" : 3774, - "key.offset" : 3769, - "key.parsed_declaration" : "fileprivate func radius(for bounds: CGRect) -> CGFloat", - "key.parsed_scope.end" : 128, - "key.parsed_scope.start" : 118, - "key.reusingastcontext" : false, - "key.substructure" : [ - - ], - "key.typename" : "(ViewProperties.CornerStyle) -> (CGRect) -> CGFloat", - "key.typeusr" : "$s3for14CoreFoundation7CGFloatVSo6CGRectV_tcD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO6radius019_786D7F8E6F6C544695j8AA059778J2CCLL3for14CoreFoundation7CGFloatVSo6CGRectV_tF" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate var cornerMask: CACornerMask<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 4140 - } - ], - "key.bodylength" : 196, - "key.bodyoffset" : 4182, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> var<\/syntaxtype.keyword> cornerMask<\/decl.name>: CACornerMask<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 227, - "key.line" : 130, - "key.modulename" : "ListableUI", - "key.name" : "cornerMask", - "key.namelength" : 10, - "key.nameoffset" : 4156, - "key.offset" : 4152, - "key.parsed_declaration" : "fileprivate var cornerMask: CACornerMask", - "key.parsed_scope.end" : 137, - "key.parsed_scope.start" : 130, - "key.reusingastcontext" : false, - "key.typename" : "CACornerMask", - "key.typeusr" : "$sSo12CACornerMaskVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO10cornerMask019_786D7F8E6F6C544695k8AA059778K2CCLLSo08CACornerH0Vvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate var shadowRoundedCorners: UIRectCorner<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 4385 - } - ], - "key.bodylength" : 196, - "key.bodyoffset" : 4437, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> var<\/syntaxtype.keyword> shadowRoundedCorners<\/decl.name>: UIRectCorner<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 237, - "key.line" : 139, - "key.modulename" : "ListableUI", - "key.name" : "shadowRoundedCorners", - "key.namelength" : 20, - "key.nameoffset" : 4401, - "key.offset" : 4397, - "key.parsed_declaration" : "fileprivate var shadowRoundedCorners: UIRectCorner", - "key.parsed_scope.end" : 146, - "key.parsed_scope.start" : 139, - "key.reusingastcontext" : false, - "key.typename" : "UIRectCorner", - "key.typeusr" : "$sSo12UIRectCornerVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO20shadowRoundedCorners019_786D7F8E6F6C544695l8AA059778L2CCLLSo06UIRectE0Vvp" - } - ], - "key.typename" : "ViewProperties.CornerStyle.Type", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleOmD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO" - }, - { - "key.annotated_decl" : "public struct ViewProperties<\/Type>.CornerStyle<\/Type>.Corners : OptionSet<\/Type>, Equatable<\/Type><\/Declaration>", - "key.bodylength" : 1021, - "key.bodyoffset" : 4684, - "key.column" : 24, - "key.decl_lang" : "source.lang.swift", - "key.doc_comment" : "Describes the corners to apply the style to.", - "key.doc.column" : 24, - "key.doc.declaration" : "public struct ListableUI.ViewProperties.CornerStyle.Corners : OptionSet, Equatable", - "key.doc.file" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.doc.full_as_xml" : "Corners<\/Name>s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV<\/USR>public struct ListableUI.ViewProperties.CornerStyle.Corners : OptionSet, Equatable<\/Declaration>Describes the corners to apply the style to.<\/Para><\/Abstract><\/CommentParts><\/Class>", - "key.doc.line" : 77, - "key.doc.name" : "Corners", - "key.doc.type" : "Class", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ViewProperties<\/ref.struct>.CornerStyle<\/ref.enum>.Corners<\/decl.name> : OptionSet<\/ref.protocol>, Equatable<\/ref.protocol><\/decl.struct>", - "key.kind" : "source.lang.swift.decl.extension", - "key.length" : 1068, - "key.line" : 77, - "key.modulename" : "ListableUI", - "key.name" : "ViewProperties.CornerStyle.Corners", - "key.namelength" : 34, - "key.nameoffset" : 4648, - "key.offset" : 4638, - "key.parsed_declaration" : "extension ViewProperties.CornerStyle.Corners", - "key.parsed_scope.end" : 192, - "key.parsed_scope.start" : 149, - "key.reusingastcontext" : false, - "key.substructure" : [ - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate var toCACornerMask: CACornerMask<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 4694 - } - ], - "key.bodylength" : 457, - "key.bodyoffset" : 4740, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> var<\/syntaxtype.keyword> toCACornerMask<\/decl.name>: CACornerMask<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 492, - "key.line" : 151, - "key.modulename" : "ListableUI", - "key.name" : "toCACornerMask", - "key.namelength" : 14, - "key.nameoffset" : 4710, - "key.offset" : 4706, - "key.parsed_declaration" : "fileprivate var toCACornerMask: CACornerMask", - "key.parsed_scope.end" : 170, - "key.parsed_scope.start" : 151, - "key.reusingastcontext" : false, - "key.typename" : "CACornerMask", - "key.typeusr" : "$sSo12CACornerMaskVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV14toCACornerMask019_786D7F8E6F6C544695m8AA059778M2CCLLSo0iJ0Vvp" - }, - { - "key.annotated_decl" : "var mask: CACornerMask<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mask<\/decl.name>: CACornerMask<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 27, - "key.line" : 152, - "key.modulename" : "ListableUI", - "key.name" : "mask", - "key.namelength" : 4, - "key.nameoffset" : 4753, - "key.offset" : 4749, - "key.parsed_declaration" : "var mask: CACornerMask = []", - "key.parsed_scope.end" : 152, - "key.parsed_scope.start" : 152, - "key.reusingastcontext" : false, - "key.typename" : "CACornerMask", - "key.typeusr" : "$sSo12CACornerMaskVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV14toCACornerMask019_786D7F8E6F6C544695m8AA059778M2CCLLSo0iJ0Vvg4maskL_AKvp" - }, - { - "key.accessibility" : "source.lang.swift.accessibility.fileprivate", - "key.annotated_decl" : "fileprivate var toUIRectCorner: UIRectCorner<\/Type> { get }<\/Declaration>", - "key.attributes" : [ - { - "key.attribute" : "source.decl.attribute.fileprivate", - "key.length" : 11, - "key.offset" : 5204 - } - ], - "key.bodylength" : 453, - "key.bodyoffset" : 5250, - "key.column" : 21, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> var<\/syntaxtype.keyword> toUIRectCorner<\/decl.name>: UIRectCorner<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>", - "key.kind" : "source.lang.swift.decl.var.instance", - "key.length" : 488, - "key.line" : 172, - "key.modulename" : "ListableUI", - "key.name" : "toUIRectCorner", - "key.namelength" : 14, - "key.nameoffset" : 5220, - "key.offset" : 5216, - "key.parsed_declaration" : "fileprivate var toUIRectCorner: UIRectCorner", - "key.parsed_scope.end" : 191, - "key.parsed_scope.start" : 172, - "key.reusingastcontext" : false, - "key.typename" : "UIRectCorner", - "key.typeusr" : "$sSo12UIRectCornerVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV08toUIRectE0019_786D7F8E6F6C544695l8AA059778L2CCLLSo0iE0Vvp" - }, - { - "key.annotated_decl" : "var rectCorner: UIRectCorner<\/Type><\/Declaration>", - "key.column" : 13, - "key.decl_lang" : "source.lang.swift", - "key.filepath" : "\/Users\/johnnewman\/Development\/Listable\/ListableUI\/Sources\/ViewProperties.swift", - "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> rectCorner<\/decl.name>: UIRectCorner<\/ref.struct><\/decl.var.type><\/decl.var.local>", - "key.kind" : "source.lang.swift.decl.var.local", - "key.length" : 33, - "key.line" : 173, - "key.modulename" : "ListableUI", - "key.name" : "rectCorner", - "key.namelength" : 10, - "key.nameoffset" : 5263, - "key.offset" : 5259, - "key.parsed_declaration" : "var rectCorner: UIRectCorner = []", - "key.parsed_scope.end" : 173, - "key.parsed_scope.start" : 173, - "key.reusingastcontext" : false, - "key.typename" : "UIRectCorner", - "key.typeusr" : "$sSo12UIRectCornerVD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV08toUIRectE0019_786D7F8E6F6C544695l8AA059778L2CCLLSo0iE0Vvg04rectE0L_AKvp" - } - ], - "key.typename" : "ViewProperties.CornerStyle.Corners.Type", - "key.typeusr" : "$s10ListableUI14ViewPropertiesV11CornerStyleO7CornersVmD", - "key.usr" : "s:10ListableUI14ViewPropertiesV11CornerStyleO7CornersV" - } - ] - } -}] diff --git a/docs/Listable/undocumented.json b/docs/Listable/undocumented.json deleted file mode 100644 index 0aeab5a5d..000000000 --- a/docs/Listable/undocumented.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "warnings": [], - "source_directory": "/Users/johnnewman/Development/Listable" -} \ No newline at end of file From bc055411a5fbf1dbf0f090fabda345ce7a7a7132 Mon Sep 17 00:00:00 2001 From: Alex Odawa Date: Wed, 27 May 2026 17:47:32 +0200 Subject: [PATCH 2/2] Bumping versions to 17.0.1. --- CHANGELOG.md | 8 ++++++-- .../BlueprintLists/docsets/BlueprintLists.tgz | Bin 105042 -> 109321 bytes docs/Listable/docsets/Listable.tgz | Bin 1136415 -> 1196932 bytes version.rb | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d486abc46..79cdb5b82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,6 @@ ### Fixed -- Hid swipe action buttons from VoiceOver while the swipe is closed. The buttons become accessibility elements again once the swipe is open, so the row's `accessibilityCustomActions` no longer competes with invisible, off-screen buttons. - ### Added ### Removed @@ -16,6 +14,12 @@ # Past Releases +# 17.0.1 - 2026-05-27 + +### Fixed + +- Hid swipe action buttons from VoiceOver while the swipe is closed. The buttons become accessibility elements again once the swipe is open, so the row's `accessibilityCustomActions` no longer competes with invisible, off-screen buttons. + # 17.0.0 - 2026-02-25 ### Changed diff --git a/docs/BlueprintLists/docsets/BlueprintLists.tgz b/docs/BlueprintLists/docsets/BlueprintLists.tgz index 96712fba67c59978ac92ee71ac705f306b22e632..2d91a0a1225db4d1e53a6ad98924e86c76576df8 100644 GIT binary patch literal 109321 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

Hpyg?Cn>PyrSU$Y|{jMfiEW7ol+^Sh{C8ZaKw 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 Xg&4r^G7_9gB$iW8%>rn?X6b* zWsY2XQjv&rxGIU!2y-i55T}(pM^s{`{(i@rsxa@eJx@=OSKHp~ID#9Xj92ΠnZZ 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%0Ap0 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

B4NIB@^C!ZFN1eKuP?fxE!LnJfCV&_Brb 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 diff --git a/docs/Listable/docsets/Listable.tgz b/docs/Listable/docsets/Listable.tgz index 25758504157af759e2a1bee22ba2bfd7624ba48f..fcfe610e185f657a4cd4bada8edb82fe42f23f29 100644 GIT binary patch literal 1196932 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

7J$*-;)EY8Ejij?V^`niLElb~1sG_3L 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

eEDAxNRfE#o<06dudyELW)bb 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%0D;D$9r$bGhd97xriqHeY?AS{ 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�L7pVZT1?BCS$ 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%0AFI2Nun^TApLa07_ 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%0A1VfT68P9rVR-M3GbI~!ct|o} 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

D6uM!NXGOSv+6N-9?BW1Axp7{^?uzy4Yu>(#X z8@oFi8AWuNGU{-U&YVNH>h+P3nA;Z9k^xi}2LBKcKgoHv-_8%UXZE1rpFDzS>OR-8 zNp+41LrnLb*cr=wyUz4{o%UpnRj6rQT_J??1G`9i(SK|-NTPf#gSmtlOjG0J7C7@? zP;tj?SS3u7Q50OULr_#q@N8e<%3@CazGX;?o)Yg@G#+CO&{cQ%6A!;xZh4@(82p?@ z%97*QCK#PaA~vhsHfd7l@bf43<=N>N{7ZdZXNKzWUH#NUC4|kDYb}lObXWw7mR+@FQ_E!C`J62xTEihj^bscSWdmCLtK=0%4-bNGX zN4oJ`R@YWnmzSOE?o65+YZ~k8s_JW=Ozd6fA5M?O_qPsGYmQ>~(i8WM{}-a-QPTe= zD!#a~M0>*Jp=xplU27P*eA{^I1ZRoVFp^3ab5BjE(!iB+0arz)8|J}ipF(T5XEv*C$jl(0wPB=%$zW3 zPJJ0Y-rm0=MZmoHVif?G7f)Z1{ZSndt`G2~!3np`Ltw;iLT45lDC?>Clz7b%9A9Sp z%{$TcsCuzTlm*P6@=T{SUx>B>-mH4G2y!@Nq@Qf@#*Uu@qhud)v(j=0{gIDql9p!u z1R*7-ArgkR3v0_f$&>z+NsR-y`fi)Bs=HxnD4_r?M5UyZd6TM7wUjc_BINMb?ye@g z*G1og{|GsoJX4|fdT`8_>I)GW9op3B10^m@(2e>eQBD87T~*Sun$r8yAsG!uS2zUZ zN{>_>qP$|Cg;?YB@k&dJ4bnh++RXHUv1?-GhQa}qXY8uA1$I|D+4%DtU27tISMo;b z1*@{y=?!J$z=01@gmsxH^~7cG8kNM7r$Q?A%i1{fL(*GAKo%oQsOz8@h!7B7FfPl`*%yN$ z242kr?iHJa)2dDi#D1@cx{T^!+_6q^y|urMM>A+C3Ex~Un-jzVp*bTuV1NU|Tu^)< zB!mHTAMi?Viih{FK5i?p2RNcFSnq4_5L0u+i4osRaDy*MIZ|aUOGw*?C>iqpq`+lLH)W50 z(cdu$0+95DH#x9esH&33AW+12pEGzPW%Z6xN&he%y(xIi7vvC+0*g-J+&}es7h1$> za7`^+`Q3k@J?ycAm06e~cQ|Q)PLjZepM7W(@b#aFZ(oa?QHN(+VOFXmDA<0HL8mXI zQKUONFQk?os{i7pIubXqB9Y=Uyom29cwoe{(SuiE7e57O)$N>{>Yd)a8bVdwbG`+~CM=6MHKDf-DSQ_!d?YL9eZ2FFkSutpuZ!#TtcbiUR!71`QDwST^ zXgG2Hi#3-WKk~no0D@uDq23p`&uFCyrYA%BVY}InWG_(uGLpjdaBX7FHH&=F`5Dgu z1=X7MBXlI#bBq~u=86ba_=nIBJ9^~CPEfCfbFcRs*9Q2u7u;E?PR3F!8||W?H(ydX zemO~HwH@Nsh;pX>I7u-cemhCgAG5e(flkuvHKwIN0ictVH|$1Pv$P-*{%2YYcqwg+cS|H zpLYN+wQ!c-At031axk)&|4G7Jedm9B!u-Gai~mRR7k`Q#jdnMZBaj;;zI512HDyn1 zyo>S@6e=jcPE`5`KS%hUTZHNpl!&Sz1S*ci9d=eEARpTU%G(u%hX&bkU_S~n^F@2=+qfn|e(Q<`Rk$s1`u*ovt`?Q)nUKp4nH#!mQ|DPqUs`tA3s1yP5P$fod8#Ef`j5Z{lZ=6b1}v@V zA%^nIW#DEB7O%WV&xuFCfd-)9;SEf{Y};qLql>EPMbQouPhAL>Nx}PA>74T`NMwY~ zU0_4hW6QpWU6QBRP0|f1bHn?^UQ}5q7Wj+3xcWEt;;=5_EhN$_mt*yEWnkz|ha{+- zQ&c#+G8(RL-=@(@IL})L(KT;D&sZVd&zh^DGSHOA4t-5KTJk)ekd)q-gjB&`CmJ^P zBi4ll&p(gxRYB4*Zaut~kdh4PZeG~eS1f5xNJZtj`!wIV(oh$+-mL~p<=F8E%1+D^ ztR&Rb$)~jfC-n{2F?e0}5;fw+7vcB_kwsM~N)TcGyBc`R!_0S_*(1=p{W*)sV%sdD zQ`q3}mI|g3=#cPP`q${MYAtN|;wfX?2mAamu)1M^%)@4*!qS`)y7-(R>TX^8&7bMW z;;A?G*@#}>IQj;2&Iwc+(&p0m^)>ROIMyZma`$0{#3vn%959qJV$JD%5@_BtK)cuO zh0)`SBi_1@5`jK}dX;VjCk70%sE+pKAW`(6zvK}#3HIfF!!TpfK7YJB82c1~f9<*^ z;mOrO4(+*d7f2H3{j?7u;lAD$Q}b2WR1t#_{;hYYgM+=;1)5@yW-m=XzZlJp-WdCJ z^QQYTH(GpJAkwvAeVCV0pEKds|E3ifsAd|0L_IrJjF%G9DUfTqzFgb=`uLqcz*PQB zU#HAoL!K<3UwEtjQ(*ZK8&`}(aOxbCto64W?3J-O!9k-^dkM%lMlM8~wcNbRC<{5xoIMynzoZ1qGryol?)e%5+e$`?`xPbCW z-KDjs8OFxlKHah&S`AvkWbR}_&?ndl1a85C$p^A`&>Zy*5No=WYP=CXC7)AXc_+#O zpR?cwg!~mDb+yEKnmKS_kBo{U)K%dwtnh6I@(jE2Sl3Wd9<*m;=vu$G^Ufq-%S4@| z({K|K(B5mRj(#Mk8T`sWqG8)DLAQ}pH-fh>mX1f2IRO1p4b3{{8z0e@PMCMV8jT!DcJ-8{kF`1*$P579tAomHt8>V3MuRT6-VIw&sm za<=cY8Zre1Z@NDz^?ZIB59fB)j&C-yU36mURT_V9-@xWqZNO7EcQ8kxw~v|Ac$Z*l z1wYH^kWk8X)lgtB=JX;Gc6qxK;S;S6%(lQM2GPLa~)r?mT*@35O9J}O9&Jl?hqC>vBf4>LokHtgt&u+yyq8K{#dK3#Ug z-vsmRj%u$9(WR*i6tw0_G__p4)dtlEPs4S;UEw?~=m-*Lm&udW4=ISa^p2ojJ=s+$ z_x0fxkga~N8NRhCQ(+t3iX&1KANG;a?c-XEikgz@CysPzHS=G1W0wV_ibVG&?Pt)b z)}@kN@xm7@J@uY`%pm)i zX^TmTs6)}osqi@u*a!(Q3kGv}qm!^K&tMuB)^1hAPuR$5_7`TDdhh;tMQ60Cu#UUY zhu9mgO43`krBuNA#%@;I1DG!zAo)zN$d`<3$2~J;(_^!aG>nRqwqbl`lm;XDK2xzb zg?Ek}<>Q6f7p5q9i^4s%ybSooFPMTL)_v!ofY&INjA;ZCQnYeqdPwlvLAQvI=w9Jb zGY0kX0ALHex`}T9lX!09%jNPg-XQv=F4fJ_e(s7mf(sD0p{{IIqWgO7b}pUEj0&oI-Ehjf)mye7avBRwH!^11y6t+!_o@~-n#PP(T! zwExSv;9}d+t@S$2f68#Ri2lWJt@v~R-yPaI5d5q5kdpHsYY$C}Sf@|_uJ#Zeo|hMUUp{ z%dxBUyTmaBo?xV)9YJBIAJ^4foCYAWNZXi zYELR??~V}QU(HX;-~Cm408(6=XP4Cek>VOGdvkPqdb+kYR?@1tJeoe*+B$loSXTCb ztMwoXqy9g~r|pf6b?Sh(WmVN?(Wf^QPe@PC=hp*3{}pmzcpSn2*Y!Crj#tgY35Yf3 zwyzo6cg7!6MH`2>%OZ6}lZmf`>3Lj)7kc*Fvse3|AWvuV0l1Y%H#- zBEdhE2g5oS3EsHv!+{P_db(MR{ni^rI9iyT#6cEiz_gf0myicej@=S=fb|tgnjkkH z;c)!FuRI8WIOXc3U>~+h8w`lPeD8I2+UlWr@fyul(y&E`6&^0sAVNu=P`GT8o(-#= zdH#~2mJFn3KPwqVy{G)cZ~YC~FeU4aiz}d)*bUV4^{G&zuyxBKiC1oGin;z9V2U#^>-67K%pEzs~OJkB3>p1S_OYr%= z1~b*6>qiRJej8BgyE*+F-~6SPl|*aRCy zK3I58VE4MK1tFcjS$03CTGwv^9-=BqcSbO_O-$J{R7g$As@r_NAzD^dvo{ewXJtkN zuHttH;W>1c8M*Vw?M@dbaVjg%faenO_wh8bX3AI4n_>_BL2Sgo8psD~#``y!IDGU- zFnwX_#S%Pu_>18hSqJVqx!uCq=^BP5W$DLLUYVWp%;aruYg>bxExP(n)+(lKDk zB6C{GArb?ei4vvV{-U@hZRLM_Otho?N>jq{4nq_UM2@0T(Oj?@)6M{h)*zk#Apgrv zvu^Ba-unH%X-(A+T*4(e`)?@MmIMJfWKyG!${4_IR@?6>Xj(A+^HM8W{4bQN8W(!v znM(s+Z+2n5#M9UyeKxoSQ~1;MljSe5-#G zH86wj32_komx$V(y@;$zxKIj~JG;vd!7u5G>QO|(zxw8U+K2vxY;@W=NWR zzKRhaCCsi^%Gq`47txiw8_^vX;(_}e6=~GO#d0GHuQ=GkDTNdF>}DXa#SgiW*nJ8%b$<%pK%Pft(`{MUd^}2$F7fyd9A_#m)J63 zuh%1f3myeQ=ckw-Du-{y{Ggr>lc6sFk%N;Rp-(}gcsM{+t_1v=?U}QEU>P4!m0SDr zQ&q&Vw(2_sHFA$*wp(NsM<{ifTGVd5sqJ zMI}I2Zj;q7S8hoM{WH*&JEs4s!v0l(`_an5TlA9f0OmvqksIDavcGEYJ5gp9oV)#x zJkEM%k;7z)CN*1t|0D}PvuZ01k17j6ocSA)xYXn8rOjh^J+rc_?^Ebb&-~$|OnAczsKwBXH1m>`N zto^`%&)~O<+_4ey3TXIR)=B8wAu@9=%nm*6$0l(&_J!>|tj1{EyBY%Uv@s*UmN>o^ za=iaay`d}pPrcz{?*BFQ2JlFK!Q7*P|7QhtYLN>hamzInWLE9zgva~1B6Kf!?!3d?!F`}B^e%HcTZ4GH^V-HGaRTMcfvC7tBu zK4x+-*uYe9Xmim)1peHRm>WfO<7LAfsMj;bxUPulZy`<1U-Ve^#@HHxRHTx41Q}SF zVP$_PHUyk!9&3zIgHzXkOOM@!`AbN1BJvx((Z~z70~!sN<%)$Hut<72Gh3Jobn&7< zGPQsMUA%2U_>f72A6KwJ*9hU-qgXO0lY!_Bzu)K$*3Q%`@AMETx3~Q- z=)c7@^>Tm2G}(U>(^%wCX8aP^Q`wxJFQLb)kpW5GwNfE>2;B@Z;ka)3?J|?n5h#j&? zDVPJ&S?GLHa=8bIR8q1Ix?%oq02K(}X#d5Kb)p}O23j*wxX&pR?@!R5yf+xA`x5ix zZi2amJ1Z38qG2FNYllu=pQ@$(`@sEGQ(Kbtq=Z7Hm>K^;O!EO{jXb`2#erC9hUyO1 z@ zG7=E7an~7y?d};_>OTaIVxW^Z+4gS)j^9q+4`Qo@m)s&&X)e5S5EU`sw-O*Q^^b{R z2tD+v#ot#m_;cT_8l2CP)rl?M@)mslR3-#TTH|HTTJ8hx8W$q$qgV|a&q|( zfCKaI01g+WB!DTO6{)v?Q}H|3sUrchOCRWUX(>ZK2pCW&a}-~Cn?p2q1wjlesRWBZ z01hO2upu8H`>PcQ;K=#|;5adu$@L+MoSkcmL4a)zE7$4#>MTXujQ-v-*O}|fxYlGF z?!NQK#E}y@x_8HkdS6viNABc%MxQM97*t!TmwVnp>C#c_zt_gF`^QX;DBgCrZf(XsqD6y35X1 za={pT#)(`&YI`DXzS)vA!?-p;+`bTUr@xr(2v2fBhL0J!A^X3!i5`6ZH5xswtFhHq z6;8&YHnwXEzT{d^BK%}wQR8Y_Ox{jCJZ~M2mEJ1S0Z283qSta|rg|Ig9?E1?@@l;n z*thT+P@aUX$f%RSRkxK*HwwkFQ@*mbMm{O!%+10_(lkuyyGQxDMSFUVegMN6?W%F) zNM*{5UQ&OFD20C-X$AhRl&F#|k1L(VHU@)Lczh7D0i37-bJs~|DD7Q%ww@2@zQI<| z=0W&2zqC!@{0_VZmR9eH9&onSI#`Sj88HqInwEtw$>+`d+<@P$yerc!tYjxIMzCm= z%$)JYY6~nt_z{`~1VRQiw7a11y(bYrr3-xipxbYYzts&h4_*#UDXpB=Jo8DvL5b?n zw;6*X{Lo}Sem~5~fZUN~C)!sSPHW5@<4a(qLB)FM8XPcH4rc5WS`sbSMG6$gOj_F*~3K^+R z02?2Xtko!*rw)^Ovnk-0&RD|tg%WR%atV*r2SlsA&xUWrn z;e+gy7ROe4ILa=o+wEoFTB6Xpwbgrr^}_N9Qvsorqfv6_&xaPZny}rjD5SW_B44rM zj&ZQD1vQHhD^0YaGcC{zC066&?3P3gJ9beOsxV-x?rUk-hbc$FjF)t7#ivvXte(*H z2UtrxRg^P$=YX*Jz8Tk8x9AcFn7dOJ1YpahdDY>FkMpzGsj8sr%sMPSaxW_ zH@KU)k+V(cT>`-)VBZlb)#;gaSvQOQt~^>dT9n_6vfVZEVD^c~R(9^28$*+4EfZSz z(p8ZTT#065I)RCEkx^m@T5)!K*&R{su?+ZJafkWO=R=43#lwfg9C(2&7FyJK~Y#3Fpv8xtGT7nG%p0%7i{+#hR^tNL9~}#gGfwmQ{;|I*Wmp+Y!HBqSkmn`G|IkaGFRJNgDT= zAcCeB(r6He#Ym)G8Qlp9@>UlixBYNp0^reL# z`$u2iI?b*jxX<;>3ikIrjY?DEMn~HHuFPWR{r)r>X@O@H9hd#!6;qJ~e#+NgY?NytafUQR1l^B;a5#F4m5IwNeIL3n zNDy-_;(Ybz(!yb>4RDq+NkU^>X+Aor@b{rWq^uLQUJwJMA;hVI-X_ z!Jykc>BLDzD$B~2!be)7!@y)J9cnnBHNbj+l(u@MRaLrfM7^3j8 zW^&g`MW*y1nH8E>v(^jIGy?wCieZKt;T^>QhsULop{~1D)Xk&fV$~9QBKI2?RtKm# zl;PMeso)hb}x|tmSl21m3?|Kx5VAbYHWocV=J=|&wS0V2y(l_$&EuP zbo7$7#vQq?G>vao>QmCoW>76dFC#daB7v$#rv*+c|TyJFk!3(+Bz**Yw3ZWcNglMRtiIii4FbB8orP zNv7&&Na()CjC)JYQeD=4!-QOE@0Wp*9rG<1JrWk<@ik6?{mhj|P8H%g27L)@Q%IJe z;#?FT4;z{jKTG^<7t%;74=`x0pq#x@o4HyhG?>51)QuPs@es&Ui`1Y=EOsgi`Ss!u z{wsGj#u1S?@`eLk(VK4t1m9X&cyx zdo}#0L=yl`8a3JmSU1>BN%7AuHJe!1K86RO$r7;WpB(|!_#CS3XWC+i|BOnZx~Ra`;uM6S>weIl+ix8KJ^J(Ickb>{1DVmsNigZd@^6Z`zy5hK)!25!Ef%#YyAQbj0s)u;@WT9BYq;?Oy1g<76`6e$! z9Sk$=gQk3y3Nho#?HhfnS#F@k!Uxkz;<-uD%`!98yKT7T#GefBz9D%~_NZ^-KyVC2 z22<{`mYK^HUf$Uhs=>#LK(O%cig}2}8JG!Q%u+Oie(lsu5DRt{G(e>-{(*Rerf=_oNgho!-+ z?zLg`7)8a?jpB4b2dlYk_HkF!%17KL%HP;bG(Pe(ztccy8yZG9Cwa67XRXqQH_qp4 z_0Xz7t~mEO2gjjTDXPcV(_MSVI~Dt|E(AWRU2iCoFwr=Q*z;K7`$fX%P~m&vADS`e za@|~}Fs?0Mj}OJQE2@c(m9e@qM$Hd3CUI`B_bN$7d+y|>dpNYQYZTSS){qs!?t1j& zIUL-YNSLlN9WSeoY2W6rG3<*6mpNa)vc1ziX!V*ZZU!B;JVc1oK0%4gxrTi-vqO+T zUiIN3|Lia8WQjD$pSU^RvVKmo=6pXbxXXMdFwA;qGp0UNnPxj~I#vdb;PIt8IU7>86|?iUg%8wdIt8V!}+A2dC)WzNez^05{nY=OC*JPD2L2pX%?HgL!#I6@ke zXfOKaD((9_jUO5&J_OHA6!|-@x6qH1+v($NUKkxAHz*o7nz;scfn1VOWVY75 zxA^k%Hj&p1b&S++Lew&bDY&r(MHPt-dY5#oQjYZJd@ok;9uOM2KN(y%3W`b+nV>wP zU8Z2~GV(JtmTb=W0f*bN^HZWJOD#fh#)?~+`4JkA63@N><4H-RtQC}#zF1_JfQJc+ z?Cf_STIG(sM|sIEWO0Ux;>T~V%Rf%w5QZtKEghT7;MAZ6%X|fwRgHEz3-b8W!LUr7 zS*qEwrRls_v6FRlwQIGHq}Y~OJh=x*b5vv!2Kpb$7iEj{QQn$G0yvA)?%y(du~LDw z3DtYutDJ(t12Q=p>SJYh@sy;{{k%SP6E&i4P~(;NCq~W=_Mx)}GS+P^TWXq;NYcJ| zLsYRPG%&Phf)r-?qe>-vUBPlZO366L#j)vNr zcDj+98NLqf_jKHroZq{J&eA@xM6NZ-4ExlEGOG6}GuOt&c%Ztfp497ij;kCwZ{hwN zKt1f9yD_qPE>yjD?$W#fI8#-Qll%DSvJOx~IupH5`;JrNy4~<-P-)hUO7K(ysYIT- z&6&}@-4@H2JW)Q>hVE`_-BO1gg-i2AGc(Ep!*wzza66k&$oGQb!QgXGbj0$E$4pkMeq{tdThjm_dI0XJaACi@}9d|QrEz>+Ia~!ipohD#%g*V zX*WIeQaJois&j-|XY@Va+qtAQHdJOI`ZPDcUojVY4+ht%l&}GT1#8zA#6JRAX$St6 zPgdw3NXmReQw8BEAcRbkg|*u7Y3^X-Tp{{=F4DRuLKXDg-6t+aN>M~gOOtmI8?Zq| zG0_a6N&yJ6eZ1t}tfVnia;(@8BI9l`N3RM5gEv3pxMjgth*xvD7Px$}2yjRyfcJjQ z+$UwYH;SJb*tk-tJ%1p|vz;8}NfX1z2f%5vqLW$Re=We5WycrgT__0@M^yq|i%m19 ziK;{7={M9PGGuK>Xk1Ps*%X1}wy~hXxQ;<&NNQfEWtSjkKH~v()IfDcl6*^Rw{k)3 zQZ)nT8mmhRQKKo^YLz}rxSn0XEL|f8<>3Gf%%Tezzcg)`?GRVi^}wU z#K+Vsz#aO$eD`xd;5<8be}$C+FSQ&zVad%Tg4O8iwh3V7V`^t-R%kaZ+_O^GbU2_> zw6LGIAeteP(Bv+{BCsjAQ)QAKe+hhqLd`9{ip?X=Owol;c`iHmlBNBsm_9$E?pYFH zpU~v0(WH8nR6DagO{ol1AP~7Gzq!j^f>Z*b=r~Y2vjO~~x>RfAX}0nwWkwoxd*yxh z6`G>_ob{`yt9i>Z@sjC2^aZAov)iR{`{_QSxy1zyd7zmo+nbQXb>x!vYxQzYS29j1 zihX%asl}&BXFdJJ-xP+fioXTR+21$FIm+6y$2Q5jTT#ufw#=mOso58u0%lj4Y<(Y< z^zSa5<<-5b&zG9yY=6Bj<*7l=##Ye=H<4UITRe5L>XT=ryv?sSo)pe4-rmhCPEFZP zmP-e~xE3An?2tCO2PM?ktc-L5q=&=k9^y9Q^|_Z);4ZLr}4|DYy;5xe+qOkCWS>|~Uj zRgnK~4Ut)s)NzSKlL*V~ z!YIgI8*?Lqv-nhUtq$)oYaSHZB}^CjxyR$gjeyvj-JQv>I(7EB4gXn)D#B+tfk*zk zRFJn4pZ$>{mal%egf5FROz6802y{|Y*%M<1;c_G*)Gco!yq00!_O%sVG_ar2Zxl>J z%x}X2Wa3X*bx)S#)Eon{y-QU9KObup<}#s@ROOFu6%=K$XBVgW5|(~ktG@=;d6=%D z`x(3UKbSy&aF<#PK@}{LZSS7H-hmO1OU9xxPKBE1W?va*)t|-znrn8+hW$rbb zeAAWp&soN+4rSM;ZPmyn+eB3z$#$YS{h2f57BuMg9~)kjibk&67Rkwy$b$ zYyL}gu6p8aJMc>xM7Em(#TuYlk0!`3CiROdC+ec3*vIECtR&yWPQGT^oJ00$!bV!7 zqen)}>%`r+JQ+kHPJN-eYfXTUj)S$r#-9~5Bdgn5>J8CXFE>!_Q?4>#f*MLy1n(tK zEkv6C2o!hN-o_9r+I74ZUWI3d5qnxud0@JdxooHP0HXu~(XlZGv8+9_@-Cr3a|ghx z9095XoLbP^mR>q8pG_I#m%79Dx4MH_oC`BXN(I==+HrrNGiGT_+^V=Qw|4h+1sjXc zK2U$ZN^f{5k)~xYA&($_`g}wE2ILApC)zFpjj$=7_>|kMTgWW)D@+3hkI&dhScNu$ z<_=Dz>Ca?8Z(HwHQwftMqOm1G*h(m19!UghebPIH1dE6g;)5u z_K3GP@Hfc}V1fz1IWcknnPl*{7?%0B7?xlTMw~6tbc@O{REPR@@=v7T?R*D2Yq}g!XA|5Ac=}q;Uz?_~2VlT|0q3#C3jZ#?&mJbRlKcq4mhZ>?HeTcGQIn{#nxeQobqf91l>z)^cWJRZ=# zT5!LN{8gT z8ia>6BV1D8K%Jof%5r|ZTA=D8;H?|%C%2JI!c(Eo&ZQ!?S&&VO1qQH^H3tT)WZnM6 zOArNCvd&FdZ}?d=X)-kXNYfbtwO5|~LZO37_2?t>%SMI3i-u%lX|ehb->(S*x(U`x z2JyJSEPmTz^?G4&*066EKLnxPp_I$;3)jB1n9ls9`#S6e$kAyJWhbLhORw4^iI#m< zQ~i{;IU!0iWFb~nxN|sDM^sWu13$sB{wj|K;7KPJwYQf&lW(4VOh>lz5Am6|dEk^$ z@oRKfWA7B%$aZ47X+3X3}#ftmY z#mXbuAp8|Ah;G%T26nM{lRUq*88^5{6ADzu_P}qOEHh@PPy_1qS0V4n*6j4-S8|h1 z3${1K6&TbjM#?M#c(is;iYqx63n+tyi$Ze!!=^RMT~G_2oJwO2sNuL%BQfGHwuNPP zIgx5rW^2jYABz_g-IH_Krx)uk71BGeIm?wi0;hbI++wl! z%3-k$i8DjoA3KmXDEaH1q)6U3`>14fd5J(Uw|bMJSRt;$SQljaz8t+hy|KnXAW%Jw zjMl6Gg7FqhAkNEK!UM?wetV z);2F{pU?lG?w#B7{`+k2*tQzmR@2zF-K4Q?r?J!6wvEQN8rx~ySo=(WxURWo_RQRK zAIILueg@}X=l8SLd#&{%z&8>x2p3b|Y(^mE3$>tcF{M^E==Kk4pRyAL$ArW3okY%5 zCbUlyCcu$$%(fkl`j~k|10R5#-E;cLJ5qZ=9?|0|=oya(V?iVmcr47=XGnvNvny@+ z84ZmP2^vi`+TN{rdb5jFHGmo#UtI0wSQ#EVl__wJR005C+%o9a9$8Gpc10-T%XZr)0-|+&2etSY@=o_SBo*+Y`CM;LKMh%#kPt!*i zMiQR~EjjPuMA}%(4*>GOj6&K7BwtIFRSD~E41)*e?w*b8&1tpCp6>Dk;Am%K-HQb= zq2Dh`t&)^CoB=S-X}|F0kXZ`8!GiQkU`gsjM+KJ_5Dzg5 ziZC(bv%a@YET25Xz&fQmIx$T|<9?8WuByBfNA}1M`IIK+g_Nbxx)lGJ%?IKh8#c*z z&DD^Jlco6jbS+W;k~o=r<$LTPFJLA$%+?EqrAo#bm=qVubFUKI2LxhbnHCO$ap>EZ z>{#ILy`sbr?CJQF+`ZSSImZ~VI8_iBSHKeC+*z`UfR!AO2$+A^xYKZDxhVniG3Loi zE2(@RBLr4I)^Lv>RH}-F^B$mUB~V$L)5YLH#jcG43aZiQ7i{`mF4V*d8xIFguP`Zg zX_ZX=OE<}zOT>iVzdVxpA~+dD!G%>&SMoVEu?vINwYooX(onwsiV(QyYinsrs4N)h zjTzpc5K@p$lSX|;5U5j?0fY%#`&f$&8&nfJSq6wmJS7l`!yVzlAbjbXvdDHY53cGFa(w#wTD#s>PSVpUf@NqGU>Bq7cFNNDr>y zLyhngP9$RS;BYPNzSgX0kqB_t(M+n=9h5Cf7m|P#Sv8&+YTO#Wd_c_#ZB><*5j*O= zW|gv;n8G-<1D$DTf-ayipEw=c#h>@KiVMYs3?YA3CX=z7;J-6p2uudy;A;G}>RP`m zlPDFRHs*2Oox2&hSyzwn!(Kd)@7hM>^v8q zJ<495h+y_{!FuA0^M_-w{)UQ*xxKz+>39=w+4A5GP&j@&+DI~8)3p`q@Khvzf^H$T z%(4PtK?x6QwawcgL2=l~=9JjbXd}_&1JP4R%%J@6BqZGeX4rc&%y`x1WsW<(4Wef8 zmBdxjpki=d_PO$#{JRQB%1x>fAPBiy%ijyVdwi|5X?&&HzNq5kEe5feg4+lLLMi{m zQ2)se+yDvAAa1jXuFjVov0A__<~*%iGlALtqY6yUe-Y~}h!qDfIrU>7HAg7_R_kLT*gDqcs+c^` zHS8f^a)x6EPs4m!8dwahpR(J!6bQ1^ZSp(oTe%#V43hUs9-J;?Hn8eX^s~_cVjN5y zN2^qmxEwz^V)XfXTPXI1LQG_Lfbp}5}gK2JMRVLDi;__+dK1fr5$2PT=B zyuh^^olCvR#55TwwPz`sSv~81J2fME;Ya{=pWQoq_Pb;-j1Ep}!d4n>F)?MD1CDnj z0wmAUYMgWRSXCl7M_r9U0A>x!!$eVIP#LqYIMGxc3$J0YHkfMlB~Y*P65=zNq#q?b z0vu6uue&*htzXcVs|+(-H7S~~Ja-9mF=0-t36z(r9LOaJT=qe6Qm$o}(2;!zH!`vO zUHy+TSW?k*Hf2&k*ufaksmd*!WQ;i;HQVasClLgL;ZRfqUys-2ct_9PHwJRsF{|@m zSbWASwv*vdsC|S12CsL_$`OVHX$r9-_Qe1^CywA(H{l98NIx*gS*hidqjScVe>q6> zbiFX<$Afho28CPcz;Y!SX8>~xhP!`x=XMzB7RMQMeJ7P#n)$V!?H|~R1>s757*yZI z5~NOu%7f|-%|cqeK%yEVR?1C&NBB;jC4pPK^BU>5y(j z79^TZgNDvF`G{KW)^C?q!UITQ=$mrGTX_i8c_b7IG*72!&Ra%Y22zn))}O)$*A|c=|5~DC#fT&)WUTz>RvB-)Jy>u+;D#hbH5hPk9s4m<9I400I(fw?LWIu z2bBSw3^69{KDokT$&z<&$5rpGNJ2s^=G~y~hBDvJNx@};f?5QKf65Ku{GA(k_;dvhCMmp^idMl4o+X%`lfMVEbmMbxVlL0*Ka1 z@|I;8uv>|{>;`Wff~HFHyB`G4;jgE~(-O)bmFd6jcqlmTJY;=nM|qWGHNN)LHAPkX zrm7<9wV7%>esP3TyX2mjP=BrTNgm%etcI$O#YGeA%(P&Fe-?u~B)@@u(@RQg6Hk-r z9hDJ#tMhqeFcJRx_!RifRGma4Ax5KIYFjbS;#opx*-o2Vxh*#)_-8+$k1_y2WSoSf z-=unq*2ovnY8HNIzt?zSZz^3cf06YBEnz}Zz--8xA7hpjL>U$OeR9@3{rluhtFdAE z^UssBZu}@-!1#ngED9oG8e6D|${Ta9I81sFu;%D+3)C9>@t$(soUzx{7BOag;0SV_ zY5zAciM;EHk*?*#L@dL?C;`!dA1YOvPlZ`;Iaf|qCb%<3#tZDJsj>>icPZCPU%av% ztt~wGxxQAMb??4{V#^Wax<7!}ZX+bzwO2zlhAX2N6uG?W8zuH;oAJ0RlW(dc8ouQsb6A`OZE|E$sHBv`Q zG-uzgQZ7A5wU4!ooy%*{Fd61?q5-{gYIGVzp*k9$nEM>h*RscP?72gcH%yQot~a0? zw$4cbm~v@V*v;Q%F+qSH&RoyUE~!UJKLHI3O@V<)PYcZ*nR}Ud$1Z&Oja~4Z{S}{+ zwyiS$+cNM^H2#fUu+ZMv#E5VJU>APy-_aHqpi-z0Dyj&?fAo17^?3!@279ZGsizhD z5DL~dcs3(xM<=NU%uj6-5(tXTERykZeP!R!w4THqd_g^ifw!9K^|# z>sTvDM;)knU#}$kynKCoeSO@R^mYd!O7c;8*X<_jpFHS2YIn~8Zovv&-kXhOBY-{n z1o%Dg)CE%jb)gTo^>$+7?Cf@Btx0SAH1cNcX5nmq;&>tI8o*RNd+2VWP!k*XV3?dO ztZ3^zdA-bkdU)B}+Pgf5;^j1IZBl%`yQ(k3b znX>b?uln!Y0;St`w*X_(m8=V6|H+6idh+%Nq$SVWUMzUVaY6yHAVe3{_(&bU7Q#R( zJVG0I^u2#@%7mTc0>2&Ce^V#@9o`?>l4~xX_D%tOxW7er5oymgk@aFGqTF}D&F0if zh!&ybngKA}qA)=bagf9$NilAK#lg2_2trJ=WS?(l!J;TodNpShF<|%TdpE7bd^Mbk zcO|s>yM7?D;H6d{;?=nRxnJcRu9iI4EbLfEKmp52@Em7$IrUrkDG#QH{jP+@{7D2G zUugRF!SeF&h>wDEL|723oLXlK+5m9t!N-}A{lKZRk=wx5%lpzb^Op(e<}V`M7A?k1 zipxPQ{p$Sv;b*^{0{}|L2dubS5Z6X85@x2?L%yC+Ww5075RuqN7w5dZ-=AQ+$T0%zMVvH4 zV2kq3`P}BM9DzCsMKpLly)WE47Kwezmqqy)QD&v!X5LY};hdHAF|3fLY&SSL_2J0X zRY`l4mXx7+eq0`^yj=%P?;0279Q=BUAfII9;9D*3ft5hZ*5ZB&h5{I_SUDB?3 z+*`pVG}dL$^EQ}dNqrIQWoC&0M%8x4xqo;7G!VZ%01b2GsnmcMTo<;<`35t>@SOYV zGFc!opfjJBk>l%E^E2;raOLAoH48!*a6Dl(cRrHI_zB{^+TEZi7V2jGE+B2rv#GBGD1g^f@-$!Rma`XuaSs<+Xp0k8 zAsMFSe5ig%zbdu4JW>z{7_nc^u>w6J8{nxoU@lMA4SH0nmvL;sxUp(&)!e_j2;-6T zGkcneQr>DI`klA%`6{i=DY!XFIHy&IM<6Yogdu)JI%ljY)YcckTeyZ8XG@R>hDwwR zLICg<=zzT1DKGgYtAQ^4sAIx8^TxiGk^xbD_U-e=FpmNkLSh?Bk{C2d$WyjXv=HWJ zJOas^2{QT5w0$RzU8w8|I6RJeHNGhJ-=bc!>bCSpAu}k5Hh$oUx+ab?690IN-9}Dm z?PtTa}a_J@^oYBXM@jL5c){BzcNPcd+uzD|n!? zFBRdch6EFI$XA8xY9TF61bxTl7^Hsyj(cG8^Bz=SSq0Rz$im&6N%FU>k&Ln=975hTz6b}x}qeGV9 zo-P31CgUDm6q2Gi3J$z2TLO0AJUf?$7u=D#7>qXQV2z>zHC}O}Gu*j+3;_)Dmvql? zV3oEmKzla3++BPu7QeJ(GG5%Ofowq|Bu3^Hj%wl~r3J(PQ@b~tY&!o>wfiFs;wT_n z>YS!KV{EUDp47oFwNDKdDP?|Pdr;dk>9M7j{dl>H_v1ie3X{5ykUxWpAo}xZRFWqI zr`$r#x7N)w%7S1U$Ag2#_t}(64iAGsb~_Eql}F&U++V-84X>_UerR}P=o#b~h*i-K zJlN%ZrrMgn!KX5eMyt8QIX2;u`h(5+hk7StH~eB$!}Yg#zyBr-xG1dwYCqIHHxgs% zDofxomi!lqZ5YqcSezDhj96WSTB&}b5MW7Js>EMpm7)B>q25^LZSp+6MqhMMt+*Bpgo#21KMZ2gH0dU+ zQn`}BV=d6srhGlXv+R3~F*N5@u+@6#GUAkdwo^6sSNqb#A5GyJmZ1VBqH;2;fOIVj zit}=?&Oa2&=xeWMbxc}>HrT-qPsx!rcg+vQmbc)Rpk2?8ea+ z)V8COpL>Ktsgc)W76>KJFnnSJ6s*m?MW;U)_!UdeMN&#N0}7e4E`;^TNB}JK0nh|c zl1>AzN<>saQT(A1gvJf<41=hdmJtIxj$y`(Pb>5pSOiA0sd}!Qq=$yYGNakToxdi; z>u+WdT~X7fPDnUp+@z-Xdd)|vEI{Wky2*(tjA~nNNuw$>BAzXepIaWGgd{*@?A=6L z+036~BpQe#DGCyFl^1$R!WuXRB;PwEZY!@T>J|?NNqa&KXaQ6xEa#UE(ad%s3uUEK zqH!X*p@Gd;py&Ap9Dcj4D#>Eh$Nd4bIa8UE2np%D1*h4qg+v5`-Ug1*Cc}R!&<#6- z>k7VrNJ-*SG7+2gYv&?-m4&cciiZ=W_{;VcHW*J?$)>xOKaVg88YJbdka>|sK>(8Q z{W*=LrX!*^_y@{Wk&7Fe?s!7>U=N~52*|>Hgqjf#NprQy>HPYzoOHL{-`te4jdEXUrI|AF?}qF`d& z(sFTAq+Gc3y2NU$6pm04>etVR=wu>HKXgl;u42fPp5K{+^u%zl#;R?tf%z-39xmfXk)@IA4S20?VL0R965#Jc!3tUx9a zs5jrlH7R`xW~mX@1;emnBWni-zx&@B;nD<{rLNuT7wSn1 zM?$PrS)rBnsh{{{=1A6#g{o}0pLq;mpmD7{0&-|eH9frj5lZdvbl}u^UHiyX0|RM= z7$San-s;jiD)0|Le2R_YGry@N2yBATL)+UOHic*Kuzg}e@5x@9t^j80PEe)d1T3Uz z`7QE>#W7!Pzb>An;e@X3ynFUr{mjzfz0nZ8$HDT=x z74+F4`xT{RXrfHEveYcEW1VWcVa#C9gjMhuejWl&%MpxX=QEensg#cFjSXXa^YH^HU|$DM?x6uXjOjt1hN77pGA#MXUl4^cp(L(c0XuzXko= zKLou~+Pk2yQPMIi0NOUW!CfnTth*Juq{~MU5Du90)@2!`gq8?IWRu$~`(n|dw63hx znc3S$g#5*;Zo14zrC{ta%zcmk&kQ+_q2&T;rju|Cwy5GJE!>o*tgO`G7e$65oI?7O z_-MkGWNu{yViB4~QgNIN7gdM_$*R5>meFdXT`!%R#s-_m2LkGid-p~K*##4;wvr>v zpu#M!EGup(*_Xyf$OMnYV|?i|z8K_NBF*F~1d20$w;y;3H6rN(9VGad72n+5N|FwW zl5jJ$7#eD~wd$a?<_~lW*nP%mT}w2vPYg<(D8{0CSw}Bn_P6(^Qxh>&+x78}8%PzQ z=N0?uRm$TG6qL&gKKK-5dS%6onuO;wjl=Uw?U&%V5PeUEC>QOkr z<-?YF-PC?&zE%7+z!myZI2%b!L8iy;AdYqS3j}#z``V zOmSVdDt#_SkV%T9?)Xa1@s|oMi1|dNLGJJ&7}$^B0%z)?IAk z^k+2sKcFKnXUr$=Z8*GzPS;?QdI#GZFbi3Wd|?e%-Nz??UldTq+#k2t6Aife06-~v zILrc2ik3FBK3XTgQHq?W6*mjc7G4%6d4OS7O|7(#0F)vbwfcO6V{PrUsm-P-b>-wEF7Am9N0VxkbNad5y2~VD z=cg8K^K}omOm?fa8=bpoinYme21JHvAHMs`MZL9ECwkk$^Ec%r07r2&$6NLv_y5SJ z=ZPq;R~t(!hQYU_`<1tY-r0arzKjoCmLnZ<0F2@z=H%|uvU`^0^yLz_&W`gUg-ev- zD*fWjGS_5m0>1Hh;N`UGH9pw=DxprfG)zNR{FqBEWLKRo?I#{TQ+fAag#fw}zg1ENh>SyIq0cvCAjj9+3?S;d)vRrlhrHZknL4Ec1pP0SI+|-(`FBAdT^jb6ppR-iO|A460tkAPcR`QyF6aaP zSBZ-@L_JrQRL@J%OAl&BLF64DjDjC3vP zWwKyGw2g`i0p67V+2!8(V-MYap{jbN5oBbPfS-B1Y~yesw`$`U;Tf4iu{EaL6#2o> zXg;$N<+T+t-X^EqV!MFDi%}er;GR;BP{N)OEI$E*Bu@+qE&p>C%r0>h<#nt%G~);s zVNF(0>P{DuF#NUgj2+e(yf5(Xca8iRj`^7ARLW)=BKd)+Q>rGwO@o;cw(Ia15$jPf#xr#i2e;KPCs3WQkh>J5ViSI zZD0uox%byuUR^kZYFfaz;bD#rVuhL=><}#a=u9)u5ARNOW2KRvmD8}yG|hU?@Ogi{ z!2uq8ycQL>k0uXSBQLe0r?xb{D?g{Ln`-7I?uX8jn@6M6cq@4>yh+JRKZUWadyJ{5gpi9Fu3#v4JWq9IU3}; zObQl}(U+W(BSL7>3NW+_z}RPT2-LXXr+6Z@^Kf+N>=1tWnil${MD$Ytt7B8 ztO1}rED{Y)B!O$70#?ot@RpHa5Iv?QT3me)u>a;go=UPX5*)Fy`AP#WOckGW^Ow9D z8_RU4e)h5nMlhYV6)|P*p+c*QmB|+WnniNA8a#u;nHGFcnT$jc|1>E~*U;*xp$EGF za}K3guoxuCDwb|sTCD6y3wK8A{gh2@o|I+@03R^|nwQ+q+}=bENE*iZjj2tVK3-v1 zIW*Rfh*y|b7r53cz+r7@+6Y*Po*^3-UL+5+_xW=~q85YX8CrWB1l$Sw(pawp0=uD) zI1^hIWpjn6J~JN0D`y#VHw}wH_8=-x{{*#vZt2YtWr$l5aOA6l4dJdZ7Jo|>yHlJ} z*sN|EL;}{>R^o@wi2&f0?Z=v)4HBgP<45@kBu;b;@jKRiCU~|i^7%{dgXkux-eQ5u zNM>%6InNsr1TAK%I{BrGu4`zeo6Ao~LlS`0Z?|?H3jAcD{yu`OdAX+)x66Z=F4bB6pi=Q+_=&-Pe_ZbBJ?BOp_jiEg1NwT<2qxR36ccxdy)g1hf4b34$QJ+~KWJE;&g2qHf-Al#QOuv7Nxm-aQck8uEJYeD z;Se@{rpBgrG&5BUwyDhy%eI^_yJzFZyD)N)TJC24u6n#WHV_Q2+b6mEF>4v4as-Gt zh<|e8J_OqyS-pDzaOgJXyGWu0&t>Ig4BSLGDbeTx#|YkG8)oc^lSdLb${zvTx{ou7 zerbGy?u%yh&CJscs|7|Z7$rIu4&h&$)vcnB!Rq)S9}AYxlVpHj5|+x_%U{Y+6!ZiV z39zMB#dXkK<=odOMRXarR#1-nhV_BFt0L{P2iVqxhmUE%(57a*f>Ay|tr9ne0%^*3 z3FLFw2CyXD#yJj&H|oTuDsKwcre>&JZFMIB+tE&uAu?Lt8E!_hen;BHX5PGeUptL+ z%aIHQev6|umYVelfI&Gn#M(^B#+(6}L^Jf0zK}j78;j}Ej8-SYFF8(L4IqtFD2-yY zJQq;}&f~=@YBHWnfSE5^+XLe`p!~(WBnlNIY(q}!n|UhTwU0h%Re04d3hAG7#0t2= zkDn>zLTrhen5)z=4WJgrR8Kc@V2$LKHXKkKW>dRt^!x4wh-n*&hz~LU>Tw-6Iqw(5 z1UIsrLOr_AQ)PG(aJ9G)QFtFay{Lt3B2XfNTV@8Kc{Lj;L3?K+R(!I|68bk|r!NZB zH2QyyowikfJ<;Eg1DRWz6wO3?b(lJg7~oJiJZ}qJx0AF)i~j2TMOQezp;|0*Lf5!6 zPj6r>l3K3joY|6opvtpsJ8y@Zsww?l*FUhgI9z~r4~q^VdZ1F|L49a9cVYzV`|!+( zY$vpl=>^(6X^>=88y)dFI#aD&ScCPXW#D`?*##o?!`gy+Zm&f z>+LIh284Fj>ckq!5!ann!VO##PAX{Z9T5aC3xDXQJ}K#auuxQr7M5SU@vKZ=knVAA z%R^5j%c%0WZToA3pB!a2EYAUk0DbX3C89#VDaLjSFTfBOSG>zHgRKym(bRhBETFPQ zDEmwUFa#E#D-DjzoaXmt=h>e$i?li}@WJEH6g*Jn7^aw7*e`XJ{3p)vl7-xIT{R`?Q8jIHPf=%aNaYQ7gc43n`)b zhH?oXH%W1KQ)pNzn%6`{g1wr6)z^gG1A&E+C=78_#2z_gOW5&fch?okCjeXBgN%uId5{v`A`@Cw5n(|=z~QF& zE%=zAAmnGH!{{e@W~)9)67I*>`#Up=)5~Anc zLkS;3!x<>}955hE=_n4A9G@zal!#7hz4wOJ4)0xYzI-s)!9OoIbYvUYQ)74cTsfSY zRERBcXFMqF8IgOpHU^MBTe4}PGkAPXf)z5df(04)Q8%u$3t4G3#CBYQHDoejqJxYz zYYuQ1l%UFYmPpgc6lc;T>&4X6YwPs;fBji8xEN#TKRzJ6O>+gu3p6{J!P;y^VnS5hMn;2|*fs9YJuvHzVH2rsh#r;5R?!s~m*;ED0iib36l zl51{a1kwj$Q~LvevoQJnb?zBMi^IfTEg+b(OJ zRGcn6E=-87m|1OZoY2Tx?18@ysK25KUB-2_U6;;o8FlE&aJ{o$+9-W|uH}5%u2vEg zqchLbbvgOMJ0(qNe7?Tv4ZgkkzfnxSF=@rF0frx6<9F{lp5HcbCA^iU-jH3Y$ulO| z?N<67kZ1B$|HG_++|1i#yGJA4XZ+!67wOZt({Iyn9E~d#=m)Q4)SGJSZycHvjEI-H zwH)6B)=Z4gXjPA{~xlVFT~G7V`7d%UHDEx+bradYt|yC8K_ zW0!6?&nr5tLV_TjfVYfF7)BlfFQ1u3kMgrTLBeX;{BCvXh|aQ_IN=nBo;7 zx)PKiMtfG1e|<)3#y(qo%_gSN<-WMBo?JjFZ$9pjSP(`dQ|KU~3d@B*)XD42Fmr=& zd{y{)8B1Z@P|ULMOllvNWnq!WisybLycAA_ValWP@RK?M)NyiBFHxjws(7SUZEeVN z-nzm208G0mce6noCOU!Lz*+-Co(1Q64M^&2ipxy!IKrzfcxRd|tBd-3amz=70g}#u zL3f2-Y>~`p2#LTAK$Aw`TB6yKV+^`|RV$uOMrRY1u-`0IdmNLh&Y12)FK3Wpxd<8N?H#YfBtPP1Uv{{ z`D?Ag1$B+As2F(FN@<|PE22xlVi$e)3_f&c0Lk9Q(X!K>F7KSa#qzzuF<0?^R;iP^ zCaG>{Lo1U~QR&Z=4)6)~asXX+P7(S(cnOCoiy+SJwiL(*+-}knJFR{R%%yx9G?S{A zH-5Je;9C;-qa-3&I}IWP3w6~}P!D#ZbXvcQwgJj?y!$n>E%mKunKhwhD8bsSV6Ago|066ddo6 zhRO|oU_Rn}XR%b+M?yi7>*yiyf`hkfi*DMAfSZ%$%H{B(RocbB>tTOEZtZDYel*_i}&xSe=-8T6E#$J zDIyJ2W|^{jPhzDVeU3b^L4Ru2;&E^dvS1jh0HF$EekbhbEwOfCNZ^Hiw+bxFvPGn9 zRGva5;YbLCd>WsOs4?GE^8ZP?f1U2Hh`_EO3N8IWh8g2*1yHo~B!CI3*Lb(n!(Y-7ouqMoAJZ z8W5_?Q{!wCN;`qgIIVWSGz$p#n~j;#531NL!PXm9`cF0ILm;})uROJ5dV`k|$W7RJ z;e&hSFvEh(rCeQdE}XdzoA_QEeXuBjJ&RH_e-?G|j_P24sF;(eA@qjF*5=35ROoS%r5@KC~8SBpXrMhPv~H z+4QpJ+_nB1rQ!xfF|tbV`#^71p9x-8})O3sSofXoV9}}kV_cPDZz-nx6 z2+a=39kf?&_%q?3^=HEW{Qq>qe;wjq6aJR)<5FOh{|!rFU*n%G1ub}SvOlr`Yl^O> zP(My!^Yc8JjZf;>;R%_j8xPBQ_^Zp3R#YspHlr^ci|UQ$Ly`QL!^P|5Foa{0C*wbI z_19xxXgRHl4t(T`{WZZNyX@#g$Tv-wRLg@CV)=7;gf*~> z2>k^|o~<>s?fe9XBcRw4-rWT;)EzNXs1)Gr;MmyB?D~i+a%=?k1(jC2F3r4p3AI?Y zLO+sVUM>YnTf!?!s8TH&QDDevx>G$RK7%gyO7yM*9Tplygr7aw_5MwSf?(9nu(Zx; zzRLmrnE4zRFy#dDqGyU3Bz#AMTbL~-{Q60*wxsgoeS0iWuBuAiH;rI!A)=HB@;|@M z$^MXpBnr9MP+P1&#D9k2mTwNkRJbFn3yJkdDsnq2rO2vBl)v}lS6oNOQ!rPBL{q4C?#1CmHfM6f`P9kMeE^l zti{<6?cY8wvm6}80i*M(gt2PkIOw7$!zk?upl@^D1Q$o>kqHIS!^@0Z$Y3ZVCyaB! ze;54`Jl6^2t0nO5Pm~b)0X)0rMD%io&c3miWzHy{%q0G7(4+Zb=!)xkMFi!4NFDrrG{6KFNkLAqta4S3Yqb4|4YpejvK_Mx|mzBlJY=-MFQdbx7FdZ z9{kF$UVPBK&AwfH;@e%PcM~?dHfnp=2G6H8cVmKcG&*%WSTU& zT|i%kfvJ`;qa4Qml~1f?>sv@!qV_ZXLPTaIQEG*pgv3XN)4@I9JS;6iZGw8nRRzh& zltMa3CoUzmxh`I=yrFS_41NOV_A7msQ$i^lcI0PGxv5@;=+oCOPM3 z1RxG7Z0`Z)$h2r1MP`%Foh2^J93#_Wq&|LS6iaO$vB0VQ?!J_b`xHQ0!JzHwzsnL9 zbVh47TokV)p%FP!@rbq%OvhU`M-)OCv;58Q3pN=M^m)#HiRZlK2ZNC`^U)s;t{kN8 zqV!0?77cG;ab6BLsnDa14gUYzGov9E>BQfr;NTfxo4X1c&eWG+wulCqSJGT zX7NO`@`99cg^@a`vCe#UQY&uU*?KE%fala{;|k;stz0l)?BJ|e*%!@Yo_gB`o`jmY zA}O!;fWFtr%9&cJ?B|1>_uV+PBa9ws7l9P7Dxrm5#k>W&Q7x}@O#-OzR(2nplv!xn z&qRY^M&IY13Z8$@JN0so=}}GHmO>tVg0VfnS#@E{Y<-k;ss@ZaEsUvRWz9ppn1y%H z;vComX&?|f;PP+dTdbi6^wG!``F>f{dI-ySSRy}k2W(lmnJ^%^%y32&T3)G1DYPA` z3+K$mzR_IpnIC2;(2kid8}&G(__|>r#icasF&tp|tFR3&vPb7kXnt&0jn=$t%6q%1 zZs|%)3f_gMX9&l5;pu&bLn$Ww26|$zufpt$t-jR4{_Ro#mZKxcr~eVYpjqX)MX*CR zyV&HjS&C#{|63(Wb~H8O?%SlHnfbMB2-)=D=6aq3+)~t?Scc8B z5$i*M!{z9r)HLq9^&ra;mYz`GJtl$Na0H(!i8|22o1N?`#Q(l+FjwYY@g?RU&vMe~ z$$%GYgZ0Jeuy82+cdQ{vqIb9h&8Ocb@&tFa!?qGlq?v2=vuh0|mmPpQJO7!r{gr8i+!wzO_;jWqr=a9P-%(pia3UibYZeU~ukV;<{+a5{%nO~ZM|`8sJg*d&TJ zGu2UfCGA`1m0U#YIN>Er0&Ed``WLc}gO1tXW)VB=)X||Dr&;Fo&s%+Xj=a5n z++5wBpSq(5Uyt`I9sF3l-ilhKB?_= z7?GA`%LE*o_|s*kz5%<0P{qxhS#*cftLsVJ%XRlN8`tjFu5sI-4VC4z{J9 zIUOVr;RW}aJ%#+_TQbXSnFpM2GLe(&Osm94;iIg&P+z_B+5xl#DlZ@kyQhHt5N(hf z;&NQxz=x)twBRyK5le^+QfDl+6@sfdcZKhCC!Eb3m%p0|&8U~NmluVM9W?)@snAyb zkEX)>5Ljf?&-^7R&|*eqh6&`7X9A^>|_<-w)_l8!jdAOi$Z-P7IACKovuN%zJ7+Zcgk_9jPUM!%=yfvQ% zLjLTZCUdAab>rt-G4oGWgr;NeZ!6+CLG9g&h^}!mjH5qs-*zqD~9!__QGioib?%lq<^%Bz1G*~<|P0G(BbF9l?ab#BU(KEds$t?1xe z)yR`U>Y}Z=z8?J1Sa^w>UfF3c9Jax4h1}LfX**o+N39>`0zebS&_+DdpddLXP}yy! zR^R@EaROK*&_<94GwJU|{j|jMTlX za}*#%1FWE={6G&jDxc&*Sd-T%f0ijY9sQmm0LK;a7bs}!=N3)`1J8}nE_C0gV@ZixKfrW-^f?HGQi8>VY^|6RHPKS=EFbi^7nKD z4xmn}4FgCwB$)i2Zop{DVeh66`MaxtqWRuc2rpCotE<4W8~ayR;W!6IhZKtzYV(LX zXKn|MdeLgegGXd6L6aT|$wiWkvnj1`eV6g)O&@!{YoDxJ+~EPxpyJU#vYb7_Fh^S`k)ASGLAsG}2cy(2oP*i&`_@FD<>g~@#fv_6xB zoP)^(sU82oJ{5_*ZV-JC$OiM6x(#*`9tfQBK!^ja*s zvwZ#P*kJ>J;c5%8O^x_%AI!)MF@6~pnzrzbdV3dxuY_CwuNM|Hlr>Hfs3^L-ELt|e z4(#LM^Zx=D^q1%R^}T}&hQP7$%{w27ztW`?XcSwzZaxH-Jl^9&?Y@HxnrnW83-a@Y zzXGdqaizZrWe}MK~q^n-E0x?H~(T!Q}qN(=g$8M2wih9l` z_^P*?3GAn{-5tx%hMF`v6iFfo^B&YKhJU+Q*!_=7F~v;HsUgPXUR73RCc3 zQwBy*zRvV9dj$l}QVE|M#jxA;`9aGUX;zaWMOf)s50_adNrgbQgsDr-wi<Lh zLM5o=*+Q3UOE$3(fx5Jys*>#b3W5h_O6SShFej{=^LnrW9FsExtmuoDT@DwJl_)`YC!ePS#&O_d+lj zl3iuUS;49q1H}qvo0xd^!L>k@>+b*re=WhiR04!3DZu|Vf{{Zy|99I+BT~8-TX1YDZi6yoojT14gzC(#48kv z0A`K6A`CJR{jc4C6Nke-4y^D}{|;U{+`|Aq2JT)#rB94T7a zN%~CS9qKBE)p$o-;;TRqF}uQSE*W$@duH#S=78p&Vo4Gxn9G5R!awOuu74f2!>;6} zn+MuG<%qL<8~o*tQX#-LkENk>32O&hNqo^104^|Am3+kRVQ@u+lH&lw=ErfVK!MPYs^%Bu9qApFUUF9OK`b z5S>OVY5)gR^MzczwZyLlebR<}@hLnUVd3&JjAW-hMq_iMvU8rtjdn$ zNMQ+yC#+Lz;|^UoV4_UI*&bUD`UbAl#=~RMiiVP(TISIXrVT5Ag?os47x=n(8|?V{ zGAq>swUdva%WDkrfF8X)Z^te#>T;TEvFPBgHNDm2M@WLGyuQ&Y>zZebaeaSViE2~F z$c9)c+3{CYb8cTgXFd37|{4nP8 z1jGof^aJ|KzuFClPwfV68gnUCtEXf@0fXb~;-_Q){{h$3A3?tCE{~;Sva9yGr+vMG zM5xxChQ*tAEGr{v;~b07>{P1;Qa?wdgEG$h1Qbc z0(i3}y~xDjQJLL);@e-7;dBggVG^1Am=MYuxMya#07>nGiryP>!+m9AszskGyQXv? zfZWajktjW@<4$ZQNjSVpDApZC6ue-<_NEy{qItAp#9F-a%-nQk^|(aI+H-EN9r7-` zo}Nz_dc2AEj9b#DU{rbYfMCPimKa5x!Rzp@VaVLs=X_*1y3=(xI;$L>AqX;g+bGcY zV=Af3$F_>r%>e9&Ur@BW3B~uxoToi_xR`Jsm<$LOn|d6&m{lElJS$(on)flWpF509 zPiIsr53-I*jgCC?8~((UFo(D+%2xZ3&cy%PI}7|F_UUNS7Y zB^z0{FMUy{Zm-?0*n2zdE12(E-E_uQRFf8A@^{kqCD0%{P0jC^HD{X-lh#cH&1V_xF77Y&=l~L;vqo(|7zXa{~e`;_)dL%`KiOcYGlIo?-Dgw3tqm4Q6kZSK}*jgitCTV`VFv zOG-1f?$b4CZF~70R|Ma&r<**ki*#*3hm`3b2Xi^1Q}VVyRFlOq(LTe@j6bz#XV~h{ zkwwd}b+e5kV-nvS;S+P#ra&ZwxfQ&+zt-@y4}H*+ImD7lTT5~=`hqF8XvrF$4nAqQT^%z%bOg_M#gkFa1D0jC?U0s%xR8R3FB31* zi|qaPC?)U5b?b0dF7n3>?Ny9$-?OHc6QD`v4li&%+@r+{>M+f584%oRvC7qr_Y*`X zKb&QEyt64Lsz0D}hf{@Ey&g0@h2L3EtV+z`9FzFPnQo26O=C8l980!W$ZblS4z+XZ zW3aydf{D(CGIU1GlLGm7frf;${zPU{E|5{DPVDVf?A6wA-rAb90R6qIwZrczd?NM82wihBYH z>MaHbLMOz#5U;(qAR=QlC2lFkSI*UHrar5tA1fj@IiR-<_pZC#-@U1Xqx^`kBRyzPDpMeRbTLD9=+Oren5Isb%-f+E|E6Hn{32CwA|L4DMM4nn4@@C zO@JzS6CqnrQ&+VX)d4J9p4*s2ymy|vaw=$Pnwj4#wX&{oP9J;oxTsB7IeDn@^{?!RH(IUYjB@>>|BrB2>lcl*1AD?><9#P^nnI1I;=0h zcHP|2fFuvE;U7U-xnFT99-vV7 z`eqBcldarQtDWh!u&&+1*&y7z1B(jk>iV*lL*&PgTrOwp9!K{-m|~Am@5Kqn(_VW_ zmXM@cE8brBWO<8cYVCp|azQbVtIKmMn!2wCKo(=!0Ul%?rs213-TR#hkzKVNEz>t7#$Qiu_qeZbvj$z0zRMBA7AwHgt z;EuaSoV2EATTWyI+TF2xfipBn2CDTZVzlp;`A|5;YPjxvR$pDLMLW-IM*&{W&v*3# zMNM@(p_CIJq&P1d-K3~3$eJ?>IRirrCOB#*H5V3Y7hO6j%mT^PhA`fnl-^2g#_6i5 zP12{i%?nq3j4v_JDJSS=1|l@0J+`z7aM_yJTK?u1o=XRgkDD;sO*ud4%)H;lC+KUc zNEN!kruX_nCVWzKuKuJ<=y9ve)yLZ|FB_5@HgU zZjGs7RK38qjgLPG`sOewN{Q%ph>o~8O_NQtG zUT3}C9!E$5$*$)iGKwx0N-01k9#O6IB{p_W9SMq~ipXbSQw54r_EKKbtCW!C>(4W}I3S zUGhE3)g~_yklZ$98lk00-bd;}4=YnPwRY0~Mol9~ia}laV(U~sx69Y86ix+$H>&)0 zrsxIS+1SCZ9Y=>0bhzzoSWfm%$Dp&8r#}>X(6kqCDv+*efAx_AJBJ}e*a@DzewF6b z9?Z0s!RZ=Rav)vvC6xVly5_|Yk^xw_i3pVE>yfMI(}|KsD%rnAeqbFKLBxuZXidmg zGXiuR80I1UzjYk&`pQ|-DSxz^EC@Q|r+)MTx>+HdXj`Q@P3Q2!!R~d!iJ<0@{uh24ZYU!LmM~BWBTfbfKm^B z?#L7N!jhY6g7OrCQr%q53NT<{(U2#tnQRqHEn@{t9Vh+zyd3>yw7*RqEJ%Z01RE}3 zQ%7hC>fph@Oda8YyF=r#Va#ZD5wsk7JeW|H?e6;LoPg5P^tycM$N<+?uSwkHCI4_# z71N(Ajtf@M0!#_HpJ1`|J5S7hUza0FVwkxSX3-@CnP&F%;y8aRVnQfKKNIvIrD^Nm z*3E_u`e)~C9gjjg8 z_EEZ;i3489#}5hU`dr;n^<2`VP&&}Sb~Jn2TfU%CBwCikub;<>i1O227U0hCO8q6< z>Jr{ax{eV}PDQ>6<*X*}d`Sx=bLbYm7US((EG!KDUWxtIlO z&G~}FFZFs4B*q{BuY)(r>e$4B_^Q@7GvIX8W`f9Qz{Dhsq`hgR#o``8O6aq}`?S$_ zS)9X|FLe2-B3)!(oGjtoqV!tu4#tq3#8M}IVDEstCZOP0H|`DJpeHcgHO*5zs&}6C z>kHFcN`KW)EDKc?&M z3fHKxEfQF+j$fzm3}hgw$%waaZ%Lj|Ar;OSwRkR!p9nW~oE1mKQF z{jUDlHI%*qSAQ;i1AqRziu3M-cLc+&TuLA<=QXL&j2OPlTj`Lm1VP<~UH%N8JrewL z;^CihEl;T|OFNR`6<#I>tc5MABZN|G_F~E`YH-P0p>QH-^<=v49?o3qCdDTYCvI=jlgPs>S>L=$ z{j;3YnTkz4MRDJjGlqfn8P15CQjM^ z3JC8&|3`QS4jkS&2f{nE34e!o=n>4-pTaw3a}{Q3%zA+qu(o~X##>#!@8SGaj}w4y zNkCoadc(6qK57>sG3bh}Ta2wu`e~ZeSUaNjSPq~8)D1L%_9z)EfCf-AV!0E=SH8HM zCo(4RM8?Rxbay9n#EVvl-+5;1!s4lpRzmiyYgdyvO9*Q;Oq{f5(ALk!8Il7cTX}`GkH(G-C!c=|k{|<|1!lW=JN!odUvT%>%g#N@Of<<=OcN?_9@v$P}^J+X8)+ zb!EejVF`d9S7UOs`SFX-a0-E~dR?RcEC7iP63_t!pdr^lM4$k~+5i-Q6oCQ|m90N! zTttlJ&^wNjcW-F`Ft$8q0S05A{sLnhCyES=Fin7(v#*porg8mA%_%@7H9z#E=5!Mv z0>IeScj$4f^%qS)lE2X)^$gQb;0%K|b7;D)_Hqw}0xL^Rl z*rEfAp6gn46j;qE4X8OU=8p`rhv7GY0?^j=7geS<(lkPk6Y7F@-&OvoIb*F?@#I)HBEf|?YM=_syELEeHGVdXJb@#&g=c|QWNrh zaxJA^+S);qH8hJPUQE+s+AsNwx7JtnA*?GDQWz9yBzRa4Ca1e{iA;ofkqXdy((}Jp zn$0U_Mpe%Q&ecpI?|h@JtKkg_PvI$(>?R(zc(ZH$iF=aTq_L($BMoJ|-+?|^v??jm zS)$y`F=R1RipTGmU$gP{l~%R8+l?XmT`akUS9{^lO_b1p`qF$fHxe^P^9P$2r)hJm zymf4eKA&J!Q;+>^1~ZJ9TH-yvIsvB|v9`@bg3OB5H57>jb@0ez!66OjLx^zz!%>pu z`PER23)Y+|wTBV|lg+y?ovwIU(|(q|@<ZC)ZS z(NTQt`!b-_QMNj)mXiw(wpB&B)ocDm!(ba4oLb@Gn@zIsbocTyD$rqJ~hQss!TmQPKEXPN^F}q3sf^*@Evugv5gF^7r7mu-kKW6xYmkwO+u^_s@5Z_cX-C>NCAmc zYtA#Up-`@r|DJDUY-I1%DwC?T1U)J%FRRhbp8hSR`cd84>il-Pafbt+9N@XwR>al8 zi6ODOsri{Juo37jihw=PL%yLOlf49C9MdK1t&cBYI$GLre3kSe3%MZ_r1aV+Biq#Q zgBhnve>A8JQ!m_ny!2re-jhL{#Cip5xCU)lJKNVQQgUgtLRA{ znpY}*69(*=ZVDnWTyMW7Q_dW}INc$E3zu`$cDZ^>bsz8Fef5?h)ntKzlZlTaoRF4h zZ46hz$hGEeWTCsiB|}>+$V5N_*V}2#_Q2?8hy&i8l?l42tk{aze%uupYn?o_uAh|{_gHt4@=AWx=8?93)GF9S zJ+-A8jhQ9C3CGfMU*&U7f##>$i+hMb zs-kAPn5FK_HAD64PscY}goLO!Ep2sxENEuVDacdTxjEG$y=-h@`_gT87toBBS5$DN zk1IgFruPoac9Hn;-t}V3wrZkq?Ws7`#+0f1ur^DlTV6`!+V0@7eNT!7m0flZ2h!~U zt*(PMZ*@7{H-FsU$9YpY-$R2yWeS^NF^}#`VT+C!GyTMdpACT8RQt94)=|gZQOU4( zhKDzjFu%thKgrapT&u;*+Wvj~#j5%OsD(Hev=LVK8~7CLfdUQMoR%8SHIBF@$$IIs z4=*okOtj=O`Iaqh%B;$4tgWnU_!pKw>JYc%r5$>Cx>T*UUxt!dEH>|t{jdr0=VThY z8bfS5w zbAA5U=-lf5xG~t?W1P-+I`C3T5MXJ;!z(ZyI{f-yhIyq@l!MqK@O9?XbDj^Oqabxl z*6<7(ri?~Ates+x^*pg2N^)6&Nk2tKNP|b2IN0h($F3|daoOC zCl8H>PV7x4sBe8UWRlIeS?8``$!K^T$FMNTY~9fx37%wm6_jAr8jYyvEY}k;K|jX- z;|iQ&>Z{}41jH;GsE2aq)_wa}D~xWIYuzszrYcpfcrQ3OPTnmZqkYzR${MFxL$OT)2=m>ZOgPFqoz6-^$GvHX5LXf zaFd#Xsp$gjTD@T&&LMOsLS> zZEMtVH@s{M%l&-MnO%)3D8>(ev!97Z!oS(i#ixI;A9zi;$$nO#PGyfjjSFO$#(UiL zM?F34c5WhJl~aBy{1L7icPZq;ArkO5Zt|V!tvw$aJAv^Fh?s#jr3U;g6vR5(GQ99) zA2k@Xt6o(UqEjr9KV_I+Sr|6^4dKw!wEZK)#0X@VhNVM->^_IK<{(M|#?>!i$G<2HEIDDWiP(!+OBFT0;g{R~bZu ze_K~C<#o_8efV{hT}UY^jo{YI#Ip@yiiEs~V!4e~E4AG;jd9{3G43P^DUuL{rkHgp zi9ad$R(~g!r-1U4z{RU8T1r9kMgNfO%s}dM-%|X78j@f{2L;Ds--s}XXb@6m6Bu#d3%9Vocct;SJvMF zTg#RXJ^bRECtFK0j>?m*#b%(Wx#(ZZDTU|2a>|UfTSP%{lj1N1WX>1B*8;Dx&2ZU0 z@h<6Q-vu#e$eU03W)I1Rx|XPZ5U{wd0kKC{a)Ad*Y%<%5h+a;h%{gAhJg(+UR?8X& zf|pNJhxdVFKHcR6&rYb90#8Er-96-CP1fNrm7kr@)#@MW>9#)3&U}S2`Fx#!|Cpv} zB_1NLrAmp{bYl(=I~1Hfp+|KK3!YSW_Ijrur&MCnUUX20Gh?6Aasb`-xy--`3 zQ;dGvf4~wmg%&{CN?pz29{M~!h9ltNknB8r{XD^ssIQqT6&t>+ed}2yQ)a9`S+2A#^_^V|_$tQWmfLKJo6$iq%m$Y#45rL(DTz>ITm}B!J$;1TuVX z`^xBJ2<=yqR`)}#vr{8ApbG+S{yQ=oD`}%g0|pC|J5aAmBhl0Z*Q=y{*Q+SoaRZLz zD^o?Dhusuh^`$_`i;x!1X(y^1iQWZ&Yt&xl!1g5zWa*?HdxwK6@+|@8*vXRm7~6Tc z7@ATrN`=HUcx?QQqf`y^p!^Svi&m2H9{TK^=JTGv>s4{VrCq=4RbNfGf7h#I-cOJI zRj+Dqj0ngIHW(DnPPJOqT3hxlTZ5~zxPE=KG)0=Tr0j@@C6faYF1;_*)j+7+k(@&2 z^GV(<{n?6M7lakjq`w{OILyxaU@!AYb(SL~mn78m)|d|1!FvC}D zNLyHIx{3}rO{;xgCc=M<2+W!A)qiB{AF{%tP(##_fDXLy!#g`p^N*NgdM(X>gJ?}h zl7tK&A~3wKeOxS!_wxis?xZF(tI*u@4Whw{nP9GWIm)Lr1Ze8W>3msx7pM#Q!*`qs zz>*5mpCy%*Ow{Mx`Qoa+>vMU+e(;I{nsV@*5Ci*Cd1h7W2Dg^<(C@+tFw^7V5k5ZH zw|qu{zK6^>R8A-bFI8+mH@h5+LBKdOv!^IX;(*toBPk}&D?cNkaRh3bk}3wZBnb6; z1S9NC#CVsqn0d%4WTh_#K82@IEY6HY*<&ELCY%B4L(X}@=7AHPq=M)IMq>&T@|6d! zN+HI5IiHK~gG>>(6<55wfkM)KnDMZ;%^@#@3c?u!^$| z{Q(i{Q3%kxN~ZZOVm-`m4Sf=^+BMK;gGH>ee?+WbdtG2qUOGTbF|%S2#U&`LkoQ0i zHxH4bs$0bI@6w(wu-f*1qoP8DMHR__6+*G-11r3+@7NJgk|Qg?>*SR_}oQ;+lW+untR$qA)C}{_SCXDHQ+q zw}%z2+dS_t596(nQnLcq4f>IpOS}osL7GIt?Ls*V0gUcSdWx` zv1nH4IaEZC3)9(@gF*}(He2TGsi6Bd(RCdVPAOCuwHszmH72JDD z+K{JJ6_-x8JsjJ>zgAVSMdasyuc}ZXv?(}4olqcW6`00ldvq)PwW{L6W-duCHqH)U zRhn^EbrE1yW%g-R<@ujg6(u#4m7WRGp(tGXMvZ^8u3D%yK7dum+!sJP8wJ^sge{7pwuGd@ihR9e zNTZd!LI`xkj)2bDvs)cEpmnwM3V4=ug9WduFsKG=0jny`oP!2&MX!)+o?2HeHI_P} zfQI$MLORovhBXnaVZ8)2taxAz>kGRj13<%i@scZr@$KUK*?X{tRo^k;NyEAZ*04IK zXVaHxwzLNT8di5kIC>^t3=BG9;e;aG{u2JX_w(dtY!rIruZZ*us)% z4o&21d`Lpn|6bQva;YuNVWj$kg!De3?5$;m7!AJbiOY6`3|}uljv~{jp^rU(fkKOC`3xqYOPs7E-eJaIlU#ex+XO*qyu-9`n86SyfMyxBcQ_7S8cEfqF zGY$EL$X%HCHNb9&i@whR>}CL9Hy`K!josw&FetTH64dmB9Zv2owg8;NRpf8Zfz6lk zL7(Av;9fK_FHbD7@nutO2?EuZ0IAG{n1`8RD*w4ma*eYOqVZHV^7M{oq847I+Hnez z-DM@_7CqP%GJB{ZSmGa~m~A9tqw=ogkBT0OQrXWbI;O5Y9#C!GeILFx2FVLJ$u;fD zvF$s$4jATks3r75_ldn-OGSk_4OB)<3xd>S_^SG>jy$4LRW=nUhxq1BXSyfHV~-mx z*3sVG>UYau(w9_zXAmLkjicJ`4$3WPpx&16HOB3Bmcd&*VBZN>L1D!Dk8blq0E&>j#zv_ z)T5;WjAj?kdw5o<(k_M1l8(ZnMtUEnd(cVM+23|9h%Nj5%&Qr-xXSts71$mE03Tzb z_9Ol6Pr01^RdEdL5q}QvZ`(sCdbQj&ol&*bB&_2zTG#H<4GMu;eV`(R1`}$6dG!UE z_=yegeHgr4&DaT0n{LWtt%0VsjyZI9Xz)DS4Z`~bPWRj3Vy^km?q;BIuNcP1y|lJ; zSA4g1qJFPMe39tbXpSTvay3s5aUm_U?(6bIYRX3*YTH00(b3|-9})_AHx9GJL4AfC zmUn|wqfxjr%d;yj&S42kF8E$yJY~Z#4|T4~k%1zUc8z7GY#KRDj$1g6v)AM9Dv$sn zFEt!CYkzwUU`pUPL~e}@8;A^$fhzr!qG^Gtkk; z@W+n!_NKaZZST*B*8x|ci_fnagj;3ztZf9`>o3mdCr2-57G`EHaoSyKn+{svc(8CS zKinQ0ba)r)Zy8bDpEs(men8(Sc^Ywcy4Wn>xdol4#-2qP)4NY}Tp5r^-f4D_aGKg<^kN=>QZv^z13G(ne z>G*>iEG#@1i9kHd5kV&)2M;&zC7u;N(23!y{$>A*n~f-|kaQdatru<2W)7E>B^qAb z-lOoaayC1Jic!CvIts$p?+ZDIOBQjk&lkufRjy4l0KONt9G});eng2olRT`*&3<2eX?mL3u3p0O!8pY#pC#0!IaYj%2?4XHq6z@1;|8A-Lt;(>(t8wvI@@|3V$v3%I61|otQ_otvwc;aWmKDgFKNHUU`o$Sudx%(W!Hl;bn?S$pgq6NM z14XO+k!_uAlf0^@ap7ZXfojBUpaw}daae=C2Hjf>xz2IpN&Q`SB}83&!o^&4Ey%3U zU$LGRsg-frU$rFNULlx=pQ`G9T)el|o8l@@C}3Z>;4gJXnB04#vBPl_%|*!e>(#t5 zN%Czl$(1gUJjqd0vHFudiByF1y*^#SZU>B&v9J zI7jis;S8OWP_ZFIBKKS@J;DbHZS@cMTru>vn1~Orn^7^osu1Ai#pgp-zMs>*6dbPm zt`65oF8O2Y7Ani|hpRthX;TX0A+K(%U&40&H_cFC-{9}@RqoU3@P2R@EUs(3LmJ@N z$(7zoxg$P-q;HJmvn>)e|84){7HeU8O3zS5g&ZTF@8meYURSRal=N73ec#(voV)hf zstSg{sLT1P4^dqcbsdyl^`P63ziXT9$;1&ap9A-?-jFg!kAp zE^Ka}{L3$$Bo#8`SzM@B_*$!lW=B|vL~$@EB{EI5Q>Ix_1auPdFc<|T?Ow&1FWWra zj}v7QYW4q-H4#=y<)J;jrCfD=fti&+v#rYAsnpa5&YG-Y4W&0=f3^d%Cf3=aBJ6{L z6Q}r-;H-)Gx1bnAK0RXACya2 zAzo6JwBy!9rAf2OI@r>pmy(Z0Ej_T%&J98P5i)HYn=^{sxOTrzq2@5=!9=icS28f} znJAL4EM@_{6uIS$3ikl8n%oJ}b;m7mVx%Wq3dtW9M&P}c@|!H7089V2{Rkycgi9QPsIieSMtViG zd{#I)0SdjkUEi(G$Le<~2DQw?R()?&p^h6d&vl z&whbnLkR#Ieon+dxM+F;utCZ6lwdngGe~PUdi;C%8w$l&-+gh#YLMSshj$}b{TRsh zIMZSipFf$OUk|cjJUb*1P*IACHNZ8gSc}LhC(#5YbH|56FJ|hoX zoL(#t-VN=><>IR)T0yf?!Jr?!PDVDTX1G`o{9Oy4MXN%bHcb=-%8Ml=1Jd3z434~x z5#~B|>ThKpE(S#8kMtD|9Hp#X2tEaVp|3Px-UaMCs8Po%LlZwZSov&zfq8?5eEP799$oXv5SB*Pg_b;u%LyLx&3TtC26b0{pFxO1 zT@^CDg!zb<>I?eK3#7|89C-KeE~?5JCwn4U>dEkh^P*B@%5w#S@oA9@X^CYXo!wCc z;}$RzuJQrY@nI8DK6Bj`dTMpeP#r^`XagC>>g`>yxUQ$ps>&x&+w3v$z9!VDWufZK z+x`U`$^$4+Xg2}akj*$q>U(BHI6pVYaPZa$c-YxdxhO#RktJJwOk6I@^yb7bE3Hxa zrye>TPXZ|iwTkwYh`4Rxl{lwu=g3%zuMxSa;FY{i0B!KM&gxF11a;$YKCF=vDAccn zpxq3+d7%(uTzSly@tIIjJM_IiOei+o~-84(ssG9yWs%tw_t=*wmZILuaZR>?YU8>X!y z97y_UBsSEIwh^UBD+vO?BR)Ey#ooa888QPZBO% z=gl`|3T6$TFY=|HDF_6_SY8ISvHYF%v`KFQYO1<6aGRK$gj8OmmLPNaAwbUcliBq$ zI_S)~R7SV_Lh>Sscg%%@4=3XFhH$du>N&OjN{NrG6I1xA&@vofxzKbO^V3Su;oY9K>5yH=J&MdZ_FU(&rn9r};r3qT(lU9NLOv@0NcgLwO5dZgYFBKo zFHoPKyR>)8@F2EnbKnTS#BY7}%s5XFv&NOcA#7KuVj6y3zXjRW`MtwMTxYfjv8Lvl z<@L#@D=L@HWhc1WQrm-DoZFJ2gC@M1*5h}ARS3`Q@&U)o?Jwu5r7dWCju)Z!_lhMc zI_P64?JjXj1!FOCu%n7f`qd zCCb572}o3L4}^xwu4Jj37KaMoGMoLJypMC5uGEyf zx%ZxNgxeq!JHKv64`B>jYx_Lzl-#nC^)2S;t>OyH{LiC!iYkm1a6*KF?(c-i2YH?` zgoZe9LPTY#>~U$hwA6)hk#Vw!bEZFNi*M9T9dY{llz_mbD8R-e(<%m9i`{yMUQ^Z? znn~>&qoKMar{CKyilmtg}3H z?cBp>dOOXA-aXI>M&~%QkMw@>dq2neI;{RA>y|_rlwS1c(yM750q1R*yBhc)v_nz$ z_&J^hMeD(Obe#95*Wo5rxR-s-%-P)QSIHeaZSo>(LTci|VpZ{nRJPJ6#g!?FSIu%% z?vhLgpn19PeY)v24X>Hr%BA(p+3@&N+p~Tja-e!U^_b{r$da|8tK4D`EYE;hyo=u>3=dqvaOSVVYLtafXkYiEo#DPu}ALHHDukMzJ5) z$t9jo$JI8Toymb7Zwf$MXR<9V^Ey<`42H%7M(2h2@3Ht8`uUwhKoq;z8OqW@Jx zxs9xhq0PU(DD&8h#8X%lTHh%|Zx7g%cae>y+dkA;AJ30db$Hk4S(I*BelJ!qIlnMx z`*ro8jN!JSroWu$*Io1Evi82E(+o$$Y>TW(TT4?_9e^U5&aYqhoSNW;Cc>=5tLdWR z5=IbYfOle6?@n)~Nxa%lw}ytIcX$R&#?XXu(HDknjzR4AAcjY|a*$JvIO^EA+>M(3 zfWR?ml|ZzedbeYMxKXAc)@q4!o0_twDW0ia`{wTG@ow)llWKL zaqY)w*jd||e}{BC&oPM=ufy1}Oof+aGcXd9>6PVvtu6o%5JGVf#Y0ES%7L|2(gx^O zY)AhdM3lKga`oAH+?#jadG1q<_#>C$R@hFJrOI-u-qzSov7^%>F4NL{q}{OIu=x&F zgnZynUuV_OWufhHOU<;{+>#rZY^d>6T$%;5Xj|3t%$?gRc4(Sc4U<@oa32McVVi!w=SMy@D6MF`#Z!E|HZ zjJ<*7AmdrON1QR6{g+Y^r~cwh5!o9jC-%|qqC^I)S8`3)8(YQVbUj>xv-fG0)mbxK*GC01|70u7$v$0Sm z9;w?bP0X?;0pI=qOC-UV<98&1b=u`AlE47_cO;<-wzX?W|FdBh;#sdQ7ct@Z)BG!% z?Q>^dvx3daKwSNY1q&nbtMFRY;pzv}m7|VD#XyY%Uf)=Qk z&b;4Pq1h6A=>stiYT6-)AYBr|kSx5S!+6G7$g;kx@BW#LVP($S`$-F)jJX=wSQDY< z8E;LB0R9r8d;vCKVIn`5u%rmN%uIJ<^M406V0rVNHem5JU?-iF>h*Rr|FHpU_YBy8 z6~m%x>ijQ>1TpgOe-a5r@q51$3EE5&&W*Un@z=2z0eVjxu;mp0{RXTJcmwum>9D+G z(7^r3O@ZzFp7X}K#6~_VaE{cNHTyGmEWU^qM!+8GF^rX6Xsb5u>j3)(nNQGZ*w0cq zO(Bn@Sw#vxXlsK`{gNQgPjb4UX}b8n)~ot!le-y1<}u)B;X{*O0z@E#z^_ohUHUf> zP%eKC*_DSBzTne08Xy?#%R(`E)RUEjFhT*gyS{(2yKaNYK=+&9MU$>T1!MW5I`!X% zSA6~{E(aAjm_}ar%&JT`GSce+Us+g4Wt48@m*>@pQhAXqmlRmE zq^0U-m?m?~9IVU^e+3cf70pzBl6Ec#2POXLlMI9(S4?#J{ze1;FO^ALg;jy!nDbH+ zvH>s}K#fBpW9)ioFYJeCD+lXjQXvfgxv~17;SU<%a_HsUy4smC=aKxhP|e!)bySUq zT3!q}0uHmN(cnObr!$vDFQ*~|q9VTO=f~Zb?J>pTx{U>${NP!a7z$Cq^U642?uBy94tQQi-;J`Vya7C~EeFeWdM9KqvKW_fyS)40 zC<0I)>|ED5J6%2=)ZYj+l-D`-7YHcJ!#PEfc(sOD9Jm~QCaKkl0n94fG{W;gX#|7C|No>B*2n+9NF%5Ko3ItEPn)oNcEBdAh5^q3@{?kP8&Is+f)y)7 zM**$`e+010kVyNV4N(RSy7y~>dv;AjECQ>?F{2MweydcV} zS6xD8_**ipM3to_$m>3JV!N^BWEBk1;>e!%Ir2XQH#N|KpkX-R|JJI~o#fK*L&A%_nj3`fi>$VE`y(CkZ(WuJ(dq?J!v{Y>9&yEZUnnT=ZT~ZqXkeG93 zLRLR0fp3RJVK%Lv%ubV2a6@Q0{);~9erF<(MCMT+O3;PRtXD~P({J6YS?v=}MEg3Q zMKyFHRi@)6#Kn2Nt{@woSK{(puR^)(W%i~EH$QLaE%c|3%ITnk0BVX?OfSY;tBO45 z288#%B$xV0aAk;Gd#`P(ts%?`j{`F@M_WZyecqV0x4V{j0bb)2=j}@Rxh@=auTNe{ zg)qQ=R|UBqq~F`yCZYVeVnNzl-N5uMZo{lav*dK|w+++p9WUPu>^FAM!&%%-LNDDHFRyy! zNU;j%N|oAcFBmU-Cd|$BMVbw+Y;45}{gR6*y-CjDkL9GsaVyQKO7LYY)qizk)96%Z zXjPWeZv+y_bKqzfIZI%BCb5ouk+G23tU>txR4QV8_UJf}+^)oi!>Y_>$ZFjPM2~Sx ztX2~nzUQ8I8J9|Cu3B^Yc~H!|ft2zk*QNrmE!fy zB3{czr6T0gBeOQetfOkF)zLM=ow;VaQdrWpCM>*=My_3UNe}dEqi^vacRKWv-|JIa z`yj*Jv2AKoIvb3qL)`%qe5jj}Ps4EhPwfH1T!R89?%p!w)%a}Ff`D?sjq~J-fED~N zzKERa46c=!f9N8XBx*L{njU9IUvP5?2yE#N5`#KH z-WFIlIeDNL`^_Bbr*%~X$+=0EqvakaTSKefSF37?Al{otoKGItQ=ZnjpiGxpOR9b^ zAA8r|k%6i@fExTWGI03M$Uy(hP+l7;6pu&2z;o!LP+bCWd1qSb)F7&9V{8(P)Ex6eW+Uq z5j+n5_lG)D%71&PYyaa=A3gav@nM+fvJvj}3u|)h_X;+nn31^=rUgzl90kif*|9O- zJH^W5`dY`-F97{%M|pX^2G>P(fWZjO?0Bp81+o+#{Lhrk9z{zG;bB_UXVanAf8Oyk zfOq`wiqW(OJ+-(A@+X=+A<)qD+)_t+d=bG#k*xy>8xs^wowTdvu9c+WlN#CQg$c1@ z8IhC{pST}a?i^k+^?;Qbcgt#1_jZiB1cWuNRKcI~m z7eq{wtmaETWFGWmR^>hWS8c$eXn~yoIVm0ovW$Cf^+Yhtcu5_u8c$NY<`&8p<_Aj? zQ>ooIrbAwwW*=PKKmc5u2SkhmRQYc2UQg}vHwFDk>vkd z7|}g~pn&H5$b9->a^eqW}G>tLMHln!oGLN8CXfoCU{!f4QHI zOiltXyGk3QTS;IQ^K@d?K0Vw2LlF^x#QI+q5m%%p(kS-P?lFDSwd7w6fdLjdVTL*F z-vcb9;fQe(N`IWE<~?sXaG_qp^~Xtfp!pk+F(+c_LEJe1cAxrF6P0MV{QToSb&3)C zGGjoTBk2dFAofP>)r~Sf`j69Ik^ZN`fO-D&J2(ccu#iDNsQ-h#w+!mK-`BS3?(XiE zRvM&3x}_VWk?!v9?gr_W?k+)EIs^%&okR}PS+F!j=^Rn?KG~^{b~i>Lg1+lE43hX}wjtPhzHC=!T{b1^*Ztyl zrF(X}a>VOw(Hd0E*-QGE(I#%J2qn3Oci6H6usS=>LD@W{Tysrts_)q8{v?9kkTyTI z?;hgy?=WQJTM}OA4xG^#v{5I;2+O?0gvnsF@za)MUWzN_vLdJm}Y2 zr7VVnP)r2qX(}nk|^Z%!~2Qcyf8TSA$ zE9z>;NspxI`7gMKd-{^ITy({;t-nAeJTZdf) zYnu)q&ZB>|_Rt3w#b_QHFYlrbX?2D{h7|(j*F^c_q3IimDDx^3b~l8zvbLbXNw1<=;=U@sux3^!Qp>HVbXzJ&y5kafIM- zVP=Af#?ye1&$`K<9z)IB6cxdckS6Gu`f;hV2;vX^*2@@U>uzyjeIwJ(K$8g@6({J_ zQilyf1K({BjgQDLl|`c?6oOS7>wc{2g{X9Xga7Z@1EY1sP45W_FZciZkBS zezqkzDRmFXh+#u%e1??uuL0JaK0VOtpQlbl2#a^Kq-2A?hv?)9(v>An1rNoK4mO}R zTs%YB8L^~gvLlT_LKO`2>dryBt8}dwYV>^sx@I#+;#8=GAx3z~#`!hSgbes)tF|#_ zce^ZiL=pq$oOH+oC%|ciN~Iz$!MjyI`nQyIVE$C0lE7sbRp*O>#dSTrQLi&Im3Rva zr89a%#T}e(MY6i(!aO!Rq=a1;2Zi>_i(ru?*~q2j<}loWvz`=z@k{YG4iTmMW{LvT%x`IP0+Y!_C6E3&G zemr_07&O_WUrtbi0fsHgYS=^C04%r(KtENhFi|BUSTtragS3$hfKgV5XYhLUvly|T z;#Dv!$W16_k_q4r{@^iZ0~mO`+-N1%o9B2CyyfK^nreP4BD7)P7FQ*es8kVZm57hxgQFv$S;fhsQwUoI%_JyeXYdk{ATqaU`a zB+|0!lp7&A+?0zSF*gJ`CU4Ysvwvvh` z@|`l8`3S{lBJF6mMy=`fV2KP!aqj&nWSJ+E7j^R;&~Hz6J#3+o^oL8Ev~$^yV+cYhN?vgPw-=-{@0& zO8e1blfUIGM8tL?Oz3~fS>V0U6W_ncS$OsMoZz{8|B|!B!I72xe3i32AMSa4uhF2U zUJv)Bf6G~b!#yQh{vMu17$9ePKHMwJTE56xU|!`c>80gRzy3blGvvx;AYh@~FX2F2 zXwQC3sHhPZ1g*?4Et&G|VsuD{$)N;rxNcxv+(O@JhKnMM>cZF)z^LQqkK2=wk-y4> z82U1~0yY^_bmsX@;TX#yAKkGqvQYYyKssEgdxzSDN||4XbP^?3y`Ym2p3HowGNdQ5 z@PM4f?^(`*Mc>B=$XVLbjoysRp$2`|p}=H0T-D&L&MQ(bd2>90-TYQOH+hs(n1;fg zjTAJ($`p(JU zRa*G4!IQ9wU_&uUNk`}4w^Xtpn6O$s1Sg>Q6ryx3{>;Glv~*)f+lNtn>>njs@sbH- zIk+sRf{|gTR3##MUI_?WG5=#F!1&inK;>Uo0-XO?2_XK*qrDZzWYK3TFC!Iu>F)Y@ zZ=Jh<=c~PD;`7zMFq~3hP4_#B?Xj|!QsAQW9WZ9@Ia}14q#kB~%OJIf`-K>mX}hh5 zLz)%%PXEM328x<8ayUFMkj-?HTTTBBtl^*o8Cn;N{|pIkXE>!^l3McHy^+E^ ztTmf3rE0=D^e{Q>AAw)r<|`YJL#`;?1;{>jp3SE>6-Y|VIFww?Jz{qp+3b`2Q81P{XN4S&*0Ttf3|8u9T=N`sy|0IZP8 zT%WUc>&IMc7g`XHX|kxiE+!HRWLeNx{2SXvKMm_hmSTqocp=LZnb2$;V|Q*`t$$F~ z#r9_VK)`N_Uj4;osw-OqT&-=|Q?YM%X3G9zCY9Sd)GBufj&^4}>usJY*o}dmz)f9t zL3rmoQ}l|v3w{VI#2+5IDPovE zt~d?4B))k$t#8Vq{?+lv(kVAGRQ_4d6x`hLqm32gxPFR5IycDlon%zkGM#_TjXr@Fw|SvY~f-x6?`Lgap}nhQU?Vpjo1(;cC?(Sn|uhK#wO} zdB9_SVsP{$s=pzR#61D#rWyO&hqzg7+P~lIi(<>kMY3v7|1;q6c1hFOz5l=?3NA(e zh7F-#8tm6dIdgD$q!{9)ejfMvFVCC%L*!1K8++rOp^MBdwmsx_tx)gnp(^IRiB){5r4AgsYcR8kaOfyX0u;j9v@grU5VbL*uW{?9N_C2qG zt9vAKvhrZFrn=qMRA3;|pHVwgiCq{s&(ud<=relid0nc9ob@m@45mw2r^K{e`1Nv| zSJsi1XG)hU@uv}cfkPqtoiYKdFt~P_RG@p0Mey3a|7O5m8xC~uT_!9e_Kp#Z!!Ow* zmaESU!2k_veQj+dm!i<&iFxyzwEpkV_e6jywY`or_@2}jFj77i?5eh>ZOY~iCaL|j zLsaEokx=GPuvta_kauia+)!U=-Xy!vP*7hKOK%KY$)@^1VLwt`UT%&h*I|{5qcoyI z&#bnZfCMz}9o*v$U{NeoY9LFfdjC4DW6}es^-Eu6bIc+;;IyvR{CrwJFcC?Lu`sl$ z?r$Q5P`!~G&+L3Tt4IIaS$&t`^{mb@e<VF#{v8mvt5bSjnwp%e>~Q0 zULWgmd_2rOnw!Sz9(?$X+7Ajw+>W;SM%v><+pkOiK-M$jy3b!m%^?*)<1&rg@PZ3k$k}30JE{V7b z$$;FtDE#nE*dW^WE)ilnAF9D|O@eTUc-iwqM*VZo&uUJ$5aOdZ11a_?q;Xf6q^~O_ z?%+yaUIt<}4h(_hsj3WG$_HvT$%s(G{tun{7u0PWWedh{q-7K|D8_RJ9CYG|prA}2 zSPd8$5doj6iB!%%xBNmn`QxhpUnfpr`NDV=JDP-%$_l#*+0z-I|4aS@KcHOi)~PT$ z`LE@A(|<45_Xy9905HZdf7SK#fWhR+Ve%|s%>M*;_+PLX3kEis2_uycS1(UAzqp|C zQm@$>v*zD|35quJMrgRuw1LDS!hE&==BEn^ZVE8f!EubF*`|hkHqKY2`Unn(Wv1=D z%*@|PfJrigLbewOfzh%0)hcIaW!ZlH3W9+OL&v#5sj4x}PsYx)&?GCG6QYm662=x6 z2#(7BLEia?D4UT`RW0BqSz#{7$jXc)>uNT-vBddDg{DXRAu_BF%dDvYLy+>_SkGzyCk6;n3_j`dvSS8< zlExr>h{_+6?G8%*Fg8llwDRnsU@WYa(2(oa@((5!VIXM22ToKj{*d7Hb~4BV!@TGj z;ne6a_4?EepkANM;|{8)_~jz{wO+4ADFzkf0@UjvhsL0aTjTSG!Gg4j1iA14aBR>` z8xDQbbG_b$5)tPcyunzn0}`jfYrVd?(nF6GsMn9BIi|zN|BnntC0MCNb*Ka!hK)qR zuM_^D?%wa-Z>JDxK!zE{!@&|sG{s#L_MF|KnQJm6rSJneCtCi%d($0IzmJ_ORffGF z-af@ViInAX0Wb-!@6$YMDg638(zJ(Zi^hEyMuO>JOOM*c;4+~V{S*^%j-mZ3TcI3O z-02s~Wnx&(!oIi>ptGI>#d?$J|C1Fzh4cSg@&EgZziGFif*C><#cL@aPKPB2RP`RS zs(gYB4;#<%Q<`a9t}i1SCP%%k7Ad!%x~~YtNSQ(agbGsOa%zlk8!t?Gti2#$bNWy; zJ=jZN?7(PJ4FHQ5R^h=_?+$%!guoHfemc_Z%{cvrLT|)jRjqxC%p6#X)F8$Ld#ODuh?7C#4i)d&b#py1@?bqKzFs(SYTIKr~A?rC}n zMIPX63D^KVD%I-3#R}Tu7-s2;Q$`UoE*{D83pmUo`7O2z+n3DZla;3sbPoHWaFp~A zpk%IYO_$Kd;_xlVD?t?S?&+hJhNbEB3YIY!i(Z38!l2Tu$b95*K^FI?5z+awVe%i$ zBqw=BkxxB(?2c+^N~|g;vHd?$i!qBp0fE_XEI8Vi&D_DzlF{7SpBK zq)uvGdYJOstB+zCyL>j2y!7fh3WX!hoxgUCzXf{rji|z;-_v1X^^ADXzqt0%0oPhka|(}QX&EP!79yOQT#{THBDFY)Y7{kvB` z_1vr94}I>{C;w}&{?(l-*;HLB@9_z)oR>@R8eYq1aV=Dl^?dVe3_l$%#FL>wCv8|W zC16W3;0asK3p2`A^!Gi5;Db(8SMZ;Cm;1tJ3Vyg6WB#* zF~TF`adO0#~##r>otk1iSX^R7`ho#71Q^|C3!nYELr`gx&EN_ zj-kJDG;1#IVd$TW{s$^x(Vw6x>e-Qu^0VxbYqeFgp3~q=%xF@yV43r)(aYIf74fgL zxz0b%=H@dA2!bs!-~F~kud-ElC4zAawZDt_OzY1@{Er{u z=qxFb!Rs|+J|S4_;9@Ed6=|(2H8tJx6IE6oaxtZ!$|_d}OsUT!9#_ugbA6rUZ162! zY4l_sH=V9D<9aMP+xzGs1UiyjvpwSty=FXUVcoYS30PR??8 zagV?gsfl;7{U1)COme{OWz#1vPe%P|&ceb+yB|5*s5@!yyT$1>9^<1Wo6>eBUAa6S z=QGV#krUQqa)H+UtuTt4zBDy0-hlt6mu|nTYP@;Um22;gu_Y97}fd~E>`)24j%Z&G#t+J_%trW6)nF)2`L}nu7R!HU42n?6@ce| zVv-qc+jQ>u`iCn{)w?)qy7Ak`@?WS;807@IdNY%vFu2kzn#1z3}O?7=bh`-$BWe&Q9>tC z?29D*DSzsh+`-Jc%dO9%ZMi=_23;BAarsj9}gUejjTA!$2rQb;b3jxhXJ9N`F znU{qCA$e;*%`)!Eu=i!W{!mYtpUAixw}2HEyOfeZf=UbpYCV9GhB;T zSFNh!`5*eulI~d_T0W<&+&9S$6K?-7QhZ2*@JTSR{MELH6#v{iXyaBDeh{bcjETna zdL0Oy#BIO#kh`G%dmxZMvYfmd3j4tIE_34BK#<6zwausL&Pz{H8i!5bX9In;Tzb5SmE@3u3Vm`Fb9 z95tCi93VwjpSZs9WO@Chb)T*MbYv1ukdd8zUcDXVz46q^5$2&V;~o7+0ua?M8?A;L z*b`X(mzE0r7fVGkGaYsDKO>B@?Ehq`;L!aKmWpqU-`X;dP5)Q5gU*yQtff89Tknhg z&VncBg~m33V)C>#(0ulvTL){)&#eQG{#l@Ab|U-5eox7y_5CsZOY2}uZ`AOmbx@)U zLO*0p#^%Z?R16d;{N#O2Ps4$jN&m0WzFB1_{aKM9PTI5k`1(Z5OtMipFL+XZgQI7^9ER5r#@Funwqt zSqJoH#8Vb5EiPNWCHlAyS8<-11`X58orx(WVDZ)*(9^`dzs7dfH2uvFn~Xc2(M8{` z^8K5#ArvT?Wkel6sG0*nPZea*nbkN>x4?l znx)>7&jctQC}RGR`1&AjlD#|Vs8-Ed@kZq%rh6^IBVLrONW-|3$koy{#0lkJS;ka( z0J#J7*(OWZy!7W0Q5v|&&rSSDK$an+R>US(OA?Vd#1m=k6H?PPPW5|ozf7o0)tp67 zRTH9qSI>J8oKZ{25O>Ic#!mVOz6;f7Z>9Om?%S5;3vFsZxq4XjmvWU{r;MoQFH;4J zd_e8RShz+A&PSghMcem^!n%X=B(o&<7?wZa_UuIiX{vT?e+NNcM=%5*%+P9mflzLR z;pA7=XSn_$q>9nl8~{1Nn4cGKW%R7unO$kNJ4PO@k}72VPNhNaK}XwWfLfpd8zRkU(gy_5CxN@kdcLylk-2?{tjdkEl(&4_a6A1vp7$Y0%sC&_ zoIT@5tZb4p#e_M#SMjuG>xa&a_(Dn*^)G-B!!bjl3lb1w^k~GdaU=nEq@IXtWyGeV zJDPDqv{~+OXl~k;)e1SF-(X!@;+um3hZ2GT$1HA6WC473M6{Hr>;^w5v&lSonIM4a z$G0)9U-f+1yQ!Xi7|0UxJuD88i{Cj^Pi6JzPVUQT{n!e9N#I(lYyxLoqw*dk!{`k$ zm)Qx3EHFVZpmFq>iI4-`e-I4?9zEhH=v82@L|SQg{dvBv6%CyOaWK7Sf|$%Y}}2mX?k_ zY@!AVkG3NwpYH6c8Y^U2?BOk;A*G_9Nr>asE*%S;r)CH#`}FOHmgZGUpBg2TN9|Os zF2NX6%SqTdOS^kBhi|`{^;Qf1IlsAm}7R=eTAe!P!pxNfrPIx~uT;h9zy2!sM>?_xKADu`=0rp&uheDmMOkfpEc? zEm~~0BLp^qczHOPD_JUI{wzYPG#^7_1XKo zSr?JP0xbvCzgiBlKI?Cbt{=2KrZxE=54vIL3-9KMQV@ zfp?rLVK+USehxJ_?@opajHt>{uL8=J95~)xD+dZ38A48vTKc;o+P9Pyvfxq(C#NGw zx_jL|p4^9|t+LUYzBi4Mfe^?AUmLQVtU($Vuq6h+|BNb~Tw?d>D@l2+IdC?WFS2wI z$NrETei2!mqsN-0GlY=5$sXjg4>9L?tvMt)X_CIw9CD>1Zo&1dTEQGNfFxz~HA!hF z1d^1RJ@oOsV^T~C92dsB^bITPT3^Qx`QRB*A|E(jc!<3;01t8KR382)oT;%O$>O=@ zfDK-BxC7K2wjerl6^wh?m|?<%BtwzFt7`3=uLFfK=M1M{!1l?v&jk#TQ~;zzf184vhOwhvG6+10E72O`bctrN zpnQmawhL8+ID-a*8$}cYV!jfy7^uG`?N+B|v*@7%6NH(H)I@0L&p!|}yR}eA!NyJD z8TL3q=b<5)C2Te@)pc_cP72?Nd+~;x;=eT&)K7i}B1VUfTB4j*h(j(cp>2cW<-%!jkhNxQqRd_!A~E`Ul{T``TQ28IJ6i8Nw9^bo=jl#Pzqp454)< z_vc?T1PR^YUG8?2q6}b$FgXn(4jo#2@*=b7Z&u}AVjJ9#1I6T53S-d3bN+|Sg62%D zB;rM8ft;4`Izxze!1Ibkg67R!iQCg_0W_~x&zjflK`9Kj>?MrnFhw*ftNLu(a7a|| zb%*doVv~pQvO^H&t}q=0V+vsbtCkD`O$zdZk)l_D!lY2XLdab>lp<*f0R2ty2R#8v zl;$I-0?^Aj%(}dD^6gvv8WcuBveVM1Q9@_&8Q39M%k7=K?hweGR5tidoO>Z$yJcjg zOTeiCOikyvLEpoL-{exNx}-TiNtbL1`+^%-HL~_OkU-g?5uA%#L{dObEW;=rvs4mb zA|BOTNb&PtvywzXwr&GrS{;Ornq6!^9Ux8dh%>fRe)poY=qxC*GIy~7thAm4(16Y& z`WylnB9OoHGZkjm4}$pC+6QMRsWP~IGAJ2<))4%|fjJHi=g%WWYLWsQopSc)WH!Z2 zk)MUNQSxw+Yci4`e9Ngme1d@#_mzl4`{7AE+l=15ldS2X6@qtDLsfh9uY z!rPI&l7^$V?10b04i@lPC?u_@rx;3La%6b( zjP8xQ#KRlRo-ZB6wB+_coU)Bia_)~$(&(I5fY4#aat2idwn+?M$|h$-i*Tlg6ZbSG zX=9s>@qREGynaD)FpI%=LCDaC_aJcbS98MGy@W-Yw1}T$6}j-AB-yNg@|CyWoVLL_ zm(VFXY9mci3e(tBx;zx0uzQaRl z#$tHFrM0#7fl)c;mGk9>wAS7FkcL3Yat!N?U-Wr#%KdlwXRT76;t!q~*XT1eCaVp- z)2OB8#!mYDU4^Ix(;Ny4OywIVq{snByRIBY?iVxqT<5`dirIEL180^PJ0sNvyK9Ou z_pP@r)+*+j^d65UM)czKp$lKFE|Tmb%ps8eWQ~ZgRx_=i6)fHV;b|v|1UX8V6_n;L zQV1#HCK+EQA72UwV}@0Az1x-jF4+$90fxsZq<>?jFP_C#F@S*J?KUTGNC;DO?;Pxz z(hvV3*K;7!^JA}QF9sXpL2TYt6XzNWpG$Z0zCQ@+b9QpK=R%E5wZ%B`< zJx5Rc=WJL>zF1sKRNh@p|3Z8JNq<3kP8fClj(_ zW{<*xiO1>a!8!pR>^^RZDboqNZ9toe^A6UNuvCQn7>yB)J+Vph#Lbti^)3Zr*PTuD zL#fG6meGL&wgtisEA9i12bXQCzC6N~>UJ(06GZBZIM9*L_zQfBvqK+Y;hgdJlLqM= z@={9Jion(F_Xdd{Z?=%1?29T*-0NE88ors%xs-Uax@)5kUU`3e+u?6=5)prm>6AqF zJX07v?(eqx1#2$b$G+}fTYJyD^kFTQ(|_@ULXu5#5s!f)mH?#_vVk|NL4DZG%x(i~ zzNM>J`TWw_isRzdH>^AB%1@^@kM67HHdPIcnwIIyN1uut)~EzjGrk4W_`t>rkjl4n zpIWycI#OtK>c%5u_s6bB?_7khKiKbVB_^UzI!k0f$X1!qe%evn_Kv*w7JoeWBXE*z ze06@VeP7^wA9??@Byp}F^u#zFDa+|%h1S3(iuy51<7R&=@t60-FXrkeuggCK0oq<= z{1;|VrfZDZo=(SZ8xxo7*0{&s9rH`tcGd##LGQ6B`mJ1$iyh6aPQ=6V#JD)rlhLVr3 z*(6-8K3TPoU)y+EdVYHQct?`GbN$Qo!FA!%I_hEWbGG-1)l=cw`mS5~!_XkWG|c2V zdFx3x;LXGHp{bEGX{$5)-gNDuQx<-%@#*rLX1X$4{?oep!Q)PoX)sdu z=KoP4xNkUwXg}36K2_%i=8Pq?958BzYtxb*u4^VO| zei+rgS^6aZOS&q%=yrhlT-?kfseQQlq-~cnS?%||7|jKN_dX?UCVsZj!+de1$9Ess zJBOJ*wOTh(c~35(;fl9C3Ky8ev^m1RoV2swhTh- z;Str@M5aGEX?8_CI1L2NGW;{cQq9#;RicA6aiOnb(WIbsT#p}QC8$`@KSOUkEe;qI z?DjDP)YJxHiCl+eG_L8tX}oVe_Yyr1&Iefy`_wdYu2Q9!2+80yeiQ$>{0}rW3LO?? z_K0X@jUwCF{0`Wsu=^Bi$?4OXd?h)wS=KG)svj;^f5d$0*GpQI5X846i|WgR*pT>$ z5w~J^9h>aBPvS#vz$(yPQk&@L(_1ygYcTF;c4o9=H>cU4KzI5Wt9goB#9As zi@134aBimOkAkKNBzkS-Mekajz4G)Mp07`q31W$890yb?rS^zz`mSyp{Oew&e^13SRIPyNY<zyT2ywGqEV)yTtp+kFiXp#h&CY`)K{`t~&>{dC*|->a3#Uj)Q-LswPYoJ{fy~-q zz9GR%t^#w1Jq9uoTh7iRA*}+g*YTzEXVtD(Cnutg~4r4;8r>cWpXIC9X3rX0!OK!WTA_5)QDGt5J7*rNCt7P zYC@R34_*RQjb66ANOo%AaD=$#OyQR^&{0EFPznpt*uCV9)0RMDTRd-iY3bVe<1j}yWN+GRnt55+7*;dj1okk{1gwe`Z1#(ha3~m}) zJe{|~72*Hz*!s;jMzUxE6Q7rMoFk$nDO^XAYuJP}m++Oo6j zJq>(QskA}gjsaQDParv%vxPJM;Uuc}oE&JG$(_rv%GVq8JtqefK~?NDfA?!ls-M6Jg+K*`(=K@fWE5$Y6ajqrVOa zagOO@W4Pe-+oL>xR{jh+pJv`BUR0=7siF2a+* z4-SGpl9yD?I|8in+-HNzgrH`ZMT*%F@GqwtHnRDWVAE5Y_&{XBL6#pv;rU&df@=`P z45))ElziEUlki$Bot~f zy?18RJO_b^CJqD1b?PSt3m+)VbAq3YxF3q7G_WCZX1}0iFUz9YeD=9}@bF{n)bUs? z0W+7|_$6^UZ^8v5Z%b*x^YB2^zsN71??MNOsur!7Fpe%76E99b&=~TE4gwVQ=8tb4 z?*rYgf_Naq4JC#CM9CGqo$&jQ3cx=Ke*Sf^>dI-MDU8q#&|oD_%9Ut`7qH>S zMF|>tH?&A7EGw`6WuL~n7qDT^U`Nt!*{aEMcnghM|L0e*p&>N@HcYL!17R2dTO8eT zP%I1XCRxab1U>z7YlddtHnq($Ce(n`G)Lw<0Lv3OL=_vwOCX2l*fBjwxyRoT-FS-_Vk+_iBQr5)CtUCKz7wsx;a zDjE^r`@*0px+sOxxj?Q9+A;7LsZ z1SsCQq}!ZWeNwFQf{-@897Czmfg+w+(0Iu#7x`0ZJeG=@UxC+%aF<&w+p!+Mi!@?E zVlXgph;e3z*V^*}%;XmboFqXc4Sw^DC_Ix5tx;WWN8qW4z;ukk;{@O8Yw|w>4sS5H zr?%GLxk*2;4EvxcHF)C4+M(5bGQBmy%>+eg_y+3x(-Tg<&}E1dOJe(mXg+VW{@h33 z^l13-J8mWnY^CRK{S1*RSqKR{MxDAMFh+tdbgU~|L5kWy7Twr35IS>Q!B)|3oHQkr zRP{OeNpKYkU&`Pa7}d_u2KePqr%xgD%lil|t@$#pCbbH~VMlK+4;X~FIbo;xDQo{^4 z2RI)vqY00jz&X+rXW@tgRIYL){G?Pp2oe#Y9TE)~0C8xjM&l144uR-E5RMF|qUR{{ z9Twe9E)X5aqMa~}G5Jn_``_Eni8wNoHjrEpX2HQy$UXRg9Np>>pwV_jY`W7etn=xMT21$c09k%sTz@&bufYzr;5d~gN^TE-w9U55+-H~XBhU;8jA!-2 zD4D?jD#9%|n6N|IE|5QKRn<0J42lXlzdnC#hS-mVeVp=#gk$>i90X8227z zi9vG{24`8oOXDdI1uN)@e2ftS!#2VHxG2f^=b3KEJfJe)2G9+o(C>pVim|g?h2#;m zr5ss85;3Jw;1lSo#Pi4@<_7ceA@uks%YAnMx*@W>W>6Y>uJ2CND8tvW9MBzVDvq2C z2*mwR*b4{}39lsu|6$1-A5AeZDqIYmHTzbDF3Td`^lHCq8E`2yPlSAV!CZ_tbjrng z8DOY|T4`jaU%zdPN7AQAv)QQ<(QF5@Swq?jL4L zvwB-a<#Z!Z?jJ$?VRg_B3YQ3)u+J0XL6Q#N;%)4coXvgGii5&w!hwJv4BSo8VFi)y zVyA@n9{lJHS%jtH>a)Ww)s9LRo)ZU}pA2m_f|kP2rASlv7vS)n3e_ZtL$%%^%ESOv zv_NzqEtPV^uzn(_c#Jm4*Dn&t2H0P7+(p8YympuqtV*{;m~33gZw)Tg#^e~!r{`dh5i6T9tOHNfN+Rrnp@WOodf4f zD@RtF<5Y-XjbBu=D(Fq~IwJZuB-@*&+^AQ=ArXpZb#ZogZL5-RP(yuP-uqzx<`Cg{ zLq>plS=-UujVpC)$GSeQUk=6D|{}jF@5!*h8?bsx> z29|i?RstPv1Vr*28j}VD6eiu0xWm#^--CKIewsaR)kP51Et-{{OJ#YRpqhh|`iWP@ zdm05EV*bb%#NmfHb6oCxuuD{zx8y23eL8gX@P$(_YY7muN;#q5S0Y>b|Kuzzg4_38 zGIbq09hVeCAoU+jWkOE05i<)sz!KTIXM!`rX}4vGxT~}fChGxH2`3t?Jnf9w;Cz*A zf#ji&Mlt7)EFY+u8uAVxTr5s6Dl!;|s?nrF=g5=<5SHDwxng%^z0&>YT%khlHwMCv z6KQBgnDJ!VeM`fy0ggcgx(1jCFHX?5fWr*_3U%Pr*%rvL(@YI@p*JD>z#N_b^WXuaDxu;M@!Q;#u+tjw?C0JGKd5sQ|7>ikXu85$XeXF3 z;Iw=75NzIro`AU3)sH&CKg{NJd9b3q^5Apy;n&LVI6f`*mU|9{#C63RMwuH?PaR$Q z`eka)+xz-FyM!I{YaMe?1Yeo}t>w1Ua$ zys7RdS<=To@?$dfey`Cg{ZeMcZ*7O83`CRWQQkGTwK3#%19uba6N`ajls`C0(ois97er1$>V~8KU~rKQtW0 z2cNotpa!}v6m8=xva;4u`KpJ;5|*hGg*`SF7^IOVciPC!h1C94kx$+?7dxb1aaZPv!{Q?f@8B*euEVpy=hT%?{HE2FtDIeC>mJHS_IlNXkI~Ou9cQq}`8=eau zpEZw;k0To}i~o?q=?QOtfWcr!YR9jBM=1I2*TQzMsNMFJ;m!S~bEo!=i}6n1MdmF0 zUb?ok;?hX<&=cOxQ`G(Jk@pJo=*iAb%eCaMYy6w1hS=?VzelaS(=;oZ?-Z>@VPu-c zs{FSuJ9q2%ccVw0*`9pRq{-Q3le|k$sm`OB(5YFF{cJ!4a-1~%xWLt@ML%&2#7Eh# zce*xj^AXV9t2#P5>gxVD?j4vols`CjbclKJ|F04oXsDOOX5s45x&G;L;8ye5Mai|0 z{O|;Qd;;zMW4Hs>PY2b29ZjD~2xwpJ8Af<1wBpR*n ze(hZO9?8PSmd)>GODY(~xNjmQa@yKotikbteZFG>6^zR>En?@ZlGu#!0vmpAg!+3C zX35e9w&C0I5BM#lLz{Fw=9_yr?PM-r({qfz5&S5*2{S^M*Epb(Nou?lqmr2C9o!`=IeHn4*@UJfHy4c5bnNnZe%7xYxXI)EztoJNg2PdTPUr+|3J!vy z^bjN?HeFm-=58GP)T*LiP&T;|eCx$h&@{*sNZSp7S+i)xybX@GRh$`C?jYZA}KXA)|5zvAjSj>W;8j6)6 zUNWaN#PmMbJCZCQ>JNc>2bqjmR0|WL(VK*>^?BG07~7;A+Jo=rzp8RnOIUJd9%ZXZ z;D95F+CYe^q0TnDi|v6sR_>W_f_9uQcyweDynH-dl!QkNnP#S<3i~_xX4hs6px@E0 zxUr82e+t_Wkh+>MRs!}$^vhW;oMAUIa&6w13xF#TfK(t5osS_oS}Gq136FIyJctXa z&7udwjiCo&uZJL$mw zp0-Gih(Dy`)^f@ z8k>KwVt{FV(IUD=l8IS{+b%{WG^E0X+b7Wp=c-^8G!W?3BymE>3kXbg4CqCmv@g>p z2lE?7h_F7jh%=eH_lODtbj1pyo@6KnC^BdJmIOw<1P(%=Q1bVx^Wfxy{@)SLNboQ( zM64FGW^;V`!fzPT%U~d2!IU|*DnyheO?&7vS93U8=n$A-@`{cU zOoKS0mODZqvNCTBV)YYr2GqFw3*INb)#E`2v#N2^ujlfI1EcX$s&GDo=l-&SZV>VT z&8R{eSX--y?iPz%)^K*wg^1Qd;@A*zH;G=>3aivHQi zQ;AHjsh9B!HuC$@Dy>uon2pp#c?&xz%%AKBjJRY)Qnc6*A#8#r2+_TK>?SxNq`Z-fYCDF1Kk z8^=zTAEh1Ut?Oi4wWG=n>afj*wIOqBBoT>DWWHUA;(I}sB@gZu@FM#QRk6Z@&BdNi zQ_Nht3|sna84+5R!k$E+fBqdgeox@aok6khmLDxrFLW+^u&ZVk7B?Fn{+&x#yZD%+ zCXg~;tEP&H>brvBWLz)x!lW72^A~^ME#71tclZOhjIl0b73f#7&`2V-&G;?xF*W7? z(BN>JIvO_4K7;@^FhCBYMfbXasa+7(1~xF2uNxSS=M7BQyj0)h%xr9)@zYf10SPR{ zhgU?!)Z&%!Jrv}f9gbVY==}d&;c%@fQq$oUdgWB?G#lT508+~xwkZ_k=PAtm%M@n* zLZ7`~a_rLSAYI83iUM%{f>(#rqG))^r~FS94ue*peE>{h91yQg)ydDbua!kkmWv9M za?H>m^~@%Sj0{?Y__&l}A!1OZ%GtW{8E|qUKe@4d-c8-mW=+}e*FnPwhLzhC81Hce z1FJcmVw520W*%C;&-$SG^R(CYF1WJj5l6X&SkLCG>V5sBNZJivYEx;NiSKj#2Xe-a zv(50ZjuVmO4PDWG1+UmECQBPg_f%L#C|T5`CPQH{{!5QMje5QUKM3$@V{i0~aaqoo z6LUwOS-btxfrHefSMaE~0q(PT*hX;U>%-G;!7qoKOg%o;2 zLp!bCrJ{<2-6>z<=Z1hMwBbRKCYZCMRD-AZ+|>XnG|qU7ilKPoJi7Uek@O0Y7XhLd z`K%P24>_dU&>$QU84%Egg~?pQwq55%Gm&6A_&ccptHKx$U{&}(vnujJ{Bl|wHlJA) zGxr=9=ulRhnxNWg9Cha#T}&B5^e*rKgYd@6cV~qv=Qd{p@&K_N>k2o zi+m4(<|i6*6vW{hJ6A-otUo0inp%Fmf`%B7H0N)4UaXcB05UAYe46hX(=o@E*uPpA zHVdle%?i9ZP~GEj4pFg21MHH27-92RyS_)~fMDTI)iHE;NCq)bek$@I_p_(z_EH8# zQg+DpHow=%hDjqaXcEWunDBv8e_L&<#m|sumn*aoU=|>)d$^Aa3 z9mgR#XQb$bSE0tO&msK6t2kh}eGOt>c@;nqQ&??%Jz?%6G@FQItos+Q;#P`t@JAra z4h6ugh=SsNC&BBan@}JG$vDu^GoAHTEE&l2Qx%P-XPPg{x|CDs0E3ZuD3`GDJsmEc zqw7=w!V9k=^)IdE!FCca^yq_Tsp0b==9*VEFXd*g$QE!C(c1s^h>Ru@VFG&vR@_6o zq8AFj04sX*`FOBwg#u7rWLXiuuw%TJ*L?L_n!>NiL;RCpkX9w$5 z{dzS##lR(pG6mqZq?`~|QK$oe6;2NCoL_+z_@(7wzwA2ksfOT93^auaxp9F=zJVV} zxwD8^q4pLI6tccPJNG>_SW^gq{$~VKr?rI5|Hxq~BxLDq$uy!f)t+IJpnt<84fZ2B zI#GV(v2N_eGlb{QoCzl)fIm`l7)$rM1L(`cEp8uEKd%I8fLK8^jS7e@VV}j8l&T@p z&tgjfIkJQjK7?%dSmmygE9&9;h%|-V+xoVQ*h2yX=0v9eMYG=~QegYfVoPhgl}$iw z`BRA7%nf_#vi0)`K$H9-wl|Tt>lu+u{EV#Vm{7nHt^7Ed>sz)GB@HqP9}Toc6qrVb zdZ)`Kv!w%=SS4JGlZ(-lHCr6PcsZ_JRpqdv)k43E97dO-1Re7^v5PRtY9v~LzxT4e z>%EjpNXW%Tq+08m6Sy}dbs7j|2p}aw5IN6&dw_TnZ@+(S=L6sa7ULmL-`GF zLVHNyO1KlIMfQ2X-Jpoosg~4U_>$f9=QN~>qP}7<&Scac!YPJmlnZ87!%tbf5R(r z?C@9aKeC`^0+Ee#RYR9?CA$DNhl9pv#8TFF$HmBd{fs%&bZonOJkgf_ zkG-=BigRJtEFK_Oa0~9igF6IwclY1~cMI9^Oj)-5gNUPHW}TuJ7hGFpD!;YNi}38kQe;$bR_HCBI;Fp}JHvHRo$ z)!AE_lJ7viVt)*}zFqC9ZezV|bR7qfL$qVuqBL&}C_=q6CO@iqt)73LAXNdmCoeJ0 z*iQHD7D05GVR4p|LOw>@GMDVs!>ud_)i65$<+3xXH=*?q2BYS*@9x&rw>&BF<%=nm zc}HDf$K6yPrqPmnmgtN2Lhf7@~GQSU>pnBJQ3u4aGu_zrPm z2vDf@`GgXud3^okakaY^S3?=)TVgjMab+>KaW+%0IBlK(C9%XYql9Jed{8}Gn)i)8 zRFU$V4*z%t6{#;K_^elsrI=EwVR;CG+ALzG2k&W%Df16VyA2&W za^Wp52BK}*K=%NWEW1Ktq7aV&5*jkz*k1uM5v^r01}Q)LJ04f?pKf{a_m186cVs|r zR@@A3+SR$+J@9hGRZkW{ue|DTk46eJTvjBvK(6(OubhyN+PKcP&$b?2JFp)bIBKm^ z`~A8+K^){4?pJP>W+q2?5W4M}`|rOdDx|$5 zXv-x$%w#f<4qR)tBYE$KlIv3rzi)9^#%GR|an;EfN1CtwdK~2_bow!zZj0QJBR!Kp zJAZf7*v6J5hbA=jZ8*k4NO>@h-=T^spw7G|erJZ^2M~@(|B%~V@u-;Jc zd)StbqGIp5ICilU*ULEJ(4>gfLtlZq(OicE7M<%{+Dc|jmT=k9g&BuPX z+#XurUOImmjjTXOZO~32mC~?VI(*!0yt}>G?Ajd544{j=C&%F&fo$3xvfj6npa1m< zt}+X_4|#bUdx<=)ESp(cS*JYk-n1P&@%9v+-}y~E3|WsNyyZbZ2ACJ@Uc;bK_@j|1 z3MYmzlYnFGU4KsdVnsG%`w=;O(x7zYt$~}e$-dQs58^T)1s^^$>T3-5nKtlqpEY}? z>;?Kj`=oM8^?h2QB>w2OpByeL{3Rmr~@(c5__{*SuC7tQ?++F((*NT)Zqj`kQ zq`OcxOwkwn6?6#=H)52$y^Iu`Zm~G7RhL>WuG_5?u(J=V1$n`D-60ymH)K@8feUtA zEu7O65)Or~mfWL}Q#nh0+~(aKp)y#|yAW*e=|e!akh!EcHRQ$b8+5wUb^oS}ytG zv={dpl1QR0NrzH?@siA9ZRwPS`aMNOaB~vTZsjN!&u0;EV%`IVrnm(Dm_|Q6J6w2C zxd1_f*3P-@Snckqnw(dmZ{;c3RZ_$LTxz8A!hc_CJP>Z4FEu0E|KUWB2W$krp?9jcSJS4U+~DcmsB-9WNp5$xX%KAk zTz1n1phSIPiZ};4^yWl?W#hV?)Kk!=Q(cb{E$U1)^Gs2_vTN9i==UcC?_fDQo~JlDWMihiYU=X;eyK@o`g5rn4yv58 zX=#rf=hB4<@AmYLjnR1A6Qu81O9;WHP|gPN5zRjN6t|Tv><2zk38jS06;*yaos0){ zK5|Gq&f;R4>p=(Smhr@~WPN~zTI310%cNEw5l{I($W9EdWPudCc8>i_z8G+T>X!zA zunp+*Sp8V^Pc;mZ?UmgD$;V0u`*9bFj0gls2#oC^&nAK*7-GZvr^Z@qOJ8O(=oVmq zW-?K?yF-P8%tQo9!<|KN`|_F4pD`g6xa2*)Pyh~40CeG|2V+XQJ;GzK82$L8(>I)> zJG*-BZvm(xw@V@*01fHf2>1xt+(Age9kTf{`(r6YJNVuk_4OF?`wX-G!gi_+<$}^2aVVK84BED&s-?=s_h$#}eK(qRw%owCi*v zgP7I7{0etnpui8JL_E(IWRUxH5ZoMl9~l-6Njc}H_#FESd?oC2sKa*>gKaPuHt{*s zu||)UZi$8iW*^cI7hUiY>Zq8gYA*U32H^(@%2k6bP6Jp#)5+RMKlCV4Zu)}Q7AX4K zwTP{KN3iM0l=-kV^ST^a3Hp2S<=cVw`2#3W*m6Pm!VdgQxP@&~RGEC#wY}4UDwiBl z+cP$!*)0jCrk7_Le0G^s-RJ3!i~-Dm)EkQ#kDN<%ONDfRw=_n=3|F=reM57 zY&>vn5tST4NpO(djVk;b!JtOeY2cvfza^MuMT2&smBt6*R}~Tq4LxRaP5>Iv3}o3( z32c(Af3Yr}NSF1h(I6qvsA%~6<7#uQp3kgHgM%1g8?mP!)FXNQipW$#ah8e&_1B>7 z&>5(tH^Goe79pOer);Gzv`w)qPgnt4@LW5shuw<oO+c%5nXEqyW09u`$92L$f> zoS!5$YtgnbRScjR`S?dOQYD4hHv(uzB%n~*W+i;r=)1&li$snNV7$e;u6YX*PmQ=} z-zu#E5>Uh_8EQTrOPg~1PfTi^QA6-M!a`#^o%9`HL7(;mPs4vpKyzYU42Qei4lrP{ zjo(8y#3M=uG!_^-BL2?09`yGA>Ndf`5{EKTuARhDb z)mKdi$gS!t<;uil0;3|NAGMXB%|}J|8FNY8`-8cpf%mxg_`gbV51ORLa|F1Wav$a?84MXriZa`wGFcSjQgRg3*4IT(3kT zwn#rGrh2Qv;J;+;$3Yr5A)5Z4}cr zBY-CnB-4)FQo;BRTa;&bn8>{ODO1j#4wY>vtTtZW!}#NCW`POyeeM1;bcnz<9-snh zYSOeokM=F#$nR%Kn^uWx;eH z4;O#!WK6W%pLa6NRe6vr%0a_>De_zsWmH1u52GtV7PnvIXP$*5z);5K&rk;8@1YDl z!hWifj>Kca_w+a4+(yq54i;DG?Ok&YbG?h)6M|avTQ_6jT->}gXhM;R4kNuDI(Q#1 zy*i&f=q684QX!t)tO?s2_U;-EO z*uu3ehN^mLaGEolwH5H-~mE-Kq$N3b~X{FroI=n})+8S~_FWU5UH-01v-^kayMfZ~E zp7h+;gr8X4Q=KnJyOgf~NHb+%#3-Yjthx zN+ATj$_d^zT<6*ls#(nzN9fw2gKdb+`5OQ5KS z4cGxZvUN`;22wa*HN4m^2MkdP0cpHI8ZI>0R`u7{yD~9BrttVQG^?BSKixLY6|iVV zAkUsO`tR{=hBKF6C&`c@tth=cf6^!~qB}e=>ed>3;NQ?5DfPbB7%82#PTy~ZZAisB zjvg*al7^*bU2%DAS%*!82rI~WVWLzqY%G>OXNm521U-%O)$-TDrF5pNoJs4LimJ9IcMjb&A9pP={Kn;jEF^* zgSJRAcA_eq`p2w^B*@$?e$f2 z>bC0mIUr<$kDvKY*E(BHOD3WXA3UXaG*Lx7c@swIJg6M07+y>EMX*Q0;V(O0^DbDW~RLO3DfDPY#OUSGYf= zdU?4#T-Q`=6KtF*TqcX$@t#{XCB6;KWW5dJT<~f!s(lK-x|$BLyCZ~MHCcX~(HNoV zCazsrUS6J?b8SAiuW6cER$DQvD6{_Gf?z)EzB+94;L^&9JZ} zJUj*d`UeFQnD^WPNC4=}KBW@}9ho9cbe6!B+v*2-* zF1GHs50Vvznt2`+{ZI`B21U)OtOBd+4`c>S$8piMh?m2{6vW1zKP2QidVbG|7H{?B zJpSv`N{{5mM{{dKU&SQ_I|H`hm{(kp34tOjY6^Uw(2H?QR$i*M@2YeJ<9BTQ0!&oe z6h}&f$|*_`htC&P-_Bbusx8zm1Xz&BQ>#zB>$RBz1Shy0y`xi8w!R|Tj0y!buo`lC z?>I?&N0dtSeM;Y*XVz+z@v`~ImQ(yvRNpknH%>A?0Vo)izGn(%WDKBS zdiz#%yH8bjH&r*?nA=)^no5c{m`cE#;JWf)_Yt}fdB8jiPGoS|eG*+ttJ{n1;8BC9 zFZK1aMQvwND}$Z-7b+#+wvw6YhZsVWP3XPFgAco}l-ZP5hY(vs2>5QxL?DEPEOiQI zk}2Z~uQD3a9OAI{?Wd+CdY{4&U^r>TimoRuDW{IX3n%(X9xGRI(x@(~ZBtsRM_YMj z57bYkcj9{tfu@Q;UkiRYRG#(0fN+YZDM;UJ4@E>`zf?LexwBJA5&796FT+CZNq(bi zEK*tVUdgxEkKbgt=*i73ty~=t+m5^9Pk5xrm!L!6dEQ&D!`Gz6&6{W$Y9&bb}h=_Px-8>UtPg1m*-@|KT_Kiv9c@r9 z0j>r|D(v6@#s-!~YAVj*G~e~E2#pG^s5W%sU626itFid8@F`Oyc6dC^+YBM3Mqo%} zc+lDHvkNwv=Sz%?pBJQDsE8JhfNEvMPemmNLk#vDSCJ_a8PH3m7F9g< zC7&}ZS2nDvbp4?GjsM&fF_TT{F=1`)B|QqehZ6QQkw8ry#(>U0Pm2CsMv|@bUlA}p zDtLGZl6f=#M!+)dG=1W1_T z%`11`-Fj>TC*Ldq5b+R%flbU@(=smTtYAuEYR0hfpQ6LeiOQo_%`IXY-{7yD~^;)kMr1XS0$rW<9O4m)fPO{N@?Dq zge`uZ=l2;mFl9;-J%6WtTnEpE4Nm6jwxm8Yu35KW5lfr6UNU8=m_7ZjU1G1~~m+mh^BoD3IE!1>SnCj`F&V7AYL1k7{ve$SA z?n5SHl?6I0D~JyG}QO&T8uryfvxeEZ{Mp0F+O=^KqV)^Za z{R&h1=C>0zaICNml~m!o$%_+~yAzbo!=c+r8gRmv+f&^Aal($PRI?+{eWoM_oUnFG zon!oK#dkR*@KmM@na1X*+YJ0MlVj- z!Hu*4o!o9v8S;h=cGaU9@wcgSvz1-jRmi==g)IK1jNYQrx!dOM7nq;k{FcIQ@_tLD zfP9g{A|dS0Re8TA3hOkF(euvFCh#2>kLQPknd1JiQ`d|vN~;ILE%E@7|KW|e3g0A< zylpOg@YEt;sISN-f)RD0wM8!pNznqNu&EPGcfX~uqFQLqk#|e<{Mz&=6Ucj=1G=DH z6_>VIx6BVgF;gl)Pc{Dmjuhyr3R%SBn(~9biazXwACVo8jD15sXDnnU?}IYnde9mJ zL|fqgind^Uu>Nx6pEVN&%A0AZh8rJ&QDTUBLRUc1ap90%>I)6;k(dnifg_gFw_4)V0xA0T>u1T z{4WHCe0kwJ0Zh@z_b5Z3_pb`2J7scmI-9!YkVH0MxQ@xLKLG%YZi=9=l)wi#d4hYj zbHLjdD<{tw-W?~?l=zNAP;wYD0qf&ZKKi$D^pMDcy85JuO*B}9clghzo9p%k3L&WK z$-Hh4N_Ws^2omzU- z&=mdNEdl@F{zbPOnLQs!T8M!I32fRLNSU#HS%8$$<@*BXJ*#x<>#5mP*Wh?GsiFAU zc~B)Mtx<#KUnXt4Pm2{2(fTv(%PD&rJG;QK1m``ifQ!`*ty8&S(T8%cau#b-$sMbP zrRB^#H7{gdk5}H*f%#{&#m#k&`sdcOOV(w8^s0M(dKVX}cUpv6 zxNb#7+q@)yEi-qGyv{%zRZVj=RBwlRmXl6TFR1k4cgX>61#c% z2o4&B3u~8-h`aUC=60J3!(N}s?WrYct0|s(1HPGD)|%CeVrq3 zP8v;08vP>A^A0O-6jm>jvhHTC@b#WA-VkREn)`M^;)xK?C>du?!Dd^5I)}dPJFb1TnxX$jc!CTC3k-6RblZ=lTm!?+8OFWSzY0m$YWMZ_ z9XTE&1AzvRw(sr-&1j6FTX3r?I+*M=RRpy}&V2xK3KPERq9WsI(oTwZcNl%FA>~q-ghzt7vvs8!q*yI99>o9h1J%z3P zsb*yNEt8!|T2F;3h#+PCRXe8@9fGmpm(}sEsb}(MoBU}Y5cc<0t30Ndwe=rctulSZ zPj{DDUdXGJu&Q1phgSR;gF-BOMI0|axb)uh`&z|1i6wW*~ z>Le@;4cVQ>E}ycVJ(&{^h(JCx2nMpuK{ts_PM`|aN|(7`oDN=h+*~Klc=6u3A_&m( zDm@>H-XAB7UN$*$+nC&0H-uev)Hf}w|GQNusra8(ox}99OZYS43=1nx9X#ISjAJiP zcZb>5%WCS6^C|mQ*L3|$Goy5fw2_ZY?k*d=bF;Rz-=uUrHJoC{`w|VpAw9On9z&In z)iZ5X?g|fute?ut;Kv_X|7d*N`@GO1_Iv(z>O`7mUII29Klf)%&gJ$}pWEdj&(q@E zqr`g0_vz_*V*Dqp5Qn42?Tcc}r$a6+^M*v=3m;AJ9-g$+v+5rjX6hU28-@WE%98!* zoS!Fs1wZXb$J5Pm=Y)L);o;NH_zx@aQ=`I>s8$^Yt>FZ(t3kTOpGpQX1lzcma=u9h zrWq+KVujT=a1P?>?Eqa=9T5BdnJ)6He5Q*Y@nL*MOIWdnJPN}$z~VCIpp7!t5!*=e zQFdd$bllcPS1?rCtVpN)a^b0f&NwEcNM;scGixWBgHTj%KJ?BnYm0`FcaZrW{*y!; z?}SSo56{C^3iO81Mq&KxgI;ghTh)vRhU@m7p0D6^0!E+mvHHgA`hzPjVR77K19&Gm-rCJxII)!NGu zOzH0<*qYV4?-KdXGiEdL6Gm&LX)XuLNU-R9ZR!m)$|F}GEPUjQlaSv$Bd8}C9X4+4 z8q|~P6ODgWtSP=gAhy_5$zBlX*&4MI_Lojac`~&YMFe5ntTZD-op!Hf6F#JtQO?0A z`oc5|i#IvU)n8#t;LKM;3*OErzOeM`t^F~dn4~ZeD>7`o`>CH7)lxHv^YJzt6!QaG zE}J$UtHWd3>XM8MceK)K@LZ+;tBI-9&lGY>dO{hJA3WE5n%H}`Ml`NB9`H0H0J>;= zsj(4k=i@)=qCPu-F1mC}@8(+7P&9bToLjlG(`ev=s>{e^;;8En=T+=1if196iy1P z%Iu9Z;BM-W&L}yLUZGe$n|0Rk5NugEg9~>+$n#|nrh;{YdTHWAhldPx6MexTi2T0} z$)yBh!y`y`V=IcC@HOvgn7CpNb2bF_&bzZCK!5!==BR3amj9#N_yy~lND9FS>FN6= zEk?f7bYi;rLCI|D`VeUESn92HC>p_9u>fc#IDZ7$lrc(>whoF@K5^YpxbNMfzQNF1 zKKD#H2E!yDK;QP5M>i=!i5{4!(wKjO1kI<9jj$12ui8}D#D0S$X{>ASrxMGQyR~h{ zbWxxhLA8hCgS1YogX8_TsaJ{|)nZnAoy9#{cT}HesDKKL-xnnQJNiD75;AHK2E~SO z5_VhDus2AejBxUcuQv{E(jUx2`XN4FCo7rJK)*VRZ%blcIGyHwRwws46dN|?gEDXt zqpe%akfC4FFt7la0BAn3F~TNX1JttkSD;J`y+J|&a)9gfCu%IR(w6t3By?r(p8wb~ z9FS5fVJ#4^ID758nSu1dJ%+$QOCTHUt2h(yC52xdsPfJA|gLO=~NPv5zkRSIN ztS4C>X5^48n3c2h!IK9*S%^$x594J5j;jo;5qRIEJ!%zP9QNe2Y+0M_LLsWf%bJ2z4eo1T25jzjt8hdO4C z&Sau03NJRJn)(Mog{4e}+2mj62bSOe!<0UHOQm($9LJdnO7h~Wxvo6F$*f_HOpCT( zscP$@{pli&3xp>;uHNoA(k#V?<^Y9?vAz&9z_SPSXSN1@Y)luduQ|u3HoxLGXuJ z9OVCw!}m)&g(N!H>`lUGjzaAj0jNo6^Bx0AIy6*?hoN3tZ+tMN>_sueqicvyBPcy~eqMRSr}mYd+QKPj%rKTf@AWdu6K zjGYQ2YW}i{bv(F`3`a~^RTUcG*#uufsNCy{{csr_@g@>TRPxOK4+mh0U*bJgyFh4O z;g2>T@|z`YLZAID@fD18sgTG%=M$GLLe72UODgqj`GJ7@e|7$qN6>aM{MuJvRz9cO zyYve#t!K6@NEJ)aJ*SE{rSfqgTUiF*?^2x>HR}cts8ii6Hm}lHb9+7f9bU z=iiubk;BdQ)PXfJnHz6*`Dn5EDW9MNp`G(Nu%RX?zDxeD*W)I39w?m- zWG;ApgGP*TQyX2gBc#$r5-|V$Jq=_*Bkvk~eo$(bEE6?fw^%qe@p(y55r|D$--jYF z+@dX>r}1AkJa3rzd#oZEf2D!KSANp|S?{j;5-Wy(i4_aw<)mO+N&JZwyD)6g^2bZ< zI+7W#mfL(a`;04FV00R}A<+cl>1#-pj^S|Zf+iw4rD~>?6{yg}S zD?ZB-!)hP!rSfHDFZ?;PW79b?K;wdta91baZ_L7CapLktkm0;o>SqZYf&9kK4K_Y^ zfF^`;Q!H8;*%6ZOx=$ZL0Pr(Mt~I8VHC-=tQ;an z0+Vl4j+cK|_VYLzk^?Z)JNnq6gCQDrXkH`=CZ8dZ=3kOyJVPI~w`G6S&POZ&0m~|{ z0=c~I$toFzG2B!8nZt%rmG8vd1GmUiiZ{pb@;Qj~k@rI|5JY;jK=Mjmwv*qG)5h<8 z+{LRGu=9_G=OtJyVK$f$a19uT zC;M$dMj;+3WLA>}xN?Y{$u5wMMRm(0z91zkI!ON3@VH^}T)z~No;5toxdN9To!E(| z*Z~dCK6L(%o$qlFKWfrpW*65QdzCU~X8mk_T+jk%uEWJ#LHMuXBk4ll?=b0jVPSAA z-O_WZL(~Bc5BRf&2jp496O5Llnea!$1O2Swk*0gr@O=8GhNmWQ5?_H3ZXsd4(Kn?7zVE<(i=ujrs|9t#%!3BUgR2Bn{7Bn?QWTLh&=aev2hv+s)M;&uqKJ#-!c zk&)X7QrS>z>2piF$H)TqUjuNz_g@Ns_Fvy>ekr6ZzQXJ9={7_D$gBqMBRY1Hz|c`| z#6m$zIw2y-9DmoD)6&zEq?;UFuVa=;ZJCY!QQcf&PgT2Mweqa0hAYtVu?1d%&}xT= zw0vG>=<=|{jqUu7r}(SUgQ@ZHc+}iZiXu!Rv(Yt#Q8$~7?dKX99!t@>wft_Y4aD_4 zo|#tX^%;smB@eOUj(9j+(aZNsB?7heIrsjeLIFkSr5^oTH0ziXs>FNT@sZ6sXzlA_ zbvOG?&fM7h)2!z0x5a~-?U6;tx*LC4dh1>+y(%%RVfmeu2tUk(XDnxHm3a-!3XZ0m zuJq+HXMTh%`ztTrnYss;U(rlXRtva1+j{7&L9s0@b4$9p%q?HJZ{NuMzCY~Nyrb*7 z5G(%{YV@FeF~1<1xd2g{=ciH?HkC_NeG1}9| zmQ7}@?AI?_s{yXxTdVQBU&sCVO;Yb>0AmceRZdXj_n~LCZ^E((mGrcMe$f42YTrfi zfB9ly%KVBy7+{erp#F7+XzobGL~2XUF`f$c{X@zSp!em?T&zc@643qk&k&nqt7#Mw z{Xx47{|S^)_V=pyhTQ^(!1vddjXojY%j4!R{%3*LZljh+so!c|co?$1zC0iD8_MN{*TK7y zVR1}*{b?d`WqK*E_LTj?aA@?yvr_o7?dk1dN86NHnRU{`le+oblUJ0?_Vug6yTp}@ zw;b+*bJ;ow%v=L}@i=wqgmOpv^n+nTZTJ41j9e*p&y0-4KB7$b#Kcbq{L2D+HQu*G zanX9G7GaJ!7fEgVg~jb(MWEgDmJO+|(-~ug%bxE8h9JBbF>weZ=M;GBQw+AeHdr6M{QSjU$?9{ILm?{5pe*`C?w-9W4zvXD9HpXWzQ@cY30h~aS=JEDKM7nmQVZZTp; z^uF?1|ZK{OySunrs4v%~QolL;)2FX<7a()yfG(fF`}9;<`}>-aBoD z;QfWj%!B>|k$E`z8<9DJ|MY^$O!xdoWKN^dewCU$IOgC{b$P{ zGWL(HQ3}TR%hu@rjnebh=p^6G=u*eM&IZ4aU2*G+++SOxYB{IJ?cZCYg^gz`j2<}e z?Vqhth(t@#0T)8gXk@rzTwwa&eRM6`Zn*_}itdpXNrG!RZP0 zzy>Bb$<>7HYh*NEQ#~uPxBhQVGf^~N&Ix9^lK}?iv=9PtVU)?97*IEYy0ny?AZN!V zu313z#}a1BheW=@7ZQgifh=klM%nv3F7L+2`_nl5Zrqr`PCR~ca zBHEv#Mbx=g$_R0GT6X zj?*eQ9H&eRgXAPm%H|YRu)Icq8{Wf`*XX%QD;M}8pDM{p%gdjKWKAy<}&E!R0Jm! z$2T2}51(pA44qZ}mc`hL02LZrbnJ-G5dfl z#t8c8yZqiSVJFXsR(hbaP{#~QTPHH+^yNs3EyV^KQ@ zfXGA`p!5DgWYX$ZpAngs7er?K1(CV8B-PixFw8e)=dG>9CGp8i^aj%&Cjdp8<5g3a zk&&U*(E*lA5NI0vFanYXUs?Mk)>}ie4|4CL>#acCmOy-tYDuFdtmIHbkAO`Kl2%| ziTmZx+{N-HYw)uV9^DBlZz(ijg-OgMm-+a7*sp| z;$iHAzAH)Q)IUmJulZR7i$ZWDy!7cw-9-`}&PD4y78h>CVYw^?>e&kCST&X=^}5VBW3? zW_S90t05@TE5ih=V-3|_QtO{V7aEm8R2;v5;bN;C()|Iu90UEPXqKk(mnGO9BCK}Q zSf_bqyC4?3ghRl+A#R}cW(KH_)=yxr;KMI5URCrNajh2)CR8)neOqDSs}dGp z9@5SnC(l}dCfV;>z#PUs303gREx@_cbr0Pp!vE)s3WfwtP}W7^4$frSn$B}ia1l;pW3_e}QG6@%RbXT@vh(QAJdeLpA$v9Z% zf~8(Cr)`Q0#yJsae?x0B67T3k$CaDOWA+=zMKwpnb6ovuKXJ$}LbJC2N{)bGerUK=+juRFcRTiSMh66g!5 zuu1Al+r6!i6-Tbj9<5!cS_}3?F*S3OT{ZPcJJXs4wTusBb=x#{S=PH% z$h4UuRyIvloY@ACMC`B=)Z6BgBS%(0Z?NA+gE!Y+A0Kt}pt;;^;<9=RaVJq|#xP)O z>BVo1^U$~lp<8uF)^AjvR}TnIh0wlI-$PF@4E#GK7<2!`>6)f?|Algbd92_9328EI)o__ zV87}icAc(yj|*?8vEe%04X}zGRn~6$phSqme6i^s4o0~=3P~6PSyWEi`X~T|l=txC zNKY4QreuHB+eyr+SAVRb=i6s@*%oNX6J|%N-UZ^Wq3RD!iRx;n?gO)W=R;*CWISZn ztaM_wIQZt>Ae1I)8Y?Cm=UpjK&2IKPdx-irvvUQ>UVS=_Jer#to~!Lj4~KcRacafq zk$EHMpG&s=C-;+2D71<u?7XfaXwC~x3WL}hT(da*^iz0BRHDqgtVAe?JE zIf&{Ovw>Y(w8qi_d3iZ_RxBePz1^DT%hh8%asu#kBMosHo`k-#X3P%6-u)Q3%51%U z8*?4kepMb1))6_ArJaBRNqf=YO{)`J9R}VoNAOcfMg0l1)^iD3T?(vvxXm&ymasRo zPw10O4c~+H@{{n5+sm&{)L0SRS^ki2sF+c#;Ywx93{TOpyv_83$y@o{n;QJ5g`r6* z!qLf-J;xIF&>g(w3K8;ZN2;@9znAfP6n-x`*I7~bDdJP%d$uoA#VThOu#d?@T~}g9 zk@wfB#@gBLF%VXmfj1`b^4vAJV9v@vs z*waE(Sg?ifGj-NH5Z+9d^F3Sbari!wdk`QZdXrf}cE_1^aILVhNnv;LLwH8B3#Nj@ zm0u_Q$ACuynH^Ufg+uL)!WAEDxgrKErcKTdP^H2?*O()a&(bNUUT~L@GZ*$MqkQnC&p*U?S z!|w#5s_2-Fk1+0I2ctCSgnci05WvwP-ETbWVNxM1njatELLA6XNwSm*9gTBZHGMN8 zTxV(Qe`M-Im>NinncM5ia+wqK%`+nEz0{X%VbY+fwOisF zIt`JvmJzb!ok8k+k5#PBi@Juz)=6$`C-p6tQS!s;)?$oVvdRN?=eWl%8RJl1_U*4A-r^pgwVgdGW%o=ZJMMW90Yop8|4YW{tjL8Kc#}%BwHIg2Cc$ zV6s=)n#n=O&3c7aUHT~BAdc5s3*I)c&nch6byzRK(f!4Ghv)6- z%1Gy z4UfltUj4E$1Z3V1P0*P#M0v(y(YF+Kh{zpD^6KB=rrL90b_Ov``mF6afU*-!;Qi9l zT(%b{&Ovi`yEVtsVfcu&iGiC_&AvTLOG|1xbDQPmi_RrW1IJGCyB&@&teX^y;}~eeS4)KubIFOXXAl$|V|aD?z#(_@dviQ!SE4W}MwWB#&p z{B-3IbKT3%+|A^BQ&S|=ujI(5?-B36f3P@kbaJ}Ba?Cj5Ua~s2u&=+)IC5~zusG(> z!SBFKJM?mKcbRQJJ>#-m2-rXG%8Yzvt*wcxiThxCb{PF+XgeinDYS!Tz*fI(6@bpSgUDD1AlO&dY5-o6;fj$kv0|UjXs`!fitf zi4~)$Yl#lO(GGLHz01O58!lWn#574&Ib!KU7^ZQmAqj*b3qM7F-;jPlMuVuh@XRP9 zH#ROAy<3Tt+R-Z|l5mfZh(|g%0`>~7w z+dJlRGJ@(D6}Eq5tV7s5B3FnHe@2T;Z$+)VvI^+02Qt=m+aY*k22jMM<(@Nf_Q*mK zlh*MeA*R3(64Y?%%DJ}}y~2=YU$-3sl`4n0HkPt}<9 znr&3b64PDjF}8ING%}VLmvdLnvg~6HMzL^WDKNY=1>KA!=9Df2Wyb*mx|=gfdLGqu z8gF9d(ZnRM5}z7Vs@kVaRD?=|GTSgf`f_?qBdjAAIG!R_X(nW4HoCp^5kBH|+dgpg z?#U}DRgn*^R{We@{M6uoIz{};^RsOCU0xd8`{4=@Va%;>i~Ox@2sY;dxw2cfQ>KVG z$I6`>SaoX1@8|KaVoBh?st$aeR)q?}e7$HX@RX(w2Uaic2U;^uoaON9?){b+Da2L* zBY?MjQk}s7@RpAuTh3PG=PkeS7Gt(HzZbkE`9bwNI-%*wYRvZV$}bU$woZvx3ABLzG%bkoqCI>mShieDU!Nh4exJ z*Ks2PiB9A?oY+FKqCY9%I+pLpg4bjOT*oNay9x&Wfa`e9qhG?4#({~D&!6+eBQAL3 zq9TT!1A0OncI#GvzDGX+_Ip09<9l&HbPNG&{vUGFGU-+~k-p z?pfzNOaB{bZ`oDXqNdy85G1%e!96&^-3jjQ7F>fvaQEOAf_rdxcXtgM2<~zRWbIXZ z*RE5i?y1(sAK(LRj@f5_`fDSXwNpZ}WF&}BqiKS49ZRX?!td9VLCg>bSS{REm>VEr z-1>)5bgU(S)snyfSS^WhbReFs1t);jG6XX;+2=a|q3QoXN^UvKA_l77ZHevnVzuOF zC#rEnOmr?we}K)!%d;?BuUsHBPDli=diwj8>p}u%^-icr7z=`;HAm`02~ci*D@7z~ka& z=7rAI9fpSen+%Pbs6_1?m2gW=Q!hanNqh!VK{vpTDC4zq{2`6F^^Hs*t9DU*+$Ve> zz2j$!6r||1#-Hm8zCUO~!F-tq%lay~OiLDozX&d=7f=ky%y|h?VBP6};DZ0Hu#N*p z>|G@SRT*Ku)HE?m-Rw2#y}dgUAh>MvqW3$K|E`voS>Mszc%4(A04pH`!Z1+N!Px5EDp+;3=2g=9zOqe^Jv zxscQl(BS#}SLe92EuHs8AghQ}7v$DyjuVxkfe=qI z?>JKW%cW}TmrK=Tz@_SpAalVnr~RPU%<&>ExJ@V(vU=`o=C~(j%wFNea>-|KQfB{S zxftu;Y_ehak-)B5SDSIcK_BRJ(HYF1d?55F77(s0+(V;G5eCIdZi43YUdg%}nMMO8 z{lau0eF6msWw!N|AUw{EoCA}AJTN2)Dv!CNm{d;t_!lIQ;u+;L!5k1_Dz2w~&&1db z-QR~nw8X|Sm5wKa!MJ?}(l{Z{@_})9tyirfB4=BpgT}nQLML{FyLm^C`DzGF@jSq9 zX%L#cOMVkmJsnOb;SD&C&N`Ks3No59bh^O8;9Ij6^Qvl!jb#PG;(;UO5!K{2V#f&+feJSo*|Bj42f2rY>A+xq9YjT z3D7XkEe+azfuO56;WcbvG+0?Cl=o*hNZ;(t^?0Sqexgk6{JB;A!%5}c>#gcS$?zv| z{qjaA2W8+^b@88D)t~WDnd~!GWIzfaSoQ!p+s1@POB}#*=>;s8sy~(s6kxd|0+vgU zwQr9Ns+_mniC;LBj{hauV8411^ESm6hX>6yJj^dxAaY!kTHg!>I(9%^KaoI$I1b+f z8u|#d%{2CjAdpY*B{MO2{B$LtVXxnJ-zBU|py0l1jt1Imif}<{nB>TmTB>}p?Ofn# z=PZ#YOOW#2ffLUPEBI6Ng>nmQ1h`JGG=D4+NNlFMeft)dgg zME!V{+fm}e+!oS7HE6#JN z_0l*VnXBO*&uDmU92Y8lTbNWk`MYsk$S$J%+Bn`fQwXrB$_mZ08a2OR{eX93DH=t?Lx>62j)TdN3W}vx;>- z4z%!nFZ(XCLL$GxRB9j^T;v`)j(aIX)C%0GhL2E)mvN=me*5Q6b-1WZNcUbtU>GP=>PUlYfW?~Q4O{v?iV+nELUBoVn4gT=OiGu7pKz?tg1Q1ne2W&F6N z%x~`{XRrg0TEwaKrtd{Ql;?a`DtLcHk5SJhmYp=fD@aM|&P)s%ZetvdUUtG1Q?j63x3kwrZd5@%dSVl@_J#y4JDUUa)-aIw33H3rW*;*yx+eSR-I()8#0vcR#h@BSITqfE3)stuN{x?mAq%hO{e{FdsEPG zbe^z@UUIEDdnchJy#;Ui{ru#uBW?My?~f9h6qE_cywyy}%a(qIJvR>1y_h`8UYVPD zJi?s#_?@wyT&pt=6R8pAipbAFer`7$)j=BGZ2E^=l_N=;yn+Wo3a7eM2raw|&~IxEX}n7IC_%^)xBA>Ti* zP8lk{GM%=4OY6SVXlS*8-c_3^y@KX8G3|NO;@M=z*^m?||J3Zn+O3VTmXNdO2Def% zoG?!+Z4!KdtFe5$-{<`ZV2O0M{FN1J8x(}wfGxUP<2#2V#)e0m^cXJjpGL!NV88@fo>d_-r+K+R3zqRZWj0|w=dU8TgPS6Xw0bvgX-^FLUM&IKF)gbMI-t95yz2s=M&Kw7P%Hdv=+bt@a!58sGERz4yur z&%-yBp|$1#8`v z)&%G0U!*X_Wg8d7$E3~y^4>7=(-Q8J=d)ZFyrq6`w5#KTKn4=*!Ng5V?j^S4b?4?x z%{eY71MJgExE;HOl(n&i!p{Snwy2?#zf3AeG8Izb^Zi9rjsTkC)@=U$0_|Md@C~bw z*DFm?=mBVo&##bLyr_&VWVN3TY}!Met}5Gu^A?=d{pS;;AtwyHHtAFMq*~5dV{e+5 zHIp7c^866-i62ck`=X+5un<=fQnzicHmcXsVPP0)v@SX&MV}TKaVMDBpBIj#)s6pg zvD!5}m8mmj%lNCeI=p6?4!Rv9g()?*D%a>v;ZY8+CR@pg+LpE|+dy=8#@Up?2inIU zQUg-fp6qB~G;L+DhjIRi=JZ+}n2Zc!Q zHp)#R{ACiZIaF^$*a;LzvIAK{A`VRz6~#B$ToFzcf<#d%7$p!san|f96Or2wy=EFTh+t+`q55I8!V4mu%=J|6uSMdAqk!bQkNJKeMJDWi(Np39 zWU(bU|G*=0^iR25ObjH69TwII7f)#9J>5M5m(Cfn;1bkP zvdZG4Le;ollEh^|k~o35o?WVt5O3v{^Q^N#d}3ynGJG7P49<9IEsIm~LJEbADt+KDt9eMO-llG;jzhgUL6(CBu9 z5)=JNqc8rd5{LX2A=N$fLJ^^LE8)ekgyl!}%`&jmuA-s26Z_Je=eeW=5sK9dk<0N; zodZdr+GK>@Jfo4?J^=x;b<Hr*J;#NJ#dLIKghNhL1fw<-NmHa|0$%{k8 zl;5vpgz4n_SCkl5qJRNEXidCZS_%;wL=@XQ1yv{Ji4eW4MOBPI25UoN%AAuUwy@f2 z+pJ^OWfBjB^7D>59O10gP+8v`2{fOW2KVUmIfSA$X&GdGLCV}w2%8E$AGXN-4vu6~ zKZjETgRidUavxBeCBbHXj_QDXMf>$&2;e@_>d<18cdvJ!tU#+i`7^H!yk>6@vvBcW zvNyC_epIex2w1aHRmnkfcvih$$p#j!a<-bc?M57u4CRQRYm-+VxX`qj0M6l3_g8y2na zPw{5r^M?jd4jo;R^q*m5nwb&CAR+SABBnn<{j_bY=PLDm>Uxb!5qe>vD9?jg`ivwX zLK=9L`1sB(w}cYD{7+DbnauwJh13(b>`lY@*~=?r1B0JtPLCVR0P2FiEM$&Rv79#? z8nx)f#Kxp@l!$UFJygM2(N*=DiE>(5a!eG02xRYk1#bttZ(wl*cR&jCjYv5t>8hJ0 z0>Kjz5(MxnRw+FvmA7k**MqYeWYJ*pg1O=RaArg0+XWnH?&nx!u__`gA#IK4h6nw@ zo8X~J*Xe+WO6Uq$*cy4(6L9Yd8=)EMP%1vATFJEkW3Szf$}u+5JUTG=QDT3+_cWty zn@b}=kcAxzj&@IcIaM<$07J5Qoxn@?8KN!rrAQnM6p7xu?X}b5Bf)@J2MPg=>2I*>hx{vWsGtFqd|`y`$uunYVb0*n z0tmaU_%rI2mJ{4yu(W3lq`v*B_1C$lUP-pOjXcH~65!mEZ?C>b^yh)vN_;v4Mixu=D{&OHt6BwqL%+m%k&Bu60NHuop= zyYSY~X(fOP!}?~lY`wGYH#UI8MP#%}^6dDS6B|6a-j3u4U6OANx~qm2IY-(BBBdYz zk-)AD3}}?D(X!bOQu#gJfbU`BbS4tH)GVX8Af$hAZ{Oj#&67_U!};H>5Q^pdk`#92Nnqs&Ts z{OgGgG7#gjU~fryd~wrq9OJ(!idG$kvc!W?#LgTwCjzM(>3^hdc2RA<_XH3Dshc*+ zGwu+Yo(UvxU)-;`XU({!u8UVD--j4xsa?p?oL zdkS;Z5s@jBGhEcBwRMRUWQgul)2ROWPJ((E%qJm&i@_|@^A^%Re>4^8tn;KlJltK`A|hvQQe{KxSD?qBzz zhMUE5EjV#>%1oZefn2&T499&sB{#b??O}v{%#hmi%%L2>(d9#Rfo+X6tDXZs`HJ+ zcsLt|6zU*<(HIRMd)X!$b{lRon^;4XM@0A9TVETSPtZ05ld0MOD=h8XfoQgJ>7Z zhKel)e193o0TI>M9}PMavjezjaE}@j-+t2|wUs=3)|EMxZi#bK6^bHF5Jw=cy~;of ze`KIC8-{<#KoV?+sX~G;GEi{GfvcLs35L#fKQn&^=8M(x<9#^|${Bhw3fuUaGFdKK z*!k4j)7nSx`?jcuHQfd_Z-cns-Zpfbx}{USO{`Ptv-(F}7;ln-pW71eQVz^bRxQa0 zvmvQ1!JHqaN4-_E*Hu~%q+F)Kyqi{tp4?Hdf(o|iyW4)+2tHlAQ0bmeX4Z{=GQBsE zlKM+8s=Tdz(TjGHoAt@(2-LB%F4NNVv&vmXIkkydR_-Eqw2FTlDy}T@85-xg;=YqI zFta)gG}bonUB2U8>V+~|+ANIfKSPCd(bo!YB$#b12qrC4z3LIGW>7;HBO30O>`}an?#C8I^gBIwt*}vdGo1R~ zzDG5-;#HS5ne)9**$I$8s(iXjT`WKo!WI(VbgL0sfo&*TV69Btqsz~Mr}BRn-~4P0 z=E;I8&T@L@LYr4v&1B!*=E7n>9SPc{bQ}F))ooy!_UWCLs#iCLkEO0h{Gh7mex&Al zWikm3SC{K|8m=wRU*YyW^;OJRheAi;rSe!JMgpsDpTD$u9vO3fUf^sP1aML+{Eo%A~?4n`Asz7b55VRY;^aN?^CV zudqBWclp$KZJYur2FO6=hCfPU+1X}yX^K@Uc&CeIJ~dtcFxWD%IHE?h zY)i?Rxtvc(Z@h?HS}5c;(J-kb4FUb096SHexkHPnWPJAyht(Sm61deveQ8#iAyauI zuJIG^y?a%yO$m8>)Xx!1!kolTm;GUy0MB*v&I`d8l}8@)T74&O6qf3zOu+jb&^JbX z9bMOmUQC(~1Dt)ONjVH@Tk|$t;M~EAXXDHiA}pbdYYWk@CQqBJb2>&StSbI3g&Xfs zM#C}3Fhx(r5rrbVh|a%@Jl-!NPp9P}ETR5!!0d={@kM5d@BIls3~7~d zB3fY-(>2j)7*!sfgwXHW^2heS|Lu2X2d7%uRE0Fo>oV3ALpL# zQlC9MFQcY@AM^Lm2D}4i}F-BKDco8-mERGtY|w}AHVV}@9Hh-b0kgc zm6es2mh^o0k9A92xGP615l17X6iZE`bA1d@ruVu8x&*a0&Di@q>( z;|KKv8s(PWg8#r!b7)A}16Sm9t-o}r7EVoOGy^#XoPDuv^Uf^~lkP0#WSHt^Mn^XJ^< zr8?yG@oK)G!Ocb+vG{Z zVY*%vIyUh*4#tz%iUrw}=qp3SA3t4xK%&>5Nu*{szhWp?%YR^~s6QCWptj>DgwAp4 zkZi%RA`)%Y(U43?Rd>~{ew^(9bEOqmb4QU;q>&c^GqpMgKJH}zZ;TWnd3`)r#t+kP z&!3TJ$r-vHh79KIFBiorxY4Y6{3PC)M5A&zm5Ecc~p<$($eAY3}-iP|X?UAl&|3 z@omcU^CW5dg{p{u%I|$RM>YFg^gV({9m*S_Z^xvb?y7{q`RZMFU(fTEggiDuk}ha? zxF!HsPB%H)Bk&>xll_!(d8`UlAgRWnM-*%)A}cdV&5;1Rr(rBnSjjgR}Nq%LkY|OxMefSiOBF;60NJU23@$Fx~iG*03-NwAP9WkSB0v1o!;o_E7nb=4sL%hx$(d$%@Kk1A_f{4z^l zo@2VE1!dxX2dBS*Y-ARhXasML*GvN>9~{|iZdct6EI{(Hgrk!wl7I?LEdTl<`FKKj zQWu_N!Rimi45AeI4n$}mK9Q2cO};qLQ&4gw zb`j!wBp^%NPoHe+cPCLM%sd$+f#{RAGFChYQsF+CnCczEs3>BDDrtkNGB^dOfRszF zQ#|z>q(KL?Q_KR%#3^cU7=zj-V~y`n=&&lywY#C0A`0CCFH%n`134U$g|qA8UYjx$ zQTHFIr$ogVL{Pc}Kyu=5$+7b}InZHLmVLxqAK&B54}$yQrrOP?z{&rydX|(I3~QNv ziFR!y!#7Ojvh@(w5*ZfeAt{ZHX{<&tshC!MDV5Z0PrvbdBno|^QbEb~QC{=&MDO+8 z10lzUT|Kl7yy0cX-g6XD9PM?oBHDZNO#n}J<`Fsq3OWCkV7YKi|6l}a1&T{KOdtr< z+dT8Q%^Ab-we)ZJ>-5QZ|6Zd(<=1=Nw8}$IF1P>F8qN9aQ9iWtm0-bkmJ{Sr0t8Dy zhezYR^8zk0F-+U%_?#DlmFaqlWvAXvMyf9>aRGBok<%()GQQzo)@;4}XO9+^#kpw; z{&v?<$~7KF#Kc$-C4EU8*rTCDKw*^B8yNC)segOl4y*UuC{-hQ$U2FD!32m8^i5>J z?NSp(#5odW?^gW=ufUShdl{su@Bo9fs6>eNp#xx$CYwEA`8CV}-`ZICWsnvp&K~n; zkS1dAJ(o@kf3UVqz#%>(EtBEtY({x@Wj)`*-d^F?S#y7shNlz)@VnkSWp3c94v-Hz zWBfQp`tgBua9et`T%T9^O%#WG<;e9r9MEFNT!lhJ-g(PY18^Ld;ThV)bE2je1aAy30atEyC3MN3z%*{FVm?Wa0A=|!z zcBS0tptXv0yg;n!TwWGSSddsh5JNb_ss)-4k^sc|w5$XXP1?JhTd$$c!EaaHJ3`-5 zz>jf4jT;RS8e~4Ri$*?Lgb6ImZ17w1yuTXp2Zt>3hVSa9j2oKX>0_sZ!q>2Y`lfkG z%FSYtki(JM+lkhsF_m)b&F|kE&A5nC2nt&2dSZF?M+AUKbY1_Zr5^7DZPvF7V-#-I zfVoE}L6Q?00-2%Wykm?13q4nxZsFJQLGuBK;;Yx<@GkC5fG!L{RcriTCS zWu~TO#sKmW$ytf{&rA(DEM~(OXgAjqEUb1VA5WWCt@|dK?nMyfPHc1}Qc0lo$3h_< zlPwT+AEL13wMoBc)ukLS^>8)7BlC)x;lx!*)`Mu566lGc1^d={Swj;qQsf&6KrDWH z608#LgY-s>PRk=~Y_+olS3_*G*a};H=QoZ7SldBU#3ZI~LLjMRU8zZ$DKU{X$ zqEL2>p7q4a%=9uDM~Plk46F)M2fV3h2K`2vT=KAgs4qe`2+2 z)?1wg+eV60fv+PZA8P{0fd9EJj*4vh0U}?A>WJp~0oq3)WB=~4IpxcInDs2#$rCyW zHoWxD0&?_P)Q*h73G9hPI&wwz1R;^@a)eRV>ply-gYv8g5X17N$Lj4 z0^oz(-1M9FozP;oK*pfx2B(oB@iR@?BKK9|z_spWpe z{Mp-_)YDmd;lQVg<^oB6?MqaC!v7|_acIbr5~j2)23I@e9ArceFKZsLFtsY-tq2A( zN~Po6gg;55V|_58M6hv4<~IT+FeY;rIq@2fIHyyJ4HDag z;0vfb)Ip__fPX}4v$Fi#`9m-)>66%g%9)+UmiT-Phzcc!agK0Ag^xV7Wad70=OT=V zT4rVYWZ)GLN{W*gF0>b_dKU5t&}xyn)2TT{Fx1$LpZEC{6WWbH69pHJri91$vQFYk znfAelbNmXWIB;>fy<*_vYziz=yQskprUVJjeS*)V32?Pu;9CjM6_Va{e_Knw7gtWAe`{YB`+IIxUhuarp6;0 zr5{fe<02Lsx8ZfF)(vlufOr09swP_)+aYc%K)Vqtq9>P~E zdy@VVdvN|)?1}zc>9|o%}X$Gf@iZsMP#jW|{mbK_wwZ zik~*KpOwZb*gOyH*2;AEGk#bVVu`C;iXEt@#5wFaQ~>!I>3}iK@4WMqTasG5=<=lW zP40=S_6tW^LAPJb_m43$4knN}?WBYHj-RBoQj>H??P%1LLf-U{-F8o)&+5@1U3A)6 zY$Uc##CDAjk^9dBZ>|n2o4zlrwP`~UI4_pMA%jb-mBv0Je5%bDDG}e`M6+KaJ9O1w zBFQc@7Bd@Hh}6%dA})a>jZo~ndG@|U6_44r_B(zv9}*#8mlhn^e!x6j!HYG4LDA?- z8L6If0~2EgCFri?7@+d_DVyyh#98Ek%5xTNh-p%3U}s%A&tPpdLQ(*z#@Ij;PNO>O zU}3aO-RhCm)WKNG^kC@j9lu_6cj+!BZ-zB{llVSPrh$+RLw?B1Ol^_}YUPndmbZ2j zqYXsp)0(WFyjfo5Zz;pR0ZHR7#f6_7YE)M0P{RgI)yNdULdsRWc(4pgclW8^n-B5{ z_GcWaZ5PKdAC32U@*c_k9ai%UFbpZxR2s8JHw7&R(Ee#*<=Xwu2~>RMos>RB&0U2@lI7rR^iEBP?; zG$k9W_R;9zdw*B&b768XD%+LK~G0k6^C!{TlXF7 z*gtTkM;xt;lua!hII`Eyrj2^C@cZUJ{#RV$Fyxg>1c+HX?}B-(?_##y|6I(sv@8cM zN^!b8k^F$oE`5Z3UTc2_?zIhE^4X~VT;JRb_a<|Bz<++Ok>8GsebOv}U35&J>&>-_ zG?-lYFQ-O?+%HojXM*n18E~mS?>fWq=VRa!cZvfrdpcnzd``tTO$nNxKR7-1-O6pX=IWMF`>E^lc73eRpPhmJEq&w@$L&?W zcU8@9+E!}oQ|mstaX8<1s`Ivkca3@X9idrX*y9|)+(*GYm7iRs>Q)%`=T#EBAuYZk>Rr_L5eqP%2A%kR(3{^JT*}BtmIj3+ znRGKzo=x0MB{HU%JxEhXdFB<(Va*^yN@5o;N6{a zPpYl+&-rBAotR;HlX{<|_nCJR^+GUGizV=|TtmvU;>f?fS$Ow}lc2@|AQbAU`2<}r zqD=6=6AJU4S3+T3aBT2ODColeiBL#3cMJlA0txjT#Pn}MLHUPJoMN$?eYqU?$L@%2 z6L({Mb)bF`BPyRQ;_l1BUZ+sxwf+LN(5CrOevhNt9cFxI(sJ(;Ww#1Q0m;3Q)D$_b zG38le>?*7u4nyPX?&wx&`5nA_&cGR@Koi^Uc9*Y}^h`ai%ocQKYs-}<$^AL1qUtI5 z6hJ952$Wdy+^gW9a3V)mTvAgbj`h#&ntcIAvHzyKT<-&@o$WD^4jy!UOqV=mF1N)G zXctjr@dWq@CPkN6DE*QzdKR?cVzH3Ng4y1(5j4J9dA;&z(c-r+aAZFXJ3FZ$f(5= zX$J->WPMZcE9#q>|0%~UYl$3o0vf6y?+5KONs93ca)B%>(Xdf(V8W5g%A@^EO&BCZ zLwEvb*Uax7KZ^4{|5NAypL(Gfj1iCa7Qxb6y&=k62l_ZGl8V|Pe@31Gk>Y$tFO(ssS zTPSfpKc!l=&9GDY_)kZBvS)u!;Ni&PQba4|YL{y0!9HUu+&~-jzebO&>_@Gw9XAk5 zG0HN#4c!MZ=3EdP&yR&gEJBKU=c$k28pE9qX}#& zZ9ZZyxFTAi`WqXLs{=7*te)Cm+ahNP-=G+8Rdgsa5MhhfhFluYAzUs>SK>YzQ?q^R zACU@Vpn_DW2L<~0#qdPIZmrT?OsoZR6)6MOZGvHq@GV~URoBYJ^T!J)M2pWkwlC>u+1goE*9T6iORwJ*$8v+>PDBxE@zqB^0_sk)C zN|b6dwtM`3S;hUr^b}k8!GZyhm>*%gK{>-C!uQf(AWQBreibufEF4igQo4QueH>b- zk3@jr@iqFsI&Ow!*Lb!xAnh3>Bm?IU3BgxGM-4unCAjL}(s4K-ZGIRF;)tuV=>Tnh zK=-zDLfpzW^f2f*t`pG+!UNAh>oNfZC@j634aFK^9#)g7S;}x8(Zc~yV|bKA-k!-t zH%u~>+wtQc$baB{!3_FT9u2gcD6x$Bq$dzAB=T#NDtjjasygh)e>@qHalF%NP{5NR z_xs^; zNkmjNa~TCS>p#SQ^7h}Mab{fWAZb^`Yx+Rb;^x-@cHt)QB-72} z#Rs{ikh^VC$djAedm)_bOS*Q4NRAMxHp&-HLlge0ajgX9p=hWdlx_hWHAy>>Eymve z3t)JU`riVE_X+=Zz;IsjD~V;&3cYy{iqv;gU*nQ9Af);L^6m7arkKq>5PL#0$f^Bf z$;>Bvsfn6`2$jn46PaeB#Iv>s4}gVerODIfOVc1?Ip6WBU#3rlM2|135(X058xr$R znl%ivqML1itX9;Egp=sdeR+gMCM(D>2HD4eG&Hgn*nY?hJU~=Zgh<32Bw{(mrDd#- zsQ#iCiI{Su)x3^Hu7eXFiCiAb??nFt(}x0vt0-BU6my_tGq|V!grAUzP&3Nv_lC5~ z0gL)c`w;VmXw<~siQZ7fCs-p1f9UI2E2K@QH>s1l-@m3XpzW#fa=(v6Y3n~oLnxMJ z1Y6I`+7!nCRoJ*&L?0xX;TL;e#vK9+E+^&cW!ePF|Sm~C&V znfOesZ%mN2gG3i1r_UaM|6MF0=?g(1IlTF4i6~M!v~sXQ0~Y?9ejQhYUqvda>#E6e zJ>x$NFHb0KPq@blLsR40`D@c!z?@D71E+XG5Ie0f+=}RE&E<#*dwmg{B%t1;rGDD( zku}*Tq{b!nYAq|`69IvCiVd`p*jay-WHuDC{RK*zD6wMeAchw5U>TtWO}gz8^-TU zk)TUVCD%OAJw9Q}#qL>R1%Sbljmc+2K^g*IBv%G8I3sGHY;3eTv=&0D&-jTM{OxF> zrAXvT4CXpEOJR!*DWkIkjmv%SQH-~L%weC!+2OS&xFbTi1wc!}%xLTA2nm=uMJ(@0 zra_wpZi4i9iLb<$I#N~zM+fIMMG~M@e(Mr>5ErDCdLX@wMvj)q^%X4YNiGTFdxKe7 zoEf#=0yez?1If%Mk-2NmL2GYhZc`0GNrlD^*K`g^`Q!VNpmF7*7EBiH1BfJgn;uAa ziL2hSQo0@sJ^#g`-#96Fw-XTMqO`I)W?w@Ww`R?ExL*VV z$UxMcGvS%zM{76+Z~$t4O$0yBEEiP@hhw$8T^efNu7laG=a(cbTF5qcl*c_o;*<9e zNv4uc0z5pG!Ov}7&_RX)+lMSGCH8xpVRjpsVptJ(yFFgsDw?v0+K&DlK1fd=Vy0muZ!u}1J6>M7wWUva%ux{k0VK@D)4$uRz5dO+Wid=a`S&q-0Ip1NFV(2@$70@|apukn?dPT&cBVf>I_QEY$qoc(9DMfTD z*4=Rr?gsTbkOfjfvqwHRA||q?!LpPj#G#{q!0R@~!11m5#xE=}_7*yy5}#~8KE|qv z1|g3~()hBy{HK3B{|;kSRuaHNUI#-YCefDbU;hk-TqG0VMg8Cm-l)=o`NN_g<({&! z*zu{j2q{MP{j@R5DQ|}goV#%U5cD55|B|Z}~D9 z8U+SJ{_MmZ;b>+CY#$Ae8F}_&sxs@MSPWi9t*}`qyA6u?ZLqooBxchQ9yvU`XoCHHjjhbmL<#V`%GD)q^yg zoiFzH=|MyY7;pW=u%lZ_vUdywn5*+j(!UIeFHH)qA|*I7^n~O742NR=<_n?!$`@XT zLm|aKq-?0TU--i8fA9rjr%IMTd?EW^`2sT3A^h!Xp+ADYWDlb~V92C1I&%l{-LpM? zI!cN-crT}Na@?4_P!}KT=s4-Ck&ZK{PTCD;qk&BTl~5)*lql&3EQbm+^2~wd5bDcv z=*La7@j)ORPjB~6(K#HHop0w#j-(e=4uWSyB4Hi9L;J|bKa?R2o(iO@f^%s~>a-T8 zR)i8C=gBUAY-jx=iKA6$cD{`e8o*XU*}{bs?or;iFy`U;LiN2;b$a|sQ6n(uDaC|A8SBh zD-`?wwsO%GPSOc@-wB6~S+gKkv`@D}cY99>(7wW!biy%*wt-3$3q;)>N8VL+Mj zQ2aLB3!J9R7i0s36;#RM-&-|)$}@dAQ){9FQXmlsE8{{^2%d-cRy4(Zxoli3GR=~w z6w?DtR8?Kt1Z}(YN`)%SqFu#--?Wnkb>DSKzFDh88C7fgFc3_=hHYb46mXgo76HQ) zzYU&+R+t?I52?#B7dM_6O&cuxm2&}&#x%Z6smfuOy1`kgU_NCryM$AI`!xNn4iKjpWZ}h3@8nEJ}kV4p-?9^UFN|F>u6$jPj_>?*mkZ zk!;qSrN*;~&B!NczGS+m?X+h(SE{>C&dA4F=5~BevM9)MUL>Al{2vMVp}#+e7;N(R zi}l)OQwlgSIR1qUx;zx%m%Nyq6t_hbuWPQaj&go(>wFNsJ)fOHy5{gu4b9o5bL@(Z z`d}A3jHHbBqyBs<>iG^>0dbwnHZ`rRk`^7q^=Y0BUF*vj;)(U|)79*!}nOp?V zi3{EX4{IySt1ByPz0bX)y~h?$ZBZY8Uqe&eW3FWqe6TuQd*_X3z-E~0m%QEbW_EAc zI_tY#Ca>`>WABO|_Vy??PBz+ve^ChxjVwI2Nv6?uzxqp<1VCjkVG=Byxv{E2J5*^y z6XjI<6~t1h#h;%&72^&4EjRP9-+vGF`0@0E?3Xmo+mQhU-NFM_(MuuUNfCFP-lMtt z?>;aQpX^mU7Fv{Y8kbUjM*v}xHeIrjt(e`po%uCXm%zS8AWVXb8`&Im@s(`A!fL*v znQDxK3zg=AmS1{~-$1_A=CO?C0Bl>3#H_C*u%|rIS}g;1C2Lf{}S4 zOHKmTO8^m=r-&)ON(^8B-qQRnF<9=tB7(^8)<;ORKP%}Pq7)O=uDGpG=-tQ@(^J^h zw1;CZKCpjW_%c-~ue*oZaFOjJ)vzVuF3L930%IATr2l06-m2mAr)|b!e|L&4i+i1n zMV13plPzdO>eV3QV)zitv`maCeK(>XXsz39S7OAqVEpI{6z)ZA`cy(Ob@3M}NY*j* z_XPU$%>D_#Sr%&~Itkty&D3=ssGjLg2&*#iGg;rf3X4mLnU_ZKWxB@n^$ljQpc$x z7@-j!A&*}o528Mz*v=^1^?8~Eqbv*P~sE%eB->k^$DZUbuBC> zd$(=iO4HLHj6)A(!3EVqW5FN%ztI#Tlm1;(IOR}~nDN03u~PTZk_y!9^?`k6nFbRM zlv_+*QWevW&s93^wG>tpFH~2+O|EG`LX%)DG1ABw?x>K0l&dJpHur`2rW_N}jMK}76aWiH zpMe(q&JhcD!JHErR_&5*UR9r#2|;;J?qt!ACaKyE9~b5`*Z{nL*#yz1) zDS%)I<7J_#1eGNa&Y%8DSd*`unmSib`n;GEk6sY0$7mLyK(vO)8K>Efmop}noz0`22?EkV4 zvJj35|6lC`IaE2#*QUr;k97Rd83&Hzh8E;EyV$p+7g|@IAQ*;kel2Y=FBb)MsO?R} zg1D-CDs?YXvA7{P$d`7NhWEFqOL`*jlTXHAii(7mi8Gr12q+c;YPh7_ivzc}n+&?z z#w!S3MS(jtE!+%exhiW4U8bsI;^;3AFZ9EIp&k@2cu2BSC)}<3w_q@^W$ltONG7vZ zwt{F;y%cfNhw1%|x?=e`Z#v4?H>$4?{Xr3H^7zb*)Pip{6}rI)qFM8P>P=1Bw;RP0 zAi{b{fCnmnqc-L2ANW#&IFbV9^Npx|zVoZqRcItiww*aHJ31(7$op%`G8K%sa?9L8 z$9b6O{a`xA;IaItjHP#Jo!#n}V9*CorMYz%h;i^R@8y?*PPwH~KmU^Eqs?XZ$(|)A zimv|nW)O#~+sId#ezYJ_@p}R^JeOx?$=&Flu(;V#F=7{DLnRWC`331&5$q3J5F52+ zk_V)6j83lr7!aiiCLhNzzxPaaMD|Y#LYL4*RA5qXjgeAr5HPTod({OQ`=Dh!=yh!2 zQ5g^<`+`*^vOZug!nLD*!JiqXj}0?YvFkQ4a?L`Fjw%(ay|(?%<&;9}y8aXUb8erR zqiconTRh0BZyo;b5^ON1jbCK;85E^QFku~O2s5z6LUfIsMgx_}u|Q80L57V4!HCKIfMO3@TlJHsW^wU-|}TvrwD=>>G?s75r!40A)+vk(9`N zgSDbqL)%x^SP)%kDsrYPx4okpK4vjnRTd0eEI2=Ksy zW}7C%CbhM$jltwf&hsv?ioUsREP6r%#haGEX(huB&sAiA84QpLcnei|){D{&Cy74y zZUPzaU~2*ak8x>trkx3eB?}0M2%-y{>8YG%zEkcec z&yhxBn`I8Ct=$gX!H5E&%nodW8>keZ2PDlfEy(aj>WZjbfgqfuc8C+eYGzvd&(#bs z(l$B)C9$H5n;SfM?kuZ)K8@XX3kWaHEd$PxdX9J z?HMSg(xV?RQr)Jnor06!wR zD?8`bk(Nj>=t)3^i@#Sho1_+i^M}{f%%lKs1HI`NyZA=x5ny*MAb)6W6zswunvKa9 zis3*>2jDot=Yj{NgAJtcjMg1cyS}jFtnG$CNj~NhY0puC&oEMSWfwrBb_t&q6ww9A zKtD3zo0g%Z(00jFwtA*P;ozfr)hdyD`lu-~IzgKl_zyDJ>s`PrSvja0bs-Bwb!pS0 zh#oQR1x5nedjLUXPfncO+_r0|`w~(XGuVL^G1xM$dz~zl%Wow7Js@INz7a&O-*tfb zU;ieEU>HToQ-JgzWB~{woEtx(!_xp`pO#mG$odryoazb=CNVw>;9)0+xoTE`?+=2= zsa44#jX$_3m=#0-+u=T+>YOe0)EDJX%8Ea2k&@L+!RF#XkjZ$t@%}QKsbWd+qfDFy z?My1hN7}erNo2z0Spx+}t@t&1U}>uF zNp%HYnv)>8GdHvY1Q$#Da7io2#=%MT#4B!qQi+1FA@W`67vEFN{Wh2kdEh~)Hr4ei z{6KATZrI!yxYYnKX8D}ZMV`p!-m9GX1JLs?S`baGrOlru)@Ab$=&Wqno?Lq#PDGtrV$^onqjPeUCm5s!s)ol z@4Oq7mOo~HBZ#<1y%I#uXAVO6>*`XZh`nc}u_>H23Ud#>j^*DCH2Z%O>X z#!L5PN3IKCP0aP~z2s@tt;ag^ON@8q(@qq@rG!E?%k|{XVO|1hPsIB|kZbW{`$bjM zt&1_|X70m57Po}B8PkFr1E;~f9I*lJy1r@Uw`)WtP6S;H-CT<9e zm2Rs{(sOjYSBn73iM6_pwF2s%VRH0zzwXw~71R>2(ucW6^!fC0634(}lVlvk6TN^T zJNRUk*|^=DWNC;Rz@B{fvj{f@;0yxpGVJMzuSX1D@pj2tt6ZIq`8=QiIWPo#_Se+7 zhOxLlWk0D6UnAfzCBl96UpoOF1f z#V>BkOxz&`{$&8MY@%>M%S0hEqZBZ?bWxQ|NuK3WA(M&chX^iMAC`E}Ea3#%(fT$$tWQW_3i7Pn_qUmmG~HpzTlj%Sm5`#-@FCFwdu@;l6V>G2DEK`Cc8`>R9F13&isa=(9}Ki(4x-BqpZGBTe(x z>93dSNRsS?tF=wyxgyC}wv%=Tw0NWL9~9YDPuJ`(clQT`#cM0RG37EVdr<=~r7pdz zB&`^K89XenuB!h1;9&{$ZwC*6?Zf!EwaLTqP1WV~d3g8YbMjzv@G&mKZFROz zuW0|n;(-qOZSg?a_T6w!&Bl+FTSr=+rgSp9;obBB*Bf;sny-$ef|Tc!h2)X z0Q~bbj~9OH#zIqCz_1?zhi1w39eTk@RuFDJ$)~lgTQPUnZL@mL?OWe;Vuot~ zb3=dB*CmL6nM~E`+Fha|9O_B7vyk*4w|&p8JU7^kUFv6E{_+s9N?2+M^V}1u{YdrU zVI51x=Y63?3Q9U=?W)gx^bw$ry_4b8b5*hhVeRE7%ARw_j?aV8P1GXYd*30lsM@=i zlc{s{Y3PZ$XK_?FakdMf%@}WH)T2Zrd3}}mBrmV!uqMMavH9stFx>dkNRglW_bMGe z0~|cg<^TszyVK&J;%F8SmCU0!bH`r+ra||(6*#+M5VVYI0fB$K5+um^gf{_R2{5AV z6h5kQx4~U9gzJsYmXieMWRf~#sVrTd%{a?t)8TTt@|;)Eq#KH9Qa^o7K^XP#E8He) z?7)TbP1I2dydFkS7m<xy`vfs|a~spn|t=#W~%$vUGrXuqI=h{ax+w)_37WbK%^J zz7gCwHu#ioOD4Km#IrydkP(R+U=!)n+BQNzIha#GEl|Tlj7dcM%;6tRy5@j~+R%ck z!I7OAcmi{PoCQE8&ncoNBW76(2^8wp)g$Bq9C?mL5dyP&a#QQwWRt0_RKk?)V(lsY z15@Cpl;EPIWKp)7@bj=e!(|v%w#iD0A)BN@Lk=Avo0x#Td>Jo2bqgu+I zCqr0J)(iQP%{4sCj45oe-Fx(d6py|0N#YYSxsnqghA9k_q0s^+1xmyv5soernS~a? za8KhnVxb+$T+oCaLs)@q25O!d6du1m4b~x%2^|c{g*dpB_X7I-@bv;|#32~F#^2?z zb|@47V#*n)viif6BhL=(+gtzyI@DQy;ER&ejVHXJI9MgCu zlJ?oV%LQz!M%uCXDi8yag@SG$V&$7v@<8R(PzBM|A{k*qBZ^iX0WYN@>0UNs8nd`( z!hn?EL}Ln}X`?3%k?OZ411ynW^v7j*n0gn)21Y|)vfC{Vt(KdfKl$YSys1BCrdcOE z%B!IqZd{3^6*wFn5My(;8Whih3&Rs%E))wa_&Vnm#>W;dvi2kTn@ya|MK<@|$B{+L z`N0x!Eb>Y0xK8E_PKS+VAAvHjn0x9^BFbdp2p|Q6s}{sr#SFocB3&bnGZgHZveF;HfszG|K@|m-*8N2V>vSmg(*H%tz!N`>~MG`cKi_aBcHu*D1}0M9|8Q) z?xVdek>9S{=W0JgU%VkDHnd-1t%b)v&`1Txzlj|urhgDSqQ4tun9Nj3vj2AS&vpGMv1wlUXACy^>b0Nbi-j4O0^;^*bM7_Lf?PbS!cqQ)ejZo^n zr*3-yCr?{sp+b%+3b?NR2|>c6gZ}}$f&y3!l0-FgH!dw!4m>k27J!?;K`2B1Q7uL^ zk-58^R$l95`4wS$L>NAL#FVa4B@qD!cTNm*4ijUAn{oIliX0Zp-pt3E1uYT*?y`|e z*?NoAz5KVTcgUC^%i#<1gHcrJjzstIHbB+O0gEY;37a(zQ1ZyUDtW*FN}l3;qFsQJ zhqd90@SjQ^Qpm~7y#k71hCd;u&2JFXXybRnV^>4evMJKkfKM%_>CaqEz>L+^F%zS+ zX_b=$Og?=ji+K(gK;2b3Z`6)?1$XFCxJW4ES8T_Fp$J&$9gjOraSA=8HU(iBX+c#u z4wWN;7&Nt#{#QaM_gU5ytK&-D##ADsDYRTGfSBiw2dc*So23{hG=z4rCo0|+Ii}bP z3vWcY8%jyInmB0aEoG!;3=I>{jK{SIUjtf{@td9pwdj5lpyx4hdyLvfm!9yWEF&kw zz=zP>8Qoa%rc@MMfsE|3TSb-b`c_-13Qq+iJjVDzWoPzVCwgIOQm9i7sfN%vEVV z0z-alys0+JVARE(htai|9~%asJ756lj>?cXbVo1%-Es35bcZ66MwtVeaXgC`1%P5| z84f85GApf_JD@*(z^ z7rc3T}@16I=>-I<2iW8KxgSC zzUTPuUaAwAPG;mw0v2_ORNpPlXkC>IsihJD2P#`UDa5#)5a_@Ia9XW+F0Rkm&E&_Hklzivk*beOEPyn`r6RzOiUOj+e3h*cF z8J|(|zcu8MvPTo9>7dK~lmUl<^!Nh{(p+;|DM zo6npOUFR_%R;3jiB)=|f-;z0hvC*9jZHG5S2H=dm=;MslHz94~F|A{U*N(}Lw#$1H#l>GE^jJ`4aDiCMBht*(^V`gG zuN%u?_1ny|1H-;YiU70t@o&sLMWI{t3T}cHK;7RQ@qe5o?cP$#`9tN`HIyx4p+c#M zEts}yz!@pc{PS^9PJF56rvkAylX&wkp_4ayUD?{u+#%jUOe8jEQkyb*Aa9 zqseB!pl*qCwqu`sQ06W+qPZ3t;nFZ!J1^r5o{LLIcQr&>u~FNft$^wLu_b+aKxNlO ztfNa`yW*d`y>1@5<6w$=Nz5lM5LtEZerraEOfOEOvs_E|U@0pVY{oHuvCADEHnEzc zNGZduw#<u$KEbqKBJ$bAy#qeCVy3}*#80R{Tf^}7=lLRZ4 zwl;SW^XukiH`z%6c$Fdp?lgiVHMRxL=^!}u&$-w|xB5ey@ItkfQJSJ9|K2iEf)5S2 z09t88NkAg2LLc%E+TmiC^Q}TT{wvzfq<`$oB0t!;N_a8rJmaRQ(Szse#m8|tI}rZx;~60N2$ZkkZnaQn|oL&o3lLWl-;KqZK36*VJZ$I->Ga?`OQ*vz3gb2PWp!}wi^SG*;K=Mk6o&*R^ZpI3 zPRVY588uOP^DjC(uxOkn6WHH81^x*Ca4TgZLj!@7EtTTUBV%B1Q zDmn@WiIqlSa?ojY`AlW7 zboxe)>lo9kJI?66G{HFUm$}7z8`z~#7$}}f&g_NTzveZ3hd)&b!h;PcE|9H%pe%F*r&ivwZcCu2olPJh1xZ`#BIY0@lgIaXh3zkMX4Sq?I zxy?A=ADr&w>2bQ#>v?}|wRZaCCZKG!MauB4{8}P>zP!HXpXhi165@M2@H$<4 zne@Xo_T8$U2DNzbZp^=ZskC-+ckgYz!$LpfUwvuh0*GWyOgmc}Z;uvFrcGpAezdM= z-|kPhXRhXF@}3^XWA%kK-)*<^tcrx`##ATO})!&9y@(yIQOU8GP7=S4NN|eOH%qQ+95tzs!ITswu(W zCGt4@l~;zMi5j(nPMv;CYSNe+kg$I9nAs1%7GhN(?lqxl?4`n0S`z$61O?CBhBIW!=^8in0HX7x~} zw-J7ytZnzJM zAyd<&`9)^Z!onpCU>|53Pg@*XAS>tl$^k}yY?NNSCn zKgO?bq#puCiiLvvc6eEP`P2b#AGVJWaZ&_|7wc4^A_0B;Zewgv}_^T^>F|NQ!DXaUFN&-kl3 zcuXyS!0;=8I=cEpZfC+b?ZiMQS4r!Pe#{RfHT4k3YR(w&5`rPM>8Kx}!3GMWS!?fJ z6B2qIp%>LvisTd5MtR{7Ay@y20Bp*Y>Z5-PS~B)zXU-9D>+3^EHKy?IgJb$3Wuo4~k1}96XDQE)b#lVlCkl&L< ziyf}>VYEoGXrb2ksk;yCAkdH4_TjTgFeKMzYqYiZcrjey7Ok_SDqJ_Ym5It!2}7$sDTZ_BsbfqA5zgAUjosR3 z$Ck7m1xGH{CFOkg9<52n@7`!K4^-4L_(Sao{?%tgzdGT^{Ks!`CqJT?a~m?G80{}- z5yBFX-|Q=ZW5#(nR~87VE7m*IuS_Z{^sL{F>@}4J0HD!J^njpP9G>Mu%Tt&3vvOHa zcl)Tr_&$owb!w2A)QfYHSf%g)vj=~JV__m{dbA+ZC%7~$`uT-WT>~Lb;Jc&%FoRi)kFj1%->Ix)44Jq5vTG{^WJ-N3(1^{5?R5dL@#%OS@L>?nm~usR?z2gZ4* z-2zUNv~W7h146RG-!7ajeoS=xw#?gxFR(mjxpd4D;X2oCeJmv}L= ziU2|9UI9>|-G0D77^nU90D#fUb3^?Ea5qIx)HcAdVP`@M02m#6u4x*huWQ~Z>l^Aq zBFsaoepLuJ|Dh0u`1$d}x1U{%-s$=~Y@ccyVYC4^BiCV;yBnO4xHUSvDe6^d%b)ld zv7_p2=o zvwLJhg5G?y3gl6AuJKEU;FWfn*2Ty+;4;)~sH4y{HNigT<=h_=$jM;d=C# ziw*8<(6z;YPR)r#IA`qL_oH}pWYXQsqsk2Z7ChHXkCM2U7W&^N;S$BrZ(eUE;fDG~ zzZGM@1VM#>22OIr?MtG*G?6;u9e_$0|3=z2B3+Z{Y5Izhepft)-k1!YbTyyFUa)HD zO!jgX^KL<&BQ0`0we1D!=$^S%exjD>@- z-ZsQZ55>3V+9@7v6>ELr9i>k*@MpE%b5l7IQR#HD^^hD6vL-F`bph7n$I81m>58od zB5s?m0BFT8n&pK*WWs5$GT}-lbk?u7D#RRq9KIjGM#^4g!V%wBq=vdY2?A!tICEry zb19~OPRsdT6k^n=u{m9I^wr?2hasYBw9}N(&!z%fkw&g zKBqvIX}vjD_FkPUoTABq0p6d^l_A9xYQREo(2el}n^z(ndW$1V%|<$H2?=Go1CCcD z0wmAka-7!}+Nwk@c83~0f6Qi-yNTk4z;Y%ZG2*E@8;?HtW{HaRP2iy8I?zY*3gH9@ z$RH#hU0x^Hrmh~_HgaqT)i@ZE+73l*#TeNqW&of;2jrXzE@#g)BVT_+Vc$N43zEa1D4qJ&Q~a%9AsjU!1U5`h|^)$lx@loWe*LZOb%>X zqF?pz5oVf-S}8dV0)0Tt7nxN7%9Zk0<%$SExuU-Q(S(xFi;;zMDB$BZb)4$xA=*m$=g4Hld+gn7vbgo;yPv4AylwiO!D_Ds*$H)=_lp32{8M z+DIgr;Z-Rypm$5DKGLXzT16Lrb3g!7kw|>H<%sjJauVc%Txwvb3J+hh{b#cGYGI1b4b#>;ztgM^7-+&iF@{g& z=!}6p@d=ld^n=#^NN$No`voCdE97;OgL+Q?x33K-PCB@ zL0w2{wg2_o(vN!izV}&0-_tjgjoRJR8xCv>DlVO_@mYI0ze=oBbiL~x@f!VUzGS%T zajn>vQC7&Mp2sljrC-S&kBzZKhnc4KFP9F@I8Lf2Fqx=4UIXo zyT5!cv()hvm>S+3e{Xg9JCktKYq|#z68zkA^t9K91=7;r4-4u)|MIXvTAI7~WmacJ z%laY27@w><#TpTzJWlo8iXE+^Qa>JZtguT2FLyl7^4IiJ%zI_g%UwzDW|9nskK%YO z=)}g!`d8&jiApriXhZ7$o)n-KS%X5&RSF#gPBI5sU+)$R9`kO@WUPxvjkMSrQiJ&9 z%q}!^_R_|IWUH69YkK`>$47S_pU`M^hATX%y9TGKxpo(`ea4e-wm-FWPMLV`z z&d?T4h$$Gwcl+u4mt*+&zEN>hN}f1ycAdPE%CAHovw*NTs*C29pO`l}L$>>scCX)I zExT{W@x6KQ;@IT5EBB=iIsn1olY4mE?qs{}c>Mm>4?E`vlgxOUq49RNtafr=DS(mW;p8EoRvn&T zgCHV(b^Y4_pFWXh=E<27=>g4LQ*I!8C6*bnhJC$cFOPtz>l&Fma=C zPkM#Vw_hGE9>%l1TF>_f2Fi)9J~6bNinvgGja=L4BzS&6eu=&GUOh?b9UXP>607>f z{ru1lpcaHZi!O^UIc7}{jC+U5*BW)64;SNlKlFNcbUY6(x)2Hs1?#MwK0Ums+4kP- zJUV^WwR$;qzIyJQJ$AljYfF!o1Af_h@-E*RAHiZ^YjJm<%sS@tym2gUUplrrJ-TUW z7v*+eou^<3+Jn@|(!{T~@v9wMsyb=me>@yM8xJ4t9o_1b>f}WrwBo;{KNHb;nR1N% zKFB|$dUN)$(|LRP(un^wfAwN*Q$1fl@N#l8*Zb?`z1I^zVHSbrv#s-X4X07|GP5x)BcJTo!?I<0o^eO9WVc$Tp8DFxcy;;-U z`6B#XXY|n+bCP`EX)|W1@CsD3FI#Hq($TM+sr!DzNYkqstKQ>Dxv#2kR6g3S-ZNgH z67zbccEaBs&8DSR;$z=7&lqN%oKcpXxVGJ4dM=WxTMMg7(S)RUje+%Mpld7$#2(lE}MeUwG; zu*H9Qp==yP4%S4hG_eBa(NJ9mRoa|e%i1e$6&k>a5ZBW>D*YsM%J2V(RnwZ`F!PF6;{5(Tp zJs8Dby6%(|dGtRhU?fpjsD6o2;hHE}4+93Z-Ki)?jKp|7EkN!(+(76>LMI_YAFi{* z+EZRgd=sJ4ptB-1{XQ+Yrc4gTfk%)sU@eJT_r02J{B+Hj;&S5byQr6Y7(iufH-&?R zR^nwYy01?@^PY1z7w_$?;Q3!CX@s6Xl5`2>FoqAGw(47y&H!Q^3WR14Pu~^e8u%Th z8FT+-lwO+sFQc?pXrnLbaznRYB=x{wvW$-pz=sm z=4bO_B~$F?>%=&rFagw+QO|DmK+&7_-gd0-P$a>SG6R7*W$Ab1eR%&y@w% z>rcz(@EjezAXgknNs&W3*c0ftJYC9OBKkXUcE5?HZ^JtN& z@=oOVt&q2OEA$DK?t}r^6)XB(2D=edAZ(qhT7C$-lla z6m^;n=T1A>9P&l>{g|CIWugzbZRaxGCj7!bL)$mU0*zuf~dIG3(}411hY<=7aBWTbfbjBMY!! z4Lkg%80GzgTN93-sxZCK%WPyO>^uoXP;;4R{$J#1g-ES`%F*5+*Q{APYN>&0@_K(ul`bNcYwdN4N5z%WM0WH{T@U>q=`>l?JH>`P#io|hrUJkq>rxy z8>~MtTx~wKsiA=F-MmB}&+f3)H$DEZ4S1x!1<5`j+TV$Q(bY)Q?gs^AgtT?u%%$mv zaawBM_)u6%=NhF&azgar7{i$3{6UdfWYnF}Nny7Is%mq)RF>(iUd^Regr*@AlU$CX zb&SKZ>nPVA3G`b$`OaD`c3~4fU~0HV>+tWofg9ovJr5YRrD|p1zt(Yib-}(4_N#q{deKouvGGCg#e z@Ju#(QbSUqbeRFR4%Am$hcCd^u}>M|_G;^B{fn)GYq-X~5uhR^gMfA2397!-?cz&| zM0!8{u3SKmtuzMkVNz+hjx=^iQ*dctZ+uu+14s1Uyy0gCkHDA1UvNTHWOjVRxDUe_}eMqkn?s>d>J;B-3+*w^ZOT`Z?1bkqUqEThV=y$Z}N zWS25h7H42aW?meUI3#3EBrHGhLG3@%Hy-3gCpee51cnT4^a^dPIL5sj%c{*bf@{5Shr`^&G7U z!2lO$h!$YO(^l5LlTQPw?iJ5g1zkx1r)O7RLw>b^le>745chTKJD(*Y#%vRc0rJmr zTZ$SSCOVCMMESYJ`}-)&an7&$%YZ1JzwI^p1RZe#`%-cG>L>Ngpbw1STm3OwZF5e)JQ>$pdUm?I#CaWP>v!?XW;H6_ok@OAc5K1Sz z^Ac=y86cY_kxqWLZ|BpAh~scPbQ+`Y*VQh+D_1_EjH!os_yjS>6Wy;`V@>`*S+zY6kCn_D47c%Y_wKZRuC+I7#r~|dad>)o zvDn+Y^CN@T246yBYw?Zrd?obcr7MhK(hLg!?6o_@0ll{E_y19^ebd0+HZfS@17HCR z%KFj5tU_Gx*w&mkZSYB<$vk&5bgn(_H{xbnTeiUnonG}kX#W%yTKa|me7Mm`cuvUq zvUhCF+1AFh7rY(Txz)LbD+1t2c=t(EN>c<`RWKw`l4V=6@!dIY*?9k&oS%Q;csK!t zx;ra>X!m~MhqYelsObEJSaJNa5(Q|oTUNAf{=U~fKdAV-UVC+V^<-|f?td$R6GFUj z-vfSZ=kd?Zq8FFOmiBgDK(Bpb#T)TLxHbQBxv}59gJ>d3kREV5%pXmgc)pxP*Zc6= zYd>bv2SaYox--?MxkL?6iq2SuBfq)Q4XfdXy})U`ggmE5QIIviZwNJJZ7`{%^p}gq=gO1 zXbjaG&V{JOR#@RN$-`N^qxZh8s9v0A?S*2juYR9fFxrbP}wNw_U8t2woHWLZy+~k}2e)xHhx1 zDz2ozl5QK?xNF7XEV}wTfKNUSVgL65eCREJM;85K0N)|{9l#a-E`U2r(*11!zXSwu zc7}4R7eD~t{JQ|2>iG`={LDGkdS6)s5Ws6+19;MF05`%*<(E>SK(1PK#T#9~$2qpP z$^erhOI5Zyxg1~;=u_P=Mh#Y{Hjab})`2Uff3(@4-8BEM z&9=rY!Ee|hwJZ+zpXC4ix$2v-72uHHq?_~;#Xyr0b50i- zO(SM_is~fRE>s2#FlA^G4gVmP(&4rsP-L>cs|ZH^CexN2XCkjIJ1U6f^K}p0UYUX* zkkY$3!4QSw9u(iY$Ws&;bR^}9yU=9I3>@e!4rDO-YyTM)JL*~pRYxRUEjx_z?uICM zV6JY1Ac0xab%FbfpN`f=ldNh;UDHZ_vs-Y~3s&E8c|>Rv)T^M7TqMXiyi@kN4;Tre z``HROI=9H>f~S_%y~!6MV3NJR z5GdC3z;oO6UV7j=ft_F<6_)sfm;m@me2&**9l)8Xk^OX2VGr3(kh)Hb{6gvdwV<_O zOR9v90ySdUqu!sysBg-YF*b~O?t~STAoA6isVH4Jrj%@)viI+L>`Tfts6;j7oQZ^J z%u?emvPs|xfG|@T(}QiYG#(cq%tY8UjLknhw#&$|@?cOr^6*ch|Si<8}H&mv#y zveatPy(w}QC(K)of;anW%e)pJ>5*)Hvt^=dzB;MeTNk_hzOj4 zk6cD99$rX}+jlM;l~rF&qYu8-O&UKCQh)@1@J%6QW;^|iGS-XB?IJt4qtqI3`*_^q zxP_Jp3|-4M(uJ!}Ev&rDf(c7tsdrI2IQqpk#%DUZr7S)46By_$ZylqD9WJaOvdH9e znK?Hkq+L!1qI`GYD7+(_SgW zAfqhkiNW|#IgD+&9jP6-PagiCr+7H5!>4_AD=TZz!uP-vHZsA=A%2$(0I7O*hRRtA60KS3s6KdMT^zR zC=17=Ox88phwa<1J6+^T2pzPP#0u^CCgjMIeSGl!qN3%$IJXMpoDMAyA&vZFHzg)^ z(jUnJV>~D!UU%JTfxY{^wY~3^%ye&43WaY=N+L^)YxMUa@MejGQ=aGD2&a+5cTae@TIckZp>!x#ay4c&Flv}px=1U*4=F9Y!4Xm-jb_5Y&=B%!D z!&bepctdQi?5=XcIGpag!*RT){1HDRl@S!s-3lVwr*(*I0|IsyNK%>=R*jH^TU~bK zzICpp$kW~WzdjtN%Q+JxIr9hwT#oyky1pi=cj?4c0a(v~BVwiTC-mFAD)IT4NTRbnr&he!3RpFa7de3n-`z}f zn3sSn8ZdF>%3L|N0*FMHRtjIZd7W4F1~s%@isu)PubgihTC|HBgQNdf^EKE1AYa3j zNmIC5E#D@;=42@Q)F1hJe)=t6mnXmG zYoprV`TE<(4}xz0I$v98{Zqb{k=!WWk?=Haw+!GNY3h(vv!Q-hL=f9@1f$4042dX_HF6oaRHDKimHvFL4StYd z5Vry=N$m4M+8oYb?#2oK_HG>auXp3LFzvM0fDt`C%*hd z#5y)bjR$w;gwkysD&Uj?6Ci5g_#!BFv+73;6&mLr8B!7nV(h;cBxD1BCEpo()NA1i zwY?tLQXM$@X6j(2jO&0W~^R&%=={jRyKbU3%t zbynOW8~`=9!|We5cWjm7B$1#$WOADc0TPkmoe@F77^@~`PA(c=Y(h+ODZVC3fVU8! z|!Ov@e6(BxC8 z5?ZZD@YeIj7TN@1K@DHW^9s2i6cYgBc|rzSz$o=ZkUj-xo1~aDJb7P?ZTNS~jnw=v zTkiRV|FY$NJs7V$oHA?85d?*0OC$A{a0zz`p@xPL#_raPoHAf0>e_)0jwmb?1P7jx zLIn8!sJO|=VPOo7i!8pXr2~VXs4<34hrYL7grl?_9y#tOA#Y#~dJj@81SFAXI6C?M z<1CjOlE79WmUe7^Nz<4si?$Ks!gv5sx_3KcFUO%GlEAE3B7omt_C>hMW2-el2s{AY z!fW#N*Q66#2ENsswy6{=3goeKKOh(OUaF9#o>tQ;Ni+lH>;Dz z06TL`)V=2L2jqn-2pMG9!Xz4yzD#-O3Bp~sFI*9W1~u?h6Q@n$GsG;7bJ^lIvlEPA zvX1>49Go5AOh=jdY7GhUXLS!0gA+6&VJf!@LA+TeQIfzUhszH`=U3?wh1^?yAqtFf z8L>G~%kKoAYE8cRzH8unI9A(1_{_`Htw!=J_iQTeVl|j5tMQ2(tNG3xQe-3~_nR&W zx=F=~1q2TcDEWPwX^VPlxpgwmJ`-mZwE@Fa+#QTiuNXYRiG0IttM)IYk`7+Z!D}}( z>41?6C|Q${!EnX8^SC{ryVlSe#AyV{{|*EbxWrr0_#shv9nB@?o> zH7hz^4qATRG(p2kzjt%0p^Vl59mFTl;iqVH1;p(~=$U!fBoiYHV{zg^b1#H5Rtd|# zak24HIZm9?nbzZ#dfjspSMgeW#nABsSRnL`dr~9fyk!tEHlkl)mEioK5EF~Ea1e|` zQN}s3z}-7KG{~2U6wD&QPg6haW5D9HL10|P{lOFsA&t$vhhxfb`_ulruw6S+PNYTz zX`cuW-mz(I#;pqiX7(WP!O?3jmpd&`JP0JYWG~+ldk?$*@Oz|!BLwNt4@yv*kWwTy zY*Z~;*Dry?#RPP{oBzee-JtHzjeCgH9~<|e|C2ZF_oo8_f7!SXjx4UILL^|(t|#Jl zO!xyon6e4=NkvzH1TGc``9aFFR~Gx@0$tw2?6+xFF5X+xf{I0?(Q#2AA|2iDIOF3& z{4(HKsY$AMJ;B{YHoF-PgF?ALpnFZt0 z4~=eXX2FphDxoDjRHh3zB>nNc#Ta`OxHg0ba*hFM`j}_4&sdn3q_UWGaS$k{ayZRI zDu%8lcL(7fmQ;A-LPouylN3_d*{8k&6Bobm#ply9z~vOBC1|CzZ6>TcEBS!V ze!Xnm%?5~Ap?fNMEzkUb;lFHF+Zu3(n`)X))thCB2SGH9D9%jvXa%lAZGs^nQ|2^T=$2T$wU*CQx#mWzWxXUU$w5OCkc(_+f$DVB&emNe)tCsEKV z<0%os+v|o~{H4UC`1AX>z95_0oUk0r3A10UTzF@O4wCoXwN1(g%VYgP@Y>rF+uYed zFsep?NCE{WJI;~Wx2bFV!XdF5CK1lkzo5wB;9&`!`CQM?t%Jb!o~IdN>55Z_4Bg8c z$qEWxPa=KJ_k!*#X7tI*w~Gp+k|`V|em%>0nm%u$ip8q8D4_z8&l+u#QWTM%)FYZr zo+k0|{TKj+W?fW;(?+qS7ne_@er^Trv}yRoXMKKvLv}0eByT$c9R#3enAH8|+f`|w z4wZur*pr$2;%4T0Wb811v_B35xPmF-rjOf_5D`11LbiP9-F);OFsF5^`U8pfVt_kU z6O5A7PXej2As!`b6Y7g@A<#)@9yWYT{5p~eT#JxyhrlNTto4Gx=I%n#Hz}0xYz|j zMTb+)jVzs_p*X@=ne|HJ11SPcLOmasR`e;$%jPEd1t680JqbaRD1f0u6N!jNX+x&R zV|X!PwN`R;{j(?sW$Higi=Ka957%%rVq5DQC0O>73S>M+2%tdaW7$!(#wPaYnj@&1 z&rOi>bF76TFFMiVhb-lvGy<2}8fNMC{(sne%dal?y=_+!kPrze=?3ZURvIKEr5i!I zyIVSyF6r(TX^@bV?rxB-efwfmw&mLp_2iME%{C>{kI5QOLg4(MdpJ}3| z@HNIhlsRFMHj$_f+fRbrKbUr)gvkfODXQ3Xm$N4fW6uTXvB{TFjW6bZF z)VE3$EDyiq35QD~G&D{1d~N=sd`h%NU(;4Uo(b2Sxe!WYG7z56NcORrF<#I9z*s<4 z&s2)M%sU%x{eEEc8R?1j;lf+v)B;@^-gH>T2JVA!d(?q@LWHeUED7DnG(9rSKq^8hHA)4~ElD zYcvY(2d!lO&nsbCHf7#9l#7-awg!VK85Qm5XyhL#l8xw<8>t+oZ?nZENp#T|CLJ!? zyjB^}(GGmGiWv16bf{+gl0Y$%PwDUTFgGry`}F*ce1o0R>4_jNU!kGh-k#@6=l<+2 z2s0}~qoPL^q!g+ccGr9QTtSKy28s(+ZgKynEcja)!<>)f&fMKP_O) zv-;^FHk91Mf#~z(2W%2E2o@@JHfZ<7dMbQx>g0WGR;E%FsaH+J28QC+E`gDc5Umh zS=Ss~S-1VNuykT=Ytz`e{-vpDZE5A4HMbxHWzhwj50Z}bE^`)*Z(vY6+_7e=-Tt-n z>E*Iyb{cSFl|H!+L+jv_Fo6 zFzpRZPEUQKtt;eQdv38zqiJ`$!$k4o)r2&6EJ7%iQ+Dkw4@N8Ye@&KB3-g`l zE~HDuMI%!$*Eb(`2{L_xsMN_G8*N+{3L|4H(d^wx&@;1O|6Tiuy{hr!Q|DP!vX16A zJsEZ)ZOYG+^1puDTCdzyd=fUE>VhUY>BpRODgO#{upo9oM7X?Mus0H=s`uNY(w5xE zEG#SboUr>*C3~-^9PHU9!iirJS~XV+L=eO7q` zzx+}Y0)-~Dl#%`uQlJA(pKws|@yI?{O)#qB(gb4=&b(CvSrpFD{;~){>YM0U((Ov> zRcj>b35SE!{lR_BQXYE8=<4mU64Mxe)6BGz(HpB*zGt`Uj z2Pn@x^8VB{D5v?ngxJtuBs(BI>fHveOQ1?EE`(c+fYR1RWso03Bcx~qi35@PK4IyG z1#D_hC7Zl|j;QDZB}m-1Czc8mx}UR^O|Q_th{FrBz0vCGyZ1WALg$KBHQ_~-!-6@b z_K87RZMiivZB)7geZFS2ka>>XEXxl>dq}3lh!LGOAN77dTh+{-RN(7LMaU9#(TkEZ zFf;Jk;>yDKz23rY&gE)1QO{aKxECpIo~zv*3OSjf$xWU>ryL$3H2H!aUS^rR0JdKW zCRkV$>dVk$X6VoADS)qz{uSV>(}EN-Wp$(JaEK`g-A567krFsN{~VZZ$HmbR&D2kDb78K@}K`mkNP+-|-eCxTaC}Ynl z*`bOG>~e=Sl-qsoCCt)2$2Vd$!*jN`VrLmNi2Gj>+S(P_{4g#y*NflmGlcinUAl_e z4|>g?@#>^F;<6>WL==D5S3xj`5e#QQVs<|#%2Gd~WH)OW(Qo9+o#ZPNB4HJ4;pxJq zS}WLMePY<%2~NnOzLhNel#UTYJbnIMxnqx;koKn+>Q7V^C@hD!WC&GB+U0aNAzss~ z^BJILH#Mtv9l4CcHo^>7lCD&7hot&Ty+^sfE`DkkX2`6zk2TAw)NW|qq<;|4Ui~#8 zX#wvgDqGDoPCN8?+cAG@FN=Zy{$OC>@Uglo+7u3pX38_tLTc0{bEDa+=7o)wMN|-^ z&EtOdSA4cT`|tVeBTw?LN>}6pqt?J6gm_eBBT^fu0+D3B3m71w;Pft zM4d(Rs6DL)ZjYc}>{^&yGHsl!@GkHA$3rW#2O4VX_z5w&Ov*_?y7&C0O9fUI?|Y~= zP8Mi4-*bJJ$uSZxN6HW0#Yxb^t%S&@#oagE_3UG}`)H>xIdt|$svu0lLm3azDD_pp^)|t|dRf zJI^Ibh_)E;2%bsZIV^;P9q_-YD6hsK#qvNfbad$ut&&{ zS?9@!ti6t@(5$a3P;&AAs$3pbrv^q080Jp9T25dv_?PcxY5w=L{a-Tszhw45BC{u8 z{(IW~|LU~;Uo!h&li5O3*{=V9%;w;51axQ5p{lkkKkcuei-rm`O(Zv9Q8VMPO#1rI zcU~Va9mnxp+AItP1u5{YCa3}HP}?sJFdLg)xh{?guLyxI@f4MBOw7tfsLG!0#j#^r z2Pw*BNL5J18fRuu+%-~$PPfZKge1$=k?*yW^JPfs4!2ttj|{W=`TsT zc6jWMN&4IB?~?R}5ov#-mmCOe&az!{F`9( z&-I?ncsMk*KpdEhm{;_@n=bzjS|gm;Tx>M_X9vt2NDz|!-m zM=tbaQWaaJeC4epfNynH)8^!%mTEBUn=iY>m?0r32}i-Dny|wM{O=!pU?T)RG`1hC zZWGw6|1L}KHN^p0S`d__^Aw+C4+&frL{&X8<~h%AlmDnnpK%asi0dE!4EVkILp3}m z?e*-Q#gWjLn`$^1pcv#&An(?*F5SG#(l97MmX>iSD1)+8&hrRB^Hjoks^L$U5u=~p z^)1fG{=O;$Oy0iphnbq2EX_T%Z)WXl@PYWm|2!YoA;GKr=zSd-nWw~9?+_dqSo&EW zx$T1-q>X7Wu{tKx=Hh8r&*5eykr=9jQdQ14^y9$i1Th0o%n)7ajr#_n3%bCK{9?>c zm$ZiV50w!Ik!ZxY+J-A$f|aWc*>=~!Z@;Qr>mq-On0r90{zWj#TaehkHQ&^SUt?)4 zrwD)Sy0j%-R$xH1?GV0E;6rN&81GbYE_2C*V3E7}gA8dDu5i=Surb@ym<1q9j|Akr z{E?;MM|B(0l(#R?#NRyzvb0(Ykfl-0b%@r^MZ9uZaN6lzJOyi&IneIE63LQ{y9Q)F z2z2sQV=XDs!3t@=TFzR!ZY*b7qeCFeSxBwJ(mQKM>yQd?o1Wl z7TqTcfiGLQAgGzOlD}{W%>y4*IXkQA6ABE1A2>{|P&Ma}ftdzIE?*R2Br0sM23Ef6 zEGsd;Jcd;#{o;OC4VUBiQ4L>#`WMykP=vp%hC=|=@cqEzZ*PKIwC}3n$bVT4?^pd7 z)o>?F;Q?cy8s4GxOEsKPnd!CXO*K4;_O2Q(_vN>0c<0|$!(;o9}e3bLE8s0SYvl=e-zpjS! zGeP~a8qU@NRKwj@Z>!-lGiGkCp6#j=xi~`#Y%;S7+ZT*#*S^wUYhKUn$w2g=e@u`u<|^5F*)+SE{(0dMpZM zi;yqE(0M`@JOI7zUK%SQ8!H0eL5r>eUkUHyMRH6Sr`D+fn@`|S14r&Ys~36CZ5d%B z9zjq`_X(}h_c9ocW?*KnJ`xTsmxi21c!gh5qF=4Js{tD!$)(}b>Iok2G9))8Zbg8e zwf)|EE^tB-DuB%4=%w5Q8>`eYh6!T4&&)w@C2$(T6wBoON(A$%Ws-~RbOmzQ^y5b; zJp4#CeGe8zT3$>&2U^MlaWn2j@pmP7A>{fV3QFlUlhv^IB0R=;P-Dh)nJZPI(4V5u zKS!QN!JA-a9ZkTJK&4$AxHn}$hJlT~Z2Bs1vQ6YjzKP<^ry{km9!|~`4Z@>ttXJJp z9uu7pNt(@3spC6i{qHe9fpp+(dUcV9M3(b9DcB>{7NdW)5%U2)>F0Z0+U401SQM^C z+E1mlirf@TPT1igH`B(T5E-~iU;ueI3}8*15rul(RM)`IPNQH{!HwB{4=GJAu($I8 zc&$sdYP-+yN$gr_jh<&t<={LLef`pxSmL2EZbVF2Bf1L1t^YpW>ve@t`blQH+>zN2eCJLSU?OQvoUdbM6<`%Q8Z7E9B;^M9}t->LiU+y14L%O<159@9oq+y*-9kIe??|z zyJV=q{3NqW>X(`+NN>pO9~O2!fXq%EI|Inr*&ZROTGsu=6SQ(e=bj$UQbo3z8o!X)FaVhy?Ap2b zoe!IS#CTX!pN2Ykp^hws9W7105OJ*jq=zTiq>QMakCUwHp+L5ZnJIF{S3lR3E~hZW z2l?mek9s6%+gpt)(aqHLm9=hoZgK4zT=F>4zZ0r;8c}nGuXElA)sSw4YRB+5LbawL z=axV5+=uO7T(RpMeXVtV3e_Nf2-U<;*8rhfzO3Azg=%D#e=St|n)9nrO)a2(4&b@3 zrzPLryDgjB!f4Sc^k0bnD4Q1pWpjC=(hvW(Y_6Z{Dal;d>nd$>dgD`Dx*l_^oNCM8 zaGivfLbf)YP%8y{O=LhR${n0paxVz}3E}&1<=CW6xIE~{)x_pL1SsL*`St;7%rOEx z39_piU!@)AZ8 z8Zviu6+3oJzL)Ta)k2aLM$Oo~YhBBd(MN@+?4y$4vTX>s!ON;kZfTqwIl;sLz}1knLic0m9Y=YnG)Ibd`R zoJm`uU5o;%?3M1IDm$xOLj>Xs)L-8d@iP5k~K#H zk3HgO9@&`+b-BK1Ep25R;A$(rb+rvS0Mzyk3l;R~z!6+I*4sD*)Tb&x4_)KE-fea2CsXzaPQk>m-Tz|b=3Gqx9m0iXQVyirzpIz zuY$kergslQDVTBw=wjgp9Tgn~gMAEFl>Es2WuNRN3eCk0GCmJN#$Vg~ii{hC1>Pd# zn({Zu_|;K4!}95&XFC^~)EhU2AISKn=pic7Ei%prh7_s3#Md?1YJDF=vfP+3RlF>~ME&cEVrU>^OWbpf-CSQDDlNFz-#9z5TVuU7KCx_xkg> zA8qzaK!5Ikt3RK)JFkb^<>^iSIInyCdS1_|#wfozuSfhmuhRqPb=kY~y3^fx{XhdN zQ~T$6z0_Wu(%@0V?RmX7y8RDr_AWcGA8qy|wb+ydYjUV$!|$R{bQE%m1bz+XKfG-x zu7J0VGaTe?gTGOr^R?V4(5qknRG?#(+$hjzdiC_kjeqZLYyQ>S_Rt;&U?#o_1Kzfc zhj-pK=gx-dr!No#3hZG?XK(>;8=Aofs&wRw^}WvG1OBl2)`dvTkd?#*8MlrX$IKR- zrzG0X`m6Bfk=_xl5WTy1EG8v+dtWb}NtD|*vy2coL-oV$!lhX)*dqJ$eLdi}`?@A@ zU!S_YuUr4&zJAqzb6?Ly1Mcf-#dr60okY-m9pmo4eyQ{ldup|}PXvMV0Bh=P$UM05 zf_{qD3T7Ga>DbcJ{&}HEz%~hRUw=bdNVBpelDlK~S)WC+lQ1z{i1QL_-H5ZVlpeM; zJye^i5%L6sn0a0=eR(|#D@b;|`DpufksV?k-cy7e9sNTHw*WKC4<*T>CijUj5u92_ zJk;+$Sb2*I`2bx}aVnrXjCQT_; zhs@01f%_$zd7^YJ^&bT20$=Y0=yVJ>0(2<_Ylg4>8p$>Ks6I3%+W2Itt4i^5#w)YD zQ$|%nP8e5T9?lpdguSIq027EHyZ6NMIC-%hE@wtu0+E-WtiBiAv`E8^`O9|=#pU<2 zPMq)2_4sh)dckQ*gsrPB(e9Bzl)6$Dl;pnEt0t$Tr)?1;YoXw+Fg8o!VEaI+(UEb# z=BpGVJMEX5kBZen;hT4_0}*$x0|&tCK*sIsfCy@DAUhgo9P|UO#Mx&q^3cd~`I16> zUpU|lzRx7Mhd$A~w^TenBoZ9eUi&-u`JR>EU%Sths#O4g;Gf;+qY{vVoYvjokw!6NG|FuG9vGSjAZGt)M?DH_x%V*V&5CIcPaG`Y6E9`QZ?g~&Ff>}#=Xz~W zzgG1p8x3+sJc4^0m7SI1T?^BM*aD43ASE9}K$N8wxvj?!xqX0_C)jl#C?9dX7fgbK zjif1yt;YZiqSs`>id(smGaiuWjBI~hWq*p%z9#+etL*WMP00UAmA&`G57Qz_v8naJ zqX~WWKUCR~eyOsvXVYilrJSum)yqhN?GZmpMl*;^)B5~Vd;XTu@Hg!_`HlA6=ug`7 zHG@z;biK!~sn%|}a)4>FtS^LnK4Mn{%2Dc6U<1CRLdcP&~;xA!&g7m4whD2kq z#XKgvE_v8@)}RK)*jDVoF*1wK>#LH|@Y{FLUKB)c0TsGWNsi&x8JCq*)WiXuhCO0v zs3J5{iMS{06x7%bu+#SNcBd^vo~E8m4c%#vtniB-=G{&k$yCEOoFDYZvMx_Tuf`%2 zzl{vg`v7*IXK}Xsw|2hu9t$P72s=&@kh!gL4{G!U%@=~99h6dD`KH{gVVbPoty8b* zV?cW@hV~A1{d7}=`-&;UB^S+`xM-$AV6*3pku`v&na77frBRKI56AZ@qhslZEz>x& zg4($EV76?mn{N{{R?{u(>uT+B)Pm7U<#`w`n5!Ap(1|)}q15f|5*#HFqQt0Ng)v9{ zp`Ik@%=ybTl;8IO8XSm7IDnC@Q;^R;t316 zp=%-4bLmm;_yXfYG`?+}4A`$$2|2rO^7ULIPS=IXI}}Y*Q8^sV&5>3F{9}+~nr#(= zHZ_Ogomjcvh-tZ>X0h^+zg+SWN@Lx!x$t@YT}kj=4Nim$BTFw9OW~y7r>O+vv>PU! zCukKX=Pgye(siFEv+~t&?S(nc;wtP8BizI^o=9DM-P&iuwXX*d0pp_2n{2s+o|!-8 z3u93s?-HMKjE`K(vs*u3sEYsM3#^%)v8g49U&b_Tj4G-|^KlC<@onh&VbV2F2zBzo zP8EYk08F}oSoz(Und{XW&vfd|n3f^kyhWG~ud;VTO3b)37^xDa&)fXUg#)#Ka9TlbUDp!N$DD#0P&};Jm*!KI3{kQ)qf+e>LTZu)mPG4T{v9RoW}G zdM#WVEb>R!CPF*c%2QkUy&r6k@yTazx%5GROZNx3^sB4wh)YtAt*Py!-jR``<>@m} zPkybmsdX+UbF_V{_O>UF^XSTk-R^L6eRX}2Cc;$m^Wm2B4${o`LwE_6XU=tR{LW5J zA$Uw@u6KZ@{Oa{oPkm2B_^S4}>I%Pc^g7$@mbhj*}T&o*v1fFy>5an(t&FU7e++;*^lwbXsY z_;P|~Pn&>%Vr(r{7t=J|V`ys7Oq*Wvpz?&vp^aZn5iqY~-k8^AEGg7vcaQqDa~~a5 zok=_!d4cRK-H1kvBY@e@ms_3i=2(1HHhmn5K%t9WM*pps(!88H3$va*C)|EUiG(!O zlpWiI38*UH&cYM5RMel<<)JvWb(S}=cF`GF^-|#LibWXbt8uUDLOH(H?mEh#M@20z z)7=a*`kPbbb#4Wa5b~#jJ%iV*2|Z#NXytWENL~iv#3yL*uVcP*L&q2++e=G9VwPlN zi@AcOm!yYnT;#OmfXwTy6J~jf>Y5P6z<|&wqmEyu_JX~+@S@Ba81;Mz>6Q|Eo7{U1 z>^)BE#&~$;hAT2HiB;X~_NwuZ!pS3nXC_JyKi3Das45XZpEp2WK3FTF@5&`AtUBzG zg37zNF|Y6bFs~nmy#SMy-BOGiF~+*VASkjFOfU z3EDGLUns7I-Jl;E%4c%DUpnv{P`^d)Q@D+!1L`;7m`srR4Y@m(3u8;u7!yLA*gsKR zJ9bGro*d^mNY~A;xTS~WaXIoP1{|b#t^lvm<852c{#0a^Xm?5v;ejrUYi+4sp5Vii4$Y6Ii{P@cQFe0+XF3-qnpA9g^NDsnrq<#8w zPce^O$t-V*_%39W)T+oP(3qKJ$$ExSx>F~TWP@-IbDX$HgI-jwA-%JJ^X@)5r;%NP78%bx*d z`6st!`5)8nM0<)o1wGoTQc#7+?@Kc=}BeCpjRLTMsW58fP{ z8w^otU}?IugX9Q z|9F!ez09MMfFGRP1{TXD&TZV&15Jl<7bCAvn(u8kwNz}-;7R!;16~mo4i>a5i@7}< zSmL0ZSt$h{PRdhJ!bl&w!$Io-J}83uV>xar2k^##$H?2-euorI5k$;_H{0tUQ6Cpm zixWsyHJF5d!hC?`2o6EZ!b{W5iPI~#nDwR<919US6TC7P3@htnLL<}lTWW9#1d}ab z5A2bF8;Ywp$Ar?01%A&0i34$Z#v-|osXnONyX;0 z!Q|5Q4X`qW?32d@L@;Fgoz%J?Y`wR%>U4uiA{Y2T6$DWjAnu*LpA2Ij{_vH~fB3vriE{RBI2r=U-=AGN55H+l5ht?Kl}KSCK#PLk8pGSRgd% zkkf)d1E$QAoSRHPi@tbcrUBLTVB}S$n;7MzcB61jH{xtOf{pYpV9k6ziSWB97j#Pu zt(#i1bZ`LlPddHyYu0acdhQLKUic?EJu{6DM5pinV>&&}DRSx6-_q$Z5gH!>I(;L3Db^PdeSc1!hkev}C6D>yp_Vr~0?sC9_=Ozg;qu#|4(m z$bVTf)BWR;*~T$w$*d1pG84F4GJ~79BGhRN^e(`WD&mujT!?vH|2@@CbGJ3Ejy}$K zRu|rc=Ocft)p^biMgya+91bS_g?B!WO5uxV@4?sXaNbE=Hgi9gF^%pPjcr*F@wgT( ztO^pU!f^oTbeF>eS3SR&#aZ}iQdh)45AjZ zYz%%Pn|^eS9AGx(umo<8rPIIJX;@Kj{JDDDh927HHqy5zY%ERn9PC=u#g?DFUsmgY z*!zqp;=^~+)!aSdc;&Jr(v3UNHk=~ogHKn$F%mtkZp0XuEE9gDG5&r_It@cZixSKk zeVa-?@S`q;0Ip#c42H*Ot?x%EPv3`f%fkFAQDMN<`kkDr6%^ zQiVg(iM&!e652DAcSstFUEg@<2a-=P(eM#NOb?4wb=v4_brn1EI!YszK`W?%j5sj=dW=A|i1 z`j-tssY`+78Irmuybkid*tI>f0#mL-CAj6A&2Pr!T@gWAIRuH(Y{;aM^+lHV8QdgM z1_fZ)EQRrE+Sy|tLQ!P8;;@Zhuz>3@eBKD>@f~}6s<5-)ZXcRPQ#S|***))s?2BhT zXg5OknM16MmaC^Ux;|n88QHLFB1*jhnGHO_-JMR~9+ze(EtuP`H$GBpRI31l?Cn{c z22+pBH`;8M$k+^0IHIXQLUzp`LiS@o$PRQg?}Y5?c1;25A9(f>`I4&ZihT?q>}MNBxIB%Ygx>kwp7388YEixFpCtEojr2ZvmXU9EYA_S~ z5_gk@J)w8|s6yy!XKQ=lIzhr_N^=H4*n9Q#D@&_OD~Au+m6dDbYK?&Ez3eBfyQT3; zK4&%+;N8&f@srkwYuxS?1=o|q@k}El8jpUC+V2f$Frob;E}qxSd!VIpmFo?c5G)l{ z)!o9yVAt8k84Qq-y|Mjut^}#8aUKFH8L<$PQIb>5(ecdX@kX3$qU$k^*TqTpd7YRm z5B&DG;Jl^HjO(_ptC=yTv+G`YeaoKOa|D!Ku|wDA#SONTJ8PwyFNDjb+}WVWG2yTW8!?8 zxM6Jr_k)Ry!%2JbWfS*~+?ZPpr)vo)R_@4gr-Fphf|CLr+YL2A$M*RIke40zkrtTpr?O|= zu9*)zGb*l%o{{g>=pg|hd+C?%uWb?0ioIW1X+a=68w~)muaK!%WC9?&KQ0JlCkKJ- zVF1W3*&Ni#*)ubLyxL1)uML#%jc-79k)C`zzBbGkA^H8^7S?U|6`x2CKfkm|v_m!K zdzgP8^IC->bOcn%k&$H9SIm3ACh7I zm15@&G#m#}>;X0fH1~w=;lv$}KZQR%Ytklw&0;)B8{tKUVfAZx_b$x=2?~R=YLUzG z;XL?~066XZZUv9O&3kj?1sBK0^yg;|IXPVAapv<0cK%t_kgmp_Hnp z_6UTRLx1RE7mDIdMXl+6kh|(nWW=YWm{X+H#ILr-n&v?P`RG&BtI9iPoS;vkF9#Gb zGyX}J2)A20UU|-b9kvM}Fkg1aZ4U+l>IInhaGDB^Auv4~G@LBz@o+$4hJCnMW4d}m z&d}GJ6-PyQzcaJ%n%vdz2SH|bs2el;m8u+k#?U4_REaX(J4vc zF)XO1^^60OxIRzw_~0P(ZeVX*Ox~n#nU1c6?kzGa3YZj94~X7ae8SA@k_zh&}Tx0_5JQv5TMXUYD|$|s3i7_y#gQI>baA71 zy14B=i*;BbTbGv}tnXJ=^&F8&4KR6NQ8;FjA-ejgX<}wvtzTKOR0Fy=5nE?A8p+qr z?N7LC?L~3+B01;RR;1Jy>=UDuVu`)6a!;8)jgl23vJf%_yMp@nxD~de9<7115dOhx z#QZs+{(anFWNX}S{d*X6R{c_1^iOykAKV2Y!DEsDHM`oanmy`wYIc&Y0WV00l0T~1 z&Htokx8T5V{5NWLR@IijP_z3m-KyD@-~wKP2FCy5zW!A0XCjBfyuGhCnfzaHUr&Ip z{k!%($FJ@CcGKUr?-$k(e&4>wfWK+qQ^ZjGW&0ld&+YrLss9nZ4*M7Mx>(4(R`d^g z{pD};dUN#WuavUPoV!k+WnFL0?1duxql=tB&FqVCfSH{RWM&WhVP>bX7c}7|6R6O? zTjdY1d&Wdoke6e=zcJl z2Usj-a*Qqx{0gzfP?-`~FjT-Rj|sW^k7WmYXFj+xqj``(RUQ>J!9p^A3TXVCutk|_ zp29c!(VpZf#y9d;($8USQ9KC!p0K`14pK6~d^O?mpg<2o!B~RgzghghS^V#^_=kM( z24-)$L{Ju|;#JxCnZ+SmZnOC7U$Z#D&nylJWbv!F+~V^^D^DC|O20u2cbM3W4Yb-s zzArzMG%~%SCnLE(RgePV!2Ntx`&s0ue7&m*gAHMc-v;21#7|%petZIqn$L!_YvrpzkDBQ&Fr0+rpM|lpAAaXL+l3c|cf4c$!opGlyRGJ=eEVr?II=H`FJB($u9Q z>v|JK)ElW({BR~F6r~X-T>Tg+UgC9~)L0neT5FJT%T3Pi^tsL1uz5do_97FbWAKlh z-Si`8kBr~s?5LZZ?LN^VDDs$c)uk88Xi(`Oe@7v(@(kL-XxA!*MdPE-PJW}g`m0PR zUoTI^E3{K7#4Lr3utW=<1e)CRyly}o&cR0K70bSEz~SACA>I@IA*BE7=RRd#4cO!`>wG8cM32ji$DOyTAHXF}(e z+MvB-$n|NROZ{7W-Ovze z`~I4z^EU5xx}+`o`E4l)<6`s_$6isr2y_ITay!6MT1e$;SuMvFRVqv4t_Mn^xGNxW z2drwa77y*KSh`DNh=|@HD?83`xyA}~U$JlJ+P(a$u6~|$>bF;TJCa5qk*5Lkfg$7W zVy?jHeH2vu)cE@MG<<1i0mtTf^yt*s=B5p^Ey&@npIcjATE1+}{Q}}k@vTq>jz0kR);)npMzEo_-F~thXc#Gx4^vR7@?yzzDxT9%!7~)!V z`{d!(dH&5zxnth5ajWgowgfYG84K{zqs~kt*Xt?Q#)i|CQ`;TBj*z69K91w-gV|u? z$`4_3IWvl5fW|%T+SHn3ifLyXcp-B@Lr>1(__pYBiIksN33+f>r_o_0Q9OECH5n1`%7JTTe8bjB?OmRMU|Xai0a$pChWHdu zRP&l+fQ9cnr*+SN3V7uj2R#?rhA`}>SP_HyW@!Y{795MT=$Z#MRtIhw2^2u2;CxllUdRzI3bw5xQ!c7CJ*!n{kV-61Vs@ZH#w`QfacM*8=<=j_wjU>@7>L# zfmexbNm=0Kg#q(uXrOtt$3!>tXz_XOYXQ&HOK1;%n@4LHA-yVMWa3*;D25m5b^j9u zAM^GH1;3#NZ;Jp>@S5$y%u#8ql^z>EDEPVQe@(%s4L*jIvb(K+q4?%E@VT!C*~Rx} z@?%HraB7gY)DyuBu-k* z1Uyhep{FU3)g5^4sS9i}-E@$`n=8er^yHAz%}(#FkVuKUmgK7i!NDV_X$?I~nb5%S zA=@G)8UxcT2xt|MHSV3-%5h17F~$~rU*{djnb2rz3)YreGbw&7P0Z&`wt$km$NCl$ zyo$5luegjc3(xICr&|NRm~MNE4xjs%Jlh~qow;+ZkJbs@vUP-l*FzY?v7$7C-#XC5N3zfGSF* z0Pe?;ffUcvaiC$393rTNDWk$;7LoPbz$AZ1?C7u;4^X%FD6^hko#=ei9^3T(L)TqD zY98pi(;eP+-8+MRblq+4A4~to*Kv+lK-WFPez6*BG^!ZQpwkH=MKc`|-uBtV`E!~J za@mq*3*a2buyCpD^#`$w34dcg1 zn)l5}8vMlVNScRTf!v#SH{$kXM%}RZpW^mLus?{~Go$?Mzec=IZFVuxWfKMyp}7xH zm(B-9ZsA@+l;oah*w6qp-5=|I7cHTn7#H$r8$PSZhC-%$cVEz4(83JQV>x@Rz*8p} zt3!?%`6Qq=W6KR1A${us+}Bej-)#d_lBX~#sfi(j0`dAo1!62OzdjAcGfI0@hyRgZ zXGzGic(w_ZBxyK#brI0E!&}R-JV}6p%yHDyJeg-k^&kjHOp+V6dHi^&-p8>eXRgm_ zHy;vlxNYE>6r(>FEuAgAsLQ_^Nz=R?NhA1mB#pebOYd$Z&Fgj~4ehT+(#SeZZa2!A z?l#JK`hbmc@|%tFc%8Y)_a-cB{*e;ht^OVruW<95ogKze|5pzlpEEkD6jOG(({Pq zd*xNZMxwJ=ir4Z%pcH?J2;C0*NW$!0oC@A$>31?}J&|N;Jz_Yb=>=$`t}zebaW+pJ;`!Nh*7a2RhAZa=ip)Fq(b-z&Ei8|JTWVKOCkTfOE_5y zC*^b7Gr#2jRSq6_VZwjKF5ZF{^Gnavuz zgD14|qo)*O@xBV5zX>DgQIZmnVqRgqz`%ZNS5i%UsiCAoVQsRk)eK2vLA;+J zX$-5NdoPSXSzq6&1+H2&Z+8B^&sHhTiG-p*8QkMX_;#Nh)=|y;z31#C=pPjkp}f#Z zkbNo}Ds^e;rItuJgwm|w)R)w&LK|ia1 zQ1V5lyIzX8+09iTx@6@0G;qZ~W5wDP?++Px(1$#aSUvl`pXy8KC-x9Ue4Om{*o$UL zN$G-M+P6CbGWXNC<5yrYnKJl;-q@D6^sxDR@>d}8+ zO}sX3i~ENkz%Z}+TU^NG#;76FJZi9uRM0DhtJ`eaYL|tIFi{^qKN*OWvw!Qgi&k-E zRu3q%kkS|IX_*h<&sl}*m8dB+kwQqJuPEy0nQ`VER=t(H&g!*LJ7DZk%FjwqY5kiM zC0CvMw9sVnYsYlOB0iw5oo?zoJrc-1TgTSg+w{>ubS%9Z2DfK8wWGnbzu%yTLw&M0 z-W)`#LAg0x-xy=sU=9Rw+OnN*qBR36bctI7zH@DFnDAa#tXHPz9V8rMmAA8%jZc9V z#|QbkH;YwU{g-McvZt30d#O6x$EMl{DcSK!%FD{PvAKCfN|Ni;G(@nm$1m8D7VQLC z6#Y-i;9v@qG9+AGJK{*$X=)7c&ICM_Ucio#cqcA zS+%z@YfRI3YlTxjug^Tn+#YRFxR6;mIOOoa7a76$!1bJ>*MTlyZopk^JYz~#v392c z{exU~op#9-PmZY8W!;q2NyAwslFW$k%^{rhiPeIhtPFmfiF4yw&9FLnbwm`k&Vrud zYu$OD>oWP~gKcx3Luv>kCwDliDw)aShCZf;U>_x5wJzz#NWlhX=H~_OZKa*a2UFjm6(S6>INj_ESc!0~qs9j&} zvuy)bz2k?XVmGuUiy5|4P>}2EYLHO>x+r;VmA9@j`ka2J(^tBLx!euSML!1g7i(Sj$kOR&#SC zekQG1b75$FzKC?6bQn-smln+Sr+p)=T3);M80*S+0Q%Ra;tdt>QsD|RLRPCo7N?n-K^ouF@)2kncJ#(KjtfP&e=G%W&A8Itvjyi^< zIlzv#KXy7OXL4!OGls@M`_djzMOxqa9XbR*4e!}HiK_aLO+?j+jMY5+NnDQ7n&U-h zUz~Cn6N@vC#F{Z_W~14YbCn@)Ik6BUi?=whIZV{-IsJ_iur&{&rK4E%i3trG@g7QY z3Z4A*n}zeoU5gh9kJBpXP3CJ8(;};k7CM{Fvc)-uEwAs21Z~aVZr&_HG6_5X^kzYa zJrk9-nC!i+XkiPu@XspB@`NrCo_Q-L37JE zX;Q)ErS0|Q*>cj#O#MTA9+!3Qo&K3VPYykgC94`a7j50^9h-Mojir^vvL zs&9L|aB_{$UC)D)fUS0E=CWDrZy0iM&_RNccwGWlGYxKJ&)uGZsq4HT;TS^@Q)BBc zNG4>J&>m1S(XklUlMOrn;HF8C?s$XkNAv*;bSw|sz$+db++zFZR%gv0vs$`6MSumm zbsicaOv%?;axc;v9e@S8mAV!?m-sZNvBb7F=fp1Jz`}c=(jT#X!b8N+%8}*J8Aua% zh0VG2W%;^-xuDc`RQ65tL!qa6{;}+-SKs+LLn=}|N4Q?c+bnp!6wj%52Hq|V|M+&H z+%e1^9#abU?dI)b<_mK?*(4xXr?tKqCQ0Pys>?m&0QRs;dS#PEYIHj+n0(Et&4o!SjRj`X+KPZ}kj&3DsC}95 zLwBp#@%9St7+;!F+sUxZ_s|;&5aUnKZ`p&y_+`sK z$^95BE_{vLU)1=#-G&1?eJxfrjV4X)~Lz)_%2?Hy( z%}|OM*l5l*O<32Y-I+Abu4$IR!h#f`fAm@5wpq}|!2WXO6|nhko4EgAUJc269ex+w z*xucPpPa#azevLCL43^9|A)P|4C=by+qLNi0qF+mZs~5MyQM)olvKJ?S~{h>yIYX% z?vj+Q=LdSNb*;MZwb%2^v+q5#XL!XcX8aHMJwNAp97(Uu^o3=ZMe^LK9esnNEJ1hH z{kp-a+F$kIYxrnyq?@{}hj0A+qgfFC?0o=jK_k+f&%Q@cP*?_aeGDw)1Lw+o_F#Q(8fFv}hD%lrPxRsZY9 z(PupV58|#$HGLrT>Z$+3Mps3cD`w#GWTWGayrGsA{U8{E1Xe^tD9ko9RZc8G;rvaR z3I`ESLhloIQhornl{Gdyz*yNndd~nhg@u z@x28O1;R|vxfYp50B9o|RPjnN@GK5q1PfRuPrpcCfy72^g4+MTGyZ=x(*55V|CgLN zw+tzN(8vEXXZ+P4!_2?74OBkO_(cQvoBuN7_x(NNfBB~wzna(|GybU#V8)*|6d;Lr z;VyLKhS8X=IXgtJRkKs2{oS;6(~xICI&X>BAhU}qVbAf7yc~Am9V@{iLY<-M z2EmqG4jdL2nQ;2gkv_`B$HUWR2y-UzuSdI&?m*Fyrm-8Z3ReBxb7T(Iywo>*Ff#Z3p*V2RCr8f9Mc4p3#jz8V$*Nglrk? z{4N25T|Lc!LSp4z?fvV`n}!kXtQvWYqtAZ6ZAX%dl8e$HjH1M0gjqc4apoogej=uE zD8o`zGOEMaJ=9nh6RG<0vUqZHwq!Ek` zq0T`@!bG6~;uWCc59W)+2I%J_Wb0GEvR_XSZFxSTcg~(qNfWbI5 zsB5fP=;9>eLyW5uJThoH$6n@s7ju7fzDf0}y2~@U$A|0ON9PdP#>Vj_lF~<3ercW+ z0R0yi|NYir%lBz(AkD`!X*Afs1hMbNmy$i$@TrsgGF)jveFk;>*WLiJ%i8D#aiuQ% z7rH)44<^C9uFAzt1pKPN?Pfv@zfU^>u$Ev;Uuhpx2uPPLe)2EbRnDvy{(EW_}LJ^xvE(=O=aVzm26tP zd0zSVV}sMzI8XJ4`OF3;0Z(PO9AM4QR8TF6q;lr3F7Z7VD`xn&z^piGE-|V+Guh8R;0G6E}1|%TX zy}Eqq1Mat0__Eiks{0lAMM=#`go`!{Tk5q1nly+;*mrCMN%I}_A+{xh&Nhz6Dh&`(PPVqj^o^OvPTprP^fN82MTOzqRu`gL3H(?TAJ zFYx)lw+0y}irg^xFx*dDgKH6BYp@UdYij^++7JkA4Fvwl)*vs4RO=tN1}uNs8uKJFAn@O84Mc&h0Xq*ulo6J1X>h0Na=O5|A?du45I&8T$uC3wKV|yO z!?5)uXPoAbpioOyK&D4vVgRJ>2qIGvMElQf;j<~+QDeUw4wnD4;n3OeUo;%L4g^pu zfQExu%AXnzukZ^$^E@{kn1X&c9L#& zyWaJ~K2*u|1}PA$@QDPsV}Wd}jR%JlXOzAfIh{9HD=; zHnvgKX>u>49;Fe2*R?hTS!f?7miD&KA$y|hYYkTGE|>RG2m-G1%E^CC|C#Ei6t zxceOZbr6^D*3?alk=_x4gfAfP?C8JjrRZFOOf-R~f^2nlw?Al-&vriHFrHbz&Z|Qs zs!(bU!;@?2SJxz^53GZD)z2A3(6)#%5zQNdgjfFlpw={&dtrg}WisSiz-cdhg9Z11 z@0>kzd*6^6H>IK&LKxJ`{5pdlx-2WBSd637B8w9P+D_(BuK#HsaKG~J|B2zbrmjgSz4=6%K7Pgs@ zfbF$8nL){=(bt_aLQM^%C;&tv0Low<=^0F!L|bH%PLW^A03r(E9SjW?Hd<^(2#ce( zKmV0PzKanGs~fw&-3um>qPh_&iqrl-A^B+x{UZ6P`ea5!!*cNc6VAVh+HcPPAxeus z|5-c0`A`2F&cB_{-fJZ#h)86qQkHgHTC8+L7GA747jh0lIdXrENby*f_7GY{ox=r4 zPs#QJ!jQrP>LiU4sZa!j6BM`;xJWBp?H$>0a(FCzb5Cnlv@j%uvsx-u>nzenm18L! z#-eE>mKWbSX9DkedME7jS3aD2_1i}IIhbZzlXwpKdJ)JSqwyC)1Q$%@W)W?rK(XE& z4gXn7|6~4dwDitgB7f4-kJUzX3p19MMh*{b1{Z(tVfO6Go6U4M1!*tQvz{*3_vCLM z$G7M&cu5RqOz_zxttgO)NzbU(K6uxD<^5@fl+a#7-e;k0ub6a2GO=5)GBq8a*{LPC z4@t0!P%kDOCE`s@!&o*E~o`<0In`h?*K4BqyuQ3yP``QXXO zr+vS8UYQ*n31v3zVcaV;Ov;#VLGr@=K2;MH@^ul!Q>74cQ8QSpeyl*^tI5&Tz!)U3dea~Y zW`kgRfP&Vx0Mbl*=FGwHIqT~Xs;!88GU`GJoNapIhli=V%6ep0!Mf@IL|w*oP}Mv1 zLrYVXFnGiU_92%3kv7#Y!8n?Ag~)h<$!);D-6W-uH?`QVHM!Bs-?08?%LJ~4LS_qr zw#9kGTHs{MyJI>tPr>MDq;7g0aT`Yc5Mo2Jq_blwtVS5+)9$po8T?=Z>CreH0PwqdL1CHUSgcojdOiIR-3FcK~$Ys?DhY|Z{&%6hUP$B;NE09xTo!@J|ua45-eZ?pbdvWcMRb}(-} z+;xF4i-wRW7F8I^^f+E0QE0H*0V@(uRp0}W4{7ZfeyR{BhuvRIGbRt0EFoKarpd>1 z#Y`Ly-mn4mG4y1;zhGc`YYRi&S?b1VysO77Fv2=6?NgjeT*3v)7=!`fsjxQ+t}9=J zct|jLUN-n)qpEMC&~&|eveGB~*-9U9=C1$CN?#K9udVbS0V{pspRDw;e{ZEPSr!JY z^t^zT9`m=Ao;7ehEb^Wnqrp|69g0^WT<_iaSjd`RJ7&b`fMtzWJa6570-XNXkJt23 zjLT@c*C{Zo43>gxuHsVtq!PVnZ!M`wFYF>+E48NvND1Un@6=qot#~@n$Kfks&fU6c zBiT-=-<>~W=y=mcZd1F(cHQ?(*2LLWz1LGU3LmR3^n3Y-HQH2kGq+jV_%Nhg3RTY9 z(2Z-ELS~ZAOUe7-AsFv8o3VWk7G;rJ$hD{B*E--UcWDJT(s3TkE-HH}nWUz4m-Iqd zlD+^7f5kcdAD=UDL=1SkzrN_??RZyRWtl@Op<&v%$GH~^y!q{bH$OrUG@X)+W30-| z``pHS_AgoY)Q09xEN?1=Xs6?RhSqmstt)GAm^{8ye90L_RMp|L+Ie7-j@&Q&ZqeU@ zi54x0BU{mQy_z{!sYZz&JgVq*M4lv77_c@ySzmb{a!C;jLV}ZCE}2mKts;T+K>jHI zKL57*3cYpW%Kbk4tpsY1zlr#0aOI(HyKA6r&o63iilOU6l-ktC571vl%skBfv}*S^;8spOVxV%QS#5GQ~` z)0DBPa&x(KS-&Nh9=nFo(5ZsmEMA<)d+artsl^p`rNHzFxw~%E{VfM?dZXSs!vWEy;CLW7{JPV8@xs(1_XNWY-QN4lu#@EE9+q1>52P&y< zu@{_Mjz?xfwl*w#;hSJqC9ztL;2HWlC7T2ibo>d~YA=`AYDX6dqW9RRBf^u^WarAg z^$R6cC8%sJR!|nDB5lwwbAO`(P#LuC7X;+S%YGnAuu#}!A4|loxD#*To|bG=lEsZv zo&uPF+yd$2KVt%VEKvD-o9+Jr6JXf+2PVLDNV?L}Kkrj!cQdd?_%kM8G_Ovr`07tj z_rA_%jnrmRFWqO(|8*y==EbyK0Cn!wdGWoRd)M)Fctx2&4x=mi2Rg_hZ^bKd4URNL z&1M^m+aA8}F|DJ!jvs1kc~3oToZ=sjEGzbrZd*3rJF#;&rVOPt7ne-W&dn_>X`OKa z`1>vO2Rvce3d%afy}?z3EQL;o1j^LAM|Hl|o6gc{J{>JL6yK%UoXci;4&Ry!+`HPK z$4^}z8#j8FZW}9md)^*oPIuss_fyZFd)_HjE3SQub)-50Do$mM+l}$+*2lwEz2&>J zyT(hRjb6FMZQk?eK|&T+(}LRNqjm4j;Vv1bgu6=1~vz45Qz#07r%x0kGWtsN@IkTMU_>p(=0_IC!DIR{k;Ss?Q z=doLTg`EKBgtj;YtAW$yT|xWee16Mdsivp|2p2(B*faa8lWZ~!`6?Z^fBIPOrjb$o zI}-oXN#E)BNx$zw6o3Q3b|nFDfFJ-4@cKmkGm^2y1S~Snfqt-*jV>yIgZ*XNYZ?I5hzr_mXiddOT)2W4EN*4^UZ8=X^J% zS{j(hJ!I`e8D%onX4rUVnk9e3%T;vMm+++c2j6@KoVnOjpB4Awfa2bHEH%gQNpX+% z9Z=j~mu>DxkoXG_Sf>Jt`wfU+iu+d!wa<+`ErLuEEqoId6&3m*1b z51p^-4d_!0Z|Ofs3`i<5eS#d33Vn43y?e^qF^L;tfE^;7#alEK<(W^~TQFq2qz)B` zCB0y|CNEuFH2Su!N)w`LYvoffINgmI&`~m=v0bOI3^&goqqO@I zvCqhW?bQE?*q65U$Nm0d`>*`{)PKd_54Au5hkVxCx5oY>e?LaX_{GeSFGv!=-(S^u z=I=vr!PspptCJwt{Dr^o+zRmbLBjva--m2_=I%Hlg58MN+5e4C19`rr=x^(uYYHh@HPD3A0^oQ z-J_kU6cyu-M|&psuSYw&7W^kjgyc#MEQGg__(KA(z`ZS8G8+y8RO5U|BY&dGw@KrW zrjzVbNN;2BNN(=K|2JoQ$({dnk6`(sd zJ;KJ}|EGI|$H#+@S`PDlC?y{X74tbtB~wvSr3OmWA@U20M|c9Jx(nwfr9J~);h2-V zx33p*Wl4bbk1}|KCma^rW$#+OlG0Ry6BbH$@S2<>Ajy(QC#su8?v+`F29mFseW6knd>T6(W-N4Rpb8Qj+tt!$)Cpu5$@;=ciGlf@O7uEIJgNVb8K2aD zaSFN=ouGpa14Kyb7HE9C%%^kAwq5cR6sV9$BB_vqNEY1y7Pi6v{wWSHsfz=_Rb`?1 zg#q+^!T@S&!qYxu0DXU90Bz)DhZR#u__2Fe-ShzrAR>SPGfIl2$cm_HNBI&j|=Mqm*!0;;x z&uh@1nSC9rMFMe&Q_^iHg7#8njnr*k1!-rmx6+3E(qTK~+!9u#0p>tdYe)4iZKiF8 zpxRd#u0NOqwNK0ebbvWfgfkeKK9=Fg{gT->9$J4=5lKQ>V5gt;#yKI&vZU)k1ppv4 zxaqgO)8jkV83XYl=f)qacSLXQ@ul+*j4k@!Nu&RbL|)W2tVh2o-sQBOQt*$h!^d!X ztiNs@yh<32fvp1)vrX`uJ7!?(uxe(|F%4`TB10YEKKUU*^DtS%@~dM^OQj~w&Xl#s z*Q3^NDlx4N09ioH&MX0;op1>%&5X0Be&Yf31F9H_R2aB03_)3H17xzkK8J1!0ywQC zBnlR{3JyA{@+Cxu)2S>GAcFjf7RDSS=S-~wOzVUo_6Q=xWP-YO>irW*h&DN2gh;4P z{KSD$e9x)l&mjMot%EIVAoB(!ymee8g)9y{%qQbeaJG_sdZ{UO;&e}(ZES?+twS`b znJ6gq=hQYtS$TG;3aVGLMI?whZ9zuwxl1=YeHc*J)YIV!-p(A(c1g$n+B!^EW=a@z zHp`O(TL;;=ik_dkS-{qT5%1V>-d!>!e%MUBx8lRh*=i?+;m^SRMuyd&`bi@tCoy#>lOt0CnQWc{} zX@35Qh3-*P-gj@QOfgh=xK&=K@zHH=?`Wc|-~r8VEUT7-M8; zNRgD$U3+l6T^``c`r5%dU-v z6xP{&eAYb<)u39?pIv2I9Q!P_ptWkQ>b`Jcz8|~#fjjph=bMdtniV^|N~g7GVx>T@ z$N2T&t=3req~Vd=I=e)k0|DD{7F3+IvpSBtb&pe4KzGVkAz^GqcFgyO3V(T2`eFa+ z`04KU#|Mr{SKnYs)Vfk#-sXk+1(y#NaFZh9dZUdvCLbTt=!#7>3L}C~6quIM46;q| zqrTR}@g{bEFcHFWO*vo9mswTN;qK>`XwF1b$+SgOinmj=vV&Fxt>JYci5 zTGD_hxS(=!CEC5Tn2h*AI#1AMffQ5yO$;ss2KkD=8&ej zz78QTDPbljDOplFVcQ8!9V1w{)}iEC8s@09cq*!XCgw|U`ecoSFm5GU-zhXhHsuN1Cayd7g|oL@Xb zh?y1f3iuH_u|Z?ln~hKkmbAkOs^@QX7c6%lB$hwpG9Wx?U0!*GGo%zV^1oU|eBI~O z%*K!_^#R|5kAJ4s&&!XunG5x5V(@6Z$@QhVRU~0=bni)5-Rf#6g=_RfB=IIb0n6#v z)s4D@bh#RmrDBS;^}MXO`h5jc?r%YZrd6t>wR}q>(EM~!Zg?hfffV}gcmSUaeceBR zwPYmj&Wk37Bp+Wks<#~CK;7O)X+Zkpv>k6n9-8}jDRpUK6bhmw36~VZkH=BDvF@}K zmW4Iup9`F!_cZ|Ao8na%j}x=VdLXn_e#A=SQhI{XTLCW?Z3!-2z6)-uVAf^3MLYF3 zCY?2DZx#_;MkhY*H+!_2ar(uFDV!9%=j^)2T#n7yQGwSnbS}r_w2R6Pq?XcLxZdsc zc=);An(P9MQ7lWN{m&Lo;+np+l;D%U_L!!6qFPE;ZqP|$(RHb|IDN+_Z}%pk>7i?W zG};urkL|SPmbk-1H;#fpg?=q(@+AV8xty3PNfk<-&a_nJy3j5Ic~uQNJKpKz#T3SU zYh@1r(70?EU(^Pg8dL1G(~YvGA3uIHH0<785QY3!c8Bf1M&{+TIr$fW1|GnbxW4T^ z`c!{j6EFv!hb_$4{p}=wPm|)GnQH?;pDwO_<`}jWyH%cw7vh zdVI}2Z$UGBuA|)M;qs_=#4%3N1>bUbaWNRL#h}|VV`=lA{iIg?=tG*NHMbsq3qkVX zCp+iz<(7+J5{vnU{la!VBfwjxNKUzPIwvI?WtZi$6H@QRB!3&%!moZXZaI zbKjM!w{f=(ASiT@9fdItB=}+kIV)qtH~e*$GwA0RIb`Z%9{10gYIIR95YI98I9^+>m_299Jhg&pKp%)URyZy5rV%K*WHqPXWcE0zeMV4`J*!gc9H>5PT3PM%*gOc~Q_ueJ?DKThCKxMx(?jQW3K;6k9 zFugEATs$THgSvRyn0sT~I`<5kV&w)M@_QE!Uo1|5wOvvAnu-}JG>$qd-Eu#wqSe8x z8oUU4Rq3L&@x7CS4vrLbMW=V1<{Q^$Q6g7irJANc`9R}u(V%r#i-XB2w8&wQ74~DX z0eZ%P^h}r5DI2Z7zmvMsx6gh3IRRVnxrRSnGUPU*xFG4*!YO{R608@5mQ^^v#L)ZZ zPp9?~EeQXBw7jz}c&I0OU-Y4-h+_2+pl9So5lhmnnO5$W!L@5i>e}rm=~I>c{Gg$p zmY|BrM5Pi{6=iolczuxmhDe~)Hh1U<$CI6Rv|v4{vu2=`%voAx;^oPC+Rn#B!Y;k$ zfk0EA>_P*%n0Efoa%=Y5ZYxz`_D6*BoNE+U-O@X_w-V;zp$T~}z_puKDba%5(C6-< zIOz55F=67W!(AfD>cafXV?LCYBOo(j)Xn-nVC(S2lo{h7B#4E0PT?IaCzzs8F};oj zv=cE^O;6ehS!UK=A8zawvI$glC}rlZd_)moJ-ZX^IBoA583px%{(6{)=B;nV*|!jl zPaGT#NyKB>XY92Kso8QVkKD2xfav0CgxNKTls&2R(zn z*E(0^9Z#qODTZ7ub&+~mq#BoO;Yu(lxNY@_Qh=BbpqyapTBmA_qDe+h@4&y}8#uGY z64Ni|klHe1_!gQxfA04-uv?Yd)K4wYJrMmj=Te=38sJ=3Po}>CIG3@lPn^q^dfvy; zt=HzBD2J{JtUvFZuB{7871GJ6<|9nU74f5&15+S;&7?EsB_kuv?1Gz`xTe$<4r_yK zJu6A{&!EUK%VhmwV&(iUdUEMv@kFA|3^!M}d%abBoFd{6@5f`IkryC8k%BY% z0&p)S^NgZiJg-ymeHFZz^{LgKldT>iXYN7xio1z5gx`&nH?4?128sqHlx-lV%N4Ha z5N3?f3LN3Nu^$6v=cRF2%P3$gEBb>yqlpA^rVP+C-*|(aAc$I`kmv5QVI!~D>!Dhi z=PL+;ka@8tfPGB)wnp@bN=F(JH0%xbC1rbZuBhJ=?6M0t;6xp__6-zTozdn+B1Ecu zktr%b#MFK-VcBb@VzDU*5*BaZEQ*nN$5Rh;hCH2T1YW~J+_u$-sp&Be;64103h(JZ zfI`Q)`C_hBBADNzqW-F?lv?GzDWfKV$v*X;h}Xx9S=Pz*0dYhB8i<=AS^HHf_75fp z!kR7hJR%wnM`X#>`{aQnV8fDL{=8wy>NQs`Ga0ks5&f2|^lPer<{NQi4>xB=IOT@fS+|RyCqZ zQqSLEXp#Luq01wt9eE09C@DzIK%G=0oh}f#Y`aV%@v;^U=WxEPd_!4|Sx!?b{6R@I z85jGDk?F;1KnXB12Wh4bW5Idgz{y?R<~7v@v>h9NM$$*GXL21tYBH+{<>4#(1T-T5 zxNpJygkE5SBxm>W5PDtl7n{RJqbT_V^@);6t(pbj@`h#aUW|?(S{G}G*|DAp?p2jn zn&0VA=_sCYuc>LsQA^XeMvFTbX~A#}cvTrP5uvOX(n1E;Fgip9BuKM0H-#$#$VN#t7so!8TLT$TN)lvc%M$6L3gg?rkvh#~ zc62WifA%(sVF?T*k&z$HC*5+Jq!63|U1cV(wsb&DNhpazXeBSoG zGl2;#?{p4jkQ4;?Bwyu-yB#jP zAc|koJnh_Yhu1rcI>8aZSmE}XZGlnc$2}V&?AvUu7jP|$M7Ki|XrQFN6Z?+GIPg$A z{s`^1ZS~H~OmCWK^O9l1qXa(GS3bEXxgQhKD7Gcv)jhi>-THcI1WedDR8sKXV=!*4 zfiz6XqdmDNy8!oO=7v-UjagfnF0vs(szVvdt&D$uw@`=GCV2EJ(TS-`3Vdq+b76&) zzYr$4K=rw>g2Q^VTF zIsCevbHNCFm!Q{8KUFNXDFK}|()n_|4XU1`Q+P;CDmKFXB;tQTM#z~uHa4!Ho z;ugik&UNCQo*0AWh-I6T(s{c~86(IG5!PnMhYa{9nU#vXV?GOHEC|;JRg!uO4Xjyf z2-$fF^(Vui$Am(_ZGH|vfq6z_zBMA{prp%clJy6Vdmk%^S2jiIK4!d8ZM+hgAuCG? zhZhK}R`8xzD~^b_Y+)~NWb-rn*s}Y+N}_+0=tzvpHsl> z4D})$q9UoT4hr=99(COmI?<(k@ES<>Cy9H6#*i030UlZycr??~|S)`3wg2?I)0C$_iT!n#i25=Ri#*G8y&Ysiv~GeHV6Z>OgGf zeLPM;eia3ZShi7WYsD2psckkAYo03W4^=auJTcN?<+lQ30EvV`S=hr&n&(KlIP8nC zuqmis9Rm*hT6AR&<0IIjOrl|OLkC(jhq_p0bMY_S<5}C%`(*2*X)nSh>(0ondj zPo)y*spw|eVI3K#y3LrH_ZZ43r0dDvdKo}ZB~+{9MO=4v)V2vbyXCQQiHP;J@|!wlz)wNuTGK1O z5Lws-#|}h2^tWEEzMlgX*V~Z2p^I{@K~2@M!qq4`L8KK0A$nwE#UNoPc?EY;nqCGn z=!5WzW+808OqGfkRt7$v4ZT?kN+e9Kzj`Xeog`7edMY}y@vHD?BtZVh@_urK7Y{KL z!KK|hiEJY%x(Dc~U_bR#3PPgTo_Z=hE>J#55Z1Bt*$|q*bSay{*5_qRSd`^}1bd-` zFqJKd#^SKW_3=uGF9*hsH#Am_8~ceO89hY3Kf={{5oOejEkjH{<4Rg|P7zb{G$6?2 zLxASN|LOCyZQRdUfZmzQ5uAmzY>G}bP^*BN-05|{K}`QEgvw?Z>bDb(m6q0-UzPKi zehg#Qaf)Zehp-D#lDe@FgN9n>f=@+oSTn_LSKlDx$;4;;D53cj0mc@{$R%Bv7{;W# z3kQp9<&=_9RG?Yk;)g`-;6@KcOV5LfN+Xm*tHcnh_VGfO*74jk8PV04^HctWGy}{w zPOE#266r3r?#0SQ7LBiDtqrGWSbjs_*f_YaN11Wpk3k8tR}2K-o61Z4XVUy8q*)X& zqiuPDj$1qWOFK|X!c)^A@|Fjcey-C;%(+#ZEf(efKpB55|v79oG#rtLJq?VB#M^| zcELev9L`8<8&6N=VOsIwNr-M)j!g~q6NC1XW4Z}yK`#H!{rSdx8+y!kSi{q=--0A2 zNNJHVpgXxj@o&r)Fz^>>4HtwonBeCadp^FD%a)im@ZO0|<*pyyxGRU}tx<`@e-;-w>H45`s=rK;wbxCVMMWzl;LR<`affJ?adQv4Z_v50nVg(I7 znlz94)Pe`0>`0P-g_c4ueDQ%RF#~N-Z3QZzkaj!5S#}c+l|mMdLhPV88xk#=v3BAy zny3p?w91S-;7a+Wh(v1;gYe@fYMkHs-rz$sM`mLdM|K zE9}!UN?kk-C59eN@2SgB-?$(Q5z2hg(5TR+j{#F1y=Fn9v^6xI&J%kMj>c*eH|I*Y z_!cdNWeGEcoHpmeH}(9=3NyH2=#wn_!cnRo=Mn2`->YqA)I`|Q@0S$=Dip*UuVcEB zEn7xMEvO3XxAF5|U0e0w#wNX|nxBgBZq31jApD7cQhQ3Fuk56BUwbovo4F&bD=J@G zT-U$tei6CvEs~J$&wQ^FYw1Lj%*DJEo-GbvveJd|F6FWO~Z@Aqz0Feeu8nGJ!()m!(~}xB4UyfW5B(d^I%^tn(gCMqMkUKhvm3;Bu4>dW>bXr|me2+vQm!xkSCr~4~Q-`obzLrfeN1F8G(G0ff z6Z+vG**{Fyxnyr4MhJI)f6Yqj5M!+Gd9dCYc%Jn_r>2bIu6@0as07#TVf)PgB;;fF z3!T%`IJL_T(+D5c{+k#@e=I;f(L~ew{Zj2*YTCW-i*jJ&j9>PlU3w zD${Ybjx8G4PqY+?Fbh--J0BptC)K%|<-FD3GTy0oz`C_EMHZD6(=-a_W;ie0XmndE zc}+=9ua@#VvPX7_eqsb;+J!tAjQ zcCc>s2-~3EQI}*CNkOi;-F7bF`DZ*f9dq$XKZOU6$)%blCzB5kEjD+h$xs!O z59{4324$KxWsUDzT3K>zJpL%AyYVm$({Y+P0y=s1Q?q+TR@S9XDZ{Q#h87P0i(wQ! z*}oA+(X_FrY}E#R0qNej>KiakE4@2^{rIqVdPK3jNq`x3OU$(JcC9;l$ZET= zbJ}NokpYR}Vt!gz!N^L>=_A|K;Offa{#o;x55G(c=W&{4ljHEQjNZp($LNV(LJGLc zpFjlG>he=>?6GlwKV^vRXVlA%riHHTt=d{>pP5r5)y5`=Kx@CecQVOR z@)ZhK=8~copFex5TJaY9*9Df0=!gLrsgms2rUCWy=)U|9caRA!&>3dLWNe*s;#ckWCmt&i*+T)PWjZqA&iM+IB|{+OJ$ zB>_>Zx@nnds_Zjbd`f3 z<||W1JEaHj6{4)S@IC?RLm~-M^rmvm~%rG z&g;DV%h61V{}e@0{Y@05zPM*j3$B6CUs>?%KlRRmw@@q$ag(!D5z4{liGd;k{`=@C z>TJk~CnD(s9q(>>NRFCuz;kAR@!}17dIlQa=WHJ6@-GS?zDlli3-+^=`N&k^FnG=S zpnTHxPV~Cp%Pf5gVA%PT^=YqG1>?{@xWK|EYvr^Nw4O{YFruaUvNNAjG+SgMQ4> zl$THDQ;pAMECX% zt!mB|1czt$1M!h6?xq&`0s)yRp+y#8{1h#n(pJumDP{p1rET8_RJy$ibwdoazJueE zDH9nWNTOKc2<@G#GiFY2BcrLEu8d619}OqBrG`i+Ws8~#A1#;~@BzVL=uSA=cIi+m zlVE?#{SwTw#Vup|Pyyhe4D7-Zk&;E~$7+mKeS{5ygQ1za>x$)6CRayCflzc2-Wz13 zR}#T-M1E@}$yU%_6OIVV)t3ltj zKvfK!?IF=%Q@1V$POM4a=}l^q2)@u_)q`Rg13R>!r#C#XdpZiB=)9mxBzGVNc2CX# z@Jmt=kM|9Bjf=exuA+y566CeRmmn(Kk|feSq0h`Hxzwn0Xy7 z+>v7^cco7r!-nDU?*<1TUcJ`)kuHG4gog7bdlQhX41f~&fxi4G1BagTO|(|}#V#`^ zeL<&gI++8R?;J6ka~=HX(vjP$TE@-RG1~O@Cq{Y|6H!ktCBB620c-|4MBCIN1Ga{h zLDsAin~7706~9qh;dtCEMj_lQ4a(&^oFRn|?jLHd4hILD8hawj&{(M#XG49zRPwCu zZX&sK0bk*CTX=!roukM^*C-U|d)|FQJZ6Ej>>84g?NR5%>7Tg$u~_}~gv41^aY1Fa zXdfN~ef5;lgt*`U42GTPYE0v~M^&w12K1=th6ISgy$79WP|mU_SVRY}Gjg6ZD@_oj z$KFt|K$=8)tzMQS@>x7UyP9DN&65O7uzRbai(0ED0w%2R+)4?B(!dNnbR*PgRRChB zfUWg76T5;aepY@(`Y`S*IJrRN*B7iJ+otFZIT|}gl(s>xOA*`paU%{od#h-%ps*Fp z18ukl)FLW4cHox43aXLk6!5L60=^YTCAAMM3PEqv=S(pY8LSP7DKl*yl0@eKE0LnVtSF^0?C9xtW>lL&kv4dworUTx^gD7&@0qRsOKi(D5& zc^E=mlBjWE79J$pJH_MM_vkZHHtkp}Y^*ijjdgS)7Tn|l*>Emk0A&ZFV?harkF{kZ zvA3@fqb=zSiHJ1?Z}6?t0g2t9wV$zCU81ho{Vg*d=>u)4Lp#eC#*uZ{)D2T~L50aZ zN3^acB_FZJ#;HH>t~~v#oVLQ{uNHq#pzvD;d_dhixI{J*2s9w$ddbOvUn_f~u3UAX z9J+eMG9lflfhc&a{Ksu$+83(|4&EGa0%1nM{ywYtat>9T# zcsWL_H#7d*wI|6w-2eTxC(Bo>idJ!Ci~^G)vB4Q2@@|p8A+Lx7{Tc;I8x-pt?hL@l zv!)$@ydIF#mk731Ho%pb0yCsgFup#fYg#?O$~uwRf@nDS4M&QV=r@C?}_ zD{aah#8ZBf5OC8f5v0dGAlp3N5DA0=48gQ`!*E9V=FNcplr$Hj@yULA!|7r8Fslud zNOV^f0NY|D08V>Nqn$KN0*8s?Xq=cEo#9o?jLueNt3}M=t?nfZF;GyB085Q8Rm(yQ z?&N~3O1J4L0_mIjCMzOC5%FV;^I?;*I(*VTicyUuZsS@u9yg`36EF8kG9u z1m*Pxb-8yKkk$--T4B&9&79z1^j!hn&(~_h#_(UC>}PC?QbzVFSISWk6nZa*>`HM2 zu_lcrAU8@WeC?Y%wu!6)q(_G*W)m?Ip{W*mRA7p!XJvs#qB4N~R3(1g_zKJq28D9r zjSidh3vnMxVcoJ76IhqE>~hZ)wH^-n^~AkQqcC(ZxIDYm_H=MBtxa|+ucsN*F6_bz zgmD&W5_8lL_45o$_16rFgg6|sVFj2$rOGrZ2f+)L5QBf>r3ofwUw}7eM!4EGqOy2% z#6~TV_X5b)pzn!zj~$5#BH>e!7TXYDi{6Kzuf-Jv_bTpnbXqca!(p8t(k3PS z(x09|S`RDiY-WZb!}Tw{kpOu$zw3GaDqQQ$rb{s&g!s6zS>t~2a+UxhN$Bucfr(+L zT7yuB*u0J@WnqD8iA{#jz(Q&WXb60SZ&$E9)!+pDx=LCzCcF+Wk*SZaMz|jJ`51gh zeGdcSCYoeJ@Y4)x=V=C|CO&!MN1y+51Z0)a@?8IxNU^^!q?g5}$b#^~l=yt?jdD9F zo*c|!BwN`k|dq?(Aq1J6w*JY*|%2b&j-!jQ0EvX`FZn&$R z4uMWnhO$dg>flJdI@qq83L(LC@T@C>0mBam2mM2B86l6gV}=Co)MzGYP?y3^n$E`j zR@&a}EA>!fd$S6@1)Su!Vze(NJMl#nU8>9Rg3)l4X<2>VyU8foL?}wmrI>$b4~TqM z1zVo|Q@?H>YbXgQKEY90SVi*=ny%q#dVGl6jx0Y@k)Ec&Er9Rr4ykCyFLhI>!YcY9 z_rkW3{XFqhq~B&v(H>{+&Va)L62jwd~F)On%8*;XxRACwQTp*Ke*Y z58z<$+seOAUY<;}bCGm4(JUBIA|KflZTo-F+Fin3Hcc{WR}7qgpdBm|YedZHBYZy{ ztbpmI$44z80LL7ZC7MH4+F^j&BkM&tz^_`|!)hV|S0)~N%|xx_7%5)euTEIPuD3yT z+NrR^0Cj8HIat|Ga`Zv6f~)AXZwS){&f~ZruG+m{>7n}r(&cH2sZ+6@4Sk_ktrOd~ z8wl2WeQ6bqPsif12x4SsrGY^Ph?ZuX6dOMrP*Yi*6cG~9Qb{W*iR5UdQlmq6L|=WI z%R<6CAk4Z8&^X;*c!<$aG=_o4UAYjG4}nnfCgR<G$LZV}MH99XFVO0)+*O9A_!J3Wl`zc%Eu!xFP z*FRzf4AXyEbZJKaU395D$d*kerOGsfqdUC&xz6u#bD}rgG=6AZGaba|8vfq=ENORt zPT&5_DJ6=#uQP>JdMWDIOz4kj;YO}ZtRoR1i)@}8@gJ8a&sF<$eOFLuko`Pf&N-A5 z*XS0+pQNZMvlD-jv(awpBAz=wJ2zw7_c*Vm_49EUr}40Cd0*Dap}2BVV}3#Rh%4pX z+R5R6wdw*!{%@oU7DMbhb5-R+iCGDFL+aNDXR)mhTg!Sn5BD4MTF9p-rH4oCH;+M1 zLmv!u8VS_r098!!W2u$Xlxp&RBe2aneP~^>`zp#ITG}u_&!A`B?0jud**rPBaJVK{ zb8qA@f4z5nzT$Wp(iw7pQLToiF+ZiFhxlO6;e2`Hess4Y7j1)dM}fMoQcvA;%Lv25c@W#-`lTP*xvq_A&p3R#czN_v{aK6 zIbwgi-W3Yw<;+~ZjK(1auY@|?M1YKfSG@8|hQWS&bJb8)y{ds&QpD@6jW2q9+jKo= zoe0Ju7p$T4HYbK)Bs9AAl@(#H6$SSW&Fh#FyJy9lA|?XF`BamHAF%2;PnkUw9cXmn zPisaDLxeBtTwk(TkZ21}Xk`!fj`W-rs4Ta{oWA7R%`0jInl2ZGf7f)`s(hC-H2B4I zqT{LQ;z+5%AVo(#%V6~K;&;=<6%F#cugt61IdAKt5}@hg^3-%$qggkC&1bk6(hL{J zJR(y)Av;&%(@!3T%fGBjW<7Ohl_a_AQ7dL~P4gT?NRVAYUn(%uugLKS$(J31t$g#> zZ~=kgsLUYY)#~R`LUp)5sxCJmf2z7z|F!DE$@#15f;jjqTv%UO>Uyra*irwioOM*k zZ!7+rZ~SK>_1y91HwOOzV;lpH&)nzS zwjt#4a$RF}fdNUHD`DIRR)T{@$hwXBeTk#2HF2&LI_gR5YFaU;&KUEL znU)L&lCW$da7v4uo$3*F<1Y&>_(dzh=MNP~l0R4wp@zucdV_#ywx02a%LDtZY8=I~ zju*`8s{IvXSv?}d@w-+5*hDA?RlG1^Q0Q??g=3@2w%_fR2Pfa(?G|;I-|d#Tj-?(G zeGQZriCVkCc)~ci*hPu8-yN6733jDAeF;-#R4cEd4)xQ{KsxHfb2Kc@ZxKP#EGU@u zIdHUCbeoAECuzPLwt;AupHAhBXM+dBvkpqVTl7E4YeEo|bSOOvPDQn-Y(YV&`XMPI z`$VGP$4@4&{w`uG=jAz53vmE=Ro1yJReFc8oxZS?$)WLm{U4%*9}xFvR+=U6&(lLs zLS8B@OQ4zA^s=$Z@WvE>Uul6z`PWJdj~|abd*7f}HJxe&`8eHszb+p%8c;GJ6!xKH z31|c5Z0VE%OcJ6LCw~R}lG=I{7-pu=Mt9aY81ZP1BA`$)&q>qZ9?@<}*D#I}J>>heaFXcrHUKu?e7#K{~Xso-yM0 z_gs(abSsO}q5y}}t_J?~!uPx59jSvA3W7+IY(^g8lv|YZz+|5(B2@MXCS+0apndyW zW5ol;H4zT1h@b#V&`J|mHI+_iAvvbV?~CEE+(S*Lx)j=AI8n?1zM@`;eJXWdb|8pl zWV!ZVL#=m*^@6}q3$yj3lDkqc0~#9^#HmxF{sm_g+>EqGRAE@X@*pN?Zh^9&Becdg z{Z+?!5t~rb?DZnqKFa>*%j5v>DlQl>4DC}aSsy+g+&Vebs0n)o8`6o=P|DuzShDW% z&IE(>os>;rtHpWC?9g<>ZBUF zM%pA3P8d6AD~C4oOKnTS)CyUg+F|E5uUvOj3SJJcQCEyU>T8z_MSwVe_F{@mWYt~A zTjkN{ws2}sHWyu5F522@gU{0lVc-xo2zql`Bj0k%o|bobb7*z8l$`AD8ui*BXU~{% z#H3rG)YiRYa`4r8*vpR=(L0o^Gcu`&F1cLo57Q5LtELz~!qQ_i;tT(wsA9xj9EUga z!dTfd7&6qDgG2!sD+M)J4}i_pvStjhxoV~P3j#LR6Ts%m2iRPbehNtq3ZRL*!HTa! zBBG74uyRV>%7pw+A_nwn-59D`tW6etIIsSt38yv)n28JjkllweL7)Ng2?3HpVf6lt zX9&%sLh4;cE(?)>swl3TkaTcgUy{Z9_COuN+cGE-T4Xf4hGN>r)FNRf`6E{NVeD^J zC>RP;R!7x!HFnwacs3~I0A^)b2GLj>U#O6OoD8i^{2L*LSEImHdNGhOz!cB!t+Hbw zjLkE@!=e1?WXF&xjeyPwPh%R8M;4=VeE5P{8R6UB>35IA`;A#4JO?lqGk{s4s*gK`128MtT`8eE1Xf)>@dg%EF?L$FZAP5p4;s2V0j4Yl z*}dpI{i8Gixh2zkRAKIgP*G2=<;0u9IQ;HqZ`|XQ$P?5y>gNXi&;lWwsyo%(ne=%3=2hy3cUE-Z;vewPKP5uLxI8*EenbR+0L?tc zky1?r4zr(OQ};$95aG9M^=L}c>EM-#$SP=xv+hwCGytb5k!E}z8A8h$(L~8p>W2)4 zI4*{W8DVeG2cAo>GK~b*{0s>2$}KPSj82(1F~{~z*xTlt{gE01;Nh-(NLGKbR^Dhi zNY%vrVXa&NtQ85Y7D|nfJak5w5{YnuP|(>pb{wdp&}>xB5$If4PEC^tm0zG0Pbv=k zBw=}RjYWDXDh7F~RP>yHIH1hJGr>$KAk;?yg8AVC1ayIM!fd}?TXh9X82Aicuw283 zraA-y=BfU0VSn&gQ-PRHO=iIBU18Ar*}lUMw}QMaWO`^I5PU(rPC4BG7GZ2cQ~zuM zVv6vvpKVPTyt4fcYHO2jn)*E6o}dN$4LI1sYI`id3pzI7bJfs+oNWNxB$QMj$o_#` zoK=yCBpAc;%jYWk+vggj-U`MeVVD<;t!QSaPqT({&_M}d=O4%>cih2k{B2vLZYK(s)4@_y21Ai`~PSLL-z;~YQ z8{z0n(1f-9D4qaHAq|u;&GD{aXXFUkg=PskUL8t%4q-F^N#)v&%|en)bd(+Fl2MPk zs|#1>ex7BDDH+^j@$wf8g2Ax)T!GgVnkSGz%&2Zx6U1Xbq0WCw`<|f4UdCCWx(5yv za*A_Qf6TwF+#x-IpBDH?TtL{^1yn1<$>8>zV471w%952XxYNHT^om941=BeN>2w*T z&@Jf-CYp@_ZOz0KLBl@|X2FGeaI8*X|9lN>!KOmj{0akoVhG(DP>}l|T2B3KMK(OF`xrd*sx1 zhuTa3`MgQ>bwJ)8%hx66?h}P(C@-G1G{ zVuFSuMG40H!Dl6-%aOqqgfTS&m2|y~i5`29YuX#h(GC%0I^BbWi#|@lOnX;@KlyJ8 z8454@UNVLwgL{I%GKK@fKN&;Y-(?I3*?(mW9siUuaH;gTxQwHrDY=XqSK2Wn6c3cz zhKjJ_`w1KtkahR*AjlsFF>BaOG&nR76W)F@3=qjM#=XVinp1F$i{0SDWd-95Bb%^z z4}$~ZGxiM~<82KAZ|yy<0klli8J&==q5?mZU!tC zr!1VQKb&cp9sSrvK$a%!%w6`h{rHmjx^1)ep$-F7W8?uxGVm1tZ6TJXv@9b)?W4ym zy>g5O^D@k}nui39zbaxm8eghxXD-UL;sTvLxT$T+JDJ>40Q(iYthBV2u? zRV}PeXw99D;;Cx%*Fjeod}Yoh5|}e^pJkIy>?I;>oWe_I3oP=rrA|X7jy36XmjA4~ zrr#|oQcHEm^ipq8xF_7beoaI={^OvIvM%N0AwHS|{WZkFwR5C0$CS+gMD)efcBLBP zW`0?-A>GL;!F==~-C20@Ze4Yw&4+5E`6Ggu&P(OjtvnyVoxImEuH+1ADKQuPC9M!qbuO=Cma$%6flptDeoGUhA60){vNapAxszsv z-M_SdW1;|;uB3b$Maa&RVeS&kLu0v9k;uOHDq6{^c<2+=O0tMU<4?=8rpD=}H(U^V z3P(?cvSqK?*;_Ad*e^Ho@fvhbY&IioSLaUS*&FZL-oD9H?^ZC6)_lUMeON1+*E240 z35%euj#syl=5GJsMWR`@7)L=L{7KknYQVKT@p9zUzvR|gP`i;Zu39{t;Gc`BKQlA(YD;PXUy}O z-tZ23Sqv9ou}0-;_ftqs7H1=x@V?~x0{u4z>^`omC`fP(iF^vQD-Osr>%5?j((dG^735vC{ zvR>*1df7QB*^jNZXN$zlWPODW0VSUYCpRZXO5|kVx`Yfeg}X4wK3lUvj&3L)Rmi+! z*VzQ$fuQ3~NsKzVZ*^|#={qJ3Jh}CKwyy~+7(rEMX11l{H7*@Ec;_pub0!Sl^>`ZX z6UXp$nDNN;^B-1Mp`0FLH|~q?g%&TNy1V)$>8jx+&Z zX=zPeee<$2_ra&5qa(~hM{G={&T~_oh-8T6L^VAmZ2Ty^%uZqZu4m+}6YSRet$`g{ zTCvO%f-J6;M4FT_RiEJJ@-<(+RR9z8nghTDJv<~lles=1KHt}>Zq`IRX_av-IN>c( zY*S;Pch3A5MVIZwqxs9WiKmq#vqxWRM{CD_D!R}w{6o>@Zu{n9p|}HBN9H)+R@QqVgjEe23XSn? z^8==qChgv{Mb<>Sy)H(M_9}l9`oL`GxM}?K;{GAnjLPYq2?g9gSMn3$DFH>_ypu+= z>3390bDXI;q<1s&SeWBz&6g@!R3FJ4O0r5z&9P*gt%x;BN($aEnue6-U=g=Ok)|?A zlGETa8NJ>AlSNs)WKjyFiJAd6%;nkZ#=o*CwC=9R04e>-4vHSc8La%dob^ zA$Dd14T2`CuA0Uu9VFg?VB7b`yWmCJtB9(zHo-N>8;DCDfh?x2zj)6^GdbqJ54{WjW;VDWYRJN`~fbJ4I(1Y}!d%(%H++XNH;_mPV06l1xOvsU^EIvm^kY2%n zzd+(s;-9)p&s#1*yWe#eUX3t$mrQqNDbyUeF?qO;;)?qVKcrdUNo39G7taxr@&)t9 zCIF)`Qz)XJ2}M+=ah>(A|T=23pT#O zRp2mzs6ns%j;0Q1irX|A+V17R0I%`tJryH*93i>mS8Nl}`Q|?qp)|f4HX~&WA{1B* z)o4TaBH&SUN;QxLmQY;nX~u2bd?cH z;D3=&z4|u^)sJewGmH)SYTxNUqbv1gZF2bZA%G@CrW_{`@{1;f)KSEr%9Kbe%+It3 zmiNZm(vcX&P+z+LVu6W@g8Vm4h`#iNCgg|`yy2!f7rOhW2~$e5(a8 z7NR!e9xCr&GplZN=L&wkcr&=$WHVw7X{VP)Oxu6fh#@E%A0dBf#C+e6`MXBUX#}0{ zt$Rm}gVf(TF@=t5FP#`%OXAJqM1y)UH)7twm^wyc1yFXKt7;bv%QA@qovbvS|Sxu+G^5XCjBnE{VW<0T4MgSkdUoBK_g~S+|H3sTVzv zrX(b%YmD)-AtOPQB&(6T_vnir$VStb`UiG;AQ68%B%lYn?u<9M#~8=S#ol^D(){<$ zm^mz&7e=t#uh1$-_OHEIV3YGQa>oF9i z#JpJP=9Og~cr3<%9kQJZd8_-WKfzV*e;HhpOS^~xKL`z6<5fgv%v^yq5=PRsA%riO@Pvow zeWvVGn(i@vlQKGU!@}eN{uWspW-Z^Ng0sUqhOM!zP1pEq*%yhl5q-Ct)A0t{-h{~d z=Sl#lq|H038<)Vt-;`j*%E@+1fD-(FLrKQ4Y*AFffqV^ZVT$?sg<`kXA()EBP%qtpA} zvLKfm8f2)$$32wT_Z~)=>V)YD;-~y2Vh4MxP^)gX6i= z{(|+P4(O&55WxxEOVvT^V8L-*s5Df#uowfRuQpKGf`&ll+xx`rX$3rycnK}KJ zU#MWT->Bdg0WK~n=ZFU*g3y!TVZXLF04g|UsjC}61*@vH*H(bkhbm$~Q(Xz|7g`ns zqU3*gK?N86Mg=1Ss9+EP6>PQ^i~*p6CI6s;8}?%%mT^`y#9}~xg71pN26t-s)3KK) z`;i80Cg{7W_<^hN?br_SrNaxL2W4F`wI?H(`H}kuTTW^SuL%ZLNdI(VVf&);IX48$ zh898$h1M>NUxPh~SfD^?&jnxwGaz@A6c7Mm|5&{F#Tk>>oObwJ>6m|q^L2;cbc@$& zV?HR9j0<^Z;Z9f1y0c1NLP ztcle7_EIn%g8`l*K?0*?jMN)r7UkWJ@vflCn(PQ7+#QSuIKYK$xQOQSg{~rzhoh#- zAdu0K++ncLup<$dKc8y6<{j^Ph&H+Emop#`nnQjd{~(-z2OWaKqyNqsp0l&Vu8A8L zN<9vagvq6Z4d|U5!wQ~ke&Y9n1>dE{Gp5QqRc;{2l?;NJdPf+Qh88~V_}hg{h!tD* z%Z0q}(14(qjY13-oL*cCb+TrLV%!IhwMa)Sm%#?OkOy8|$Vxg1WiKvd_7PSbCnCGj zMGEq<2rwj)cmDVp*;WZgN}|;oB6yPi=>7XHx`Uz6dSqQy{MZ28c&R2lnZ};DkKL%P z(o`h2E5tKL8W09$&>2VVH3N&WO9Rf;z3kWd(3uQf;12DRIru5W{CjcP1_WzYoik62 zB7vZB4b5q*4`-5U;y-}q41%%B^uQ&(lYHueBeTB!T5OCuDvfcfhe6YR&9z}pDfFh* z813MhRDrIC0O#z@R$c~)gxXm(^tabK#L^AkHZdKoPRs?AP%zK>QpgLlF@FJqF2DQ& z1PMM#aApeM=&fz4t-+`XjLLycoop3T8u?;>z1y?G3HBK!zi4^?MS&-MKJ_M6TN|Fk z`qI_H_P%3~a#?!3GBxsNBa^l{Q??|+Mtj5j={!;vgVvgMkMAn&gP1HQsq3%SRMG`Umof6S!%tez8#H zF59@}jbi5OiTD8RVz6z=kJ14Y z_T*4d%>vCRyg*UN7qJgA0gR^iYvg^^s8`VgPF-dd8;FhHvh7M|7wab;iEuG9qG@igR2&YK zRjj55)Z)joIL(uWs&WTD@rd|v!aa&@S+!oeBsyMN^C}CZ>+JIhX&gw24-QLF-l+$E zfh4CTOPp=o4bwyywrqd3{qJvoJ#JU=+*K>x3f?XqTX|_Dxs78sZSgxL-C(&0l3`bE zR|2f~xi3eQN*tZ==f(Fkp3gqx4seY4dFv_%4q^DrEwn=8rC1Fn#WNY45{kl@DF50+ z8SpxGlUkP6n?;IGZ#_s@6d;tn=+r_x5D6>yI>~%19U$@ydtB6w;oAaCTz*y(a4q~g z{i7A)<5{?dOXL1r{=?L1SH>Il*@^%C;g7GSbwDe-!$1Q+Q8#vM=B56;_bfL+Sl}%9GE!4lAwI zPj~*akAEgEGk16M5su#2n5T}HzA{zI+{apXTEDO>gLVIaU769dYCUZ7y8Wjz3VSL} zo%Pb?^eSU$pljvm^$7A4+wFFnZ}r&(S0{(}rT3(a;%i@mjFY{SH$BhBn%Py)uCvUp zTCblu-h3nMeQvxtc=S1OyMDNj_YReb^W5YMEmJ>ROfL`dL@ztMeMqa2ymx-RI2Ua% zWia?2ngcC?*uyPssXLQ@2E@uDD?SkPW$7~di2bs3`FIBe0Q-c*6koQ))2kQdJYv*e zmm;UkO~=qANu_Lbq3x0oeHvf`oj{QCr;DZ=>QB>-*zkN`BTALaGVXdT)k&hRga zTR4k0D}3>yvzD&Zd_4n|XezzCSy0^;OKVu2ezbdOkt%8g@nRno6Fkz^Qs4PDb z2(jm;%_p33nCSaCP8NQOuU9*=>kY=hTFB+E=2n`EIRJ$QmOt-~Jrh&XRn2ICZreZm z<;UA)gDqyUj#9Z5S;W6pQegkClJfL-l@#yIUwfCmzTcG;$2G#<-<1^U(_fX8_2Pf1 zqzq;JT_xp1O`3EDP)RxVR)7jijtuaq*EnrHki=gQR!d4*Y9QM-zAU^Qz^ z{hR5+NB?5VHlL6@i^lv6&d-4UH&cG2Z&9F$6T$8>Bu~BzRKe`pQ@13DntZ!tIPVuU z_@$DfCvi|V_V;K1x%scNpE+h9IQ#v2Pny5m;{{`GeQW_)hWgX4oLl1$G(eei3}E${cL1z&Q9x~tCn{Z*z`_pO24Et zUFs0gd>oasE1>v^RNCAUOqEEuwwUNkM?Ib4Nq}%}|+E zLh=sBit83OeQBbATmC0a6kPnHqTfxFlZbz9qI4AgM-#E~94j}<4>?@m} z_*WNcR~eC%=$&1I0RyS4RIo~3iWCNGcpNO zn(kLH1r=gI%CNk2FKrwKtN{K^Nt-(TAZLWdc$+-)uG(#jSS%s7knb&@?*CPKEOiJaLk}B z(FN(mH%}hw5`_({_m-axRBTYX3QiGV_&OkOQH;dFz)?pw8pC!&!jU_YD9itH0CD$_ zn!%)kX9vW_u4aGzaL$d3q&}kpW#6WmcPfz_JDcQB8p6#LOJzrNP6y+lPAdwu6WI@E z*<^8;I%^?*d`Z)Ax6@Z^&n9oeL?!uK1%<4MD9?XZ-#gI3A!#4uwx1Je1wI|r-}-b_ zoTxE8(h}vgtRlct2h;(%fC@?eFceVzNJ0~f8t;Io z22fgwc45v2XuuskO$yt@+{P761iB497D)mhS_7tGp~(m;2GLL5ep~_qUE(vclH&UY zJAeX)@5ms45qAtk>IrW4b4^%BFqBT}_MVZMeyOwwBK@K&%ts>CRTTef3p$|y$Ap4{!XOnXE+Pfc9LmYv4TF!>^=LI}IpDzu$HAbb-nVV865t4Fhfd-<6Dk*Y=yf!2R~K9j`uxFii6p~GJppQv4IK&Y^1+;a zP1G!BgGNPT!Fl1ZdZq%H0xTocH<;W6r(NI4AM`b}Y29s1-giRjZA)$@$#naFlmV+KE36H+rm#Q z2m!~Tq=vZMIZiYXgH88cLok!moQ~)wkr`>~`{xEKjrYNRU=|ssOuPK6s`WCG*_goh z0}n6`PJub9{?8wbY9iPYz$oLUkD8K@kz2&W-upAW0Etb}8CBK=V=Vjp^hP5{!V#|p zQxU+QxHJavCOxCz(Dpm++9n0~#F2S)!k{+;3WYeBgupD941>QHlo&d=#?y(W@^mmQ zL}r7DHoqO*rm&C<#+y9$@=tff@TfN<4HB&8Ku2rqbK%y14BNm`a@Q?IZXb8Toj-0^ zzowE8gvqPTkysJ)W!z;Jcc7#s@jz=go8{Y%VcU8KDRC8v@&L#irdeBHEgn$(~TiJ)gpSs%=gcI6ijWc-i1nI5^^%aG+h-1wq7D~_XXfv9&di&!jq|Yg5_1H!Mvf;Yoe;WxG!vk%TzYa58j_(BP}4 zW}PBdep#*gC0*?x*G0__jZC4CE;V``8LOg@rO4W-1{cRBR7z$|gqf>C=icllqd4qC4xeG-eqi?u8)ID4IZ_1 z7w7olEg!|jY#$Eq=*`jM@(Ir0)mAoWl>S1`asqf}RVYrq;=7`5(XroMxWsgENLS1Y!0w2Z#-2dluGZ2*nrIz58u zeyC$2{4-QBSVQL3(9_gAoyrr{`x-xKjfC zW3h`oJr+vZiw=kFyI0nir9@7!c5^?RBt+aMSLB^N*^81@uUyHonpQ>4|m1zt6JI|Hq4kaBPla6lSU=(oVh~bJ9`N7%a$rwh2+`_zSbDp7Y^1W>p9Aul0$t zqnk-eewc;Kzfe}u-#rsp7H)G)&enErZl7?IyT*jRHBV|Hud)gHF>rlc-$|x^k)`jf zD1El0<^FI#dP7^tc0_b`c2U4{Co9Xb#fB|=d`$jiC22mqkZ>gRJ}<8Mzh_(A-MN@r z|7KhC@ki&lNv!I)UvAk|jTfzPNn?mTJj*}%oHgoIc(qhJY~GHXrT)|@c7(OwQoC8f zd%6aH5~~2p6JkgsqjI-$4!tX_bH8U$=cRgAeea(TV|MEawe1awvG2GnHCUprHY>m<{4fBUmUNY_dhxO=S}|I z;s5m?4u6DA>)hU%VBqj~(OMM8fK;$eq<<}fKUO+(UiW#CBZoC^;Dba({&edeQX0@(2Ah`8tn#TrQyggMpwuM2w*?Xcf%MA}&m=EVzKa8xjI9E zZv|+A$b!C%D3d37!=}4QwS;s(og>kPbD`-b-Pt&EzOo#J_a;f6dTod5%41%b-|c}q zgKpcg9y#}At0bBvFFO#Qe1qmQom>U>?LxI|kSCUHL#|{> zqW<1d^%q`dBz!}~5;Al0jq~IcBG&y+AZ9$py4EXSlV52*V|*E8pFtnT$=ub+$SPHD z9{2*6sG|0VZgCB21^si1)t#?%tsQvrCm`5V0~tkd`1Rrs_1&XWfr_Mt>g)Zxb^vdo zSTJo;XG;ez`~ebBELD=ttC}(CbF<%w!oTQt+zaphMt-8PsAEjN+?dTMgnqVA}m z!+_}9g0^B5zc}?i!?&WPnzYDZW=$BKwACnEJFwC9G;@AOFJj;0V8SxBf&dVjUeX|x zVEGW05Rus{axxmCGWDP6*PBc;6QB-%;Zn7?gP3-S+UAj5RRXPF;e$B^h#}jRjdexl^g}yY-FWZ{HOIcT#hM081i{)bHY1jfAS~Nm zvg3b6OZ_ZpwAo!#wc5@Q?FC4F69LKZ(p2J-v@!`!(N${jcI1LOOazsMuCB&kcngDH zc#9C0`KX*1yv2XQOEo)6A^Z^U&drGpNPfeUApyy+0$Lw~>lIjAzW&Z@N4&WeJCyzHUYzacBT5^k=2I{m(GP^a=7DkuGv*6=C^e3AadAhj_+gJz;09-bY2(yMd? zrO4o*g#l=aPJ#8&GV_^m5DIiC51#h;hcXhX63tH^15#Wq#&&&Y@dRaqKofc`;wiaA zO}2Yjvb*#_D-Taq2oZkVPZE>#Ui8s?;dw(HyXvnTJu}&k*miaYXRb+?l){TY2!fW^ zBW$__8lcmLO-BWP($S}k_NjS8zidrzsKp>JWcak{? zRP>+9M^0nEv!WBubzXQYrG?!D$GDs;d2NHG^Br+_mPj~0mpUg6;2_6!|N^RjJ$ zc-giDr7r@jk2)pnDg&iALX^Ph21#btsZs70)k3otIHUS{( ztGp%&0Lbc^D1df8L*+f8vKjRPWR;V}0D!C{@Bw%;5lU?W7v+zZSd<7qdTPOb%(FY5 zueMbL3edV)0%(S58~;vQba_wt7kae}3D}8U&gF!s?zsR%roq zP(*7-)Dc~-eU8BFXLky~9K@|O9*1>I12h9Dfo6a^yDG5&W}XuVU=GrQFkn|iq5{l8 zdu(?`>Z@KA-G|da(tQW5&}XT~ep3NhgeU*mBCPq#BCNY=pFprFUK<$);4`|LR3YYB zcXs0de1=j4ofaOlE@m2>(iVWvpb}HE+E4?gEmC6W_$~dww56J>aBUXAXG{*$??Df4 zXcjxNV&lKLp;62IaXVFKrvimSO>^<^A-aKh_K!vQDY)s6MK}mXeRL6QB%BHCmqqw< z08IHGi*Upl{v}zAHeeAB5#wT@AW5w7`(+W96U{RY?@G}T5<-nR*A_M|qp@&71TSvM zsOZ2p16VL?Ci@m`K>X0fCAubPB~^q@83+l{`liPpZ`KK$+_Vfuo}bc6O54~Gg&=*1+dUFKr{n%*6uR8 z$u0**Wq{7AH&#%_-puib&Wip*XJ!3GXQgn02k5LLq^eTyBa~>rOj~Rm5}Z{mXI;kxRBT2m{k9-;iK`5?`&mR3stHe5$OUJSscy2>648@2 zn=d-dY)(tX+>O)9bJxh8+>Sk=iRGIwf z4&MekmE_i}ZETn+2V~@r!8>g9L&P~`H^_TP`$NEUeiM zXj>6M_@DyWk1c1U5DdPpuCszeCOHX4%@NK_TJf`zd?ZSSS4}y>e=7YvcpP%KFW2zu!6n2nsmGD|2WJLh?6!%k`_FG)X^?n& zsO%dxZ}wlG8`b$deoZ=LD@s9#(~sL8e66G6b_Ye72v>u6xuR8)Hi6J#TViUuQMsIY z_$|d{zF@emiCl^_O+HV=tt zOwC7I#eI{wGnQV`D{y1Y0X-mFj|iKlv~wJFEb}w z7!JPe&17-L)!u=cBag(=j5i)xhfu@5H+N>-dw;p>aB#0(!_`LP8;CG)V;C@yS44L# zxK}#bs8)NDAYJgThTgKFAUM7KluL_i6=vxgHV1Ox=jBbLF8)}Nk z(%N8DIV;F0!qP>SyO$o0Upc(pTvy0Z`?g#xINP`(q`0?DGi(2Ipa4#R-)oo_&sk^r zaE-KXjaZLn&(;@V!s^WQB;!LE*Hgz^*?>9@BE&a^jQOW#3>#h_JL}GQ`*j%Y1&8~FtEnP2)p$c76pdcA&H_R-a6~9M)g0!zv zQEwf=APa~aM2EM;tH#ax9lrxQ;(K}C)|(~9UpnGou#?Tj`-=VZgt{x*bKAfNPpPNz z1K;K2*ucn0*0aRrGuQKzSRd;i>%$w5zA&9Hxbe0+4o zv*g*ZL~&y9erM0+y8o);`tmHYeeNl_H#zhOUpdKrVOlE-`N@ID?dSUX>iRA~yoe5< z)bd>Bs^2>}NnXl#I(v&hLdeH=<{0|eYH*=9{@jSKwXm?TeY4_C@XR+-czquj{}_29 zhy0GW@^GAwP$x2Wk4A6jl0vvNlA2n}_Hr)$3JHCJ?uKUcZ6|5Qdz0tR$kTPFk3)qm zkk%yK5F2qrQP{XX%egIAKJplM%&&=0_dL?89*{j^w72(=)7RsM)+wnNcM-f*Kh9*S zMmiEschjC{dyH5H>>MHN0L%-?`O5zHf;6-mTW8f$wnhPLOEsH4Zb_RbXP#eqQM|RR zL2tcRv2eE9^Vd|XA5egq!7S;6z0}o=IO$qij=Na72b3k(sFsvwvP)->%$xmkT91M< zR_7j%m>%6nXYY4|dDH{g12#gz(NwU8_MaACgv7|YR8v$) ze94i!(&n(+vf7A=bl{U@Y;B6~)fwf?gU>i-(4eC+Rc{H0e|A#!n-omAYU*O;fyhmy zJdhOoxMT$lUVAp7B%0~eF*;lNffYx0Z}IZ$7*40#g@0SO=2X424bx0{zvo~|7%Vzj zb=E|c?Lhs`5916N86Q0Wn7ZTc|4Xxf=n$rpj-b}<&}SSy2`KNERpK(Tjb{8aUU@#I~mJ!B%J%@kgkAn=-$tYBS+P=9^AwjLn0Qe*cN zW$zQ47u4v#4@O4~DMm)#q+=tW4(`&&r7tC&Kca}J5j@()5{HDFV4 z>%1wHW}i(*r=nh?Ph9Doq0r6_4z)T@to0g?9^m0K1;_r;i9&}J=v+hT)!}Eo*qiMC}z(i+@5aO z`XVIuM%{a(QSdR5o;A!<0-=PD2>oj}u4u5b3EY-XdKd^NtrD;8n4nLJQJ8$U@-7HA z`4ZSzFMK4lVgPi^bq=U|BHzc}9!IjI4TP8tNd*Elid48=+9r7yX=z|EuxRr~My$m4F|LZ)W)6YMZg1eIn=W^oJ;XgA z8(>_Jt`BVBxoiUzPL9Uarf*GSGWF7h?BTinCWx13O zrbj~n7#CKF`j?!6a4zW=A=0Su1xc1*U7r+TM_zAoX%YzMDbylr=&U%#n+clPl%Ggk zZCw!|*t=0{ay~wt8vWR+KcuDZn(mB$f1gOwT^dT=S@Wiog@+6K6?#(PyeJLH55EifNzmp{floQdU;zzJx+SNB3!Q>$Z%?;_{W;&EY<-cNgnjm}!=fcT}Of=4SysY=<(eSrEOvF43hA zQ#cQ`d9jkfN?-{li7sG=t=j!lS5ZBPJizWpCzR@^_cHph-o}&y8v#sLsfCw~z{0PM0MgPpoiwl!P=5EC;wP0{s!p;^MlLIn zz|1eWMO5Fw$8AFZZjtIW6POzh#0zhyRFZnkAtHn5@l1SS$s1@hkUIvb-Gv1CPB2$f%us(A#$_KUvXo1qJR_3hMEFP2oC z&s4~krU7c^MGcGfF9^*AJ}m4#ku;48$qWR9Gf<>HxENdfj6KVHRJ(UFD7RgSm(L-D}VUH}7Qw}++E-&kV1SnS1YHJ$5;UND^=~E28Qk;mA znO{m4D7LGe9)7AYCcg-E>wU7`fzigV2vp2&ZL}O-p8zGxnp0SDDxnUfs!2Q?uuEEz zyg_PjY7tFKjKtK+0{(uY{b3D|E!afN(%%b;X6E>rVGV~U z$LOy*|KMn6wsG*kkc$f}>NCt|Fd_dR-2W!Z|L6YyKllItx&Qy)y#Ea|rCL%AY2*-? zZ#$9+E579C{_H0lUYEr)`hXqSd5neYdWOpW)fmy;^?6GnBlrBg1OX~^l5}G6 zu*K%7Np6yFgEm*sYew`@D6@Mex%EP$P4t=-L$qdnZijv@Se_Y|tetE)`C0x_bb^Dk zm@U=1(l^7Ku1L!s%9;CQj6qNV>iUIup!~hzqf5ia9AowZX z(vNKKw(9t*w4n$89N!9uT2gQ;s`i8UEYx)Ws*C8IYT$%f~Gl8F)JwAbT!6}2Jci-{XI?(i$87reT0ahLc?jAh@iH;|w2&O&`Xf66vCE-mN7oxvlQ-xyyx z9#J(v+I|{;yW81JC#N@g1Ey$odAZZz{b|eg&TjNFGBdvTZb4cO4%x z4l!(YTy(vdJ9L|5Avq`j?&sy@k;&%5g`-#JnO6;R9M_pvCmwpQTX8aueBHg=f3ye~ zr+(8}y1ZRw><#2#WI$s02-NhisNAY+cRt0Z|6lCARac$snzf4t3+@sE1b4UK?iSqL zCAd2Qf(Hu{+}+*X-GaLZci%6Wb1td1s=nH_Ppa+q{Q=rIVvM^#yBlIg_YL>y7wOsXyK#R16nsakxr-inpCJKbe={-==y37 zAT@EWVB@djRejLcj$RcuS@vMm8gGfz_p=o@UJQN9Ya{P0#Y+zBNtS?g3zj~j`V7S_ zMyq!fByB4`3yB(w=`hMmC3+~UF=Gd0Gw#Cpies+Qr_Cwr9uuh|;twpYQes9Vha%ce z`{7bix$f~xSYy$T++LBhP?>ZkGz4vkOJG@C3Cv3p7|fZ{m$$G%yrr&(;cUo)yv!$c zN|6TPd#)Ca?o-FfCq~C(h129lyxzlk2u}X%tWoHvy7%N!_te72EYl>) zEim6*s8#|E*w*3Y(d?=FsO?R-lOn=*g+b#a_ffNhc~h&a45bPgNgFqe6umfbYdxOi z9c<<#Q6ueZ!m6;NCeHzakc;*1y6hlNm;|lNI8n?oukrEpJPsSea1o} zGn&nV_ie(~HIZOzwa-GU_;ohx>X(F3Du*RxmEv3s9~;?W)Z0eCGAf~~`Wa%Mv*08z z4wr&^Jz2h(&pJOizC{EJGGImqf3!&OBe($<-Bh42}Vd^ zs{>MS;NM6U3G-PX96NK3>o3sI0R9P*MqztUcCg_7uoD;SB$R75#e)-OKUmZY!*Xs|_@yGKayWpKkCCJuBe#QAnJs{W- zE1yBqCgK=1WVhk)b5$`rdH^3PIN(DK=`5wy^SwCysm5&VsHR$2ZrmZDeaN2WXYuB3 zdyQlo53@Q@%+%|Jv=00T4W_B6XJN|x>`z|j$Ha{3M~InU z!*GiDCEvz&;1XXI1(4Q&+v z1H^s^E89SM!ni~M;HjPnWOOig43|02Hs&pIVFK*Cwajb{kb4)sv)8A3q98VcGDf7c zJ&A~Ep&!6gy;=4bysv!I<*KCbgl)gtHz<`NgLW9gh4rrS3;`wze_e?@@9<7L1-(*= zc94*hLN{H&cB-}S>YKe?)8QA+-JMantp6@k!VgTow@LA-!Rie}JrP$+MKv>^AWa$| zZta9K>gzTH%K6fs;j9)+>FwOYo8;KIoAD#SGkxij_ArsTg#i{NG%&em&dubCU?`j& z@CQkv?&%Mq?(7k!)UTs(Z?`6e__=Y}`Sw2V6F-R3CJukFadu~6XA#aW3M?Qs&AcnH zF^|PE`vL)YD6aSpipUG}B{cvKg;wd@mF{A9AV|sv1NgQXu($WTJ0fO^p-!TPUYn=v zIIw+#{)=@VK9LARf@TgP_+t*r58i(JYW84}EOXq-MnGgb5iq`_z8dpu=!hR{<5Z#g z^ZgSbG99WSR8a_i1w>v`35Tcv9#gGvaYACCM4|%^{b!fSv1ENnev039i8*rCVFRH2 z-6~Bcd_UAiJUNxvJ>cRx_%Zcu$UT1^b+QsQ%c=b#MQ;~6gMbi+ESS|Hq^@=5bkfgC zgGE2V)~!7?sOhAJuTR)#Wc8{s)!{eAD(L9a8oc&eg=@o^sp~Vz=0WVT&0(|vn@&8R zpq{X7-ePHYt&EsC@N-ui)!g_wI))swp%zhADgoK<>+yVvJf_Lt&DY#J#YHnk5Dv$o9BScHCa<4mEn<$gyD%Y^ zvtn~%4IzoqVUL4bC*wb%36c-3(g%aMvW3A{3EH7zNz;u^|9R9{kKTvhi5WcnEwpu< ze)7Y@RAOeAm#Gm@%@?Nwg>23Ss`+;y7sR$=vPw&uAR*9b=xK+OTJwdT-7cDCHs4=$ zrVQ=mqhbhv&XlNTf+WP`r>~}wpl?~d#sWeD2>$}lI8sWQ<6eZZUUWu#&cPjhqNwZO zuSSPWv=l%j$^0@X=DZ#M5GD2Jp_R+|bgg~*9o1k*ot>vDKabBzW`;Me8{y;TfFBhtd zaSUQNW}us1*j4o-YO{pk%=V}jNCMi@b49%v-Q=*H(uSdKFyd!EWgm~lH7RF1X0`Sx zNpOd(4Aa;5dFfy~+@Ad!Kb1+~eLg$c)o`>!^w)QejCeT6x)?;Mz%1qjj;R_2P)pLc zmxg|Mw`x6diZwj%AQ?`W(<^w{-U#pqfGT#Ie-*+~ZmsTa5I=}E4eVo(B$dImjn zp4UbFNR~5mm$^qsXL)L@Dj+hAi|KmcC0BeEnG$>kM5YAe=OwD}6u|qqs}CHmi7>FJ z?_0L}y{P|)Y);MrEb3KAdsW7f?4bDIKah3s?_+ICGvbvu7rl*+suS6dDJ24GU7~M2 z?K0)o_|VjlrpuLo0BtRsBb_RCy>`}8^!C}(#26?jr+07FJ2X%U!AhLq@Vt_J7X1A% z4Vh2h6cb_3{?A{{XYgE&T?oV9K;>c}R8U9}$MwA(YXLr+8NS8l^@ZqElrTa0Ujjl2ou1AoJ|agul}q8 zI49U&ofAbBurP&KIZXf$@_`7t=$jp12Ec>Nn;`1~+qI`LE)xNGki5YH+7E>t&cZ+& zKh=TUX`j>0A6V04Q_cSfn(O@ex~2z<%-SLlE!2w5=7*%&sUaFq28^b$BOLH;B0=D(*4E;@s`zsfDaj2#%R5vW zPM_^ z|7zO-y_N67A8mZ_mCXr)Q3hB{eGP#Wc5I-HU-P?--$c&wyNy53qzbI*50^;M$CH3H zeN{WWtSyhk1qE4ylW_cN8-MDk`5Vy2mkQqWp>_4qd)P&dHM1q$1J?9(#zu*x@$MNC zz?$BV)~IB^h5wH=ed6ymJ;m#qo+(2ESkpV=R|s$^%rM+Nn5C|1zSFy13C#xD_`E~A ztmY!GZG3(HBzwFJfm&pVjQL~=7+u4UsO4rG^<7H%=2wL5Nu>gd%hQkeB<4tZ4$8_b z?+xU(e;Z9>vWkn;n_B%53hmr^K&k1F;J>18O2kuyL|^&5&>}Z_@pVA86#l56KFGlo zvG>>E9;BMGOrdrcdtgBC%wA-ZMSvcNRdIC)9>8pUW7~p}V;B~F_BLGlT{ka+0^N|2 zuvF$5G3kp$S$%{^Hmw^!&W2Z6e^hY*n_f}cNT4m+rH90cJ4TbP#QX@YM*LQ>D)45$ zjmkbqmA^`YJYkK5aVGxZ`y+xkxATqPNL^v9VT#`sq6YFD=SLzYb>JBsq(r21aMm*> z-m!HmHOm+xNU0$C3l}FCw+(hnCDYzu+3|La?VQ(ul%_wPHH{?9uY@^5#r^iP}wZqdK);7@~p-N9|Y@8Fifzumz>h?X|S zLeu)SkF#m~@1`CVteuM98`R~>>>N9d*3_s+=hvHr52iYoEmF9uK}oJ&Mb~N;-D<4v zCLwpsG&L>Y-bFjKeN<_>%(y9V#1*dIi{!kK-=$=GWINDY8Gf&1t+a!$c$|7IV0!u0 zrs|_g<7355fz$Wk{WY$_715cZrPI}Xx1zx3e2*f=_d0jh4kapfQQBm@q4zn6t)h_4 znu=s6@-V!VdfS07$|S?d_b)y;tg=jaY-LMRq@2EKR;L0Iu2oavKRe1LH{&tc#Fm#-liJNm{*dG4!E@{Sl8G_{o*}Mg+{3i` zUUb`#)e>rddW<0?@7dz=csX-Bj{N=Rx$B|1m^xWvVWRZZ*gd% z$v%6Mr|CQ%f44|0Eol+(b+$Y9RG|Qo(0D+G{SS37T6D9zc8M^-If;(5NmuwVeY%W}!_PAWb#LN55sfVYIf#;r^ydeBEqwBr*k)?10 zTXAI^?x>lIJrHpvPxqIe?z>9rnkR1~KSv}EuZ7!Oc(11W`+N0* zpS#(HZE3B$-?W?jD$NOVHrdx)sv<+NWg&kL)_1d{Gc{W*bq(0cU{r0Tu(;z#e3DWk zO2j2bnopbN-SdIXd+#Cn1U-D+Oq!SR%+~}#Sod?u&TDuXK3381X#yv=onoBgpC`9_ zGcCBs^7XUHXO!2I+ux@iY!8

dxQL7BBiBT;y9=d+x;XoI;CVLAFqwxY-m}7z&Bk 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

WWAt1>@#=W%sw_BAF z$-$qw&R2*S(3QO|r3ddJITl(Pidk{OC|eCl9S992xHJ@ay5#YxP}6`kH$Y;NUF=wB zJFG_DCzlkOK&g# zr8scZuLMJ1$PPmpKEu4xviT&SdaQs1^F_xDZ)qm)e z@=^C13sb$N$EKD=a`Sp8R%Up&ggTa7c#L(vc zQZj?&^xyb|biPd3JmcL(S=l+0ZTq8z26IPHojJeuQ}0pu&U@}9RpEY}2?ZH2jiV2k zXXpNf5aPR=DE|o|#QzN;JpWe+5r0=!6bAEh-inblz{<#>WS>;py2||NB>>ZiJpWsi z#V*6Aes`6}u{%$;!T$D`s}5uC{9oiEXH{(%MAs?~p^1m|!*Q7i3B@dGteefUzg*V# zraYhcB(&3en^h6+*+r`TT2penF?EmW_6!@#5>NB@n|+oQJ5m zEp5jQtK`*gRp}tEzQ(m)@Q~7*plNznD^iSSk)Kw0@vElP?Pd4dt(qc)UUP;Cu$!~ZRI6N!D*?L-|61GbgM$s z!@R}TyA9a??oXCwlPfDyEt4-1+eEzptX7dmN*JkuwAt&pkMw#87p?D zGL9;i6BF?~K?0eB5zB$Hak#9S665P~`fZuD!;*k$T>gA>VN!auvFXu1)=o0+G& zJKaxZZ4T?&&_72U&&5u=V(gUMksMK({3U4^m1a*&h-!}o(-6q*VX)lhgrF_9VDEww{-&tIK`7f|Qd4nw$V~RO&dHwZbi15cEf#ne6NXgF9(nH(h zHE(^rd8xwUdAAK86iAY8q`G%cI-u#P(Id*uI#uf`xwzP{%rU;)$7x%WUG=h%F z>8&i~uQ_8b7EaIEljTV#2B0 ziNChk*g&YP`rSsE=ggW|#Ck0n==5~S^+CQwtf`$GT2cakN!_x?^wuOURZCTn6Qw4x zO4wcKXq_nvbE2}gSZ>>Pn;DKexz6r4L5t>epLpl#b?&dLm1|ul9rLhZ!La&K_c`y~ z-RvgIcDDC~Ccwhu^>SQ_LvpCD*hW#&z`)(!z+NEh5-@JT+t%i_ddolCGt<-CKm9Rt zvU3--%cag!*>XXv%c0Hnl}jxXuch7T{>SR(0=4{Z28#aLDOJ%=Ad_1K{qF7EDp1)A zD8B07SXNfXJ`1#PZdv#My7;^>GsGav>+uRO%#hj%J|_%^pv7jMnAUX#skL+RxKaB; z&MYw@<2T26bWtmPR_xs%7y82AkrKUe61PsZ_WG9=#I9ugRTRe0|0)Vu0w6`<$G;T? z(7sd2W=oEWl2$RD3;WSI*cND7QSPYoG2U272xd{woM|(R?Z{x{vnMPay&-K_ z)l)ajdkt;qIl|KH@O*ADHXr267v(5ZeyYpQw>#k&0KKFo-!Yw+#o5SPL`G)x_`{G2 z-&tjyMk~;U+f1G@qD%HYyHR{~(s0$l;`B%J8IH)nCyl>`!hS)yXI2DEm zs@;B_ecS$Wd4fI!6BOtNkKLF8{S2&|IW;nzxvvfwo{b5W_;t-RWttXeb6M{{m1Pd= z$d1A&bZKc*bPm5QI~i>;+A1~w@>JubNx)#GRjQDvz$EH|r$lWTS(wI2_2i*1msvz2 zH*Qsxm{l4aAnpvoP5%QOfcwFs+oL#?`k9|lN_IivyeG;YC!?-Oag){FXknz3Ruq1A zJLjdm8I!V5=~B@*UM2@38J(g)2AI7v8g6g`a6ZAdxth+Oe^NHOYETzk z_lMQc!XQw76L_>lh>h#HMWt{x@AG>PcB`4nYefpXCwqcx7X*=G>|IR$;7Nvb{K}19 zX|L2e@3m~v1`!9gt6CmdhO8HDEjWy|@f{ds;%w*OP@(4nVLNw$QIW%(EZ5RV=%RtP7 zgi;gSkpv^|^?JX!sy$W6ISCx&wRw^|ZdN#{no}NcrVOPvsL&|}4z7r|N6KYkkp~@) zm4&L#?Pn!77O}GwIL!3xL@8_v7_zx;wJVA6V!mOIS3y`ev*U?`? zfqz&>=N3KRaGa7q*Vr-_vUsFC^#=n@+{v|m-lPPG2*l9$(+HT4%9`5+BWGn6 zqsLHtsKNB20l^zySzQL*1%o563CVBab3fXlZe%Bx<-ZZnB>*@@1IjaMXkZX6i(Lj-6Ly1WehRb<)Er~eWS;Ka$ zsH)L8&2az0oL9=k3n>QXQ;EMgfZshJ+@xD9XInZ^mOaZgf7IJaEzU& z%7Itd*We<;;K%9d47_f3-)eakn<&J5{EbxK_M`{&64=lP-=fr~vof8^os6~{_TR?~ zVWH-&qh469Y7sfpZ@(;2v`i8cC;DK`&uk`ndw0W9GO}&B$V&oK3EaldsI>kboACD> zF*-#irREDLFIJa$+tx_c=Er80SLqA0g zX*h)%|8_oM7|SL++D+Sg>?k)p42X>6Ky(kAC-3RTckYCr+$rLUyGi{vf9|DbL|q4t zOtEPs8Wl{Cu#@*-ZeUtB5L1H9fKTLM-<{O%iwafy{e)VofAO^W_xGJ#3XyQ|lof8> zkDnsg^D@(LM3Y#*;rZ%aXp=={q;r+9;|T{&J_(Z+`ZXErItGeJ|AgaCN`gW-AVuFJ zwS+4HCkc;F*v^eUIS^+fsID);MEbcn*iDrso}CI4gZs7}lGh!0EG}%gq5bWzyk`2o zdjAQ=W+xq-K#L>lpeK-!C)oTd4D>qteIW?9OEl%-1A8;rKnfPYo$~1g zxjT{MYmhf-3=AyQ5en;wJeg86n?FTQ8Ir>!IZHqX}h;r2PAZ&w14c!q=eMx<5@y^eXpM`501pYfJil)pvc5v9PzkkoX8 zPU66E8?pZUjfZ?rO6a$gT(}5}80qQMf6i4r^?dh|ue+NK;%x zX&N}jS`|vrtNvd@=sbfLP`k3YLexqtB5nhSg#h9G2(-XalLMzRA>)gdun-E8gS6Q! zy0YR8Yh0=4llsff0CEv11WsiQh|L+NJS$RhYp*ekvu-= zuWnITyUBF1(nM^GkXkmVqD%S^bcXYy$kt4etA!%>-#Hih7g|c`-IOHZLdEQ&)6L9z6f|UW9KQX z+uI_fOf{v$DTPJH65%pAQK2a8)!+Xd{kdgoaXMML;|{#EpyW31fK>E$ct^()q2xt7 zT0}?`PfI)F2=SjTaI6ZG)>4aJ31g!_C4Gq?y7A#*`wB%?$IlcGuxF{3pRq~Lk~`D?CXo7T|XBEriZRO*g|Pc7N?`Jr%3NxehF4fJX^H%Ooi$GB`r{r>qz?_ zEBq3J#=k3k1VvR_YI3mWtT#UHk~`zFIv`b0QM44V-Lunx&S{atZ`sa31?_QPwb*yb#)qvpU z^D=bM139lcRx)05-Yaz;#e`U+V~H8DeX0f*7rqnm1mlK4C@k+6liFYrmty5Cjr1pO zEN7zFP&tsh@2q*dJrlQ~RI2=$w4$JRX#Jb&)3Dl4`Yi3A)^HQw)vlEnRaDzoE^_&! zQv+A=vKc10taiRz8?)Nu^q|a!tQ&l4{(ipM!ocI@*pd>|;ooVB+%H~y2k0(U5Y)=L zz^?pK#fv4OqOu`}>G+0*^ZDXRT^WhdDdoK6PEFh=63dZ0@8=Vbmgd$nx+LeJ1C>pp zOf$Eqqvfo1T?bcMTrR&Np5~#hh80sWx3*i$N@>V}d3&?|8a>I(~yN zE!iGM(>zx~Cz+x}n_oc%HQLl9()9xg^=A#uro~k1&~jRDjbemjf3yisW<$O|&!)QE z2ZF?n5|XHBtO(tUm(T14stm?)^0b<+@jC&33a}^I)G81@F;bx@%-lem_yJ^sKE-)8 z@#IEky~!sZo+{ej?Vn$8?8upxFqF+LZ%xJxX<$|&#Hp_1Ye|W}WL7aXyFM?J6gmJ( zHm0PJ$7$8yJS>>p4xjH}>7FVzC<4>O6=wOXw6k7c%2l`?`JuIW-IS2b6J(*~aGR^> z?o}%1`%a2y9ps$8Xbxx>j3_ElE;NklW);lpDE^TVOrt$3bxKi>cDf{Ut~AC;lgdWO znpBWW5l@laM?V}bD}7BWy9kMBYpcagtFNLvpDU^N=amhcLNa3{qKt0woaxim+?oy! z{eqsTZ!>N7sQO*$+~KxWl>;zAUof(VJRs6m@J&=+Hq;7>lS$Xi0bjI|9`2_eV&C6n ziR15Je7%y9W7UT*<^ztW4|ZDF3t2MxN$L~nHl&5xiLrFl3SU$b@-?3rFQg}u9IU(D zwTfG*L$O)-L`!7CB3wJlD*t=51i|gUMN4XPe3G8tQ2%9k$Sv(UM7di%-8b-m67aiB zU6fmph`A&R*A!Ya?^BLv1a+)}QYHJ-jZR)+sM7-iEJ#VC@%LHe#+E;f5n z%pyPOO%j~CRbQdC=61x5N}SnZ@s_SavVTf_;#|54Y_1hjTp#cVkU04`w<*U*+LSJ8Xx1ft-JmCO10S^2r~j;e`yWs=D%nSAJZ7f?HJU5A}*St6<<9VRphKP z>>NMR5RDPR4r9!aqrg*W$>%(ns?kLSg5(Z4bxGFJ|5xtd{w`+8M_f39)3)@B=A?1) z@h`8L&z6alB)w!gH}a2c{)gAt@qNFsk`~MopCQo6H0bA`p2r&j`1%Rh{aQ`bE;x1M zR9gp^Zl08=Ox0qWI#!w}#r!xsF4pmquSp-bQs82}pA|pHycQ$`^g~arC#PM$Mkc3S z*8w8_!|u=q*&XWOr*h|L8YrUm9z@o7=>aLta`6m_N%+2=w9<}$+K|?_Dc+q94zxKnj(_Y9hqD`)9*iX4=4A9D%`@MA>E>bH2(1dPu!TVa1RwTD7<(^U^&+9)vb8C$j=-Qo28byWq_SF;a3?3}(H0AW{0FmPh0uiAu5po}c(Mok$()00{OgqY9?GCwDZ_@YJr8-iH<)DU1=jy*~7{2v4 z%0WsdP*sYw@|-Am`|L9ygDS!oz%-e64cr0|YnRxN9i&r#;E%uyjch|lXT~7Ua(A2s z@_eqhQ(~(uV!`}Db3kGV3D_U~6DTI9-+Z*$7+Fp$%UYbTq92A`A|yS~@4)tZCP9d6 z{d?%Ld(t2c)}TBdjXXwhhj7uu1;w=0tjB0OrlU{yP5%!t437NacUgz0eU??6h}!dI z^mp9a?m$$m9HntmNTkDQEY>YYiDL)!KBVvK7>>ef@#nA`+@_OxpumZUECn?L`RA;y z>g$-#2n0z`$cz()RwFY)q*&$&4Db{RX}<53eqnbvdmSGK-|H(u(;j7v@LAq`fKcFR z`X?Ycz^*ghd~rLVQm)1F0D@?ggF4O_7B41`!CUW|MLS0q0Rq0KEYI-1id|mr+b)7w73MeG-7My%^Xyp{0rq!?Hm<|l6aCUq@`|7v}S5%5{Mq{*0Vk{tpFV2&G z7@>L6VV2ueQ^S#FLz((5YZ;-2ZwgK|Hhp14y^$6dIm^fNI8OcF&io#A*P4bf3Ipx+@e>G&W2ZIKY|c$FTv&~B+Lo&Ryi+xPUmm=yNOT(TQ4bg0qrr{RuSa9`#5Ggm^^b?y!etkLd zG?dtUVH^c>Aq46ZArW^_VBc^M7oyF}1tR6N`YQl169?v@$v?}|tYX>2F)qx3$~jB+ zdYWwQeauAmlg6vTC@-zDR$p9?i`Vq1O3Zl}FC){2NPxw}!g;d289ztIF-2s0v~TNTSo!m+p8Y(g!zbbXOOl!6a7L3~YH=xuWjfz#d{y@Pb3Furx<# zHBPHy7Oul*4wQ?QLV$=yi5@YoGWb?%`85;2Nd`g+Bk$5kuELm0$Z@W>;miDu2D$vNe^?wPD!K#H{cn#=PQ#^OLQ;#*jZ74p(@g+t^Svx3%yfqo}{mN9{prF(VV2^#HiD(y@d=dh{5> zUxc;Wkd|vaP5P5*!^GJcv8WGF!VRs>8=ePZBy=YPe-9z^3xtMga!5uSzwY?~Sq7=k z&@j!i8&^^@7CR?Fxg+yo(KBhdq7Xd_-EGkI;WK_jyOI%`!Fq%)%U>-EXxCv_DB@TXP z2xf6~xz1hKP;o@)Na|AnLSF2fAia~GWRI~g(-e6Zy}Oj#o`!LMWspot3U(=A2(>6g zL?S1eLz@7u1O(}F>zuCXw+1sj%>)XD*MS>DQpN0Q>YAQy;-389!_g_!5CbxdLIYHI z7tvqDL+Bu#JUWlDYpd=Fna~B79izXB|zZxGbEu9-M7!4)HM$=w@@R#|F zcYn=+&PjzyqIkm%%L@=W87MZ)3i^g1mgHm_v3}nGV{e<;L!cEAbr2{*#It8k5-ygj z`K}g@Ypte<6Pz~~LJ4q`rkI{t(CoClJ`UJ1eXq>sTaDWMIfOMsZq__KXcFo2G3RTrR^VcoL0Y4mcXSNni~cN6=0)*o-rzNIVjn zJ+5V`xNWQ~luWYbnNZDa@7;SP+aJJQT6fJ@c9#w*9+YS(CD>=Tf0&P70ymFtKZyAp z^BTrhynb139;rld?#{*$G7L(gxKd_}SrhgAEe$5i@oyERrXm0aw}}((fdD7c4e8W?$ zXu{rsnx4H!6C*Fg()C@Iu>kTP%wQXu6k*Fo<565hHv4Svfm@Ok>&4yR6iVUPE4ZJEm1aiw;0R5ch_5Me%Rd#{khblLe|u260iCOZ8mAUDIj+YL zaS;%#l0Q-SrM7*+fm{7%v+jPQIq;xmu4-cE(Zk1@eRca}*;k_e(@`xG+{2Suk^Pd~V-)Zd{zfh^9gp4^f5LjVFF zcXN3|FSo6QkKrE|Bnwq<5WcuN@Lw*7LkhyOzX9_16VS1-T$xm}O)J zng4b{l6gTc$a~&j7bLRie|14rdK;wXQGcC*?O{L|MEquJv4R8U&i!gm=`ARy8?+Hk z!)ic(?~i){s4Kx>`8EcjtNlZLaQ~C~>7l7P(Svl~8f49VZXJgJ0dw_1=D=>T-iNkoR23YKPJQhKwj(Hd|5_ zZH#QH+-kdQJ2`_wac1qp$LG%8_mfgNZ=*hsj`X_;y^;U8^)=VUYqSL|#tGkJ0Tl8q zfZ0Ov5qi_O=ru^@>te*3L0#OM27XTicd0`ExEY2D!Gs|r6$k_q71hL*dEz-H}>`RicL%$WorEVbV+LY{Nu}Oa+P{}q1`Ek7=pLr zZho@5GmfY7*xNI25(fNzStM4rtUht7F2#;!Kj+5?!hobo2GnTj7$+txnH7`m&b54*e zax#;dEO~OR401&Z-B)2k>bo@-GC@I+OoLw<3F)6wvi=4|L}Kxo^+JCCwLbtfZGbqC z{o#7AjHQTF^pRpArx#zUKdxydHSrQ~5_;n~Md@P__`fQsi0@(ZRcL+Bak=aQsU@Qaf8oXDh3+{}ap)QFAnRgotyg?2R zp9HR0v#%_fO?LXap#g!5eTo8)dBN`GD;|fpA7|G?#QsjNDNPr?Wv&HxALnUhes8Ni zUA*KRZ_6KLF#i5SlOs(V9ed23ev>V{liV8qI%fOiQ_nXB8;;MDIGtv@k<1?e>nS|{ z$B%q}=fMYZTa9+>yhj}1v;U!#bTo>A*4yxQJbuch9>dTPZ8UHMZ(W);Adwj8?t0X! zu?GD9Tpk0=naTOX`e9H@<%d6nYra!2S z1aKM=4Q#9BFM9``JoQHdDQ}Kqfajm6Kk971?*Uzh?n?S5cSK>`+vKwfq?zYWFW6rU z>XkI+O@3rfWiI^WFUj#cM5L8odMKzIAs!_tMa_%s1croCDe7_;W^)xid@sR4mU>5Q zbA;j8r)-ao^htVfX_QU!83fBZGK+EHhJyN#Ft1C>)9B30^O=D?aXu z22)J5;Z+B6RheThrY~+syzUlGABNPSIp*IFHa-oYUur!?Uc{ayA3Q%l-}zXq)|(&L z7#QSaj*PVE!Ya%daUx4<9kZN8y%FHTc3`xq%b54AB+5LK&7X#&K!3(>)KD^=vJfsA zTXB)7Trd@EIG4+H0?dEqz9y_!%X}j{{8nL43D26oVUiqU5UG5h@oed+h~PY%UU^P* za&k&If{Mih>j*fTF!x5>7}y=&HU#YkBEXqB^6J^Yv9|Q<5fiD!;4@)z#&|o0m7KlW9I)nEyZ* zK2OfQGxO$RX&0fAMVZ0P&AhF)#g0tK-j9MkllI|&=QebGTFO9XFu*i#@QFefd1Na0 zV=pQfniP@~AF(O+-QTwl|B4IGbMC_6{g9K{%j0rY)}ZMydVDY#v}5kXd~j9E2hPg5 zpx$dg^lVchaTTH9AI7zojkks6vTQ!UqGE&ZUAujUA%M{T`JFwR>k8j@qiiiE$9-oI zK)l@gF5X4dwwvMI)h_X}#~3?)EZE7x?qQyBLw2$xievkBmY%@oQFNC%wie@V1MEd4 z?s9#h^tG*eoki}l^zIp)%Knz#c1y|3-9)o>m1VKzwJ5mpoXJs$)489;3EV^Ou;|p( zb3Y{Suw7bjv|kcgBRAmxFnh1MR3!GBo0i?Wx?%UW|Lk?5$1Lc)b1!I$d^fvTu*_tJZE5 zt?fUivaJ0V&wx4pZ)LAepYXF&%lJHd_B8G@T>;j1Z=R=N8dWFD9p^w#U`qB|6FyVh zy+8dW7vRvf&0f=Ek=mf+P_$`-`+om&!)yENJE8ykbo$i#Ro3~X&qrmYyx_}GN0qKS zz`yC;M(pM7+++oj(|qy`2<$rB1T57Px(Rq4+P+@C;m(+M=>VVFI7z0~a& zh}nqOiQU{?v*texES64RwoabQC;yosfS?INv;JN35XhgFeRlc=njLT2 zPwpSiv**A95by1im(V>f~r_%wv-vri7Z>bTqh=Arr?&gFcJRr%c) z5V`GCF*_XDWa|YN5U6377X2=C&9`aPdm6j96+_j1%3#z$QIto)8Vq+n8RubBT^7Hf zB3b)7E<3y0kiq=6(_tMIoI%96?g{)j+IVTHbx4 zKS$OkSN!JEL!BwG7t3WUk&7#cufB%A+2Z>pcn{ zy$=l$a~~x)EH!00f6T-Ry6lf^o?F7lt zH_l7N1iYMb%j~%J75or;@5|_XlawUF-@1;ukmm#q(#w|Zk+K5==?qTW7MrD)4EIWd zrah-;vy#(g>w_gdb*_iQrS|&=M%Ycap>t;X_SUx7_YHxhdxoUa*T_lggM`()<0<`s zy!9JzokqWlTU!86=SId#*T)&Ypx1jgeO0psfD^c@rNW5{+|O7Obl;Sme2?8bvg_I& zB7S>}{rzb7zEm~=*^*|hf71ori8)yl$mZwqp75$)`hJ#j@J!C^b#8m0VQ`ncwmI|O z*rdM?x!eum!2y1C)W#BkuaaT+vH~5eyZF&c-?&KqahK4*Dd_O+FdDTJFw8$2jMIK) zbbmoe%xAx`rr+*aFdgOEc$s)%&F!TL)XQlOP1uEh5`dv74v+a9p54C_`$49yC zPmPUCWlp>GT-}l}9nMahy~Qlvt?3#^l{H~i--*MYI#w@btBdyQ>Y__}7ot4Dq4N}R z5=|yjsD)n%UpyblQ}|u%OD&$PFPopkI$qt*xI9jpPKRPId`GN-$BhPlFIuyU8U9`) zo2XS=okkzA2DK`ye$E}Oc9O3db}c(P#Gp2F`5|DL<4WDsTC?M>@_qDq1}D*q$Kqrb zZ=;=V(~RH5c+{n?KcIVDc53~pm;G_U>+6Q2V}Q9yfpDAUqJAUbel|vu>Gdtf0Qs`+CvR?rZW;L6{N# z>uvRP5^StUYUIr45%t3N5)tuI;3}`_ZDh~?F-)%uI0AG&d}-SJ`Zi0rkg@rmCtEcv zYwzLX{c*Ny8_W0jG9GJi^(Tvy&Oh^n>-GL<^Eo2sDC>Fo_R{kTl%)6H>*HK_bkC~u z?YlcXPqCR>vek88)H=ThP$^ffw?D)*WK8bp31H}Jb|b#(?$cf*z^7gFiC=#1*x`l!LN7xdeJCF1F9xV<3P z(0hzxzn$vb!D-9!K0LSgcX~hGL1ahO4mG}f)(Jnn=(?ppvU%G4xUT&up8^Wmx1HJo zwp>(Oi$=M}j;DHWHKfuBLS$vEI$1O=HTRB6EWV8@4Vutuub} zB5%jWt+`HV_$Vx#m-n{C*v+B1tZiWh`Eqk7`H{)V&7}7AgkTeQ(!$#du|>qdfHW9= z{{>;?ZCmN<+=AZm`Irlq4&nOM1)*H~<9Fh9kG`m_nnz^? z<+AFj$yeijJ0TW07yl5<+4(X2Qn9G0?{SIT(uaS*-1+u++4l6lCUEsMDRWIv{9(KW z`|)l-ykRKV*}`_iO#C6U>803q*VpxY<6ZgD?|$jC5~3V7f~NqI{r_aDS}T$883dRzBUhP7QWY5 zTYN{r^9$a~MB?zvJ^3C@)c-TLqwo~Y`cI&g=tn)iPCw?=q zuq*c2?Tm^gSbn?5zid8{oO&Oo+~T*t-5J5p%F)+IiCK5Bxl1H(Ldtn8TYD|qa-ZA& zne*JeWTsz~J>Iaq9wjDoEtbiM2BKp{A%LcZ%^FJhBRy+?W+WT*pExn&FPyM`1x_FyMvOcdMlb^px<=wt7WP3B+E4r1t&z^C`AT{oG$+jN0y< zdMjh%pslS<{T%53D5%)*&fM{6Q1A}Q*wnQU)c~i=HKu@>$%??xfttJ$>!EPU)4Vc} zZPA~zk&XGg^X7$KbH;nJLpR42vS%zM2#<6Jo})GnA1s3EHz%6E$^6e$d6BebtdPv4 z{VxDZ#Zh6znDW)Hp9aAUzI9oAPhk?g*M;Ep^ijC*O3?nsknzNA&2~F38?ytUo zySl3Hs_yz#ANP4&=Y^Qhv!!C*H9~KZFrEY)1IjlQt!W1T5L=LKM8Kp3U>E=1y9g5m z43qsOE)ya6Pg@>oRkD(dAN-#ljVZos?q~E8pCLj2RQK_S5<(nYA{E|Jntb|{lv=)e zA=ne}RF0N-xH9p%z!2Uj1cf+^%dShtu;otBfHB4IdxypP#Dh_0?J;1GF2xf8d2pD3 zDH#H8JwEh>I?ux|xq^KXDmhn=nI#Ab0A$Ng$HMxQw7ryTT<`#g>I8kh8}@xq2w;@w z7$q)h|2hmQ=<5@`l|zalb;XW_7||0EMG7QHQAf8r-$bwD?76q|I`0hEi~aZ68Ke3u z{d{?tq^V0=Awd{l%{P1d5issE3mJlb_*-;A^?|hQTuXK`TohEbd8)YX?b`u%VIwZ1 z`-$(+NO;_ju2PB%rr1f4nfbl`-%Mik^Y;lNBZe^7xIyqP?K8g`dp4XQwl7bF=s3rq zl^Z$=QDCf>2=H^QRO2#w-x|JNrJx{x?S#dMQEwGl%m_nZFW?h6d^1V(l>`JbK<*Dk zb$ek^6zq~|BN?W*i)y%JTv*UXN0a(?v4xg85wVCz1=CZw4b&PIT8i$h$>q@UN^qat zqweP{(=)$(7J-i95W#@zxML_67s-P|mj6`*3jIwn0SK5n)eDZ*$w5wtJzz^d8JCon z8TBk0G7xK2)1}XqGtg9-v$kl=e0{-Qozb%XYRq`>?3@A;PU_Dmyb1lf6Qc9ci$mDv zaOxH4(E$<+1V%0Uj@+t#7$i+-|D<2*Aqe3lc%$1Sru(Dd#vRvjdjMPY8Ax-MHiFn z$Vj?TzO?^s+=k_;y$AFtm5;@d7O}fkLtkJIfq@7|!x#8=>KlqK=x>WasLv)24kh^r z^*!-z-5x~4HGxL&u&j0c@F~LHNUP2}p&7V+2ct{I;I{S4Pb)*e!RlFpDhW!^%yz?% z`KRfY89@J8wZ78v(1;zJ@90Xo^v}S}c#EiZ3F7RwJk>9QVOZ|%*Dv%_GIE2-&hO{~ zEq|npy-z8_axezqaLM&4WuPc^v()F(Au!JzJpYk0_GuR*{w`$@|C^NIh7_FPoc13k zZmz-pOUW?&jkN*;>w_eS)8hKgAPwF!tXCnqhJ&1_A4Od&6sOh&6Cq6;fb=m|?EAr% zV8Q+D0|&$^zRy)sH)?&Wwv;?iYUtd+h@bURXk< z{02G`G-jb}&!yaPMM?tj&F0JNRju_rQ4Oa`gF7s)i1UfzKN7}p%*23a@2lrKH!ob_ zW2jbVg*=Nm*Pp{e!s;moqi3Jh#rrO0jW|qDjm*MrHFlhIjF+*4;C~5A@7i1ms>X}l zLpgUURue*34mlG823zOt$9Q&c;HD?n%2ie_3@#hs%k*Q8U@5;*3RD2z)|p16rr(Z_ z7Db9vMG!6m@mRUn@36eLmr|4&60*HJrz{M`dvFy}?_3f&jxW~7+=R%%7YtBi2Mphp z%Z8L10Rc^_SW|xqcqddegqz+$;Y0StqpB|&qpZVYILI{;vkMpNuVd%j&EAT97eXgl z>OQv4{bA=M=2OL5jYq9I?gno4*_!H72K z#5dT>IsjV&EkJrhJhqQ70sZUGI8K%*sL#v|{Xmq?rP?opDat?M2FKJYx)E6dF;4w%jhag2M!hSw}mPG63wQ zg_v9NWZXdPnP0wbL87~429&1nM;W=30Q3we5P>-OP=n?E*%)fYoYM{Rr!mx3kdc09 zgCxw#XNjS~*BC_bA~GQEVVrP_<+CxAR-llx(oBPWD`W~t&)DTM$*ng^7_{TfgFscF z^&w|wUICtrwA)ur$OW}PHUK2PB{J-a1Pp?xp=_7nvm!JkSjZ=suREXB9*0i?7?|NF z#Ft^dn3+cT&$12>5KSv|7XvH;#>;&8AYjn!L(^>MF(Jz8%i-95HXUMgMhu?|0_8WiO96VlE3KZRF#2k@d-x|%HSFh2#Jg8M{{>W@e8T+TqMosu+~R%yRD@S zHplzCjWQM5KFcsuk2h(9raDqVWg~G(*g}8V%AG{4(fNg&JfEIe4>%AOz<9Q3;`@-{ zJwsyCp5b2l899ezZ;mNFz_{vNgqk|Z7AOFm9ff4 z{?Q!dys0gM7(REgL(yZpViM$XaS@*cFl0BpS(fprBim%N4(#W1YT0w50XpEgA0L5&CFF&8LkZ>gmkg_bgvLe9cCED}| zRZ+J>hV=9SRd)ui?zHQEgC~$62qPnue$coe3ycOLzO@BgJ%f`q;HD(Fq{m7zR%MuQ zC3eGx4Goq1#J!byWomZRp9j9^?@Kq|Kv-hYsFyu-%j!dO{k5 zN`}!0%%2)nn%6@`Z%&S_b~9j_PCEo|3Us;Qe5qK~r1f9foQeRT?cKli(2N^R$GQe; z6Brb~!2#8b8J$1FYmn?+w4heBT&5@%g`oOLwbSd|^m~-_?Sn8**P$Kn6(&)(^1B*d zhKq8zF>2;JVrV!@!O(q2yTN@WR}7}3L@HExgQ38b|B%yn14?yg^zP*8>IWmyf0(Hzi8~} zn}3E4?K?L|H0@p&IVp`^*A5fhlZ&sst`T9!tCG+%uUQMAE(DS%Ah?`5^l5a4ttrDL zRWGcl=^cEnBQdJM-ul*1)uQdCb^UYT@btT@Ao|TLTN%Ua+_(M4Dl?UWlc?c?cm32j zi^K7tzNYz(Kg&YdVL)n=>e@j&5SjAaEf+jb2d5S^{0ize8>XKk^Bg{sOI;I>BNNMV zuM(i&7ao>HOwKK|5zB6ijMoN9-*)Mh^-ipRgb@ZV@}a({U8UwErpY$0HMm7Q(9=J+_x-$1r)R~Cp}Mp${^ zf7#GHFDrfUe}AJ}=#1_V4~QI-Rq5*Ye{W);7t(t5oa#p4#8|u3&G#RDe#;5?P))3E zZnkcAJFX;B7BDE&Bmq7iSK-+q$5F!F$UOg;mNg0I<@&<>pl}`Ni2R~$iYP2Ia-w@s z5U>ght}W+vtUW0<23sb+1^b0BzNZ%`o;%xER_i;?LHtwoDY+sWsSdNVuKVweubeU$ zg@$pzKlkp{n@_hYAfG#{MViPDX0nT$1f0@mtvy`@d%r#Qc4nsQGuEf|3~FAR zytmk-ti5X={@G4ynnXsI8mvOvsIt*|K@WxgQl{j!r>Nmcjgb9vMfrSZ6Z42U4D(`Z z0-JCJC`t85dAy-4DnSxCaH*P9lgz=TE(0zkW?SWQZ{N5-_}Sa>y|L-(yREj?L*H+> zqRxhm)r$(-bF16T4Ux{yj+&iY9ue@dl2^*W9a7(ifihXq_(&1BNu)gXla~(9A6Koq zm7XoN*K0SKvoMFP0!54~BUMM6oNpe|A4_+r9A#}5} zaGf{Z-LhP)$DM62ljFO~ijsqq2ffqU*zZ-@@VUO+{;cY>ZGo!43I-CC%to;JXu5by zuK##{enzh_aew)J&VBoVe^~eO(mU%v`g<}8hrw>sSQkEhb@s_ejcqAYPMB`+)$_eW zm(o*o9`-OJ;>apVQ#Q13M}!p@sV*X7S;7cKz=0D^eQZc4_zBMGjRvHs_&6~I-I-(k z?Xsx25adlbbGrcaWI6)x>Czdv)7&zf57IOs+$s{Z4JI%53d#q?Ov+p#|m2J!#W6 zCr~CO`bsyF?(3;5xe2rM!pY+WkAduLJ6Unl-KJ^@r{{Qn=RTg;VHocVp$azDf8Y09 zvcEf|SELSJ5bmBwFXB$2tX2{h%&U-GP)o!YJW%MCJ)G4yuU87wcCfV2C8Tm?L7g?V zY;Ez$05zg1)VyACfRqEJRt{)&^=KZSYEJ}KQ%-HOV8t@Wuf8WMJb|+CTT(PXnzXa3 zj9G;panh`9ZFJ?*3r%Q9Z|gBRBGYg7ceO{JihvW%y*@6P)?n_SqW2q`r?PO31J{Su za$)(|P0;J7k~r15m46A$R6y9JRsvaU;oEKop>Z2Kz-(p=s0=?vA>gOmJ3RfNePz}8d_sK0)jzHF-5CT ztwrpnollKzAO!(hnQ2bncv3#Xs3C$KSBZAsdLg0aj;ZUt4c6DN@6gPK^p!H003vP# zf(G}54IbiW>7O+dqsL<66cY%V3Je^-`x=$k*s8pY99)3VMuFx2UUrtl&RRi1k%^1j ze^a6%k>6?T1n*SFi&Mmv(_7ikam85J1SsrJBb*+;5sH9f#?K|g#FgO~;2=?-F!}9X zB)7foAN@_q5blh~wbd@lHuQuR(rT2jEJrfce-j7{{tH`?a0=Y)bXAt5nT(2T>D5a-8n&;Sm|eiIBPFK8!>lx z`o(%Hq>+ssXvSB zF?YHi-3lq;3mTU)EMsRv&)~x4R7B7#Wqpu7?!;+uNSCLnS<%n7T>aa60>(73VZq7T zl4cf%)T&3c1&PjnEk8~=NST^*GS3vp-vOHQa`{sqbx=EqyZMoYd!Dj39xae_x+V!i zx2ZLGzLp9L4eaAIP(ndtM(BX1oT{-OA&wSbs_HP4qc6oo0&`V=E7u@45L9abh?qW? z?KaMV$43BDEB1npX6f;fxB@O^pQ_xB)mKa@@%t zjRctKD#U|^gXW~B4#A-V_YFX?g9dL%8PVcWz@pH>jetB(#sjeOmQnPO`EjVmXyZqX zR2UABjHK)kLS;?u4F*NZomN6`-aF{>{o~Cnfe-up#Vb(Ly+|yUl?b&8&jf>N ztqBXEDYwV1au|pR zTi}722ewXquY0*TZyUq|6@s;m6cf{kBh&z!AhnQ{kCk!Hfkdg(HVVi#F6g%!^UTp0 zjGsf7d@gYpw9BQ&Mzw#)RFgNR(0qs02&!NBnfYggqWXdWq<%)2u`VS3DLzGi-hqgAD)ljPxg5^ zI4Tts>p!(SLSM&(AQXoM1B$PAUlqrcJ zdE!K9cEs*wX4)y!7#be(;}o}sc2o4Y1!vQSDkQ>iL?2M-TMTxo#__qNJbOAd9Iw-N zM^ap3m0KB8GzWC}e!Han=@`Aaw)=Uvo8FN5d0C(#PM91gfpKD^XTvkaZJ50qvT%x&U+80mcm|6W z!eFWNSv>&Z94_QyOZ72QM7JOOYDp+a11;p19cGU}P(;AvR$xvD*_Tu13}PBw3-d+h zTJ+}rm1Nh6n$m)FEhk}@;jX9vhA>QFPwgK;V@gCY*LVhx&TvoiiL~Uq95!KbPkQ2rF>~t~ZGb*pNTs&wt zeX>3tf8baZQrFyJZ(vD>h)^)Hc|Z|XHF-XN0y3T25E>Xe5u+MLmt{LfR+ePbRt;xQ zmw&B8SdPG;PeVkCd=3reugfdP@@`CVQE^T*l2r>4K`O0lHR}q?r=jYyBP#T@u+IZ~ zFkG3WJ%G4GqMy&YWs%$WuffM5>2(@8PLHUq=j`;lAy~~w^*u~dj3;b$s1>IEqV}04 zXt;39TV0$3YK9QUibr)JHs}_TuMyx$DPmI|$_Sf*Sl#zi*`~NNiWHy?nI)a|0M*&!dsA!hDp7(!yg^0xs_J9 zjF$Ugj*=*lK#?wD(ep}&%Kphm>efn_)2+mK#0GH#<8?<~CTncr2q$O(M-fEoxshHh z!6FPc3lH&GP>R~BA6P*|hdax|Q1N$2bYMM~q_U1w&lO3YcXNC@lqfTo%Nq&7OY8EO z;?pJ7(OEoE&~W9b+DlXxQPY6i4&|p$B9z>LX5^x7p%iB^tr}9+p!JL=kN90R!Q{y| zq3z`PyNo_4WJAMSS8Od{c)meARt}EKSgqb83U8GoD;3rX*;H_JUd1`(uu}Puy zt)nNfz!PL6r_M*Y6ec~GAx72#7YaaQCMN^7BO|Na{tm;7Od zVfcY_QBZ^7Ser8Rp0hmLcv>ZcJ$Dwf63Erza1j6fZWrOh#m0U8UFEy~aXB51?Qr_j zX^XzY%cnNPwbYxbp4MiRbSz<2(e`~^ADQM})qFSKu>EZw%_=)D`UpHUJGPB|v!C^a z@dEJ85dp=UXP+4{r^3TJz|7KBv}$p6W6f#lVd9?k3m$LQ{~ZCce{9+I1aqg z&gH`R6x?oYGvC{PdY?UKH+k%BU0-Xx8-0Jxe1BUJyA~J!_-cKr%_DR&(?6kdMU|urW zeqetyO$&C)n%P`-dv$%8-WAncuMm9`ZND3gW>sl&$*7Xef}cR>;BMwT=_qu(ueY?U z^ziS@fYtfd&fUiSKD*an)7kR0)SScS_2xAzofElxis4O`jbQ!J^!xw7?Ziam^2fvX z1^nla=&R+ox9#KZ{RdOgD2$woTDstI!0|8DG1~9sO4Fk?U$ggp_1dCJktaAXV-qf| zuL*%Nzou z(2Xy#duK&2;5mm;BC^qbubn$Ya1)Ph%ZhiJ&J41DAoUXI5-LCuj;(&Djq1DzYH7`L z%jo!>t_JQ}?%INU?2$hflKdQ>_HtA%jQ&=cG7w@qUu9LY0=N}?^HaHE*3rJ_9B+_l zHSGz;+XqH&1$I=<{H(u=ReaadOfTI2teMnv%g?|YaT>_;!hqPTShE7YITvvA!(`JU zdMV#Led~rQcqZvSv_R(pQSR1)rM5TWj;Zxc$OLtm2{2BfXpP#vIwpfC4V%^Kh1*@` zhJgFIJ4Q4~9#4{2wR);``GTraQ@;nQb5T*k3H}8gBg_GTzk=v*Y)kGc?A#3}KLB#z z;KYuLJqhDQraBExv570&Qs*kg#E^HgrJmx=f$yUA#$mNMm+LHV*Kmi9U;<5}JndxW z5yzskKNyo4bvygyq;|oZWRSd;wxSvWtpnG8yKIn6OF#~UDS4dK)_8Uf)43aF_r=!R z{+h@XT-7SLv-!BH^h}#2J$x-#%_Ckx8Pu8Ytc3a2l%4g9q;+f0bI_%>ttNi8kj1Em zj{a&z(&v@?u8)ZoJG8#hRouc3yoE1PKz1?Q)p82BKP-%fvVblOU-2}eUbzyeQbU(c zJ;->Vnjuy_Bj5w%4k{)mdE$3vc_nz&iZk2irb?aUdUqg-Uzg1zKiZMGE7xyoSj)>@ z3#H|RW=7}215-nyItbB_-RdzK&h! zuT~!^NNapVgT7E4>>wjCHr;CVy}li&3!f&^2vtiun;2OS^Z7K^Pt9<3LVy0D33yjN zt%3KI;el8m!d|$y$eMgB00dBI;YCf>l(BR!BJA=jtm0LXUO*_F@n@qThiLx zp|E&aKKi*|H?i^xSJ7mU3{|H=3{koPcf_ zB*Zp}!az0!>m|*|nc)!OC{~*>zHuj$+tUky-`cs4wImFRzP&wwoF+_v3B(J-qKl~i z;zn)CHK?BuuT)`ZDMW+uq?EfbF5#GWZ=B;3cif~OBMaR{3Wmb@giQq^!xuP>u7xTn zH%+CGL8}M)Up$*Y&TrNEr%z1IwM||4Ho_+rSSMjv1(2%&6rNrS_htANXU?nzseO0qWFivHq+UUMxcer7!c@$z%4q9MCdX5^-#<2^ zrXTZjV}~9mGOWL6r)4}%4&u}C`cb~5s_9Qa(4AO5fA;VVMNd@7{;N=o>Vs5B#UWq7 z;e(tHE@lCL*wl}qAOxhHX|~W141z)mTKf=r`zHA@;nE4+%bvGT9icv(hp*p4>j~;J znqmOAuvl<}V>=Ra&XOTo!+enK1FMNi2c?tw#S;IKWi715xVkD4_qQHCyG+Q7=U5tZ ztKjQr4)7)wY`prDEu-4$(~9=o9Z^M$;(0=hG&f_g&yZw!MAdyv&Ev>_ARCvmB`q#N%K;e%u}?wSn1_Lsd}TeSTPXiLVJ438QVnhd@V z^m-@`fSW#pq7Nm2M>9ztHfAitxPfFO`xV?*RL9P+%exr)E`?6EbaLA$&&$k7)ZFX?9+J70A-i)=xDhm9@H@+1jvM6^}$pK5FkAz z9=i{Y1E+nzTks(dg_M&(Ftoc>fYM$}0gs05F^hQqRqnycWUkKM)ZbFu>O4Lac{raGQ{azJ2U&N8GV5l`3Q zFgA-tJ!Xx@6GgvXbH;o~&dp`_Aimr(!1H5=5*v6e*=~gFEcHjSN8FGsNFA+u; zh2xCJVRrbt!+YIgz@}&=a;4OpN^+qftN93VmL8N2+g^ri5nfLfpyI@mxABf zRA(3rgnv7!5Snhw!J2Yl!9j_PTk2-A@kXd=zoGh+gNQ`|0QJ{vE?Gs}c3CKrcpDc(JD%@UtpEYx{u$Rl=Gn@!=am4U73c9W0G=huq+zB zA|X?j7fiz)gnE$lEx{&4C1=E*#CLslI-C%^={mt_4?5it)(#gp;SMK&(v`4KTA1$7awoEF*&i~*-` z%0u4bC5;>75mUe*uFpn2f0B|xXB>@Tmjrz6sH5IQbo znT5TEzA}D#)?{Pb4Esr?Ou$Mps}C@B%<;maJ7_MxA-VT#pnZ(-4X0dYu`#Wu3iT&F zhBBE%3XqImsuaX0Yy3O|-;V62!`t5*wu+q4HydYQ=_;rKd(KJz zS-w>Rl*`-a*`tC-V7%AA+swv_7WJqm)>@}z+(UvROZ1$~wVZAzbfdp03tZcoKF*y8 zROL6pL+O`%))LY1`-sxvTR}w3{p?Gz+j$Fcie$Hc50zx5 ziCDvl(*MENnD44+W7iOrZmZkl#ic(bBk^W(zj|X-lqR0^%_d2w6gDjQXiH9r!A~l1 zeQs?&tY6GMXVdhaQ{ppyJNIGey4nv9$EHdyWJpK&u3oR}Al(o=daA2WQD-+U>Y~(o z`A?t?BFg^*w5W3*ub}2q7H_TVEmjRGGkGCO;Uwi8tVu0yqcl+JPT;Px=VdmkCCP0i zS5MEl8!^Inx8t9q1kSR}=hSH|g)N4)&E9H13r@b*5nfr(m$m5s1fA&dDc`qh@}X;p zFe_rU?6`ZIzp~y!UwDJXdNP zsTy#fmisLU=6(87-b-fqsNd{nz9^6wj1dv?2Xi?^Jz+~vHvS{#a)o3h%%_j(`$8YD zksbM2i2imLF>tw!1f8%0nj^;PkiPaz`ewgwpCWtETbV7jo&bOF^Fs3XdaLl@aC<`1 zj?SUGSUPAsHR-fYFdVF!76!RY@xeh$F!}c%uiLu3@0YfRKNrt!o!L?vUwf{S+EP0! zvB{de7dcw}zpbSf4ojK{R`o56cr4%KdKvE=w4tkp0|)*VF6H=kmuVC*%F*L$0DP6W@gmjq4M2r$6UT zAJX1yPQ5oSV*N))9iQUYuf9J&SP~DDlfE_82Rc6iiY2Lk!-X!l%>Q5F+mzat(Yvmh z`_13S=id2Eb=c|K{a}ggdtS--Q@4b(|JKt}%cRN?_-z8VPy}cYw+imMVDl#*J@3Nz>{|3=& zNNb-FvF6$4DPm1*HCJw!4lUU=*qfKeV^k^3KPWoi!S8EaZK8CIUTTd$!*W1O+wR_9 z6itp)nQg2$nxPYlwm@6divNz<;E}^?F5xhFMXr-pgEsHRqv0_}iJtz%>Jwkc<2@u9 zws)6N5PrcN(MosB1WdN`UP+C-u-SjLxGwiyl{tF$!3$*+5S=KgO5|mmfO)0ht>Cy> zshRLpsYZ`JS-M%R)Zj}Q^ejEH!_by>=4^2io8;Ofin-rN&%sYv*TpV`tmGQnYW?X!IkA?dX-{g zAcWRcNB`l#bN1`macP<3uZZ}*_8$?kVeVJ4zanB2;@zT~<7)0emH!qIYySFIL|kh~ zmp4h#qurMI`@_Xj?nc#SmFEzSEtG@$epP90T){-fBqn_3aZ>H;j9HSNO~12 z;8G1ex)t98u0{qp4NRZil4nq{DaooqRTcbM)$`|6T04jD=^E_-RINv?{a?k%EWfmS zDX>*k+Ga4giH?m=`g?fPL^orgL%F;7^|kK6m)?)>HOl){u;nniE+PMs4O0?j>leUm z@9F+qHaufY3UeFtZ`m-j?(bJBrwBD9&V{N$&P%U2wD(=L`m|p9ieECNvH^T#42M4N z_dsAEJVAncIcYoQ%p@3*n7AZ_f=4|)2hZrD@~e?MjRCsDAar3tSszqfM`zfm2|r6k zuRKc^#*b`|HPO~j5C)IokE$*0W!j{Uzw(*an20&ua3dK4kN1X)iv%l1*~5z`)h)Mf zP%61TZW$uf%Y(E+wv%gNYZzQZf%9yc<{p63Sn=BKTOG1TIK-7YTYcJN#MxAH&x@8a za~-g2C)fX$44Z{hMH8lZqEX6hdIOW|j?Z85BSU+R1Ts5yDEy&l5j%!|P_&6p;lC)_ zP4R!CXr~bSYra1eoq<;N?-U)a^e>9$ad!Sg(Td#*+E4;gfyoa4MbXXqkcPxrStN}J zC>L;EXamB`LD2191*{Lr#=07VHn?mchAnyXX1@?yP8N^HV6m-gHAE){UlPeoyd?$2s!n>$eK1$hE zY20+7I)-0ZT;AFb8d|^1$L^@+lz=8RHr_$haFolLH2&Os{})%EXG9GA;p*{{Pp;lP z6x9wyRNa@SYBOjCWZA#NU><4BU#T40k`~OMlnQ}s=M&+);!PT!gC@2Nu-?x5s;sQ- zs*k``K01uod=a@x(6Wu{39*`ih_yP!b`YGI4G-`CuB&bO=KQ&Fps~$sk?z|EKMLPy)i@x5nc*udxD1k1Fdk>UttaY3tC@x zd;f4XdD#ER)eei*PKuUXKkJxrvCQX&-F>vCr*dfg3d1Oh%N6Ibb)|t(A2CT7JdH<- zgd0MJer4pdlJXP!Plp2>abX~E4KQbakAxre0b|$7>p?UID_aU#L6)I+9Z7jRuO+SM z#mVa#TRc*9K+Oi=XUrh@AHg!aHdKPD^D6X|1SHqh#OTw?$R(|3B?g1DY^n#MV{#%v z$h;JHSBqLp1qi@@bNZ@eg$_Sr42(%8jrqH}%q?tET@-1eB9CA02+oI=k^H@R4btbH zltsK+43L%@x~50SXO-b2Xm>O&bTH%FLw_}s!|n6I4V6Qf_6>*(sV}$ZjImkD1kDhS ze*p9$=FthA+~oDJWjcGf2UIh2gY_g>WDxXGSn6(xLSh3@9To(2gr@15zY8@@$SX<7 zq6?T(;UNQxLh-hVWS^K)O@+*v)yJk643jH1@(Ngfmz(M8@7%z;BtZg_IM#=a(xGAq z$DZAa<^N?>Yq;nJNslib9FXZ_$ke<;LqzcTBvBz+Z~8&s9>6jBMG~C?dsZ(t*Mwty zq}Q+cN3GVNh|gPniZ5po;MdD(ATE1W2^L+B8e{F2sdIF%HqEA%jrB!DlFF>RTj2uNAtR z9c!uCV;5e(FPyEo2)MdT-V(T&NeNs`By2Md)co&s!>;s#Z7y_uZq6IO92`5PBgkq$ z+_ogPGXkR9b6vkSgmWDMw6a1hDgGXis~98Y7%(IRscqJg9dT#`A$`>%epC`}#O!oH zcD^6E)ef_dUjS%cAq3m7SWH+WLkNgGNa9!40PS?}P}t{U5V@GG_#gMVhGhKRfs++9 zw2t_yDJqFTDAt z2hXsMfx)0W%+V@~=Z1A@6BQ3=J%WtH_Iw7sdqJft?k@_c69*E#2ML;b)0S7Q(YQ%BXEi0(kO@_wJ>L;HcKF)R%{+X!X zEH{QOrUEOu0BIn%hP<#2y<9F>(aWYvBo#9))!NF|I7z;MMo^1+@qD9@SV483NU(yD z-gX6Y#(pEybe>D0sa$W>=ZYNPiJ< z>s&NO`Vcw3FRRvLkWIH6w!8ZMXJPpDuvCQ5aPYuT1;I`~65jnJh`Q5^K*iLneRFD^ zjpVMjohBjOz}WVWNP!a$jS}Llh;~aPJUKtz>jx)hi!h#kS(G`FZt^kX6j3?C8%t37 zyC*yS(ki6sTp_IO67aKOGsMC^7<30=pr{a7bnr_Jx}c)NnXj(pQS_HNAjL>!e`sQjHHEO1dNIb8}9&EXs-MmRJF zv&*8}mMo#gLxA#4Ggd~&BDEGffDOFUH6fn7j)gNgmt}Ac5Z?jGFVHDX*nI;m;2jbg zP(i>qG88`OXlrGGbyXANVp1{OgOqx9p^HaVBTHYKt$%=bbo?0dso{Q5? zuDQqkCQO@Oy5#!D#_qYNwXoqvzM`slEvV~kQuQFOh%6mw7o8G$;=U2q#?Ea2iNzyd z;3%xp%*@5#PDxGhHP7N}C8DZj^X<1hnRV?7<}xC&;dBPu>3O_fsR1sUd$AQ4s=M^f zZ4R1ook83+SN%S$H~a;UHoU3dyjBlJxwE=w?z=H>yRhw`;8J(=1k5#zywCz@mA#dVw3xqXBA2YE2rOK^PR0|(Z zX3fL(b3t&jqRi1=Omu-Oa?+`~HCBly1zb0YGD znKG=ZSGB7~=I6#1ZozwYYc5Hp!^`pEP-iR<{_jCaJ;8H3qwmKerci8r zEmb-P4X3%gpdW4V)orCIiOHe%U)DEAZ*D)yr0FusB5v@L5zpE4@SOB9tj$Ts?MAz% zQ^uO4IpxJ4>ziff)B2u1xl{r5ci16GMXJ32_e7lX0}jYYdWrDzwR4do*eIQ z?_Xt;(M7$@j}K0OwI84UPPYNJe)Vdt2%g0C;;Dbz?0C?fd4D<8)co|}UvxK@moIof zmG9lZE8m`fcs@O0M!qEF@!q@XgD185faLqGl zDN5&ov}_@nCr4}Rq##8)ZJ)wq2XyjTOigcnoR}sDpf6J4Fkhj`2JD_L>V8x`K#<3{ zCxB*`4PV15K|1DE_N89goq;R3WKD^qB$?)cazzc+MS&;>TG(UvkD`u_bdjybIaEs>>dHsj2_`_rHKU-) z3=Z4~WDhIXgN=M2jK844o0W(47dzRrQ9~9CtR;M%A)b@AFRumQ-dYSSdA% zRDNPGGA(~|;=xTS!jPzuw2?li76PjZGI+KkRQM7T?-NnzB&nn6@*;c-Ec`3HDVh3U zy)e>S+4!<_S#OVQYb8CQl%yEUK(;WKx3{J_!IDcm51*#_be9f-CYJM=sH!^CJ+|6) z?DnrbJkhsP#PW(n;$9e3NBdC7R84n2!ymmj<#~4!=tN6}oJ_Ti zMg)AC8tx~Vx`9zh)B?QYcWMwFvb8<9NH9O_Fn*%R;`}oY_hS0L<>9T7{YiF;E?dIW zQ#ZQC5Sd>7elyph_=vPg)1N3`im-kX%|68aA1&`-p#NZbuiJWjTHbN-mkGvDS0w+i zyk%4Wqvc&$@;_SMW-tm7gzWa8EU&8YHH3CZF zkV1!U+p#N^mo0-uRhw+H$B2&1DjDJPO&ssYnhthcgD5=Od>Y$r{4~Z>N(K!t{ zb_$y)6^PR&o7u-x%Wq)P9HjY-CUDk1pUb6ioQ3Mf|dQMjA1qUl|N zoFoZ7?+x$})D5)XUTYPw#V;98*H}(osL}jfz0`@~inxHecC+2lKh~kV=h>!fZUByU zC~;6B12$sX*p{Nc@)dSwPLm=%aH6BdrjBf`o9RnCKK1?l0s*9$9jPVDi`OLR64G=I z4AS2GHxz?Y4#e%JZ>V~r;2yD`miP0%V1VnbG!ap>7-g6wjzI=PtFv3&{|Ab1u^3;N zj?6&pp{W$oZVFgQf(@9mY&$SFuYBglszco=<(3FkrTNmuG~rDMl3B*Naq?ObaJ#dY zaj+*(Pg`#&&d2fiEo*QEipn|C`lt+~qP}^sE@4&oYCp}8F5-Z)c>^a9X}JJ_XnBEc zFQ}mC%a`!q9W4{jr`K(e2xm^t43p7ZFG=K{E^nU{59RT>s#YF-OFeBbG+QY3Byyjn z5m>1!g%IB9r*_&7pGEk1GdgAF&<6eYe&dwbXHbkQ-R!=eZ_&8z28P}6QEWrhQbXkp z-FkXGmXuzR5nz@`T3SmsbywN@DHAhJW(D%(r$7$Eg8sE3?c{zZZth(N&!7~SOkxI) zBT2I17D%!79HQ0|egfe6Uw{rc(cwA!7=`8%zl?{1u^Q!f!CN7eErcu~s(kgCPJKW5 z^|hg!B)@B9?o!?pL}vSRqKD{!Ssk8{oqYnNN_}16YbEL@;pK*dcX{ zYJl4>0_uYB>X=4m>~YdLpEo`bs*$tZdJZ8n3hFXE<)lVFp$$k64Gv|By75wE5G7CW zN0Nd?2Oy`yQwkV|{Cy3pD=D{%5s9y;msKwaHCJx<8M5vzx4<{tyPaiAoCr8!rWXUJ zT}eQX^=CJ+zumIYVC4;>9#0xP6c^B-i9^4-5Z~v_NCl{j&6}P(lw%TI5{=yFTZsh6 z9nunm!5rU=nxi5CPYk$&N(UK#2uYvNjI}2&1mV){S|k$7TBKZsM}k3()|7?lh}-k> z3c`d9u-WNW)cfwnjaQ~a3+tl zbeUvi6thnfX6<8?v;tTjiW!ZSd+Xo;ZxhGrFw|$tXQG1~0TK<20#Gk?Te|ha6A5g- zlMcO1U63l(Xq0yUVRZy?6)<(gt1eWVe44C+OFmQ=XDp#VaNi7d$wB4XLnZ@4Atpwk z;cgcn0a{{)?az+LBDZWHxYS@CGn5m}2>^rQIX1=TG(rBn%3T}TVSKO;G*`yVsVKKo zcN3#eo(KV2iVJ}^W*BW!qcMFJ+cw^?g z&cj-Ey!QXF_m(kvHu~1*jTd(>THK0TDGtT0xVsjoSaEmP;_mKJ+}+(>N^y!a7k!?6 z-hIyA^Uj$`CYec2!WX_=kU(-@>%Z3eEms{99x@g*7_u87t3vah@Css$} zf%EO;hcu-DHBO9fwFprmANk8AmHkoVcgiY!P{hZen0Fvh8Basnz8PogeosulF&x=# zC#uIorw1A5sPB0^iIF|2qQXE9rqT`+1g5%8^NZzdq2P9QR~h1(6f;e(QDI7ex}~I_ zFdVJ91C-L0XJwVETZ`|vbp$<(CpXawm8xV&^ukV6OKUZCZErReHie!wn z%BroXf!$DRQPnk<6k@zNXYa=2AO%7Z6Y6||;WS%o?H=H+S@(^ewvE*sRP6izrX=*$Eql$}y<39r3%jcWJM(?;8liAjRmSnGA!pC`Xq>4M% z3>U2>;D$j{p(0?CfkE$M4mY&qbcNwUPC+D_M=rtr0GugSOO@=0;Z4V%b8kjJRqS{5 z*MAf-c^UP~Ws{<)Qb|iyd&{tp385+}Kd3A*OhK-zsz{yMCvmHj-Fa@d3nLwB1F0Ci z803CyAaesK;xuY`*q#~L*B0~?!8vaG(9`PTGtrY_{cVlCfRe04n~jWq`!PcHfVi5Y z5fVIn%34$=Jog*dc^0%9-##*%0Qd>P4MUfh{hFV_#}VCb%tVe)hDZ4hM?C*hgTBmm z$|GAkuH^L<+5Dr3wVho4B_ocxh#k?eGy3>-m9gomWo(h)=jIrlv^H}j`9EjGVWf{2 zo{!)XWSJy>{*@6w9Y*pr#}&!?cR!qbO~ zyWUfeCP2^**^fKPyiYxaOY1bHZO`^RzB*-lGMIm9U3~|Wn7DsI*|L3lbviE^BP(%l zZ6rJzfO^5kr~?g zKG^kiI3&7refb&`;nbUJcPV=x?6d;_=n?{lS?@=Ot4#4pHk_r zL-$*Ao&Tx*Orcv{jftOLe=f=(w)zo~L-dmK$?JF3u%?+Bd|mnD1AT|O=y(^c3lxuf&qQO^r6U?%k(g|YDkr(WzYEzuzsXg7l_kak<; z^I05S4%-=#1~i(|VfMECeV}S=8(q)-Za!m50?lUxcj)54rk>A&dG;e@NC=fbuL}P( zpP7K>vx$zk5@vZ52VP%|3lg4Uf3irrEQPr6`hbM@YQaXxtQqB*owc+QcjK=PuQ-iy z^XM$8s#3BqTlCb3!^~Z@#k5vI)m$tMF5QO<&e{hoP5d>P;w$I5A42Q)~W)8SUzUwd$8APvXT=IxL-wBcca`!)#a zxz}6Bp~imp&dm!O*3m{n37NnQnE;1&kJ8^642>41a zVZoA!hZHQyj{8`}dQ>OO(eKp@wZa1+jPpcwOOS4u2~8PT01F2TqH(22*6S1K@Zx&t zNcVTK7G(>F#)+d)358z(W>Tq5V?*uUCjgm&*2D}AKl+OKT3?U62!0|8E>cWA?k410 z)lK9bdnY}#6Td$Q$eX!#gS(AU^t(OBG5C$!YeC`@l`vvG-V#IjYiVwQ?jV(Q^>Lqo38(`M^L&}}>t$uJa zoP#71l^8KI6)Dl|m0ZrIx7i3Z2`rHqb^`Z&x9QM|)u&o=&2s{0dDg2(l|=!Q^~}uL zUk0>}fWeK0aAgPR=m zqrLDqQJ)sQjg>_WE0pg6hJr-=svULp@<+2n@!o`?2;)-?&6`MO7V6UUMtU~ zzVXMw_{{voj&LFF-IPlVLFFlQ-2uCxyX5oL;LVgJROocccb_4Z(62#Jeo)zVlkjO8 zinur%L&Ug!GgFz_AoGB#yAZmLkl?{CaJAGUwxcic-cY~(sy$mP;i_&_CocoF=dn4Q z0(3G=2)R8%Wy^jXHH%$6kaU5*gD6(aPv+Q21Mv|zCMl^=}m$w!J9{8@Yrb3Yn! zE8&PH``REgNxLN2_-bqr4BllXlV$V6apbb4qWa1$b zh^ahrr*%qW@`^J81-MH!!Mt8v#oFQA25wDiqUC1^GZzGVASe$0wo`GQUL}~@Z*S_} zpto%a4-yQv+z`>E{WJsN18J=*iGORer`?y2FbX{F8O%QiZp9TsZgQyIGv5Lbke+B0 zYBAej(HNG!M1FO;j-FlrpNUZ-XeI7TE4g30>8TLDe$~VKfF4#f7VqFz z;05$B?)$IdHmRisWvrcm9!}{vkI(pLJv{!ediV`Ia=zog(Zf|(+yBtRCA(~0`icul z$*2wnI(T>j<}GC{SafNS>x?>^MqwF1ghZr~H`qUsq6HKZ{)U&+f}|qKyG9uv81Aah z!!tD$w%N5JN8P*rl55JvSIbI3;T;zb0#yJ#U#v++kt9i3y#K>)b0aaFQyoOU)0*LHOE~Mdwl_tfO z4d!b%jCDV=uJNyjfu9|qDF)Qv`&NWfqbdo8E~?(@Vt?WtmYE#thD^0S5@bP73xY0o zH`H6$VyEaL4I%8pF#iA#bFA*`FjOuTyD-ZmayXuQMx--It;z}u!bvWHX zM}Y-XPlH|4-2_>_o$j_}9*5kY>g;*7w^=Ei(;+8z#?nE_7+a49j>(!7H6cYY#P5XM z#N4MHF21t_zf7#nB%Dl|D zf9!3UQOH7O+spz89$gbmJ^9&t8;st@X|F!O-hM-l3L|$|f{0{CQ)PueorxyI*;?H_ z@4~73YHt%v8`N}cEszm!LL4d!0x@819n!SjP;$wPa5I!(`5Ix9T@oKHzSVMrZIGu_ z;D>nX5}BSiimJljEvw10d)(4n<%OhDz$)S+mCzFA)xt5jfz)sw4bu^FK;04Eh|&pS zrAjiD(FBIxH7AAf4$FAKcaaZ5G~%3R>SG+6Tq}kUhv|KRdhDS*oXJY8an6xj9nei= z+d}jvI$vtYYZT!J`e3w?l8zcqqxof~&Im%ManoD`&yKu6--Z$QeO@yE%dWNOd~0G|M5r8@R}dIMPHU>ifl$?<_O zj)w?%8}z|A-dH72SS`}R*I*kWhls7v$1E{bHH!N^vVFFmQd3&w4vO{>HsfdOHn zy0VAy5*U;Hm~^`_cgVF_?Pf%2LPmDOX6?ybl!4()EYIOcYV4J3iy5_brj}xZRgO-N zvBe?EC*;A-GgTEBwk>n0HHnzSgrIdR$8f1--E5^{#H85K!`$M$&d&`Yim4J*37}BA zrGPJaqiZYET`_s?WfH0}grt01=VQQvkI!*Ss+_HPHKN2ZZ<#r2YD=! ze4}Gfm!z}e+P3hXZB=;ih!zraV#p-`jsSLrxn3NsHaF9EKz8GQk;h08izb2%**;Y4 zZu?e%Z>eU|0>AJd@|Xw70-JHiU*xe%L9srtml$ay+U{?_Z+rB_*uf&OE(y=`Ip~|A zkBMM~ZXe`ab8m>Pq*DLi3 zl%3INN&V^mQFe9!%FYh1uVv@m;eReW*9OiJeI}8*e=rUrk(in?)t^k{Z`uj{g;X4j zoV(LIEZJPFAaQ~|RfX$`GddK~$YZHCtg0>vcdm|~X7@-&%tkk^*X&SHLx(n%pT2FR z$uFtILUdAn(7p3r*_s2OlwB|{L=0z4Q5(Xy{$(Pw^EC{t>|h3mI@Yizd@h6hDv!8( zywbeFLX)742Gs`(+aKFnWizT_EIy#m-to;`=W9!I%Z_yT`1~m_AZlD_t?Y7J^live z2NmdL)8VkT8ae%y>c-QpAz^ZM6PEP+6+S8-VB0MPo9YjyHoSPxp+krxzshaV#->zk zD>%%nzk7P-DtnncpSSvDujs<{6`nRpSZJ612cD*~)p@R{p8W?Q);TJn*0#P{?V{=> zpLUarbv}9AWV7)_c5=~^g~SXob~o;~M`$bi6=+?-c`sb2^*wXw=8J3}nIdwT4K>&g zrMy12`cmjo`5V86wsCgIu7!`@Q5Ae;zA@uw1)<;yGcaZJaC=!Pt_S%ZeXDWi#K;7* zLZ7~Ra?@Z=KNNiZJidIK8wdFnbubj%R>>PF92KL76!_Z}_Uv@TjEInyF*(58>!Hxxn6b zkTqEebnE{zn@xY^?ZEGo-L#Amhor`_wT+0wHax>MXP!*8q(>($j>dH0GVt$%bLdjK z@D8Up{^A^=d@T~>TS>H<{x7S!pKSeD6S+t`>n~-!H7rc0oCeGfp! zK5+c7@+@iTJnH}V%9*4a6U%ix8p$7o)rB9$-ZgtUM)Z4CKr;a<-jiC zA(k*#8DJO!Eo@4H*A}*){$DNZCM>64hlWKuJp1Imm##8XB2IXHtBF@kV6pL|mM%+u z_)WxLf3vROjBZ~+to2`X8<5Y%NAW>giMGyU%&bV5NLCB}3^|N-Ua?gED9~G^b4y3q zPdlk?B5pKo_5Dmhtmy(EjM1t6SHc)JEoDBl*0rhKYYAKP5)}I+SmATXtEv6;cM02= z94KMK>O#{5G)1Wk=EW|&>g*BWDZp*v z8`~6xHTduNxREes??2+>IZ2&CLbQ1s=90XGBiO3-*_f00O~Lu^H)WT0Xam>E1>xEQENy-X(V*iHtvd7(=H}>KqJ_#mSFcQ3jDJV%AJVMYD8tY|j%?TIZ zE*d^pt|bYE4k@QhQX0$p#$dy;hzSvm39EL=?-?qC6Qhy@5oSapyhEAbrxDKtsUmBB zCmr;el12t762v?<6wg*as&ssA30Jrh-L5PEf+7%BapCe;-h@IV(o`Os!d3jMlC43k zMc{Z6i2}bV~^6?OF4` z^)|vY)c;Oz|GLqaY%JkB%Qii@tEl!JYZK@^O4*}Imz^~yd7|&;(AAXOl3N8M$fO?& zPNX)1raDnZg|$hi)L+SL@?sst$r{R@TgepWm3sXlz3%2na~Qn~mp8PygC zU!aQ|6-uFz-80Ylfa?Rt2uJ|Y~9yW1e($Aswt|7)fk!K(O7+^4e(ls=9| zLqC?8twr%;c2MGO;YLMbm?g=V^%`sAF|XOGNn(bCHF1uJ*6|QGasCYNv~d7H*`fEc z>!&>k@7PhDs<+zz5!^W43UC;xfqcS92f_icQyXIW1ma^!^AKj`Ag3D|hn*nWWseW> z4lu{ZU%c#vcJd!55q0Va$o-e9nI{JBNfDtcsQjk={4pl~?U=5x4!U@!4Z$o- zKBCI*AI<$!o@skb$=&+fmP)p(t)0x}B^3@fO%0hY0W}d2CJ#$&7Uh(gt5W{H0ffm< z)^CT#|2a%<@~>fXKmS1N_J0#5R}DS?N0@x}0#A>L=F7;)n?6HY#Bk!e)j2Kr1Q{P| z)!Y*1LQ8k>TvAQIgNBLI0`-bQ5~bEfsSI?emH2n^LoX^IvNDr4+BL+yDRE_2s7)nO z|Be*PKO_P2QUMyu=7*<#LkGt2tY;B=&niu$F)%0{90uTFG3;6#fce{c)nX3=O=IN9aqSlimm@TV^uh@f}al&vua+cn{B9{^dl^=Ml+F;wBMW z{6J`9$QM=&POvoC^woNMNB2R578%{9tq6Wp%7GNG@Fv<{FLXKSO(>N*q_y<28mHbxZLqHwx_9LPo4C#o6VVNO<(iigC--4fcG#?4e^=bR6JD~-jxa|CLZ zmuKZ>9sxSrE3cjH4JB4X)rtjuLIV3B!iPVd?Tz}2=s}>feOWpNSuxb(osM+om8Rq; zqIBFXkFhNSf%oESK^!OimOrn8opT_|U?0~)-278B6Cw?hUpMUsx3oZrn@I<;1*VVe z@N^N<;Ap&2_mi$`O(g$cm*4RI`2Qro1^E9*e*cgB{vY}M|E~O2XT^6dBcCwLw)PSn zY*-m+DSQ_)$jmP7LsO--qZ>_`PO*E% zJ1gLgsn&Prc2nf@u9&GnGGd(RJK??Nf8b!nf5E|Km;M6|mL=$3Q{DX+9L#HiNIxxe zlfLEe==1{+o$lOzr+yFQ;gJ}^@Qo!l=nw|f#}actdR}r;#Ncjn$NWo4T=nVp-hUgaI%4aN z)gBPzO`3Z5nuI4M|Gf}6hf3-i;4=TWBjANn|BVRvwPs>uM2n*TN>ox>uhze%qIvzH zqEVi#XdHRxowTpB01fMc_O}007Y|wbXC_+O+TQ)x_UPzr8NvQ>Y=Q5k?|a$uh-T{_ zJhCnId(9lT!-E^M)5G1v+kDd6Zy!ohBGceqr{~u>Rw0*eyPY%h#$jq-e*gS~MCrJA^mKN$xqDiSe%H6#@^e^E62hVJeFA|arQ-51$;XW6QxyxZ z?&1K4{@v7A)U*k^WyWajm0^mv`h?L{8r85QTxq6s#)cK$kBrS83EuBEt|X+~np1yy z+4ONLyGge7{D;vX%FoyT{9I85^&wGP2!MgO|Wz=3Z$Ua?dvQ zR|MQjqqnw&(oI!?fwP*H(S9D+!UK(Kcf77n4NvBW16V@$&|tNci7K_9E&tk(2u|g_ z+<{`{GbmB@Dd05IF3;{vS67LA0(bA{}05n?bHowy1_rUvZ zXZCS{<3rAxfy+U%;Dh5EZtO>1e7Q5YbVh5D3~@wza6 z)-4Kg6vj_1t)k%z7)kNV7%S+Wx+unI*_oSZ6I47ir^+A43j7Mj1v{WB(XdnJh9W1N zL7!sih+V<(o4&b02~G3ZuIlqTCU;;0cn(PG>A{Q5u@aeDN3nUC{FVU-+&l6 z^J1*ZLg_UbofFD?8Sw8_n^cNO@@(p%0R~W_DCwF|L9$cCVczd+`dD!cRVRwk?y=q8 zYU>8DLgLV3f+^8gVxRECKTIV-mmzdK*t>(19T+WS(^?c3mN<5cU~;<1A(Ux@fDTu= z9X7%$Ee7!N3&g<_%~8eQe}0cOR_AbqSQIq?K?>cYwElRK;xw;M|JDxV54K`U{8t`4 zYbO@SgOlDI{!1QQG*VX{|6lUp%{9}1^U=W0kN)DL)i@ffzvjUcd;ZRYGYS&^Z}Z@M zN%Xd=5C7n!g={Z}_)M8i)6Y%sKrCxLp{963aQ{?KMSuU<6<$ug6c=rkN46)4-#*wp zW^yymAXO-4_sdPW6C5Vc&0Kh=Ki9z_?R1L_xcaBKm2s73lko9oZsfm%MYWTLHb;%d`GZ$*)|k&s z(?CGYu~@(DGsrP1W|q@6s;MZrj3U5cLV71=eoUqIlc^7-o?D+gExV>T$}lk) zff0Pp^kig?X_x?tg)Usil8D@)Wxct^J*eo-lhIF15DiwQ;t!VPc}DiFRZ0B^#?7?} z6+KO1p3;fsPv-C_@;7;3f6m#mFdA=Qg$KZAm3X9$Z7{$P{lYJui@rSf$P30*Or=fs zKd)CGQ-pK~O@>SUAokh1Gi)&QKSR>;R7|u>EOq6bcVPeFBO_}oY+08`T#Lnu>R@FVUR-C@Fl)Q$CyfhJO66LT2qEbLNe zfPcR@qJi6!mgEN~R{@s`Mi~5wDw-UUN92B$qmP7^0sj3FKdt4jbGlu2Rkxws$J%ybGqm{hBAtP9_l|uW zlyd@w%NC`4zN>*tco_(j(KraA8$2POGipiSzFb6tvYLZ#N*!0Ri5E=tah|g3%+K&s z#e!<3?>6EE96GawB_mGKnYx6|JA+OdC&XaJZR2geVWzaa!wIn*nK_7^kN{|-t#9(T z5s)zA7_g_VuG=NzUf_JbWC0al?rICMP;nFOXY$FY3>jTfb;}JlGll4wSz9i$xvDw> zzF;hPpXklvq2hNHLosqs>ku^Lu_qZ~s3zm_hFEv8Zo(8?brW+#AZnM<3d}{u+0abR zThbXOg`&q9HJI#X35+@^XNd&J^mtG6nlt{C$4AeK5()*cpk{}M*=6>=YA+3Q0$lLk z{nDH>bgfBZsw-%I>}2#8O)E(LhnVkVs$`(i5n-!J6k>Ln4ie5QV^aG=e!V1TGdaQz zPrwC78BGVpzS)w~`^yDqiX=Ah`3AV)q3A5n_NxcuhI&3_GS>LlLOBNDkEHpoUogn6 zL8>C%kXIq}t&`_|2T>V$ao^vAOlgT?LH)se<3|Y7#Zr(Hhn0v)BqCIb)x2F_JgLk! zwsfo!onvla7QZ#@_Jto?D>^FC#1C4=SopPUwQE(qQ9#R^^qX3HOVCI2jZP%S=wZ1| z5(-=zjfL2&(;IEStkwlBmtWEFPm_@0E!~owv{p(D*_g@3@IV6MOD!@!FVIBdJ2ID z%?`j&LsRe8ibBT2AbS*X)|yY>s@oxM6elEjsU)94$~kDycA(PzT(GSol$T=Wf(5Di zBBG)|kfIAdu<~3@bK2}I76Myh-!NP$0JJ!cA#X4#K5>eEQ8@D^>+D2=_l=FiXQ59kyVJ5hb7|pyN3(a#m{-n@(ZnK(GX#biK zqm7ESq559))*l)&XREGaEQLt8wB8)5;~0d34uYj`SRSkHA=<-bj;l%sR>TJV*1s$u zLl#)QHpv-eASK|e{xr$?v*Jr1tV;rEFc_#-hBl-reP5g8YH}sg!Cqo|!oY|aZAX_z zp5d^iv5$zQ{dgvDWeHEY;-BM2FkY(QfNjo)iQlSC!}(KCh&1}u55&p#B@=8E zy10J*+U}ZK5(?7b3h9ZaKLZ1U-{BL&;)(UR6%G+}9~xM7f`ZeI`0zACn{+N5R;e!e z0kSyfXGN&@u>xCIFu=^$S1hr|DfRE*+F1|+G6^|7YI1wY;)D*#3trLKRaduYdDRm% zEW|*S++^8u2gT~}$9j)%$f7ad83%wCpWy_NZ4gcsQ9nT?`1#Hbf}&z{A+(K-#d5m3 z%`!-?l-J_A8$fdDIr2VJu#p8r=S9LcR43Durt(+R=C5e+bjCyvtO2;>H3+YwvB1!r zdpOj$5}Bxf?R*LNytN)v!Pr5K?(+d@ANFosX&%86=Db7Tq@q=Z#N>u7HR=fiHxl>u zk6fy9HKD>48H|gTD#3+U=#1%i27qnI2rWV7`W^Jna!kwE=#L{Z-=O?CFvu>9k< z9hq@KHbWlsqYcDhXfMSCwxn{s>`>pccbgfgm1iH;NlJ)oP*~>9%4Gh0 z9|XzDvVuYrAD>T;2`O$-s^TsLW{>p5Y@A>aU2a{GXA!tR%Wb!`ijWgFDOP-^yRGXQ zMr*31bdbDEmcZED*F2bCx5TTDs$faponUGv!;S0ri%bG*UmL^j3d`UBsN|sOn^-o= zvCfzI_=2h!>~&FA8)5a|UE^hZXrFjt?}_;URC&wn9=Wx8Qv1Ch3t6Y2)(=#w!R;r> zl{mEz()5}`t!lCQ^{FFvKABTr;t_tq8CQj1$x7AVAP>i>o?6q3xvBinmY@xxxc*q1 z9(@AWJjXIr7!^wR!-Q{Q$;lSRdS+5Dk9%E28lDVZ(oJBMw(dABgC#sDv#@m^cTN*I z?`KFWq3pQQ2KH~--5VBajz`J}G|F?|rre#SIkN*&?##i@aU0%4R5{!Dd{v?zoT7vK zacVnTwuuk}8iyjso!9z{Z8PHXbbD8(P<;k%xO*S^zny9pBN zQm-1Bxaa6LT*ok|y!D~|c>npzG%N8ArHaqWLjQ z#`lBG(mI{`-0zgfDumjiJv&1kVd@Xx_6k$8hX(uQ)tVRE28sT#h4ozXW#TPZu|+j=2@C z39jcd@w7Swzb)aeH|jofMvU)-10sYSvg0<$ydk zf$t2YS%}7;nm>GKX;~h3%J{wXBW-M~kD|?UZn>(B+l7mh?{;hFsL=h`P;H9+PfTAH z+FIvNOyA{VwCdrD#e8!IvitQ@c3>|1^GwSm1p?F$)Tvf&azY!~N-99I-k6I9d(N zAaPpwkD@v`ZUL%p-%FRU8}%OAxRd-M!*_wF3x-+Jhc|)yqnI%<33BK%dl)*2_diAbsLzKYl9Mvk1v>a3RY$I zWfS`2sV{iZS#DK}QSW^Wg3-qXawevuVm|9Bqea^pWK_aNoiyFJg?3IQVQ@ocz!N_hM#tdTat+v*Uu^e<_EM;o#rO^uz z?wt;Qc|24d9(M}X6fx*<`^IC|zlnpb?^V}D%lAM^RR4vINMFEuvw5I#NIm==cF3cW z8hqDi$h@jNp^%-zob<(EWv$5jUWO*Nx(XB}*E+gFBqm3hzbI`$0^GE4Ll!TmWPgFU1 ztL1~ej+AAZd*4kXVMJcQPkY4+*nLvV0KIV~gx?&(aoH+fJV1w%Ir7se!bXF_;?-zm ziHl6cV%1e0+~55q0v@MHAv4e#P$gVnnI5mv-3B72nHk%$;LQg>Y zHZxWs7#M`9+nDBB3NbHYwyBiRQ~BX4HbkiR9#}rtw@2cFixhsHJ=Z0t%6EnXmTE0U zDPz4zYIh^0uj#{NEqQ6y4c79JQ;Bi7e=T2S)>X*!b5}NY>*I}AF3u9wZ*p{Wm)~*O zDP%Q}N%*q)<_y;ag~MXBTXW;SmErB<5;hYxJ~amh$~t|KKRzl0)pg?c_Re2|W`=Rj zyfW@WEackns&{MB4EP4*Naw0BNio74fPu2FPPW;5Mjc++hYf9s(r^IG9gX{0Lm4^_ z1h-9m)^A6}!VUf2G&8E}>dlDF)T}0Eh7`EB>_=g;PpGpzKUu@#`@c@_1>n`W#JMi? zzMpJmkRUVm?il{5Sm&y4tI4?TFhaf#0^N4w(yn)_8Zspx0_H6Df7&p%&j?i>**UXuhfw5+OcEYFWw6P&mXY;+9RB2puM z(@IO_0E^|Vy*X`)H0v=SE2huHH8A2^Bgjvag{pLPzfwwJzn)!*oN9Hp9U<}{yQs7( z$F9r1!suATjRhe+e)sqt{74XXeu9Kr*kt<9^k($a*&_-`x+g&uC`L163o8J}WQX-5 zM_!`S0*%9f4ehe^YkUA7ADAu|a^rY36~$KmB%hTVCWRw-=>mU|n=X(A=BKt&)m*+X zNQK}vVUe0aYgXQ@Wqvf|*GMB>v=L$?dB*ziUN@6Pz8^oWJwB?9i>sg9WheagZov=S zEiUD%GSPld1hmlri)G8<=&qnphWWQ2JfbKMTrGBBOyNxc4Lffd5CZ_|?woYA3sw=W z-V1JDYHRH*+FGnfbr;OP7sGn}lHzUp{^DgK9w%ajk(YU^N6e7Y9sULS}xD2;a-TCaFxpMv2xpH;IP*C_V*HJbZvEhU( z>S1GqHv|$>?NfYFf0@N&$(sU5C)0IlEWg#LrE~IjHKx9{PhVYDy z1RJzGuI?F)7Hs8fmmQYdLLaPKQ}vZh7Yzf=wyG8{Ygj0Z!#SD*eZq6pB}}{{2eC99 zGTH&wB-PzK-?Rrz(LoFohWD%i7+1AONaK+|Q45wo!nH1&adsn&Qw z=w9W&t2yV_!{G{6!P{t$;JG9I&ILw>nk291imN4RyUU3DPRQq5kS0&40dTdrp2!&U zfz(j7wzw9`5(0me4g%10K~`jyKF|P~PR+S{8+MMQU4oGF!IVQ!z*!fojiD|>%E*EeA?S6m zj1&vlC|6k^l_1l7qm<*Y%(a~A_O@K=6Bn^)tnD z6-Yn^#-yRl0Dw9_08rPAnj<<*qWq317biDv8V^;GkOu(NO%zLS{{^U12iG?0Lg$}! zQG)nXS!vMU>nhANxC1PdBeDzgBLqpkIhj72klpTxHp%gU2DXLw zgpo5LlyyAqTP*5&`O2sp@+B&6X^KHYrFAZ-0q24Z%;p-FH|1xf(SA5;y%Xp$FHr`y zB7vB|q9*KGPUs{b_0ma%aF40IHWH<7M+2VtZH@wfdi(AcFi*ab|EJ!Lp+4CBQtw(Q zxareXhOp+qO!ZoChpJnOdlQ5qI>e54@`Xlg;?FvH3|9l3mH~Kzfb-AU{@FaTSu)~Xm*74R=OoVR&FD;T z;gP`N6{b|)JuHN%g`(%2&bp)ra@qNCW?-DWKbS>C>5Lhd%*qyE)M=S`_q;F5qu#*e zM%gjsl1POzN>APqNDM~AaY2=gd@oM}U&ajK0}P1QuZkjVCagV3^Asjo-avT1lHkK3 z_`!dXq#(G}-ZO+x@t!?JHE)km-bQvC*3(0W&z%MBhN!Q+urrJXq!zs&&tU#EBp z!m&g$vgZI2{06N3p^0~C)Zs@^(ve#uXK@8eXBOl?Aa!H|=X-7<0)(h$bZ<7|wGm{- z^U^n%xVyZ3tMx_XvV=O+MMtRQ5-?P63kgb`0%GLjq;LmozgH1s(z%400Hb9cm7xbT z&?`PLm^JQ9w)(vf!2DR~jZwOhyegL!Wh|I(JK5`KnHF#dxq}?bJq*fN%VO2?DX^oF z?$-iCfG)DlKwoLgha2Dxia{Z_W1ux9 zMrFF_Pfs2>`YubgaFspvjlV94uPP#e!3~T)_^YW8l)keKvG?}Ma^%46sg8<&fH93` zZm>3}-RdKeNds4W!~FHpX4UAl7cCJtx737o>RcmF?mnGw`c_0)8LRi$8Ohfoq8yB3 z)%;dfY8oox;s)iplL9k8k~9w?)h6|Wf!1;5F#l11Fja6cUpnNij&UBx^BZi@^>Cir zbyyBj z3VgL^@GvHnb2e6aOmRgt-Eol%I|~3xew*;E6Bj*x^+LUd*2iJ z)J{YN<8k%E(vE8X>@*3PycA<^by7fuGaDzhER39p0q0>gu9=!M6kF$iBenlX)G4Q~ z?^&&Px3=~YwMMSxlz+}$bSi((_c-~IyrB)D^7Ew=4x*rvw^RICUu%+8wZN(}-{%AU z9MgXhzA1jmqU>c$$EH|NTw3*b(32As1P}qJz4AwpMXQU>Z7pL>GX5T_A&c~x^ zPe8PdA6bRKaOdj};SWkwy%%;W>)h?PoAA@Z%U6NzZ1xkhrH@3c!1~u-zO)G5*fh_T z915eFn$!2K#7t*`W8vCgfoip5xkTq;Qi7bYvk*qAk#oshJpyuGNjP2@f?$GXx$nLTkDW`gtI@j=8^}!UXNx-tqy#! zo$R1)D63|wWl{_Q0uP{174v#&PMc`=dUHI_dkigJDy4!k$LD-{oYI)%{7EGkdkOko zMe92c3A?Cr1Q}efo zEIIrp{@y1)kbg;3E-Avm*Fd9m7P1Z;epn9W1En}vh)U$yd(;j^OGs9!X0IO#`$VSa z$xG-B@0%6!ppKCsrhiotaf5xx{vBIe6gNK3%R0+1=|r1%&qA%leD*flu1|t(I2I-H zqso$!Yc1GGvEoC#M;-ssJd&1<3$F05Wq1>h2Xl|dc3!FBw){{|$K=(5jHgFQ5XBj@ zPkggG|JQHKq~EB6oOAk-MR!{LcME#gLVt73x0)q~{8}o-sJyPB(yfNB@sd{7HgBLD zVh5OyTZAp#!XHCt_Z^pc;V#Wwrb0Q?w<&JZ_OfZ~v@3rV%ze7cttkb%i=+zpmCdECy{v-y^z@w_C1U_fx58t;hblcda!}TqZ0%ZFCQ6 zs~EYG=k9=tQQRzT?#wXg>b`%=+_X8J8i$*?YHWxf$H03>vUr@EhFGV@avHux82c+U zX8X#p%G@0FGm<5x?yP+Er_HZ%@mez(YZ}=`YR_Rmb_KVCl^P1Go-U&+OMjJwZp^2v^E!r>E+RNJ|ydfFuw za9}N2yXgEjoD=01Gb3@y84(k9<6mli|4uvIXg%mdPjIZ7wxPegv2-df>9QFe7o0*5 zk?M6I*2r_EsRVL+A)LE3rommi%Ez_XU+2wV#P+xKoTu>b#J^XyZQbhCBdPUeOob6; zEo+cUV@?&HemiSB)zEB9(44|i#BhDj`>-MyV09i#?4J0^^Ze6sZp8yxmQy3d6&zBz zV)6%S9EA$5)NO%G%Rr#z{R9){_p32-C@Z5*O{^qXaV9 z%yAq#WJ1Qds#=MaO=r$ov%pf%cXqocH7Cl`RhII4iVTPO#wroo8WZ(0q$MvSs*0zk`HIk8Q_;c(!^&uab&qkxn>;s^-m} zbdVn81gb&@BLY#-iBlyV3~U}moEzt*<$H5YXIIr3TQr1n9!0DI%9|GoR(c&9%#0G; zaCi*oX^bAIY9{=OvEKzzKVZsgi;C(RGb~LvGLHT|wjt!Hq zpKm7AU-izAkgJ>*Y``I$^wz`Z4Z6W(ZF(KYe646{)X20fTUf`8KQ`^sxv;ovEl2)( zF1Npc985LcD5$)}F_P>@4M<9`hV}P%JSd1t8VX&tX9Ud2vd>i70>bBJD*s$Ka8u)zi>X>fca@^eVqp~ zSuFbrY#t90uUj0aj>ZLP1{n3p>#2EP~Q%D;LO-5))OAd6c*R<-bgl3P2))^@3q8wxxYJbW+Df`SZP#n9*Y zM9$|w%KcW13LJD_7k;XYL7v?cI}K+Rk=c?lPw%cl*M`0S(%f}Xtg}aU-I+;!l*k#1 zU>3e;v04{GEh~Efv3pP26iZP^W3U$~Mo9TQBfd9P{h5n$=diZW!{Z=JgD_m- zyCF8W(s$!w+QJOS4{3aAg!9D%4^mP;42rZ5Eb_=@jK3F(|RK7w&hO%8JTsyB#I z)%15r0lnT0s!StMs_;|3H@DMO2^ptoO(7KCcQ?*c5#3A-J)q+N6^|Pc-Y<*hykw;` zYUM_nM$x^|@FLH}r39OOy%wcZk$OIdRxz@HMqX12KVvjLKfuZ7sSN8k8=@*>M#Yf* zna4~(0>8D$qe$lMDH&#KzR|+$V38jfzY^^>U@u!IQ~fabo!CJb?{S*wSaLCcqsn|` zAuz(~8$Vj`K>Z_9Nq{>GouH zIq&QrDR{)h;a0uZ;sL5qSSV~|r_CMlq?~^aTQf+xb@-rXs!ey4vjuxhnFQgBc&0>V zO$iP<9D{2|GI_WTno~aFD|0!=x#I z1&xOZQ}@-eGUtt_r;prG-LRIuQNaZJ-BSr_u33iCqYji5Ttfo2?i;&Z|A=Al{%s5k zQDr(kxN3d=VU$>ciP24&%O3`j;460l_T2{ecs8xQbA^l`qq!90W;Al6pSocOsK@qj ze%J|4-~eD<(<3Tds6?Muhze^@L3g!va58L!P&+4>>7qAC_dgA1*J?Dzv-MAXAYh90 zOuJJ*QnEzEmTiB(H9&#-ibOvd5`@ zL+aA;l;m*zZ7vu!(8+H&A%GbXgD#|$G4&|QD>xWw+$wN-KLb2rs^<}h8@9>Ol@uh;on=kqvUQPiF^$3Q7+ZMAmnWF|~ ztT8HwNe)cxI}<9_?*NBq9i-}Ape!9l3TmDV57KOZUEzv@jMKFbtz#|fskj(0pB2lm zLk<`hNxKslf-h9iM~VlAD4&Q2IuMm$_hlE67HBb4j7p%>NrHtPs#;(=@5n0PDn1W} zi-!U&beYOZ7u8IH^27V;0I*lX;YAIDVXDS7uOpE(52HGdai!C5!^}{UiCIz*dGw3Tj2YOYLB3F8mGBtK#$dLdGe#6P1JT5lrzCpJ?_viYZ4QbN7PG{ zpEeVeb-vp99z9UW0!Lf23|M1&0_BtjH3KMQv>1oo#~+{T-3)1nI0YpzkXZ#Wh#sGT zfN^F(pa%|Q1UD`^v$Ia5z?fe>8L00FrJMmM8OszzGCUjy;p@_fU)=oMa6e&!~0OB zPa)#%KUPNfPM%OXN-3VaCLaAADI(PN1a>7@9hr}y>c}}fC04cqC^Q}StEN;tJ5Gfr zosPLDN--hrR?tgW!CrT<(Ah$&-2y5eao^u z!5*09y%Ij@u59B`+t*(pA+v3qRvt)|^WV{d%0c<0fXHeVExCqKJd?f*$o9Fy5Z#ia zdQ|K3BBeFyel-+pWJji=ZZHu>cj*N3SE@R0FD3Xc+mK~V>&uo72V;W0Z^U29N)AHe zkIcdzR{{iU6(2)ipA3yr`{SdpsmBpH4ce{&KvOCu$0+~UPh%gXawNE-zx6Iv0+ab$ z(BQGJ!Dy+#Y?7BD5`o*5jRUnf3$&PvR!$`$0Y!wlGnp|F@ER-DC4WKA5H?hKkOH36M1SLvP zJ_#Rq=lD|6a2Uiw_kf@3F7gN~Abc(nBG3|)+!-|eg#ehbMn*JOc)ai%3;!n+=Pr$V zRU%pgS45x!PQrH)`?LUp%=?c;PcUfP77lH>C{ZCCSP`7#m?YBxwo(u3zQvHP@C(Q#teC zJMPSJPyV8crWCO-XaMx<{ow1^$n3XMYaVYV6VCNQC#p}0t3_!NlQzmgzWk<(J7D$Y zMIcp(Ib=e?i{TaEsQmsgcSJHqiUV;l6OapAc*<)XPM_sip!|i7$;pf}e%aSFEv>Rn zT1uO>pIsyjXF0OP3wnXrUU=vxU@#ttrLAia=>VuPh)Ozxt!H4hypf{?tkMRXAo)Td zbRQ{vUJa)?x5^$v2bSO@F=mhG_;}$n&W!HWlw30}@mZ``%vguy{KJoa zo)s?sd(C3hppyebe&xxvg;k;d2<4&ZAM>mtdkipMp%#Ql+ z7*3bkKJ7jz`GA446|-_LjCSyzn*95TCjxf=hq4w zhL3&dCG%5PQWhw%Sep7vdXs7@` zwgO}4IjKmK)zB7;ElUb1-($8k*XWhX*MkRVo^_K^4h~DfgHOK4O5O?U=C=jTFjY-b}5Px??(xis0iXuspmoRpnDrnS%YUTO@Jvm}Y_nD$<_s?0n|HcVE$|^7DOg5T^nOm%VnbNR{_Pf9R+HHTyA@0 z`OtIyF{wyh;d^Q&dSVANiDj-%Qu6Ec(wqjYHnhk%icvWCx{2}`--Fp4!_rGy{Uy=% zYmsOAa{__Zi7*10=IYJ#&P%SN$M)O;7M=TWIQYG;>bjfI$`aCS6}O>ehLe$V)L4EGL>q$ozMM5 z<$lt?DKf0t+poVIbBof6D3j)`(r!-9I(Y12J`7!}%?fG^p2|bRT&wLS_^b4ol7=8p z_xx+lp%mya6T>z+Tl=(oe8Nd76E#xG9=wd?q#$6v<#uzVyZPfLb1lHHw*R@Br9wG- z@^{i9?Sv%X9v8s-7IYNG_1POdxJG?JW`fdBeUMxp-?Mjg{TTYZv|QlHg{yw}{-M>x z!3{V4XjH`NOSPE;Yh8VP{Y=TIJ{n)dmJ9I!E6&rwJC*F&zi(%XXE!i&+D;^s=DB_0vr$1cEE{V7H~8L*B{j*d?C znI}9awQgLvxVNZ>mfQzND%$BScz}&m8^A_tn?n_yNovZ$@@hGyZ~goCi0>m`xbL=q zx!2X2X|4vg-Fu7+e#V7d6nu8lCj9w)rDXNqt-tD8Wc>&p@{5&a$&4q#*8a=c>E-JALp5n=slxRjVJO|fNiEU> z<8CZGY}G}4fo5^LnRR;aUo z^%8TuxxpE}I;5q1)6-gGkR~WgA@va6a5}rV#EkoedChZ+B3-aNVy;q319L1J)?hOp z`Nj1V;)0bm0Rgg2yH)jn#i(5!%e-?oc?C&ppI8 z)${zWF}99Dp|1%STaNVzjNqPLe7`PC@ zpoNRd74q_9@+@F3by4y&Rty&iky@7*C*_40=Z4re-DP6PN)IG;FfcbmON`z-OJL$^ zNzrSvNA(1y8m&PPux5oXYU2rTK*o}Rn!h6x7=}fqk2Br}IW?y=pY&7+?!|kv0e%}G z#!8MrJb%d?z7A3A3KTSX?$;g!Yi_J~2h#j`f5AOQUm3!$# zAn}jQO8TNFU(0kR3Q4rd_0Cg?5?ksh9rQ*p2G>O5X?NMYIOw7Nz3#Cr*$5eJyREdp zlv}-bh)+UhP0t^Kp)2en3dW^^I!-c@kXmPBpvp6|fVjAg-eYFpLA4Q*^jwsaV(=wM z$}M&wZG^E)tQTCKBdGf$U|SkKSQN$_>*)K!X&D8b1Q7n%?b@fJiHnPd7BuFu;?J03 zqGI-92<1|mMd!ly2S#%JbP7uTL$O}+lV&oKay~V>Mx{A)hS3W+oIS<9bM8ew$^;wb zP6JtFi%mAZB*;MLi46e_hQd0*{7+?YH50pL8v#U}alq0_KjJx(A` zv)~}0SohfczI^f+q8>B*tg-yv`C&t?)xg^10VY}K>qn;d=Q^2OL`-4xr zfHe8P=FU~q-~A~py|x~Pwc1{6*! zpBDJ7S;t@a>A%W0B+$%-E3w&$5}}<>4Q!kP7q_6fzu*f;?Sw!8XS0#nd-I%)-HLd9 zZOfy8MuW~XDj=Oz0YWmvum%cSwl`oUpn@Z%Jd*%@oQ?rmIjGj)x5@kyI4PX<$GlodHlmz|qjz z?l=VZCV1@U<_bSoy+6WyL|u-7gJaATiiVGxlEpP(W!U^mrqFJM0BjX^dm`R(zB+Q& zV%s5?4cb9-w93+=OGyf{^2{+%`16=Up-%04hXENo5~7?MV1VU+5w-tC)czMy`+tL| z4aokF5jDb{?hdC1*6b5?bXJ&)qU2<3y?mUB-qI(`T5P=5;p7FGj2tVbC{_%idsjo2 z4uAPl$=9HxJt+Dh(mGPt5Y-^xmgrMxnu{1cZ-znb=5vrRAgf zdSHV7S&ZFrrF1vAiM}`*2Xlpr`SnP*qGGFu1hvUR!H<^t@VJi%)CeiqmJ;#%(vt}^ z0eLJ+qit(~HVE`suerxguQuG8pl0i5T0k4l4y{_uvZPYRct^hOBswz>+hQxTATz!+g|wVmj{Kq-M6+bF z7d5u@b@23gK1b2rJv}(9hrWQU<=L*-G#I#J5>Ntn+@zkA z6wV6s)-RzG*4FZUvumPYZQlq6(CA z>d&E5Ck6p6b(iF4uf4G_x3ht-?1{{A-2CYVs%dQ%M<2>=fA_{ZC#Q>^`dnT-ma9&q zJj1G5XReTD86OpVd|EM@45Q0S7((=f96&xW8P-Sp674A+^ZrSI-&T=Up#oiojxSuF|? zwHL)RbLgs=_tEueqqcT7!Yo}&Wd%JY^yiF+?~BE%=gBFr?aNrR;p^Dx4(}kUXa9>w zG5OuMycdGvR91ZdS{uoX>?m{j68Foq`4x|w%<{6=u~Sf}#-{x;0BG=KlwLiJ`Q%FJ zcWulVP!y|f{pX_}#^E21{${|wkL8W3Rsa3|=GN-tYG`b6?saLbq4>g-#tnq$N9-1N z7Z+!j$DKj8{^ROW%>xkL%jug?f|&W+@9LJj_W-}n7+~Gy;l$G1@|yMXxxKlvbsylJ z{o7FvANjBuDNGUTJoSU(yL%PRfar{UmvLQO7fS~Tx?d()&FDB3c@WM>MWG6U!Q~jl z6}1aZI#Jx3+zYpe8@;Wq) z1Bd}(tszGZ9JTCO`jy28-mnWPQ*nA)1U$@7IY8|Qp1=8q>fe0B-R2ddPtKwvMkqeO zJiF3Cwh(ioqcZ9oYBmBFd|`Btkjaa0c6awKy4aW?$tsfah#hZ30Inj#dFzYzW_LpA zwjd4V+>3#Rq3XbIzTwkaK;J9hK>XpGQ|wnxx=%`fE}h0}(TDEEfQu;dNyHe?<*T2o zane!cD8zkYbPrNaEZ#nPDDwW2^DT4lQ=rvF831t59=!h(a0soX$R(N1*v&4@KoBF* zJp)|i*jzR$WN7!nfv^c!@MwXlXllL??BF8Qu5uQByMOTv@wc@w@IZYM!a$0!Bbkm_ z&RH5s5G8Oi4=MLxd_V10ij+lUYL$Pu7SmgQE_9b@jiRbJo$GoMC%-nX?x&S{D~w5i zz7@vmx)d*AKLbaLLfdGa{g`eEH>aQJI+gy6HE{<1dWx&D3L2DkDgG0_kgUnsMtZzn zUGuthN(5LsoeZfn0OC_8I8}T#+mI-E9XB3SB4}Xd`(x6eT&(|;p+QjDM+J@w{=s2T zzJvk}!sFu`pOv&u%}j(Doz@Q-oEB9Kg)If=7 zV!O9is@Sq1RAB|brjYbLD@S)-67~H@O^iJ!UX%TmKiIM%s%gv?u^`AND9C4kWfF?- zq(gE}rY}|k%$y?q>mmLDcU%hP^$_pbD*D$$+)XX+_aScf1%KN2Sw}5#J*C7Z(15X^ zYqqjZnMf`hsCPddulG`ro(7YW6;XZ}_kIEqHuD(W^+F6YS!LFl#_wk)3PY2i7}4d1pAqE1o2xhMi0H61 zHi&@1QxL%5=@NT3W#z8zkID^57oW0v5f86AYZ0m=_i!UBj@E`G&zmiW`K8rs66TEA zY2gg~`fGTOudYu%24{eeb*3o7Q@Y@)fp8y%%f3f~c}TR50e-x>Kvx$u(E`?AX=c&u z!G~eaMelNlrzpLGUhc^ZB0@%X!Es?62V1;X_yvqg;Bi1vw7O@N2V^TSK5Wf(S~5N} zCGF9Df)v5gReev4$;?0%8Wl>HkdxcDS0)1l!t31=P;T&QwgJWgm~Di``3ADCNG5FX zK_LMaGwj15Xj=m>`f7fi#8Cnz8Bzg3m5;!1$Ghbr3$nNX@Vi6^p3t9(H~8CHoGDxm zW5=pu6N=807<3^@-cS!nKx4)0;3+90oM}@vP3C}XFoSi9DEz$3lz%YaKsH229D1rZ zsBN-We>GB|(|~41huw@^&(b$zBqUcs0nA<0moO`^fgQl&DPJ_7sS&4bI5<$H5in%O z?k7>B4eu@nTa_B+up6XCXN-QM$DRFb-gI#2 zx{BqQ{Xl_0u-jCmgGxE1B{3avc$A;CRi^>{s3n3P@j9lgiF~+sQDE#5i;GzGNm=Fp zWlJm{<<4FghnM)|<1qD)-`p^Yg>oC^KLCAczCaSV?fDwB2 z(bOWGvQRl6N~M8BMSJlvU#@auLw%lMg~;wV&0-Iw?=JfUDg@y$MJ(sFy5Vtc*e?|Z z0-LF+s!_mGMpQ~8X-rG2AwqyOlFy_EZ7vQLSe3MeE6pHK1c9RBEd9;Qt4)BqQh`&{ zk{RLYMz2f;Fn-FnI^3Vz>wfVoOmv5}31p2pL~b|x=hYs+B5A7&HOv>gtxm-0B@J;v zW4L8f)jQ2ka6D~`3h;v-z1-bl`H@JkR*@D+3(_kINX)o#$uWWanPDs{JM0RL?^KfF z(Wu*lh~1(4b|}i$hD7$W^<)UmxeqW*slk$``bULqYyLGQ2tX|uZGv&?hmV?t1eg#E zsi`%UDllODlw94C36;(?)eU0$ab8k^>gQm^t$k9CLBVaL;x2$@2yE*g(qsjUp91#S zmLLby)cwmo01p#!U+@1OKaDzX5z^=7mcpAm75m9YvMs21j3rHI2MZx~sPHnrsy6Zz zQ+Obf4Efn-qbE6s#yJ@drJg-XuD7h3Z#{8l0__wAAIi20k9^dJaZKtwYq$p@tR*PF zKanclUnv=w-w%Xy!ICu4TJq$HfR^#GoKW)Q@_T`YCffb zO9CJ%2ObT)Y2~0*S&;Bk1<-2)W+;?RXS=o>qR1d-46sv)_Yj3UpJh(5@O3-*RVzup z{Up|*CpAK&l7ylAIu$X^B{)bWQ4nUJ_CqBKCV{)JdZzZP&M#qmbWqDqfGDReiM?|D z$!pP9_*s!EbZf)%=$QM9oQ|3fAn?5YV*47U}dnE3|gye3&C8jY^$ z6jfrL;;r?Y3fFUMmQUqcpC#s*O=wH6K@0=eHlmq+z}5RnSmc{X!t+ny6f3OAGNuWJ zP65h56E{b-_E)DZ_wl1mxCBhFd6qhy<(!`GyrD0c&(Dg6**li8#$CHOvnZ)E#t%c{ zU(adON2|!ylK;G<8!_|oUN7lKnv`RnoPnu(%moK<(~^wde&lf6=!Di&w}Z%@Xqhga zfw8H!eamT=!BmXxa-KCf@djCCEAVs0#9>YCN|n73N(%MY-PDr7dcdVzT!4YtBe42* zDc2Ey!@yr#X4HDz^)A*j5vVus#W(XiiUXD2N8qs5egv$IK}e`r*Awh9S#>+-dz{VtuUBY@55317d{ zE(vvNjQxEYZ-{@=ApHIsPJ#Xt-4r-cP zuPKU{GSx@_^*KB$_vLTT;kx-gwAatowbOUbT_KU?dj(TJ+)W8ZEP3*o zF@l=h-J=Rsne(#?PtGHx3#%s&R4-4iS)Uf>e(8D6oqQ@@SlBgpVs+(8)eL>ybDS+1 z9i!)Nte}$i$!3q&T0K8cdm)o~#D94xP1wwhd3Gytn71#P>w|X<5U2ucydLj2^L$wH zY-@V%pQ}eC+T8!%%#-z$$x&~<*4dUzpfdm5j9>b6Vs3F`Qat&jIa_Eea9G0Qh0;Q+Qr<;VoCq8es1pAQE8)Hv=Q)0`|>Kb&(moNup!gV z^SrS5YjII4{DokHG4iFZsd=n<0q|<>`Etd7^rF@J5(B6*{F>{WmO6N;Z{qrAZ3~S_ z=40i+^^g{9Woha&n3-E!heW;XbvWSsuJt8Eu75kf)dZ?Ue{C3mC($1k7^o8i?(fDDu>2EO!oBl$f2+h5KIfJETXD-AdN%Yy zX3p&a!8bRWf$q&VD-!V4D67BM3l0{9KkiohJ0vJSd3-2BG%}QHH__M>r~RRIK!E;f zP)DGja_gABF_u-~pI^mWdu7zh`T5tJAORcYu!niHbPtOisJWc&cH;wo(Mr?0Q#tW&=$27p)b zYcebEFJi>p|Q4sKzj8bf#$Jl4euDss;GAd{7F0&XHu+DH&~S7 z`lHgKZC`KjQY6VrNy|@1v_ijc@N~z&-QYM>Ac*n5Z}2*zBez|zFF9$Mdq)8afRP(A zl~031f8O8}uoR?n(>#~ir7DPk8@zJ}aD$iIs$3JLWjZ(LJVn2MyrimufTw{C`^?OV z49y_H%^Mf7_Ff8XRqfSNCtdUE=RReydxg!;Ak^w=kC62bn*Q2)?RY zQeM?9#=q4qMhW)Iuj&@af1_@Z62Fc7=QcqC0`6bx7XLrhEm1uToUiJZ(!bO#zW;@~ zWln!t61UhZqF@JOhklFvex`p@Os#_#p)h(oU&L%-q1AnMn*#Et{#pbmgKm~6D z`>)m(+`p_XgMT~6F%rjGmEO*A_dm~ZM@a|V>}tMM!|P(TkEM)!Iv?%&n$qzRV{#ez zbjYjA6B}jBMVQ^dq%H6aThH`{&1YuV^|;f!s%Z%G6OnJyX#Z*fG!+`g&vQ%6O&e?= zP#8-2pSW6-^W_KthfH&wk*^1;#R*HB6BM+tUFH*FeBh+H+>V}McT(F-1Qqa<=-5RF zLC2xhhD{C0%vrKA{%}DNf;gi@XNLh zrpQ9dXkRX)9~LinTtqqbnz7tH^??225S=up5L$JTkqTNi6Ze~yk@dnSs16VP`4y}l z5qbS?78#bPFQ3X%H^@dLjm^f_)dgUg4gAY8Tgeaco~g&FJJQHr*8vS(VramRm^rha zNM;`!4TmqO7r*!*Bt5JP2&%R3t~6%*`$B#}nbiOA67R40?_AKHa zuKe(|e%Iea6}dhz1(9k;|Cu{FJ^CA{VNJz77}A+`rr(HYK6a~)VCTDJwo@*#fv{SB zeZDTU+j|&n7^OC|pkFTk?hHq2qGNrxr!d{8918^I0TK+aJ$P;+M-RgMZs%KQj8_!@ zfpFdiCjI?B~u1U~dsTJ_pOFjvzS}754S|iHp+2mwEf;D=8n3_UBlz z5U|folhI~$KtU|9>_8$`oQ$}LXaUi&&iTO42LrK)ImxJeDBjrU1&QN^Xvzo|42)zA zfdjqO?5rES%7{;UbYd0$S9MCfXq;pnD}E}G;Xb<}AhgC&URu%qY}^?-_~*r7^3{!C z^85iuNK_2%j*y znXb`wg=QMvmc*a}@c$%&KWtN?A;ImQ3>qWgf$lyK^eb$q(Eu!&jsmh)e&omms~5W> zVK|=xRl>hU=|z2(HWQL{IbBT*5iDj6FDIV`Dl;{Kc8-UZ0TSL(gvaabionM_K<*`r zjRo>z`Go}hfryc~My6YkHyl(nBOC^YyFxVkOP6|#H~)4lRTXdyj;ZemL_k`k-~P=H z;?;1JmyghhglQZZ$_VT<_CPB6_$>i!hXz8c3%rnbX!9Qfhm<7IlU@}p#1h3suq1d% zBNlO;v1oWfhZ^Z1(b21XUrRy1!ov`7p%wxekP#ule{7J3@QJGp=ijZwp&Hd2t}vSf zisr|65JMxnZOC+=`+%AY=#(jABo;-|iWLu`%n!jNMni(x?S-j;r~_zmI-|P))G*oa z-e4FRsQWls<+2iV@uShW;es!%Ne8GS=mbc&=V!(?E8MIbZN3#gK*pY_o> zg-WioPbzH_Kjp*XDD)WI@H6fxWt&NLFhWJP-ZwPG<)wh-alaq`g@}kM%F2zx92ImY z8_yLm*}v!mjKVeT$=rZp*S@*eB)9Dyx5{o)@C`7XHtV}XgtJ0V(zW}-#>11EU|cS~ES1Fe9wxJ7fp@=*z7;y2_0n8tiz z?s(3w{8UO71vIzryC=FRbjDUlAo+AeOwlWJKt+X*lzZCiBR0Gb7{_v2In@9uNjNxg z%S34BUgH!hw}>c~wX9MJ6pcNU%5V@i_)rW8EMcww)u=3ENDMV;vJw+Uo)3BCS&0KZ zA(kVuX0Mm}X_j8ydkX0iXI`Qko$>-WlzY))1AOrRYIWuDR`xS6TH@{550$>eG|OG zgE!&)A$ToJu{>&SfMqRS%h6g9-h%;xg>~g8r<>jd_+8-@iT3K`2*41t7sPlXix&(w zH*X~BKW16tRy17QR>yWkw)DB%eO9Bt5ZF>XwmUHLu`U*g;36h7(47{8px*3ODSBzc zs^yLqq0c1SYv#U}H0^zR`P*8&-;)qjLo6ol&T%MVCevS17VLv+b%%l%KX=i9rzVa3 zkwDZ-sbVsKI2~n~VKlBV=_>?YkPw>{McY_16~IQu)1r%_{H^Sb+lx*1Ik*7A1pNOjOhE1Wk1)Z?%EED` zWI;6QC2{$gjcbPa;;bd7xw^W!`RVJ8OZn2mo`Y-akM#5}t@sDUv5BvHGSX!c^YzjR z-oikWUqN0>N#90E9DGizNRj!#r( zp2gk9?_ZWNEMHnPWe(5p{p(*4abBXgICNc_9`SDoUo5QboBsu@e~5f>bYyh`Bn!W> z`sStdrDfB{8*NX3_*Gf$Ni)Fv^;@0lUK5D^1|H)_<+CPbAs4oG(8T`hnVFA$o~gGN z<$a!!cBOru?Yjq*;V;MEAQS35-5={4E5|hf;l$Q!IMJ-0zI60s`u3##`EPK5qgy(B z>q|ec($kB+#uG0=27!i$r=vk7{5sE_KC*sDD~4VG&J*;^^;fH894Up5{2Ksdf2gw+ zT!?o$VomxoL^KxVAR%CB8 z3n%M0zRC|W+%m#vGV5XN!1mP^B~TNM&LK!$5_1ifGwyXC;77YjNsezU5-OglL)wo4 zBjY~YQpXPzpMenW6f7bxm#O48$&T~38{0G$e0i9tbzJBxB)YFUztQf0nhK#aNe93I zttr%FGP|pJ%=n~EF~q@t(E)bya)V*tYL-^_YM3-$%?BRWvWx-L%*6%>q`3X=e?$}Y zfM`OO1Xa>Okj2DZ^MP!u9F=HIs*9n$={g?Jus?Ymh@TRwyO82AW8m zB=FCBkq#R|le)TBX{UmjMm$8pJ>o_lkVi;Nfrf}(cK|$KhVZUSyIR2PRL8F$J?*J8ue@s6| z6Pxs>CJU~AS%=ZF*0hK?w|5qk}au(p)hdu)yEf+0OVS^neiI%JY&!)%gYv&yA^|K~wY5 zOO>mDI^RtvE7g#L0?kj@6wcqhzRQ5XHLFHCtTs{6=SW7W%mjLTwkgs2Z8snm-H4+? zIz`4S0qaGR$p-HH_G8xo@UU0+SXtEOe^&J4U9~IS{>b0N1~6ixj!r6a8`!MP_uZ_( zgKL}r>Xm&N`*-04oE7}xWE323Y#2C?9G>McoO8$6S8^e*m9KN>bEB1n22{ugzhIDI zL^u_{g|}6*%Uv+a79y>n$RL8R#(+TMztGcyN&xxWAl>S7qKzQY6TD^=b$@0QxjddVf8+K)V2_Wyar+{a zN}pF*d<&NXUS$P#AP(4PP!bb3rO9*bMs2xSqKlu4e&ogpMlcf?3vsB7`J$V;fdl>< zE?cr3Ovt2-%^Kgctvlo0$DE= zy_Mz{Ez^F=tJnh;an5|X`DfKhdHK}YN#m~DM3~~zv@}NAAI>?CEUn$5!+vpUYHkAl z&9#60m*9S--0(k$W$z8JS=#;-%l@$VPr?19es#8QzEmZeGcbWfWT^zPzEU>q+Wwt$KrrKOHt%k ztMbx)M@KbmIW_?5n{r$-M9HW?0++Te=j%w|pi6>edpiBWSC7e>?;Wa!f%tKVV9?>4 zWOkMP=zsbB|66|l`ekgnnT5^LU@vDH|HFq5`?JX|eWyar#d;E8MP`c0y{)QEaSn%7 zQ!#W455l-$F=QGbyuK&CZ1 z=j%dFe%Bv8fl}vgX%R4wN4qE)-9@`^BmdkJ(9MO5{=3Q+5`Pu)Zz|iQH%6ZW2p5sss?1g!m69L4es|{~4Dky~QO>fVe~p2@sc@ z$VqVj5tqcO0OFE(=HChgm#bG;q3$1H1@|irw9Z$Rt!cxX%Jw!3pt5a55Qa_2{pqEn zkaImPeBm23t<(zSObE0NLX^Gbv7nl8+s!Q)z&T?F)cL;gG!_5BdvywbgOU3V%OEV zZvZ4VX!!S$967*9P9)GDBRTE=k(bC#9?4IoW>LU$8@=Ww;Ee7NK=PV@T(p1XU&++s^gZksMZhEJvGW zfCEA74_X1`$%`96E4=$Vtx#($to)A-gq{DB1A#l7!T0ZZ3HEDV()^m2>;m!<%U1_N z^s575WtAY-Qo6YP{30PV%d!5|fpEUR(M4Bc!1^bxumGSH28S*{!^AjhzW`jeoy7bA zmo3Aq%XZRmr57&|JkQ*S_WVpV|FbK=Wjhg?Q$iQQc7_9SgQp21)x^REwE>oHwg*bk z!!%s9DGs8mzKW>BwR*Azod|NQDq!5C@vNTljh6!3l)y7JC&P4e_avUjqq)HL%cyV zJgkp`xEE;i93$cp!bT_c^h?Tl z*c)Hv`scR4Y#d(XZ%=3T3SXqr%(qoWvW2bL5~$sOjJ!3{Mq7^SoNo5 z{h6QL$;;j0>oyz@CLFMBQoMk2!&bY4^fHk@D(xB~Sx=IVy2(ifU=_#3 z6EqZe@!$b>EaOt5QH33Dt?%PszQ<`ORMb$wOeW9~{+Qec0}_BD5M@9^kQ zWpm}J_2a$Om(Y(+zg8BMoScfQXXoaZR*u!uOP`iXkG?4Fe4ruff270;L3J4om(N7} zf*X!Aq+6o0zEXI8!S-@nKj!gpI0yNM)PP^mc zy?wIku^{gSGy%clJAGZS3xR(R`P!Tn;QM7fUskj=UmgGyN5|%U;qeZ^#_KE&ZuE7G zt=~B1%!~g=j`6{wPV~8Q00f(M(EMyERmWru zUAGD9*z98m$&(KxY{eU5ao@~E&x!7RB`k<}b;x+Pe+wL+ffLt|F$SCB zjY>R2*UR0qk4uRVW1BsKaV*7Y0SyPPKN=1esdO6Ee%5fsi z!wWN?(rMQTp*AS<*_&Lt@-L=a*S zUzytoz~HEqae~qo(&;sMbe4x7sIL(WoB(t3bQt>eSJkv_&`yc}1Bs-f6ib8#wQX?~ zvR@$jNo5Yt|Hs~22GzaqeU@m@;O-CzZXvk4B_xpG?he6&yK8U@?(PJ4_h7*t0t9!T z|AyqAbMEb@yX%>$nX0L-+Eu*cCB^>!)@Lohb)V#<^>OWOZsr3q7Z5~l3%k_6#;b|LyTi}$V?RahXv$`@M5Bw=V+L**$oGK4 zv0FdNrfdiMc64z7hCJ#}ZS&n|ax5pEGs^Hg9<}oOUhJa;j9GX>V}y|J^ggT4dO^|w z_?FRl7zkvWd3hJbI)9CHpo_B&o95(MXAC1nzTM5Ed6+Hqiuf&pDRLm!? zASjh*XK+zXD+>Nl%}! z2YQ4*$BQfY7X`nM7ZCa!`K*dvlu-i9=-?Y0@83-N#OQ8Za2lHmht@kq+rjYf=){1v z4%~jMc2ju^=6N=Vd$XdHlu!UiQWiNm-7rtNNR~(mky`?Eanu=rE{+syPB8(qhRj$V z%eH>!ibz2%oj>~_gZtxyxDlSL19_VVw6RXf-<*CM2j++5 z(o2Ec1&#%0+!RGA0XujmOpbz48OrQx>A2G3M%qquY?bx;%ed>$)Px8%pPi44y-tL~x*SK> z)w%HQZ1<<^ZRKkz46iJ^PP*Ce=qxOKVQ)pSmGRl9ts9r~&4~K;24M|6;j8)n^Eo$w za+<=D{jD6x0}&QN{qeBg#?2OjDX*WD1C&$KnEbdD;3TJsX+2UYfLXD={?*G8DMgxZ zW+1cT1IVm+dK6Q#BqgzwoV=FEbKLD~O9w|112QY}u>(yRt&xg9(Cq?R1QqCM<3o^Kc`*=K0^o*oTf@k9Sg-u&u*+Vpi(BdK!21J)MPtO*FLN*ZRabXd1UlVa(JJBv4Nl2$fuTc_CqFQB`1M=`0x&90 zfrbvp>cX8emgsjQ%Q=-y#5fi{hD|OtkE(dVL=C~#7c zU!eK$k6!=*11U=z@C!tOkxcO{gK;!%_nH+w`2}EZkstj6h8~>|HvjGyP_#1Zdh`oK zk+fkg&Z#`S{}}=1j;_PW2A_csSCl3Q;UtP^sg$aPeth$USi~a*dj9qcOp1Vwmd`%= z1p@TsJJgzJ@>f=|>+=sg=`Cr+`(A|f%}Q@PJL%^6^jV7(2;fY<28$2R5fMJbTkw!K!V)_r6w5D=q79n%iq>&md?00Ep9r4s399=ABV%rUHg0yr>#0yrwb zP@<5TkQ_fNb{r3D;`Qf4>9%ycq?ox#Q!vHsDyYUp*l=*sO?kp6#$o`qi{g>7xI_WB z`Ws`R@lVDg_>r-2@=iuXi!$ID}5Wt(L{BMi}omn(# zX4_rQh~YOIju9Te!8QXx_Z?`K7(p@;Zfl! zeGKa={4=auni5R*1H@Q7e_||%L5#(8x>4JsH&JS$x!&l}n}`i|04bmb@+MmT@h0{- zApzb*Y`02XkT+4+MKs%N7%B*19~9Ol2N(;-C&nTl@Fw;@G8Txnx+toA|=p#Ol$TC_?|lSRDO}v2co0|HD{VgBXiI4@VSKXS=5Q^{hl_a{hzS zN5;bbk+G;N=!fjs=Bkwd!n*zZPIXua0Ao=hD+Ag0@7}~HVBui)+ndM?Vl3!hMHSg5 zL;{S({`a+)QeC4olmc3R7>idtSOsee;v)>>#r zXbeybdn`VD{YloBs9^mzuch8|tz6_=yMU0O8{5|=^{zoq=o5OLJ%ib)&=mqXBVbwu zyDO`C%|cNAXg{C7W7T>m=1n3P#=eCGt^DG9B#DQj0W$|noRe1%4lE>6e-O5yFA}(^ zqpp}|MOJIO_?=P{OLRzvUcbakQ!!x%rCXd4mFXPF4h9QF=4C9 zCe)945y;1S3chdhNp#E9hpn)YTqrTsz2El^HTgi%qa}qYT;R{^ejhSEQ*>LjMxEHN zv4(vw0Q8UJePae+{weDw3DVIjJGyzGQsNM>pR0fv|(Z9h<&jJK^9-j8SH+9 zdrkzS%c7&Z^S~WiJ_c|U#YRGTCJwU8Uzn_9PVYR56I0&)bS;bw0mO+igNP2dxW`?^ z_erx5VQz!UKi;Ke8Ul6!0}+#^3jF2%{PS%1a_ozQr9G5v1>h_obiQ3=q{mqjtaB}D zDz+M)g{6_B5@siSklV8)-&}whDp+B0^odaV;H{ht7ut4O5&WIC+hKXe8-$MM@3)g* zTT-J)Xy_{L;1j-E47a$+UyEY{c>mlfItj}I&05ZZ5g7kh6r@B7PJrC}RI-FS_$ z0u$1`#&gsL=t-o^iXX8!?|!Fs6A>79Sg!-xh3e%+W*`nh?y4*36y!g;5_Cj2yyeg6>`&^zmwX5)q1C;xTh;X; z7?=gZ#@B*9ox7>_@ps-AJ%a0ciu=ok2*TH)Tho>rJisM5F&{$dz##tgt%D(EaV=KV z1xnPLmn!2tLjeLJwU^miVUq-OJoz$}vHnw#10ARbuU)O6=}c4c6RU>0;bHH@#{wxoVK+zG_sEdcL^y;nYoFhWyw}f)>?IUX3oD1qyEw;{=PeiRh9fQ2S5)P95-6QwmHD5z&@h_%0);CB`#cV zGd^66Yu*ne0t3^9bG9!FjP!>t8oqJ=U_H9ceeIAzP_n~i6HP{FLNj1gJh!)}J3hEy zB)Y4u>`LMObzolD&@ef(Yqqy<=}-*BdEMO~5+)r(;Cq=L;QUraQf$^HwmN3SGX1P^ zXk#xg@^5d4`0w{Bm-w8|+kRJhzoX7pwsf?pUS5dbN~b*N){#9{dEXs(ryd;~RME9i zZ$Ef+eMs7=Fwba7i}*&(doyI2dbfS>a8tPJ&JXk>;?*7|?&fuGffdOhXPbr`5*@+A zLKxe9t$nS1DriLl?!K|+-T~k_G&$Xw)HXG=)GjS7%q`CTSf~ZMyzKwz z@;;xg_2y4O9$apf zAPJBj9^z>eW!BQ8QS}3U1?!{^;F}%DuW+9oFxjN?9Yg;!Aq!~VA$x3AbyXlww`4Rb zNc&bzr572eFZ_3y*S%H$vyW(FuRiYX60q;k$aAIz_8ldfWSGkl-9VVv;dhw#U`ut7xc>g`xo>(=24>QRnv{;3)zL#6mRl^dhTf{qV}5>Lm6BOe&tr{e=v@#FEKNaLT!hxWgY4|2X~-%?ASjt}!TMoXfw zW&uHqqcBJgI17!EpR6ig!xDahc>n+k=bCLMPp7cu^mp6@5pPzrAl<#}dp$cUU{-EB zJ1}>{T~J5frWcPMHMdeNsL)u1fV#ZdpXfs!Ne-EM)PZV5o`!~2tTC|e;DX50(6RvV z3CCt;WF?}kvY0bmz_~;>K8o&aC0M3bpOn#XzL)Eh$bpoH!P51I5}Ut*NHANd3CSs+ z9kw1ydDVS}@)=}+)QB?8sHh@4>n9f|leWr{H%|ZqGspcQ{`D4Q%LdmN`0$&b7>R7y zN4m>G`&`b44wmvGQMkES{Kxb{E48gN(*o-DLq3ODCJo!XV*qiynLcdU_nGoADAFgsD zVoEcT8qve>kcKC>y|q-v0l5~uTZso0Q)CGn(>#UXS*)2lB#Y~4_!6KXQonf!AuTAp zRpL}|dq}Ebo5(8^&(|Eeq)41zco_&BDD?S?RQQWu{>kzVy_tkUQR>^-Ro_R?MI9pb z{Gb>Xsb&X?^FAISth@*G3%l_xH{!3tyokPNW|t6U6GVRA@C?v@(?v)*tKli)3sJ>` zSj2F)W!o2PicO-ed~fz#qbFXo`z)U-AF}Hk{5F3Daku+Om|@Y-cD0mh0}Vk zk=I`(5Fc*r|FQeSToma3z<2O;e;6bGbAQ+#;obRf-ycY}|8L$OQab*(?hh{iaeoM< zCi=01|Hrm4*nNwu0tv6RP7>zgAP2H7lziftChJ0&!L9q6(|!xwBSNG@mvx6{5#6KT3~1I&z10TvQ04x z9JKSuFYR*QiCYI-th$(41)ziZ+?u|5Q~#l;~ebhjaVik!!BL@5%i$Odzwor=tbXH zTYaBCN(z4Or#8U!-#kcU{1F}!X}_7$C}SXqN(WjF_$RF^p1z>n2N2Z(wH%H-UeMOH zV?VYWxU$E$O((;itP4!<*)~1fg+n=q;-3M#51l#&T%hGp)bnxb&+dcx&+fx0G)K6o z+cv^1LPf?@>HRp+a)9=qGFPwwwH#uAmV*fy&ohh!MY|{K0-ZQU+@p128L%#R{>{3; z`VZ>@0-_`|%N8uqqNO;Hu2oDYZ&AL!gChI5h zck6;T(jnyEtP6vW)&(|@b;0S$x-bOk10%l+YB?Nn+*oTpwH$Ebj6-N86!hWDyV~{N zKzh|7iqUz}1B(KzLYEFWF{%Xt2n0r0yXT`9R1_&vTfL#(=?{`cXKs^KuzATBg~izPIM}UZ>B)Y;R_gi@%oc>Aqx;5QaxH1jti3fG|c;#@m;Uj1ZU==_&;VMpEmU)F`MfOUZaVpCA$*W}qwWRwY3 z#BHPSlXc@b3=vhHZpfWjPp4;%)d2x-$4XwR{U=Ac7m)6 z6}@jNzUxZ?)`f4<;Yn1O!iC9Tp1!}W3j;sza$bX)yf7Bt{g}Qg@L))veQbB6+&wv0 zwCrAiWvy3$msZ$i0Um>@5tM5x%l;K{FshL;D#2}^rQH6bd_WSiH$IlPeNMge_I(sI z5lfsKRxd;XAEZZqiGOhBH9T;%NMrxo@Iw_tFH}O>3rr)SYk5#@2aZUW1d)S^Rs#x? z3#w=%^!M=N?62WR5$^Lkts`9?Q}rYy#D;I6;YZf*m_wkOKnf6Zi2HlYL8U6=--aJH z|JCp#MJ&Ee6w;1+1>5&(FP`!x(@l@9fQ6tH|NnQ#j-m{vWgL6KrzBt#Cbc zEK|P7H_Q=ER%A4Kk2Qy(qSJ2T6|U{NFaFm}ukA(jT~1Z*IEbG$&sD-TS;|Ms#=jd1 zRKB|_dF?!6KwQO4l`q&I+ZCeFAnyAk_y&@;&q~_x%LeH@$_IWCpy1$(CDu`Ay^ndE zAY7G^Ri4ZZv%}E;mJ%QnrcjjOX7%JZ%(d8n{)0hLJDoLBhxG}0+rcxNWM+f74=dHs zLyEQ{^S&S01*yzbDPK@@y(?xS!(~(Qiz8?4d>!oeJ)1Xl{Wv3n1eZGyJMDEfnF3Pr z{Fd-Kmtzntv;&#S%dYc`P*s##Vhexi(ld2#aE+9SoG8e+W>nI+7OpwSS#in)&Nz&wS5P z$B?YYWUqDYp?H=4W>#Q1R#Gp0poOk=DT;!15n~3vwdc@4XgF+FEV0VBHRpI1N?l9l zn%k<|-V-`9#i_E=H?nMjJiFb<5R0TJ$4Z!_7cYpoZD_-K4P7Z)36YPO-hJ~9`Gnjm ztZ8R<@=)Lc*_;oT;qemjeAjRuPse9UHxy~CSTHBo_NXK`%*H2=VDFn zj3jqn>TsBzStY$0TWE8Q*OX#hyel+YTPxAj=bpc~`)NCTp$(xoT;;LWKbJGxt*#U8 zznMTsu#ym>o~Je_GrN_V^z*Y@^HHTFy(XVsQ6nw?rdEU4N5&9ek>dMDu40yvfVybv zVn$A~;Nz9zFbcFo0qys?yz#1|uZcUY9XQZ0#<}DB?B6E!x+*;k56pH;&D5VG{S>l` zU_f9bk#`t7ti}#K(^NeUu>FRyPz!JF@7IolsnIma(;u3LNqObzG!#ph4+H&7Xq3#boa zL@h4$PVx%g$xbIX_0?=RTRwQmzdMCVxkE;8)axi1B)(SS?KxweF)&TC4D?IR6`?SM zH*Cmgwb@Xo`_{YgWt^Img4T4ymw`VJ0-3Q~DB}~$8OOq*%Po@f2I_cr<7oRX9>Rc; zoKSvx6rV(X9@xsTrcTpW7y2GNM~v0TULk)-hFI}aV_}V(K50)g($Zb@6wQt*ptJvG+gSJ4Gp96`@QdRaV?{-m+l6X=1Qg-95>6*k;aJY5uSpx1*5fF&vqw=Jhj=0pYxwQ$XmqJ0@Qa*{ zq4ieQL%wL+slef8GoIN?^iLKBz+fdJBXOzbuE=hgxH;b~HsOruyb6tx_4h#~jgHd~ zO{L5Hcoe5;aalwSyLA8B;2NJ5Jda1_D^u=3^%gt&($|RnwFvlRv=guCJIPuWKI?t zmT?_nuvvrvlv2ozrRv3NH5|lrr#3cf81*#<-Eq6pA-m5>F%xLr!jxYTg&fc*hPtp= z@m)oDqyt zqrCdf$w9G#1iDJvQ z7yW83hO1w(J;{x?qUt&=IaHvkgv6J_#X2_u?bBUgfkT}=p?S?au7N==t7e*Z$0?*t zdu)|`qW)&s)U)X@H1$PUK0Ke5fe5cO!Uj!o++ycxiw=h1X$5x&Xv7t29`4%cL{xK>*e4T#{$`Ij`CaNJ zedDN9HHpVdeK_FYwA6HuS!`QnTY7>Dli-icOTcYR&hzpbjjMM`5#_oAxG<7IXp=u`Vus z5CclEb2H_=EjP~2r%S_F&iiF8wZ;4U3WlYX)eS8R)m*AK&Z^uaKq2L$K-ks43Ms_H zY#@N$sY|Brj#(stwQ+~VSY=bm>v&78p3mg*exz&(7A(9KVD z>&)G7ecMtwsXX!!el&iQ`=k0 zZxNwsB^{aoTCgEcE!f2lTB1d0Co{Otev`6g;F$LX{p`FUgJV{6u_ks`qrU;YAR@Yk z<(QoQ^Q6z)3SX7KP@;`YHC+HD8fgZhL%eGVKz ziI^WzB8!{VexXhualCRsmO4xIeyrpgD+4r$3Qc|-MD_Y{N&P{IxKIt{fLk8h442^h zXmMB{>WsniyytHk>5X8#%U9Nt&7^{V2wq#{0j|`ID~6Rq93+l~Cs9ibj#k~_;*+R_ z-XABRPv*6>dCvijQ{H^|c>WXZbe+1f$ifVtF^cJ1J) zobxx9sGpuJ)UoxL#FwOG1PqF|Z%H&MW~?zT~y# z_9v$V4$@$Z>rl_-$GX`(ew%q<(FKtu{>?VQYnEsZr0mBr@V57r&AtT zV3e~o^7auFYo4m>OE8{tR)3e1#3xe=D^=`g(4^m7lrqYLv}&U}=NL=uLsHY3{mgSn zn6AD!Zv`M;f~ZpE!y1bHO=TB(>GVZU{>Yao_&N$%g&!<t~CF7!lT7D)xwS| zt0cMbo16K4!b6(`Q249FDwFL6p3N1yFfQQw}zlcfT;1d-@AVxKIo?4ceVuUU>zlw*o3{%W_9QH z0LqF{)3@0vD<>GGzpjeGapM~t&Yc|Eqc8QID|AC0sbJq!l2%;i?5-bWJdcS!p%ynV zM`g-V63lQAqxY9!B*%%c`)isI->wrHXCXqKg`amSN zctPKvcEBPl;zfqPXpa$vkkS9CwMdBb$Hvm2m}H&{nSq+Mp!trNyQ_%~zfIqelv zO-;b@D`6M*Tchr^1FZiUM1;T?&7;UegrK`xV4LkV5KG@Se%s>VIV?h~xqV&ib2`+= zSK5=`!jcUZW~TZ%{cgR6X64D$t-%uhHvlM+t*TatI9XT!b7qeu*}*$tXe zMya{j*e3_gjWP|Y^O`2|R?qOu^1_Vc(-MbwW{xkG@{iqk99d zni>I?Xy3&ZhpO||{({yzAr`zQ84=>9U3!Uxv?vAanZv1Km-)}9! zYeCW$DL~r7ib@0-G+4;>6k?5i5hVQ>Vm%~8}cPoDE z-+YtyZMg(feq9uTsw&dq!TjvKZzMc?ZARm^-g}9GLJK^nYHD;8hLF6rbUjQZk-}(~ zx}iWV**Tt9d05jL8A6^i6RYFeL6He){6H$Y(}eh%sL)|XzCKM*^o>0+xq}5}eJpG| z3~IUJbfL6NfwI8y2~z0YA(NF}&kI4w!1%%f9;W0Hn_#GjANjYLai-;m(kTr18?Pe> z2q=d!z~7ZEnSio| z_>Z#1E%mPqYtCG59=qUMtj~j>3@d`(H6mC}J<*>G>*C*psTQ&ktYq|X5TEt2yjdPI zte&6@>*uEoEBhZ|YWTl|sTBsV*S)$x$`*4jreCY}fH3vTGt5d?W-A?vYjDSB!RP8J z`m#!#7L-xoS}o+JV?ibV6s8XUSHe_BJnd(H&#=CF24q+rKpECCAj3Kj5~h-YgsClU zye}7$72G$r=&=D|DlJHuI@#l^tkh>lX7$u6sm1NAh>Y2S!TDlsGSY3-7A}>2%Hy7sjV-FIjA6OTinz~N4;62Fb8UXXi;r#>mfgVh)XBp!)3Y@foJ)(5 zm#5A0l49C?tdy%{g~{U~yh*P8-Ji0=s8rD_mG;mubr|tLmAtN`x9K$Z9p)lsu{W1n8zbXNYgfxD#97|Xb{Bef z{aVvDv@7s!LxyW718cP;Cp|MwGT_)=kc@tftukSFit6hdQ6P~8oz}N>wp6xj()YtE z7!P|5>5Jg>kAQ1htM#ZPoOK5i{%SR1^~3D$<4N{p(mEi@(NGh~yRV7W!AKsrH<~W> zhOY!2$|g8;rs@?@%&XY0aXKD=82SpNSJ9={zxoXhNXfhB7q-wI-9Z*V?Xs)X0AR=qLfFTyRw=hJBp}-}z*naB1A(j9 zBKFt9-9f@zGjK}xb;r(Ne!?clBPF>5B$p}ey#>Um=Iv)i8KKkPk4wHs_DoRFAdabi z$EmyT6(^E6GC9K?AeMbKu$~n=qKf+9i7wJzom@?%Fzolj&K3hgaoD@Me(R+ZaH$(; z`*^aMqymi}?oy7ZTWh{6JkKCrxz1gT*0)@IbsBv3OO~9T-`T9kO+s(`Jb{>RP{b3# zB}FuxoiUzsnQ97+IH1!~75jdor#+^zr@n;7pK3eX*Fqg*4Vz^k_&uK6)3_`lhNQ@K zEhvpxyAnDdTP@z7Dei+>%&)nP0z7wui!t&bba&nuj8eW|AHBq9)D0u(t|<(Vc+L^R z`S{gFP{}p~Hv<&AB%1c^rJ$GP2MHrJI47tf92fR%(KZBEn8#+$T@H4UWG9dt7KEb> z)`J-3mb)&Un0{JBHQ@8|=%XBcAwYcgwL{T2YJ9S53I*LBmf=9hUqfww7-q}D{ROHXeobH1K*C|LR?pch+xGqYc+gRwkCw_HX`v?PhrmLb=-rAlWo zZUaNbbN<8U0o|z=tMBfu*9=x0(099gvY#Kl*@Ob`e)&ziUoh~R0-WXCFhHmCg_Tgv zB4_)T)HlUcZHZmT-sR;ans*!4Aeq%3u z<}ZdAndbf-kqMW<3Y}*n+!cIdNoK0e7w5=7rxJ9)Z($ZqAD9G@1aJKBQKehC#@L2k z#a%o1YOZU{zY;|DFY_kY!Y)=;bP|UL4%Pg$G7>Xc=ftZ_w2?40gwM+B$2KoPGy9qN z&f`_(s&_Sxro?;Q*t|)1Q@7g5)ZtyM#mnLvS@TyemTNMf2py$OCG)C{$kE#&HY~j* zdp4BFi^sJhKP#(lj+9Bqo19w^hxsO567tOf%Y~nY4wL!BSR#e|Ar*85rUBSPn5)r5 z706)EE=^+0(Vk9wMCMys1Wh62P zCwy=tjhM4rYF(DY(%ZFYC%p>_CtNwVEGcv^#ze_}rJ(qA)80A4iA~|uldblIYwHAM zl2oqpXDrTwlF8Rvjk~3}Y%kkszjYA)<~~L4Mf*_SOc_U;(qOkiLI3=hpo${3crwyP z>9h*zeb0iyYPdxq@paq67G+1H(R+RP-Rq3NPjx2TBziuyG8zV0an}7+e%DvfIckKP zgyDq?2u9^l&CdKT*rIIZH=@{0g#0VEm&Imf|swlKERTe1i_!gr&r!ljh2+(lWqaIXmrk<@eF{i~n}Q zh0R9{u2x?9*|!P?i9s>REdC-weeWX~Mji9UDwmCuIZm`~=Za4C0M!xu28m3^xbs?w4rZbZUo;f$)G48b!GVCf9&^_G2SG#C)W`` zd)XCtT8&!=`L4pG+$8!8*+8C#PQp>;TQ!5o^aSm|n_wEKEu~RGg;DSIYsXo_032y) z)u0&$MLe`=dQFq^cP$GD8ol2bMZ`!YD~uMVBH#YnX0Ore?(c15oL_fgNi%mP)c+ZJ zM*rmywLIzw`n@(m=AEZGiLzU4hL%XEu1ieS{>xdKU&anGo~(#u7cWv_A)>QwFC=I1 zL?#+ESoV%Mg=h5exTxn$GGYZ>+07Pg)}fb5^XIgV(hiP}HM~BET%^(DmvuJCq{v+` zu8_angH;{p>Al4%<$L8GBv(-z_~D9jQeB^wGLO%1JZV~(15#P%Zqk_nb!l{WL(Smc zGHPJZuE}{2W`*eFY{XuQY`9>W`C4@44k$RvTVTs6|lmC+Fa5Fyg#;=C+cPclO zyan#xA=s0@bxWzW6h>M3Z*uQP+{;<8nOb76VJ*$h>F@19w9joIRs2j>hj72jB+(uh z*9hQJa=z^?^*X*(o)>rX9p*DNjICxFm`%{%8?3N5Q0A^YWS<(QQ%R|2369;C+!rcV z$Fu#_vRI?h@VZDH4@+P5@n_W=(>T9sX<_y2*=%jxxM!~ZcPVZ4?Jg?S7QC^Ff-x|e zg62)$Er+2S_J>zadC9T8!zNyGbV$8f-f`=b=6aQ)RUEyF$~D2EYuy~GRpayHKWS*9 z@yflg47e!d=t<+WNlo!^ElDv`)$woLzvONESvf179FB$835#~E{cv+ruM~7pt()2X zUJQsk=@XMK3Q5PA2SE1{`mI~USX`3AVRU|-5c?J$Y$M5U zc>Zd>vo@tpfyD;%uF-yHY<$w?F?brI zWY;3=cR1hga@Qw|M{Q>;2h}&Fzz1h>6R?u4Y`IUJ`XhX<(&a^@n+~6jnrmkVld%ZB zAi5xZ)ZXZ)(p=H9)>G4ZRYu2v6(8iY5Km zu^sL7I~UwS4J#}JEh+CS3Vd*?g#1PL%i;^zU@bfhpiP#8cO^9W@B7_exSVt3;oNs8 zu`!%|IQo{V)51JI4prgc7i&i8{jj+_F~wv<^5S!6ih=EJD*xR^OA(+DA5D$cZbejlnb=EmbD!Hio2oibeRjD$IxeMF=MM9 zk;U5x43@iLvOb~CF4rD!CeotN2}_W?qEbE#1*~bcmAYTtFD}l1wtS^OpVxM`R9#po z9@a24b#QMmwW~QluW?9G{;C;ac@(94kB-);%cU`#2{ITdwvh`S0%B-RiqtyuLp=8V)ZSYZzq;)D-# zU-z1d4X5^WKelRKT`uh_eOUc+Qqus`zRwm5r%UbU0Gd{{R6`rJvAn_3)$Z8hliOie z-=yr#R9{7wIbMk+j5`mmi;Dv&Q8p4~8MYAmb$SZgZM*OwNh7lRl998k*d5PppZWfP z{1X#`+89{5-po|L@cRPrOT=NE%2u>8a)o{7*gz5H!RZ8dB=Z`_!BOX_Lm}X zKPpi+jtvk0n`?Z!z!b7c9>5^R5!&FPh#mmG5b4A-vO(lbR~R0O@~DhHF#PK!k` zR&rcZUG{;x^ljcVIhEVqsH**s=xl)&Fc2FaHnC=;YN%hFRyeu7v+VM!pW|@yt0jt z<(@SA)`&Ej&0^Z|(w~DbAJM8wkYyiS48{ z^8U4tdqEq+VZG&&ohgfb1U78yKA(DW+Dm#U<{IExkPnMSQrX_>Vo7QZRjw zfpON9Q-KI8EAe}B2FrgR`<@eM`+`#_4Hrad`XZsymJ93NsqY|%fT8WS+Q}wf3-cdV zUilmOA>BdsxzRznKOO9QpyA-&`+TCMeiWEJ>q2`Jm=!+>%;tZ5Tx>Tosia-qXMep2 z2dB(sJ0HF+SXe3>D^%hvy3I*6ds^v3`gp$&cl0i$u)HiPGn}6hMZp-J^+?H%94GMB z>NW)lLKR*ju<^^(bpD$OJhQUa3_$F4n~@6L%^fT zQaRM)`jtJ}N89y>$6bPk{~@&F#StJu1sVnG*Sv5w&y!UQM>Abed*2*F z(Rv!;J7!+dDw1vAIq#z5a!rAxl>hEdQ2hD}7avA|*Y) znP#*<-kFf{^bnJEntF~-+e|Ed` z!#MK8X!8>AG;JmOVM}A6dyiNQ4$WkZ;*VPzZfy4Tm@4dz`pTyg(ID&!7Hi$!_hwxa zhEI7kaF@ZKqOUN1MLGlYz0cqe{3Lf2TLEx~hSoc|* zfdshmOD(}Mgcsn>{pg?DxHx1Q$OHv?pTnuAG2XH?qmul-{Ts(`_g0ewvUX$+Fd2}n zoff{MSF-Ut_=E6zAI#VwE=hT7GW__!&sRaT{*E}fX!FABtMUY@N2!JW_ow85to@>9 z>W{2F>@Qh6Y6t!lyxT|EfrQ&Fx#RUNq}KSAyb}YQY@7+ z`Sz2)7LP{;$|F)7C#o8|2%$&sXTbB7{~wHrC0_rZF>&wv|1&23KV#zmSI5M0zC+yN zGExd~m&%3;G}FSD$Tew9tO3z1Ptml%4mZRsjpP88_{%j(4|f*YrX%rhWKI_A>28cb zG!2rtNr8XZ-}B(yOz1#0Mh|22gN@FVTmsvApz0laHKY4V7P^0;ijiN+(BVuxO#WE^ zRL_~*o)G9gz@0lmbp}c~S=%t5CFAx)A^LS=ZD+zs1_6JyA1ot09Zzh8|4o?ae#=+Y zZ%Eel({Ci)VpW(MJm9wy#xmc1gTOdvC9*Ovx48O5sCqCYCqo05_dZXCYvXo(jVsG{ z#ZwWN09YGG0Bd81ecai&+)+GM(AwB!30NCX#MEyZ*E+Akfb+L<5t|Xd2|xOjCq>@$ zCh0Y9eRor9j&3iX4tDvhoE1HDft3T1&px?S;sApQ8)$9Ztl+b)bBUIJZ)&eTge(4G z3|`2Kgp3alU%{Os%*Fbv&#lZ}ZtQL?Li2=D^R*uf`E*1*h~MkElcwY76(EQFfxBu4 zjhid1=U7y7#MJfq5kNk1epU=ztv$u9y9U>NZ5A$PI^mD}Bg?`m!Gxqarg*xXUIZHpSDA zE+au7hp5!e7w0R2FO?jz*O$#Gc`oF2jCg7DO-rF&#Y_d6kuAHtA~uoESW?uw|JEj8 z&>6Oz8uNlGC=0w0FryC9#pxVoMOPnI6D{t~gK%ZKM8lZ$-mH`F23roOM`f(| zg%8zW;|4EwIu3-<@cxR%mwu5YX^7 zG3Wa;z-{(|{V-r8=i60EvAcXx|$R|7kuObF{i_djL3 zt4}p!dFce*K@|6{H2m%-;qEuTYDZFBKdJ4WwqKW^==z-hIygMQy1zqxh}?QmD(P+8 z*x-DKYCJN$z2T-Gu#~#y*P0p6nKi>l-o=Fvocmt6bbCINdVk;2Qh$F@X-VwSclK^! zgtz-4!DgTaFlTJEwjV9+_YAiC|T%*u;0BUi&O^T(Odo>Oh z7Z8;E|WA^`me9kVqP-Pufv3__YhE= zoKGOn@h`vPX(!XDuLwD_l)bfMoM^&a*S4N!`~v?;;-6A9t{{*UO{u&B@7(m0`)HR) z6Ga78sC`^*aW+@n@s5wli){G_9?4)MR_*anh{9VN8y1<{{HQ?+-FI~s8&|KlWcW`< z=^c!s5W#(^V%~sPES&tlsAvNhm3AH!XQ;iia428ff zE^w~B(te|6*ZIv@*=qTl5gPQR4e)Mw%Ig_}I}6Ibza5*@3x*LS-D!Aj8O@1R?HO1L zy{E;b<N_RnQ@5b6 z`pb#-^)-lO{F@VPN_QL_;_O$eaOx)xfMnc$29S(ekiWg|v>>m0f+8?Wo&n90KhjtP zKF*R+{yt0I|Hr)qm?fJ(&63|g&5|$3fmw1kFiRf70A|T)|C%LpMTe*So+TeL1G8k` zi;SRVQfw5rtcY%HR=2~Qk&a0ndL&wD2w|=QL=h>R_gi{|l8OX<$?6DM|A8{PS4I3Q_GY%>k{G?=jcYvA;|RSA|mjtR;fL{8$qr3 z%-{S{(jwV+L)`wCn)1l<&tp0rE>ARc8A|VtKD%V#?N;xsLvg64sB>gQmi6xif?>*#eS$a4M+`2uG1jesL-_|gKGXbmx*f_lA7R>~3rmL=KI z%)`Qo$;{{ulv19{vXK05(;{=U5qa-DbdF?Xa<9|vAsH!4{*>n~*yVo~ikra4s}E<} z_0jgcZT;D{`;?yBeI4t-nO9#*QB1%&c|j}uCbPXtZ&9b1F=nTh+=ImcUhkYlGWjZ< z9}ly;ebq6BHytU(;?#{kveX_X#lP`?N;R&jT45=;H*C4ae?GJ8WQbc=!w6^k!J%tq zN@!q5rt$Cqa}5=5fG6s*c=pGcmw5Z1*)ft7Cp9r$ga1FtKpjl&tJ z$hGVqz;i{C$O%b~75_oo30GarYJ&;+g|L@%fLddaF73U|*=TAC6kN^W;?(u;4*bC1 zI`BH5JFcOUB95@zJ%}yn`GO@kpmMVFT~s2k(YdqeYd6H z-4h7*{uoxb;=KJ}^Qg=3lP(blPgw*|f;Yhf8x$WWB_sNzN1=F0CItu=<#TPhT#IL! zn|yE$PoSUmck{geoX4DtJD#RhqDePR0V&`Xau(m8_yLG(_sPKSc$bm4L%I+xz!s0$ z2292yMLw4sFn*3;g2!{2y*ye!)NkI$>QN~7e{uFs(UJX&x^`G$$4+;wj@2F8wrwXJ z+qP}n>eyDtwr%UH{;#$6*=L;nor^QZtc$v+nwM4c{XOsdsDo)s1q}HR-IgIl>FNzd zh3|*##Epo7bmMr0_^=|SBCQk?cKz0dSt6vZ4+cC?+)27fFwzfuAPfEEl^3vyiT5Qu zOp|@@WP@mz+wmsCi~^WM9VWtx1R{WxH~2U2eBr=Ge!8CG;|{c)%4M`D1&aqt=Qst; z&<*(lz~ciW83p6~z+*GZ6$t)1;_)4P@OgU-Om@(GA|N30^Z<(^yfJmP4A5K)-~(!w z*iKe>1e_)6!GfTE(L>A0;7kla?YGmwZ%G49zPi6Ecnn$t9Hen0`hTn7RsT`JAOBUs z^Zix9i+sQSw+dcHzY?f|pYiEVjur_&oHt;?%UnHy4G5+X&JE^YEQV5wyqmX|gGi@B z^eWjt5C@KAZuw8b?(MOo(WplKoxu!UQNf%*BvRJ62ix)l34!woNP4w0QQJYhg~vWo zodSjE+UvD(I)n04aE_=hNtj6Gwe8WODjN=mkToT}{8&B7g(XEtvleol9m$DFQdwud zGglxZ(8QAS7Z{GC`(h-0i1HkEEy>7LnCD(^{U_x4gnfpxs)&K z${qOp!&1(;MK9JU9cYm05sCDxt5lLR6zhHV4!_~NZtLv~M~V0WP#9E{Tyh29_xvdG7VyW*#KvSdrS$4u@3(ye0WGMtzeCv6B;VM>9%*liN>LxBwP6r|K)<0YL=0+@k^t=O8M)8#~8lD z2D;$6{^Nr0*e(T}jhG^l3|}9tGyRM0D5Zw9K;Z$Uw%Mp_okg(2+#zvDq&LjH z@c-QfZwL=`!C(C2g110|ZD~o4$q~|@oj&pMcb9BstNa+9(xCNQSyx5?g&i)BhO4iM zTNd0wI|Kt2IJagBF(Rd!LZm0!pUaAz4ucAYaDPx) zKX(0)l%NZ%tE1THx4>GncYvWkR;J?^WX{wpwftL3&g-3{_)jUh5aC~?WOM!hR!SZ{ z`cEmD=6@i2z36Q_g2v8#*}8aEg1~7sXl}JZC$2S3S3wBJaFO= zECn)+KORgd8rs2%jWi}JW#Tf%?J9ii^!9(dYp|eZ#P;WOvv=&9ln!w4;u`dZ{2ECP z?W2XY1q*-h4*!}fYMTm*hg2FkRwo}IYWv$#`S=_=nrjf7n)^FaM+4dPmzJWveSoX? z$#^AhuoH(m0-X_2)EdVA){mw@7hSv$&rwD3NFCgLxSq8efl&)a;ZUWm+{^X`dGC{5 zw3`;(8}^=GsKBU!t%oj7{7#0Bx*|*sQ!ODU8TV;y?-YT?&l6oh>R048nek>b7;_#c zNdbNxWxEAtr24zlG>73oe4u(|k;J;SfEX_fUN6u4>gVfh*L(KM=f~XL$*02SL-wx| zKb3F?!W10)`NSKWA0Qv?PxC(>&~>Zbqr0@)TWcLQlZ|==9zOy<*KJ+iMkqcfWG@mP ztt+j^XYN{b9`<$ETq=h?TaN8{$Sp{<4;m^-=k~fMygwEWvV>aa>m(a5Q&{p~AIwHXV}e zewD=r^Cvjj&jn+8HR;C*+ZXokPzrmUIJ1@nLS@Ah2;5e?xTZ?D3IGy;sHXE!16YM% ztj0_U8U28{?|$z1wSPjnM58)Rm6Gy9U+Gb+Htl|a1x{;wDQ)&xVpDeRcN%y)LP~Ss zsyS_?sCK^m29s$CXP|N?+emH5^p=%`j>@^Y=i!~wwCHWmLeCwRh2(r=qIS`FjKp5` zwf3 z{2hXV&6bw(?};h!cnSYnw#RGx&$7K;Vr#jx190vRf0z;4;=iV)^UTMhX*Ps~jN`qJ(PV0H>OM93$3+6MI{YV^1zb9| zt!iFdM}9=qW|7LJDZKf;7P*k{I#mU2Q*!BvP~tj)x&)-&@uTE{EK*iy2OTDspx_ zL7KcbE`tn?zKZ#OI;MXy4|-Q8ZiyC_|KVHZ7+2^R$EA4=%yGi)T*JCLGQFK0q&|`% z9~G6jWd)KZxNq8@hSP6w|BmTh*g*+9Hgu%x5#2LByy;h7aOSk;W66bAE+sq6#;aqd z@+F*bQjDS2g>vA?ZCY6fUqp*m5+)(xDLecO@swYpUR@ydieNy=I07KEsV1tkcp+_7 z^sM0!!Nr0N_t1~wBkvxp*`XMZ6p$@)iVY8XtL0hGD6*sY@9mhZ3wn z_@j8vB)g%hM%;LTGBC-+k#fL8I%##!d%0RYU-ns(3N5^|fj^MQ_%MMqvR98=#v+lQ z&Z|LnG;*DuD;>lf54-?+*9Da|e>dSIa_Og#t;f_DL}F9FPIyHB7Y0uWBdHn>{uei=?A-*A<)+ z?&D&{!$pQ&;Pd-hNAmuzeE6v0{`7e`?vD5=q(N6Xor0stj8`LsX61PxxjRLpT{94_ zrOv{XS*NT=GIZ8F&O2J0$La^n24gvO@fz-|& zjdVTJpMq~_Z-=n#@eIG62Z4yZtu^Ff3A?WRG}|oN0N*`|=fMTew~dJ+SCi@r(b|63 ztxO^43mfch>2H8kN^1nDAO=2$#aQux%WHd&LFO4$9RVU&1S9NFd+POXljyx}60w6r z8ZIhQt}4ZPWs)PAH*Y0&F&XDDruR7K+~0yXCM}4 zPj+R>g>=-X${HRP>nXFGNqxOle@7~?NuF#a$>8Jd?c-r z3LVB$G?K0kV>I7JTy(4rW456ys*t>5%i3;j6uD8(>H-_uJqMcWB%z~=YPVsMV-s@? z4-!%eOIH$&ncFT2~hR8O+sNEK&!zfEK^aYNnB%d3u9!Hk{%C@ zT=}H6kp*^K?))))=d+Q=cn6^+t{C!?5+&2WqCF#A(n*A$aJCC&GA(-SDX26~7Q(cr z!|at8?c^Jp33>IxP}fVImC`*a;4i3q6?DUzLjkOYKM6I0M#W)5O_onq^ zY)%eL`SR=sxw1{oTL)StmL6v|!+L%ythZ#x;d^wpHQZBL*lO?yvutjBSS1**eoSY3 z9p~dYVR)!)lk^rof4HXF+!IrJjwH&I_y^o+K?kkyzDRwUDHQW^iKk|t^pr|i4u6Bb z9g*Qy_1X*6Do@TF?t%F<#iVF3JOlA|(oN^M2`G4S2hV4d~i=!`1uN;20S)R%rJrVM-mfu7FQGZva-rTIY(Zs`E#!fqw6Q%b4u@{zO)5= z!ctggGhOdaKvLJCh`s@;#Y$metdg~-DlwJ&)Xe0`C8(Faxql9)Yhw;UnE-$8a^g)9 z|F?eIq9d!kjgO;&_~q=(+e^EIt>Q`By~a#!EOtwfVrf5x49VI}6_VoH)rGo9_2Pu!PL;0Z*wc&!yt3~Q4)LyfANVtv8FC zZ?9wJUD;lqi2StPCtlq8Z`pb2Qw%q@JG3QG*57~wrQ9DZ?5i9cRFe||%-!BkPn$=q zyVL}?&li)Ew}-1!Sv;%eHs_qgHfPKAne&z34###?I_lr2qUjJ?dIqMmg>9nS=O+#)*;mRs+L>TbjMW*#oC~v+sVB(EKuU4 zrJb-TT#V_l5Mx}AR7@Pf#8{akbv33eOomdG3}h?!12wPBq|>L@qpO8zza0IDv=uJm zCQc}DP>(n9Z#1dYA3P-OA+ew7H%M$J7VR9fWweO)FL{re+g3mxX-~nd=nCJiZp*!> zqK}Si;|~1^l6P4`6SIMB6ehP5X?{T*&wTyi{9F;asMG~7`RZRqa)Rj_-l}Tix~!gK zV8#-af-hfHJws*WRK>K=&gwAAv$#M8<0{XnkW?}XQ%g}i87>wM85?brGCI4^2uoU4 z!B9dqEYq4fiT_onMDEO+Z1EeJxDEYcm_&x*!B>$^--OJTjQ)oCr&Ehi`($j{XW_{C zj&*{xy;MeH^+^&zJiGxy*R`<)wl*1kbeky=Z1wncNiFeQ3PbngQ!=B_)eT>%CXEe$ zBcnYoIVgoQjLRNXhqW(*0{NZY`F7~wzE|tpC0wCF1;_$<$l6fLhpt`wC-;9gj$=B9 zTUKCE<#B~P%RTO52ua;4ETg^nkF?{WU(J>c?<<%9*Qg! zx|vY(?2Vx8+%b2g6S^}fgr3dv|2CDgReC-!>}wQ`9+RMwI8pX#D0!#gvY5t+v8GG= z_FACl&*y^*s+OGTg&oOzW`n&qoHsgsepze1!XEQtmwsAo@#0J}K z3*0#67mz`55s-Pfv+AZHOMQl=gCtO@K3nFHLs(uoAa9wr^<8dHF_kI?of0Ht?&#>9 zKexO0Fw4Dvh=^O$@slkM08i!F(O@s{z}g}zn*d12&(BtX4dHw<=)^J>N1O&~ zT`^3SDPjHZljC4f9i>fTEIVVzOIqo#SDy$-Yki=CROH47NC^!2*Qa@00|bOl6RCmQ zrjEwURwE!j5AdkLpyYy6Cxg|%uqLre1oczv7%>9`#bWCAR~q1*0KRTH-6ib)iXp12 z6A2{sDPxyYK#c)g4(N)N``Qk&@I?p#!0^~f%Ec7GlGE=RUcP~o?JUl6O;7fg&Xn|UmoCnX{YorQ12Ay z&EtBu(YPl;rJ2~>7bE!tp%A&R%>X_0GLlC)-|)`jLs}!nf;>-RseU^GIJb&@S4Q{B zY(w;$?9l?SrT5sIgaiCyrO@3z+BheU-mcN{a?J?1f}R7@l6^tKhID3`Fkrh$AyL?` zo6F#_K+y)ZvEcJToi@&Lb(%hh2oN(XGYshqovi5Gsh(p+T8CZsPe=;9VOq1e*>G}8|LpUAmAP7^* zL_R!sLUz^@B$DI>E@SW{s-*{&Ebue}{*$>V^A46!Ny?n0|Kdu*G`_fALxXti@bRlL7gVAShK{D`{#*K z^-m*-decQHx)DB&R1CC~))%g=}F2A{5d@80PMJM0OMH>3 z(*8sF_gac8{qYGV6VDpn!75q!17q=zb`FFv%g)unDRGj2$y!*xJnq-YM$r+$q8AT#9uj0uv;nv7IdTb(@Di8tiLFjT# zr>d+#cMCv@PAiE(Bp@_E5n|U$UI6qfDbbb^;6OVTJ|w{4$YUymvLNj z4*&tdmu+4ghmh$SUBEySE6FYs>`MkccSelfN`J z+Zt)6L7*g7)YR4ccJ(5QXJ>^QZ+7k76BOVcgBd)4Y=z-a)+Z~#9sTc?pWVq z%Q}NaR}gyqsMi$X?&(xbxcM2AT1-cl27x+Nb?s=3X^`pTk0Eb z-liGpCI}Zpdk2YAck>?w1ZleP-)~M3ZY3UiW)W@DeT#zq2BN$Vr`?BtrYN{I)CKa4 zHQ3=Zsv_|tB?AI#2UNP80FLNu3a3>9X*|&6;-QlXh>hRk^)LYQ0EflfL@fs0BOySd z!B`^!=Nlaorn_-POmMGNT52@%8P0M41`7$z9c!W^HQxWd=Bg!ez$j@KcBZV(uc@xr zXdkpklZ;roI|(?)8Lrl81Vx-+o#PXj9MB3lvdEYbEo3?y=%aWdIDA2~4}^l~Y~@nd zW{I9?b+qoFLdM&IiSqdB3c6ZiUdTcx6l+nFob6+62t8)3+X1Dw{O zvCz@_$rGZg#RbcI2TDK)0;`VPoM|NXXNt+v%%C0u=}jEEi>n47TAGQzb4PxX4niCj z`LD@^o;O!1@71O(osyZBVlC~~IF65yCb~6sw%jVvM^sPf3j(Q4H<3mm%9xdjpU`>O zc#g2Pdmt<%yJNV_%XjG_^$*oZ1mtpeq^I`vdD&w>06N3_OHP3O>7OrTy4Z$;+OyTP zq@@_3->0ZJ;q&|C1j}O%;732!Tq2i9X?tj zt$S(eA6H#u8QR_uZxAR&&~UzjpoG95Qzv|6h!Si6AH#X^|aHC0`kGKY`;cc)+c6w*EB451}m>dt}4hvY6!`ASo{%zn99Yk$Z9> z+-}YCGp_A+#LnLwo z>AFhe@$Zllc&FN@>fH2aHxB4<)+0dsD;IulXwtinHqib`IaSA6X4$MT0#c*%r^R$Y zg{9=`7q=gm8QIQI^Y@8_t=cnjCR-H{e?If~NtlbaB81`f=y+)IGVEh(ACZ>5xerzegu2RW~2T|Z0n3|q^{V*Ur zmquAe$k%0s9qAeutM&&q3)7-|xZbd4=c@y@g(^G5HW0yW77OpVihBp;xSN>jN1sD0 z=BmcBcTuRtZ<8-$hgHtu(RVHkFFpJ^ba@p!<0ETsxkEh2@mNb-@LY+dv-A($0*J|r zb$*3nUP#KJ^t+x&iZ+X?xssEt-yNH$xf4Sb8i^5!^Lj{RRc=y5X{c!QKUd#K*s4*n zG$9O5>q@Q+3;M%8He!q>;k(i=~4cxL5aahIeBir=>0LlHm80)vY}GTSO?DN^?ZZ;K-DMHW-Etu>sZxp(9q&6n?w@k zVK2Qcgzosg&@zts>RMfxhpWahoo_H8!};_Zy1T^`@!(3;@9>Sbkk%xSgP(U9Rmzk@ zftU4cKR}olZV7O<12|W^5F1IU+>zFm254a^wX;a(^ycPLEv-#r`V9{L z6tGR(I^6E#$KSPae%P0-ZHJcJ6<)OItYeye^DYHpv*3gLy?bl*wd4JGugg2*p^apN zt#S=ri7VuW=~sAp;YOQC$D+Mp`2w5m1btF^thJJ+PmB#>({l9j6!xD*-Rd)!S#w} z?+cyG=;6!Bo=KS1(u}P3$@Y!t2fO`0oo>jtZaN+h1nk~&+h{&*i|>Zjyd$)h!JQb@ z4ras`*2FHwp6-%5O1byh4Xfw;my6iZN+-&g0As(SPEfFzr!heRrg?6-M7MA+l%Ecyaa(V;cK4S>3lPb%M z`)l%>QgeGuWT|Dft;LA@vzV6by{4P%m;{lx%QO6#6_7M{PVBi1VRHckr|CA)Q_G~s z_j{iTrGUrF9_d>sWa20Kg=cF&v0oDTZ>U&C8?DmWB@W(%;GBhOuiv}q4zXzZO)5XY8`DJy(|HVBq4t6;n#chg%dFqkXD0$YhRXXe@j6Ji%-f|(Y7mqN&XV~ zEXyZM<*DyDKYANPjpF-b^~-TYDD6<9c=pd9#8PoC;>;PBce|_}CnT(6@gV~uru+WB z@uX~CWs>dIwrUo6!3Q2@HkjEf;cQ=Bk3a&C?QRBbIv$mJ`S6xgJ?xyDU9~KtA4*q_ z=VJL|DVuqvjCIns)~b^i_@qEPvis86SFH zil~!Zr;zU}XeS`L5->TEtI_zR(kRH%S*>=g{;Ykbo{v;}M)=xm#JO=FS=*J-l+esw z;fkEUkAd0;vbcm|VRt#i6rINutti`#f!=vCZq0xz3jB5xd(;4QWy5{nea+e7PhR^kJWK zuXxWO_(LAIYr_YV!?(7tq)(;xUtO(=F@vP}H=R#NQugCfeV=Zs7FqMeSdMX~CFPb+ z25aS#q-HRyIN-$nRa&liG ztdWhQ(evz{%r-{D`;vsMvf*37arO+W3};3wRBduJcI0a4Ln4I(TEJaApdS7<3#b-q zVqy9A;%?%e{(ez$dy4Ss-gj(W>DWx6_{2$OjndGHxN zWTwAt7M%UJ+^#hk1-P5K;M|n$_*13X zDT6Lr=YH~mho_U%ax;foVx?*OrS36#cjHwB6ADwr8>fToMwum><8ZHtt}D|yo^deQ znpfcOZ7)sVZLmMrD=!unip)OS($@>$y+g9sH}NyhbUfVMj($0NB!Ac)!Kb=BdpvY- z5Upst+*o3?7e9goJHgpT`Pc_RvG!1FVbG0T=G((_JBpgwWjF-b3Ljw9!+0&{;XY{6 zNhLO5?}be{u0&jTdC=H>R4y_PVyAva$i~gINM(Il$Z8BT!{=}q7ekF!x``rqrX3oo z;6liI;E)fN5h}3FtdCDCTzuNiBn7OVX|-XXL0U?5lFqowJmm>+|<@u;{g z8y&`eL&1Fv=?@bm(!1tuo{Rv5e9v9O&Oc%u}eF~&bj<1d6(=p8Y zq7J>M1h1Tz&6*u}t->e&M0WiDj_lrI`2LCPxTP{rNuPh~kQGx7(6;>Os76w9ZJ;a? zSrl>v#TJXLO}I!JV(g>CD~BJs5gIhZE- zI_ffcU6v2bFJR;x2`Z8bCKf_VE_ zvn6iErnhYL7PS~KVd#Om1>}G{QtA?W_E1CAC_~}-z|hS>sPCbWob>Hs`n0s5g!W_p zR?+!rWA%*Ul`3^0J+$+w(+#BHAS*W@i0e;Ez!*b6awvYQ}qxiLw%O8v}_Z`f_EU(vC#rtWf6VJBI*aWLk-sXD(z&(gJ*@WQ{rolc( zl94r|cZjXqOxWbIRj%Y}tEc(fCrMNw!1hex%fB+WK}6npgbjJ@E1zt@ikvUst(64~ zm?`#VV6LvALg0!5>mjDOHUNwQ&->fcatVm0JV7q1cloFfGOylQU=KY`G8Owc6rE{K zOfM&4!hgkU*_@`@TzRFVreCRaI2aFu{wrEj$`J8-fz0|o_LU3{LK`pN{B9PQr!6Qj z!{_DdrIx`XsUDx5D&hUnMJ7h#lf@Mgi)K#V6p0XSyulHXEK)F3M&G(4!XW=nWzpbd zyqhwB33 z2ZM=}u{oK<)Cmb5FrcqzyKV?P2sEK}<4HantIWDI_>{jhe|aQE)jfod-YrGr)8t|# zY}%k8YIh9)JG-(W3xwV|iG{g7D|hh@$Ros%M@y#fXDv(x5hUq&39RG~hHt)kwknpl z_V&zVr&FNr48oUQ?mZ!(O-M+D5in)2>FLzRX2#)789={0RnLeR1cB}#%Pdtss9QD4 ztu`Unj;3;wXzPWl}s9g z$W`b}(f?kS-`Uf>eT&612DHBx&ESMvn9|9D<>T5u?c5`e2`O3+$d!IUI8-k%B$8m4 z6JDe}&q)LWg1)u0c0_0^(-J??&ct2(e*^o>E4c6glJ=zL>eyUebe%5@o2^psJQ69B zmHXYI#KfoQdvO4O(OEA2lh6A*D?Bn&*~?b>ci@C+VE?*G>t6{G65<%!NjnjNA$>(i zoz_qR%XU509}ME?EhdFbfkM$Y zE@)i?LhzGl3k0Ggby#zU;?5x9$q3{leMyBSZyAmk#TN>_2=iKqv()ln+feiuVvUHg zt;e8uk4 zfzU4ZNGPIBm14d<5>}+m6p&3HzoEx| zGY~cyXu)tu79jL{Q#&2*u>roXZHew=g-yVCq#eu;>L;_etbz(0KBe}sHnL6K|LxaM zR*_R#@k`B>mp*wU1igk7`Rk~DlFf1tbRjNk+z*6)QSNTxHCC3WfzU5XuMHv)`kjT3sQ#UB3+Efh zAE2xliwQ4lnt1e)eo_P*2?yJJ(4P8t&otlq;LcowkU(DbFZ7FBGpt|9X%{!e_8Pl`Ka46MwRZ8YTtci& zhP~l#)>B7OuAVD0f}CMG z(5he0f1%{eh}M-!3w^q_5@#ZHp>CUzTtn~HjZyEi_j|1>1-Eew$5PWQafiYKV@x#w7Kv7fdmF7^uR0b+KW|Bv^*Nd|%igxeWGgK9zsTQqbF_z+X*O zD<^6$Tqd4$Yk$dB;e}#`^SEKM0jarcvv*kWee>+;DbyH=~WtuZ5TN+ z>LR8{9D1jJB%{q@F?etN-Pz%i&C-o_7mgJ@fez(EsLOQ|O1#RCxbpq@2j)u(<8$(7V z4*Zr%t9%jv(c5w9*M2wr9a?47t2aF5mlmkVw4U)w@$HtGTDF}l` zr#Ec>h=fD*&1}1$KkDS;)R>Hy%AypG4W^wmsD!IZx73zrN@nVmJ=-nh=>7WC2PgRv z95Hp8B*R-vPZ#1R0mnSAnYYsw&7W@U&zFV;ij`$*#S+o$gDQrmZI&)A$rLb0;F{{G zrkrL;A&eJ78x+z9i&_nqZ+Ies(XzJC*1(=qUCB^zk%KC=L|+at+uCi6 z@VYgCEAo$kVY^&#cP^24dP&J#UrEm^Sol*)e1PB-@FH>edvg4pVf@3=U>i8j{%N$^ zUOXS@-?lE8&72@phSmD1wTRb;(4# zEGN~X^ubs14`(QKMd6RuM==BzPGZ3#nzC=P`k`tQGkL7|dUERSc;dC| z6mt$&h4On9fr0xdZCnjG2TdxO0V$5w`t}x>`pt%TMC_K)tqOo-wa+o%~-To z1@1b>eINn7eR?gFhTz9@_`Mt5Mees_3eik3OszIaFLb zmdLgb{C=m0t+~R5w)%x#?ki7oF1cNB3oZeK%+@(K#M1jD1(p4UZ2r>`?e~<1td_1Z zU|PfhIm~*{*5N`}*v=;Ff}c>G=&<@fXGJ<;zfU_!lVum!nbIci z_OrQN&P~nBmy_&W7gt>@85av~CT;bdjrG%x?6^P)v&q0Qry%&A;70&2Uu|@ioF|*S zC4GtlBIZDB7yj53o!8@7qKu022Eh~?n{(&)IjF+Qx3D)2^3P7<&!c-DjPg2XTU)Y^ z0_V5Lx7S9wz4*8f4aS4jaVqopZRP=FDW#g5kzy+E_ld5q_LtY=#Ycj@o8pT@;=#}F zt=mjc&U{?IPMp;!Xg>4e}_dECI5s)SirDIzL;kUU@@gW;1TkT9q5D`qI4CBsi}ZGw?%5) zjAi$rBuf2p<9F}O@aD)ew~l@wXSYZ`4dA^KYJ{BO$d_agZFm#Q9eXaBRK49HdWrvEagn(&n=RUY#P~mP zQS2^XYA7bVQfhcPmFd3`FH~1R^dT9axE9MU>K~B{FMTBd1L>DUu~z! zSvUSX=}}jW&xI#{+J>>OJ$0J^3o-HqEP7N49;VkhIRAkJCr%hX)Y|2nVfNvBQu(5Q zf(2Uvon2KEivOIj+$JTyh~ckLJgU`v8HFP^G46|Gu`=;m32UiKDnTW@%CO_L$zuzc1ZGHg(uJW;4TAqm7d2T8sJ zeGv|c-5e%fF1~7o|MAzn&p$NG799eyEq^;jEl*H_qXD+#9dg*Cqr(I+qG-DUGes_*hG&lypu)z`IjmP! z9vyrd1!ImaQ?^b_gfai5x8G*hKcOECsIU=Yz)bduY1t=i9+C^&Z^15Hpi=YEO+Fbn zU5Nt)v2slbw*JRPt#!_9;>EAocgVVEaPEpH9ga%A*{|S%M3UIIZ~_M!6FSAV#1JZU zFc${~ia*e!AuD~&jDr+07$HpxDsWUrmwv2)RlSlW>>dvM1&HpgiEe*9_Oh7D@sYId z>UK*jsac-K|G2IeS*u#c7A~FBfGzCFBK)(jHtq>_E=ds&k5GJNi|{LLdb!OSjS`4L zSc&k366f)K1yurnCCRfkh`a8SZ4~&e_z$DyWU2edWA!9<-)+M_bsG;L{8OofE7smC z_rQq2XXkp+H#_qGLS=m)pXFzhZb~cPRS+Y%8WA|0-%Trv7_7Z%B(}FUl}#7<&bTBu zfpr+0{oh!uihr?K^C;Sjb%I*H-Qp%X)i*wX2&^7xzZF(-xAvAdZhhvm#6?zp#!RC6 zGLT}-T2>`BwfsgV+#%{tij?ACr*j8#WkWGPy`D3$4|)eELINUb;3@u4q?{w=S7a@)P} z&1!fCe^`6c+aMRu(wRZS)Xqo69q{Bq)1tw=$Fy5%>DdfJ19X|#SU%l zAw?=(HA+V@+sfQs=Zd4})zu1zMqvYsSAE|#RKN8H#?>+ELDL-2EU8fY3xh+~|K9P` z3Xh-00?A$c8c~tha^|E~LWQ|g2Vdw%l~mr%wDVVXV~B6#@S)7_=I$Y^e)9((V+Gg= zckqh75e?6YTl}M`^9|Su=gKCrM8wdjV&msaA%8NrM+$I>R}7e~tiD1cCqF!_x9R*X z-gZi)O_E8T+ab@~Pe^;Lf(=a>}M-qN?Sj!#$R0Z-YPm|sA39TeXBv^r{a z23L|1x6t*<{SHs|J54fFT<_x>1Ruhcp&4!yWB;{zZ}R^`iUrkE%Eyt2jk8(1W7tQ z>AGbaxCHw#-q>7Ywu#Zd`kOk51R zqCEV{s97X5J0jkjye-yx(RJeJsW6GFM)pAuI|=O%fIn z0jS{5fD17Pq=I;)(t0^Df2arg8>@d>;`%5;JU#_U8##5pgqT^f@6PtnF1sX8yfW4B zGO?G*2>-OiZy>9;5uGTBu6A{NJm7b=dH2f;aU`Yvz^_4ym0}=~5hSyIj>d_>A_#U? zOZyLt{UYdO0PO^YjJ^z=1+hax3c-N0j`JnhH^|3)ZigD}SfV^zVdORZ(}55O29Z5n zUrlDb11toujqWgx*+QBrsqty3ZP(rS=+ed`Q|U?&u_g>qZ`S!Ei?hgf_e$_quPC}6dPyKlk-G>s#w4M znVm><2vO}J&rBRXwxtlR`x*&=$WLmlrcK8etf<0+BzOUdK>~rS3|XD5BRM+6ZfdAi z1B3P=4cNq6LWC&B#?rCAM9S0N5dcu|IZ%bTcef)U7 ziJ!NiCJzuC$D$isDIdDu#MG1LBxEd0T;0JBY>BrHkiVmmE6{jX2m@QE>J{C1L@D2n^0HrAs0_O7mKb+<yR-7d%S|3oZP>IB_Ul2fG1cMwf#J#0SkaeYi z>gu~1(5{=~;hf&S<1GC*?RN?hTA%=@&mW?g*fy)IyBM`6*Fgs0?^-NVYwDLqbQRD7 zT_>wFe1-!e>B+5WIlmaPB@4#&w#5azLBO*h`m3&% z`p^xx|0aD#gpTgH%h2J&TPrh^1O(rCwOM;d%AC)d_6$mTu1fwQdWKZ0XkywyN; zb)t#dSEZ)aQbUj>x+BeoopM}77gqe9EN0Z}-PHtR@herQ!qneXK0O4DUWX8mS_)8m z7eitJsPhq5kf>sTu&z8ZMM}dFu#8Zv0}&3}^t`2KI0^hR7lkCIsY{X##%o(Y7p+Sg z7oWVwR&$(K8l-$s>~3B4tgQ^KMP+O0km%zq6hiRJe%S|KXid6`QULg4rY zDMA)FKQxJK)%ZqfG~}c;%_Hkhp%nae6!#6U4I{_(M5h>jbeC9g9VW#{r6!*IrLb;c zSKa0QO<_^u{hPwV`tKB0^nX!Ug#QzT#q^5Zm6R91uo1q(j?gvcdLtvJzqrq;MHGI6 zFgD4%QoNE+*}p!LrTQq5Dd!=zk?U`24j6Jo(kOSRLw0gW4|yC{VH~*4bmxlQv?<)W{g``^NA zq4@am82901rFq+R$gxLU#;|`3xiHBoEZtj-+X-407qp}1dTMBEfNp%SM zdGm#^J&NArp0WQRTSMaiLbklz{tMY+m7hA>_={{U8dh-FRTK+87E7xO9&$S7E&YG& zy;V>hYMZT#O9&d=-3bH;?hYZidvGVXdjbS^C%8KV2=2ilxJz(%*E1)OC4aB#?z7LS z-nDoARr8ACf*Y#lJH9cVC!uVTXiRKd16rT!qMV6b>A=K3n2Dv>&otr_f)zz;d$Nkx z$90V^XBE6(*crmvNmh!hc$ou@z7?cz6q9UU(3=MKu18s1J!mY*tXLQ!`d8aV|f|8uJuTEq)cl;mbv8sw5K^I8m!D zj57|OoV~nO#7VXAzLM_Z4PM~X168z@>;*XWlKNWV3O(A^il9cY9cEgBm_KD-UggY_PDVeTnmRbwd^^ePtqF^uU4018TN5EEyaH=T9f0QOae1H0>-Ioz zG-KjeGlQdG!ejrFPTDZc4Ekt!h$GYSXK#u)N^>TAN!HZN&4T?+Iq$4GnH~*J)MSkf z0q^H8CV;6~w0wEJuitg{?q%i}cR-_Czp=k8kJS7*+B=5~zrq1epf`76&TjJ{WzXWg zzH+dX^Y#Efx4vp&dcVkO&)hC$@EWi)bMM@m3;I-Zi)0^!0tVU1Qzvq^CRX06BgL(O zDthlh%iDZ8Pp{0Qsp{;@wXr&Pm4kT@U42Y*Y?X3*6MCCD`JhtNyU^L0a2d65#Cm)% zDH0(qac$K@Xu(8L`2L!=-0yVsw3i~aXr~2N=8l3aj`s`E>>ycZRAX z)OzD3Vz+((q{wmP?dxp{+Y8q04>EuVBKWfFv9LnL56mDyU~M|@&R8<*3ABTf54V6r zGq+1*3AydmjcJ`d)x!9?vQs&!M5m%iM~EIrb}7TZgb+(d{}4i;{Vjy3CenI%o$3Jy zA&SBx?$fpct|7}as3(-Qsx1$cX52~EKSjTjK9xw&-wu9DkC1XaR8=L85-bbYnc?+1 zr%)Po>_GrlWr)auoHVFE=7F-$rXjXY{YPIP=oiO{p6RXsTEjzXh-Z0#1E{&u=&3=K3e<0VPt z=)<3t6~F8F}zPonAB4Gx6>@!IGm_kgbPX`F1d*aNbA($xchaBBJLpOBFrT$P- z9FGZvjL%a7!Ku&plt8eGIRg_2qJZovvYMO=v<&JnrOwk$;^fzaBvg#CBlE{9hQ~qj z{=GyA3tgFgYkTK=f}V;j2LnS_ec`;m>9qkSa4*O81P(ZD>;aV( z*}~-)YApqSNgxlt zgNX3hR>85wyGxeiTa}el6d7*_A2_hh>r^urkVo~afP@c-ElV5RI*oYG8i~cb&)@a0 z>4U+soXe_ctkO5F9x#Y{1tXEs*q0#2eWdVpM}+{!KcrKK0Qbb#jbGooNyUcfIA9_r zP>QbwK=hYw5zba2KmTWmLld`6kP+s*=!YrMg&Vu(DkB*_OEoPWviAy8yW5Bl-IFAi zle;f76}IUf8W~i2|o#%`Nljd}5zhsp8sL_?W1vKzQ zKt7j?vWC)hO)?NPqUeOok|6NF-9$d@& z2`Hqz`=mBA!r`#;oeGnQs$9hP^UoO16v?qt-2Qo1l@OBuzgsB*wlkk#22y9v-w1Hs zP_O&@!BPdj!_-Y4ao;5l)w*i~7%ctNuWqa5scM>=q*CIj(6!qUbIm{4BVkDN_I@Jz z7GI;IUH%dqp0Iy8@WP%>N<jrjXkV9CS8v_U2QZXP95p+F%9ya|hfa3$ zs*Lh~^^C)*bpk#?Lwrpwqojkn^a%1MA)Rl(VNiMxhp=t4W3DOT#>^}M`1%s$74j}4 ze9i(Y?w|perJ*EWOS(d}D$;e7+i*J2NcATcbQlPKRW-PWyo4;gG!3}QvDki4ZL_na zgBHQYQY|HnV`iWX(zCsC{w|i~D^EBJ=hY%jWPK6y8pzh~XtxRFD20K+dP$REK3V>; zg$O;DQ!9g^3w??j2g1SN;DbFYG4rQ!yq2Zv`|a;^jjg1pI<-`Rr_}V<=+LAe-}{xhYKig2SdprEj6t6{Y9AemdmQJ{(N{F+dPnG2r%*zQvXW^+B zWbG){LDQ%sh^tLp^ElGck+2ns@6oQx=$%v;gm&4V%_p1Z>ieK9t6I5xx(U?@*s~>$ z*Pb?Lxe5Ph?z;|i?Up98cYaSdogmAx{n*7&R{v%M>|$u;Q%2OLT`Ar%&DAMYoY!V_ zu6=B^E9wVepn&r$e~PDDp6Ab7{^$Fl-I;A^O}Zc+-6rg)=XQk;^NO!8-myV@zienDZUvbhUb#w!r1Ad?i{uXoQBlfl^vWK z1xm>(CyJ`Fh--h}XXqAjZr zVN1xGtJR#La(NJO@!`b(;9*UYb8lbC)wduu7ol#gXV-dRQ03Z5s$U-?&xAsE=sxb!HldSiT@Rxq>6WYMA z898~q>K8C@#?tyKg>gwsnC)#1ys{-<8NRx$5RU5ju9Zkl#IzbHt^WMdA6oeM(%%c5 zg_uY@%|ftn-?9CE>354;(VxJFmc7BtZ_g!;bbd{*;)&6&?I<{}`2nBI(H+GCL`Yjo zov@Lq7d5j3XM9eSTywee;8+#2)NIfcYYS0;bBsO~Ev8KCxZ-UojfrD$e4lKI_Amgx zRQxB+MVvvTM^aUjD)(DPGIArD5Kj}btbZ>ye>#1PBAET>eQ|&+&vykbI~NTXg#6ZR-1XD3wuRqL#^ z$1{7{=JCufAL~R46sUHrJ(i9AzK1uZU%$q!GQqO&3X-AI2BQ|sA2rxt#NAtTjk=EK zSADyzt3W;Fi!TU&zVo*m;f-LhE31<#D6t~QVoT=emc$?Zn| z1?EyL`zOqW>9BKJe(j0olHusOkft32UvG+litJMDkb*Rj8F~-X!?-%6V_Y&a1Lk`c zzjPC-u>g4IAFKH8gI-3fQ`>0lup8wE59QrIkTs0`GJ}qRngXeJlwhR;k(lhPZH^I1 zKR%)a#c2lX6#Fl1mRy5~$4Q99i@IwtzMnz28*vlnCvgLY$@Cv9I_lM$Whepjc*f7F zYqy7nHDWWsO~{DACm@iegI9Cs>5V_KfVp5D(!wM49o>ZPtBeeWXu1HtZ=WFTr6_{T zGa~vgtqC|ha0s$U(GOb=sRL`jLwxF|i<%rE(XRNGaVCLIIF-%8lvu3~!lzEY^)uvA zf7e37vR!`8g_tW$F79GE&L6H2nfE*e$)m8MM1{GeL|E{#3Ctb#(qT5VqlU#4Pu%Fsb4F&OU#*-j`NfXPKQf^yf(Q| z4%RRf(l(~-DN#%SzB~LkJ1@ZegT|0klt2ELP>G%yfbTx7kj^r?ek(B0#|P56QVPzC zgXZ<_1*zS#l_C}c7-euH17<-N#+%<)Hf2}7rMN7H6Vb1zp4D+?Nksr#rBhYv$K1~} zmaq{n(>*vY`B-*IbeIM%sPWBQMJSk}Tw_cj!FEPPz{UM^X7dw^fIOYqbpJ5@n2wD3 z%bBhIbY{;u$;qP0TWfj$Is4$j68h1T=rhG7c{ckKgI^)JPcEG`Y%CV$dG{gDU?^uA z0tJ^&^T3gir_CN;Z&ijZI(U26i^P=2pv-6$Fd0X^r;gG>XDFd>NiY6$mk{%1U}xKM zUC&n;=pl_$kJr<2>fDQ6_t~4{rw5|sErVG2UGh{u-(B2Rxc@iCAIJ{m8*9#A@v6>g-*VNu@E1A( zK1W#H7*2^Ds=J*ZsEfJ5{h!W0 zGX7!qVQtRHimi|OYe=8phc2@w#SF42iyzEI9AhDXw-x?)=aWoj0@zHiKWU5X?wZN`k8jkkKEJ7?K>x;5Bw9LqMgGK+{mMekdGd+qhi)U+`+*@$Xmrf4|!Q`_=w`_|=|9dX3aG z(S};_I{vnG1EtzAJ^H0AbN}#91(w?`fteK23Q&>OkEoHJ2~k?m;3H7=TDvQa^L9R2 zhyOV9aDI{hncHNqF|YB!HaZkZUFQR&gC@cN*3FC-(Z1Aq$FbIS@Uj^+ zJITb&R}OHNu~ZK0Wr&VcJD&gs!4V6*x}8>7Ig0E>bGH>Dh}Q@37n7;|Qd!aZ z;Nc;i1ts(YU@`uRBG<0j(iIii_-O{knkJJYEk5lF!6~0{O@C=sOS*TucJ@pVes8@m zs#%;TRl*_|_EMhMay-{2`242#b*W1!Q)vw^4{=Im0d{}x_tRY+H(|SoK9_HR%U#HR z+V-o)s2;g?FvH$4J&##Wt4N(1{jrEO;{%a!X4iqWf^kD2`8{Tjf*la$A;b(!Ix5I*``x&c!c{aY zU!DTz155Ik0z=Oz*A<4LGNx>2zhu~aq#Gf~!{H{*nU7!(Yo5YFg12!_bDpw|{931; zd+unX+&G!=j7#Eo7$g}~y69~O`kUO&=(41DY&ggkZC?Y3Q*V0~>}RjInsPSaW%r`k zvfv_kA}_Ni#8XRt$g=4nUCm~=P*P0I3__-tt5KRnc8s=Agqv_rl1L_UNmn}UesW70 z=NH-27;iBpZ?QFo zyX=WY(r+LPT?2dWVFpzBE^NhYR@Scx#%l|Ix?p%l^3?|Q17kjQSNtQtBEQ$z0j=69 z?Co4UkJOT|#;e4nZHodKZY7Vo8CMg7VAvm0_3|fWxem23LJJ>=bZ*Vx5C}9a)#5pa z*3rCwXuFthIELCgsx<#pkxBT@sPXL1GM6jj>KNbrqwGagVd~WR0`+GfeG}b-`Hqo~ zsFu13B=f24_`2l<8AftUPDBe{#@ha3d?m@rhW2nq-)K+j^65-V<>V>eSFH3*s$vS7 zcEYwD303ZNV?oO@40cI>sjC0wi9{0jld|D_`>2IzV&F*6U&WpxMTZ^}DJpO5UZKT8 zwA_V}y-Pj*!vJp!D}V7W zS3F{_5q(IR(XZT_2K<@6l=7R5?U}$SHkxkVRga?}^p?9}z;TrFjM&(V>qqW8kFYWrguu;VZFc+p00 zQURQM0BGe#dLNUXI1tKc3y-(Kk?WlS8#vuN1*IS8KjT6xI%U5us=Q0B{XrC|cWbm? z!hezYpr_R_V&(D8fRFj$niAr2DmU{$}o3IDB{S_y}AR zJ^go&qA_^SwYP^y^adYh=#q=G^_GR@(>5?USElMdDDfDY!1Az+Q5dwBD|wo=8|0I* z?@XLQ8lc=~M(e8%NjC(hflkmJ$q6pFbm{IuaAD|c7onB)u%(=qgP^^^N$1DwJ~{l< zNQmCXPx4-g2@6}m_kHvdvW+KlrW4*z*kTy#SJrr|`BtOJo5NU$VpKk&QyN(8yHwJ6 zSP?#!V4(WJj8>%KF3yqR&_yrq(SwS%ubHjwE`hFeezbX^< z{sfLfxfL9IE4;C}YHCkCc#xGL)`BaC9M@uIBw!pCkFmnoC6s`_JtE-!O$P1ao&ruh zhLOd5reDXTZ=mK!S!7ACV6HP@R+G=+j9I)(FO+>d97Ivc%ek?*CZx^%6t#6bz1ysp zN`a`vW!9bRsRwW^$+z2hG>Pcoqp{6-dMm`Q+wA>?V%F}eF~a5{GC%G%2@>%1s|j(F z3MMz2Yo3X-k~@;IxlOmRLTG&wpa=xCTKv5KL#xHkoQI6V>ON|EWrn}uvT|?}@0$&F z#YO1XOQOz+g^QBeusbZx>9k&bAcN%uiT88m=(!$!r)mUzaE_nYm(HV)+xQ(?Jci6A z_p{0y?Dk!h@MM+rJ^>Um1@8ZKxkV(mva0I;9ft)w;=jXT(X&`ztTB2nJ^JcJH!RS+Dw3ObldD(f9 zV*lY(0_i`OTJE5_UQ8@@9!}27I4Z}B_GqRG;eZTZjG>Di1T%J09*MlYh!9WM1h03C z{jrnyYFqePP*HY_egyrj9O0y*N(Xw>a(z~<4^6=(yT8}|Mk*#(UQ^%+o=o-^c(O16 zo(v~XJ35r;`o;I?XCD1wo<^q^p_?O{sdNUBNk_P`-z5LJ^MX~a3peut6#V-Y4GRO< z{E&<$MV`R!pD5f))uO5ElP8gGbM#Cq(YkSSi3`dB1zc)qqnSZzbzZ?)-6|4}eR>Jd zgnxio98Kui?v)L2N)z=&imppFDTLnU2NDWYyu4z8Aj+ zT1H-h_U#E*>ZLN9Gr+7~Az&A`3gJSESZ9RVh-`b{Qg|RyZ6$5|xvSy%*Ii8%<`a|!){U6B|?*pzv~u0#m@Q|@;Dt>lq!Z1DXyk!<8i ztN54LO=QJJ*#Bw?5*}49p5lvjviV!(uG~nzr6}l;0#SBgzeUq2Q>K#g%OoA@8cpH~ z`yJR&v;jgCBp7{|^4n{Z7*MbsDr~6XpJkH37|!nej2h9nApkjuFfSxCOEk6jfJ7uy z%{hdGe3Xi@@Wn?Lb@1B?4ZMYp#aFGE0zv&fL;8?WJq z5nqmCC(jl56|sbkImBx{@r!eG`hDr%V$*&qx!uvv@L1E?Z)!EgWj_Hp75mfLGupAxIs)rFXi>W_FLf8P0!ZGduBruDq-=FZIYPmm1=BZ z5j}6`7=~BC!#3Npcb zHab}m5oa%K#KCks-h-+2DeG@GD@LGhrRrtTF+#Qsv!JJB4#5`K$W=TW zuVet`B{j!lfFlPZK(>Q#cv6z(9duXsW(k%UB$~KAe!CG#+eyGb^p+67k;lby>LurN zNPz}9`Sm@_1Ohju2dzBd1t8()rc6mF%>f^M2f#--^ntC-G0N!YsY+EI0}P9)w3Fqa zguKKak_LnMfHA@>x>~4@ zitlJz3MHMuj5$iNmtfG(A)JN6jENF_AV7-9{9wdDBH+_qQSczPNQJh|6-Ji4xr5zs z79wB1tcVvHMkLJ7X3aC#>HbWi@Gy@Hw!j9<^K(VDU4Hc@yInRNyrsac)$GzYB@pKJ z5`&PS{X2%tm1#ay6aZAr)$(ju%nhl~2O1U+3P%ZT0ER^?NiQqD))m)fX0K#`VX@OE zNuN;cYHCxM=fK;BzWPOd^-ClyyHde)kXDN0-NG*kYyfCiO~v8sh*`7{ELT6P#IGYR4zB9EPK=hx_j2}!W3k*ZsA=+&ZJBigsK zUand*SnNpF2F}$Q5k^9P%Xo{?A# zPxMuwA}-z!YV}y+o{C1RQ&w;CFIY%kpy4P+lOFyWKjQM|$igC6kD_*Y(ue1b!?9J- zak1U^*0MLgwYo zWtR8ZSdKAVE&+k^9lQSeYR>gNUbrh#F0$0P$tQw%F=~Zw=qNk2&;5CXdS#jeVi*YE z(LE*nRLr*YWc)!Lh8b`7pd7zD2!`yB+|gn1TUeP&d7&I1ue8yc>+?jUwE=fI=j4yO zoI4o6F2_Lw2y(&x4RYDRf6xT(a();+(UG%Po_0B_))i9c&mfoTY!gxidHrk$f+%`7 z^$)JJ5S?nBufX|ZRUAVdbg-2$RlXB8R-AQW<$wWw_u*-JJ+oxl*=ra@B>v2j*TKn>&Ub3*6u^@#Z3Gm=g?*M1IUgq>$B$ z!Cm~LYt466@a+9EERQ9djR%q8g(Fv7G}F>Vx?Pgb6=mCRzS|d@?^SlbiUP+QmF1~< z6<YgBBV@lRhCentL^qGQxgxmx zhRT>~VXliUHz{`eYT;sfLPo~UFo-9L&fSf;vtN9r#d4YTpe>xqe75*$MTsitmbx<+KmIx z7(3qI!R(W(a&dPJizrak*ZNxV@tJqfbe9I_ zwgZGs4_2B#IgQt(B7Ynhv*}V*pEqy<`5p5Z`flrb$Cnd)o~trPdi3qizkW&2H!{Y8 zvDzZ)Suq-Z%QR*joLdj+H&Hzp%()jS9G{t?o>%nPDn*;Bx`akq6K~$neY(2 zXX#!4fwX_{AT4Jqun(5^>uFr7`gWraQJq*M$4T4w1nH=oz z@9j0rxK_>2d5oJL?3!EbH%u+qH*q+R*0WtMuU_Xl`yX>z%=qni99U5_URaeNl!iVq zUawENmRD_PL?$&|djRV^&^+(%7jK+fE+4w5JzFoWtRl-7ST;P57ftUy1En{@{EeWM z7gGt?-Ku8NAK2`=#L!#aSZA=1E$Gqf%$28776GG~_d>XDHoy=+1}4@@$Xaa7D7H9YS>Nqmv(@?I}FYOf6@8*BcBQZwl*+b z;Bx=tnB-%?uo+y#f8Uw4`0>mouP;ULns~!>gGI~&^(_DRNEj+*v%G@)n)#bwoYarI z5$9sm`qhckCIN-DT*WusE+u(z-C}{k*>-Rqv2>_`ZdGgH{rD@neJcm+g3+yT(@XUI zprp5A6ISvWtqR3JbcY+f-@175K#$A?y_-3GH@KRZ3tu3O@nF~^>Xm}WWJ(9Ao2?Yv z;tPT^qzGA3Z9geNE+Aj{F!u+yqh5dK9IR3T+^c*9nePnjCUegO%LJ%f@cw*#-@sbSgcJ6SX*mgA*jMj%l`EGkR7J{DIU(+B_<<46z>`HO18(Z zFz}|#E%i#RNSN=H@CV9Yl3vEJaHiu(KDh{E|7uvWOn~vVcvpcFbm}9o12ku+ z@Dc2aCc9;VFxO644542_55Y&?v>{V@N%gzT6ZBZ-ad#PLtwdZV*W05>xeZ2oM0 zTl<=+kCcw|+=C)-cl4uAt6U#^(DRfHTEIQ>YfXIjzp2JFhC^BlJYu#Ee1BEP%E=e)8w`d*0a92YVctB{!t&?3F- zdfyrkYsvf=D>%gFS+P&qEb7qVv8z96k(?u)MU~tW9 z*u2lEon$ZH4CZGxmK7;4K2bUJ;uL!E%*}sx_MryV{1TOSDB}o#BQr1nWD2{0Orige z$;`m>WQI$a#&+J4Ngg0YvNw5_B259MNPRp_V|M_MYf=>4NTld}+0Rfi(ADJ&ClnKO zz-DGXEQ3!r%Fy)B=z9(ePjO+3&F(Af>B5ff&cy~mcec5!fKzuE6gDrzL!6;{bf z-02hdnA=n{z1&@YTf7YToNW*iEIDIu0H7QR$-vDFG^Mw!DDK-_-7SC+DUL1KEFv;w zH`=h6rtT&r&-jjXtn5jEMEQK-Ok?^JBSE zzU0w)AVd)CApf(^)2Hn6jBw?CLbw_tcm77WI)t>rRzD$JoBS26fPEhPmL-k93Xv!i zp-lQ;=Gy5!3Xxc1K$3uco~$$AZ00kh0sG!#pNF-u;7NtlWXf>+q(WkQRw2Fd7HfK) z;wT>ga@zIZO-Suv2wuZL6B68Kk6^iG<`&)%_i^L_ zEs#ij-q$ic#R+ZkbuL6^zkuvkfhTrr_%pjT z)0#jYj;$_=#{7}pS|`hq)D&wGuhk}bJnaMi#BQ~HVz)Lwv0Ei4-o$V}qBvZCvs;lD zdlfSWezRMP{$#gSo>u-H#Zll5Kyf^>TO}XatwHd}NZ>$rD=o*%3P7A-`4}ezKF0}D zLc#eo1sapXRuIFO8jleHn$LQVm%aIe^o!PWsjBzo;Y;wg=- z%XI%I9}*(ahh#@7QuavVKnIXG5`iQROCX5@=@o#)Q8qhx!n`SM^Xx+kgl(P&`jAE$ znkurAwPB)B+rDK4Ht2W>6slY-DyBU8kY<(#NPPv=a{kqa1Xw{l`;fZRL^K|KNSf%W zXH3abRhQ-1fN(wpfR5J~dc-f|+Fx$d{BY-dK$wf9>P<^LfX75+9Q@-jw(#_YhjY^ADzWh=N3E zwu#O0p4{XMA6=o`g6kz=$`5*tgTru49QTziV+=t}5efqN#pbO&j(rN=O!|y&O*C&QZQx)82!`r5Fq@UNdn4X~P|_a~c20|}%A;M{0eC6<(>e_F zH>j25c~oH1@r8tlil6&SKwHKx+CLXIi9qP*rI0GPbm`%_`VR2SLhi!%AXv{-s6z?CKr{~xu|KP%1vj= zz~Nbk)QFod6!Zk*VCp$xEBO8h;watJ`c|Rzs6zrz1%NnCY=Pv~*IFjz`!94D#EK8t zTN@|GKx?6`v41I~h+KLD$*pb-;<=9?4yf7jM-WE>u+qZ>B)5tI$gQK6AN>L3*3H-R zi#Et(=Q-;TltlErulw6X)?dL=--3Y(T3Fcx7?7AvhA|K;T6U2cuR&(;rwC}kFpBVh z+do<)Ly1GvcQd5v{qn9@mcxVL?WM4y6h6g{KBAyYXg;XO-e;^Sab$UqwOlvJrbBMO zJuE69xs}4$n40LmJe)(E8pjazr6|!=U&<~EW_b0MQ+Zf@3N1gtw{a6<$++e3J!wtV zxT7$|mKeO(?`BQz(q|!_c~e*2lu1C&MVUuAY|U;M*PYEZTM-prU2y*GMR}B+s+Iui zTEZ(KkEMtoVSa;@P4(Rqf<-$S$^<(% zp?&r&DQcu5zcx>E3hzB}EP1qd@;A_fsIbYxfs&$VeN!)!Pus!rQc|F**_FNBd4<6* zm8!=?06L@<2U_X(A643?0C0_yU5|Dd;iTfL5cg_-a%V|tk_J_)6&*K8C;>(8gyvr( zx1E=Mn}Ts6_!j|22KEL9@a&1Q&w0V5#y4BwD5v1<**5s6h)>sx4m)b&93Fubq-QWW z68igstXAU7Uh4@m2l;pTH)mUr&CE3(cL-y-SK{2Zl*XN}&@p0Yd8RLo+UK#dj;8nr zSt+!k*tf_=b-Gc%kBa8M%0+PYIyEzpG&@_sShv>z~0iJ{u6yGl9Ij_)@fR2KIUZnvE){UE2R z?rCbD)-x7r{IQnT$x&;!Eg^U>fIXrj$PQkBM5W2n>??Lt8l8Ev**m=Ziw3?&6>&U# z7I^^g64NC@@f)sv9$f2drMd%*pYF2e1x+!5w)mQzU+(Ki%#+V#2C9AA)R|qQ$p}hK z*y{$6e6@?e&C;jM%U~)=btzpBIN#nCZ?+AIws01|<(0F_%`*fFqpz)lUd3m@v1 zoE3II9TYXKozh1@o@Lu)Cq-Pkbt>lhek-#(8I>s&ra7NW+-6c8SGMcTF6UiBM)+79 zK_-`U#Uw!gay*>1c)DEv&c*W?r~ywQx`niH6OzQUWw2U;>VE_8)>T;$3CW+V!?LdW z9} zJtYG|{8ZjPx&-qX*EU&GIt;n^uLDUQ++U|^-~F02OD!o*As%9{w`-zdhR80y^SiYO zZzkv_XuO}i1Gt+tH3LddLp{Tr7qNwTsJ5CZ+Ut7IS>H42=CEbtkedPA&F2@3cNc|8 zo?kt0U<68d>{FqGA8hTqv>ECz#=zmaJnORoVZg-t{(hqE1uFa@FTen!KFEgHjgZ+` zUtd#mVtO#{V0)uzW(H_V+-!HAmz<3EBrSBdVo*$q4sb?qn2fS$T)292ZZ&$^+B@0b z#tpM}Ed&*FZ$!?Wj$Z(n8b2;8a+)8mfQf|Y;62p+ zx^iL9R0^4fSxKhNGlE^P`U%5Z5@!(D_^Ngp?v^~W9X?^#ZizWWa!6!R8d&u36i*Tu56foj9-suq zIeaA(x47?h4nE7^RrY9JX>1l`pFHYho zgwp_jOizC22Vi>cb>jlJKAg(@fUS>oOc*X>^3&F5AykV4>*Ag3@*i8DR3K3UHszV9 zL3gRjvWP*|0U&B{|B#N$?H~9|^6=Sw9%J1Yx!P{0hDuhb;6*?YVoWi zZ#CLAC><%?&rUSv72C(^!K=sWfqpU_;0u=TCRk?VdpX17V0i#gg8};wpoV5emBU|w zp2O$g0+ww1ykhuaDO9vUU|f*I}v zjQ%KG-hCD>mjQ*#d3z;;vs`M2e~SmamhhngHNkV; z0>U&}zCXe=76(zz=%Cg2af-4@jCP(@KGKW_-39dWGc}}Moc+<=b6SZR(;pZxQT;!6 zo-qRZ1}8sVr7KEnT$$0As{kvX8>Uw}7hund7bc==X*6W1)O3(~;*AWX4_8>21jHSM zrFvgMWS;5<$u5m>OfF~e>Yov?EZ5FvEwkrZe?Vyh>IP0Y9?S;Ng}&cqo`@om0sEv#ak++$&~UlY)X%Tf5)X@lnEcZb37vvzmo-F$OQ zcoTaqA)WIoBHW$|3g2swFp3C6VB3K1QSnj}m(_n2h&PFwNtm2zj7eUeMoz|3Ke%T&Sfjb-W@nDc5eqT55s@{P03wfeekZg*CGEubR`Aq;vDZ z26HUuv0F$eU` zDtVwaBoW`O$Mm)X!yzV6Lq%^*p_YXHE~kQkA{0Tc|{d@7Qk{K!d)<4*+x?YEfsPXz;M zu@Y*a9~lq|cu@Tr3XG`!pArh>>u02@LxsNN(vQNc9|ZThGM?)i0}I_>eW5P&86c9f zj2_G>HNXM5T%z2nm%MB&u_zhGaC23iWf&%{Vt1xM!U>}6B@Koi>jn5e>x8sl4ned# zYHY@hZFQ@T`2+dY*$a{RH(GtQsSz?~Y42$NUN0~O)C(MZxH3eUqa^vkKqhnrAv(Oe z{eE%>A^6h5M%3ZNFgxjl5ik1Hkb?WtvdEr7iWzRfQ{!OTl%o`QS|Na1B|{My|L8fy zz4EAC%KHhbqqwj{clG(XUXc1&FEDwo7j&qi>GOXAkMa+x5CYZ4iHEfx&5*SlK{<4Ss z`)5?^FA!ne#sPk0dV-{Jd&^8ZWc=kPGABDg<cDnE2e4hRTYbU>e;tMUta8z9vtk9RT$qDPX`jfP48O^o6L*e^xsNKB zYNtmsXa2vaTmqExr=C?VjCsgUDwnuUqq~>6@^l_gWX_iWGG{^lBbl?wU8esxnNzp4 zw&dB5j05l^x1;9!J^GPV3Iba`t|zK9^645~hmlP#|B7>yXD#3gN5RcC4lZ0$WE7hl z`Rzwee)c1uvPoR~9Cu4@XFU3myR#`mDXV;+$()|^A}JsHHlI~40$=&bgwtC=3B3ct z2PL=YzmS3zi9>lslj9uHl!m?pxKZ}me;ka**{q^~^ulq8S+k&ADM0e1z#wG10=$WR zJe@_brhzT5)~UM%6^Sa%Kp4*MKK^>rBPRmEoIPn6IRG%Hbw(PX69Ld8&(J~{t&ea! z6?ro(r4^|lD{LZ_#bQ0{kqrTQO&*bi{Tig4_@y2U^QGL5tJKGXxAuJd{K+D0 zin+)hI>h-hLZb8^85)1e#?LVW142v;1s++(oBa<8-a9lNc}n#~oYy^dcWIi>XO ziUar?FQ&bUsBdj7(<;h(#d1sSBmwSYD8R8#V^8~@hHW9H(3tRJosB?{K-DVCp-;zcaIQXHNEm=5}}eY(qM&clVI&)1U?K z-pt4~nzVlQ0*_MT+36j6pj(_}t$tcVjGC){6$|BcrA4C%OK7U9vh%6GjB~ZE(D`LT zVKDAdBa95K2Z+6y$LdLp8lB38T;Z%MR-_%XgWM7kBU3)zUc%+CPofTc$L+y!=-Dd`r_O-0PcppB#Tb{^G&B~QJO%f416vpcPb4uf6 z-J9JOhQRghMPm^sxh(W5$-_GMM$wfzT059#6_577N5~y5CR}b3=PA_AJ-ZG)XP=$` z61t1*!fD-Kc!;TVQ%rRms@~C`^JhL*e+`kvluL^P?oGB2DLoC}(sA3V^-h6klx;tB zzGu$zde}*{lg@cyb6v7#$1*4>T7_jU@N?2Sj?5TWt~;Z$D~!-J%+`v_)Y`yqrOGtO z)*feUUQ!L_vc6Q^8PAB#W#f@W8nON!f@3j8@8_sNE`nQN@jUi?z{dHwW{x-UZ(E;fINjHqi*yO^e^RqO>IU zC9J+e zyGf<(8;tPITP$=R7||NCIy%XEW{#WgnOm@*F3zXmom-jtYS&y|yw7cH9G)?;Fh8)Y zPMKK$F)=ZbIO-AzMfeI=0u~kZW)popj-(UHm;LOcEbi5T?bYozVzbtboy8ui^Wb#$ ziDo(}mBk+Gs+I5U9pC-tS@XWK!NK;nfLpfXE#OBJj}~6;Ve|LZtL7-#Z#t3f)irNc zN2{72_M5fmZ%=M#MUiaI@^5Z;k32*7zwacf7eb?lJ~;GYKB(`_hrHd`r@~(H1khHh zldbW?-L+jE9j&Z3#up0r*3b9P3kOm{&ewzXG&c&PSQ~?U>7`1-5*_~^_TDO}4mI7{ z#ogWAU4y&3ySo$Io#5{7Zoz`PTW||OgG+FS0B4e{)!n;$*Qs6S;?)0F?JDl)yveML z?;X!GsHW#j?OM<7U)|=s-}a9$jvp9{KE`%o>Ud9)w;ffTAFLNgUoOHJO6BG8y<+}( zfpJb^iFwSUgI2$OQ}N;U=jG*TeR};h`h)fo;bo-Y*|?$i!21lr^%q){NAvw@=JZ+t zzKCeD8^Z-q89-F`qvSEiCAjY%9veO>K89&(Y}hz;>jgp%d&^6!lv6S34Lb1LH8Xne zwK{V5OsCd1+PMK7r+}?!HA{+L(|?i5&5sT`CaFYUX__bKAPidGV$u)z6v=xHkx)(tLV=v{^^>k zBiyroJAS_M9U7c;6VCizCARCX!|m_zhpR82)EHtZ>z-x#8hw;g=)AzA!21h~Ep0Mt zxbOsx1=8`#H;YsC6NOmD8@fAzv;&lgIf1Vx6DTw*S|bS`14{Y^v)M}RM)FJsgls|e z4O0}BZ+Z~k%NeBqC}%L9{Vr!P2xL3|E@zx9%wxcaHhXz~Q3jMV$ZWUiJ#bP7lI}&d zWb5ICY}*qd|0-uBI|@a%4k)okgceha6f$l=JYpvK4J=j_UKfdQlLN{bijsDiw<}kD zqT=a??EvPA?Q7wCIfEr$irRCm<~%f{cf7W$-|J@P3kgLLO=2nw!>ePnG?Kt)xVfKJ zz=soPMfBZVR@Ofyg4_h~Z-x0^G57N^j1b;S8oX*|=zol04^J2=BeAkuVHkJxGS5U9x&R zOgq9snx%t*8|O&#T_K-Y&#YEd0GtS2XrgaLHxM4M=-sA`&F8(7y?q_^{D!Yd+K@_A zTSVyHR_4$3lGI@>Ru>{*UG-Am9dzG+EWoUQ_$;G}(>>?Xiq}`LjI-<7L3AbfE)!zKxp-;zjF&c25)_hQs32@sHpDHO0tR0Ab*XxvtAd57 zcP~t7e`zj12uK>^SU9k|0NKBR@luwHnORGb$az)2Xj&axaVxjT2njyM6R@@jl6JPX zAq!%yVWLR|MFW=4rc&pFZ^BlS0tw8v5}AOn70_6vxl5%s6>usGRX4N>%UV+-4-Tv< zciM9E$q%BMM6dNyU$_9IUz$ze_8a^caCIrLKviGjTQj7`A!m*wqTcT)%Be|q__!c0 zS!3EcIXH0fZrA?xQcQqjU8A0`*&w!R-AJ*!X+%18jV=mNZnCt4J)_+0PbPqb#bk8b zYfP^Yp}_M?H|5Im>br!c>F~$R^L3KZ@8_9hVO>4}F2M5)wR~O~T*ohTIpUC3FFz+h zYl9!Fz%o39Xowt3YRZZX;zvz>_e#}FAnE7MyVaUxo^RjsVY8_*8292ze=fKoVOmd& zgORp;J2f=OU}nRSEe0&`-e&^G4F^PYQ^)`oc-z;_#oKjbPv*YCelh(VG{dAE9LAIO z;=6*|gR;m$iCN4S_sgh&MFwOcmq1npB2+U88P zvq#iI2;h0<60OW4Ev@mqyL0S2ZvQ9pvQo|EG*k?UZtZ_Q&)5;~3h@qKvrU;WBCv94 zMA-zyDH#{pi~n-SKA2>{k5N5#l5nTjY=F+4`*P{~_`R$fNDPvypkf~_8mrBYS#NGfr$l4}=2N8oa2~x^Vpu-E#_iQv@rph*ibxMH;@7}i8 za_t3!YB&akpMBH{vp>S1z=qMS%#ACwiXZ;^S%yP?7CWBErV*}_x>R&Q1|?b<=dK#0 z*|aZMFWo0KsW1f+n$x?Ysy*XSlu7ZF7IpyB-JY1LFns4jRCA+4elGh3(fyDVXisJ_ z(M|?bxxHAK;4B$T?+h>B=+FtoB4F$riikK_$s&kDlSvTQ+>43sTGoL6O8Bs)nEB>!i!ZGH|#4rd2`56$CRZi zc_DaQdTZ+hYN&5OA_u5&6iv680YxY|i(2df2kG^!e>NEa@|R8JNujTj{{)rnEt+Z4 zKo&IU1E_G2mre#QkB8Af+nrR4!{h+=R+Uq*ULgCmT;caC@6_uwGKkD((2N%GP+6`3 zL`b9MhvFbG(AuGH=vc=j_+oDidDb^bTsOsd>eT@=EUvQp*0y$uv1p}cMh+K?!LZM0y z|u;7Cu!9I^G21$m zZ!^K01P5=MQDG^M*n%EJ8jj8>n%{{X6`voe)Sd&4-AWr&heHjCMniPtg6+FB?ZCZg zd}r;F@3215dr(u0*PW?-5R-^q^oa$h+8(n8k5{g zQ7Fo_2I`B&=UH-48lO@$t!6fY&T$U(((z!LLC479)<^?#kq`!axylPU3{~Xh0WSC+ z@i5R_0(&U|O@d`lgh~o z**KX#ApxIc==72!i*K=yG4;-=BKhsfr3isTFY=8%bUjhT>-GbA1wv9!iIb#!4k$+@ z263GR%&9~Srt68wA;(|of_s+JSi8Z4R&?hu^kZ6zh70~MKd$Wio7%vWDTk#D1_$f; zFcO%#?1D*dQ;no3NP7o|&W+S+W}gINDFqCfptbc+YJv5=w%fWkU`{C3Afk{vJkE{3s%0stir;(B4-(Z5R^ z!tW)Hx!)xYy?-rntcpCvRUnC<+Osc{5ND#$raY(n{OCYh4gS5RB0n>;ApFaO*fml0 z!_aU0X&TRp9TQQ_?4>cGJC9b7DQo9F?z-t5B53W7vez;|e#(Zun&CM>(pF+Pci8>8 z<_BzY3=&VX5jZykyqme5~urT&_9}BnL83#?JsLf{M(vQ!F+7_quaq{;PqVPGQ7D+yU7aSbIBzrwI z#{G}2Y&&e-#M8@WCVhO{5zcyD!=ZTj#VU6sAJNLLs~B;3{Njp)&D2wNBxH(JPJmlo zPi^oih8h!}fK~RG?k}_6$qrPHKV*m3{XfVKu!dYNs=vt&FP*;|7^Zda4UCkoPT~X* zi{A|lmQOk8@J^+H`|D2$NuWm&#i-h9?y9FH_p_TQ<7*Uo^Ci;cUVz6LSaQS6nwl?r zq*YCn%T^z>(B`DGYQAJRfr{ESE1Q9z09V?IeAqQ%oK3A4Y?LmVQ$MyXnM%gps%TuC zlQrV=u)0IXR-p1_a~-bInVXYM6Ceo=IEU>6T|eCul&k8-@Mj&5g!jH?bko~ zzEPqtU|7qs%X&(-F5vCR@?7QoH~?1iP~wc@DOZLWDleTUv0t42NcJGN=a|^Bu^sN^ zZ1j#<)D(4NVC{J(cDbz^#m7;+lmdJXXn*@0aO7j>{=zI4NB_bs4*XmTIpvvf=c`+< z0ffct(a0O;yn18T`dYE}VM#E?FP7&vbEM6;7KV451EtiCJKIAxz?-^(-$MA@cm~Uo zeZ}nQW7D%$rno96aL1C3d8V`g^11HIM`CV`X2@;>ipS;1Tl*fjM%~83 zW}@Kj3?Lry*TMbOKGgG(`}8zsN#4f9+r9Dh%LkpB({(_bLIy_PheGuAe@0qZ2mB96 zi~3bln-mIcjCax^>c1r|05hln(&AimUChhy$HT`{oSmMo`3+s?vs}PN>d463aPB*4 zVPyF)q{YVi_m#Ep-~8&kPJCRiO5GhVhQ@A{t`YV;zki8YdfC{N_d4Iy#n;DwGrO6r zzc;p-ZX@IHy?yD-N+y1dl6S0{&YlK*tgpozIN-zD>gyMm0H1Rpz^gkz?0bzR*&bJ+)9am|p03f0s^0$}#yAKC$Z3iSqh zWc z@grHTc&ZlvLfu6=`u8+n?UYRKTA-RD*W~s2?>DK>)2jJV)E6jTS%WGH>+6{-K~Q9RfgL-*7WyyCQwUx)wGXe)}I#s{gqCuFZ9(=|prdzmpAdtVMZFm*pY z^ra#RS9E4bfd?)@wdHYQqG$u|wm~vhqs#%&#RdSnDA&cY zYg?KCmnD}gl~u)gkMhjy0IcHgDE}P%Z&BWH^mmj;NvQiB<=I|rY#@S9N-UVE@*5l` z|BmvhImgc$Gh2Nn(^{W?LH&j_kH_U^4-w z8EM{B)C)txV45?edA0IQ4`?AfrnXu0=wtLLvv+#p^G3Sy&DCw zd+%1HWC&~7VN<&Ye864>;OxndO2={e!Q})a$Qo8ps^2FO~6`!i9KS7KD6ImF;znb>RzD8^GYv6 zFiR$HBPP{ri+VF}pSlG zFB;& zzLK%H8?KOqP%#7nq?$g+iECx4o>;I)1B*kENRPEHw_U1ya7~Bbqgkdrnll*YF8wB! z4wx z5~^}|)dA(mT?NU|(RH$shG`<2a=<9c5!_@F}#Yv?~B}Va*c`+hk@Il%Vs|4ZvJr;lNYO0cJ|PCj%r*dPNOT8FhX$ z7o>U&Bd%6I!L?a5geDL8GL4#;F)Q!)0 z6*M9-o(n?uh@i>3z|bxdA)qZ2-m)m~N>x7dW7xn5A_o?3+vs`G=-k91Ax^xUc9JL# zGEra+VUP6(LTMKl{jOHTSJ_fspu100f>H>^s}Wj;Pfc^X$h0txDQ+p>`uwg|xaqY! zMotBQX=Ryh$uW}`O3SO_!V>)K-)+oBtKpUGU6IjSoD`)D3bZ!R!s>2yh802xU0tQ9b?QPzo)ez|$)}Y8k$AQ&tXHP?)M{3hZN@VZev4 zH-?(~8C$vy>44?aTN#U>`EMF}XFtIMr20+?8>=2@%u!>JgbQ^2gkqIAje+MoMGq<&ok_|~i-`2|>C_D$7vjOB zVXeYe%M}n%*GT8^lE{(C_M;xu8JO)5I@S4Ar7U$U*p&|f*YxDd!9xM0sY)9rji#2M zu5mEx;8Lin{q*<*%2Coxu|{HaGAs}JJ2{8wEL)=W#zUsjM5Kx=Ex>r@J=K+6ybKHP zg7LkWL9=P9eL=&IKup-ur{#M=q7kc$KyzI9X~67hR3Z#Mgznztk1GST%KY45aU{;X z2nr<2N2Th}6RLI^A*d1Sre(>6#*A`h}P6&EzxxC-hHHQT2(V8sEz3aX;E zxn~j_Bpo3Qpj^?V^i*6mYBSM`EMkyNg~o{_h5^Q2jb0WIe5gKEtCh`U2)PWiHC~aC z0txAc4X53wgF*~KFAq!Smlg079E52K81k(C=qPSi!BB^ZShN+)%bH(D%gc#UZohqn z1IAlbwI!|-#5)Kb>x1VBd_CVZCj_NDcuwo9eFIo9#iv?3KswO~DwDE}z7T%@t^ePg z{=Yf>|CF5mIrV$8ZdO0d?GqrU<07rH{+-iR1^?vq=Kg=l>G1!^>9GHn(^*RsPJeb5 zL`{yn=)UqW^cAxCJ)%YUEPhrb?k?X;-28#Ke@RgD$eWUA%UPG8q}Er`j4-O5swUp9 zU*cWYuvcDeR)hG(#0tC5NY2`VIBbgV8D7QvqGm#?qlUNeCtYlwooe(3miG&}yOK^)&yi?=x5hpNM4d)c~cIN(w|c?!HwFNHTFignD_B;eYE(7lzmzf`*!`1GZV*IBnbuU-4> z8TC3PA0Pu=M+hFOewgzQT?h<=Mu-#EOiTZhzi>FaLDT-^7u5g_&RldOAV?@iV}NHXTzm6P9L}U zWWn>cebAomk-#4T;n$r(%q+R<$bUF@H&xbPlI=+{kWWz@BOOBT~g7mI+; z2idisS%oYD{8q#o99JjWdOCMk_Cp@M^8{+GMtScV0offYoDEU{3@xsl?qg*%Fb{Al zXyHGu@q37<$=hjDQoHOq`dHl5r(ZKfk~+#%esZML3!ZsJksecWg<{QTElg^%vS0a*q&SC##nw{98jCaOyfv*sEB+9%(!W1(4 zANTmDU;q6*e#cqr?|VF{?{vv}VIA1bz?5r zLsvVgQ%F?En|fxgo7|e4@t)4lrVyT6n)+&Wem$4YZ){isVtcbY$0{JhrzPt+Yb(qG zp_2GZ=jVTuXesZ;qXv|^D#D_+NB#3A4mA89Zoik=*p!VrPch`2!^lZm+4Kw4up)&#!001G-Z#zjn{L;5vmhd2zuJJ2|%NpkFSZI0f#VI7$`JCIGIhp=WpBa|HY+ZVkEcaEF&)pZ5qioaUGratfBBWJvl`1JTy@3+ zI0(mo=O8lG?ES^sD)*F;9v|fK3aKPuLd4Y&&=*8zr@z-M<>46|s{Zt6K*T{QQAi)j zBUf!uizVFzlHsFzzrqja=>e|r5_*6u{K6MK=--Nj^1l@c|G2^{xct7t&oAtt!W4fg zNwfe+82=gEJr&RZ!Ck;^9**)K!5#cxf;;{{gL@OD>!08b{U^8wjF$fi?(LbL@43FAdHRH9zy`~tB>7{F#jRu{ssE5;X4x%Q>h&p zPbbn1A#&ZiVcuM&^Yay?bO`cGHXAL51`vHDI7-3IwQmiG<(@!kxw1Jc-&gJ*XBOxw)P%Fega3 z$I0>%*8Q?foU?(T8L)2?LZM=>kc-(D)o>#`UEF@U-rs+fczpfP;4CA@X;&JAlM!6KimH_Jp-LOzD=Ly9_AT_7WZ z0f!QW327->Bd`XX7Gl=(rGp^n)bhCJ2MlxD)?Zw+!fN;gf3J-G%%5eaQuJLoclUJQ^PQCE`jlDkL*BZ+2;b1_Ai2 zi%%^TVL=x8o;;VDl7a#j#?-#m=4OQk6lTqt4X&_&8L*|IxHXppsK^M?Tf!xQ355V9 zi%X}~nnag2T@eLP=rA{s!oJHA!oQAV*X2M1H+y&+gfY->$a?Zl}wv()Wh)(O#P~cgd=W!;c(EYlnLk%FGbXJQqE&vWUOjY6KaoX(!|lpBI>;e$JF7+rX`5adbE>&# zSS34GPk*ZW`HI5kBNQq|s`<^6Qz9Wpdnyipho@YX2jI^Rb{JxtIk(J_z}qo>tW8@N z)F&DR*OgV-xiL9boW`}Sr~`v;1x&$eIEtkW@DDDZWG!2iw>Vi3Xbb|(puP!7qqkS9 zBcu-qVr34VjfJRn+m3uc_u8ezvYt>|6CqJ>PDT)z(JDRw1G~`k*n)fSe{gOW>z}hh zldl7B8xI9BaBQjOHUt6Fx(y6H{8cT|;sTol2hN~2Eiua`X=1)yf?IY7CmG+Q1+jsq zLQ-iu`K5lVk3p7yLTYwA7%aPML2X^ug#@eoE+yng6i*8hn$k`6dgY%(dw6Hu9J|yf zyFiZx#p3enLo}*PQDCghGRQWM_57#F1vFr?Pb|l>7Z9)zmIJbgp=P?F>mHCe=p>lAn7l{zyN&tGS?+ZEGwQL9=PJ=iUmzX{5W%5Tw-UCdZ z=z!N20}pt~AzqJW22X$cs3JUR0b@@~m<~5m&oOqadr>KibvOp1aM=h`P;TwZ1!KH! zC1~=th7ARd455fzC8xKmdesd00sOx`xmW&ga{u28`~P0p|Np(Pf6nZT*UfC8S$t3K z&xos}e<$|^fxj;7|C-!SXa2shgZ@WykAF|@Qg+md?_9+B3y2x%AcBo%VC)2NyC~FN zL5e~in`{%TT6j+JL`?8Ar}GuEoAMLQOa$aqGK6sfTQW~L8`>3bcHPEFd```L-1RK1 z*8u&b*irtdMN1r$ji{6VEWCZN51J@~lQ7Oq_!hb4Sgl`@oFdkge#5x1U#M_oC#Aq{ zoq^}kAYj-drLaQ~i1=j;7rJnluwZgL6(=RNDRwxv#2p5~hK2{0%VoW8lZjnm(=E42XYZkX z!~CVe{mUY0jNb=x5-pcXty-CR+a27wINeeRn31ZC32Ph49MNIp_kk7ep6`W5JNKM` z&GPY1SAm;o#Wx*$y+$o`p-ZUZJCk*nGZprCBLfA6(r+V!>-T>c8BPx~eD!GctM1YG zM$~XMKBW{?F1i_*UQ@Dqj#x(JCy|fAwf%N3^eVfo$ZKuw+-7&<8cSFNXG3$HFOB3d zKDb_gl7 zbZ@=#V3V7u^5#~v=`;BHo!0F6)3|yyp2m0ewp;2ZyV)a+V~j8Dc6OqdMpf=?a<6$| z)ZcBAA-?!=L{3=e$*)^Ks6o-XK8GKtQg}gyH^dmXBVy9ax_tb)aGt)pqeM#)W;@Be zQm~VJDzD+S{1`G7Vwt!aR&M4S?o;ff@3V39wq%5}{oVVuCuN@j;Dv0n=z^~wzJb^n zaJi?RlBhq2P>T0=yMDSZoBs~s2AuD_s?gDF`gLePllm-9Z4HuIoJ(n~7;#HS%)QY> zwX`#dEf*zZ|2n0CH;Vk&yU7-#g}?GC7NWCfnQC*|)@9C~qY1}%oHSeDk$d%_Vp>DH z)6n-;pu?WzVge;5eydSDhpxeH#lUn%D&nsVOj)c9MOr#Y} z@1b#>cpa5Z2T!5&QaltomB_*1L&f;*(_za{%-K_3*rUO@)`4~5LwZC|?N7oF>@!C> zlY0srlxPl7W&_gqjGa3cT?u-IcbF32E

AS%cod8&9%K{57wmXxdZ%%46$XvH#+Z{d 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 Cf_Cr# literal 1136415 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ʓeCcL- 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%0Do8ZT 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

JP2jpQn0SaqV4Pc+ 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
    *5QiBqEX7 z`^9cdRy}_Hwn=dQ(I%PN{E->`Q1UmMgx?t=W|_Vq{YhBKY{+B;RSm>T{Gp2vliN9k zo8C?etq*S>{OneRd;KX_?L@@+SBTmk@Yo)xaIZZ5J*Lv^htM@tNr>_M7WCSt;p3XF znFnoU+-t609=NZW*d6#RWIi3!Xn@<8hiG7^IMWVKd`@y>TYnnRc2zP$YdSD{$RQ{)ClC+C$aAyCfnq6_{1WO< zYZAPa;)DYPAd~`?qBob_4>wzXv&N}rF;iQprv&oX{Tc7R+n#t|xR!2inQ`hbkgsC~ zc*XH_TL>j^uPg-alP**H9vx-x4d4k#pmEGpNr8(JoJrRexcR6*TvcnNFMmT z+oy@a_Pyj>>}0zmIM;4QlHJvu;+I->{;~1qB9>lyxCpD#X?N14XHfv%0q93~mxKX# z6)-If8Guw;2_TiC4d!#Dk;69R^;un}LBLRtuk~`tH>O$c%t;Ylj>wqao#3QJOx9dC zkb2kvmc}KhNtP8SQdFhXU;WiqS%N1({E|J|v;g@YAisre-6aQC9lvgAQ$5?#5S|G2 zNhtqSZfW<9lAnY%Fbg9mc+9Etu^KAh!%vidmKImcw5DbnVerD-(`QfsvOUl2#+iBo zg+`?p?2Y#@Y&2*&q8)Sj2(bnn)P@gCcO8KLzy+OM9l{p`B`3Xn?0>Kx_~u-=Q(A0mcqIPsc_j>#?f=JK$=E=Mcv|{)Obeh5Ym-2Wu3h5^pSAx14(CV> zfS2BIg8yoANiHB$=+mgcM+Yvr@=zrYf=u)bGI>t>y?!-BXKGr#{A~g|Y=>s3>1B>; z@P&+28}BtNnM<&%Rr75(dCjny_Ek*!_{7mcCDF8_hBWxFsmcuF_oow5<6l`NFaKnf zkp5+r-0Sq_gERxSuh34@JOW((zmKor&_R&3N3C)WD^`c;h>S*>mxM-;QWT1tX7>O{P|JOea$ix@v$Efs-`}(zlQW z=3qkyJ0S*C?L;^9VUdv6lF@DO6C|#;APC@GPBzCH{wu}-abNGw0&-|HXn>VR+N2JI zq(xu{l(AuDEWnILK|Lz6@B1MDe-~hO4i+Q2B_BB80({Vd;8P!wBI~~=cWmbsyDF%#7CZN=e zH)YWn#8-Zt;|%LF+$ZvM43me#g23>%C*vMeQ6MU@@67A&#Eo|1ZBajwbkiZC;P{N= zaoa{feV-hed*(r-Cig7#L?Z!DonHx)K~^qG3iNC_*^d&cdFCm4lPIM zebY5HK{t$hQM;$z^K7s`1vT)%z0;xCPw?}cFI*M++ zbOAk~J$Lwys>#5o{B}g38PbR>N$^tmtP)7$(C|WDwKIWZ-9}o8=&WgCO$B_UIL}1{MvP3V}%i%$>~8h#o~Vy!e?=ivZ?2Cq}YH1g&J*D9-92 zOmaLVSRIUbxu1%t9o30O=Pnp&f=P~FAm;D&D=lqBg_1$AW4bcfGq4grv0o!)$! z0ss(%o1={j6>`=V93`>5e+a&^({B(20!I;ocgpqw8a|2Yr7&Rq${jxpoo*-xxW`QN z%rg7{61mLQ9XNyos2^NNg!Z*@j3t^vB^3XwRS}TCp2M~a?>%UbIqx8+?C4#nkQA{t zZQ8IU1XX>S%SX{cE=&L{Op`(Tim{^Pf(oalW&x~;frI72?;Er0qI-eXfpQgpS&e((+&^TgRx#Oz7dkPOUehg@n0Gt zvL6EltY2}!l6hOxPXO6Y`wM(HV@7?LR8-~uRn=N1?i5BPHoN>5A zsfk^t|oa({sq7`3x%aSr*Y*JRpGPG7y&}?%)A`%tE%V z7Qiny?r4WtfwVPwIa;C^upq8RXaTI>QYl?C{Ft_KtXu&g2&C##Tvm&OFc4V68zXo| zI{~>HaLN`{*2MyU^5~m#!1@)Ivs+sjXw#nXz^UGZl8LBb&XoR4XUQmw9L~_0BMZ>! zk|V=v^#VN&Uxvb#Y+B^wFMR1ba#xz7S*xG$-TE;+58ORxmTA7PyKD+}m58LCJ))m; zKM7P`e+7Ub{3CjtJ4ocXq7;eKA%0A!dr(7bl5yZxoN+$JS#r+fx_EDVL!IBwvWNPO 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�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�UQ>{^z8|Fq91EJgDC=Na`sE0q4r-fn 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

    qY(?>jh9>vjn+Iudu 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%0DNaumXv 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%0A?zZZnzGfp6 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 diff --git a/version.rb b/version.rb index a98cfcbce..5f3039a90 100644 --- a/version.rb +++ b/version.rb @@ -2,7 +2,7 @@ BLUEPRINT_VERSION ||= ['~> 5.0'].freeze -LISTABLE_VERSION ||= '17.0.0' +LISTABLE_VERSION ||= '17.0.1' LISTABLE_IOS_DEPLOYMENT_TARGET ||= '15.0'

Kjh`<%s9sd=w$rtw2yG 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Ξ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 ?BQ2bZ3J*m|2}xC5eoXOY4;y!!K6zGx zN%kp>mo9yGxqtgEIjhHL`4z^-GOB})Qe9LF&b{*-3N(^OlgD#^Rz$#vtSf~o^Hjdq z;~tfPl!y-HI^EpH7f^We$~&z15mjf_B}&sxDpx-i&k)Tr1b-NdyWYovZ2yL8PF7Q! zvB;@u&txik%@Rr#bC;^|?NLw0JC>1stO5M0Fs;w4Hzp@6&3N}TBK8u5-+udDpU)3-_JW<0ST_nB#hm6$U)bbHURpH1SwCg>k5XL7Z=$cqoLC&K z27jc2a;l|x*UR05D_L&UvSI=z0Zd{uOw5R@p^5QI`oB>-`xUzn&n((A2T66qkyD`0 zd$$qya(9mQ;x zPI^ANv5u{8ng`LE17c_q-HMfYKqTaJKgN=V;JRmlNEl>a8eQVDG`m6j%Am|Ip`fra z0rX(8EK=@+ABFnKU{G%4AB-6kfQ^d5YBt#bfFY*UiXFUbb9-ha_U~W*46MIoyM3NW z&4XCCEY>=a4s_AKk9PxO!+csrg>-?8R}Qg5-b3b4pjE-$IB_gYvzqf>`= z6#|F2?~DEHz7{Dw zBaQ&KjpC1-aE0rDiV=XB(ST`S^SH2G{8B5^XQ+Gr3+VZi?D$~0A?BJjW_c;}g}*__ za`N=n({aj_+jV#j5$1G%(Bq6vU#g+Kvj&dmYuY15d}0r#%|fC&K!O1(Y>e|=f1Mxc za_Ek)AI+$oUM{2w+nL4K8wOcq17eE6v}K}X23u);UOSK?!cbJ#&Z?h=#4dYPh$Vm> z+k_9P<>_!qhXJlJ1p2;o5tJ4~Dl5Q>{Xq@Bs~gY!7TTAmNryIdeDV)9*!1euNDxZV zVa)r38jQu&Dw1eQqqV6p6&2oh4+DV46N5?ssKM3UIoa5#8}C_J(H$N^T$tO)5V)x) zK%GPC_@(%bIQT59%XceE^c%m{37GYZ0NCKJ^qJs!Ba)ybc4UZIKv4=rjP*}Z3ibG- zD3t<))Y>6)YVB#~&3|+>n$}#QTe4ZZM{@!9&S;nm`)g>C$FGd&)yXl~`bv%oWu}J2 zpUrn8r3TQH%E?Rb&LspR{if(6v00=foMZ!fb$ z?M*|kV!w^fSB`5vR=69IF1B}=skhV69Bp9do8BOj?&&3M$8+-74PBW<1+%qCK(Oc7 z5e~!)JxC&Xm4p`6wUdod4RfMO;vRmO}GXEjbFTA_j$e0YhQ^=tup=K*mu6^rPsAJecY~ z`cVl0MRvj>Zv{R8I8*J5gN)Pr1a0Ub;pe)VvTm3lY)EeWAjbz^2RIBKP7-;6V6|t^ z02fKna5Yp%HmoRln*(KDwrG>^5_wY*yWDnF}zbE_to|63vrsHLg`}(Qi6Ud89)E-s~ zmh>Ng)p|lOr;P$r@C!rVoNLc01K`wx`~U1nBpYjYIB4S& ziF-w+K*N~rWhiJL{wlm6bb!CAY*$`8y75!_f=irDoc1KH=Jf1lPZe0`PuqpglvSW+ zhVST`jmKYdnR7?lTR#j|B?pOPOsf3=oAn7uQv|TcZ{M(~KE7x^R}LD>i|)>FP~7#1 zf4QtzXK?3C4ToFE|GKObf(=H#1^@hx36|WWQ~=stda_yJ`4Jxaz5v2Qqt$)!@=>FS=%^P*o``;Tji=TfsY#ba$Cwv2=39Me{9y?1Q7qzW=)FBgverCWvQW&HCN}qd%%tpeCfGg z5+jiSfx^uBVY8myPk{#5tRE#97mc@4K~y+OEs3~2GCfgMA*&LEw^JZlj+Q3K;vSM4 z*x=j6A-`tPNsQFx(y=63x%^51CdG9Bhd3kW-~BJ0HH}vnJv@zh>T9>HVq5;SByjg% zP;eD9OXzfHzCCk)tG(0NyLn4m+0X0BrFL4pLIPJ-UPsBUGw3yuH6??EC9rZYXDNP z`d?D8LwK!Gf*jUJW5&+}SPa1h04eyeyLxOzjjq`YM|J${c1fn;H{>oh-SVQD5}D&^ z^EYV-|JRUlG3&-wK-hVWoh8MJEZFtQk^*vSPcyhfzUxi|bL*WS%o%+@-L#hEakOyC59ZAB z%4ei9>4j_!CX)F%RLp{8L;~m|G~%A&e%KxS93M<)UGzBC35u&ri3(-;uMSp)kpRQ1 zlskYqbC0J266M`sh@576RfdL7^dYpivCZF&YWGm}B31ca?T0ZVl`#^56bOk_%)>vTqM+V;kn5b05=eEUperKiYBj>0+ba{93_Lf7&P;w#@XATa~{dQE#hFl>rBy9qIhClEOT^O1fj<6YB-JV^_ys7|yM9d{#Ux445?OO!*qX2{v|y~+N_ z&+?Ko{R-|zXxx2@zWqaL+(K~h>fG{x0I(&|R2~T-l!~+?CBe$38Sd<@g~;YUhR zJ8c%(G`Xoks;!GOUyENqLnZt~Kk?RNmr;=8gLKMMRynAq00(b)%_mK(;+YHx*t}0< zOy8lXvlxx5G^Q=7DZlC;%(;H6V_{5yK1;9XoL<<3XArVWmwcl^t-tKBi7tSXIp27@ ze}7(if6JMA?|L_?pqt!&N12#?n6jBw#oIP0<-{PP_?^Xwy}^Ps8TkH!dm*@-?kOqu zQgxt$`Och^9;(*=!m#mV?^~h}(_&8lTBD44E6OaRSucde*K3pd-f{M`cGK^DYDc}l zPutEePa$Y=PRoQx(JrCMCrn}-U8pUg&w-Vl2ZfsaF&aM%z6TF_qfnqr?_z^A?Is9mxAq_47P&D270r zzzwo5j{%Pt_0~V;Np)im4do5IVyw-_E+44o?}ll)6}pWcfDlskV^I;jCR`hBqU-y* zG@_TbswyT{wpJtie&QkI>}YQ|@i7?KMy&MU+)15*o3+Rz(@*Hx(hZ8jFE>_aY-W-p z-Pd7Y*PsdhIw~7JQ+~L?-*ntvzaZ=u)of5Dl9#BS8+h2l6G-i7+0));{+x$sCx&#K zgf#bHK33VnpEDw|bCvVTt1YB0T;eA&78B`v$gTQIP`}EP;y7~5&rNPc8}>CYpoxR~ zrqFp??rQUPQm#R8_Hb?x*Us~lX;IDhEuTu1z^HM|eDu26>Q?Es=Fh_U^?rxy4d z;v_zzOrM`VJbM*z6V4PbZfJ(1uenV5nPj^sg8qn<3DmR$$gKmqIR_4XAfb09er2(} z2g1m8sR=*EI(LI8rlNsU2Y@|11P8C@#iW{r)0j$;3$8D4HuT0dk|AJNlGakrCEX8x zO3uFCE6CVK$>7*-Pg~n3uG;76`O|ao8DkQIkM#V9lJxM|7jIg1BWg)~?>)`V9u*75 zCd!c%4r67!-v^8Ku^?{na_=@7Z})>oHm5vI`WOi_dirzQYr&XwJib@h18UxkkXeH4 zeuK89bk?L15tvJZVR-r3v(dL2GeKvcO3vAQt(a?A4`eF#j_o}H+lTo!lGL^DZf?w@ z@bs$?>|8`?vjIvrVK5whJv4Feam2^Lhs~Sz(eR-IVVQj~&|uXsqtYXNK&NPAcl7Xh zTy#{4wp9WmhREY4&R28RzvN#0Y{dIMn_0}MWNuhTE7WR!LG{iBgR=-aNkk$q?8yov zuLalk)*iDcLwoN%|J4g49JeV5W;B>~c<&whV#h4}#3Xl4Ip=9plTIt+hf^bvgPU$d zdaOZzEHF1@rfkG!y z82_k=gO?YOAEhGN=H63_0XeXXGL{HBgmtDYc6?W=MqZgziL_mb^JsplL@x~jDM##% zM#Gefl)mh+i}`Gv^LepUP~Ml{qxz;1{h95mEt*_sRNSdb(a8V~AAuAT#rs5V#0jRv zgJJC2_T^+kGIxx+&2@l!hs2bb8eAoU%{^f&j*qCmX6RR$0`=0ViMiCzHy)|{Xcr7A z*p(&763*T}(bbaR3B{E6goKUC?$HIo3sH%)-q z)+WTJDtZHNmS-<5d0R#su&0Q{1{JLaGB$qZ?~vK=>BAliU4AXiDHFMnQub7Cq`wIJ zG8z$rA&1>>MXX#;w9d(_rV1tBCO8f<=-vn;g6tKDR@HiwssvD_c)Yy@zg-fb?~pmr zgLgfgg~PpZ>uTlMqV<=e^^12`EeDus4&L>9Se#D4qhz}{$q)msNe3%Rmpe{Z8!ttj zzeIlO?DZjSKUu%o7C!Flc3Eq;althELw!b>Ghbp(F=T@T zffR;IumQ36@;1NZ)e2ME)u#Z;j8pplZ|qaz0aacye2#p|EiO)&5o3dVUY=Nbt$jD? zsATe4X!2V=;_~S%l*KF&c=icNj>1*+nO;Vs%PT!Q^BW#5wHi527)wn0>P+x+p;g{y z&qz&h<(5-ZJpQ?$UJ}h>hZA37$=`2#b1arQQp>cT#P_Sj_PsSdkn_&Plw2vv%IczB z+!u(}CX_Cz67=3B$>)zhIg$Ppo9RXAkP-NT?+d?!jNt`YD6dhop`ZLD%F>=5OJhXZ zph49zwFKVAjoM%Di@%so#K_1h3PHx)lTJnnjMcZy9TeT~maT1E_Q~ir|4Afe((ERf zd z_gZ&e^*DvzEOeQWEiTV_Mf4l@@x?-%t<31Ne*|yP_7Pf7+~5_-5cETOpe;?`9?OWh z+ls!AvO6U=m%6=rq|&h2Ljwx}Cy6#0J)uF~eZsegA2Ca=8+Qmd*Mvooetir^?oN`6 z`2sHUW>9vQ>LBw?{X!2O9h}Vsx6f-oW%jdQhRz^6AMpHg1-lAQ81-hFdj+4@+&g?` zebv9aZXv!xwkQTWYPQFryV@+w)|~zruhCZ-T8QAOq{k-ExOE*rI@X+9yhQc1ecf?^ zF3?jrgZO1x;fP-PvzKka!d$wpsX>wjCo3UYy?Cnq@K=-A^K5an->UR!G@K{+C_Wv? zG(P4J^Ov0HF_+sTX1?3w4C1NR#*#EBdE7jKZ4D$E~bL3uK-sbRKoJrUmh&c_LljL$s$8%x`va#FqLjS zZ}}#==j)@FT&VhD;+#cBR}B;}pvETh&ho}Q^gC8X`ZK^DY%Oxf_gFYHmKm7(Olv8! zt&C9WqamADA&bYE{-_z@WF3Ue>JjnKW%C)aU>VW;D7(KA!$O(`fV8Yo;a3q>@@VhZ;L?LAMzY;}j}}q7 z=DX_2SjHIyO&;+=m|1GBuAH<%8(!s1Q6x&C2Ij{tA&mc(;uTQjk9`KOupdiGM ztnmZM2G$+d3`hl=&xP8(0Ln^gtOB&AqIu=n5{Lt0tu(7x7dm0MEHt{=k1kZ$H%B5u z$M9=dXfCTPOF5|c78)%$11{Z6dVO@QWw(0Nuko#z5>x>x$xBShc3C&yp&hX^6ketF zYX7mV-Z8oIE*qCVuk&(}iP_dovXI-rd67PS>1VrPvlO)O*iio&vnw4&n)sRTYFC3w z%5vH->!|z9-Dk-9!6K!p_o|rRG`UMqIU`^)@|9P@V(pT_L>%Xze~JeHs~a{Nb=irj z4;50^7wtwHt0ZEm+dQu_+oSWy(H@1*X~B2hwJRApDXV{@HhV9G_qJmAL?gz)24O0LK5i&Fph=!6Zt-IE_3Ck!6LK7VgcIE(rr zjo%`dHe8>Sc1;UQoGCv69@=}ilsj(`j4rp8-ZRokS9zpenFvE@eo2bW9~GupmiMO0#uYIV)9vJ)cGV)=I*}F0OrSC)4NmA z+S>ZonE-aiO23EAE6eMuT^ik61??3Cb(U`56|{!lK;yzX{LUI+^}a8#%&`J@b**OHM{%0o`6qp z1RZ>Zer?_-*zeu%o}Rlm2;PtqjInp#68yz&U5hKcPlJa7V&F+>?{J?UlcIL8*5ulk zvJpSyBIu0fjl1AK-lxCt{`;O(P3#J|CyDlK#g8T(K!;=XN|34<7vJ5vYu;1UoVAL4 zN+R|;OYP`crLBCW z8ceV`G2@O`He+6W>?8%_>bU3`Va>t#7|}O~{<3jL8EngOzy>yo9~ZJ1+;5_KE5giJ zj~M0Bxsxdb;hRxy!#kXza<-{`+zGj_9^YHr41zXNUsx^q+EK-(fG1j0ztMg~w?1Eg z|JZOa^Mg_$;%OeWdXIp6e(KvdHdso14wdmX>7C0jrQ3b3ScAY%y_97U(8Psh#-cw4 zPb2l4o_Q%Zuh79ar20tIo@MLtKx^7FrQ5AgmLP3JX8afb8DmF#~#R{ zRQSMuh${_AkxohMkoD$x&$kqvOO=n;yMfp|oeswoFH3_3m!FR^l{$@EgW}pdFZUQf zeHjEXj?n#y5Ypp|A}=oPnWyl8@(HxKt>Ds5dXnE0IR*LON2SPaJe$)R)rp`RK+{|& zIhvAh*drETrR=^_+5Eg`8mGa(P*%)wBhXWNWtl9OBkSe@K`pgavu!u|xrLi(!J+3gNo}KiGGim5PfX){=mS@ra#B06Lc0?A!`CCzHtW)=vQm2MA&f}c%VUT37~n{ z6S_z?*<2ekE*G90Lye|7wh{hMPI6gC!@2Jg+N>;3owN zcRn7OA8_C|ImJ^9VMe^W&rp+YGA|>@mO@-*0+3oxfdQnJbo<7HnR<1!yL-xZ)Jg1j za50s1DCVd)YCo+$cKIBW+@r88-iyg1^zZ~+ zvVjmE%ziAe_-gZt3aohIiudPe{ntr~@C(iL*Kxw=rJB?9g(*;oB-uC7Gi?-qS{O2y zmnIrGDqu8m))(4_9-Xg|<%lIq5GtYkloj}tdK2@PC1gksl}h~-%8UJeqS4M}IMn_TqvSl>XhVqN>*oCIE-!qM4+wIGj6}ydJN#uBGG| zKw)Vmr^9Q^_pP_C6lsrh#5OIonIV~7+k1PN`5GVG#2&LZEGz4rOt)GwNydHwp8LpJIg#792G7{?#CJmM@!!kyVqb3r6o$;jMRo@iPx@!k6 zw8-FX&u{#B(Ah1&Ujt=3`A;B$VeCAsD7td6K_xUS5@g9?Uk=lm9Ut_Kwq99HH^WZT zp)ek1SxvT|a}w)nFk_JpMEH6QcM`I0cHVA|5Oksuut_ie}? z_8u`Ii;QMK1zG~i?E(3J%kAN}ALVu#AgHzV?{^J+O&tUP6N2ojI>3bR%jq8zLh#9s z^|vmyINz4$UiL={Ea*c`WFed``!UVy+=QuVSp$3v+ws>p^BXh_y-LsHV5RiDSjavm z5y)nuB*M3-BC2NxAO7cS1;Xoff_qHru&UWpSFQHbENy9z%S*sHN;ZP4QLn!ZaFJrR zEacdqn#QSy$)1h{Vt%|_L;D%=xEMK)xI704!u{r6pZIVwCOK@2 z^O9{G<%sJ$Z{Tle!waiYurz{_O;zSwE6K9|%}L7S(4lHG1sVg&zZX{boF*V_MLm&- zXgB050}JIF_y&~XR4SWkKyLucxa_Vt3Q&ItBpy&PCu({me6aAgned+fy8twx&wd9N zrwQn@11_tHg$;dtQE<>_+*g-$F%u6}H=q2>QU3TUe}DKY4Lx})LDXl6fIG-x?U%9* zVIK8DN(N+sZRJAyyI1-duZsdLZ$*KoYkmQ=2N6PHrfa>rUDTGF`F@>P7hHdb`VIQk z^jQgcq?|!I*WFtI!8Wxfi?cw6zO2|p|6{6u+h8|z17of|z7Lq{?+5gLO!e8}VfOb& zoK#qVcAw;sda*@FzkV8#hsp@7Cg}zJlDsNa_R}qFJ_8{Ee#Q3eEBN)DgT=)}W{6pn z*0c6i0;jCYB{T5UIL@EwH`x5w>IC#+XD^gBf+iAT&eij7c zNhVkIR>kl?zRD5$4q-WnkSv|QzDf$Mhh$wG3_UMlMQl8F9-#73g!PO+Tm7Mrt^VMD zZ1uTEkBPvM5o9qqMp2|-5JcT7CbyX1N#(*!B)#d-%>g(ui)fNHw=z^1~cdLs!Pz}&+IDJKy z=2YzNg%w!?y1^d}FP=faN>sx0O?LMA+L8kCr_L@=MVNW}dsSb7ginGx0u=3;nE!{> z_o^INfUuJ1kFXLTLH-a{u4h?6jQz9_VzN?t&d7fh?ms%x2Wm$Ias*bKcIrCKAMO>_ zB9g(+hQKmEsmz@Avkk4nYRY%PZ0A_)|%etGt;EU23I9U!j6{?leZ0*EX1ZO6cZ zU}*v3N?bdxb2eQ+c#MXz|I$|W)4eebD{;*K)mE-uGa3F*ZDqK>XB@J(TwCjQVKz9K zVAW5ms3}$jSH1+cxUiOz4{aq!lPo}6IV$MYf&trwmR74I2RhQTG7gY#|06(98nUAZ z=&vgOZn??MgS2bPEu9T+7N4$KFqQ&`)zbV=ncWHm4C5bfrTWijTT4aewi8IZz-9Dc zaTp*3k06&LX}@UhEkijLpu*kSfZRq`Q^l<<7e?f#a=Xzj2_UMfX{Jw)X&c3(mxq9t zXbrK?Xyx=nTuBVeXKvR^q72UB^WVgkoP6y59awh-aGpI;0C6Qod^{L%d(ptA#fP|( z{X<;I&iEAvA7tTZ5H6rLzq?oBRWnc~2|m%LSF&+FDn+;Yp(eY*P8Og*Sg$nhp`Xn) zcB>lFFBKCcnlk*^$q-2rZas9W$^vx4Y098oHxEz4mo>F1n-Tu-h%e2`?ZHqyBfH8D zsIzPTQ)geTBa2ijD*dO+5;mf#B8q^x+% zSZRAx7{a?L5gsX4E#e&qwwQ}|7|Jf#&}Mo07c!w@O3$N_(FZ&i`B^8V;J0v@-^KFu z+{H6X*}81JnVPl5-)46Poz`EpYngKShQi0DThmCtvzOTgSeL9fS@kF0ByEl?(al{# zESWn*Fjp3`j7eVaqqQYEUC6Vz@KN^4+S&)#5GL<_DRbsTc&!QiiaaU>aV0Ra?a|y= zY;$O_a=GpQ8BU50iro>jE+D754-;btX)zE}40P)K`#7Jpn!}m*18%0gg3p6D}@y8Ls!fzlxKxk=UNP9%II@ zAKDaR#?VT*12^zf#Gd-Dt1>(o7m6jY4D6XQcI@JWHAyaqODO6M9tH?5jD+_lep#k+ zV%ljruo~za%QB@GZwGGrVGqkq=rcwj+c(O|Fglv~r#jP&Tu|(FA#gEw3qNkKMy#uV z#yCA-&~fj`e)$d>h4Hr`wVj^I(NfmGc<~+Q+Y7?!z@a;_4NJ7Id{%!cfN&i z5@BvU72V9#78m;|vw<&yWN2?aQDTt#2@9C{|B#=Zrnj7KihqTkn+ zUNH&rg8zyrI8N*P%JS>($m$e#wWnh|15IIKa%wyw7#_!qSMT*(q4Sfi>WhU8iT#$6 zk6)8kpIPJKb-~f~sd!5H?ZWyz%Nb3g;nuwkE3P8XmP0~Z+;eTw^XIiovHLr(8$&%q zw3q&)++;>l+X86yAJBHyOO)T1vCT(x?YUNL6wpz zt2ys`u}#}!BVe&_J?;rq)9je0TriHdnLorOZxkVS>rqb)DU3z*XyB$??Ahc_*73DUjMlX( zQU5*_HvhL|(aKv}?7+&i)c*YsEXn}u$E(O?ck0K7Hp-M`#EN8cP2Lt<)8Y+Vuy+{n zcSdfV%wfg&V2g+!g$HumVW^1XQ$A^?%7|Yw_qtL>Vq1olAM3iXZD+Godnq4cPdV(i!-6bmd9=e@dCt=i8j{VSVY_CQZmAQ#w#O|$IQjvccTobR5HGm zk~7~sgRdhIe+E()BD^Ie#l(s^q$j3cKvKG(B`SbHHEn~rqkoqDb_{y9Y9EY=P%_)) zFq}gs%#~&PYwZa)hOs(?8~dEw=;G-9cO+-e75O{=IawDW01#WZk<+AukU*rVO_V+3~->td7F!n4kGIl_>KObx_SP{fd9}W{s2s-&vo@?Pxk3 z?Q)j((zOPEeHJMx6RW-8bt%+Dh2M?b_N597Hb6P9JDs-HJ9>-;b+j0p*|8>{8sVjU zexf<{ZNc3W!<~wR4jGW~I1xFbW!wH?&W~-j1oCMAVi3sbxikE5UsQ9$*cj5P@U5}w zxT_u^ZKzD8Vn$uh9norln@W8K@SD!unMhkdb7-!hzJvJp^2)m-?#9dNGEU3-c}^iS zq0Wsx&Q|Bb3QRJr#bul2%RF0OQ9NgKyXCGNsXdP8>~N;|I-67CTIURVpj-ie^UoCR z`DaXPbww57p{H|ZTx))OBVh>4^4P{vznB+(PfAT%(lP)9U{$uCgUs>suS=HQ)1W!Z z@16Kkcdz)hm*-Gb=(Y4EXBAH;IFPkI+EGe(OGYRu_j0J~Dvw;$1>M+0#TNnvOVB1L zIurMaEEH#|1Zy2;zfbKD^K<7&?@iIE$~aaw^03Ty{TCY>mBvSfrAL5{#hOv4;oTc6 zc|qSnVEq>>V`{R)h=_Z7Oi2O@N+6 zgUnN~LnL`VBq)HlP(1$zwbz2GACrj1&Bfn-^L2uo=kqOt1DEIDJCrM0t(4O0q5jhE z=9tXE)YHI-MZJ~c<*c)yVwJ>_$5LveCSbq46vN(!%90=W3yU!QI`11$QSvaCaxTySo$I-QC>+1b26Lx8QEUW|MzD>;AfDx@Jz*nW}Tg#Y=69 zeFJMhzqPz?uJo?#8@&US4(>ZNtBKzxd7eb|860=+*H)Yt-2J-=SVhh>d;OWid$xrF zPE`Y(G)0^=xf-8$BMYL`1kTkzHauQA9S_jRaVI@I z*Fo+yDS9%4e^Ad=o+U(+@OqA#f55zdx>JtReU^mPkSz>Hhq&_Uhd4emOY+kD*uANX zQhS4>=y+}7<}(?$D#wC0=5z&>`HK8=0g@xG*Uh-$`9ipWcls3n)+AQ~@`!hnsN*35 zKUVA^49?!Vz0)({t8`DjPQnK6n1CC3%nAJ>?CZSD^itILZB;>1j^zRIopZ)#R*OS% z(=!7KktNhi7O_Wk4Q$$KJnrOAdWspBQDMYmQD2==(Rb{skI7LmG*+j2Uv@oTIFH!_ zk|Ja;ORsHxo*2BS1g6U10SVhat=(R+SYpaD6Q={fHNt_l_Yv%$BwFk(aY6-x;nGJlr1IqEuMq_QX}L5wGg3MdYS}+ytAjXJCz_)+Z<{UHN%*AQ;r1 z%IFiT9Sn7XChtUo#MA{!TuMv)*?I?RN$+heS#hVG!#fv_`HKtB24w|&ntx1@fq7Su zsOMTVa6#>?$@~cSsTSQ2XV$;gK=q!1k+K#tOs9Dwl?TQ*&HWnbU>eVH#pu0yfuH!$ z`Y4kOtz$Trk@wRx-!+vuH1B0k$=GXQdL3tG<)X9+#8p1NEz^e_G)CcNbxEwwX4{ad zFTMPRYQlJR0ppzuCn2Hw3yI408OTK(VzgP^J4<)&Q9!rH8A+DjK-jM&_YXPH=vRsJ6?4Hng5p3Bo=OUp#48p>t^*U43tK3CKp#tkKm1N0-@%By3K z)GANgoDK{m*GeAE>JEz;yf=*ow^k`V0T9xQO(WIZ@`ijTL);I>?0^rW8(?&ATXa-B z^-r;eNUY2DWF~1#|C}1w^ab`H8sgRpYwYZmfb4K!yBP{%@H9QTC2m@w_V)q@=v$3_ z@D0K`qs;M^vb6G5D**0PJ%-G7^KCPIQX~!SnootGMwpH&4*_nlh5!Lv91Ow}O~peS z1V96kPjR?)$O2S)O%|3aqqR#3C$ZqLRHo}p`y$vmCuG-p4a60{ac>r{TU|c&1HFP< zFre+H^uYg5z&F~V`QHQIz0gkXbaVMCaS+fJWMknuWhkIYWqYcxk8^Nq>J^;uEv}z911l0Ctc1sfbvZt^1bBMU|8=W`H7Z-H-M_H!ovQsjlGz$ko{B?Q2=erFhZgc$m^1zH{r>I_F zw=SbmS20`i@12}Klvn#&wS#j%5O9J3{6U<|8`@uw`d@AkUMO(;;>?7CmN)&tp-V1y z75^>kl@a7GAuq?H(%@n|05HH8iki7Gusw4(ktrFILTdYD0P}tIwQBmmJw~WxCb<_0 z7q2g@!28Q%5`2~R&E22M{QF&R{d@PeABd^=SOm+fq9Jqf1ES=aJ9iK*lfmD~FNE^{ zU&t@{uGjxU@>}}D6*mQ26e0WasUaNDzkP%q11L@A`&SW6g=Mq>{o6(@%ml1oF7&V; z9eiNEJZ?>xgw`S~EY$J7-7uV=+Iq+MJ#emRCG9q=NkGwk#*ZV86hj(lK-4<6?i`{1 zgv=XaR}%5a^c_6DbC4gm!Q~}Un7KF-kk$Efk03!;g*RA{y#MDMVG;Cye2zfYjuD_O zXOk!xBa%@1`2m~Jr&ETI;rd-`Vuh3=$0A}m0^$cD5C+hiP=9(4;f`6i6$_#-nlVD2 z3@`QkG8Hs|JSO+)!h4ys)o}9{1NZ%}IPlF3s%r|y$PCE;w&w|p^x|iz)v@4EKWWrl zdhS3K2G1EKX^fyv%sENG*U7w6*zhFF$U%G}$5{6;Xzmq7(p5%jf(^FseeEOwk513a^USf(9IOiaN;_ul+d<<2SrnJO!+yLr z_JOw9ifhUWDvY0}rWUOPNrp7_0TUk(wkvU&>tWy-Ns6C*=W-lW?{;SZGs6fa9d9 z!4RZ70PUX~Cz+7{hYSD026%Y0{|^`b@40Z9Ymt8JP?fxc44p1^V-bM21HVD$9S|R2@EdlGhgMWwwO$KoNQ+ zF05Jm^O)0itxOYUCZL|^_uSb4G`L{AsGs8bc4 zHP;W~9=Q`#{qLf{`#-n{KQ*>lffa3>XWlj|g{^8u6`CF}&nR<)ZhV?4tvjWWYfE;f zBY$RR=P>Sq5Q(vcaZOWDyLayj6Jy*l%EM8Vvlae4=NF4Z$%?hhqC(y@t)=x zuirup5BR4$X^0T=*q{i*m^~S$R^zkrlDXHg5QTRB^b;l&o4Ho#&M zhO38ZtGYOCgW#&`X&egX!`-jvdG5l2n4z$)3D@U2aQK6OrxiNxK}M_6!jVoP0&}E8 z4aH=JURxqfk|crJMF(Irb!Oy>%dr0BWOH5fv1){6gI=P1Zhp~$%sWikX(XuOl%V@( z=&o2bi#ED#Axuqyn{H$i6=Z;90N&yA%dD{hmuWXsy?$VX{GNUVG`>!elz~nXBvrwF+=&UWs_R+DwMB}z$|=Z zS5FOe4yr+)GkUz|k_Mj8GcnSy%&5Etr5YPO>SqP6mdnPj;4;5JWblYNK?vv*{H$wO zIqy5k_P%RlKY#UI{0Qf`x;*nhd@c#w=W+SDPXc|1>@j@1RADtKsPz$u_bqotF<`zB zZH!0?RPe-~W9=`%ub=f7;Me&Z;2#Vdy_RY!GL(_A?iU@MwYN~PBkI`vH2@;PhUqAe za)%u#^k}MG7-t=hAU#o*?(#tJ?i{hKDy3Iz;b3hBI7cdl?|%h>8P=Z8%~gUqNf&9& zo20CoC-_hkverA>TfnhY_Upk!){3jAwHx9p^>+bA_=)>Oq9o2>^Yv1k4 z^fHAdaXJB$Mi;FFmvzxmrSnWwy`6Ho*OC{Pp?(hTCN@yLmk?m0z}6q~iB zl%7H7-wG4ES5Bh!Gn~hIiR!w2}x&cSmCycJ?KaC9(9@orJM;83@bLbvxO#gCfZr=O$76`tHy@qa=fd%pz*d zi_hbxm3DzVZNZr?KfoM%=vQ*dSXMq2&Z`x4S!thW4`-V5-BwLVXeZOsIMD?SXk)Yn z_YjkakUjqVagLlV2Oo^q5#W;6@}nr}3ZXr*$ZYR5vzFp+YIZ7s_vYN#t`%USWbmEvcq9Yq^vyf%{su?!g>e-Hl6ig+x zNB=er{KpbdoOzJU5IFEJb>fzGyoQftwB)sHyfJ!;gpHuJ=(p`t#uCR&tODbYy&6^_ zLnSP?OkRVTn3pLzS{3{$3{}jQ)9a-$rUPoy?Zd+bzerL~cTu)g(qdlye};b1e_Q&w z4nfWEks23!Zv3|G_Bc&jA_^KXSp{4#gt{|m{K%>{_K%>OMkwr6gLiB`?J$w@Eje7Og9zgh;CJOOU65G_Aw!J z`bkf604s*bZ8`4vwxl^Yk#r;?N2eEr1!YmkLT2V~RL7TaoXcJ{Nwy-b_KhUi$p4u1 zbXQcEk(6AbzVAEsSKn6BW20}utoYC@^P}DbQ8g)cJ6Xv6>xubzdZc_G4zDKK`TI{! zgknz4&b-JOrGF+0C5pC|GHlQYwF0DaGEglVc_IxH_xb8wI5W^(>#q1XEi|X z``%1}tsAP|cAx4>3WRDxJ0HC7R@KINE3%wS52KY9#Qx7j&XO4p(vjN;t~nyhGehI5 zJL$S_)-#&t1#H-55#+^3R6~j(sB z7Djgk#7QU_&9>^Cb^RyReolI8Yy2?hRxqxBW)isWYU%$5Mvi`66c4AuZe^4d#oY32 zeO?n2!4+jkY&ir)@v_8jMWYa5n83tZ8tdYalEZCHd72_=fnjrz>OPKoZ;##;95qMT z!GVE2-KkVtr;Bo@!7FCW%el~z2pAIA#2lV;zEIdPPRk9tA@h)oTWUSdbD_pP*;PMs zCVxVao2xSWo4n@kFL{lHfiTK_-2Lrw`3|a9pyiWFM$`vx@CyyBP%Xzv3|P85Vheoo zPq|DyscVm?)^CphgUv{ale2qJ%aehQHHt#x?Z}ONi*D^hW91-DzRmXCDYIv+}lYxaotWr5jT&zU4DqLYIJvS`8nA^x3qD#4*WFo z#?jWZ-ZeFn_p&ZGad>v$On2X53!jw>B0lOJnByVdZySDg!9DqBIlSdD*fFuY(YCzd zBx5qdX5-n)&2D1yw!XCvOm=h{b$#x+;{f>H*RGYf-K=rm^tI=`tB4+hUr>)bh)=L( z&_+)g;V~FCj(nE%*TSknw=lKe>;nQR1enzsM~1aNx`mcxr3Z(4gvhA zIg#tOK0zfRA)<#2V2&+5qxWsxe3{XZ!!jQ63c*kKX!)0|Mnr4>-Bz=l+4u&f@K#>l z^mHLiZmPA1u{Q;OU0TO?Fs+3<l09$-|>NK#qj4_xEiv8F7MR-!&Ey&*39Z zdv9rS*_UWa@G?#~_o-ti?*mZH_}on{)80byDEfO?%JfB8iS154@rJ$(YNGo7)M~)4 zm`WkLR%vXIN;f^0$AQC&QySa#Gd4NW>uT9Ji>HjwT|;NPoa>?j*jVO7djm@wXW|H!f=fl)j=;;;g< z88n#+)Ow{Q$nKuddsQ`p56B4v6T?H}`u-BnJLxlb{pS{8GeVo)m~TSdsnaKpK=eI+D0a!b0l&Je}FObA7FgtW`5g@^scUEwnnSC0=wZ@E8;z0!^9V!SU7EvWyngA-xwB6ibqVr`UAh$rIdSW0F6XJ5IN3tFeMb?5ZyYBaiVq`#IEm~Y(6Wd`}v zLx(Lr8HA3PNThjf>D!Y5ao2D_z+KSnzx;QrU`t+q`v;gdhu!d?O2A215jfaxfYGjG zEn>?qo8CARpwLAjy|3-@9{@4PDZWk|EIfIm?YNv)^ioSDs+sA<=1S$8VG>mLkGn?T zyP)Lc2sK}jy+xoF7d0t>%$jkwG8AD!yV0ZJnl&6ce#p@x0ut!1>E!uUP*Q?Bi5nmO@2!E9|DXF$k9|w?JW0YY37pj_e z;y{Ams+xaChj&>=1vHZYk#!#1)8xlUKZZ`&qhE4?+GQ2wcR-+VPxuo#Bd~u$>(uK* zrsuLuX_VW)bW7a@cmryFxK;~m^U9~~coaya#V$mq`5X>x31*y|Gpj;=eLNN@J+qUw z-w;*jvNJnh2u$V=XacmnG(4N+JJ9||k{V{>xr)V+y#HELGvzMD@!L|f+gWLouj0ID z255O5JIgLyWt^TO?HGnWSUseDLLmHKW~f9#0S0-1} zO#cHQ(m&H+mY)B18oXrrZ>GUAR=fgT zYRE#=XC42au;DrO!m5862fssMtPqZ`0_vo|J=EM3RQ1MEAN*6#%1g-^9f)Dmoyxk{ zqX3#oPy!FfQQ}4FPlQQO=)oR;jf9aAwUXXP!swOjddVre$2hfoTRKfXPv*iFE}g(O zZcH&vi?Wy`TIh=K59e`wJi$g2Kp|lJipd)!Y+~wMqdkMso0%U8Cbk#D-^6)ujLG=@ zXxbVhUUR01fL{YN$r!?8xxmWv`9a(y(ATSZx=^oLU=_krK$cVCLwp-UwD+YTW{yID zvi0kvI08|95r>)sn!FUIJB8jn7&dK*f#SKllg-+6G}uW6ME+k3Yc}+_3Rw?k0UF_2 z6u*7K^56>~ZBplHv+sC%^@aWh{r+b`Qlt1 zAw;UH6($Dk1nq}*Nq}@{J`3{U23tU`AzZp97sV8f3zNd(FS6O{^k~HR^6$q{)B?u> zaDFN*EJx$F)cY}_O{v-os-{l1<{Q6kMs_nm(2K_T5QOi47iZ1LS3)TUjY=aW zz$8wTZ$J0csh{O_hJ{(+NFc14to@EQl^8`=ulR)VT2erfJ8BaPeHVW6MaS(?xT41k z8OcY`YB1{TZqxF#3zpD)FNH!>MVwr6!r}O)A#~nY0I){a68wNOQ$fZ41jN3HG+jdV z!m|I(pJfOrI(7uyZ}~6Hb(`RC%{2i)bN!_Uc2D0ci*ld{pdxqRg$=T7l##Rc3#7hC zZh{IEMH{@q0+RInOdWY-4p zYQuLgL4Wb#_7{3;rVb^k#A{R-0;=AKZZa8DW-Gq1`RvbRO16FAOfj~**_1BMWV-<5 z&u_MN0NPkp^1*H*mRdNaRCv)ZB>zi*hqBQOr-3*amj9_yV2cf^Thj^lw=Y&_q$DOW zi;~|9H#Q~6)>_98mnSsF{g+o3;DN;lkE39i8e>z4FMFH#I%VCTVD*%Sman0O^Hbfn z^}b(qedNy|Cc#W`(QVzSJJ*XW1F`M-7q38a2%p)rnW-=CV_S8m z5ok)*BfbRO&AXW2Jx?J%J{Traz{Xer|71**k)Ki?V#|&#^57j1w-F$qiAC;(oIMlA zeQQAD0nb@v$`SnKt(Wvhp(rt3fx$wCmfFgZc_U<`eNT^D{G(z;h- zyCRze23}h56ixl)8_hjRdjpgiU1%)VFxU_#iE|B#OF(0oInn}AWmuYR@Di!phqtjF zv0!&3*BZ=^2dUpL=`f^YIjU^y^B?rVASzi93M{ys^}m_J3fO`$!|Lz4RLs>I{4lso zq3I?Q#^5qdlguOYVJa>%i^SnJ7;3eG-ukUacF*KXw?R$GJVlsVaoTu>ag6z>=*Bkc1x(8HMoFUk@|uX#6XSrY#INiPR6^hQBH41 z{sN#2xCn74546<%yQy?{eNdGBV$tX88pp6Bi&pY|J@8L90!6Mop2b{!tF+QG7HrcO zw>||K0_S6BzK(CU^4YILL(qGc1O@z*Eqk7iuJlxHZB+YWObE3k2ijcd{EYR|jbLek z{j~FOY1G=$Uc|n;csD=JlJmT>>R3^NZxKCnvioASf%PrlwTy#z$UK84Q?*c&J3vad zTr5*SxlYS*6zVM}2j2<-3F=~zH?8mu52o+ew+-qE(l3afz1^z?v9oQrwb7_&(|(+G zl_z^UUMEp;>I+sa&6y3JH~!mJ8DId=c{&e+7gr9 zLS=Rt>mp{mI3GtGL=BY_9E1?-mBy=`d=sLDDLTI}wfm4L^k}A?8uJIplGA!wjko@E zlUA~=O|<7WUjGyvg}k16`rGh)k1}>%!g8{|=YwbHeR&BO;37{} zv=;kF11tq4r>R;~syK&j_3pSun$+E7R#N>PZXz zsMPJPvs7qWzc04m+$|gwM2~$HdSadNV`5~&S^H_7ktCKe{4z0gIKBb6S3^X6-eJAD zc-sg^di5?4!(lcJ3*GnPI&#LnLj!0Wy0mR(uP~I?8%$3%8tr*%`95wk8_M&E*tZ8=qptoPIY(dat48gM9T9QU+){2v;@xhvwh-`>u79+Zx+! z2tk_U7Qs5*<`m|+x;c+Qu6yu(1yp|l`djN&t+{8(k~#?vp}|X8iCmfWp_o^d{ZaGy zZSTjJ&u2qAAC{faysw;HK(#*tDUtu2VhX9@euh zo0-b}HP{SPu72;Rw4m2YSH5}1ajYTTlu-}Tb^vlc{A01WIY4Pmi>?uGwoiRCI&%{* z@^!M!^CC6j7Dpz3AANr^)iQ5IxnPA={Rrwn63){V%xq6928Go=!`-T6?6#!0ekAhr zG9iMp;}cNeY>0-FwS}42-=)+elMVJrPc70}?13?rDO^~&mk9n}3yc+v1Cv2R`hzZ*vvKGe7xmGFMyr8otxcea3e1%=*HSPif4!5>B+s#v&eaoi`~uj z`v%t$$Jgh#pf>CDGX+JykjDu?fNqFAa%!zN?DWy5VXL|TcUW>E#ye}MBhH)i&Bp0E zX@m{_c$s`RN&xjEK7-_8CIH`E$nhs^l+?fA&2x#DUsb-lru!vy>8g{4vJLea$i<1@ zWz#=nBrP_#whjTZ>GZUI8A+ED`DXVw`TVmviPUTmnE0BcJwes@KAVH5$mqOT%fWvy z2KdRITJuN~+Hn|A*qF;Wp7?@X0u=RqmR6*hc^KC2IYsJT+Urlv!Mq9ljMxj!wC3u+=?3)Dd z3(zqlp(vQCQWHBzt;;{EX&ZoQTE3-7{G8qx5ly;0E0&!;I<{C>Ix)Ige{9K?yR@G| zcBy;+GK^k&eK|~y+_nFc`YCCxiqkB4j)q2dDG>a-EwAx03qx@d-0yyjX z{&)Yr*N5=F9@HVeo_(=c8%D-q7|-q`OicDQya?wRmv2-I-N@TtRiATk9W>i;^=>#9 zclAnA@eWE7avLadq+Eh8@d5QYK6u+FH4ZGr8ga^hnSWx%{(b&g?#6_j2^LJ0QnfuZ zH|yoB3sp^O4v+${Jd;d~e+>+Xr-as%+3(`*iQ$;~4i-D5KUmH=JqDP6=B-|kn*dv} zQ#TS!(1K{zY|+ODi2zK~{*{p7;%{4pr)seV{FqcZ%^Lq8c_2Qi z`PUrxQ~)#(`a=B9sN8cyr0Iw2i6^7bfv$3kLlFlGQ08K~KwHVz9KKEwn`-QM1?~uN z&^(4b1+h-VW;1;SSD3t#(=A1WrHF6FTBvZ`Z}wjE94r)s{Tlgja)40>R1^Jsc8uT`0H29wr{uWf3mT;jz=q?KS z-=I6@_0joE(--bZzD{pq<4e%ZP!K4*w+iSF;y{2Sx`2;I9HqbaoS#NDb}*%zQ_FS~ z01M5bksu|4{(o^w+dY1CG#?o0Uiq)s9R9~Zw%=^7XhF^lz9;BZUVlZGw&2dLvc=9vrY}F$6B)_sRvLu1i0s-GlKii_(r?%~`!Bbe zj}drZMAcAq>BkOeC}f%ag+D+laM!d~J`R~c0p+l1MwjdXgh$0?RQlTub_ISTiDjKk z&mBI#v<3v)$IlghHzR#$l|yV@qM`$#K+_MN8vTF*okyV2uOmKl{j(tEyrB02-9K5Q zJHc|EFO2PEeg+*MFJ*cEO1{7Q(ILw3kzrLOf&6(`z8g?2$qxolxf+__*TNXyta*qYXnwiz!*Sa5vqhk<(IEQLggh|Zw6et^E-BlFq61jtU;z|S_ za9Hp0x#UOjL>ZyR;K}0Dyaq$yF8>^%_#MtfRGVP6fc+aMU8i>z=n+4&JGdw{eNp!_S(DiG@?YUO+{fSH zITb*7jtL6c;;_x~1|b3->Vl3TQNM?xNug65nxK=y%(VR9)vv#-BfFR{#D?~+1olY&vKOjEi0dW&_cKHSiDT;O? z9`PS4dRlVQ^8|5>8`+~%P#yDa!vZ~mHRwZsE|LZfip@Y|=Iu_0 zM7VH#Cae%%AyPKy5M>pmDmu^5U)>13ZdaCCZxByD!zn8r)39F$-EbUwoxUx9{6fNfl_k%K_IC z^^W)tf@|e{;FnI!+f|cIOc7&gw&?ST z32V7|KrU#QEJf$j;pa16vD`(p%52+E21m0Gd+{B}wh_va1M&HgNt6*dy`dw`t{Mjm z^r^|BlgLH;*h+8D zmGTK$B^?G7w!UtHa6hB`MXL*=Br)?lz4~JhsaVDr5=^Wn{_h7h_j-}n;PL?C$MdRi z9FM}AjJ=opi9Bq;eKDwuX&@e`M_NrDOH;45qP0up0byT#F;KV!t9eRi8(wm$=d~_c zx_k9(Y=9WgrC);M%PdoEx*9$MesRykEE zXnvk@AY#V4`vgJ*$uvj?lW}7>6MwJ>4l`mVh)7)aQ@`GdTZZk<&5s-1=K^lBr0+Vp zeVlCp5W*>OkGuW;U!T7~_r_hCvcc{I&58{S!u(=7ac2K~>}E{;gg2oSwA#p(=PfAh z!@%*wdQe+Bnv);Z0CPlgH)*5BA zgY?RoOQ=YYp8o)x8);j%NNxX|+;F=&jUf8{@CP!pr;{@|oG_?W@am^r>z&cfBv4%x zXPh(U(Ps$FFDh2)KhC46G!UUA52^}aw=bc=kq*%#DMh24IVbS0NDA2XH4DC#VVJdf zAxGifRXp4cNsZuA%ZUmIO6m;xYwQEuSqCtlZb=S==NtRuul7a9I&wIVR@>)Co&#J( z4$GTRgP==Cf;pew;!_o!Wm)8z73{(SM+bPObPL%F9PQDBkJS6tL-yjfNWa6J3RMb( z*QrEwb3m2>wOD2~*3i}!)73ShKdw*W;a{So)zO$OPF-4wx}F#ISna~?!v=DK6~VCSV8?O)QpEN3lm?5hSFSbXDd7RD!1R)Lx&nmx(0N8WUv9_E7OUwqMss9 zvzd@zlVN`cJYhDgZeBy}BE{JkfGy|dk2=}Kvdj7>zrB`OOtYrX1B0NhGuJ163eAoJJ?}|V{4H(?qUlpa9}s; zRdi94+RZCK+)Xnj$`<5X6Ss#ytPuB6?O%t&o{$^+mxJ-psO2ENdIoF8MyN;Z_HA2T z=o@Rp9B2(~i(D!lvkWB}%*(f+pVphG0A6;=Dr1NW@koXfPaeizz4l94TLf=2p=KO& zW1D#!_*3o4a_Is{8~V@p7nwX&XiEI4og#St9mVw_(PG1K`B8UOY4D=;_7;2ldP%$# z9xtq>jMRZ9Cr8}G5v0oG(ZHAatsbceOB zdlWm}C9liRZW0FjYb$dm9{`dNv@Q_MA?*6%DxtQk&bweY4(|@=Pug8lbNoQ0K>VoZn@t7C_M!=c=AxIAt2$ z5>qUm`%-}(578h(6MXojL=j+TWR{>as}?7&GjPxzFRoKjr9t}pIi)WZ$nVdQzCTy| z?ay;T;x1SsN!qeRnw1)OqdP%p3#Hl0V1Rcm51O_EUr4rJyaGI&)BFn73+u`1t`8O1 z+;c6n3pZ0RKpk)Ph|g8WebzU*T|3|lg>j)WlyFA91-fBL|G6LWQa`DTVT*ah(>jfU=_S74Oa|hOjh~%r&#C)mjq}AgR z>N`+Ec(=YggJiwsYD}9p0pNHyT#h=+tynp7yzF0-{VUb_z3I!Bp4@GqDR9 zUM$cuH{7`oAdWJ}KDQ~+9sXdt8aalF+KBl!@a^XDbE`$&_CslMQPGp+zU5b9$R69yTL^kqQrsH+5*ITLm z+qMDI8GxflzeDIu%e~)dh9OI8;Fkd>ZHB}^Vu^!=1d)CEM6tf-7rYUF`2jPM=bB(o z?(rSX$iDUc8r7-KM#oqK-H|*EqviS>b&*-t+wCd8P%3!ku0l#TmWBlAkQ!mD3HmWa zO!uXh>xDj8cZPcj}yHBhCQsw>8cDwduIFVCj zCkmjx!r_%7P~)>`%Wh$M~&h^=XP|FBUS@z zxL)13g>q>m6~-W zYHlDSl^E2W!%QXAdvdwQ$o%AEQn$`h6`PJYx}Nnyp$JcYnm}Z3t~Z$>eZyZB&p8!y z9#MQ!K1uNp3_7 z2;!a!)b~5=3i)qC4>ve;_!C|>R$gg8pq3rig|uc419RdKePcMG#N`-;ycA;C9!eS^ zsX#5}pQNn|i-+ig&jJ#0jh5JXtm?rZa58UFwYbel2jN62qRtK`>H_1MhJXyKu$_6R zVJ;P*pfB03p?bnrCqwkOWs0YB<}x|+ zdW@UV5`mDUe}f9VV!#(ha>HzjX~VCaKUeuKkYdVpwL$ZEzN&ZYGKUl7`Hg&+ zAP7_WVZ}&zWeBn9^P5-6r9){{M^7PG15vv9tO!&nce$FX)E#OJm851qNj51SalEdp z9}A)rbTz1{tLgG!($@<*vW?XEbvF;HX_FZZ>>SvU)||9_!Az;z*L7z&qN6qvOnn@> zOOuZT46z$z6e%ns{Ik!&D;H2<24F$T)ZU@nbne+FB{s;UBkds$J`#b&L+?dGA**dT ziOinq6ofY@l!fvNyR4WoZ~@`?mhfB-PHiogeHofl4nH{3CVyeCPoZjbom#3tcfHR} zBjR*+$(Z^)2OWv3ib@4njrn);WVlPeFwlNORT_nv1M{3WZG1a<(2OL0Yhvc;ANHWn z7{eu3PPN^|5q+{{w2Mu4z{cqe+>u`s_Z?G%^nY^8(hrc}5VzK&Z zk4$C1hPyGg%EK|GNEMnL{gRO;=^Ejx57>E*v#W;Zx>F+-7L)dO*+9zpO?8^kT|jDY zD|GHvbX9YZVWc+`B|=&IpA3jqO--*f!A<)6pYkb}VkK2Be>y6zJ%{jC^ynXc{i!=L zd>=bhoV3q0Pm`E9`tFZ4OOT3UpW*b6&%a2vXFI6ZJPq@qyc8=eb8&13noWN@JRdw; zW8lSzTB31BfJzi8g$>qJgLuP&9qkK_6Dy8Chl_P#l)i0Brn?xzb{G7WQa4(!!elsz zRq{>H`AR#0g$k##ZB*)frrRtCjj+T_4Wq`FL`j0Lp?Qj0yY?WOCDpKI>?p^RKRncU zbZnuHUHX~Ou1-~_vi#j7kV)z5EbupzKr&>uk*}wT>uwP;q?$UwBygVVr8xvt0%#X1 z`TcXdP$+NWyN614CU zrNc{99P`K59dl-fBH!>ZFDw^zIY8+OggHCjW!*l=e7YxrU4+%KJBCq5s)sIKj0@3+f+ zx80pxr}OxoGTbM(xGfNW+XuA?OF>pEOCvcu;r@Bwr>ajkYk=&<|X0YJj96@_MH?{}-bS zIALIt*2JlWLD}l7uL8aBRwz#s$c0Re_?T7(25o+t)1BGjJZ!L^KfY1J3nWo0z3fnx z0DU$K5GW#bhAO4+NFl)(sMpx_8db|8LhvRZUj zRJWS62Unn1!;>s^eb5ccx7n-URj|Nsq#i%L$ynq@4yYIiVX_x0DVx zJj^NULZK#Im&o6xc}AUt_JPmK_cYmWq6DzWGav^Yi=rn7Xl3zuMSp8$)d5=B=@C;X z7&k2Lho(*X!m<8^SP3AEcY}cHZ-W5Z2Y^8UzXd<>qq-;=IWUlU2oVS}pMk()tcsU8 z6xXif%w*@jimtiK98N7i|GqTp5|9{89Y4))t?b^@KH^2c*hPxwGrCq&dln8Z*k4-N zz~5Tg4sUonoOXBkgo;En`aZ);S;Ek=>05@R`yv6~p=n_?MzJp6!SOj$#6Fr8SwgK; zAUggoedBFrpKV$rL_`|wRgw?(`alrY5%A219Zlq1w+BL!)U_`+ZqgxrPN zuV0|{Ik1o(w=UnG+gvT?^X%z3k+(Ro^9Ds?Fecw~hx<*4L;F{N++lN5`g`s$zwT(P z*r*ow{o~2R`YP%)0>N?`9%!ElU_v4wXm$L?3`4QWG=stE0V6oVhXh0~cO72DbR!*) zuKe;!&`=nBbvZ#=Xuce!+$UZ%1SOM#Y#a0bG%@f1=8mI6J>?Zj;H~aZY+UhqUt)~{ zLkmDnyMri4iL3JK(aOqNz^K*(GP-ZyqMiC#l&hI#7X zvHoGbcsay>^UL;Hq5mhpY|6V|R{5X(vcP}$%kD2dSsKbRG%gajz(NCNq@;iuDb}